@dedot/默克勒兹-元数据
合并元数据公用事业 -- -- 执行 RFC-0078 合并元数据 规格.
概览
这套服务为:
- 计算元数据散列/ digest
- 生成外部有效载荷或外部零部件的证明
使用量
计算元数据 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);
生成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
计算元数据散列和生成证明的主类.
-
构造器数字 :
new MerkleizedMetadata(metadata, chainInfo)metadata: 元数据对象、十六进制字符串, 或 Uint8ArraychainInfo: 链条特定信息(有些字段会从元数据中获取,因此可以省略)
-
方法数字 :
digest(): 计算元数据散列并返回为 Uint8ArrayproofForExtrinsic(extrinsic, additionalSigned?): 生成外部证据proofForExtrinsicPayload(txPayload): 生成外部有效载荷的证明proofForExtrinsicParts(callData, includedInExtrinsic, includedInSignedData): 生成外部部件的证明
许可证
阿帕奇 - 2.0