taiko-mono icon indicating copy to clipboard operation
taiko-mono copied to clipboard

feat(protocol/relayer/bridge): NFT bridging

Open cyberhorsey opened this issue 2 years ago • 11 comments

cyberhorsey avatar Nov 24 '22 02:11 cyberhorsey

@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 avatar Dec 09 '22 19:12 BGZHU1

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 avatar Dec 09 '22 20:12 cyberhorsey

@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?

dantaik avatar Jan 03 '23 04:01 dantaik

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.

BGZHU1 avatar Jan 03 '23 16:01 BGZHU1

Is this issue resolved? What was the fix?

knisaci avatar Feb 28 '23 12:02 knisaci

I want to know how it goes

cryptokatze avatar Mar 03 '23 09:03 cryptokatze

yeah, i also want to know

maggiemaggiezz avatar Mar 06 '23 13:03 maggiemaggiezz

did it deal?

basenngg avatar Mar 25 '23 10:03 basenngg

The relayer should remain unchanged. Messaging shouldnnot affect the relayer.

tibcoinx avatar Mar 26 '23 19:03 tibcoinx

i want to know

vinskasenda avatar Mar 27 '23 22:03 vinskasenda

did it deal?

I dont think so thats why its open

cryptodezire avatar Mar 28 '23 11:03 cryptodezire

We have started working on NFT bridge support and there are PR that you guys can help review and contribute.

dantaik avatar Jul 15 '23 07:07 dantaik