@@ -1058,6 +1058,106 @@ mod tests {
1058
1058
/// ```
1059
1059
#[ test]
1060
1060
fn test_exhaustive_data ( ) {
1061
+ const EXPECTED_DIALOGS : & [ ( & str , & str ) ] = & [
1062
+ ( "Domain (1/4)" , "name: Ether Mail" ) ,
1063
+ ( "Domain (2/4)" , "version: 1" ) ,
1064
+ ( "Domain (3/4)" , "chainId: 1" ) ,
1065
+ (
1066
+ "Domain (4/4)" ,
1067
+ "verifyingContract: 0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC" ,
1068
+ ) ,
1069
+ ( "Message (1/23)" , "str: str" ) ,
1070
+ ( "Message (2/23)" , "emptyArray: (empty list)" ) ,
1071
+ ( "Message (3/23)" , "name_address: 0xa21A16EC22a940990922220E4ab5bF4C2310F556" ) ,
1072
+ ( "Message (4/23)" , "name_string: list with 5 elements" ) ,
1073
+ ( "Message (4/23)" , "name_string[1/5]: " ) ,
1074
+ ( "Message (4/23)" , "name_string[2/5]: a" ) ,
1075
+ ( "Message (4/23)" , "name_string[3/5]: aa" ) ,
1076
+ ( "Message (4/23)" , "name_string[4/5]: |@#!$" ) ,
1077
+ ( "Message (4/23)" , "name_string[5/5]: long long long long long long long long" ) ,
1078
+ ( "Message (5/23)" , "name_bytes: list with 2 elements" ) ,
1079
+ ( "Message (5/23)" , "name_bytes[1/2]: 0x" ) ,
1080
+ ( "Message (5/23)" , "name_bytes[2/2]: 0xaabbcc" ) ,
1081
+ ( "Message (6/23)" , "name_bytes1: 0xaa" ) ,
1082
+ ( "Message (7/23)" , "name_bytes10: 0x112233445566778899aa" ) ,
1083
+ ( "Message (8/23)" , "name_bytes32: 0xd0f02988fd881565e927c7473c287322db166901bac03bef55d7a52a5c750ab4" ) ,
1084
+ ( "Message (9/23)" , "name_uint8: list with 4 elements" ) ,
1085
+ ( "Message (9/23)" , "name_uint8[1/4]: 0" ) ,
1086
+ ( "Message (9/23)" , "name_uint8[2/4]: 1" ) ,
1087
+ ( "Message (9/23)" , "name_uint8[3/4]: 10" ) ,
1088
+ ( "Message (9/23)" , "name_uint8[4/4]: 255" ) ,
1089
+ ( "Message (10/23)" , "name_uint32: list with 4 elements" ) ,
1090
+ ( "Message (10/23)" , "name_uint32[1/4]: 0" ) ,
1091
+ ( "Message (10/23)" , "name_uint32[2/4]: 256" ) ,
1092
+ ( "Message (10/23)" , "name_uint32[3/4]: 65536" ) ,
1093
+ ( "Message (10/23)" , "name_uint32[4/4]: 4294967295" ) ,
1094
+ ( "Message (11/23)" , "name_uint64: 18446744073709551615" ) ,
1095
+ ( "Message (12/23)" , "name_uint128: 340282366920938463463374607431768211455" ) ,
1096
+ ( "Message (13/23)" , "name_uint256: 115792089237316195423570985008687907853269984665640564039457584007913129639935" ) ,
1097
+ ( "Message (14/23)" , "name_int8: list with 5 elements" ) ,
1098
+ ( "Message (14/23)" , "name_int8[1/5]: 0" ) ,
1099
+ ( "Message (14/23)" , "name_int8[2/5]: 10" ) ,
1100
+ ( "Message (14/23)" , "name_int8[3/5]: -10" ) ,
1101
+ ( "Message (14/23)" , "name_int8[4/5]: 127" ) ,
1102
+ ( "Message (14/23)" , "name_int8[5/5]: -128" ) ,
1103
+ ( "Message (15/23)" , "name_int32: list with 2 elements" ) ,
1104
+ ( "Message (15/23)" , "name_int32[1/2]: 2147483647" ) ,
1105
+ ( "Message (15/23)" , "name_int32[2/2]: -2147483648" ) ,
1106
+ ( "Message (16/23)" , "name_int64: list with 4 elements" ) ,
1107
+ ( "Message (16/23)" , "name_int64[1/4]: 500" ) ,
1108
+ ( "Message (16/23)" , "name_int64[2/4]: -500" ) ,
1109
+ ( "Message (16/23)" , "name_int64[3/4]: 9223372036854775807" ) ,
1110
+ ( "Message (16/23)" , "name_int64[4/4]: -9223372036854775808" ) ,
1111
+ ( "Message (17/23)" , "name_int128: list with 2 elements" ) ,
1112
+ ( "Message (17/23)" , "name_int128[1/2]: 170141183460469231731687303715884105727" ) ,
1113
+ ( "Message (17/23)" , "name_int128[2/2]: -170141183460469231731687303715884105728" ) ,
1114
+ ( "Message (18/23)" , "name_int256: list with 2 elements" ) ,
1115
+ ( "Message (18/23)" , "name_int256[1/2]: 57896044618658097711785492504343953926634992332820282019728792003956564819967" ) ,
1116
+ ( "Message (18/23)" , "name_int256[2/2]: -57896044618658097711785492504343953926634992332820282019728792003956564819968" ) ,
1117
+ ( "Message (19/23)" , "name_bool: list with 2 elements" ) ,
1118
+ ( "Message (19/23)" , "name_bool[1/2]: false" ) ,
1119
+ ( "Message (19/23)" , "name_bool[2/2]: true" ) ,
1120
+ ( "Message (20/23)" , "name_struct.name: struct name" ) ,
1121
+ ( "Message (20/23)" , "name_struct.arr: (empty list)" ) ,
1122
+ ( "Message (21/23)" , "arrayOfStructs: list with 3 elements" ) ,
1123
+ ( "Message (21/23)" , "arrayOfStructs[1/3].name: name 1" ) ,
1124
+ ( "Message (21/23)" , "arrayOfStructs[1/3].arr: (empty list)" ) ,
1125
+ ( "Message (21/23)" , "arrayOfStructs[2/3].name: name 2" ) ,
1126
+ ( "Message (21/23)" , "arrayOfStructs[2/3].arr: list with 1 elements" ) ,
1127
+ ( "Message (21/23)" , "arrayOfStructs[2/3].arr[1/1]: false" ) ,
1128
+ ( "Message (21/23)" , "arrayOfStructs[3/3].name: name 3" ) ,
1129
+ ( "Message (21/23)" , "arrayOfStructs[3/3].arr: list with 2 elements" ) ,
1130
+ ( "Message (21/23)" , "arrayOfStructs[3/3].arr[1/2]: false" ) ,
1131
+ ( "Message (21/23)" , "arrayOfStructs[3/3].arr[2/2]: true" ) ,
1132
+ ( "Message (22/23)" , "fixedArrayOfStructs: list with 2 elements" ) ,
1133
+ ( "Message (22/23)" , "fixedArrayOfStructs[1/2].name: name 1" ) ,
1134
+ ( "Message (22/23)" , "fixedArrayOfStructs[1/2].arr: (empty list)" ) ,
1135
+ ( "Message (22/23)" , "fixedArrayOfStructs[2/2].name: name 2" ) ,
1136
+ ( "Message (22/23)" , "fixedArrayOfStructs[2/2].arr: list with 3 elements" ) ,
1137
+ ( "Message (22/23)" , "fixedArrayOfStructs[2/2].arr[1/3]: false" ) ,
1138
+ ( "Message (22/23)" , "fixedArrayOfStructs[2/2].arr[2/3]: false" ) ,
1139
+ ( "Message (22/23)" , "fixedArrayOfStructs[2/2].arr[3/3]: true" ) ,
1140
+ ( "Message (23/23)" , "nestedArray: list with 3 elements" ) ,
1141
+ ( "Message (23/23)" , "nestedArray[1/3]: list with 2 elements" ) ,
1142
+ ( "Message (23/23)" , "nestedArray[1/3][1/2]: list with 2 elements" ) ,
1143
+ ( "Message (23/23)" , "nestedArray[1/3][1/2][1/2]: 1" ) ,
1144
+ ( "Message (23/23)" , "nestedArray[1/3][1/2][2/2]: 2" ) ,
1145
+ ( "Message (23/23)" , "nestedArray[1/3][2/2]: list with 3 elements" ) ,
1146
+ ( "Message (23/23)" , "nestedArray[1/3][2/2][1/3]: 3" ) ,
1147
+ ( "Message (23/23)" , "nestedArray[1/3][2/2][2/3]: 4" ) ,
1148
+ ( "Message (23/23)" , "nestedArray[1/3][2/2][3/3]: 5" ) ,
1149
+ ( "Message (23/23)" , "nestedArray[2/3]: list with 2 elements" ) ,
1150
+ ( "Message (23/23)" , "nestedArray[2/3][1/2]: list with 2 elements" ) ,
1151
+ ( "Message (23/23)" , "nestedArray[2/3][1/2][1/2]: 6" ) ,
1152
+ ( "Message (23/23)" , "nestedArray[2/3][1/2][2/2]: 7" ) ,
1153
+ ( "Message (23/23)" , "nestedArray[2/3][2/2]: list with 1 elements" ) ,
1154
+ ( "Message (23/23)" , "nestedArray[2/3][2/2][1/1]: 8" ) ,
1155
+ ( "Message (23/23)" , "nestedArray[3/3]: list with 2 elements" ) ,
1156
+ ( "Message (23/23)" , "nestedArray[3/3][1/2]: (empty list)" ) ,
1157
+ ( "Message (23/23)" , "nestedArray[3/3][2/2]: list with 1 elements" ) ,
1158
+ ( "Message (23/23)" , "nestedArray[3/3][2/2][1/1]: 9" ) ,
1159
+ ] ;
1160
+
1061
1161
let bytes32 = b"\xd0 \xf0 \x29 \x88 \xfd \x88 \x15 \x65 \xe9 \x27 \xc7 \x47 \x3c \x28 \x73 \x22 \xdb \x16 \x69 \x01 \xba \xc0 \x3b \xef \x55 \xd7 \xa5 \x2a \x5c \x75 \x0a \xb4 " ;
1062
1162
let bigint256_positive = b"\x7f \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff " ;
1063
1163
let bigint256_negative = b"\x80 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 " ;
@@ -1290,8 +1390,14 @@ mod tests {
1290
1390
Ok ( typed_msg. handle_host_response ( & response) . unwrap ( ) )
1291
1391
} ) ) ;
1292
1392
}
1393
+ static mut UI_COUNTER : usize = 0 ;
1293
1394
mock ( Data {
1294
- ui_confirm_create : Some ( Box :: new ( |_params| true ) ) ,
1395
+ ui_confirm_create : Some ( Box :: new ( |params| unsafe {
1396
+ let expected = EXPECTED_DIALOGS [ UI_COUNTER ] ;
1397
+ assert_eq ! ( ( params. title, params. body) , expected) ;
1398
+ UI_COUNTER += 1 ;
1399
+ true
1400
+ } ) ) ,
1295
1401
..Default :: default ( )
1296
1402
} ) ;
1297
1403
let typed_msg = typed_msg. borrow ( ) ;
@@ -1300,6 +1406,7 @@ mod tests {
1300
1406
sighash,
1301
1407
* b"\xc5 \x4f \xa7 \x87 \x13 \x18 \xb6 \xc2 \xd8 \x71 \x62 \xde \xbe \xff \x4c \xdf \x13 \xf2 \x85 \x45 \x12 \xf3 \x43 \x6a \x04 \xa6 \x0c \xd1 \xa7 \xcf \x47 \xc5 " ,
1302
1408
) ;
1409
+ assert_eq ! ( unsafe { UI_COUNTER } , EXPECTED_DIALOGS . len( ) ) ;
1303
1410
}
1304
1411
1305
1412
/// Test case whree primaryType=='EIP712Domain'.
0 commit comments