@@ -925,6 +925,137 @@ func TestDecodeFunctionCallData(t *testing.T) {
925925 },
926926 "min_liquidity" : "5937915978828" ,
927927 },
928+ }, {
929+ name : "test 13: too big enum value" ,
930+ args : args {
931+ calldata : []string {
932+ "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" ,
933+ "0x53c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8" ,
934+ "0x20c49ba5e353f80000000000000000" ,
935+ "0x3e8" ,
936+ "0x0" ,
937+ "0x132bb70" ,
938+ "0x3" ,
939+ "0x12fae30" ,
940+ "0x1" ,
941+ "0x566875f644c" ,
942+ },
943+ endpoint : "mint_and_deposit" ,
944+ abi : `[
945+ {
946+ "name": "core::bool",
947+ "type": "enum",
948+ "variants": [
949+ {
950+ "name": "False",
951+ "type": "()"
952+ },
953+ {
954+ "name": "True",
955+ "type": "()"
956+ }
957+ ]
958+ },
959+ {
960+ "name": "ekubo::types::i129::i129",
961+ "type": "struct",
962+ "members": [
963+ {
964+ "name": "mag",
965+ "type": "core::integer::u128"
966+ },
967+ {
968+ "name": "sign",
969+ "type": "core::bool"
970+ }
971+ ]
972+ },
973+ {
974+ "name": "ekubo::types::bounds::Bounds",
975+ "type": "struct",
976+ "members": [
977+ {
978+ "name": "lower",
979+ "type": "ekubo::types::i129::i129"
980+ },
981+ {
982+ "name": "upper",
983+ "type": "ekubo::types::i129::i129"
984+ }
985+ ]
986+ },
987+ {
988+ "name": "ekubo::types::keys::PoolKey",
989+ "type": "struct",
990+ "members": [
991+ {
992+ "name": "token0",
993+ "type": "core::starknet::contract_address::ContractAddress"
994+ },
995+ {
996+ "name": "token1",
997+ "type": "core::starknet::contract_address::ContractAddress"
998+ },
999+ {
1000+ "name": "fee",
1001+ "type": "core::integer::u128"
1002+ },
1003+ {
1004+ "name": "tick_spacing",
1005+ "type": "core::integer::u128"
1006+ },
1007+ {
1008+ "name": "extension",
1009+ "type": "core::starknet::contract_address::ContractAddress"
1010+ }
1011+ ]
1012+ },
1013+ {
1014+ "name": "mint_and_deposit",
1015+ "type": "function",
1016+ "inputs": [
1017+ {
1018+ "name": "pool_key",
1019+ "type": "ekubo::types::keys::PoolKey"
1020+ },
1021+ {
1022+ "name": "bounds",
1023+ "type": "ekubo::types::bounds::Bounds"
1024+ },
1025+ {
1026+ "name": "min_liquidity",
1027+ "type": "core::integer::u128"
1028+ }
1029+ ],
1030+ "outputs": [
1031+ {
1032+ "type": "(core::integer::u64, core::integer::u128)"
1033+ }
1034+ ],
1035+ "state_mutability": "external"
1036+ }
1037+ ]` ,
1038+ },
1039+ want : map [string ]any {
1040+ "pool_key" : map [string ]any {
1041+ "token0" : "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" ,
1042+ "token1" : "0x53c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8" ,
1043+ "fee" : "170141183460469235273462165868118016" ,
1044+ "tick_spacing" : "1000" ,
1045+ "extension" : "0x0" ,
1046+ },
1047+ "bounds" : map [string ]any {
1048+ "lower" : map [string ]any {
1049+ "mag" : "20102000" ,
1050+ "sign" : "0x3" ,
1051+ },
1052+ "upper" : map [string ]any {
1053+ "mag" : "19902000" ,
1054+ "sign" : "True" ,
1055+ },
1056+ },
1057+ "min_liquidity" : "5937915978828" ,
1058+ },
9281059 },
9291060 }
9301061 for _ , tt := range tests {
0 commit comments