|
1 | 1 | package ethcoder_test |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "encoding/json" |
4 | 5 | "math/big" |
5 | 6 | "testing" |
6 | 7 |
|
@@ -472,6 +473,20 @@ func TestTypedDataFromJSONPart5(t *testing.T) { |
472 | 473 | valid, err := ethwallet.ValidateEthereumSignature(wallet.Address().Hex(), typedDataEncodedOut, ethSigedTypedDataHex) |
473 | 474 | require.NoError(t, err) |
474 | 475 | require.True(t, valid) |
| 476 | + |
| 477 | + // test MarshalJSON by encoding, then comparing digests |
| 478 | + jsonOut, err := json.Marshal(typedData) |
| 479 | + require.NoError(t, err) |
| 480 | + |
| 481 | + typedData2, err := ethcoder.TypedDataFromJSON(string(jsonOut)) |
| 482 | + require.NoError(t, err) |
| 483 | + |
| 484 | + digest, err := typedData.EncodeDigest() |
| 485 | + require.NoError(t, err) |
| 486 | + |
| 487 | + digest2, err := typedData2.EncodeDigest() |
| 488 | + require.NoError(t, err) |
| 489 | + require.Equal(t, digest, digest2) |
475 | 490 | } |
476 | 491 |
|
477 | 492 | func TestTypedDataFromJSONPart6(t *testing.T) { |
@@ -651,4 +666,18 @@ func TestTypedDataFromJSONPart6(t *testing.T) { |
651 | 666 | valid, err := ethwallet.ValidateEthereumSignature(wallet.Address().Hex(), typedDataEncodedOut, ethSigedTypedDataHex) |
652 | 667 | require.NoError(t, err) |
653 | 668 | require.True(t, valid) |
| 669 | + |
| 670 | + // test MarshalJSON by encoding, then comparing digests |
| 671 | + jsonOut, err := json.Marshal(typedData) |
| 672 | + require.NoError(t, err) |
| 673 | + |
| 674 | + typedData2, err := ethcoder.TypedDataFromJSON(string(jsonOut)) |
| 675 | + require.NoError(t, err) |
| 676 | + |
| 677 | + digest, err := typedData.EncodeDigest() |
| 678 | + require.NoError(t, err) |
| 679 | + |
| 680 | + digest2, err := typedData2.EncodeDigest() |
| 681 | + require.NoError(t, err) |
| 682 | + require.Equal(t, digest, digest2) |
654 | 683 | } |
0 commit comments