Mining
EOA 與合約之間的 ERC721 轉移
如果我有合約 A 和合約 B(遵循 erc721 標準),兩者都實現了該
OnERC721Received
功能,那麼任何 tokenId 的轉移如何原子發生?如果我在合約 A 中有一個帶有
tokenId
X (uint256) 的代幣並由 Y( 地址)擁有,並且合約 B 也有一個具有相同tokenId
X 的鑄造代幣,如果是的話,將把該代幣從 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地址更新合約A中tokenId
X的所有權。