Solidity
無法從函式中獲取正確的 MethodID
我正在嘗試根據這篇文章從函式中導出 MethodID 。
但是,當我在 Etherscan 上查看此交易時,我看不到如何
swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline)
散列到0x791ac947
.
keccak256("swapExactTokensForETHSupportingFeeOnTransferTokens(uint256, uint256, address[], address, uint256)")
獲取Gives的前 4 個字節0x2e701daa
。我錯過了什麼?
您必須刪除它們之間的空格並將其包裝起來,
bytes4
以便您可以獲得前 4 個字節。function getHash() external pure returns(bytes4 example){ example = bytes4(keccak256("swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)")); }
好吧,這將返回您想要的值。
差不多好了!
您需要刪除空格。所以
swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)
->0x791ac947
。可以在https://emn178.github.io/online-tools/keccak_256.html輕鬆線上測試