-
Notifications
You must be signed in to change notification settings - Fork 5
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
TRN-862 Soulbound ERC5484 Tokens #928
Conversation
8c029a4
to
0dc6e67
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work man! Looking good
…n to avoid code duplication
…on accept issuance
49dbb87
to
0aa94ec
Compare
c7beca4
to
8a86514
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 🚀 Nice work
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, had some comments
This PR includes the changes in #925 and will be merged together.
Description
ERC5484 describes a specification for consensual soulbound tokens. Soulbounds token cannot be transferred once created, however they can be burned. Each token is associated with a
BurnAuth
field, which dictates which account is allowed to burn the ok.Additionally, the minting of a token needs to be consensual, meaning that there should be proof that both the issuer (collection owner), and receiver agree to minting this token (and agree to the token's associated burn authority).
This PR extends the nft and sft pallets, as well as their associated precompiles, to support the ERC5484 eip.
Implementation
To implement the consent mechanisms, both pallets introduce two new extrinsics:
nft
pallet, the burn authority field is also set during this call.This two step mechanism proves that both the issuer and token owner consent to the minting of the token.
Additionally, the sft pallet adds two more extrinsics:
burn
extrinsic by allowing the collection owner to burn the token.Precompiles
The precompiles have been updated to support the ERC5484 interface.
Release Notes
Key Changes
Update the nft and sft pallets to support issuing of soulbound tokens, and update the ERC721 and ERC1155 precompiles to support the ERC5484 interface.
Type of Change
API Changes
EVM Precompile Changes
Added
issue_soulbound
pending_issuances
accept_soulbound_issuance
issue_soulbound
pending_issuances
accept_soulbound_issuance
burn_as_collection_owner
set_burn_auth
Storage Changes
Added
Extrinsic Changes
Added
issue_soulbound
accept_soulbound_issuance
issue_soulbound
accept_soulbound_issuance
set_token_burn_authority
burn_as_collection_owner
Event Changes
Added
Error Messages
Added