hashgraph / hashgraph/guardian
Token mint/retirement contracts evolution
- Dominant language
- TypeScript
- Stars
- 146
- Forks
- 186
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 126
Description
### 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
Contributor guide
Assessment
This issue has not been assessed yet.