Skip to content

Commit 21b2f58

Browse files
committed
MarshalJSON
1 parent 27dbc71 commit 21b2f58

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

ethcoder/typed_data_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ethcoder_test
22

33
import (
4+
"encoding/json"
45
"math/big"
56
"testing"
67

@@ -472,6 +473,20 @@ func TestTypedDataFromJSONPart5(t *testing.T) {
472473
valid, err := ethwallet.ValidateEthereumSignature(wallet.Address().Hex(), typedDataEncodedOut, ethSigedTypedDataHex)
473474
require.NoError(t, err)
474475
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)
475490
}
476491

477492
func TestTypedDataFromJSONPart6(t *testing.T) {
@@ -651,4 +666,18 @@ func TestTypedDataFromJSONPart6(t *testing.T) {
651666
valid, err := ethwallet.ValidateEthereumSignature(wallet.Address().Hex(), typedDataEncodedOut, ethSigedTypedDataHex)
652667
require.NoError(t, err)
653668
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)
654683
}

0 commit comments

Comments
 (0)