Mining

EOA 與合約之間的 ERC721 轉移

  • March 6, 2021

如果我有合約 A 和合約 B(遵循 erc721 標準),兩者都實現了該OnERC721Received功能,那麼任何 tokenId 的轉移如何原子發生?

如果我在合約 A 中有一個帶有tokenIdX (uint256) 的代幣並由 Y( 地址)擁有,並且合約 B 也有一個具有相同tokenIdX 的鑄造代幣,如果是的話,將把該代幣從 A 轉移到 B tokenId 衝突?它是如何在幕後工作的,它是否將所有者更改為合約 B 或在合約 B 中鑄造一個新的代幣並從 A 燒毀?

任何幫助將非常感激!

即使兩個不同合約之間的 tokenID 相同,轉賬也不會發生衝突。

事實上,每當我們談論“轉移”代幣時,這意味著更新代幣合約中的餘額並分配新的所有權(在批准後)。這是一個來自 ERC721 映射實現的範例,其中所有權在轉移後更新:

// Mapping from token ID to owner address
mapping (uint256 => address) private _owners;

因此,在您的範例中,將tokenId X從合約A轉移到合約B只會使用合約B地址更新合約AtokenIdX的所有權。

引用自:https://ethereum.stackexchange.com/questions/94257