Skip to content

Feat: Core Sticker Contract Foundation #35

@Xaxxoo

Description

@Xaxxoo

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions