如果我有合同A和合同B(遵循erc721标准),两者都实现了OnERC721Received函数,那么tokenId的传递是如何发生的呢?
如果我在合同A中有tokenId X (uint256)的令牌,并且由Y(地址)拥有,而合同B也有一个与tokenId X相同的铸币令牌,那么是否会将该令牌从A转移到B,如果不是,tokenId会发生碰撞吗?它是如何在引擎盖下工作的,它是否改变了业主的合同B,或者在合同B中制造了一个新的令牌,然后从A中燃烧?
任何帮助都是非常感谢的!
发布于 2021-03-06 05:55:51
即使tokenID在两个不同的合同之间是相同的,也不会发生冲突。
事实上,每当我们谈到“转移”令牌时,这意味着更新令牌契约中的余额并分配新的所有权(在批准之后)。这是映射的ERC721实现中的一个示例,其中在传输后更新所有权:
// Mapping from token ID to owner address
mapping (uint256 => address) private _owners;因此,在您的示例中,将tokenId X从合同A转移到合同B将只更新tokenId X的合同A中的所有权和合同B地址。
https://ethereum.stackexchange.com/questions/94257
复制相似问题