Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@polkadot-api/metadata-builders

Package Overview
Dependencies
Maintainers
2
Versions
201
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@polkadot-api/metadata-builders - npm Package Compare versions

Comparing version 0.0.1-51563d50a83ea0eca57fa1ddfb8b29335b9fb314.1.0 to 0.0.1-51a43f79a2cd839540afd0ca5231bf97fce5902a.1.0

83

dist/index.d.ts
import * as scale from '@polkadot-api/substrate-bindings';
import { StringRecord, V14, Codec, Decoder, HexString } from '@polkadot-api/substrate-bindings';
export { Decoder, HexString, StringRecord, V14 } from '@polkadot-api/substrate-bindings';
import { StringRecord, V15, Codec, Decoder, HexString } from '@polkadot-api/substrate-bindings';
export { Decoder, HexString, StringRecord, V15 } from '@polkadot-api/substrate-bindings';

@@ -21,3 +21,6 @@ type VoidVar = {

};
type TerminalVar = PrimitiveVar | CompactVar | BitSequenceVar;
type AccountId32 = {
type: "AccountId32";
};
type TerminalVar = PrimitiveVar | CompactVar | BitSequenceVar | AccountId32;
type TupleVar = {

@@ -40,2 +43,13 @@ type: "tuple";

};
type OptionVar = {
type: "option";
value: LookupEntry;
};
type ResultVar = {
type: "result";
value: {
ok: LookupEntry;
ko: LookupEntry;
};
};
type SequenceVar = {

@@ -50,3 +64,3 @@ type: "sequence";

};
type ComposedVar = TupleVar | StructVar | SequenceVar | ArrayVar | EnumVar;
type ComposedVar = TupleVar | StructVar | SequenceVar | ArrayVar | OptionVar | ResultVar | EnumVar;
type Var = TerminalVar | ComposedVar;

@@ -61,3 +75,3 @@ type LookupEntry = {

name: string;
type: number | void | undefined;
type: number | undefined;
}[];

@@ -67,5 +81,5 @@ def: {

value: {
name: string | void | undefined;
name: string | undefined;
type: number;
typeName: string | void | undefined;
typeName: string | undefined;
docs: string[];

@@ -78,5 +92,5 @@ }[];

fields: {
name: string | void | undefined;
name: string | undefined;
type: number;
typeName: string | void | undefined;
typeName: string | undefined;
docs: string[];

@@ -174,5 +188,6 @@ }[];

typeImports: Set<string>;
enums: Map<string, string>;
variables: Map<string, Variable>;
}
declare const getStaticBuilder: (metadata: V14) => {
declare const getStaticBuilder: (metadata: V15, namespace: string) => {
buildDefinition: (id: number) => string;

@@ -185,9 +200,14 @@ buildStorage: (pallet: string, entry: string) => {

buildError: (pallet: string, name: string) => string;
buildCall: (pallet: string, callName: string) => string;
buildCall: (pallet: string, name: string) => string;
buildRuntimeCall: (api: string, method: string) => {
args: string;
value: string;
};
buildConstant: (pallet: string, constantName: string) => string;
getTypeFromVarName: (varName: string) => string;
getCode: () => string;
getEnums: () => string[];
};
declare const getDynamicBuilder: (metadata: V14) => {
declare const getDynamicBuilder: (metadata: V15) => {
buildDefinition: (id: number) => Codec<any>;

@@ -215,2 +235,6 @@ buildStorage: (pallet: string, entry: string) => {

};
buildRuntimeCall: (api: string, method: string) => {
args: Codec<any[]>;
value: Codec<any>;
};
buildCall: (pallet: string, name: string) => {

@@ -227,4 +251,5 @@ args: Codec<any>;

declare const getChecksumBuilder: (metadata: V14) => {
declare const getChecksumBuilder: (metadata: V15) => {
buildDefinition: (id: number) => string | null;
buildRuntimeCall: (api: string, method: string) => string | null;
buildStorage: (pallet: string, entry: string) => string | null;

@@ -245,3 +270,3 @@ buildCall: (pallet: string, name: string) => string | null;

};
type GetViewBuilder = (metadata: V14) => {
type GetViewBuilder = (metadata: V15) => {
buildDefinition: (idx: number) => {

@@ -334,2 +359,13 @@ shape: Shape;

}>;
type OptionDecoded = WithInputAndPath<{
codec: "Option";
value: Decoded;
}>;
type ResultDecoded = WithInputAndPath<{
codec: "Result";
value: {
ok: Decoded;
ko: Decoded;
};
}>;
type TupleDecoded = WithInputAndPath<{

@@ -348,3 +384,3 @@ codec: "Tuple";

value: {
tag: string;
type: string;
value: Decoded;

@@ -354,3 +390,3 @@ };

}>;
type ComplexDecoded = SequenceDecoded | ArrayDecoded | TupleDecoded | StructDecoded | EnumDecoded;
type ComplexDecoded = SequenceDecoded | ArrayDecoded | TupleDecoded | StructDecoded | OptionDecoded | ResultDecoded | EnumDecoded;
type Decoded = PrimitiveDecoded | ComplexDecoded;

@@ -374,2 +410,13 @@ interface SequenceShape {

}
interface OptionShape {
codec: "Option";
shape: Shape;
}
interface ResultShape {
codec: "Result";
shape: {
ok: Shape;
ko: Shape;
};
}
interface EnumShape {

@@ -379,3 +426,3 @@ codec: "Enum";

}
type ComplexShape = SequenceShape | ArrayShape | TupleShape | StructShape | EnumShape;
type ComplexShape = SequenceShape | ArrayShape | TupleShape | StructShape | OptionShape | ResultShape | EnumShape;
type Shape = {

@@ -387,2 +434,2 @@ codec: PrimitiveDecoded["codec"];

export { type AccountIdDecoded, type ArrayDecoded, type ArrayShape, type ArrayVar, type BigNumberDecoded, type BitSequenceDecoded, type BitSequenceVar, type BoolDecoded, type BytesArrayDecoded, type BytesSequenceDecoded, type CodeDeclarations, type CompactVar, type ComplexDecoded, type ComplexShape, type ComposedVar, type Decoded, type DecodedCall, type EnumDecoded, type EnumShape, type EnumVar, type GetViewBuilder, type LookupEntry, type MetadataPrimitives$1 as MetadataPrimitives, type NumberDecoded, type PrimitiveDecoded, type PrimitiveVar, type SequenceDecoded, type SequenceShape, type SequenceVar, type Shape, type StringDecoded, type StructDecoded, type StructShape, type StructVar, type TerminalVar, type TupleDecoded, type TupleShape, type TupleVar, type UnshapedDecoder, type Var, type Variable, type VoidDecoded, type VoidVar, getChecksumBuilder, getDynamicBuilder, getLookupFn, getStaticBuilder, getViewBuilder, primitiveTypes };
export { type AccountId32, type AccountIdDecoded, type ArrayDecoded, type ArrayShape, type ArrayVar, type BigNumberDecoded, type BitSequenceDecoded, type BitSequenceVar, type BoolDecoded, type BytesArrayDecoded, type BytesSequenceDecoded, type CodeDeclarations, type CompactVar, type ComplexDecoded, type ComplexShape, type ComposedVar, type Decoded, type DecodedCall, type EnumDecoded, type EnumShape, type EnumVar, type GetViewBuilder, type LookupEntry, type MetadataPrimitives$1 as MetadataPrimitives, type NumberDecoded, type OptionDecoded, type OptionShape, type OptionVar, type PrimitiveDecoded, type PrimitiveVar, type ResultDecoded, type ResultShape, type ResultVar, type SequenceDecoded, type SequenceShape, type SequenceVar, type Shape, type StringDecoded, type StructDecoded, type StructShape, type StructVar, type TerminalVar, type TupleDecoded, type TupleShape, type TupleVar, type UnshapedDecoder, type Var, type Variable, type VoidDecoded, type VoidVar, getChecksumBuilder, getDynamicBuilder, getLookupFn, getStaticBuilder, getViewBuilder, primitiveTypes };

@@ -75,9 +75,15 @@ "use strict";

};
let isAccountId32SearchOn = true;
const getLookupEntryDef = withCache2((id) => {
const { def } = lookupData[id];
const { def, path, params } = lookupData[id];
if (def.tag === "composite") {
if (def.value.length === 0)
return voidVar;
if (def.value.length === 1)
if (def.value.length === 1) {
if (isAccountId32SearchOn && path.join(",") === "sp_core,crypto,AccountId32") {
isAccountId32SearchOn = false;
return { type: "AccountId32" };
}
return getLookupEntryDef(def.value[0].type);
}
let allKey = true;

@@ -103,2 +109,17 @@ const values = {};

if (def.tag === "variant") {
if (path.length === 1 && path[0] === "Option" && params.length === 1 && params[0].name === "T") {
return {
type: "option",
value: getLookupEntryDef(params[0].type)
};
}
if (path.length === 1 && path[0] === "Result" && params.length === 2 && params[0].name === "T" && params[1].name === "E") {
return {
type: "result",
value: {
ok: getLookupEntryDef(params[0].type),
ko: getLookupEntryDef(params[1].type)
}
};
}
if (def.value.length === 0)

@@ -239,4 +260,3 @@ return voidVar;

var toCamelCase = (...parts) => parts[0] + parts.slice(1).map((part) => part[0].toUpperCase() + part.slice(1)).join("");
var isBytes = (input) => input.type === "primitive" && input.value === "u8";
var getTypes = (varName) => primitiveTypes[varName] ?? `I${varName}`;
var getTypes = (varName) => primitiveTypes[varName] ?? varName;
var _buildSyntax = (input, cache, stack, declarations, getVarName) => {

@@ -247,2 +267,14 @@ if (input.type === "primitive") {

}
if (input.type === "AccountId32") {
declarations.imports.add("AccountId");
const id = "_accountId";
declarations.variables.set(id, {
id,
value: `AccountId()`,
types: "SS58String",
directDependencies: /* @__PURE__ */ new Set()
});
declarations.typeImports.add("SS58String");
return id;
}
if (input.type === "compact") {

@@ -316,15 +348,3 @@ const importVal = input.isBig ? "compactBn" : "compactNumber";

if (input.type === "array") {
if (isBytes(input.value)) {
if (input.len === 32 && (input.id === 0 || input.id === 1)) {
declarations.imports.add("AccountId");
const id = "_accountId";
declarations.variables.set(id, {
id,
value: `AccountId()`,
types: "SS58String",
directDependencies: /* @__PURE__ */ new Set()
});
declarations.typeImports.add("SS58String");
return id;
}
if (input.value.type === "primitive" && input.value.value === "u8") {
declarations.imports.add("Bin");

@@ -349,3 +369,32 @@ declarations.variables.set(varId, {

return buildStruct(varId, input.value);
declarations.imports.add("Enum");
if (input.type === "option") {
declarations.imports.add("Option");
const inner = buildNextSyntax(input.value);
const id = `_Option_${inner}`;
const variable = {
id,
value: `Option(${inner})`,
types: `${getTypes(inner)} | undefined`,
directDependencies: /* @__PURE__ */ new Set([inner])
};
declarations.variables.set(id, variable);
return id;
}
if (input.type === "result") {
declarations.imports.add("Result");
declarations.typeImports.add("ResultPayload");
const ok = buildNextSyntax(input.value.ok);
const ko = buildNextSyntax(input.value.ko);
const id = `_Result_${ok}_${ko}`;
const variable = {
id,
value: `Result(${ok}, ${ko})`,
types: `ResultPayload<${getTypes(ok)}, ${getTypes(ko)}>`,
directDependencies: /* @__PURE__ */ new Set([ok, ko])
};
declarations.variables.set(id, variable);
return id;
}
declarations.imports.add("Variant");
declarations.typeImports.add("Enum");
const dependencies = Object.entries(input.value).map(([key, value]) => {

@@ -381,8 +430,12 @@ if (value.type === "primitive") {

)}}${areIndexesSorted ? "" : `, [${indexes.join(", ")}]`}`;
declarations.enums.set(
varId,
Object.keys(input.value).map(
(key, idx) => `{type: '${key}', value: ${getTypes(dependencies[idx])}}`
).join(" | ")
);
declarations.variables.set(varId, {
id: varId,
value: `Enum(${innerEnum})`,
types: Object.keys(input.value).map(
(key, idx) => `{tag: '${key}', value: ${getTypes(dependencies[idx])}}`
).join(" | "),
value: `Variant(${innerEnum})`,
types: `Enum<E${varId}>`,
directDependencies: new Set(dependencies)

@@ -399,3 +452,3 @@ });

id: getVarName(entry.id, "circular"),
types: `I${nonCircular}`,
types: nonCircular,
value: `Self(() => ${nonCircular})`,

@@ -409,7 +462,8 @@ directDependencies: /* @__PURE__ */ new Set([nonCircular])

);
var getStaticBuilder = (metadata) => {
var getStaticBuilder = (metadata, namespace) => {
const declarations = {
imports: /* @__PURE__ */ new Set(),
typeImports: /* @__PURE__ */ new Set(["Codec"]),
variables: /* @__PURE__ */ new Map()
variables: /* @__PURE__ */ new Map(),
enums: /* @__PURE__ */ new Map()
};

@@ -420,3 +474,3 @@ const lookupData = metadata.lookup;

const { path } = lookupData[idx];
const parts = path.length === 0 ? ["cdc" + idx] : ["c", ...path];
const parts = path.length === 0 ? ["cdc" + idx] : path[0] === "sp_runtime" ? [namespace, path.slice(-1)[0]] : [namespace, ...path];
parts.push(...post);

@@ -478,10 +532,19 @@ return toCamelCase(...parts);

};
const buildRuntimeCall = (api, method) => {
const entry = metadata.apis.find((x) => x.name === api)?.methods.find((x) => x.name === method);
if (!entry)
throw null;
return {
args: buildNamedTuple(entry.inputs, `${api}${method}Args`),
value: buildDefinition(entry.output)
};
};
const buildVariant = (type) => (pallet, name) => {
const eventsLookup = getLookupEntryDef(
const lookupEntry = getLookupEntryDef(
metadata.pallets.find((x) => x.name === pallet)[type]
);
if (eventsLookup.type !== "enum")
if (lookupEntry.type !== "enum")
throw null;
const returnVar = toCamelCase(buildDefinition(eventsLookup.id), name);
if (!declarations.variables.has(returnVar) && eventsLookup.value[name].type === "primitive") {
const returnVar = toCamelCase(buildDefinition(lookupEntry.id), name);
if (!declarations.variables.has(returnVar) && lookupEntry.value[name].type === "primitive") {
declarations.variables.set(returnVar, {

@@ -496,22 +559,2 @@ id: returnVar,

};
const buildCall = (pallet, callName) => {
const callsLookup = getLookupEntryDef(
metadata.pallets.find((x) => x.name === pallet).calls
);
if (callsLookup.type !== "enum")
throw null;
const callEntry = callsLookup.value[callName];
if (callEntry.type === "primitive")
return getEmptyTuple();
if (callEntry.type === "tuple")
return toCamelCase(buildDefinition(callsLookup.id), callName);
const params = Object.entries(callEntry.value).map(([name, val]) => ({
name,
type: val.id
}));
return buildNamedTuple(
params,
getVarName(callsLookup.id, callName, "Tupled")
);
};
const buildConstant = (pallet, constantName) => {

@@ -524,3 +567,3 @@ const storageEntry = metadata.pallets.find((x) => x.name === pallet).constants.find((s) => s.name === constantName);

", "
)}} from "@polkadot-api/substrate-bindings";
)}} from "@polkadot-api/client";
`;

@@ -533,8 +576,13 @@ const varImports = `import {${[...declarations.imports].join(

const code = [...declarations.variables.values()].map((variable) => {
return `type I${variable.id} = ${variable.types};
const ${variable.id}: Codec<I${variable.id}> = ${variable.value};`;
const ePrefix = declarations.enums.has(variable.id) ? `type E${variable.id} = ${declarations.enums.get(
variable.id
)};
export ` : "";
return `${ePrefix}type ${variable.id} = ${variable.types};
const ${variable.id}: Codec<${variable.id}> = ${variable.value};`;
}).join("\n\n");
return `${typeImports}${varImports}${code}`;
};
const getTypeFromVarName = (varName) => primitiveTypes[varName] ?? declarations.variables.get(varName)?.types ?? `I${varName}`;
const getEnums = () => [...declarations.enums.keys()];
const getTypeFromVarName = (varName) => primitiveTypes[varName] ?? declarations.variables.get(varName)?.types ?? varName;
return {

@@ -545,6 +593,8 @@ buildDefinition,

buildError: buildVariant("errors"),
buildCall,
buildCall: buildVariant("calls"),
buildRuntimeCall,
buildConstant,
getTypeFromVarName,
getCode
getCode,
getEnums
};

@@ -557,6 +607,7 @@ };

var _bytes = scale.Bin();
var isBytes2 = (input) => input.type === "primitive" && input.value === "u8";
var _buildCodec = (input, cache, stack, _accountId) => {
if (input.type === "primitive")
return scale[input.value];
if (input.type === "AccountId32")
return _accountId;
if (input.type === "compact")

@@ -582,5 +633,4 @@ return scale.compact;

if (input.type === "array") {
if (isBytes2(input.value)) {
return input.len === 32 && (input.id === 0 || input.id === 1) ? _accountId : scale.Bin(input.len);
}
if (input.value.type === "primitive" && input.value.value === "u8")
return scale.Bin(input.len);
return buildVector(input.value, input.len);

@@ -594,2 +644,9 @@ }

return buildStruct(input.value);
if (input.type === "option")
return scale.Option(buildNextCodec(input.value));
if (input.type === "result")
return scale.Result(
buildNextCodec(input.value.ok),
buildNextCodec(input.value.ko)
);
const dependencies = Object.values(input.value).map((v) => {

@@ -609,6 +666,5 @@ if (v.type === "primitive")

const areIndexesSorted = indexes.every((idx, i) => idx === i);
return areIndexesSorted ? scale.Enum(inner) : scale.Enum(inner, indexes);
return areIndexesSorted ? scale.Variant(inner) : scale.Variant(inner, indexes);
};
var buildCodec = withCache(_buildCodec, scale.Self, (res) => res);
var emptyTuple = scale.Tuple();
var getDynamicBuilder = (metadata) => {

@@ -663,6 +719,6 @@ const lookupData = metadata.lookup;

};
const buildEnumEntry = (entry, forceTuple = false) => {
const buildEnumEntry = (entry) => {
if (entry.type === "primitive")
return forceTuple ? emptyTuple : scale._void;
return entry.type === "tuple" || forceTuple ? scale.Tuple(
return scale._void;
return entry.type === "tuple" ? scale.Tuple(
...Object.values(entry.value).map((l) => buildDefinition(l.id))

@@ -696,5 +752,14 @@ ) : scale.Struct(

location: [palletEntry.index, entry.idx],
args: buildEnumEntry(lookup.value[name], true)
args: buildEnumEntry(lookup.value[name])
};
};
const buildRuntimeCall = (api, method) => {
const entry = metadata.apis.find((x) => x.name === api)?.methods.find((x) => x.name === method);
if (!entry)
throw null;
return {
args: scale.Tuple(...entry.inputs.map((x) => buildDefinition(x.type))),
value: buildDefinition(entry.output)
};
};
return {

@@ -705,2 +770,3 @@ buildDefinition,

buildError: buildVariant("errors"),
buildRuntimeCall,
buildCall,

@@ -784,2 +850,12 @@ buildConstant,

return buildStruct(input.value);
if (input.type === "option")
return getChecksum([buildNextChecksum(input.value)], "Option()");
if (input.type === "result")
return getChecksum(
[input.value.ok, input.value.ko].map(buildNextChecksum),
"Result()"
);
if (input.type === "AccountId32") {
return getChecksum([primitiveChecksums.u8, 32n], "AccountId32");
}
const dependencies = Object.values(input.value).map((v) => {

@@ -817,2 +893,16 @@ if (v.type === "primitive")

};
const buildRuntimeCall = (api, method) => {
try {
const entry = metadata.apis.find((x) => x.name === api)?.methods.find((x) => x.name === method);
if (!entry)
throw null;
const args = getChecksum(
entry.inputs.map((x) => buildDefinition(x.type)),
`(${entry.inputs.map((x) => x.name).join(",")})`
);
return getChecksum([args, buildDefinition(entry.output)]);
} catch (_) {
return null;
}
};
const buildEnumEntry = (entry) => {

@@ -848,2 +938,3 @@ if (entry.type === "primitive")

buildDefinition: toStringEnhancer(buildDefinition),
buildRuntimeCall: toStringEnhancer(buildRuntimeCall),
buildStorage: toStringEnhancer(buildStorage),

@@ -943,4 +1034,12 @@ buildCall: toStringEnhancer(buildVariant("calls")),

{ codec: "Enum", shape: (0, import_utils2.mapStringRecord)(input, (x) => x.shape) },
scale2.Enum.dec(input, args)
scale2.Variant.dec(input, args)
);
var OptionDec = (input) => complexShapedDecoder(
{ codec: "Option", shape: input.shape },
scale2.Option.dec(input)
);
var ResultDec = (ok, ko) => complexShapedDecoder(
{ codec: "Result", shape: { ok: ok.shape, ko: ko.shape } },
scale2.Result.dec(ok, ko)
);
var selfDecoder = (value) => {

@@ -962,7 +1061,9 @@ let cache = (x) => {

Struct: StructDec,
Enum: EnumDec
Enum: EnumDec,
Option: OptionDec,
Result: ResultDec
};
// src/view-builder/view-builder.ts
var emptyTuple2 = complex.Tuple();
var emptyTuple = complex.Tuple();
var toUnshapedDecoder = (fn) => (...args) => {

@@ -991,2 +1092,4 @@ const value = fn(...args);

return primitives[input.value];
if (input.type === "AccountId32")
return _accountId;
if (input.type === "compact")

@@ -1012,3 +1115,3 @@ return input.isBig ? primitives.compactBn : primitives.compactNumber;

if (input.value.type === "primitive" && input.value.value === "u8") {
return input.len === 32 && (input.id === 0 || input.id === 1) ? _accountId : primitives.BytesArray(input.len);
return primitives.BytesArray(input.len);
}

@@ -1023,2 +1126,6 @@ return buildVector(input.value, input.len);

return buildStruct(input.value, input.innerDocs);
if (input.type === "option")
return complex.Option(buildNext(input.value));
if (input.type === "result")
return complex.Result(buildNext(input.value.ok), buildNext(input.value.ko));
const dependencies = Object.values(input.value).map((v) => {

@@ -1039,3 +1146,3 @@ if (v.type === "primitive")

const withDocs = (0, import_substrate_bindings2.enhanceDecoder)(withoutDocs, (val) => {
const docs = input.innerDocs[val.value.tag];
const docs = input.innerDocs[val.value.type];
return {

@@ -1095,3 +1202,3 @@ ...val,

value: {
name: decoded.value.tag,
name: decoded.value.type,
idx: bytes[1]

@@ -1111,3 +1218,3 @@ },

if (entry.type === "primitive")
return forceTuple ? emptyTuple2 : primitives._void;
return forceTuple ? emptyTuple : primitives._void;
return entry.type === "tuple" ? complex.Tuple(

@@ -1114,0 +1221,0 @@ ...Object.values(entry.value).map((l) => getDecoder(l.id))

import * as scale from '@polkadot-api/substrate-bindings';
import { StringRecord, V14, Codec, Decoder, HexString } from '@polkadot-api/substrate-bindings';
export { Decoder, HexString, StringRecord, V14 } from '@polkadot-api/substrate-bindings';
import { StringRecord, V15, Codec, Decoder, HexString } from '@polkadot-api/substrate-bindings';
export { Decoder, HexString, StringRecord, V15 } from '@polkadot-api/substrate-bindings';

@@ -21,3 +21,6 @@ type VoidVar = {

};
type TerminalVar = PrimitiveVar | CompactVar | BitSequenceVar;
type AccountId32 = {
type: "AccountId32";
};
type TerminalVar = PrimitiveVar | CompactVar | BitSequenceVar | AccountId32;
type TupleVar = {

@@ -40,2 +43,13 @@ type: "tuple";

};
type OptionVar = {
type: "option";
value: LookupEntry;
};
type ResultVar = {
type: "result";
value: {
ok: LookupEntry;
ko: LookupEntry;
};
};
type SequenceVar = {

@@ -50,3 +64,3 @@ type: "sequence";

};
type ComposedVar = TupleVar | StructVar | SequenceVar | ArrayVar | EnumVar;
type ComposedVar = TupleVar | StructVar | SequenceVar | ArrayVar | OptionVar | ResultVar | EnumVar;
type Var = TerminalVar | ComposedVar;

@@ -61,3 +75,3 @@ type LookupEntry = {

name: string;
type: number | void | undefined;
type: number | undefined;
}[];

@@ -67,5 +81,5 @@ def: {

value: {
name: string | void | undefined;
name: string | undefined;
type: number;
typeName: string | void | undefined;
typeName: string | undefined;
docs: string[];

@@ -78,5 +92,5 @@ }[];

fields: {
name: string | void | undefined;
name: string | undefined;
type: number;
typeName: string | void | undefined;
typeName: string | undefined;
docs: string[];

@@ -174,5 +188,6 @@ }[];

typeImports: Set<string>;
enums: Map<string, string>;
variables: Map<string, Variable>;
}
declare const getStaticBuilder: (metadata: V14) => {
declare const getStaticBuilder: (metadata: V15, namespace: string) => {
buildDefinition: (id: number) => string;

@@ -185,9 +200,14 @@ buildStorage: (pallet: string, entry: string) => {

buildError: (pallet: string, name: string) => string;
buildCall: (pallet: string, callName: string) => string;
buildCall: (pallet: string, name: string) => string;
buildRuntimeCall: (api: string, method: string) => {
args: string;
value: string;
};
buildConstant: (pallet: string, constantName: string) => string;
getTypeFromVarName: (varName: string) => string;
getCode: () => string;
getEnums: () => string[];
};
declare const getDynamicBuilder: (metadata: V14) => {
declare const getDynamicBuilder: (metadata: V15) => {
buildDefinition: (id: number) => Codec<any>;

@@ -215,2 +235,6 @@ buildStorage: (pallet: string, entry: string) => {

};
buildRuntimeCall: (api: string, method: string) => {
args: Codec<any[]>;
value: Codec<any>;
};
buildCall: (pallet: string, name: string) => {

@@ -227,4 +251,5 @@ args: Codec<any>;

declare const getChecksumBuilder: (metadata: V14) => {
declare const getChecksumBuilder: (metadata: V15) => {
buildDefinition: (id: number) => string | null;
buildRuntimeCall: (api: string, method: string) => string | null;
buildStorage: (pallet: string, entry: string) => string | null;

@@ -245,3 +270,3 @@ buildCall: (pallet: string, name: string) => string | null;

};
type GetViewBuilder = (metadata: V14) => {
type GetViewBuilder = (metadata: V15) => {
buildDefinition: (idx: number) => {

@@ -334,2 +359,13 @@ shape: Shape;

}>;
type OptionDecoded = WithInputAndPath<{
codec: "Option";
value: Decoded;
}>;
type ResultDecoded = WithInputAndPath<{
codec: "Result";
value: {
ok: Decoded;
ko: Decoded;
};
}>;
type TupleDecoded = WithInputAndPath<{

@@ -348,3 +384,3 @@ codec: "Tuple";

value: {
tag: string;
type: string;
value: Decoded;

@@ -354,3 +390,3 @@ };

}>;
type ComplexDecoded = SequenceDecoded | ArrayDecoded | TupleDecoded | StructDecoded | EnumDecoded;
type ComplexDecoded = SequenceDecoded | ArrayDecoded | TupleDecoded | StructDecoded | OptionDecoded | ResultDecoded | EnumDecoded;
type Decoded = PrimitiveDecoded | ComplexDecoded;

@@ -374,2 +410,13 @@ interface SequenceShape {

}
interface OptionShape {
codec: "Option";
shape: Shape;
}
interface ResultShape {
codec: "Result";
shape: {
ok: Shape;
ko: Shape;
};
}
interface EnumShape {

@@ -379,3 +426,3 @@ codec: "Enum";

}
type ComplexShape = SequenceShape | ArrayShape | TupleShape | StructShape | EnumShape;
type ComplexShape = SequenceShape | ArrayShape | TupleShape | StructShape | OptionShape | ResultShape | EnumShape;
type Shape = {

@@ -387,2 +434,2 @@ codec: PrimitiveDecoded["codec"];

export { type AccountIdDecoded, type ArrayDecoded, type ArrayShape, type ArrayVar, type BigNumberDecoded, type BitSequenceDecoded, type BitSequenceVar, type BoolDecoded, type BytesArrayDecoded, type BytesSequenceDecoded, type CodeDeclarations, type CompactVar, type ComplexDecoded, type ComplexShape, type ComposedVar, type Decoded, type DecodedCall, type EnumDecoded, type EnumShape, type EnumVar, type GetViewBuilder, type LookupEntry, type MetadataPrimitives$1 as MetadataPrimitives, type NumberDecoded, type PrimitiveDecoded, type PrimitiveVar, type SequenceDecoded, type SequenceShape, type SequenceVar, type Shape, type StringDecoded, type StructDecoded, type StructShape, type StructVar, type TerminalVar, type TupleDecoded, type TupleShape, type TupleVar, type UnshapedDecoder, type Var, type Variable, type VoidDecoded, type VoidVar, getChecksumBuilder, getDynamicBuilder, getLookupFn, getStaticBuilder, getViewBuilder, primitiveTypes };
export { type AccountId32, type AccountIdDecoded, type ArrayDecoded, type ArrayShape, type ArrayVar, type BigNumberDecoded, type BitSequenceDecoded, type BitSequenceVar, type BoolDecoded, type BytesArrayDecoded, type BytesSequenceDecoded, type CodeDeclarations, type CompactVar, type ComplexDecoded, type ComplexShape, type ComposedVar, type Decoded, type DecodedCall, type EnumDecoded, type EnumShape, type EnumVar, type GetViewBuilder, type LookupEntry, type MetadataPrimitives$1 as MetadataPrimitives, type NumberDecoded, type OptionDecoded, type OptionShape, type OptionVar, type PrimitiveDecoded, type PrimitiveVar, type ResultDecoded, type ResultShape, type ResultVar, type SequenceDecoded, type SequenceShape, type SequenceVar, type Shape, type StringDecoded, type StructDecoded, type StructShape, type StructVar, type TerminalVar, type TupleDecoded, type TupleShape, type TupleVar, type UnshapedDecoder, type Var, type Variable, type VoidDecoded, type VoidVar, getChecksumBuilder, getDynamicBuilder, getLookupFn, getStaticBuilder, getViewBuilder, primitiveTypes };

@@ -1,8 +0,9 @@

"use strict";var ce=Object.create;var q=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty;var me=(e,r)=>{for(var p in r)q(e,p,{get:r[p],enumerable:!0})},J=(e,r,p,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of pe(r))!le.call(e,s)&&s!==p&&q(e,s,{get:()=>r[s],enumerable:!(n=ue(r,s))||n.enumerable});return e};var Y=(e,r,p)=>(p=e!=null?ce(de(e)):{},J(r||!e||!e.__esModule?q(p,"default",{value:e,enumerable:!0}):p,e)),ye=e=>J(q({},"__esModule",{value:!0}),e);var _e={};me(_e,{getChecksumBuilder:()=>Ce,getDynamicBuilder:()=>Ee,getLookupFn:()=>P,getStaticBuilder:()=>he,getViewBuilder:()=>ie,primitiveTypes:()=>H});module.exports=ye(_e);var I={type:"primitive",value:"_void"},P=e=>{let r=new Map,p=new Set,s=(l=>a=>{let y=r.get(a);if(y)return y;if(p.has(a)){let d={id:a};return r.set(a,d),d}p.add(a);let v=l(a);return y=r.get(a),y?Object.assign(y,v):(y={id:a,...v},r.set(a,y)),p.delete(a),y})(l=>{let{def:a}=e[l];if(a.tag==="composite"){if(a.value.length===0)return I;if(a.value.length===1)return s(a.value[0].type);let v=!0,d={},m={};return a.value.forEach((S,c)=>{v=v&&!!S.name;let b=S.name||c;d[b]=s(S.type),m[b]=S.docs}),v?{type:"struct",value:d,innerDocs:m}:{type:"tuple",value:Object.values(d),innerDocs:Object.values(m)}}if(a.tag==="variant"){if(a.value.length===0)return I;let v={},d={};return a.value.forEach(m=>{let S=m.name;if(d[S]=m.docs,m.fields.length===0){v[S]={...I,idx:m.index};return}let c=!0,b={},t={};m.fields.forEach((o,i)=>{c=c&&!!o.name;let u=o.name||i;b[u]=s(o.type),t[u]=o.docs}),v[S]=c?{type:"struct",value:b,innerDocs:t,idx:m.index}:{type:"tuple",value:Object.values(b),innerDocs:Object.values(t),idx:m.index}}),{type:"enum",value:v,innerDocs:d}}if(a.tag==="sequence")return{type:"sequence",value:s(a.value)};if(a.tag==="array")return{type:"array",value:s(a.value.type),len:a.value.len};if(a.tag==="tuple"){if(a.value.length===0)return I;if(a.value.length===1)return s(a.value[0]);let v=a.value.map(m=>s(m)),d=a.value.map(m=>e[m].docs);return{type:"tuple",value:v,innerDocs:d}}if(a.tag==="primitive")return{type:"primitive",value:a.value.tag};if(a.tag==="compact"){let v=s(a.value);return{type:"compact",isBig:Number(v.value.slice(1))>32}}return a.tag==="bitSequence"?{type:"bitSequence"}:{type:"primitive",value:a.value}});return s};var w=(e,r,p)=>(n,s,l,...a)=>{let{id:y}=n;if(s.has(y))return s.get(y);if(l.has(y)){let d=r(()=>s.get(y),n,...a);return s.set(y,d),d}l.add(y);let v=e(n,s,l,...a);return l.delete(y),s.has(y)&&(v=p(v,s.get(y),n,...a)),s.set(y,v),v};var H={_void:"undefined",bool:"boolean",char:"string",str:"string",u8:"number",u16:"number",u32:"number",u64:"bigint",u128:"bigint",u256:"bigint",i8:"number",i16:"number",i32:"number",i64:"bigint",i128:"bigint",i256:"bigint",compactNumber:"number",compactBn:"bigint",bitSequence:"{bitsLen: number, bytes: Uint8Array}",historicMetaCompat:"any"},W=(...e)=>e[0]+e.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join(""),ve=e=>e.type==="primitive"&&e.value==="u8",j=e=>H[e]??`I${e}`,be=(e,r,p,n,s)=>{if(e.type==="primitive")return n.imports.add(e.value),e.value;if(e.type==="compact"){let t=e.isBig?"compactBn":"compactNumber";return n.imports.add(t),t}if(e.type==="bitSequence")return n.imports.add(e.type),e.type;if(e.type==="sequence"&&e.value.type==="primitive"&&e.value.value==="u8"){n.imports.add("Bin"),n.typeImports.add("HexString"),n.typeImports.add("Binary");let t={id:"_bytesSeq",value:"Bin()",types:"Binary",directDependencies:new Set};return n.variables.has(t.id)||n.variables.set(t.id,t),t.id}if(n.variables.has(s(e.id,"circular")))return s(e.id,"circular");if(n.variables.has(s(e.id)))return s(e.id);let l=t=>z(t,r,p,n,s),a=(t,o,i)=>{n.imports.add("Vector");let u=l(o),g={id:t,value:`Vector(${(i?[u,i]:[u]).join(", ")})`,types:`Array<${j(u)}>`,directDependencies:new Set([u])};return n.variables.set(t,g),t},y=(t,o)=>{n.imports.add("Tuple");let i=o.map(l),u={id:t,value:`Tuple(${i.join(", ")})`,types:`[${i.map(j).join(", ")}]`,directDependencies:new Set(i)};return n.variables.set(t,u),t},v=(t,o)=>{n.imports.add("Struct");let i=Object.values(o).map(l),u={id:t,value:`Struct({${Object.keys(o).map((h,g)=>`${h}: ${i[g]}`).join(", ")}})`,types:`{${Object.keys(o).map((h,g)=>`${h}: ${j(i[g])}`).join(", ")}}`,directDependencies:new Set(i)};return n.variables.set(t,u),t},d=s(e.id);if(e.type==="array"){if(ve(e.value)){if(e.len===32&&(e.id===0||e.id===1)){n.imports.add("AccountId");let t="_accountId";return n.variables.set(t,{id:t,value:"AccountId()",types:"SS58String",directDependencies:new Set}),n.typeImports.add("SS58String"),t}return n.imports.add("Bin"),n.variables.set(d,{id:d,value:`Bin(${e.len})`,types:"Binary",directDependencies:new Set}),n.typeImports.add("HexString"),n.typeImports.add("Binary"),d}return a(d,e.value,e.len)}if(e.type==="sequence")return a(d,e.value);if(e.type==="tuple")return y(d,e.value);if(e.type==="struct")return v(d,e.value);n.imports.add("Enum");let m=Object.entries(e.value).map(([t,o])=>{if(o.type==="primitive")return n.imports.add(o.value),o.value;let i=W(d,t);if(o.type==="tuple"){if(o.value.length===1){let u=l(o.value[0]);return n.variables.has(i)||n.variables.set(i,{id:i,value:u,types:j(u),directDependencies:new Set([u])}),i}return y(i,o.value)}else v(i,o.value);return i}),S=Object.values(e.value).map(t=>t.idx),c=S.every((t,o)=>t===o),b=`{${Object.keys(e.value).map((t,o)=>`${t}: ${m[o]}`)}}${c?"":`, [${S.join(", ")}]`}`;return n.variables.set(d,{id:d,value:`Enum(${b})`,types:Object.keys(e.value).map((t,o)=>`{tag: '${t}', value: ${j(m[o])}}`).join(" | "),directDependencies:new Set(m)}),d},z=w(be,(e,r,p,n)=>{p.imports.add("Self");let s=n(r.id),l={id:n(r.id,"circular"),types:`I${s}`,value:`Self(() => ${s})`,directDependencies:new Set([s])};return p.variables.set(l.id,l),l.id},e=>e),he=e=>{let r={imports:new Set,typeImports:new Set(["Codec"]),variables:new Map},p=e.lookup,n=P(p),s=(i,...u)=>{let{path:h}=p[i],g=h.length===0?["cdc"+i]:["c",...h];return g.push(...u),W(...g)},l=new Map,a=i=>z(n(i),l,new Set,r,s),y=(i,u)=>{if(r.variables.has(u))return u;let h=i.map(E=>E.type).map(a),g=i.map(E=>E.name);r.imports.add("Tuple");let x={id:u,types:`[${g.map((E,O)=>`${E[0].toUpperCase()+E.slice(1)}: ${j(h[O])}`).join(", ")}]`,value:`Tuple(${h.join(", ")})`,directDependencies:new Set(h)};return r.variables.set(u,x),u},v="_emptyTuple",d=()=>(r.variables.has(v)||(r.imports.add("Tuple"),r.variables.set(v,{id:v,types:"[]",value:"Tuple()",directDependencies:new Set})),v),m=(i,u)=>{let h=e.pallets.find(L=>L.name===i).storage.items.find(L=>L.name===u);if(h.type.tag==="plain")return{key:d(),val:a(h.type.value)};let{key:g,value:x}=h.type.value,E=a(x);return{key:h.type.value.hashers.length===1?y([{name:"key",type:g}],s(g,"Tupled")):a(g),val:E}},S=i=>(u,h)=>{let g=n(e.pallets.find(E=>E.name===u)[i]);if(g.type!=="enum")throw null;let x=W(a(g.id),h);return!r.variables.has(x)&&g.value[h].type==="primitive"&&r.variables.set(x,{id:x,value:"_void",types:"undefined",directDependencies:new Set}),x},c=(i,u)=>{let h=n(e.pallets.find(E=>E.name===i).calls);if(h.type!=="enum")throw null;let g=h.value[u];if(g.type==="primitive")return d();if(g.type==="tuple")return W(a(h.id),u);let x=Object.entries(g.value).map(([E,O])=>({name:E,type:O.id}));return y(x,s(h.id,u,"Tupled"))},b=(i,u)=>{let h=e.pallets.find(g=>g.name===i).constants.find(g=>g.name===u);return a(h.type)},t=()=>{let i=`import type {${[...r.typeImports].join(", ")}} from "@polkadot-api/substrate-bindings";
`,u=`import {${[...r.imports].join(", ")}} from "@polkadot-api/substrate-bindings";
"use strict";var ue=Object.create;var _=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var ye=(e,o)=>{for(var i in o)_(e,i,{get:o[i],enumerable:!0})},z=(e,o,i,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let u of de(o))!me.call(e,u)&&u!==i&&_(e,u,{get:()=>o[u],enumerable:!(r=pe(o,u))||r.enumerable});return e};var Q=(e,o,i)=>(i=e!=null?ue(le(e)):{},z(o||!e||!e.__esModule?_(i,"default",{value:e,enumerable:!0}):i,e)),ve=e=>z(_({},"__esModule",{value:!0}),e);var We={};ye(We,{getChecksumBuilder:()=>ke,getDynamicBuilder:()=>fe,getLookupFn:()=>P,getStaticBuilder:()=>be,getViewBuilder:()=>ce,primitiveTypes:()=>N});module.exports=ve(We);var q={type:"primitive",value:"_void"},P=e=>{let o=new Map,i=new Set,r=b=>a=>{let h=o.get(a);if(h)return h;if(i.has(a)){let D={id:a};return o.set(a,D),D}i.add(a);let m=b(a);return h=o.get(a),h?Object.assign(h,m):(h={id:a,...m},o.set(a,h)),i.delete(a),h},u=!0,c=r(b=>{let{def:a,path:h,params:m}=e[b];if(a.tag==="composite"){if(a.value.length===0)return q;if(a.value.length===1)return u&&h.join(",")==="sp_core,crypto,AccountId32"?(u=!1,{type:"AccountId32"}):c(a.value[0].type);let v=!0,s={},d={};return a.value.forEach((n,t)=>{v=v&&!!n.name;let p=n.name||t;s[p]=c(n.type),d[p]=n.docs}),v?{type:"struct",value:s,innerDocs:d}:{type:"tuple",value:Object.values(s),innerDocs:Object.values(d)}}if(a.tag==="variant"){if(h.length===1&&h[0]==="Option"&&m.length===1&&m[0].name==="T")return{type:"option",value:c(m[0].type)};if(h.length===1&&h[0]==="Result"&&m.length===2&&m[0].name==="T"&&m[1].name==="E")return{type:"result",value:{ok:c(m[0].type),ko:c(m[1].type)}};if(a.value.length===0)return q;let v={},s={};return a.value.forEach(d=>{let n=d.name;if(s[n]=d.docs,d.fields.length===0){v[n]={...q,idx:d.index};return}let t=!0,p={},y={};d.fields.forEach((l,g)=>{t=t&&!!l.name;let f=l.name||g;p[f]=c(l.type),y[f]=l.docs}),v[n]=t?{type:"struct",value:p,innerDocs:y,idx:d.index}:{type:"tuple",value:Object.values(p),innerDocs:Object.values(y),idx:d.index}}),{type:"enum",value:v,innerDocs:s}}if(a.tag==="sequence")return{type:"sequence",value:c(a.value)};if(a.tag==="array")return{type:"array",value:c(a.value.type),len:a.value.len};if(a.tag==="tuple"){if(a.value.length===0)return q;if(a.value.length===1)return c(a.value[0]);let v=a.value.map(d=>c(d)),s=a.value.map(d=>e[d].docs);return{type:"tuple",value:v,innerDocs:s}}if(a.tag==="primitive")return{type:"primitive",value:a.value.tag};if(a.tag==="compact"){let v=c(a.value);return{type:"compact",isBig:Number(v.value.slice(1))>32}}return a.tag==="bitSequence"?{type:"bitSequence"}:{type:"primitive",value:a.value}});return c};var L=(e,o,i)=>(r,u,c,...b)=>{let{id:a}=r;if(u.has(a))return u.get(a);if(c.has(a)){let m=o(()=>u.get(a),r,...b);return u.set(a,m),m}c.add(a);let h=e(r,u,c,...b);return c.delete(a),u.has(a)&&(h=i(h,u.get(a),r,...b)),u.set(a,h),h};var N={_void:"undefined",bool:"boolean",char:"string",str:"string",u8:"number",u16:"number",u32:"number",u64:"bigint",u128:"bigint",u256:"bigint",i8:"number",i16:"number",i32:"number",i64:"bigint",i128:"bigint",i256:"bigint",compactNumber:"number",compactBn:"bigint",bitSequence:"{bitsLen: number, bytes: Uint8Array}",historicMetaCompat:"any"},F=(...e)=>e[0]+e.slice(1).map(o=>o[0].toUpperCase()+o.slice(1)).join(""),A=e=>N[e]??e,he=(e,o,i,r,u)=>{if(e.type==="primitive")return r.imports.add(e.value),e.value;if(e.type==="AccountId32"){r.imports.add("AccountId");let n="_accountId";return r.variables.set(n,{id:n,value:"AccountId()",types:"SS58String",directDependencies:new Set}),r.typeImports.add("SS58String"),n}if(e.type==="compact"){let n=e.isBig?"compactBn":"compactNumber";return r.imports.add(n),n}if(e.type==="bitSequence")return r.imports.add(e.type),e.type;if(e.type==="sequence"&&e.value.type==="primitive"&&e.value.value==="u8"){r.imports.add("Bin"),r.typeImports.add("HexString"),r.typeImports.add("Binary");let n={id:"_bytesSeq",value:"Bin()",types:"Binary",directDependencies:new Set};return r.variables.has(n.id)||r.variables.set(n.id,n),n.id}if(r.variables.has(u(e.id,"circular")))return u(e.id,"circular");if(r.variables.has(u(e.id)))return u(e.id);let c=n=>X(n,o,i,r,u),b=(n,t,p)=>{r.imports.add("Vector");let y=c(t),g={id:n,value:`Vector(${(p?[y,p]:[y]).join(", ")})`,types:`Array<${A(y)}>`,directDependencies:new Set([y])};return r.variables.set(n,g),n},a=(n,t)=>{r.imports.add("Tuple");let p=t.map(c),y={id:n,value:`Tuple(${p.join(", ")})`,types:`[${p.map(A).join(", ")}]`,directDependencies:new Set(p)};return r.variables.set(n,y),n},h=(n,t)=>{r.imports.add("Struct");let p=Object.values(t).map(c),y={id:n,value:`Struct({${Object.keys(t).map((l,g)=>`${l}: ${p[g]}`).join(", ")}})`,types:`{${Object.keys(t).map((l,g)=>`${l}: ${A(p[g])}`).join(", ")}}`,directDependencies:new Set(p)};return r.variables.set(n,y),n},m=u(e.id);if(e.type==="array")return e.value.type==="primitive"&&e.value.value==="u8"?(r.imports.add("Bin"),r.variables.set(m,{id:m,value:`Bin(${e.len})`,types:"Binary",directDependencies:new Set}),r.typeImports.add("HexString"),r.typeImports.add("Binary"),m):b(m,e.value,e.len);if(e.type==="sequence")return b(m,e.value);if(e.type==="tuple")return a(m,e.value);if(e.type==="struct")return h(m,e.value);if(e.type==="option"){r.imports.add("Option");let n=c(e.value),t=`_Option_${n}`,p={id:t,value:`Option(${n})`,types:`${A(n)} | undefined`,directDependencies:new Set([n])};return r.variables.set(t,p),t}if(e.type==="result"){r.imports.add("Result"),r.typeImports.add("ResultPayload");let n=c(e.value.ok),t=c(e.value.ko),p=`_Result_${n}_${t}`,y={id:p,value:`Result(${n}, ${t})`,types:`ResultPayload<${A(n)}, ${A(t)}>`,directDependencies:new Set([n,t])};return r.variables.set(p,y),p}r.imports.add("Variant"),r.typeImports.add("Enum");let D=Object.entries(e.value).map(([n,t])=>{if(t.type==="primitive")return r.imports.add(t.value),t.value;let p=F(m,n);if(t.type==="tuple"){if(t.value.length===1){let y=c(t.value[0]);return r.variables.has(p)||r.variables.set(p,{id:p,value:y,types:A(y),directDependencies:new Set([y])}),p}return a(p,t.value)}else h(p,t.value);return p}),v=Object.values(e.value).map(n=>n.idx),s=v.every((n,t)=>n===t),d=`{${Object.keys(e.value).map((n,t)=>`${n}: ${D[t]}`)}}${s?"":`, [${v.join(", ")}]`}`;return r.enums.set(m,Object.keys(e.value).map((n,t)=>`{type: '${n}', value: ${A(D[t])}}`).join(" | ")),r.variables.set(m,{id:m,value:`Variant(${d})`,types:`Enum<E${m}>`,directDependencies:new Set(D)}),m},X=L(he,(e,o,i,r)=>{i.imports.add("Self");let u=r(o.id),c={id:r(o.id,"circular"),types:u,value:`Self(() => ${u})`,directDependencies:new Set([u])};return i.variables.set(c.id,c),c.id},e=>e),be=(e,o)=>{let i={imports:new Set,typeImports:new Set(["Codec"]),variables:new Map,enums:new Map},r=e.lookup,u=P(r),c=(l,...g)=>{let{path:f}=r[l],E=f.length===0?["cdc"+l]:f[0]==="sp_runtime"?[o,f.slice(-1)[0]]:[o,...f];return E.push(...g),F(...E)},b=new Map,a=l=>X(u(l),b,new Set,i,c),h=(l,g)=>{if(i.variables.has(g))return g;let f=l.map(V=>V.type).map(a),E=l.map(V=>V.name);i.imports.add("Tuple");let T={id:g,types:`[${E.map((V,w)=>`${V[0].toUpperCase()+V.slice(1)}: ${A(f[w])}`).join(", ")}]`,value:`Tuple(${f.join(", ")})`,directDependencies:new Set(f)};return i.variables.set(g,T),g},m="_emptyTuple",D=()=>(i.variables.has(m)||(i.imports.add("Tuple"),i.variables.set(m,{id:m,types:"[]",value:"Tuple()",directDependencies:new Set})),m),v=(l,g)=>{let f=e.pallets.find(I=>I.name===l).storage.items.find(I=>I.name===g);if(f.type.tag==="plain")return{key:D(),val:a(f.type.value)};let{key:E,value:T}=f.type.value,V=a(T);return{key:f.type.value.hashers.length===1?h([{name:"key",type:E}],c(E,"Tupled")):a(E),val:V}},s=(l,g)=>{let f=e.apis.find(E=>E.name===l)?.methods.find(E=>E.name===g);if(!f)throw null;return{args:h(f.inputs,`${l}${g}Args`),value:a(f.output)}},d=l=>(g,f)=>{let E=u(e.pallets.find(V=>V.name===g)[l]);if(E.type!=="enum")throw null;let T=F(a(E.id),f);return!i.variables.has(T)&&E.value[f].type==="primitive"&&i.variables.set(T,{id:T,value:"_void",types:"undefined",directDependencies:new Set}),T},n=(l,g)=>{let f=e.pallets.find(E=>E.name===l).constants.find(E=>E.name===g);return a(f.type)},t=()=>{let l=`import type {${[...i.typeImports].join(", ")}} from "@polkadot-api/client";
`,g=`import {${[...i.imports].join(", ")}} from "@polkadot-api/substrate-bindings";
`,h=[...r.variables.values()].map(g=>`type I${g.id} = ${g.types};
const ${g.id}: Codec<I${g.id}> = ${g.value};`).join(`
`,f=[...i.variables.values()].map(E=>`${i.enums.has(E.id)?`type E${E.id} = ${i.enums.get(E.id)};
export `:""}type ${E.id} = ${E.types};
const ${E.id}: Codec<${E.id}> = ${E.value};`).join(`
`);return`${i}${u}${h}`},o=i=>H[i]??r.variables.get(i)?.types??`I${i}`;return{buildDefinition:a,buildStorage:m,buildEvent:S("events"),buildError:S("errors"),buildCall:c,buildConstant:b,getTypeFromVarName:o,getCode:t}};var f=Y(require("@polkadot-api/substrate-bindings"));var Q=require("@polkadot-api/utils"),ge=f.Bin(),Se=e=>e.type==="primitive"&&e.value==="u8",fe=(e,r,p,n)=>{if(e.type==="primitive")return f[e.value];if(e.type==="compact")return f.compact;if(e.type==="bitSequence")return f.bitSequence;if(e.type==="sequence"&&e.value.type==="primitive"&&e.value.value==="u8")return ge;let s=c=>X(c,r,p,n),l=(c,b)=>{let t=s(c);return b?f.Vector(t,b):f.Vector(t)},a=c=>f.Tuple(...c.map(s)),y=c=>{let b=Object.fromEntries(Object.entries(c).map(([t,o])=>[t,s(o)]));return f.Struct(b)};if(e.type==="array")return Se(e.value)?e.len===32&&(e.id===0||e.id===1)?n:f.Bin(e.len):l(e.value,e.len);if(e.type==="sequence")return l(e.value);if(e.type==="tuple")return a(e.value);if(e.type==="struct")return y(e.value);let v=Object.values(e.value).map(c=>c.type==="primitive"?f._void:c.type==="tuple"&&c.value.length===1?s(c.value[0]):c.type==="tuple"?a(c.value):y(c.value)),d=Object.fromEntries(Object.keys(e.value).map((c,b)=>[c,v[b]])),m=Object.values(e.value).map(c=>c.idx);return m.every((c,b)=>c===b)?f.Enum(d):f.Enum(d,m)},X=w(fe,f.Self,e=>e),De=f.Tuple(),Ee=e=>{let r=e.lookup,p=P(r),n=f.AccountId(),s=new Map,l=t=>X(p(t),s,new Set,n),a=e.pallets.find(t=>t.name==="System")?.constants.find(t=>t.name==="SS58Prefix"),y;if(a)try{let t=l(a.type).dec(a.value);typeof t=="number"&&(y=t,n=f.AccountId(t))}catch{}let v=new Map,d=(t,o)=>{let i=v.get(t);i||v.set(t,i=f.Storage(t));let u=e.pallets.find(T=>T.name===t).storage.items.find(T=>T.name===o),h=(T,...M)=>{let G=i(...M);return{...G,len:T,fallback:u.modifier===1?G.dec(u.fallback):void 0}};if(u.type.tag==="plain")return h(0,o,l(u.type.value).dec);let{key:g,value:x,hashers:E}=u.type.value,O=l(x),L=E.map(T=>f[T.tag]),se=L.length===1?[[l(g),L[0]]]:p(g).value.map((T,M)=>[l(T.id),L[M]]);return h(L.length,o,O.dec,...se)},m=(t,o=!1)=>t.type==="primitive"?o?De:f._void:t.type==="tuple"||o?f.Tuple(...Object.values(t.value).map(i=>l(i.id))):f.Struct((0,Q.mapObject)(t.value,i=>l(i.id))),S=(t,o)=>{let i=e.pallets.find(u=>u.name===t).constants.find(u=>u.name===o);return l(i.type)},c=t=>(o,i)=>{let u=e.pallets.find(x=>x.name===o),h=p(u[t]);if(h.type!=="enum")throw null;let g=h.value[i];return{location:[u.index,g.idx],codec:m(h.value[i])}},b=(t,o)=>{let i=e.pallets.find(g=>g.name===t),u=p(i.calls);if(u.type!=="enum")throw null;let h=u.value[o];return{location:[i.index,h.idx],args:m(u.value[o],!0)}};return{buildDefinition:l,buildStorage:d,buildEvent:c("events"),buildError:c("errors"),buildCall:b,buildConstant:S,ss58Prefix:y}};var F=require("@polkadot-api/substrate-bindings");var Z=new TextEncoder,xe=Z.encode.bind(Z),k=(e,r)=>{let p=typeof r=="string",n=new Uint8Array((e.length+(p?1:0))*8),s=new DataView(n.buffer),l=0;p&&(s.setBigUint64(l,(0,F.h64)(xe(r))),l+=8);for(let a=0;a<e.length;a++,l+=8)s.setBigUint64(l,e[a]);return(0,F.h64)(n)},U={_void:0n,bool:1n,char:2n,str:3n,u8:4n,u16:5n,u32:6n,u64:7n,u128:8n,u256:9n,i8:5n,i16:5n,i32:6n,i64:7n,i128:8n,i256:9n,compacts:10n,compactb:11n,bitSequence:12n,historicMetaCompat:13n},ke=14n,Ve=(e,r,p)=>{if(r.has(e.id))return r.get(e.id);if(e.type==="primitive")return U[e.value];if(e.type==="compact")return U[e.isBig?"compactb":"compacts"];if(e.type==="bitSequence")return U.bitSequence;if(e.type==="sequence"&&e.value.type==="primitive"&&e.value.value==="u8")return ke;let n=d=>ee(d,r,p),s=(d,m)=>{let S=n(d);return m?k([S,BigInt(m)],"Vector(,)"):k([S],"Vector()")},l=d=>k(d.map(n)),a=d=>k(Object.values(d).map(n),JSON.stringify(Object.keys(d)));if(e.type==="array")return s(e.value,e.len);if(e.type==="sequence")return s(e.value);if(e.type==="tuple")return l(e.value);if(e.type==="struct")return a(e.value);let y=Object.values(e.value).map(d=>d.type==="primitive"?0n:d.type==="tuple"?l(d.value):a(d.value)),v=Object.keys(e.value);return v.push("Enum"),k(y,JSON.stringify({Enum:v}))},ee=w(Ve,()=>0n,e=>e),Ce=e=>{let r=e.lookup,p=P(r),n=new Map,s=m=>ee(p(m),n,new Set),l=(m,S)=>{try{let c=e.pallets.find(u=>u.name===m).storage.items.find(u=>u.name===S);if(c.type.tag==="plain")return k([s(c.type.value)]);let{key:b,value:t}=c.type.value,o=s(t),i=c.type.value.hashers.length===1?k([s(b)]):s(b);return k([o,i])}catch{return null}},a=m=>{if(m.type==="primitive")return 0n;let S=Object.values(m.value).map(c=>s(c.id));return m.type==="tuple"?k(S):k(S,JSON.stringify(Object.keys(m.value)))},y=m=>(S,c)=>{try{let b=e.pallets.find(o=>o.name===S),t=p(b[m]);if(t.type!=="enum")throw null;return a(t.value[c])}catch{return null}},v=(m,S)=>{try{let c=e.pallets.find(b=>b.name===m).constants.find(b=>b.name===S);return s(c.type)}catch{return null}},d=m=>(...S)=>m(...S)?.toString(32)??null;return{buildDefinition:d(s),buildStorage:d(l),buildCall:d(y("calls")),buildEvent:d(y("events")),buildError:d(y("errors")),buildConstant:d(v)}};var _=require("@polkadot-api/utils"),A=require("@polkadot-api/substrate-bindings");var R=require("@polkadot-api/utils"),D=Y(require("@polkadot-api/substrate-bindings")),Te=R.toHex,te=(e,r)=>D.createDecoder(p=>{let n=p,s=n.i,l=e(n),a=Te(new Uint8Array(n.buffer.slice(s,n.i)));return{...r,value:l,input:a}}),$=(e,r,p)=>{let n=te(r,{codec:e,...p});return Object.assign(n,{shape:{codec:e}})},B=(e,r,p)=>{let n=te(r,{codec:e.codec,...p});return Object.assign(n,{shape:e})},N=(e=42)=>{let r=D.enhanceDecoder(D.AccountId(e).dec,p=>({address:p,ss58Prefix:e}));return $("AccountId",r,{})},Pe=e=>$("BytesArray",D.Hex.dec(e),{len:e}),Le=["_void","bool","char","str","u8","u16","u32","i8","i16","i32","u64","u128","u256","i64","i128","i256","compactNumber","compactBn","bitSequence"],we=Object.fromEntries(Le.map(e=>[e,$(e,D[e].dec)])),V={...we,Bytes:$("Bytes",D.Hex.dec()),BytesArray:Pe,AccountId:N()},Ae=e=>B({codec:"Sequence",shape:e.shape},D.Vector.dec(e)),Oe=(e,r)=>B({codec:"Array",shape:e.shape,len:r},D.Vector.dec(e,r)),je=(...e)=>B({codec:"Tuple",shape:e.map(r=>r.shape)},D.Tuple.dec(...e)),Re=e=>B({codec:"Struct",shape:(0,R.mapStringRecord)(e,r=>r.shape)},D.Struct.dec(e)),Be=(e,r)=>B({codec:"Enum",shape:(0,R.mapStringRecord)(e,p=>p.shape)},D.Enum.dec(e,r)),re=e=>{let r=n=>{let s=e(),l=s;return r=s,l(n)},p=n=>r(n);return p.shape={codec:"_void"},p},C={Sequence:Ae,Array:Oe,Tuple:je,Struct:Re,Enum:Be};var qe=C.Tuple(),ne=e=>(...r)=>{let p=e(...r);return{shape:p.shape,decoder:p}},K=(e,r,p)=>{let n=(0,A.enhanceDecoder)(e,s=>({...s,[r]:p}));return n.shape=e.shape,n},Ie=e=>(r,p,n,s,...l)=>{let{path:a}=s[r.id],y=e(r,p,n,s,...l);return a.length?K(y,"path",a):y},We=(e,r,p,n,s)=>{if(e.type==="primitive")return V[e.value];if(e.type==="compact")return e.isBig?V.compactBn:V.compactNumber;if(e.type==="bitSequence")return V.bitSequence;if(e.type==="sequence"&&e.value.type==="primitive"&&e.value.value==="u8")return V.Bytes;let l=o=>ae(o,r,p,n,s),a=(o,i)=>{let u=l(o);return i?C.Array(u,i):C.Sequence(u)},y=(o,i)=>K(C.Tuple(...o.map(l)),"innerDocs",i),v=(o,i)=>K(C.Struct((0,_.mapStringRecord)(o,l)),"innerDocs",i);if(e.type==="array")return e.value.type==="primitive"&&e.value.value==="u8"?e.len===32&&(e.id===0||e.id===1)?s:V.BytesArray(e.len):a(e.value,e.len);if(e.type==="sequence")return a(e.value);if(e.type==="tuple")return y(e.value,e.innerDocs);if(e.type==="struct")return v(e.value,e.innerDocs);let d=Object.values(e.value).map(o=>o.type==="primitive"?V._void:o.type==="tuple"&&o.value.length===1?l(o.value[0]):o.type==="tuple"?y(o.value,o.innerDocs):v(o.value,o.innerDocs)),m=Object.fromEntries(Object.keys(e.value).map((o,i)=>[o,d[i]])),S=Object.values(e.value).map(o=>o.idx),b=S.every((o,i)=>o===i)?C.Enum(m):C.Enum(m,S),t=(0,A.enhanceDecoder)(b,o=>{let i=e.innerDocs[o.value.tag];return{...o,docs:i}});return t.shape=b.shape,t},$e=Ie(We),ae=w($e,re,(e,r)=>(r.shape=e.shape,e)),oe=e=>`0x${e.toString(16).padEnd(2,"0")}`,ie=e=>{let r=e.lookup,p=new Map,n=c=>ae(s(c),p,new Set,r,l),s=P(r),l=V.AccountId,a=e.pallets.find(c=>c.name==="System")?.constants.find(c=>c.name==="SS58Prefix");if(a)try{let c=n(a.type)(a.value).value;typeof c=="number"&&(l=N(c))}catch{}let y=ne(n),v=(0,A.createDecoder)(c=>{let b=A.u8.dec(c),t=e.pallets.find(g=>g.index===b);if(!t)throw new Error("Invalid Pallet");let o={value:{name:t.name,idx:b},input:oe(c[0])},i=n(t.calls),u=i(c);if(u.codec!=="Enum")throw null;let h={value:{name:u.value.tag,idx:c[1]},input:oe(c[1]),docs:u.docs};return{pallet:o,call:h,args:{value:u.value.value,shape:i.shape}}}),d=ne((c,b=!1)=>c.type==="primitive"?b?qe:V._void:c.type==="tuple"?C.Tuple(...Object.values(c.value).map(t=>n(t.id))):C.Struct((0,_.mapObject)(c.value,t=>n(t.id)))),m=c=>(b,t)=>{let o=e.pallets.find(h=>h.name===b),i=s(o[c]);if(i.type!=="enum")throw null;let u=i.value[t];return{location:[o.index,u.idx],view:d(u,c==="calls")}},S=(c,b)=>{let t=e.pallets.find(o=>o.name===c).constants.find(o=>o.name===b);return y(t.type)};return{buildDefinition:y,callDecoder:v,buildEvent:m("events"),buildError:m("errors"),buildCall:m("calls"),buildConstant:S}};
`);return`${l}${g}${f}`},p=()=>[...i.enums.keys()],y=l=>N[l]??i.variables.get(l)?.types??l;return{buildDefinition:a,buildStorage:v,buildEvent:d("events"),buildError:d("errors"),buildCall:d("calls"),buildRuntimeCall:s,buildConstant:n,getTypeFromVarName:y,getCode:t,getEnums:p}};var S=Q(require("@polkadot-api/substrate-bindings"));var Z=require("@polkadot-api/utils"),ge=S.Bin(),Se=(e,o,i,r)=>{if(e.type==="primitive")return S[e.value];if(e.type==="AccountId32")return r;if(e.type==="compact")return S.compact;if(e.type==="bitSequence")return S.bitSequence;if(e.type==="sequence"&&e.value.type==="primitive"&&e.value.value==="u8")return ge;let u=s=>ee(s,o,i,r),c=(s,d)=>{let n=u(s);return d?S.Vector(n,d):S.Vector(n)},b=s=>S.Tuple(...s.map(u)),a=s=>{let d=Object.fromEntries(Object.entries(s).map(([n,t])=>[n,u(t)]));return S.Struct(d)};if(e.type==="array")return e.value.type==="primitive"&&e.value.value==="u8"?S.Bin(e.len):c(e.value,e.len);if(e.type==="sequence")return c(e.value);if(e.type==="tuple")return b(e.value);if(e.type==="struct")return a(e.value);if(e.type==="option")return S.Option(u(e.value));if(e.type==="result")return S.Result(u(e.value.ok),u(e.value.ko));let h=Object.values(e.value).map(s=>s.type==="primitive"?S._void:s.type==="tuple"&&s.value.length===1?u(s.value[0]):s.type==="tuple"?b(s.value):a(s.value)),m=Object.fromEntries(Object.keys(e.value).map((s,d)=>[s,h[d]])),D=Object.values(e.value).map(s=>s.idx);return D.every((s,d)=>s===d)?S.Variant(m):S.Variant(m,D)},ee=L(Se,S.Self,e=>e),fe=e=>{let o=e.lookup,i=P(o),r=S.AccountId(),u=new Map,c=t=>ee(i(t),u,new Set,r),b=e.pallets.find(t=>t.name==="System")?.constants.find(t=>t.name==="SS58Prefix"),a;if(b)try{let t=c(b.type).dec(b.value);typeof t=="number"&&(a=t,r=S.AccountId(t))}catch{}let h=new Map,m=(t,p)=>{let y=h.get(t);y||h.set(t,y=S.Storage(t));let l=e.pallets.find(R=>R.name===t).storage.items.find(R=>R.name===p),g=(R,...U)=>{let Y=y(...U);return{...Y,len:R,fallback:l.modifier===1?Y.dec(l.fallback):void 0}};if(l.type.tag==="plain")return g(0,p,c(l.type.value).dec);let{key:f,value:E,hashers:T}=l.type.value,V=c(E),w=T.map(R=>S[R.tag]),I=w.length===1?[[c(f),w[0]]]:i(f).value.map((R,U)=>[c(R.id),w[U]]);return g(w.length,p,V.dec,...I)},D=t=>t.type==="primitive"?S._void:t.type==="tuple"?S.Tuple(...Object.values(t.value).map(p=>c(p.id))):S.Struct((0,Z.mapObject)(t.value,p=>c(p.id))),v=(t,p)=>{let y=e.pallets.find(l=>l.name===t).constants.find(l=>l.name===p);return c(y.type)},s=t=>(p,y)=>{let l=e.pallets.find(E=>E.name===p),g=i(l[t]);if(g.type!=="enum")throw null;let f=g.value[y];return{location:[l.index,f.idx],codec:D(g.value[y])}},d=(t,p)=>{let y=e.pallets.find(f=>f.name===t),l=i(y.calls);if(l.type!=="enum")throw null;let g=l.value[p];return{location:[y.index,g.idx],args:D(l.value[p])}},n=(t,p)=>{let y=e.apis.find(l=>l.name===t)?.methods.find(l=>l.name===p);if(!y)throw null;return{args:S.Tuple(...y.inputs.map(l=>c(l.type))),value:c(y.output)}};return{buildDefinition:c,buildStorage:m,buildEvent:s("events"),buildError:s("errors"),buildRuntimeCall:n,buildCall:d,buildConstant:v,ss58Prefix:a}};var K=require("@polkadot-api/substrate-bindings");var te=new TextEncoder,De=te.encode.bind(te),k=(e,o)=>{let i=typeof o=="string",r=new Uint8Array((e.length+(i?1:0))*8),u=new DataView(r.buffer),c=0;i&&(u.setBigUint64(c,(0,K.h64)(De(o))),c+=8);for(let b=0;b<e.length;b++,c+=8)u.setBigUint64(c,e[b]);return(0,K.h64)(r)},W={_void:0n,bool:1n,char:2n,str:3n,u8:4n,u16:5n,u32:6n,u64:7n,u128:8n,u256:9n,i8:5n,i16:5n,i32:6n,i64:7n,i128:8n,i256:9n,compacts:10n,compactb:11n,bitSequence:12n,historicMetaCompat:13n},Ee=14n,xe=(e,o,i)=>{if(o.has(e.id))return o.get(e.id);if(e.type==="primitive")return W[e.value];if(e.type==="compact")return W[e.isBig?"compactb":"compacts"];if(e.type==="bitSequence")return W.bitSequence;if(e.type==="sequence"&&e.value.type==="primitive"&&e.value.value==="u8")return Ee;let r=m=>re(m,o,i),u=(m,D)=>{let v=r(m);return D?k([v,BigInt(D)],"Vector(,)"):k([v],"Vector()")},c=m=>k(m.map(r)),b=m=>k(Object.values(m).map(r),JSON.stringify(Object.keys(m)));if(e.type==="array")return u(e.value,e.len);if(e.type==="sequence")return u(e.value);if(e.type==="tuple")return c(e.value);if(e.type==="struct")return b(e.value);if(e.type==="option")return k([r(e.value)],"Option()");if(e.type==="result")return k([e.value.ok,e.value.ko].map(r),"Result()");if(e.type==="AccountId32")return k([W.u8,32n],"AccountId32");let a=Object.values(e.value).map(m=>m.type==="primitive"?0n:m.type==="tuple"?c(m.value):b(m.value)),h=Object.keys(e.value);return h.push("Enum"),k(a,JSON.stringify({Enum:h}))},re=L(xe,()=>0n,e=>e),ke=e=>{let o=e.lookup,i=P(o),r=new Map,u=v=>re(i(v),r,new Set),c=(v,s)=>{try{let d=e.pallets.find(l=>l.name===v).storage.items.find(l=>l.name===s);if(d.type.tag==="plain")return k([u(d.type.value)]);let{key:n,value:t}=d.type.value,p=u(t),y=d.type.value.hashers.length===1?k([u(n)]):u(n);return k([p,y])}catch{return null}},b=(v,s)=>{try{let d=e.apis.find(t=>t.name===v)?.methods.find(t=>t.name===s);if(!d)throw null;let n=k(d.inputs.map(t=>u(t.type)),`(${d.inputs.map(t=>t.name).join(",")})`);return k([n,u(d.output)])}catch{return null}},a=v=>{if(v.type==="primitive")return 0n;let s=Object.values(v.value).map(d=>u(d.id));return v.type==="tuple"?k(s):k(s,JSON.stringify(Object.keys(v.value)))},h=v=>(s,d)=>{try{let n=e.pallets.find(p=>p.name===s),t=i(n[v]);if(t.type!=="enum")throw null;return a(t.value[d])}catch{return null}},m=(v,s)=>{try{let d=e.pallets.find(n=>n.name===v).constants.find(n=>n.name===s);return u(d.type)}catch{return null}},D=v=>(...s)=>v(...s)?.toString(32)??null;return{buildDefinition:D(u),buildRuntimeCall:D(b),buildStorage:D(c),buildCall:D(h("calls")),buildEvent:D(h("events")),buildError:D(h("errors")),buildConstant:D(m)}};var H=require("@polkadot-api/utils"),j=require("@polkadot-api/substrate-bindings");var B=require("@polkadot-api/utils"),x=Q(require("@polkadot-api/substrate-bindings")),Ve=B.toHex,ne=(e,o)=>x.createDecoder(i=>{let r=i,u=r.i,c=e(r),b=Ve(new Uint8Array(r.buffer.slice(u,r.i)));return{...o,value:c,input:b}}),M=(e,o,i)=>{let r=ne(o,{codec:e,...i});return Object.assign(r,{shape:{codec:e}})},$=(e,o,i)=>{let r=ne(o,{codec:e.codec,...i});return Object.assign(r,{shape:e})},G=(e=42)=>{let o=x.enhanceDecoder(x.AccountId(e).dec,i=>({address:i,ss58Prefix:e}));return M("AccountId",o,{})},Ce=e=>M("BytesArray",x.Hex.dec(e),{len:e}),Te=["_void","bool","char","str","u8","u16","u32","i8","i16","i32","u64","u128","u256","i64","i128","i256","compactNumber","compactBn","bitSequence"],Oe=Object.fromEntries(Te.map(e=>[e,M(e,x[e].dec)])),O={...Oe,Bytes:M("Bytes",x.Hex.dec()),BytesArray:Ce,AccountId:G()},Re=e=>$({codec:"Sequence",shape:e.shape},x.Vector.dec(e)),Pe=(e,o)=>$({codec:"Array",shape:e.shape,len:o},x.Vector.dec(e,o)),Ae=(...e)=>$({codec:"Tuple",shape:e.map(o=>o.shape)},x.Tuple.dec(...e)),Le=e=>$({codec:"Struct",shape:(0,B.mapStringRecord)(e,o=>o.shape)},x.Struct.dec(e)),we=(e,o)=>$({codec:"Enum",shape:(0,B.mapStringRecord)(e,i=>i.shape)},x.Variant.dec(e,o)),$e=e=>$({codec:"Option",shape:e.shape},x.Option.dec(e)),je=(e,o)=>$({codec:"Result",shape:{ok:e.shape,ko:o.shape}},x.Result.dec(e,o)),oe=e=>{let o=r=>{let u=e(),c=u;return o=u,c(r)},i=r=>o(r);return i.shape={codec:"_void"},i},C={Sequence:Re,Array:Pe,Tuple:Ae,Struct:Le,Enum:we,Option:$e,Result:je};var Ie=C.Tuple(),ae=e=>(...o)=>{let i=e(...o);return{shape:i.shape,decoder:i}},J=(e,o,i)=>{let r=(0,j.enhanceDecoder)(e,u=>({...u,[o]:i}));return r.shape=e.shape,r},Be=e=>(o,i,r,u,...c)=>{let{path:b}=u[o.id],a=e(o,i,r,u,...c);return b.length?J(a,"path",b):a},_e=(e,o,i,r,u)=>{if(e.type==="primitive")return O[e.value];if(e.type==="AccountId32")return u;if(e.type==="compact")return e.isBig?O.compactBn:O.compactNumber;if(e.type==="bitSequence")return O.bitSequence;if(e.type==="sequence"&&e.value.type==="primitive"&&e.value.value==="u8")return O.Bytes;let c=t=>ie(t,o,i,r,u),b=(t,p)=>{let y=c(t);return p?C.Array(y,p):C.Sequence(y)},a=(t,p)=>J(C.Tuple(...t.map(c)),"innerDocs",p),h=(t,p)=>J(C.Struct((0,H.mapStringRecord)(t,c)),"innerDocs",p);if(e.type==="array")return e.value.type==="primitive"&&e.value.value==="u8"?O.BytesArray(e.len):b(e.value,e.len);if(e.type==="sequence")return b(e.value);if(e.type==="tuple")return a(e.value,e.innerDocs);if(e.type==="struct")return h(e.value,e.innerDocs);if(e.type==="option")return C.Option(c(e.value));if(e.type==="result")return C.Result(c(e.value.ok),c(e.value.ko));let m=Object.values(e.value).map(t=>t.type==="primitive"?O._void:t.type==="tuple"&&t.value.length===1?c(t.value[0]):t.type==="tuple"?a(t.value,t.innerDocs):h(t.value,t.innerDocs)),D=Object.fromEntries(Object.keys(e.value).map((t,p)=>[t,m[p]])),v=Object.values(e.value).map(t=>t.idx),d=v.every((t,p)=>t===p)?C.Enum(D):C.Enum(D,v),n=(0,j.enhanceDecoder)(d,t=>{let p=e.innerDocs[t.value.type];return{...t,docs:p}});return n.shape=d.shape,n},qe=Be(_e),ie=L(qe,oe,(e,o)=>(o.shape=e.shape,e)),se=e=>`0x${e.toString(16).padEnd(2,"0")}`,ce=e=>{let o=e.lookup,i=new Map,r=s=>ie(u(s),i,new Set,o,c),u=P(o),c=O.AccountId,b=e.pallets.find(s=>s.name==="System")?.constants.find(s=>s.name==="SS58Prefix");if(b)try{let s=r(b.type)(b.value).value;typeof s=="number"&&(c=G(s))}catch{}let a=ae(r),h=(0,j.createDecoder)(s=>{let d=j.u8.dec(s),n=e.pallets.find(g=>g.index===d);if(!n)throw new Error("Invalid Pallet");let t={value:{name:n.name,idx:d},input:se(s[0])},p=r(n.calls),y=p(s);if(y.codec!=="Enum")throw null;let l={value:{name:y.value.type,idx:s[1]},input:se(s[1]),docs:y.docs};return{pallet:t,call:l,args:{value:y.value.value,shape:p.shape}}}),m=ae((s,d=!1)=>s.type==="primitive"?d?Ie:O._void:s.type==="tuple"?C.Tuple(...Object.values(s.value).map(n=>r(n.id))):C.Struct((0,H.mapObject)(s.value,n=>r(n.id)))),D=s=>(d,n)=>{let t=e.pallets.find(l=>l.name===d),p=u(t[s]);if(p.type!=="enum")throw null;let y=p.value[n];return{location:[t.index,y.idx],view:m(y,s==="calls")}},v=(s,d)=>{let n=e.pallets.find(t=>t.name===s).constants.find(t=>t.name===d);return a(n.type)};return{buildDefinition:a,callDecoder:h,buildEvent:D("events"),buildError:D("errors"),buildCall:D("calls"),buildConstant:v}};
//# sourceMappingURL=index.js.map
{
"name": "@polkadot-api/metadata-builders",
"version": "0.0.1-51563d50a83ea0eca57fa1ddfb8b29335b9fb314.1.0",
"version": "0.0.1-51a43f79a2cd839540afd0ca5231bf97fce5902a.1.0",
"author": "Josep M Sobrepere (https://github.com/josepot)",

@@ -43,4 +43,4 @@ "repository": {

"dependencies": {
"@polkadot-api/substrate-bindings": "0.0.1-51563d50a83ea0eca57fa1ddfb8b29335b9fb314.1.0",
"@polkadot-api/utils": "0.0.1-51563d50a83ea0eca57fa1ddfb8b29335b9fb314.1.0"
"@polkadot-api/substrate-bindings": "0.0.1-51a43f79a2cd839540afd0ca5231bf97fce5902a.1.0",
"@polkadot-api/utils": "0.0.1-51a43f79a2cd839540afd0ca5231bf97fce5902a.1.0"
},

@@ -47,0 +47,0 @@ "scripts": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc