ERC165合约是IERC165的标准实现。ERC165提供了本合约是否实现了IERC165接口的查询。如果需要额外支持其他interface,可在目标合约内重写supportsInterface(bytes4)方法。
本文档介绍了OpenZeppelin Contracts库中与合约自省相关的接口和合约,包括IERC165、ERC165、ERC165Checker、IERC1820Registry、IERC1820Implementer和ERC1820Implementer。这些工具允许合约声明并查询其他合约实现的接口,以防止错误并实现复杂的交互。
本文介绍了OpenZeppelin Contracts库中常用的实用工具,包括密码学(ECDSA签名验证、Merkle证明验证),合约自检(ERC165接口检测),数学运算(SafeMath安全计算),支付(PaymentSplitter、PullPayment、Escrow),集合(EnumerableSet、EnumerableMap)以及其他实用工具(Address, Counters)。
ERC165Checker库是用来查询已实现IERC165的目标合约自身实现了哪些interface的工具库。在使用时需要注意:利用ERC165Checker提供的查询方法进行查询的过程不会因为目标合约没有实现待查询interface而发生revert。
对ERC165的学习记录及理解
0x01碰到的问题比如下面的代码:我们想从store合约里通过调用getValue方法来获取数据。但问题是,我们并不能确定store合约一定实现了getValue方法。很典型的一种情况是,我们需要将StoreReader不同的环境,不同的环境都有自己的store实现,一
ERC721是一种以太坊上的非同质化代币(NFT,Non-FungibleToken)标准,用于表示唯一的、不可替代的数字资产。它利用了唯一的tokenId来确定每一个NFT代币,每个NFT的合约中管理着一批类似的但每个都是不同的代币:https://learnblockchain
关键词:interface、event、hook、可选扩展、继承结构、ERC165、模块化设计