[英]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.