UNPKG

955 BJavaScriptView Raw
1import { isUndefined } from '@polkadot/util';
2function sig({ lookup }, { method, section }, args) {
3 return `${section}.${method}(${args.map((a) => lookup.getTypeDef(a).type).join(', ')})`;
4}
5export function extractStorageArgs(registry, creator, _args) {
6 const args = _args.filter((a) => !isUndefined(a));
7 if (creator.meta.type.isPlain) {
8 if (args.length !== 0) {
9 throw new Error(`${sig(registry, creator, [])} does not take any arguments, ${args.length} found`);
10 }
11 }
12 else {
13 const { hashers, key } = creator.meta.type.asMap;
14 const keys = hashers.length === 1
15 ? [key]
16 : registry.lookup.getSiType(key).def.asTuple.map((t) => t);
17 if (args.length !== keys.length) {
18 throw new Error(`${sig(registry, creator, keys)} is a map, requiring ${keys.length} arguments, ${args.length} found`);
19 }
20 }
21 // pass as tuple
22 return [creator, args];
23}