簡體   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