Contract-Development

合約具有不在 ABI 或原始碼中的可呼叫函式

  • June 25, 2022

我發現了幾個合約,我可以在合約的前端呼叫函式,但它們既不存在於合約原始碼中,也不存在於 ABI 中。

當我呼叫函式時,ftmscan(etherscan的模擬)顯示函式名稱,但是當我去合約頁面查看原始碼和ABI時,找不到函式的踪跡。

這怎麼可能?

如果我手動修改 ABI 以包含該函式,我是否能夠在不使用前端的情況下呼叫該函式,例如使用 web3 python 包?

如果您包含更多詳細資訊,例如契約地址,我們可以提供更好的幫助。但是在您的情況下,該契約似乎是Proxy Contract,這就是您看不到實現或相應 ABI 的原因。

是的,您可以手動將您正在呼叫的方法添加到 ABI 並與 web3 庫一起使用。或者,您也可以使用encodeFunctionSignature

引用自:https://ethereum.stackexchange.com/questions/130724