Skip to main content
@tevm/voltaire
@tevm/voltaire / primitives/ContractSignature

primitives/ContractSignature

Classes

ContractCallError

Defined in: src/primitives/ContractSignature/errors.ts:17 Error thrown when contract call for signature validation fails

Extends

  • Error

Constructors

Constructor
new ContractCallError(message, context?): ContractCallError
Defined in: src/primitives/ContractSignature/errors.ts:18
Parameters
message
string
context?
unknown
Returns
ContractCallError
Overrides
Error.constructor

Properties

context?
optional context: unknown
Defined in: src/primitives/ContractSignature/errors.ts:24

ContractSignatureError

Defined in: src/primitives/ContractSignature/errors.ts:4 Error thrown when EIP-1271 signature validation fails

Extends

  • Error

Constructors

Constructor
new ContractSignatureError(message, context?): ContractSignatureError
Defined in: src/primitives/ContractSignature/errors.ts:5
Parameters
message
string
context?
unknown
Returns
ContractSignatureError
Overrides
Error.constructor

Properties

context?
optional context: unknown
Defined in: src/primitives/ContractSignature/errors.ts:11

Variables

EIP1271_MAGIC_VALUE

const EIP1271_MAGIC_VALUE: "0x1626ba7e" = "0x1626ba7e"
Defined in: src/primitives/ContractSignature/constants.js:11 Magic value returned by isValidSignature for valid signatures bytes4(keccak256(“isValidSignature(bytes32,bytes)“))

IS_VALID_SIGNATURE_SELECTOR

const IS_VALID_SIGNATURE_SELECTOR: "0x1626ba7e" = "0x1626ba7e"
Defined in: src/primitives/ContractSignature/constants.js:16 Function selector for isValidSignature(bytes32,bytes)

Functions

isValidSignature()

isValidSignature(provider, contractAddress, hash, signature): Promise<boolean>
Defined in: src/primitives/ContractSignature/isValidSignature.js:32 Check if a contract signature is valid via EIP-1271 Calls the contract’s isValidSignature(bytes32,bytes) method and checks if it returns the magic value 0x1626ba7e.

Parameters

provider
JSON-RPC provider
request
(method, params) => Promise<unknown> JSON-RPC request method
contractAddress
Contract address to call string | AddressType
hash
Message hash (bytes32) Uint8Array<ArrayBufferLike> | HashType
signature
Uint8Array<ArrayBufferLike> Signature bytes

Returns

Promise<boolean> True if signature is valid

See

https://eips.ethereum.org/EIPS/eip-1271

Throws

If the contract call fails

Example

import { isValidSignature } from './primitives/ContractSignature/isValidSignature.js';

const isValid = await isValidSignature(
  provider,
  '0x1234...', // contract address
  messageHash,
  signatureBytes
);

VerifySignature()

VerifySignature(deps): (provider, address, hash, signature) => Promise<boolean>
Defined in: src/primitives/ContractSignature/verifySignature.js:13 Factory: Create unified signature verification for EOA and contract accounts

Parameters

deps
Crypto dependencies
addressFromPublicKey
(x, y) => AddressType Address derivation from public key
keccak256
(data) => Uint8Array Keccak256 hash function
recoverPublicKey
(signature, messageHash) => Uint8Array secp256k1 public key recovery

Returns

(provider, address, hash, signature): Promise<boolean>
Parameters
provider
request
(method, params) => Promise<unknown>
address
string | AddressType
hash
Uint8Array<ArrayBufferLike> | HashType
signature
Uint8Array<ArrayBufferLike> | { r: Uint8Array; s: Uint8Array; v: number; }
Returns
Promise<boolean>