@@ -13,75 +13,8 @@ import web3swift
1313
1414/// Tests based primarily on the following example https://eips.ethereum.org/assets/eip-712/Example.js
1515class EIP712TypedDataPayloadTests : XCTestCase {
16- let testTypedDataPayload = """
17- {
18- " types " :{
19- " EIP712Domain " :[
20- {
21- " name " : " name " ,
22- " type " : " string "
23- },
24- {
25- " name " : " version " ,
26- " type " : " string "
27- },
28- {
29- " name " : " chainId " ,
30- " type " : " uint256 "
31- },
32- {
33- " name " : " verifyingContract " ,
34- " type " : " address "
35- }
36- ],
37- " Person " :[
38- {
39- " name " : " name " ,
40- " type " : " string "
41- },
42- {
43- " name " : " wallet " ,
44- " type " : " address "
45- }
46- ],
47- " Mail " :[
48- {
49- " name " : " from " ,
50- " type " : " Person "
51- },
52- {
53- " name " : " to " ,
54- " type " : " Person "
55- },
56- {
57- " name " : " contents " ,
58- " type " : " string "
59- }
60- ]
61- },
62- " primaryType " : " Mail " ,
63- " domain " :{
64- " name " : " Ether Mail " ,
65- " version " : " 1 " ,
66- " chainId " :1,
67- " verifyingContract " : " 0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC "
68- },
69- " message " :{
70- " from " :{
71- " name " : " Cow " ,
72- " wallet " : " 0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826 "
73- },
74- " to " :{
75- " name " : " Bob " ,
76- " wallet " : " 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB "
77- },
78- " contents " : " Hello, Bob! "
79- }
80- }
81- """
82-
8316 func testEIP712Parser( ) throws {
84- let parsedEip712TypedData = try EIP712Parser . parse ( testTypedDataPayload)
17+ let parsedEip712TypedData = try EIP712Parser . parse ( EIP712TestData . testTypedDataPayload)
8518
8619 XCTAssertEqual ( parsedEip712TypedData. types. count, 3 )
8720 let eip712Domain = parsedEip712TypedData. types [ " EIP712Domain " ]
@@ -210,21 +143,21 @@ class EIP712TypedDataPayloadTests: XCTestCase {
210143 }
211144
212145 func testEIP712EncodeType( ) throws {
213- let parsedEip712TypedData = try EIP712Parser . parse ( testTypedDataPayload)
146+ let parsedEip712TypedData = try EIP712Parser . parse ( EIP712TestData . testTypedDataPayload)
214147 try XCTAssertEqual ( parsedEip712TypedData. encodeType ( " EIP712Domain " ) , " EIP712Domain(string name,string version,uint256 chainId,address verifyingContract) " )
215148 try XCTAssertEqual ( parsedEip712TypedData. encodeType ( " Person " ) , " Person(string name,address wallet) " )
216149 try XCTAssertEqual ( parsedEip712TypedData. encodeType ( " Mail " ) , " Mail(Person from,Person to,string contents)Person(string name,address wallet) " )
217150 }
218151
219152 func testEIP712TypeHash( ) throws {
220- let parsedEip712TypedData = try EIP712Parser . parse ( testTypedDataPayload)
153+ let parsedEip712TypedData = try EIP712Parser . parse ( EIP712TestData . testTypedDataPayload)
221154 try XCTAssertEqual ( parsedEip712TypedData. typeHash ( " EIP712Domain " ) , " 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f " )
222155 try XCTAssertEqual ( parsedEip712TypedData. typeHash ( " Person " ) , " 0xb9d8c78acf9b987311de6c7b45bb6a9c8e1bf361fa7fd3467a2163f994c79500 " )
223156 try XCTAssertEqual ( parsedEip712TypedData. typeHash ( " Mail " ) , " 0xa0cedeb2dc280ba39b857546d74f5549c3a1d7bdc2dd96bf881f76108e23dac2 " )
224157 }
225158
226159 func testEIP712EncodeData( ) throws {
227- let parsedEip712TypedData = try EIP712Parser . parse ( testTypedDataPayload)
160+ let parsedEip712TypedData = try EIP712Parser . parse ( EIP712TestData . testTypedDataPayload)
228161 let encodedMessage = " a0cedeb2dc280ba39b857546d74f5549c3a1d7bdc2dd96bf881f76108e23dac2fc71e5fa27ff56c350aa531bc129ebdf613b772b6604664f5d8dbe21b85eb0c8cd54f074a4af31b4411ff6a60c9719dbd559c221c8ac3492d9d872b041d703d1b5aadf3154a261abdd9086fc627b61efca26ae5702701d05cd2305f7c52a2fc8 "
229162 XCTAssertEqual ( try parsedEip712TypedData. encodeData ( ) . toHexString ( ) , encodedMessage)
230163 XCTAssertEqual ( try parsedEip712TypedData. encodeData ( parsedEip712TypedData. primaryType, data: parsedEip712TypedData. message) . toHexString ( ) , encodedMessage)
@@ -242,19 +175,19 @@ class EIP712TypedDataPayloadTests: XCTestCase {
242175 }
243176
244177 func testEIP712StructHash( ) throws {
245- let parsedEip712TypedData = try EIP712Parser . parse ( testTypedDataPayload)
178+ let parsedEip712TypedData = try EIP712Parser . parse ( EIP712TestData . testTypedDataPayload)
246179 XCTAssertEqual ( try parsedEip712TypedData. structHash ( ) . toHexString ( ) , " c52c0ee5d84264471806290a3f2c4cecfc5490626bf912d01f240d7a274b371e " )
247180 XCTAssertEqual ( try parsedEip712TypedData. structHash ( " EIP712Domain " , data: parsedEip712TypedData. domain) . toHexString ( ) ,
248181 " f2cee375fa42b42143804025fc449deafd50cc031ca257e0b194a650a912090f " )
249182 }
250183
251184 func testEIP712SignHash( ) throws {
252- let parsedEip712TypedData = try EIP712Parser . parse ( testTypedDataPayload)
185+ let parsedEip712TypedData = try EIP712Parser . parse ( EIP712TestData . testTypedDataPayload)
253186 XCTAssertEqual ( try parsedEip712TypedData. signHash ( ) . toHexString ( ) , " be609aee343fb3c4b28e1df9e632fca64fcfaede20f02e86244efddf30957bd2 " )
254187 }
255188
256189 func testEIP712Signing( ) throws {
257- let parsedEip712TypedData = try EIP712Parser . parse ( testTypedDataPayload)
190+ let parsedEip712TypedData = try EIP712Parser . parse ( EIP712TestData . testTypedDataPayload)
258191 let privateKey = Data . fromHex ( " cow " . sha3 ( . keccak256) . addHexPrefix ( ) ) !
259192 let publicKey = Utilities . privateToPublic ( privateKey) !
260193 let address = Utilities . publicToAddress ( publicKey) !
0 commit comments