繁体   English   中英

在 erc721/erc20 代币之间共享 ABI?

[英]Sharing ABI between erc721/erc20 Tokens?

假设我有一个使用 erc721 协议的以太坊合约。 当我使用 web3 创建新合约 object 时。

 const contract = new web3.eth.contract(contractABI, contractAddress);

只要我只使用 erc721 scope 中的函数,是否可以只包含父 erc721 合约的 abi? 还是 web3 需要完整的 abi?

我想知道我是否可以调用共享一个 abi 的多个 erc721 令牌。 谢谢!

是的,您可以将一个通用 ABI 用于多个合同。 限制是您只能使用 ABI 中定义的方法和属性。

反之亦然:如果您调用在 ABI 中定义但未在实际合约中定义的方法,则合约将尝试运行后备 function。


web3需要 ABI 能够告诉如何编码 function arguments 并返回值。 因此,如果您调用foo(1, 2)它应该编码为foo(uint8 1, uint64 2)还是foo(bool true, uint256 2)

但它真的“只是”一个助手,可以在contract.methods.*列表及其编码 map 中生成正确的函数。 因此,如果您不需要其中的一些,您可以通过不在 ABI 中定义它们来跳过此步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM