UNPKG

@polkadot/api

Version:

Promise and RxJS wrappers around the Polkadot JS RPC

27 lines (26 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractStorageArgs = extractStorageArgs; const util_1 = require("@polkadot/util"); function sig({ lookup }, { method, section }, args) { return `${section}.${method}(${args.map((a) => lookup.getTypeDef(a).type).join(', ')})`; } function extractStorageArgs(registry, creator, _args) { const args = _args.filter((a) => !(0, util_1.isUndefined)(a)); if (creator.meta.type.isPlain) { if (args.length !== 0) { throw new Error(`${sig(registry, creator, [])} does not take any arguments, ${args.length} found`); } } else { const { hashers, key } = creator.meta.type.asMap; const keys = hashers.length === 1 ? [key] : registry.lookup.getSiType(key).def.asTuple.map((t) => t); if (args.length !== keys.length) { throw new Error(`${sig(registry, creator, keys)} is a map, requiring ${keys.length} arguments, ${args.length} found`); } } // pass as tuple return [creator, args]; }