@@ -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
458477func 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