Function-Selector
如果使用自定義類型,函式的函式簽名是什麼?(結構、列舉等)
我有以下列舉,它是函式的輸入
enum Cat { Tabby, Rascal, Cool } function hiMom(Cat myCat) public {
的函式簽名是
hiMom(Cat)
什麼?
您需要知道函式的基本類型並使用它。
對於列舉,類型是
uint8
.您可以使用以下
--abi
選項solc
(或其他編譯器)來確定這一點:❯ solc --abi - <<EOF | tail -1 | jq // SPDX-License-Identifier: MIT pragma solidity 0.8.17; enum Cat { Tabby, Rascal, Cool } contract Foo { function hiMom(Cat myCat) public {} } EOF [ { "inputs": [ { "internalType": "enum Cat", "name": "myCat", "type": "uint8" # ^^^^^ <- THIS IS THE BASE TYPE <------------ } ], "name": "hiMom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
在演員表中:
cast sig "hiMom(uint8)"