Web3js
如何用estimategas證明函式的存在
如何使用 EstimateGas 證明智能合約中函式的存在?謝謝。
不,不可能
estimateGas
在所有情況下都使用它來確定函式的存在。如果一個函式不存在,它將呼叫回退函式。如果它沒有失敗,它將顯示該功能正在執行,但根本沒有任何功能。
其他功能需要特定參數才能工作,如果您不發送正確的參數,它們將失敗。
在某些情況下,例如,如果您懷疑合約是 ERC20,您可以檢查特定功能
balanceOf
,例如decimals
等。
我在函式中放置了estimateGas 而不是.send 或.call,它可以工作。來源:https ://web3js.readthedocs.io/en/v1.2.1/web3-eth-contract.html#methods-mymethod-call
對象:交易對象:
Array - arguments:之前傳遞給方法的參數。它們可以更改。函式 - 呼叫:將呼叫“常量”方法並在 EVM 中執行其智能合約方法,而不發送交易(無法更改智能合約狀態)。功能 - 發送:將交易發送到智能合約並執行其方法(可以更改智能合約狀態)。函式 -estimateGas:將估計方法在鏈上執行時使用的氣體。