Skip to content

Initial Pizza contract #74

Description

@AddressXception

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

ImprovementNew feature or requestWIPWork in Progress

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions