@@ -416,3 +416,41 @@ func TestTypedDataFromJSONPart4(t *testing.T) {
416416 require .NoError (t , err )
417417 require .True (t , valid )
418418}
419+
420+ func TypedDataFromJSONPart5 (t * testing.T ) {
421+ typedDataJson := `{
422+ "types": {
423+ "EIP712Domain": [
424+ { "name": "name", "type": "string" },
425+ { "name": "version", "type": "string" },
426+ { "name": "chainId", "type": "uint256" },
427+ { "name": "verifyingContract", "type": "address" },
428+ { "name": "salt", "type": "bytes32" }
429+ ],
430+ "ExampleMessage": [
431+ { "name": "message", "type": "string" },
432+ { "name": "value", "type": "uint256" },
433+ { "name": "from", "type": "address" },
434+ { "name": "to", "type": "address" }
435+ ]
436+ },
437+ "domain": {
438+ "name": "EIP712Example",
439+ "version": "1",
440+ "chainId": "0x0f",
441+ "verifyingContract": "0xc0ffee254729296a45a3885639AC7E10F9d54979",
442+ "salt": "0x70736575646f2d72616e646f6d2076616c756500000000000000000000000000"
443+ },
444+ "message": {
445+ "message": "Test message",
446+ "value": "0x634abebe1d4da48b00000000000000000cde63753dad4f0f42f79ebef71ee924,
447+ "from": "0xc0ffee254729296a45a3885639AC7E10F9d54979",
448+ "to": "0xc0ffee254729296a45a3885639AC7E10F9d54979"
449+ }
450+ }`
451+
452+ typedData , err := ethcoder .TypedDataFromJSON (typedDataJson )
453+ require .NoError (t , err )
454+
455+ require .Equal (t , typedData .Domain .ChainID .Int64 (), int64 (15 ))
456+ }
0 commit comments