|
3 | 3 | // of the Apache-2.0 license. See the LICENSE file for details. |
4 | 4 |
|
5 | 5 | import { StorageEntry } from '@polkadot/types/primitive/StorageKey'; |
6 | | -import { Type } from '@polkadot/types'; |
7 | | -import { assert } from '@polkadot/util'; |
8 | 6 |
|
9 | | -function sig ({ method, section }: StorageEntry, ...args: Type[]): string { |
10 | | - return `${section}.${method}(${args.join(', ')})`; |
11 | | -} |
| 7 | +// FIXME This breaks with .at(hash, ...) |
12 | 8 |
|
13 | | -function doDoubleMap (creator: StorageEntry, args: any[]): [StorageEntry, [any, any]] { |
14 | | - const { key1, key2 } = creator.meta.type.asDoubleMap; |
| 9 | +// import { Type } from '@polkadot/types'; |
| 10 | +// import { assert } from '@polkadot/util'; |
15 | 11 |
|
16 | | - assert(args.length === 2, `${sig(creator, key1, key2)} is a doublemap, requiring 2 arguments, ${args.length} found`); |
| 12 | +// function sig ({ method, section }: StorageEntry, ...args: Type[]): string { |
| 13 | +// return `${section}.${method}(${args.join(', ')})`; |
| 14 | +// } |
17 | 15 |
|
18 | | - // pass as tuple |
19 | | - return [creator, args as [any, any]]; |
20 | | -} |
| 16 | +// function doDoubleMap (creator: StorageEntry, args: any[]): [StorageEntry, [any, any]] { |
| 17 | +// const { key1, key2 } = creator.meta.type.asDoubleMap; |
21 | 18 |
|
22 | | -function doMap (creator: StorageEntry, args: any[]): [StorageEntry] | [StorageEntry, any] { |
23 | | - const { key, linked } = creator.meta.type.asMap; |
| 19 | +// assert(args.length === 2, `${sig(creator, key1, key2)} is a doublemap, requiring 2 arguments, ${args.length} found`); |
24 | 20 |
|
25 | | - linked.isTrue |
26 | | - ? assert(args.length <= 1, `${sig(creator, key)} is a linked map, requiring either 0 arguments (retrieving all) or 1 argument, ${args.length} found`) |
27 | | - : assert(args.length === 1, `${sig(creator, key)} is a map, requiring 1 argument, ${args.length} found`); |
| 21 | +// // pass as tuple |
| 22 | +// return [creator, args as [any, any]]; |
| 23 | +// } |
28 | 24 |
|
29 | | - // expand |
30 | | - return args.length |
31 | | - ? [creator, args[0]] |
32 | | - : [creator]; |
33 | | -} |
| 25 | +// function doMap (creator: StorageEntry, args: any[]): [StorageEntry] | [StorageEntry, any] { |
| 26 | +// const { key, linked } = creator.meta.type.asMap; |
| 27 | + |
| 28 | +// linked.isTrue |
| 29 | +// ? assert(args.length <= 1, `${sig(creator, key)} is a linked map, requiring either 0 arguments (retrieving all) or 1 argument, ${args.length} found`) |
| 30 | +// : assert(args.length === 1, `${sig(creator, key)} is a map, requiring 1 argument, ${args.length} found`); |
| 31 | + |
| 32 | +// // expand |
| 33 | +// return args.length |
| 34 | +// ? [creator, args[0]] |
| 35 | +// : [creator]; |
| 36 | +// } |
34 | 37 |
|
35 | 38 | // sets up the arguments in the form of [creator, args] ready to be used in a storage |
36 | 39 | // call. Additionally, it verifies that the correct number of arguments have been passed |
37 | 40 | export function extractStorageArgs (creator: StorageEntry, args: any[]): any[] { |
38 | | - if (creator.meta.type.isDoubleMap) { |
39 | | - return doDoubleMap(creator, args); |
40 | | - } else if (creator.meta.type.isMap) { |
41 | | - return doMap(creator, args); |
42 | | - } |
| 41 | + return creator.meta.type.isDoubleMap |
| 42 | + ? [creator, args] |
| 43 | + : [creator, ...args]; |
| 44 | + |
| 45 | + // if (creator.meta.type.isDoubleMap) { |
| 46 | + // return doDoubleMap(creator, args); |
| 47 | + // } else if (creator.meta.type.isMap) { |
| 48 | + // return doMap(creator, args); |
| 49 | + // } |
43 | 50 |
|
44 | | - assert(args.length === 0, `${sig(creator)} does not take any arguments, ${args.length} found`); |
| 51 | + // assert(args.length === 0, `${sig(creator)} does not take any arguments, ${args.length} found`); |
45 | 52 |
|
46 | | - // no args |
47 | | - return [creator]; |
| 53 | + // // no args |
| 54 | + // return [creator, ...args]; |
48 | 55 | } |
0 commit comments