智能合约开发:从代币合约到实体建模
1. 代币合约编写
在代币合约的编写中, transferFrom
函数起着关键作用,它负责所有代币的转移。其具体流程如下:
1. 参数验证 :验证传入的参数值,检查 from
和 to
地址格式是否正确,代币 ID 是否大于零,以及该代币是否确实属于所有者。同时,检查 ownedTokenCount
映射中是否有关于所有者和代币 ID 的信息。
2. 余额调整 :验证成功后,减少发送者的代币余额,并增加目标地址的代币数量。
3. 映射更新 :将 tokenapprovals
和 tokenOwner
映射中该代币 ID 的信息置空,然后在 tokenOwner
和 ownedTokens
映射中为目标地址添加新的映射。
4. 事件触发 :最后,触发转移事件,并提供相应的值。
ERC721 依赖于一些其他可选标准,例如 ERC165,它有助于发现合约中实现的接口。ERC165 是 ERC721 实现的一个可选规范,其主要目的是发布接口和相关函数的元数据,调用者可以使用这些元数据来确定是否要与合约进行交互并调用其函数。
ERC165 提供了一个包含单个 supportInterface
函数的