Skip to content

TypedData.encode

Encodes typed data in EIP-712 format: 0x19 ‖ 0x01 ‖ domainSeparator ‖ hashStruct(message).

Imports

Named
import { TypedData } from 'ox'

Examples

import { TypedData, Hash } from 'ox'
 
const data = TypedData.encode({ 
  domain: {
    name: 'Ether Mail',
    version: '1',
    chainId: 1,
    verifyingContract: '0x0000000000000000000000000000000000000000',
  },
  types: {
    Person: [
      { name: 'name', type: 'string' },
      { name: 'wallet', type: 'address' },
    ],
    Mail: [
      { name: 'from', type: 'Person' },
      { name: 'to', type: 'Person' },
      { name: 'contents', type: 'string' },
    ],
  },
  primaryType: 'Mail',
  message: {
    from: {
      name: 'Cow',
      wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
    },
    to: {
      name: 'Bob',
      wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
    },
    contents: 'Hello, Bob!',
  },
})
'0x19012fdf3441fcaf4f30c7e16292b258a5d7054a4e2e00dbd7b7d2f467f2b8fb9413c52c0ee5d84264471806290a3f2c4cecfc5490626bf912d01f240d7a274b371e'
(0x19 ‖ 0x01 ‖ domainSeparator ‖ hashStruct(message))
const hash = Hash.keccak256(data)

Definition

function encode<typedData, primaryType>(
  value: encode.Value<typedData, primaryType>,
): Hex.Hex

Source: src/core/TypedData.ts

Parameters

value

  • Type: encode.Value<typedData, primaryType>

The Typed Data to encode.

Return Type

The encoded Typed Data.

Hex.Hex