viem-goviem-go

isErc6492Signature

Checks if a signature is in ERC-6492 format

isErc6492Signature

Checks whether a signature is in ERC-6492 format. ERC-6492 signatures are used for counterfactual contract account verification.

Import

import "github.com/ChefBingbong/viem-go/utils/signature"

Usage

import "github.com/ChefBingbong/viem-go/utils/signature"
// Check if signature is ERC-6492 format
isErc6492 := signature.IsErc6492Signature(
"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492",
)
fmt.Printf("Is ERC-6492: %v
", isErc6492)
// Is ERC-6492: true
// Regular signature
isErc6492 = signature.IsErc6492Signature(
"0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c",
)
fmt.Printf("Is ERC-6492: %v
", isErc6492)
// Is ERC-6492: false

Returns

  • Type: bool

true if the signature is in ERC-6492 format, false otherwise.

Parameters

signature (required)

  • Type: string

The signature string to check. ERC-6492 signatures end with specific magic bytes.

isErc6492 := signature.IsErc6492Signature(
"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe...6492649264926492649264926492649264926492649264926492649264926492",
)

Notes

  • ERC-6492 signatures end with magic bytes: 0x6492649264926492649264926492649264926492649264926492649264926492
  • These signatures are used for counterfactual contract account verification
  • The signature format is: abi.encode(address, bytes, bytes) + magicBytes
  • If a signature is not ERC-6492 format, it's treated as a regular signature