Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CHIP-0021: NFT Fusion Puzzle #86

Merged
merged 3 commits into from
Oct 17, 2024

Conversation

BrandtH22
Copy link
Contributor

This puzzle enables robust nft interactions while maintaining full on-chain provenance and non-fungibility of the associated tokens.

@danieljperry danieljperry changed the title Nft fusion puzzle chip NFT Fusion Puzzle Nov 7, 2023
@danieljperry
Copy link
Contributor

This PR has been assigned as CHIP-21 and is now a Draft. It is a Chialisp puzzle for combining, separating, and upgrading NFTs. Please leave your reviews as comments here.

@danieljperry
Copy link
Contributor

We will be holding a public discussion of this CHIP on Wednesday, November 29 at 7 AM PST (3 PM GMT, 11 PM in China). Please message me on Keybase if you would like a Google Calendar invitation.

@danieljperry
Copy link
Contributor

The recording of our call where Brandt discusses this CHIP is on Youtube:
https://www.youtube.com/watch?v=Rqd0hNsWgWM

@trgarrett
Copy link

@Yakuhito graciously donated some of his time to look over things. I am looking at the following items from his review.

List of pairs length check

When you do `(list_of_pairs NFT_A_LAUNCHER_IDS nft_coin_ids_to_lock)`, can't I just pass `()` as `nft_coin_ids_to_lock` and unlock all NFTs? I don't see the length to be checked anywhere, and list_of_pairs finishes execution once a list is empty

offer wallet asserts

offer_wallet_asserts ; an additional list of puzzlehash-msg announcements to assert -> are you sure this is required? since they don't create coins, someone can just modify the param to be an emty list and replace any mempool sb

OFFER_MOD_HASH should be enforced in full puzzle hash check

you pass OFFER_MOD_HASH through the puzzle, but you lose is by the time you get here: https://github.com/trgarrett/fusion-clsp/blob/main/clsp/fusion_singleton.clsp#L90 - make sure the singletons that create the puzzle announcements really have an inner puzzle of OFFER_MOD (inside the state layer, I think?) - otherwise, they might create fake announcements to trick you (e.g., the inner puzzle is my p2_, but I tell it to make the right announcement to satisfy the assert)

i.e., replace nft_inner_puzzlehashes with curry_hashes_inline NFT_STATELAYER_MOD_HASH (...) OFFER_MOD_HASH (...)

might also be applicable to https://github.com/trgarrett/fusion-clsp/blob/main/clsp/fusion_singleton.clsp#L64 - not sure since one side is always locked```

@BrandtH22 BrandtH22 changed the title NFT Fusion Puzzle CHIP-0021: NFT Fusion Puzzle Dec 1, 2023
@BrandtH22
Copy link
Contributor Author

BrandtH22 commented Dec 1, 2023

The recording of our call where Brandt discusses this CHIP is on Youtube: https://www.youtube.com/watch?v=Rqd0hNsWgWM

Two questions arose during the zoom call:

  • does the fusion puzzle use the singleton top layer? Yes it does, the fusion_singleton puzzle is an inner puzzle to the singleton top layer.
  • will there be hinting available for display service to identify fusion puzzles onchain? Yes, there will be two different hints recommended. One relating to all fusion puzzles and another relating to project specific puzzles. This has been updated - there is only 1 hint included due to the nature of how hints can be readily identified on the chia chain (only the first hint is readily identifiable), this has been included in the chip document.

More information for these will be included in the chip prior to it being moved to the next state, we will also include more information on the clsp puzzle as it is finalized.

@BrandtH22
Copy link
Contributor Author

@danieljperry we are ready to move this out of draft 🥳

@danieljperry
Copy link
Contributor

This CHIP is now in Review. Please leave your reviews here.

@danieljperry
Copy link
Contributor

In addition, we will be holding a public Zoom call to discuss this CHIP on September 3 at 7 AM PDT / 1400 UTC. See the #chips channel in our Discord for more info.

@danieljperry
Copy link
Contributor

The video from our Zoom call is located here:
https://youtu.be/M93hGeOEC3Q

Please leave your reviews for this CHIP as comments in this PR. If there are no major issues, we will move toward finalizing it soon.

@danieljperry
Copy link
Contributor

This CHIP is now in Last Call. If no further changes are required in the next two weeks, the CHIP will be moved to Final status.

@danieljperry
Copy link
Contributor

This CHIP is now Final. No further changes are allowed, other than adding errata. Congrats, team!

@danieljperry danieljperry enabled auto-merge (squash) October 14, 2024 04:20
Rigidity
Rigidity previously approved these changes Oct 17, 2024
Copy link
Contributor

@Rigidity Rigidity left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@danieljperry danieljperry merged commit ef515fa into Chia-Network:main Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants