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

Design legacy NFT onboarding methodology #25

Open
spalladino opened this issue Feb 17, 2018 · 1 comment
Open

Design legacy NFT onboarding methodology #25

spalladino opened this issue Feb 17, 2018 · 1 comment
Labels
kind:research Research on a topic before implementing it topic:upgradeability Upgreadeability for both kernel and user contracts
Milestone

Comments

@spalladino
Copy link
Contributor

Similar to #19, but for ERC 721 tokens. The need came up during ETH Denver, when discussing additions to the ERC721, and how existing implementations should migrate to the finalized version of the standard.

@spalladino spalladino added the kind:research Research on a topic before implementing it label Feb 17, 2018
@adklempner
Copy link
Contributor

adklempner commented Feb 20, 2018

An opt-in migration strategy can work here as well.

function migrateToken(uint256 tokenId)  {
   require(ERC721(oldERC721Address).ownerOf(tokenId) == msg.sender);
   require(ERC721(oldERC721Address).takeOwnership(tokenId));
   //if there's metadata
   migrateMetadata(tokenId);
   require(ERC721(oldERC721Address).transfer(burnAddress, tokenId);
   _mint(msg.sender, tokenId);
}

The specifics of migrateMetadata will vary between tokens.

@spalladino spalladino added the topic:upgradeability Upgreadeability for both kernel and user contracts label Feb 20, 2018
@maraoz maraoz added this to the v0.2.0 milestone Mar 7, 2018
@facuspagnuolo facuspagnuolo modified the milestones: v2.0.0, Backlog Jun 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:research Research on a topic before implementing it topic:upgradeability Upgreadeability for both kernel and user contracts
Projects
None yet
Development

No branches or pull requests

4 participants