From 61d44b5f88e2ab11e6f8120b324ea64b784504bc Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 1 May 2018 11:47:16 +0200 Subject: [PATCH 1/4] Mock tim:val for queries --- package.json | 2 +- packages/api-provider/src/mock/mocks.js | 4 ++++ yarn.lock | 14 +++++++------- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 21854d0cfb58..56e994bbe4cf 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "test": "jest --coverage" }, "devDependencies": { - "@polkadot/dev": "^0.17.12", + "@polkadot/dev": "^0.17.13", "lerna": "^2.5.1" } } diff --git a/packages/api-provider/src/mock/mocks.js b/packages/api-provider/src/mock/mocks.js index 1956c1198aa2..7e1a830c7fb0 100644 --- a/packages/api-provider/src/mock/mocks.js +++ b/packages/api-provider/src/mock/mocks.js @@ -70,9 +70,13 @@ module.exports = function mocks ({ emitter, storage, subscriptions }: MockState) newHead = makeBlockHeader(newHead.number); keyring.getPairs().forEach(({ publicKey }: KeyringPair, index: number) => { + // FIXME: We should be using @polkadot/storage setStorageBn(storage, 'sta:bal:', publicKey(), newHead.number.muln(3).iaddn(index)); }); + // FIXME: We should be using @polkadot/storage + setStorageBn(storage, 'tim:val', Date.now()); + updateSubs(subscriptions, 'subscribe_newHead', headerEncode(newHead)); }, 5000); }; diff --git a/yarn.lock b/yarn.lock index 7c16fec89195..71a8031f3074 100644 --- a/yarn.lock +++ b/yarn.lock @@ -79,9 +79,9 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@polkadot/dev@^0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.17.12.tgz#90d0d302681c5eae4683eea75949548a99e52831" +"@polkadot/dev@^0.17.13": + version "0.17.13" + resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.17.13.tgz#cd5690d4c45abcc1e4b2624944c79229a82930e2" dependencies: babel-cli "^6.26.0" babel-core "^6.26.0" @@ -106,7 +106,7 @@ eslint-plugin-promise "^3.6.0" eslint-plugin-react "^7.7.0" eslint-plugin-standard "^3.0.1" - flow-bin "^0.70.0" + flow-bin "^0.71.0" flow-copy-source "^1.3.0" jest "^22.4.2" makeshift "^1.1.0" @@ -2468,9 +2468,9 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flow-bin@^0.70.0: - version "0.70.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.70.0.tgz#080ae83a997f2b4ddb3dc2649bf13336825292b5" +flow-bin@^0.71.0: + version "0.71.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.71.0.tgz#fd1b27a6458c3ebaa5cb811853182ed631918b70" flow-copy-source@^1.3.0: version "1.3.0" From 67fc57ea8b6b4cd81a6a683677bed8cb853d7456 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 1 May 2018 12:00:16 +0200 Subject: [PATCH 2/4] Update for failing types --- packages/api-provider/src/mock/mocks.js | 4 ++-- packages/api-provider/src/mock/storageKey.js | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/api-provider/src/mock/mocks.js b/packages/api-provider/src/mock/mocks.js index 7e1a830c7fb0..487c684b0894 100644 --- a/packages/api-provider/src/mock/mocks.js +++ b/packages/api-provider/src/mock/mocks.js @@ -53,7 +53,7 @@ function updateSubs (subscriptions, method, value) { }); } -function setStorageBn (storage, prefix: string, key: Uint8Array, value: BN): void { +function setStorageBn (storage, prefix: string, value: BN | number, key?: Uint8Array): void { storage[storageKey(prefix, key)] = bnToU8a(value, 64, true); } @@ -71,7 +71,7 @@ module.exports = function mocks ({ emitter, storage, subscriptions }: MockState) keyring.getPairs().forEach(({ publicKey }: KeyringPair, index: number) => { // FIXME: We should be using @polkadot/storage - setStorageBn(storage, 'sta:bal:', publicKey(), newHead.number.muln(3).iaddn(index)); + setStorageBn(storage, 'sta:bal:', newHead.number.muln(3).iaddn(index), publicKey()); }); // FIXME: We should be using @polkadot/storage diff --git a/packages/api-provider/src/mock/storageKey.js b/packages/api-provider/src/mock/storageKey.js index 97f461d85cf5..9bce7276db10 100644 --- a/packages/api-provider/src/mock/storageKey.js +++ b/packages/api-provider/src/mock/storageKey.js @@ -8,7 +8,9 @@ const u8aFromString = require('@polkadot/util/u8a/fromString'); const u8aToHex = require('@polkadot/util/u8a/toHex'); const xxhash = require('@polkadot/util-crypto/xxhash/asU8a128'); -module.exports = function storageKey (prefix: string, key: Uint8Array | string): string { +// FIXME: Use @polkadot/storage/key + +module.exports = function storageKey (prefix: string, key?: Uint8Array | string = new Uint8Array([])): string { return u8aToHex( xxhash( u8aConcat( From 7c12a90207559db811e8809044100df1bd63171c Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 1 May 2018 12:22:55 +0200 Subject: [PATCH 3/4] Use @polkadot/storage --- packages/api-provider/package.json | 1 + packages/api-provider/src/mock/mocks.js | 17 ++++++++------- packages/api-provider/src/mock/storageKey.js | 22 -------------------- 3 files changed, 10 insertions(+), 30 deletions(-) delete mode 100644 packages/api-provider/src/mock/storageKey.js diff --git a/packages/api-provider/package.json b/packages/api-provider/package.json index c4ba57439a4b..28275af4ce0e 100644 --- a/packages/api-provider/package.json +++ b/packages/api-provider/package.json @@ -34,6 +34,7 @@ "nock": "^9.1.0" }, "dependencies": { + "@polkadot/storage-substrate": "^0.10.2", "@polkadot/util": "^0.19.4", "@polkadot/util-crypto": "^0.19.4", "@polkadot/util-keyring": "^0.19.4", diff --git a/packages/api-provider/src/mock/mocks.js b/packages/api-provider/src/mock/mocks.js index 487c684b0894..07cd5e629174 100644 --- a/packages/api-provider/src/mock/mocks.js +++ b/packages/api-provider/src/mock/mocks.js @@ -5,18 +5,19 @@ // FIME: This file is way too long and way too messy +import type { StorageDef$Key } from '@polkadot/storage/types'; import type { KeyringPair } from '@polkadot/util-keyring/types'; import type { ProviderInterface$Emitted } from '../types'; import type { MockState, MockState$Subscription$Callback } from './types'; const BN = require('bn.js'); const headerEncode = require('@polkadot/primitives-json/header/encode'); +const createKey = require('@polkadot/storage/key'); +const keys = require('@polkadot/storage-substrate/keys'); const bnToU8a = require('@polkadot/util/bn/toU8a'); const randomAsU8a = require('@polkadot/util-crypto/random/asU8a'); const testKeyring = require('@polkadot/util-keyring/testing'); -const storageKey = require('./storageKey'); - const keyring = testKeyring(); const emitEvents: Array = ['connected', 'disconnected']; @@ -53,8 +54,10 @@ function updateSubs (subscriptions, method, value) { }); } -function setStorageBn (storage, prefix: string, value: BN | number, key?: Uint8Array): void { - storage[storageKey(prefix, key)] = bnToU8a(value, 64, true); +function setStorageBn (storage, key: StorageDef$Key, value: BN | number, ...keyParams: Array): void { + const keyValue = createKey(key).apply(null, keyParams); + + storage[keyValue] = bnToU8a(value, 64, true); } module.exports = function mocks ({ emitter, storage, subscriptions }: MockState): void { @@ -70,12 +73,10 @@ module.exports = function mocks ({ emitter, storage, subscriptions }: MockState) newHead = makeBlockHeader(newHead.number); keyring.getPairs().forEach(({ publicKey }: KeyringPair, index: number) => { - // FIXME: We should be using @polkadot/storage - setStorageBn(storage, 'sta:bal:', newHead.number.muln(3).iaddn(index), publicKey()); + setStorageBn(storage, keys.staking.balanceOf, newHead.number.muln(3).iaddn(index), publicKey()); }); - // FIXME: We should be using @polkadot/storage - setStorageBn(storage, 'tim:val', Date.now()); + setStorageBn(storage, keys.timestamp.current, Date.now()); updateSubs(subscriptions, 'subscribe_newHead', headerEncode(newHead)); }, 5000); diff --git a/packages/api-provider/src/mock/storageKey.js b/packages/api-provider/src/mock/storageKey.js deleted file mode 100644 index 9bce7276db10..000000000000 --- a/packages/api-provider/src/mock/storageKey.js +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2017-2018 Jaco Greeff -// This software may be modified and distributed under the terms -// of the ISC license. See the LICENSE file for details. -// @flow - -const u8aConcat = require('@polkadot/util/u8a/concat'); -const u8aFromString = require('@polkadot/util/u8a/fromString'); -const u8aToHex = require('@polkadot/util/u8a/toHex'); -const xxhash = require('@polkadot/util-crypto/xxhash/asU8a128'); - -// FIXME: Use @polkadot/storage/key - -module.exports = function storageKey (prefix: string, key?: Uint8Array | string = new Uint8Array([])): string { - return u8aToHex( - xxhash( - u8aConcat( - u8aFromString(prefix), - key - ) - ) - ); -}; From e941afa338e48574b46d6ec584233f4522325ca2 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 1 May 2018 12:33:03 +0200 Subject: [PATCH 4/4] Upgrades --- packages/api-provider/src/mock/mocks.js | 5 ++++- yarn.lock | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/api-provider/src/mock/mocks.js b/packages/api-provider/src/mock/mocks.js index 07cd5e629174..20a3ac94b0e8 100644 --- a/packages/api-provider/src/mock/mocks.js +++ b/packages/api-provider/src/mock/mocks.js @@ -15,6 +15,7 @@ const headerEncode = require('@polkadot/primitives-json/header/encode'); const createKey = require('@polkadot/storage/key'); const keys = require('@polkadot/storage-substrate/keys'); const bnToU8a = require('@polkadot/util/bn/toU8a'); +const u8aToHex = require('@polkadot/util/u8a/toHex'); const randomAsU8a = require('@polkadot/util-crypto/random/asU8a'); const testKeyring = require('@polkadot/util-keyring/testing'); @@ -55,7 +56,9 @@ function updateSubs (subscriptions, method, value) { } function setStorageBn (storage, key: StorageDef$Key, value: BN | number, ...keyParams: Array): void { - const keyValue = createKey(key).apply(null, keyParams); + const keyValue = u8aToHex( + createKey(key).apply(null, keyParams) + ); storage[keyValue] = bnToU8a(value, 64, true); } diff --git a/yarn.lock b/yarn.lock index 71a8031f3074..97beeef344b8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -166,6 +166,21 @@ "@polkadot/util" "^0.19.4" babel-runtime "^6.26.0" +"@polkadot/storage-substrate@^0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polkadot/storage-substrate/-/storage-substrate-0.10.2.tgz#2f431d812d57f01fbc2a36c87ba495c5917443ee" + dependencies: + "@polkadot/storage" "^0.10.2" + "@polkadot/util" "^0.19.4" + babel-runtime "^6.26.0" + +"@polkadot/storage@^0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.10.2.tgz#e01a53123e5c5de421117685c0a390d3beefbbde" + dependencies: + "@polkadot/util" "^0.19.4" + babel-runtime "^6.26.0" + "@polkadot/util-crypto@^0.19.4": version "0.19.4" resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.19.4.tgz#d6e33197125e9adaf50410478a67e440630e7368"