Sign In

@dedot/merkleized-metadata

Package Overview
Dependencies
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dedot/merkleized-metadata

RFC-0078 Merkleized Metadata Implementation

latest
Source
npmnpm
Version
1.3.0
Version published
Weekly downloads
656
-23.54%
Maintainers
1
Weekly downloads
 
Created
Source

@dedot/merkleized-metadata

Merkleized Metadata Utilities - Implementing the RFC-0078 Merkleized Metadata specification.

Overview

This package provides utilities for:

  • Calculate metadata hash/digest
  • Generate proofs for extrinsic, extrinsic payload or extrinsic parts

Usage

Calculating Metadata Hash/Digest

import { DedotClient, WsProvider } from 'dedot';
import { MerkleizedMetadata } from 'dedot/merkleized-metadata';

// Create a dedot client
const client = await DedotClient.new(new WsProvider('wss://rpc.polkadot.io'));

// Get metadata from the client
const metadata = client.metadata;

// Define chain-specific information
const chainInfo = {
  // These can be omitted as they'll be fetched from metadata
  // specVersion: client.runtimeVersion.specVersion,
  // specName: client.runtimeVersion.specName,
  // ss58Prefix: 0, // Polkadot

  // These are required
  decimals: 10,
  tokenSymbol: 'DOT'
};

// Create a merkleizer instance
const merkleizer = new MerkleizedMetadata(metadata, chainInfo);

// Calculate metadata hash
const hash = merkleizer.digest();
console.log('Metadata Hash:', hash);

Generating Proofs for Extrinsics

import { MerkleizedMetadata } from 'dedot/merkleized-metadata';

// Create a merkleizer instance
const merkleizer = new MerkleizedMetadata(metadata, chainInfo);

// Generate proof for an extrinsic
const extrinsicHex = '0x...'; // Hex-encoded extrinsic
const proof = merkleizer.proofForExtrinsic(extrinsicHex);

// Generate proof for extrinsic payload
const txPayload = '0x...'; // Hex-encoded extrinsic payload
const proof3 = merkleizer.proofForExtrinsicPayload(txPayload);

// Generate proof for extrinsic parts
const callData = '0x...'; // Hex-encoded call data
const includedInExtrinsic = '0x...'; // Hex-encoded extrinsic extra
const includedInSignedData = '0x...'; // Hex-encoded signed extra
const proof2 = merkleizer.proofForExtrinsicParts(callData, includedInExtrinsic, includedInSignedData);

MerkleizedMetadata

Main class for calculating metadata hashes and generating proofs.

  • Constructor: new MerkleizedMetadata(metadata, chainInfo)

    • metadata: Metadata object, hex string, or Uint8Array
    • chainInfo: Chain-specific information (some fields can be omitted as they'll be fetched from metadata)
  • Methods:

    • digest(): Calculate metadata hash and return as Uint8Array
    • proofForExtrinsic(extrinsic, additionalSigned?): Generate proof for an extrinsic
    • proofForExtrinsicPayload(txPayload): Generate proof for extrinsic payload
    • proofForExtrinsicParts(callData, includedInExtrinsic, includedInSignedData): Generate proof for extrinsic parts

License

Apache-2.0

FAQs

Package last updated on 26 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts