@@ -11,45 +11,7 @@ mod tests {
1111
1212 #[ test]
1313 fn hash_matches_reference_vector ( ) {
14- let json = r#"
15- {
16- "types": {
17- "EIP712Domain": [
18- { "name": "name", "type": "string" },
19- { "name": "version", "type": "string" },
20- { "name": "chainId", "type": "uint256" },
21- { "name": "verifyingContract", "type": "address" }
22- ],
23- "Person": [
24- { "name": "name", "type": "string" },
25- { "name": "wallet", "type": "address" }
26- ],
27- "Mail": [
28- { "name": "from", "type": "Person" },
29- { "name": "to", "type": "Person" },
30- { "name": "contents", "type": "string" }
31- ]
32- },
33- "primaryType": "Mail",
34- "domain": {
35- "name": "Ether Mail",
36- "version": "1",
37- "chainId": 1,
38- "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
39- },
40- "message": {
41- "from": {
42- "name": "Cow",
43- "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
44- },
45- "to": {
46- "name": "Bob",
47- "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
48- },
49- "contents": "Hello, Bob!"
50- }
51- }
52- "# ;
14+ let json = include_str ! ( "../../testdata/eip712_reference_vector.json" ) ;
5315
5416 let our_hash = hash_typed_data ( json) . expect ( "hash succeeds" ) ;
5517 let expected = <[ u8 ; 32 ] >:: from_hex ( "be609aee343fb3c4b28e1df9e632fca64fcfaede20f02e86244efddf30957bd2" ) . expect ( "valid hex" ) ;
@@ -66,48 +28,7 @@ mod tests {
6628
6729 #[ test]
6830 fn hash_handles_arrays_and_nested_types ( ) {
69- let json = r#"
70- {
71- "types": {
72- "EIP712Domain": [
73- { "name": "name", "type": "string" },
74- { "name": "version", "type": "string" },
75- { "name": "chainId", "type": "uint256" },
76- { "name": "verifyingContract", "type": "address" }
77- ],
78- "Inner": [
79- { "name": "flag", "type": "bool" },
80- { "name": "payload", "type": "bytes32" }
81- ],
82- "Group": [
83- { "name": "members", "type": "address[]" },
84- { "name": "name", "type": "string" },
85- { "name": "nested", "type": "Inner" },
86- { "name": "weights", "type": "uint64[3]" }
87- ]
88- },
89- "primaryType": "Group",
90- "domain": {
91- "name": "Test",
92- "version": "1",
93- "chainId": 31337,
94- "verifyingContract": "0x0000000000000000000000000000000000000001"
95- },
96- "message": {
97- "members": [
98- "0x90f8bf6a479f320ead074411a4b0e7944ea8c9c1",
99- "0xffcf8fdee72ac11b5c542428b35eef5769c409f0",
100- "0x627306090abab3a6e1400e9345bc60c78a8bef57"
101- ],
102- "name": "Team Rocket",
103- "nested": {
104- "flag": true,
105- "payload": "0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20"
106- },
107- "weights": [ "1", "2", "3" ]
108- }
109- }
110- "# ;
31+ let json = include_str ! ( "../../testdata/eip712_arrays_nested.json" ) ;
11132
11233 let digest = hash_typed_data ( json) . expect ( "hash succeeds" ) ;
11334 let expected = <[ u8 ; 32 ] >:: from_hex ( "6acbc18af9d2decca3d38571c2f595b1ebb1b93e9e7b046632df71f6ceb217f9" ) . expect ( "valid hex" ) ;
@@ -116,45 +37,15 @@ mod tests {
11637
11738 #[ test]
11839 fn hash_rejects_missing_message ( ) {
119- let json = r#"
120- {
121- "types": {
122- "EIP712Domain": [],
123- "Simple": [
124- { "name": "value", "type": "uint256" }
125- ]
126- },
127- "primaryType": "Simple",
128- "domain": {},
129- "message": null
130- }
131- "# ;
40+ let json = include_str ! ( "../../testdata/eip712_missing_message.json" ) ;
13241
13342 let err = hash_typed_data ( json) . expect_err ( "missing message returns error" ) ;
13443 assert ! ( err. to_string( ) . contains( "missing message" ) ) ;
13544 }
13645
13746 #[ test]
13847 fn hash_supports_signed_integers ( ) {
139- let json = r#"
140- {
141- "types": {
142- "EIP712Domain": [],
143- "Payload": [
144- { "name": "balance", "type": "int256" },
145- { "name": "delta", "type": "int32" },
146- { "name": "active", "type": "bool" }
147- ]
148- },
149- "primaryType": "Payload",
150- "domain": {},
151- "message": {
152- "balance": "-0x0100",
153- "delta": -42,
154- "active": false
155- }
156- }
157- "# ;
48+ let json = include_str ! ( "../../testdata/eip712_signed_integers.json" ) ;
15849
15950 let digest = hash_typed_data ( json) . expect ( "hash succeeds" ) ;
16051 let expected = <[ u8 ; 32 ] >:: from_hex ( "10e6c8b7c51b08488a421a5492d4524439470010eb2f8c80c22b9d918d79a5a9" ) . expect ( "valid hex" ) ;
0 commit comments