Ensure that ignored map params yield an error on iterKey (#2605)

This commit is contained in:
Jaco Greeff
2020-09-14 16:05:37 +02:00
committed by GitHub
parent 41ffa2bf00
commit 918bb73547
2 changed files with 7 additions and 4 deletions
@@ -181,11 +181,13 @@ function extendLinkedMap (registry: Registry, itemFn: CreateItemFn, storageFn: S
function extendPrefixedMap (registry: Registry, itemFn: CreateItemFn, storageFn: StorageEntry): StorageEntry {
const { meta: { type } } = itemFn;
storageFn.iterKey = extendHeadMeta(registry, itemFn, storageFn, (arg?: any): Raw =>
type.isDoubleMap && !isUndefined(arg) && !isNull(arg)
storageFn.iterKey = extendHeadMeta(registry, itemFn, storageFn, (arg?: any): Raw => {
assert(type.isDoubleMap || isUndefined(arg), 'Filtering arguments for keys/entries are only valid on double maps');
return type.isDoubleMap && !isUndefined(arg) && !isNull(arg)
? new Raw(registry, u8aConcat(createPrefixedKey(itemFn), getHasher(type.asDoubleMap.hasher)(registry.createType(type.asDoubleMap.key1.toString() as 'Raw', arg).toU8a())))
: new Raw(registry, createPrefixedKey(itemFn))
);
: new Raw(registry, createPrefixedKey(itemFn));
});
return storageFn;
}