Remove custom toString() from metadata storage (#1597)

* Convert asType -> asPlain, isPlainType -> isPlain

* Make tests pass

* Move unwrapStorageType to StorageKey
This commit is contained in:
Jaco Greeff
2019-11-22 10:47:21 +01:00
committed by GitHub
parent ea2c320f33
commit 3b758a0d64
27 changed files with 1142 additions and 3585 deletions
@@ -6,6 +6,7 @@ import { Codec, Registry } from '@polkadot/types/types';
import { MetadataInterface } from '../types';
import { createTypeUnsafe } from '@polkadot/types/codec/create';
import { unwrapStorageType } from '@polkadot/types/primitive/StorageKey';
import getUniqTypes from './getUniqTypes';
import Metadata from '../Metadata';
@@ -18,11 +19,15 @@ export function decodeLatestSubstrate<Modules extends Codec> (registry: Registry
it('decodes latest substrate properly', (): void => {
const metadata = new Metadata(registry, rpcData);
console.error(JSON.stringify(metadata.toJSON()));
try {
expect(metadata.version).toBe(version);
expect((metadata[`asV${version}` as keyof Metadata] as unknown as MetadataInterface<Modules>).modules.length).not.toBe(0);
expect(metadata.toJSON()).toEqual(staticSubstrate);
} catch (error) {
console.error(JSON.stringify(metadata.toJSON()));
expect(metadata.version).toBe(version);
expect((metadata[`asV${version}` as keyof Metadata] as unknown as MetadataInterface<Modules>).modules.length).not.toBe(0);
expect(metadata.toJSON()).toEqual(staticSubstrate);
throw error;
}
});
}
@@ -54,9 +59,18 @@ export function defaultValues (registry: Registry, rpcData: string): void {
.filter(({ storage }): boolean => storage.isSome)
.forEach((mod): void => {
mod.storage.unwrap().items.forEach(({ fallback, name, type }): void => {
it(`creates default types for ${mod.name}.${name}, type ${type}`, (): void => {
const inner = unwrapStorageType(type);
const location = `${mod.name}.${name}: type ${inner}`;
it(`creates default types for ${location}`, (): void => {
expect(
(): Codec => createTypeUnsafe(registry, type.toString(), [fallback])
(): Codec => {
try {
return createTypeUnsafe(registry, inner, [fallback]);
} catch (error) {
throw new Error(`${location}:: ${error.message}`);
}
}
).not.toThrow();
});
});