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

WIP: CW5144-base and CW5144 Package #128

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

gachouchani1999
Copy link

This PR is work in progress and an RFR (Request for Review)

This contract and package comes from the ERC and EIP 5144 specifications for a Soul Bound Token for a non-fungible token that is attached to a Soul (an NFT), rather than an address.
I believe this specification should be introduced formally to Cosmwasm as it is a necessity for introducing DeSoc (decentralized society) projects into the Cosmos ecosystem.

This is just the base contract and other developers could build on top of this in order to add other functionalities, such as a recovery function that allows a third party to recover an SBT from a certain NFT (as discussed in the main Vitalik white paper).

Changes:

  1. Removed all instances of transfer, approvals, revokes and operators, and burn, which includes queries, executes, and any related function.
  2. Created a Soul struct which is the NFT that the SBT is bounded to rather than an address. Owner is now a Soul rather than an Addr.
  3. Tests are changed to accomodate to the above changes and they all pass.
  4. In order to be able to query through a Multi-index, a Soul has an implementation to get a key string in that form: {nft_address}_{token_id}
  5. Tried to fix linting/warnings as much as possible.
  6. README for CW5144 is still a WIP and incomplete.

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

Successfully merging this pull request may close these issues.

None yet

1 participant