Skip to content

Commit 27dbc71

Browse files
committed
ethcoder: expand test cases
1 parent 7f8d429 commit 27dbc71

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

ethcoder/typed_data_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,25 @@ func TestTypedDataFromJSONPart5(t *testing.T) {
453453
require.NoError(t, err)
454454

455455
require.Equal(t, typedData.Domain.ChainID.Int64(), int64(15))
456+
457+
// Sign and validate
458+
wallet, err := ethwallet.NewWalletFromMnemonic("dose weasel clever culture letter volume endorse used harvest ripple circle install")
459+
require.NoError(t, err)
460+
461+
ethSigedTypedData, typedDataEncodedOut, err := wallet.SignTypedData(typedData)
462+
ethSigedTypedDataHex := ethcoder.HexEncode(ethSigedTypedData)
463+
require.NoError(t, err)
464+
465+
// NOTE: this signature and above method has been compared against ethers v6 test
466+
require.Equal(t,
467+
"0x137f8f9f18f5b2c76725bd94eaec82fd4eab9ac1c8db58377cdc974f8c8295b52ccc352df522ad5d2a50005d2e8781fb05b9a918fd8c89651f9c0ce4dfa866061b",
468+
ethSigedTypedDataHex,
469+
)
470+
471+
// recover / validate signature
472+
valid, err := ethwallet.ValidateEthereumSignature(wallet.Address().Hex(), typedDataEncodedOut, ethSigedTypedDataHex)
473+
require.NoError(t, err)
474+
require.True(t, valid)
456475
}
457476

458477
func TestTypedDataFromJSONPart6(t *testing.T) {
@@ -613,4 +632,23 @@ func TestTypedDataFromJSONPart6(t *testing.T) {
613632
typedData, err := ethcoder.TypedDataFromJSON(typedDataJson)
614633
require.NoError(t, err)
615634
require.NotNil(t, typedData)
635+
636+
// Sign and validate
637+
wallet, err := ethwallet.NewWalletFromMnemonic("dose weasel clever culture letter volume endorse used harvest ripple circle install")
638+
require.NoError(t, err)
639+
640+
ethSigedTypedData, typedDataEncodedOut, err := wallet.SignTypedData(typedData)
641+
ethSigedTypedDataHex := ethcoder.HexEncode(ethSigedTypedData)
642+
require.NoError(t, err)
643+
644+
// NOTE: this signature and above method has been compared against ethers v6 test
645+
require.Equal(t,
646+
"0xcd9d2f3e124e1ebcd870fb63023619a94a604353e9e91428e927117063f991a003cb5713cb1a2bb36ffdb0339b2c4973ce40024948ec08f1174d382b0c458dfe1c",
647+
ethSigedTypedDataHex,
648+
)
649+
650+
// recover / validate signature
651+
valid, err := ethwallet.ValidateEthereumSignature(wallet.Address().Hex(), typedDataEncodedOut, ethSigedTypedDataHex)
652+
require.NoError(t, err)
653+
require.True(t, valid)
616654
}

0 commit comments

Comments
 (0)