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

Safe + whitelisting #48

Merged
merged 47 commits into from
Nov 24, 2022
Merged

Safe + whitelisting #48

merged 47 commits into from
Nov 24, 2022

Conversation

porkbrain
Copy link
Contributor

@porkbrain porkbrain commented Oct 26, 2022

Implementation of a proposal mentioned in this comment: MystenLabs/sui#4887 (comment)

@nmboavida
Copy link
Collaborator

One implication of logical ownership:

In the case of embedded NFTs, they are currently being preminted to the Launchpad and therefore they initially exist in a state where they do not have logical owner until they get bought.

One solution is to change to flow as follows:

  1. Instead of NFT creators preminting the NFT to the launchpad, they will instead only create the Data object.
  2. When the buyers purchase an NFT certificate, the launchpad will mint the NFT object initially as loose and then will call the function nft::join_nft_data to transform the loose NFT into an embedded NFT

@nmboavida
Copy link
Collaborator

One implication of logical ownership:

In the case of embedded NFTs, they are currently being preminted to the Launchpad and therefore they initially exist in a state where they do not have logical owner until they get bought.

One solution is to change to flow as follows:

  1. Instead of NFT creators preminting the NFT to the launchpad, they will instead only create the Data object.
  2. When the buyers purchase an NFT certificate, the launchpad will mint the NFT object initially as loose and then will call the function nft::join_nft_data to transform the loose NFT into an embedded NFT

In fact this means that the interaction surface can be significantly simplified as the embedded and loose NFTs will have pretty much the same flow from an interface standpoint

@porkbrain
Copy link
Contributor Author

porkbrain commented Oct 31, 2022

TODO:

  • emit events
  • changelog
  • docs
  • some listing strategies such as blacklist or free-for-all
  • expose relevant entry functions

@porkbrain porkbrain self-assigned this Oct 31, 2022
@nmboavida nmboavida mentioned this pull request Oct 31, 2022
@porkbrain porkbrain changed the title Draft: Safe + whitelisting Safe + whitelisting Nov 3, 2022
@nmboavida nmboavida changed the base branch from main to develop November 23, 2022 16:33
Copy link
Collaborator

@nmboavida nmboavida left a comment

Choose a reason for hiding this comment

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

Fast-tracking to merge all to develop, let us add TODOs so we can tackle stuff in the next iterations

sources/safe/transfer_whitelist.move Outdated Show resolved Hide resolved
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.

3 participants