From a173804635925e43eca62a087505cc7fe02284ec Mon Sep 17 00:00:00 2001 From: Amaury Martiny Date: Mon, 15 Oct 2018 12:12:08 +0200 Subject: [PATCH] Revert to from again --- packages/type-extrinsics/src/static.ts | 2 +- packages/type-storage/src/static.ts | 2 +- packages/types/src/ExtrinsicStatus.spec.js | 2 +- packages/types/src/Header.spec.js | 4 +- packages/types/src/Metadata.spec.js | 4 +- packages/types/src/RuntimeVersion.spec.js | 2 +- packages/types/src/SignedBlock.spec.js | 2 +- packages/types/src/Type.spec.js | 6 +-- packages/types/src/codec/Compact.spec.js | 2 +- packages/types/src/codec/Enum.spec.js | 59 +++++++--------------- packages/types/src/codec/Option.spec.js | 2 +- packages/types/src/codec/Vector.spec.js | 2 +- 12 files changed, 34 insertions(+), 55 deletions(-) diff --git a/packages/type-extrinsics/src/static.ts b/packages/type-extrinsics/src/static.ts index d8480a488392..394d61dbf9ff 100644 --- a/packages/type-extrinsics/src/static.ts +++ b/packages/type-extrinsics/src/static.ts @@ -8,5 +8,5 @@ import Metadata from '@polkadot/types/Metadata'; import fromMetadata from './fromMetadata'; export default fromMetadata( - new Metadata(metadataRpc) + new Metadata().fromJSON(metadataRpc) ); diff --git a/packages/type-storage/src/static.ts b/packages/type-storage/src/static.ts index db40229e773c..0cb5e69af978 100644 --- a/packages/type-storage/src/static.ts +++ b/packages/type-storage/src/static.ts @@ -8,5 +8,5 @@ import Metadata from '@polkadot/types/Metadata'; import fromMetadata from './fromMetadata'; export default fromMetadata( - new Metadata(metadataRpc) + new Metadata().fromJSON(metadataRpc) ); diff --git a/packages/types/src/ExtrinsicStatus.spec.js b/packages/types/src/ExtrinsicStatus.spec.js index 0d8f7b14cf9b..0fa15ba56d6e 100644 --- a/packages/types/src/ExtrinsicStatus.spec.js +++ b/packages/types/src/ExtrinsicStatus.spec.js @@ -6,7 +6,7 @@ import rpc from './ExtrinsicStatus.rpc.json'; import ExtrinsicStatus from './ExtrinsicStatus'; describe('ExtrinsicStatus', () => { - const status = new ExtrinsicStatus(rpc.params.result); + const status = new ExtrinsicStatus().fromJSON(rpc.params.result); it('has the correct type', () => { expect( diff --git a/packages/types/src/Header.spec.js b/packages/types/src/Header.spec.js index a5fe24ef5bce..ba65a1fb48b0 100644 --- a/packages/types/src/Header.spec.js +++ b/packages/types/src/Header.spec.js @@ -7,7 +7,9 @@ import json from './Header.only.json'; describe('Header', () => { it('decodes an actual JSON response', () => { - const header = new Header(json); + const header = new Header(); + + header.fromJSON(json); expect( header.blockNumber.toNumber() diff --git a/packages/types/src/Metadata.spec.js b/packages/types/src/Metadata.spec.js index b51f1fdc55ab..086dc2e7cdba 100644 --- a/packages/types/src/Metadata.spec.js +++ b/packages/types/src/Metadata.spec.js @@ -9,7 +9,7 @@ import rpcdata from './Metadata.rpc'; describe('Metadata', () => { it('decodes properly', () => { - const decoded = new Metadata(rpcdata); + const decoded = new Metadata().fromJSON(rpcdata); const str = JSON.stringify(decoded.toJSON()); console.error(str); @@ -20,7 +20,7 @@ describe('Metadata', () => { it('decodes when length not present (HACK)', () => { const u8a = hexToU8a(rpcdata); - const decoded = new Metadata(u8a.subarray(2)); + const decoded = new Metadata().fromU8a(u8a.subarray(2)); expect(decoded.events.length).not.toBe(0); }); diff --git a/packages/types/src/RuntimeVersion.spec.js b/packages/types/src/RuntimeVersion.spec.js index 5b2da3462337..17963ce5cf29 100644 --- a/packages/types/src/RuntimeVersion.spec.js +++ b/packages/types/src/RuntimeVersion.spec.js @@ -6,7 +6,7 @@ import rpc from './RuntimeVersion.rpc.json'; import RuntimeVersion from './RuntimeVersion'; describe('RuntimeVersion', () => { - const version = new RuntimeVersion(rpc.result); + const version = new RuntimeVersion().fromJSON(rpc.result); it('has the correct authoring', () => { expect(version.authoringVersion.toNumber()).toEqual(1); diff --git a/packages/types/src/SignedBlock.spec.js b/packages/types/src/SignedBlock.spec.js index 0727d6f85bc7..01d1bb7565d1 100644 --- a/packages/types/src/SignedBlock.spec.js +++ b/packages/types/src/SignedBlock.spec.js @@ -6,7 +6,7 @@ import rpc from './SignedBlock.rpc.json'; import SignedBlock from './SignedBlock'; describe('SignedBlock', () => { - const block = new SignedBlock(rpc.result); + const block = new SignedBlock().fromJSON(rpc.result); it('has the correct stateRoot', () => { expect( diff --git a/packages/types/src/Type.spec.js b/packages/types/src/Type.spec.js index 231f7074dbcd..b7230e314a82 100644 --- a/packages/types/src/Type.spec.js +++ b/packages/types/src/Type.spec.js @@ -8,19 +8,19 @@ import Type from './Type'; describe('Type', () => { it('fails to cleanup invalid boxes', () => { expect( - () => new Type('Box new Type().fromJSON('Box { expect( - new Type('Box>').toString() + new Type().fromJSON('Box>').toString() ).toEqual('Vec'); }); it('handles aliasses, multiples per line', () => { expect( - new Type('(Vec, AccountId, Vec)').toString() + new Type().fromJSON('(Vec, AccountId, Vec)').toString() ).toEqual('(Bytes, AccountId, Bytes)'); }); diff --git a/packages/types/src/codec/Compact.spec.js b/packages/types/src/codec/Compact.spec.js index 85eb9802818e..f92a51cf8ea7 100644 --- a/packages/types/src/codec/Compact.spec.js +++ b/packages/types/src/codec/Compact.spec.js @@ -104,7 +104,7 @@ describe('Compact', () => { it('constructs properly via fromU8a', () => { expect( - new Compact(new Uint8Array([254, 255, 3, 0])).raw + new Compact().fromU8a(new Uint8Array([254, 255, 3, 0])).raw ).toEqual(new BN(0xffff)); }); diff --git a/packages/types/src/codec/Enum.spec.js b/packages/types/src/codec/Enum.spec.js index 77b3408611f9..932b08822ff1 100644 --- a/packages/types/src/codec/Enum.spec.js +++ b/packages/types/src/codec/Enum.spec.js @@ -2,55 +2,32 @@ // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. -import Enum from './Enum'; +import EnumType from './EnumType'; +import Text from '../Text'; +import U32 from '../U32'; -const testDecode = (type, input, expected) => - it(`can decode from ${type}`, () => { - const e = new Enum(['foo', 'bar'], input); - expect(e.toString()).toBe(expected); - }); - -const testEncode = (to, expected) => - it(`can encode ${to}`, () => { - const e = new Enum(['foo', 'bar'], 1); - expect(e[to]()).toEqual(expected); - }); - -describe('Enum', () => { - - testDecode('Enum', undefined, 'foo'); - testDecode('Enum', new Enum([], 1), 'bar'); - testDecode('number', 0, 'foo'); - testDecode('number', 1, 'bar'); - testDecode('Uint8Array', Uint8Array.from([0]), 'foo'); - testDecode('Uint8Array', Uint8Array.from([1]), 'bar'); - - testEncode('toJSON', 1); - testEncode('toNumber', 1); - testEncode('toString', 'bar'); - testEncode('toU8a', Uint8Array.from([1])); - - it('provides a clean toString()', () => { +describe('Struct', () => { + it('provides a clean toString() (raw)', () => { expect( - new Enum(['foo', 'bar']).toString() - ).toEqual('foo'); + new EnumType( + [Text, U32] + ).fromU8a(new Uint8Array([0, 2 << 2, 49, 50])).raw.toString() + ).toEqual('12'); }); it('provides a clean toString() (enum)', () => { expect( - new Enum(['foo', 'bar'], new Enum([], 1)).toNumber() - ).toEqual(1); - }); - - it('converts to and from U8a', () => { - expect( - new Enum(['foo', 'bar'], new Uint8Array([1])).toU8a() - ).toEqual(new Uint8Array([1])); + new EnumType( + [Text, U32] + ).fromU8a(new Uint8Array([1, 2 << 2, 49, 50])).toString() + ).toEqual('U32'); }); - it('converts from JSON', () => { + it('allows checking against defined indexes', () => { expect( - new Enum(['foo', 'bar'], 5).toString() - ).toEqual('5'); + new EnumType( + { 1: Text, 5: U32 } + ).fromU8a(new Uint8Array([1, 2 << 2, 49, 50])).toString() + ).toEqual('Text'); }); }); diff --git a/packages/types/src/codec/Option.spec.js b/packages/types/src/codec/Option.spec.js index 576cafb4023e..dd960ec6e598 100644 --- a/packages/types/src/codec/Option.spec.js +++ b/packages/types/src/codec/Option.spec.js @@ -44,7 +44,7 @@ describe('Option', () => { it('has value toString() (provided)', () => { expect( - new Option(Text, new Uint8Array([1, 4 << 2, 49, 50, 51, 52])).toString() + new Option(Text).fromU8a(new Uint8Array([1, 4 << 2, 49, 50, 51, 52])).toString() ).toEqual('1234'); }); diff --git a/packages/types/src/codec/Vector.spec.js b/packages/types/src/codec/Vector.spec.js index ba45e6051f1c..44a9103e3b49 100644 --- a/packages/types/src/codec/Vector.spec.js +++ b/packages/types/src/codec/Vector.spec.js @@ -39,7 +39,7 @@ describe('Vector', () => { it('allows contruction via JSON', () => { expect( - new Vector(Text, ['6', '7']).toString() + new Vector(Text).fromJSON(['6', '7']).toString() ).toEqual('[6, 7]'); });