diff --git a/contractabi/selector.nim b/contractabi/selector.nim index 42f827f..f8fdbe8 100644 --- a/contractabi/selector.nim +++ b/contractabi/selector.nim @@ -37,6 +37,7 @@ solidityType Int256, "int256" solidityType bool, "bool" solidityType string, "string" solidityType Address, "address" +solidityType enum, "uint8" func solidityType*[N: static int, T](_: type array[N, T]): string = when T is byte: diff --git a/tests/contractabi/testSelector.nim b/tests/contractabi/testSelector.nim index 913371b..a329daa 100644 --- a/tests/contractabi/testSelector.nim +++ b/tests/contractabi/testSelector.nim @@ -4,6 +4,10 @@ import pkg/contractabi suite "function selector": + type SomeEnum = enum + One + Two + test "translates nim types into solidity types": check solidityType(uint8) == "uint8" check solidityType(uint16) == "uint16" @@ -29,6 +33,7 @@ suite "function selector": check solidityType(array[4, string]) == "string[4]" check solidityType(seq[string]) == "string[]" check solidityType((Address, string, bool)) == "(address,string,bool)" + check solidityType(SomeEnum) == "uint8" test "calculates solidity function selector": check $selector("transfer", (Address, UInt256)) == "0xa9059cbb"