Pizza.sol
Create a bare-bones example implementation of a pizza contract
Upgradeable, Ownable
probably using ERC-1155
opensea has some examples as well
Implementation Details
- should follow the example structure of the box (upgradeable V1)
- chainlink VRF is not needed for now (to reduce complexity while testing)
Pizza Metadata
should include an example json structure that:
- display and description metadata in both ERC721 and enjin format
- high res images
- low res images or gifs?
- the recipe
- the randomized parameters to feed into natron
- may be referenced from directly in github
slice Metadata
- includes the original slice rendering (or complete recipe) in its original index position
- includes an image of the slice in a format TBD by shrimp
- includes a link to he original pizza metadata in some way
- includes the index position
TokenUri
- should store the ipfs hashes in proxy storage
Slicing
- pizzas must be able to be sliced into 8 parts
-
- each slice should have an order-based index starting clockwise
-
- slices should be part of the same token contract as boxes
-
- the first slice replaces the pizza artwork of the pizza token
Recombining
for owners of sliced parts, they should be able to recombine if a corresponding order index exists from the same or another pie (e.g. if i own slices 2-8 of pizza 1, and i own slice 1 of pizza 2, i should be able to recombine them into a franken pizza)
- when the pizza is recombined an event is fired
- a listener (off chain) executes the render pipeline by ingesting the render pipeline
- an event is posted back that the rendering is ready
- the token metadata is updated for the index 1 slice and the rest are destroyed or abandoned
Admin Functions
- purchaseTo
-
- purchaseAndSliceTo - purchase a pizza and automatically slice it to a specified address
-
- withdraw - withdraw funds
Acceptance criteria:
- Two pizzas with different metadata should be sliced
- slices from the two pizzas should be transferrable
- pizzas should be able to be recombined with corresponding slices from the other pizzas
Pizza.sol
Create a bare-bones example implementation of a pizza contract
Upgradeable, Ownable
probably using ERC-1155
opensea has some examples as well
Implementation Details
Pizza Metadata
should include an example json structure that:
slice Metadata
TokenUri
Slicing
Recombining
for owners of sliced parts, they should be able to recombine if a corresponding order index exists from the same or another pie (e.g. if i own slices 2-8 of pizza 1, and i own slice 1 of pizza 2, i should be able to recombine them into a franken pizza)
Admin Functions
Acceptance criteria: