taiko-mono
taiko-mono copied to clipboard
feat(protocol/relayer/bridge): NFT bridging
@cyberhorsey @dantaik Hi! I am new here. I am not clear about the context of the issue. From the request title, I assume this issue involves adding codes in the protocol, relayer, and bridge sections. Can you give me an example of how the NFT bridging feature will work with different code layers?
Hi BGHU1!
Much in the same way the current implementation can bridge ERC20s, we want to bridge ERC721 and ERC1155.
We have a TokenVault.sol
contract that can handle this bridging, and will call the Bridge itself after preparing the data. You can see sendERC20
and receiveERC20
methods on this TokenVault.
If the token being bridged does not have an implementation contract on the destination chain, the TokenVault handles deploying that contract before minting the asset to the owner.
This logic holds true for NFT bridging as well, but does not have an implementation yet.
The relayer should remain unchanged as Messsage's are a constant between types of messages: whether the message is sending ETH, ERC20s, or ERC721/ERC1155, this should not affect the relayer, as the same functions with the same arguments are called on the destination Bridge regardless.
The bridge-ui folder would also need the ability to select and bridge NFTs.
@cyberhorsey @dantaik Hi! I am new here. I am not clear about the context of the issue. From the request title, I assume this issue involves adding codes in the protocol, relayer, and bridge sections. Can you give me an example of how the NFT bridging feature will work with different code layers?
@BGZHU1 do you want to try the solidity implementation of the NFT bridge?
Hi @cyberhorsey @dantaik, Just back from holiday vacation and apologize for lagging communication on my side. I did some intial investigation. It seems like I need to implement BridgedERC721 contract and BridgedERC1155 contract. And add send/receive ERC721 & ERC1155 methods in token vault using the open zeppelin library. In order to test the development, I need to modify config and run my own bridge UI, node and relayer, and deploy the contract locally, is that correct? How is bridge UI, node and relayer connected and communication between each other? I am new to solidity dev, and thanks for clarifying.
Is this issue resolved? What was the fix?
I want to know how it goes
yeah, i also want to know
did it deal?
The relayer should remain unchanged. Messaging shouldnnot affect the relayer.
i want to know
did it deal?
I dont think so thats why its open
We have started working on NFT bridge support and there are PR that you guys can help review and contribute.