UNPKG

1.33 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.extractStorageArgs = extractStorageArgs;
7
8var _util = require("@polkadot/util");
9
10// Copyright 2017-2022 @polkadot/api authors & contributors
11// SPDX-License-Identifier: Apache-2.0
12function sig(_ref, _ref2, args) {
13 let {
14 lookup
15 } = _ref;
16 let {
17 method,
18 section
19 } = _ref2;
20 return `${section}.${method}(${args.map(a => lookup.getTypeDef(a).type).join(', ')})`;
21} // sets up the arguments in the form of [creator, args] ready to be used in a storage
22// call. Additionally, it verifies that the correct number of arguments have been passed
23
24
25function extractStorageArgs(registry, creator, _args) {
26 const args = _args.filter(a => !(0, _util.isUndefined)(a));
27
28 if (creator.meta.type.isPlain) {
29 (0, _util.assert)(args.length === 0, () => `${sig(registry, creator, [])} does not take any arguments, ${args.length} found`);
30 } else {
31 const {
32 hashers,
33 key
34 } = creator.meta.type.asMap;
35 const keys = hashers.length === 1 ? [key] : registry.lookup.getSiType(key).def.asTuple.map(t => t);
36 (0, _util.assert)(args.length === keys.length, () => `${sig(registry, creator, keys)} is a map, requiring ${keys.length} arguments, ${args.length} found`);
37 } // pass as tuple
38
39
40 return [creator, args];
41}
\No newline at end of file