hashgraph / hashgraph/guardian

Token mint/retirement contracts evolution

Open
#4,092 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.