0.13.1 • Published 4 months ago
@dedot/merkleized-metadata v0.13.1
@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 Uint8ArraychainInfo: Chain-specific information (some fields can be omitted as they'll be fetched from metadata)
Methods:
digest(): Calculate metadata hash and return as Uint8ArrayproofForExtrinsic(extrinsic, additionalSigned?): Generate proof for an extrinsicproofForExtrinsicPayload(txPayload): Generate proof for extrinsic payloadproofForExtrinsicParts(callData, includedInExtrinsic, includedInSignedData): Generate proof for extrinsic parts
License
Apache-2.0
0.13.1
4 months ago
0.13.1-next.9dc93e20.2
4 months ago
0.13.0
5 months ago
0.12.1-next.c7fd0a6c.2
5 months ago
0.12.1-next.f19f185a.2
5 months ago
0.12.0
5 months ago
0.11.1
5 months ago
0.11.1-next.8aea994f.0
5 months ago
0.11.0
5 months ago
0.10.1-next.b29d4eee.6
5 months ago
0.10.0
5 months ago
0.9.5-next.98544c8c.42
5 months ago
0.9.5-next.4fd5def5.41
5 months ago