A new way of Linking 2.0
This repo is a Dapp that shows the functionality of the the ERC721MultiLinkable (E7ML) standard , a modification of the original ERC721Linkable (E7L) standard developed by RacksLabs.
- The E7ML token can be linked to any ERC721 token that exists by calling the
linkToken
function - The E7ML token can't be transferred if it's not linked
- The E7ML token can't be unlinked
- If the parent token of the E7ML is transferred, calling the function
syncToken
on the E7ML it'll transfer the E7ML to the owner of the parent token - Callign
tokenInfo
on the E7ML will return the struct MultiLinkable of that token
struct MultiLinkableToken {
bool linked;
address parentContract;
uint256 parentTokenId;
}
To test and show the use of the ERC-721 MultiLinkable standard I've created a frontend so that any user can easily interact with the test E7ML token I've deployed.
The steps to follow in the demo are the following (The italic is indicating in which tab of the page you can do the step):
- Receive an NFT that represents a Certification for a web3 course (Airdrops tab)
- Mint the E7ML token by burning the Certification NFT (Mint E7ML tab)
- Receive TOKEN1, a test ERC721 token that we'll use to link the E7ML (Airdrops tab)
- Link the E7ML with the TOKEN1 (Link E7ML tab)
- Check the E7ML tokens you have and see if they're linked or not (Your Wallet tab)
Right now I'm having some problems to ship the web to production but you can enjoy it by doing the next steps:
- Run
cd vite-project
- Run
yarn
- Run
yarn dev
and the page will open in localhost - Run
yarn hardhat test
in thehardhat
folder to run the tests
All the contracts are deployed in the Goerli testnet.
- E7ML token: 0x734f8Fca5EEce762BaEDD2831d93EE300733579F
- TOKEN1: 0x883aAaeEdB3E74C7D765B2beF31823Fd4B479a19
- Certification: 0x62205E0359c17dB532E0fA2aAFf494Db93c92d55