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

Token mint/retirement contracts evolution #4092

Open
anvabr opened this issue Aug 29, 2024 · 0 comments
Open

Token mint/retirement contracts evolution #4092

anvabr opened this issue Aug 29, 2024 · 0 comments

Comments

@anvabr
Copy link
Collaborator

anvabr commented Aug 29, 2024

Problem description

In the course of working on #2989 it became apparent that there are limitations of the current smart contract implementation of token lifecycle that could be addressed:

  • upgrade of smart contracts is expensive and difficult owning to the need to migrate the data inside them
  • a single mint/retire operations can handle up to 10 NFT instances
  • once an NFT is minted, when KYC is enabled every new owner of the NFT needs to be approved by the issuing Standard Registry (SR) as the only entity/user which has access to the KYC key (stored in Guardian keyvault).

Requirements

Design and implement additional enhancements to the token lifecycle addressing the issues above such as:

  • implement token minting via smart contract which then can manage the ACL for the token operations (similar to how it's done for retirement)
  • investigate and resolve (if possible) 10 NFT batch size issue
  • move data storage part of existing smart contracts out into a separate contract thus eliminating the need to copy data at the upgrade time as the new contracts can just use the storage contract directly

Definition of done

  • On-chain token lifecycle management system is updated as per above
  • Documentation is update
  • Migration to the new system is handled automatically by Guardian at the upgrade time

Acceptance criteria

Guardian token lifecycle management system is free from the limitations listed in the 'Problem description' section above

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

No branches or pull requests

1 participant