recoverTypedDataAddress
Recovers the Ethereum address that signed typed data
Loading...
Recovers the Ethereum address that signed typed data
Recovers the Ethereum address that signed typed data from the typed data and signature.
import "github.com/ChefBingbong/viem-go/utils/signature"import "math/big"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!", },}
address, err := signature.RecoverTypedDataAddress( typedData, "0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c",)if err != nil { log.Fatal(err)}fmt.Printf("Signer: %s", address)(string, error)The Ethereum address that signed the typed data, as a hex string with 0x prefix.
signature.TypedDataDefinitionThe 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!", },}
address, _ := signature.RecoverTypedDataAddress(typedData, sig)any (supports string, []byte, or *signature.Signature)The signature that was generated by signing the typed data.
address, _ := signature.RecoverTypedDataAddress( typedData, "0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c",)This function:
HashTypedData (EIP-712 format)