Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Metadata

Encode multisig ISM (Interchain Security Module) metadata: origin merkle tree address, merkle root, index, and validator signatures.

Signature

class Metadata implements Encoder {
  originMerkleTree: Addr32
  merkleRoot: Uint8Array
  merkleIndex: number
  signatures: Uint8Array[]
 
  static from(params: Omit<Metadata, "encode">): Metadata
  encode(): Uint8Array
}

Example

import { Addr32, Metadata } from "@left-curve/sdk/hyperlane"
 
const meta = Metadata.from({
  originMerkleTree: Addr32.from("0x1234567890abcdef1234567890abcdef12345678"),
  merkleRoot: new Uint8Array(32),
  merkleIndex: 0,
  signatures: [new Uint8Array(65)],
})
 
const wire: Uint8Array = meta.encode()

Encoding layout

encode() produces a buffer of 68 + 65 * signatures.length bytes:

OffsetLengthField
032originMerkleTree
3232merkleRoot
644merkleIndex (BE)
6865 eachsignatures[i] (65 bytes per ECDSA signature)

See also