-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Overview
Create the foundational sticker contract using OpenZeppelin ERC1155Component. This issue establishes the basic infrastructure for sticker creation, minting, and metadata management - serving as the cornerstone for the entire community sticker system.
Technical Requirements
Core Architecture
Standalone StarkNet Cairo Contract: Independent contract for all sticker functionality
OpenZeppelin ERC1155Component: Handle fungible token creation and management
Metadata Storage: On-chain storage for essential sticker information
Event System: Comprehensive event emission for indexing and monitoring
Contract Structure
ERC1155 Token Management: Each sticker design becomes an ERC1155 token
Sticker Registry: Map sticker IDs to metadata and creator information
Creator Tracking: Link stickers to their creators
Validation System: Ensure sticker creation meets requirements
Storage Requirements
Sticker Metadata: ID, name, description, tags, creator address, creation timestamp
Creator Registry: Track all stickers created by each address
Global Sticker Count: Running counter for sticker IDs
Content References: Links to off-chain content (images, animations)
Feature Specifications
Sticker Creation
Open creation (anyone can create stickers of the Community type)
Automatic ERC1155 token minting for each new sticker
Unique sticker ID generation
Creator attribution and ownership tracking
Content reference storage (IPFS hash or similar)
Metadata Management
Required fields: name, description, creator, tags, category, content hash
String length limits for gas optimization
Tag system for categorization
Immutable core metadata (prevent manipulation)
Read Functions
Get sticker by ID (full metadata)
Get stickers by creator
Check if sticker exists
Get total sticker count
Get sticker creation timestamp
Validate sticker ID
Acceptance Criteria
Users can create a new community sticker with complete metadata
Each sticker creation mints an ERC1155 token
Stickers can be retrieved by ID with all metadata
Creator can view all their created stickers
System tracks total sticker count accurately
Content references are stored and retrievable
OpenZeppelin ERC1155Component properly integrated
Events emit correctly for all sticker creation
Read functions return accurate data
Sticker IDs are unique and sequential
Creator attribution is immutable and accurate
Metadata validation prevents invalid entries
Timestamps are accurate and immutable