verifyTypedData
Verifies if a signed typed data was generated by the provided address
verifyTypedData
Verifies that typed data was signed by the provided address.
Import
import "github.com/ChefBingbong/viem-go/utils/signature"import "math/big"Usage
import "github.com/ChefBingbong/viem-go/utils/signature"import "math/big"
typedData := signature.TypedDataDefinition{ Domain: signature.TypedDataDomain{ Name: "My App", Version: "1", ChainId: big.NewInt(1), }, Types: map[string][]signature.TypedDataField{ "Message": { {Name: "content", Type: "string"}, }, }, PrimaryType: "Message", Message: map[string]any{ "content": "Hello!", },}
valid, err := signature.VerifyTypedData( "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", typedData, "0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c",)if err != nil { log.Fatal(err)}fmt.Printf("Valid: %v", valid)Returns
- Type:
(bool, error)
true if the provided address generated the signature, false otherwise.
Parameters
address (required)
- Type:
string
The Ethereum address that signed the original typed data.
valid, _ := signature.VerifyTypedData( "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", typedData, sig,)typedData (required)
- Type:
signature.TypedDataDefinition
The typed data definition that was signed. Must match exactly what was signed.
typedData := signature.TypedDataDefinition{ Domain: signature.TypedDataDomain{ Name: "My App", Version: "1", ChainId: big.NewInt(1), }, Types: map[string][]signature.TypedDataField{ "Message": { {Name: "content", Type: "string"}, }, }, PrimaryType: "Message", Message: map[string]any{ "content": "Hello!", },}
valid, _ := signature.VerifyTypedData(address, typedData, sig)signature (required)
- Type:
any(supportsstring,[]byte, or*signature.Signature)
The signature that was generated by signing the typed data with the address's private key.
valid, _ := signature.VerifyTypedData(address, typedData, "0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c")Implementation
This function:
- Recovers the address from the typed data and signature using
RecoverTypedDataAddress - Compares the recovered address with the provided address (case-insensitive)
- Returns
trueif they match,falseotherwise