Skip to content

SignatureErc8010

Utility functions for working with ERC-8010 wrapped signatures.

Examples

import { Authorization, PersonalMessage, Secp256k1, Signature } from 'ox'
import { SignatureErc8010 } from 'ox/erc8010'
 
const authorization = Authorization.from({
  address: '0x1234567890abcdef1234567890abcdef12345678',
  chainId: 1,
  nonce: 69n,
})
 
const authorizationSignature = Secp256k1.sign({
  payload: Authorization.getSignPayload(authorization),
  privateKey: '0x...',
})
 
const authorizationSigned = Authorization.from(authorization, {
  signature: authorizationSignature,
})
 
const signature = Secp256k1.sign({
  payload: PersonalMessage.getSignPayload('0xdeadbeef'),
  privateKey: '0x...',
})
 
const wrapped = SignatureErc8010.wrap({ 
  authorization: authorizationSigned, 
  data: '0xcafebabe', 
  signature: Signature.toHex(signature), 
})
'0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041fa78c5905fb0b9d6066ef531f962a62bc6ef0d5eb59ecb134056d206f75aaed7780926ff2601a935c2c79707d9e1799948c9f19dcdde1e090e903b19a07923d01c000000000000000000000000000000000000000000000000000000000000008010801080108010801080108010801080108010801080108010801080108010'

Functions

NameDescription
SignatureErc8010.assertAsserts that the wrapped signature is valid.
SignatureErc8010.fromParses an ERC-8010 wrapped signature into its constituent parts.
SignatureErc8010.unwrapUnwraps an ERC-8010 wrapped signature into its constituent parts.
SignatureErc8010.validateValidates a wrapped signature. Returns true if the wrapped signature is valid, false otherwise.
SignatureErc8010.wrapWraps a signature into ERC-8010 format.

Errors

NameDescription
SignatureErc8010.InvalidWrappedSignatureErrorThrown when the ERC-8010 wrapped signature is invalid.

Types

NameDescription
SignatureErc8010.UnwrappedUnwrapped ERC-8010 signature.
SignatureErc8010.WrappedWrapped ERC-8010 signature.