From 8e2f80d176f23f8aa6c95d0e87fc70e770ad28a1 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 11 Jan 2019 14:54:18 +0100 Subject: [PATCH] Submit extrinsics via signAndSend (#585) * WIP first bits... * Coversion should be ok, testing remains * Tie up loose ends * Bump deps --- .gitignore | 1 + .travis.yml | 2 +- package.json | 4 +- packages/app-democracy/src/VotingButtons.tsx | 10 +- packages/app-extrinsics/src/Selection.tsx | 16 +- packages/app-extrinsics/src/index.tsx | 4 +- packages/app-rpc/src/Selection.tsx | 9 +- .../app-staking/src/StakeList/Account.tsx | 8 +- packages/apps/package.json | 2 +- packages/ui-app/package.json | 18 +- packages/ui-app/src/Status/Queue.tsx | 40 +-- packages/ui-app/src/Status/types.ts | 10 +- packages/ui-react-rx/package.json | 4 +- packages/ui-signer/src/Extrinsic.tsx | 4 +- packages/ui-signer/src/Modal.tsx | 63 ++--- yarn.lock | 238 ++++++++---------- 16 files changed, 172 insertions(+), 261 deletions(-) diff --git a/.gitignore b/.gitignore index f41c90dc80..c08a8b747a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ tmp/ .env.development.local .env.test.local .env.production.local +.npmrc package-lock.json npm-debug.log* yarn-debug.log* diff --git a/.travis.yml b/.travis.yml index 4f34e1741d..180048849d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ node_js: env: - GH_PAGES_SRC="packages/apps/build" before_install: - - curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.10.1 + - curl -o- -L https://yarnpkg.com/install.sh | bash - export PATH=$HOME/.yarn/bin:$PATH cache: yarn: true diff --git a/package.json b/package.json index 0eef1b9f81..b88fe3dd37 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,8 @@ }, "devDependencies": { "@babel/core": "^7.2.2", - "@polkadot/dev-react": "^0.23.7", - "@polkadot/ts": "^0.1.47", + "@polkadot/dev-react": "^0.23.9", + "@polkadot/ts": "^0.1.49", "autoprefixer": "^9.4.4", "empty": "^0.10.1", "gh-pages": "^2.0.1", diff --git a/packages/app-democracy/src/VotingButtons.tsx b/packages/app-democracy/src/VotingButtons.tsx index 688f03e7eb..072a5f74ac 100644 --- a/packages/app-democracy/src/VotingButtons.tsx +++ b/packages/app-democracy/src/VotingButtons.tsx @@ -9,15 +9,14 @@ import { ApiProps } from '@polkadot/ui-react-rx/types'; import BN from 'bn.js'; import React from 'react'; import { Button } from '@polkadot/ui-app/index'; -import { withCall, withMulti } from '@polkadot/ui-react-rx/with/index'; +import { withApi, withMulti } from '@polkadot/ui-react-rx/with/index'; import translate from './translate'; type Props = ApiProps & I18nProps & { accountId?: string, queueExtrinsic: QueueTx$ExtrinsicAdd, - referendumId: BN, - query_system_accountNonce?: BN + referendumId: BN }; class VotingButton extends React.PureComponent { @@ -48,7 +47,7 @@ class VotingButton extends React.PureComponent { } private doVote (vote: boolean) { - const { accountId, apiPromise, queueExtrinsic, referendumId, query_system_accountNonce } = this.props; + const { accountId, apiPromise, queueExtrinsic, referendumId } = this.props; if (!accountId) { return; @@ -56,7 +55,6 @@ class VotingButton extends React.PureComponent { queueExtrinsic({ extrinsic: apiPromise.tx.democracy.vote(referendumId, vote ? -1 : 0), - accountNonce: query_system_accountNonce, accountId }); } @@ -73,5 +71,5 @@ class VotingButton extends React.PureComponent { export default withMulti( VotingButton, translate, - withCall('query.system.accountNonce', { paramProp: 'accountId' }) + withApi ); diff --git a/packages/app-extrinsics/src/Selection.tsx b/packages/app-extrinsics/src/Selection.tsx index d1c062c8fb..2e607168f8 100644 --- a/packages/app-extrinsics/src/Selection.tsx +++ b/packages/app-extrinsics/src/Selection.tsx @@ -4,7 +4,7 @@ import BN from 'bn.js'; import { I18nProps } from '@polkadot/ui-app/types'; -import { QueueTx$ExtrinsicAdd, QueueTx$Unclog } from '@polkadot/ui-app/Status/types'; +import { QueueTx$ExtrinsicAdd } from '@polkadot/ui-app/Status/types'; import { ApiProps } from '@polkadot/ui-react-rx/types'; import React from 'react'; @@ -19,8 +19,7 @@ import Nonce from './Nonce'; import translate from './translate'; type Props = ApiProps & I18nProps & { - queueExtrinsic: QueueTx$ExtrinsicAdd, - queueUnclog: QueueTx$Unclog + queueExtrinsic: QueueTx$ExtrinsicAdd }; type State = { @@ -117,11 +116,7 @@ class Selection extends React.PureComponent { } private onChangeNonce = (accountNonce: BN = new BN(0)): void => { - const { queueUnclog } = this.props; - this.nextState({ accountNonce } as State); - - queueUnclog(accountNonce); } private onChangeSender = (accountId: string): void => { @@ -130,15 +125,16 @@ class Selection extends React.PureComponent { private onQueue (isUnsigned: boolean): void { const { apiPromise, queueExtrinsic } = this.props; - const { accountNonce, method, isValid, accountId } = this.state; + const { method, isValid, accountId } = this.state; if (!isValid || !method) { return; } queueExtrinsic({ - accountId, - accountNonce, + accountId: isUnsigned + ? undefined + : accountId, extrinsic: new SubmittableExtrinsic(apiPromise, method), isUnsigned }); diff --git a/packages/app-extrinsics/src/index.tsx b/packages/app-extrinsics/src/index.tsx index 4511471f43..1769e2e47e 100644 --- a/packages/app-extrinsics/src/index.tsx +++ b/packages/app-extrinsics/src/index.tsx @@ -43,8 +43,8 @@ class ExtrinsicsApp extends React.PureComponent { return (
- {({ queueExtrinsic, queueUnclog }: QueueProps) => ( - + {({ queueExtrinsic }: QueueProps) => ( + )}
diff --git a/packages/app-rpc/src/Selection.tsx b/packages/app-rpc/src/Selection.tsx index 232e6aba6e..c03e54cbbc 100644 --- a/packages/app-rpc/src/Selection.tsx +++ b/packages/app-rpc/src/Selection.tsx @@ -9,7 +9,6 @@ import { QueueTx$RpcAdd } from '@polkadot/ui-app/Status/types'; import './index.css'; -import BN from 'bn.js'; import React from 'react'; import rpc from '@polkadot/jsonrpc'; import { getTypeDef } from '@polkadot/types/codec'; @@ -25,7 +24,6 @@ type Props = I18nProps & { type State = { isValid: boolean, - accountNonce: BN, accountId?: string | null, rpc: RpcMethod, values: Array @@ -36,7 +34,6 @@ const defaultMethod = rpc.author.methods.submitExtrinsic; class Selection extends React.PureComponent { state: State = { isValid: false, - accountNonce: new BN(0), accountId: null, rpc: defaultMethod, values: [] @@ -96,7 +93,7 @@ class Selection extends React.PureComponent { private nextState (newState: State): void { this.setState( (prevState: State): State => { - const { rpc = prevState.rpc, accountNonce = prevState.accountNonce, accountId = prevState.accountId, values = prevState.values } = newState; + const { rpc = prevState.rpc, accountId = prevState.accountId, values = prevState.values } = newState; const hasNeededKey = true; // rpc.isSigned !== true || (!!publicKey && publicKey.length === 32); const isValid = values.reduce((isValid, value) => { return isValid && value.isValid === true; @@ -105,7 +102,6 @@ class Selection extends React.PureComponent { return { isValid, rpc, - accountNonce: accountNonce || new BN(0), accountId, values }; @@ -133,10 +129,9 @@ class Selection extends React.PureComponent { private onSubmit = (): void => { const { queueRpc } = this.props; - const { accountNonce, accountId, rpc, values } = this.state; + const { accountId, rpc, values } = this.state; queueRpc({ - accountNonce, accountId, rpc, values: values.map(({ value }) => diff --git a/packages/app-staking/src/StakeList/Account.tsx b/packages/app-staking/src/StakeList/Account.tsx index af484b1710..4e5f33a16a 100644 --- a/packages/app-staking/src/StakeList/Account.tsx +++ b/packages/app-staking/src/StakeList/Account.tsx @@ -7,7 +7,6 @@ import { QueueTx$ExtrinsicAdd } from '@polkadot/ui-app/Status/types'; import { DerivedBalancesMap } from '@polkadot/ui-react-rx/derive/types'; import { ApiProps } from '@polkadot/ui-react-rx/types'; -import BN from 'bn.js'; import React from 'react'; import SubmittableExtrinsic from '@polkadot/api/promise/SubmittableExtrinsic'; import { AccountId, Balance } from '@polkadot/types'; @@ -19,7 +18,6 @@ import UnnominateButton from './UnnominateButton'; import translate from '../translate'; type Props = ApiProps & I18nProps & { - query_system_accountNonce?: BN, accountId: string, balances: DerivedBalancesMap, balanceArray: (_address: AccountId | string) => Array | undefined, @@ -164,11 +162,10 @@ class Account extends React.PureComponent { } private send (extrinsic: SubmittableExtrinsic) { - const { query_system_accountNonce, accountId, queueExtrinsic } = this.props; + const { accountId, queueExtrinsic } = this.props; queueExtrinsic({ extrinsic, - accountNonce: query_system_accountNonce, accountId }); } @@ -214,6 +211,5 @@ export default withMulti( Account, translate, withCall('query.staking.nominatorsFor', { paramProp: 'accountId' }), - withCall('query.staking.nominating', { paramProp: 'accountId' }), - withCall('query.system.accountNonce', { paramProp: 'accountId' }) + withCall('query.staking.nominating', { paramProp: 'accountId' }) ); diff --git a/packages/apps/package.json b/packages/apps/package.json index 57bbe7014f..2ccf82004b 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -26,7 +26,7 @@ "@polkadot/app-transfer": "^0.22.6", "@polkadot/app-vanitygen": "^0.22.6", "@polkadot/ui-app": "^0.22.6", - "@polkadot/ui-assets": "^0.25.1", + "@polkadot/ui-assets": "^0.25.2", "@polkadot/ui-signer": "^0.22.6" } } diff --git a/packages/ui-app/package.json b/packages/ui-app/package.json index 1e20f1008a..ed705d33de 100644 --- a/packages/ui-app/package.json +++ b/packages/ui-app/package.json @@ -11,16 +11,16 @@ "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.2.0", - "@polkadot/extrinsics": "^0.38.9", - "@polkadot/keyring": "^0.33.30", - "@polkadot/storage": "^0.38.9", - "@polkadot/types": "^0.38.9", - "@polkadot/ui-identicon": "^0.25.1", - "@polkadot/ui-keyring": "^0.25.1", + "@polkadot/extrinsics": "^0.38.16", + "@polkadot/keyring": "^0.33.33", + "@polkadot/storage": "^0.38.16", + "@polkadot/types": "^0.38.16", + "@polkadot/ui-identicon": "^0.25.2", + "@polkadot/ui-keyring": "^0.25.2", "@polkadot/ui-react-rx": "^0.22.6", - "@polkadot/ui-settings": "^0.25.1", - "@polkadot/util": "^0.33.30", - "@polkadot/util-crypto": "^0.33.30", + "@polkadot/ui-settings": "^0.25.2", + "@polkadot/util": "^0.33.33", + "@polkadot/util-crypto": "^0.33.33", "@types/chart.js": "^2.7.42", "@types/i18next": "^12.1.0", "@types/i18next-browser-languagedetector": "^2.0.1", diff --git a/packages/ui-app/src/Status/Queue.tsx b/packages/ui-app/src/Status/Queue.tsx index b07416cc70..ebba7cec07 100644 --- a/packages/ui-app/src/Status/Queue.tsx +++ b/packages/ui-app/src/Status/Queue.tsx @@ -6,7 +6,6 @@ import { RpcMethod } from '@polkadot/jsonrpc/types'; import { BareProps } from '../types'; import { ActionStatus, PartialQueueTx$Extrinsic, PartialQueueTx$Rpc, QueueProps, QueueStatus, QueueTx, QueueTx$Extrinsic, QueueTx$Rpc, QueueTx$Status } from './types'; -import BN from 'bn.js'; import React from 'react'; import jsonrpc from '@polkadot/jsonrpc'; @@ -47,8 +46,7 @@ export default class Queue extends React.Component { queueAction: this.queueAction, queueRpc: this.queueRpc, queueExtrinsic: this.queueExtrinsic, - queueSetTxStatus: this.queueSetTxStatus, - queueUnclog: this.queueUnclog + queueSetTxStatus: this.queueSetTxStatus }; } @@ -60,17 +58,6 @@ export default class Queue extends React.Component { ); } - private isDuplicateNonce = (value: QueueTx$Extrinsic | QueueTx$Rpc | QueueTx): boolean => { - const { txqueue } = this.state; - - return txqueue.filter((item) => - !STATUS_COMPLETE.includes(item.status) && - item.status !== 'completed' && - item.accountNonce.eq(value.accountNonce) && - item.accountId === value.accountId - ).length > 0; - } - queueAction = (status: ActionStatus): number => { const id = ++nextId; @@ -155,7 +142,7 @@ export default class Queue extends React.Component { ...value, id, rpc, - status: this.isDuplicateNonce(value) ? 'blocked' : 'queued' + status: 'queued' }]) } as State) ); @@ -163,38 +150,19 @@ export default class Queue extends React.Component { return id; } - queueExtrinsic = ({ accountId, accountNonce, extrinsic, isUnsigned }: PartialQueueTx$Extrinsic): number => { + queueExtrinsic = ({ accountId, extrinsic, isUnsigned }: PartialQueueTx$Extrinsic): number => { return this.queueAdd({ accountId, - accountNonce: accountNonce || new BN(0), extrinsic, isUnsigned }); } - queueRpc = ({ accountId, accountNonce, rpc, values }: PartialQueueTx$Rpc): number => { + queueRpc = ({ accountId, rpc, values }: PartialQueueTx$Rpc): number => { return this.queueAdd({ accountId, - accountNonce: accountNonce || new BN(0), rpc, values }); } - - queueUnclog = (accountNonce: BN): void => { - const { txqueue } = this.state; - - // FIXME It works, but it's gross. It cancels all queued extrinsic with the nonincremenated - // nonce marked with a 'blocked' status and then requeues them all with the updated nonce. - // Unless users spam submit extrinsics, i can't see this being an issue, but it is still ugly. - txqueue.forEach((item) => { - if (item.status === 'blocked') { - let updatedItem = item; - this.queueSetTxStatus(item.id, 'cancelled'); - - updatedItem.accountNonce = accountNonce; - this.queueAdd(updatedItem); - } - }); - } } diff --git a/packages/ui-app/src/Status/types.ts b/packages/ui-app/src/Status/types.ts index 48d3404d84..fc107dc199 100644 --- a/packages/ui-app/src/Status/types.ts +++ b/packages/ui-app/src/Status/types.ts @@ -2,7 +2,6 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. -import BN from 'bn.js'; import SubmittableExtrinsic from '@polkadot/api/promise/SubmittableExtrinsic'; import { RpcMethod } from '@polkadot/jsonrpc/types'; import { AccountId, Address } from '@polkadot/types'; @@ -17,8 +16,7 @@ export type ActionStatus = { }; export type AccountInfo = { - accountId?: string | null, - accountNonce: BN + accountId?: string | null }; export type QueueTx$Status = 'future' | 'ready' | 'finalised' | 'usurped' | 'dropped' | 'invalid' | 'broadcast' | 'cancelled' | 'completed' | 'error' | 'incomplete' | 'queued' | 'sending' | 'sent' | 'blocked'; @@ -55,8 +53,7 @@ export type QueueTx$Rpc = AccountInfo & { }; export type PartialAccountInfo = { - accountId?: string | null, - accountNonce?: BN | null + accountId?: string | null }; export type PartialQueueTx$Extrinsic = PartialAccountInfo & { @@ -75,15 +72,12 @@ export type QueueTx$ExtrinsicAdd = (value: PartialQueueTx$Extrinsic) => number; export type QueueTx$MessageSetStatus = (id: number, status: QueueTx$Status, result?: any, error?: Error) => void; -export type QueueTx$Unclog = (accountNonce: BN) => void; - export type QueueAction$Add = (status: ActionStatus) => number; export type QueueProps = { stqueue: Array, txqueue: Array, queueAction: QueueAction$Add, - queueUnclog: QueueTx$Unclog, queueExtrinsic: QueueTx$ExtrinsicAdd, queueRpc: QueueTx$RpcAdd, queueSetTxStatus: QueueTx$MessageSetStatus diff --git a/packages/ui-react-rx/package.json b/packages/ui-react-rx/package.json index 475d6d8f1e..2080f28083 100644 --- a/packages/ui-react-rx/package.json +++ b/packages/ui-react-rx/package.json @@ -31,8 +31,8 @@ "homepage": "https://github.com/polkadot-js/ui/tree/master/packages/ui-react-rx#readme", "dependencies": { "@babel/runtime": "^7.2.0", - "@polkadot/api": "^0.38.9", - "@polkadot/types": "^0.38.9", + "@polkadot/api": "^0.38.16", + "@polkadot/types": "^0.38.16", "rxjs-compat": "^6.3.2" } } diff --git a/packages/ui-signer/src/Extrinsic.tsx b/packages/ui-signer/src/Extrinsic.tsx index dcccf1878a..fc13ade6ca 100644 --- a/packages/ui-signer/src/Extrinsic.tsx +++ b/packages/ui-signer/src/Extrinsic.tsx @@ -19,7 +19,7 @@ type Props = I18nProps & { class Transaction extends React.PureComponent { render () { - const { children, t, value: { accountId, accountNonce, extrinsic, isUnsigned } } = this.props; + const { children, t, value: { accountId, extrinsic, isUnsigned } } = this.props; if (!extrinsic) { return null; @@ -31,7 +31,7 @@ class Transaction extends React.PureComponent { You are about to submit an (unsigned) inherent transaction calling {section}.{method} ) : ( - You are about to sign a message from {accountId} calling {section}.{method} with an index of {accountNonce.toString()} + You are about to sign a transaction from {accountId} calling {section}.{method} ); const icon = isUnsigned ? undefined diff --git a/packages/ui-signer/src/Modal.tsx b/packages/ui-signer/src/Modal.tsx index 65fb402a3e..3e46dd6e61 100644 --- a/packages/ui-signer/src/Modal.tsx +++ b/packages/ui-signer/src/Modal.tsx @@ -3,6 +3,7 @@ // of the Apache-2.0 license. See the LICENSE file for details. import { SubmittableSendResult } from '@polkadot/api/types'; +import { UnsubFunction } from '@polkadot/api/promise/types'; import { ApiProps } from '@polkadot/ui-react-rx/types'; import { I18nProps, BareProps } from '@polkadot/ui-app/types'; import { RpcMethod } from '@polkadot/jsonrpc/types'; @@ -14,12 +15,12 @@ import { decodeAddress } from '@polkadot/keyring'; import { Button, Modal } from '@polkadot/ui-app/index'; import keyring from '@polkadot/ui-keyring'; import { withApi, withMulti } from '@polkadot/ui-react-rx/with/index'; +import { assert } from '@polkadot/util'; import { format } from '@polkadot/util/logger'; import ExtrinsicDisplay from './Extrinsic'; import Unlock from './Unlock'; import translate from './translate'; -import { UnsubFunction } from '@polkadot/api/promise/types'; type BaseProps = BareProps & { queue: Array, @@ -72,7 +73,7 @@ class Signer extends React.PureComponent { }; } - async componentDidUpdate (prevProps: Props, prevState: State) { + async componentDidUpdate () { const { currentItem } = this.state; if (currentItem && currentItem.status === 'queued' && !currentItem.extrinsic) { @@ -212,9 +213,9 @@ class Signer extends React.PureComponent { }); } - private onKeyDown = async (event: React.KeyboardEvent): Promise => { + private onKeyDown = (event: React.KeyboardEvent): void => { if (event.key === 'Enter') { - await this.onSend(); + this.onSend(); } } @@ -230,7 +231,7 @@ class Signer extends React.PureComponent { queueSetTxStatus(currentItem.id, 'cancelled'); } - private onSend = async (): Promise => { + private onSend = (): void => { const { currentItem, password } = this.state; // This should never be executed @@ -255,13 +256,13 @@ class Signer extends React.PureComponent { queueSetTxStatus(id, status, result, error); } - private sendExtrinsic = ({ accountNonce, accountId, extrinsic, id, isUnsigned }: QueueTx, password?: string) => { - if (!extrinsic || !accountId) { - return; - } + private sendExtrinsic = ({ accountId, extrinsic, id, isUnsigned }: QueueTx, password?: string) => { + assert(extrinsic, 'Expected an extrinsic to be supplied to sendExtrinsic'); if (!isUnsigned) { - const unlockError = this.unlockAccount(accountId, password); + assert(accountId, 'Expected an accountId with signed transactions'); + + const unlockError = this.unlockAccount(accountId as string, password); if (unlockError) { this.setState({ unlockError }); @@ -269,21 +270,16 @@ class Signer extends React.PureComponent { } } - const { apiPromise, queueSetTxStatus } = this.props; + const submittable = extrinsic as SubmittableExtrinsic; + const { queueSetTxStatus } = this.props; queueSetTxStatus(id, 'sending'); - const pair = keyring.getPair(accountId); - if (!isUnsigned) { - console.log(`sendExtrinsic: from=${pair.address()}, nonce=${accountNonce}, blockHash=${apiPromise.genesisHash.toHex()}`); - - extrinsic.sign(pair, accountNonce, apiPromise.genesisHash); + this.makeExtrinsicCall(submittable, id, submittable.signAndSend, keyring.getPair(accountId as string)); } else { - console.log(`sendInherent: from=${pair.address()}, nonce=${accountNonce}`); + this.makeExtrinsicCall(submittable, id, submittable.send); } - - this.submitExtrinsic(extrinsic, id); } private async submitRpc ({ method, section }: RpcMethod, values: Array): Promise { @@ -308,30 +304,19 @@ class Signer extends React.PureComponent { } } - private submitExtrinsic (extrinsic: SubmittableExtrinsic, id: number) { + private makeExtrinsicCall (extrinsic: SubmittableExtrinsic, id: number, extrinsicCall: (...params: Array) => any, ..._params: Array) { const { queueSetTxStatus } = this.props; + const unsubscribe = extrinsicCall.apply(extrinsic, [..._params, (result: SubmittableSendResult) => { + const status = result.type.toLowerCase() as QueueTx$Status; - try { - const encoded = extrinsic.toJSON(); + console.log('submitAndWatchExtrinsic: updated status ::', result); - console.log('submitAndWatchExtrinsic: encode ::', encoded); + queueSetTxStatus(id, status, result); - const unsubscribe = extrinsic.send((result: SubmittableSendResult) => { - const status = result.type.toLowerCase() as QueueTx$Status; - - console.log('submitAndWatchExtrinsic: updated status ::', result); - - queueSetTxStatus(id, status, result); - - if (status === 'finalised') { - unsubscribe(); - } - }) as UnsubFunction; - } catch (error) { - console.error('submitAndWatchExtrinsic:', error); - - queueSetTxStatus(id, 'error', null, error); - } + if (status === 'finalised') { + unsubscribe(); + } + }]) as UnsubFunction; } } diff --git a/yarn.lock b/yarn.lock index 02ce48b12e..afd2e5540c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1369,43 +1369,43 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@polkadot/api-derive@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.38.9.tgz#ee66b36b0b500950c1ed639df6dfd0ede04cb35b" - integrity sha512-ro56uw34jk2G030eR++YICeiQUv9p+l/hwGSxu+zvagD0hLq89Ya7XVYpspbAeOYaWz8JrGERjLjCe8sJ7D4dQ== +"@polkadot/api-derive@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.38.16.tgz#15e4b41f82c455d2dd289a5e984fc9ca6b931668" + integrity sha512-cTjUkpjSzzW94QmugqR6eoZ1Up/hScSqOdxWIiihPtx9owYqmD+0fPd0gQgf7Y4AKkrBEW/la5cW/tNNFEgRqA== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/api" "^0.38.9" - "@polkadot/types" "^0.38.9" + "@polkadot/api" "^0.38.16" + "@polkadot/types" "^0.38.16" "@types/memoizee" "^0.4.2" "@types/rx" "^4.1.1" memoizee "^0.4.14" rxjs "^6.3.3" -"@polkadot/api@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.38.9.tgz#56f02638ab96b9261120f3ac7f57272909e502c2" - integrity sha512-ExLmrolv1ygwAdPb8lIcxkZMeWSPr+82jwbrHPMSr4mKak4MRW7d6C9RlZSgVaaqVJqZYiWTS5Vvf8rcdBDglQ== +"@polkadot/api@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.38.16.tgz#00fd750801edb7ba8f97fc1b548b45c1d6d9f9c3" + integrity sha512-G53NQLGJNJFwVPQljWTiSiC1WnOXB6Uh05JcYNe3kpW3H2dE/XSwRe9q5T9WrgdGGDX3zDxfYN0dgTyrZlFYGg== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/api-derive" "^0.38.9" - "@polkadot/extrinsics" "^0.38.9" - "@polkadot/rpc-provider" "^0.38.9" - "@polkadot/rpc-rx" "^0.38.9" - "@polkadot/storage" "^0.38.9" - "@polkadot/types" "^0.38.9" + "@polkadot/api-derive" "^0.38.16" + "@polkadot/extrinsics" "^0.38.16" + "@polkadot/rpc-provider" "^0.38.16" + "@polkadot/rpc-rx" "^0.38.16" + "@polkadot/storage" "^0.38.16" + "@polkadot/types" "^0.38.16" "@types/rx" "^4.1.1" rxjs "^6.3.3" -"@polkadot/dev-react@^0.23.7": - version "0.23.7" - resolved "https://registry.yarnpkg.com/@polkadot/dev-react/-/dev-react-0.23.7.tgz#59c0b23e208c2fc10a007994ff3ca4b805f9673f" - integrity sha512-8fUdnv7vwPaTZSMKYZ9pYDAZl5g6mnl+GcT81EpMtBfVhPi2ZimzhMqQwQQ+lS4gMs6Jcmnk0Ajfg87EIFzdBA== +"@polkadot/dev-react@^0.23.9": + version "0.23.9" + resolved "https://registry.yarnpkg.com/@polkadot/dev-react/-/dev-react-0.23.9.tgz#73a0ecaf4a7c88fc0e9402d9121f97769c9b87f1" + integrity sha512-ZW/+fC7ItE3SPGCdY/vsZPg8Mgyk7gmTtlxzQW0DOx76niDZuauTHEmj0MebKBVHw9FboQlrCWEUcXa52tUmww== dependencies: "@babel/core" "^7.2.2" "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/preset-react" "^7.0.0" - "@polkadot/dev" "^0.23.7" + "@polkadot/dev" "^0.23.9" "@types/react" "^16.7.18" "@types/react-dom" "^16.0.11" "@types/styled-components" "^4.1.4" @@ -1433,10 +1433,10 @@ webpack-serve "^2.0.3" worker-loader "^2.0.0" -"@polkadot/dev@^0.23.7": - version "0.23.7" - resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.23.7.tgz#4a32050214fe13e7fdaa5aa1cc9fd0ccd310211b" - integrity sha512-6US2N28NBSfUt67zEZn+5CJ6DCFcklGqwHEykN6Xr+S9HsX+en9oK4NTzfgewjNP9FlKLjDjl7EwIJgIOERmwA== +"@polkadot/dev@^0.23.9": + version "0.23.9" + resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.23.9.tgz#dc40dcfccd987b9160d6ad9be6b303dfca407d72" + integrity sha512-DE5uhjLnv8fjhuztcy6riHcpnSW029ObtQuDchjQOOo2KU+YNxDAM0yNXIymdALuu7ZC75bjKembZl1AGF+oSw== dependencies: "@babel/cli" "^7.2.3" "@babel/core" "^7.2.2" @@ -1463,7 +1463,6 @@ gitbook-plugin-sunlight-highlighter "^0.4.3" jest "^23.6.0" lerna "^3.8.4" - makeshift "^1.1.0" mkdirp "^0.5.1" rimraf "^2.6.3" tslint "^5.12.0" @@ -1473,141 +1472,141 @@ typedoc-plugin-no-inherit "^1.1.1" typescript "^3.2.2" -"@polkadot/extrinsics@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.38.9.tgz#5ae8aed15964dfa6c2094d79c020074b97f061a7" - integrity sha512-bETKVEyQjoBTuVWrEHgy77bs/pSf99/7VsWXZ1DuSJYrRjXnlQIVgslWpMx8rxJZiNatODNI8+g0E9Toz7+zTg== +"@polkadot/extrinsics@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/extrinsics/-/extrinsics-0.38.16.tgz#49ce7e47529b912b17843e30717efb13f5f9f667" + integrity sha512-3Kcyoq+Dh/f5jIlkr6DIug3f9Ythf+p7sSp7ktrCD55ZYfvYzdXOCb5SIeVpXDhHlpDYXT/Aj/QLynCFD+I3Kw== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/types" "^0.38.9" - "@polkadot/util" "^0.33.30" + "@polkadot/types" "^0.38.16" + "@polkadot/util" "^0.33.33" -"@polkadot/jsonrpc@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.38.9.tgz#370f3087e1bf17bb7ac4b5f77635cd134f5a8f9c" - integrity sha512-uXgNrl+JNe2glbwg2tvkT1mzej81kpVY+oPHuNPbBrUpg6Rpq3eAvRvN73PiiJs+OHI0B+Out54Jq8fQj0w9gw== +"@polkadot/jsonrpc@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.38.16.tgz#456d8ce11f1dedb108d2debe974187c92a73bb13" + integrity sha512-G87JwRnp89AwTXiaQWeVefU8ykzw7y5/Az7FLKW3BmgH6eFbr8uxYD1LaSl1W+VArwCve5ibFvBIzfcqStbtIA== dependencies: "@babel/runtime" "^7.2.0" -"@polkadot/keyring@^0.33.30": - version "0.33.30" - resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-0.33.30.tgz#54cb6baec7db16366989381601cd58f2b5f9b851" - integrity sha512-qE6X9Nhp0reXBSPz5PGPlT78KchJXdfUuAE/yJIOyM2s5WGOWCHCMzQEJmL7S9F70w76EFxazczJCmNe+ZhPGA== +"@polkadot/keyring@^0.33.33": + version "0.33.33" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-0.33.33.tgz#fe34934b44e900ca4f635382fbb47d497bd00117" + integrity sha512-/vlPmOsRobWu8QHKXfLb1zdUHeKzqVbnL+qbyT6OQyOfAq7rCpZYgryhXuDq4QR14WMmy3Xhcp0/62QWGWAf4g== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/util" "^0.33.30" - "@polkadot/util-crypto" "^0.33.30" + "@polkadot/util" "^0.33.33" + "@polkadot/util-crypto" "^0.33.33" "@types/bs58" "^4.0.0" bs58 "^4.0.1" -"@polkadot/rpc-core@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.38.9.tgz#f6948eae53a13eed5c576195ce7a707e28bf3e3c" - integrity sha512-urd08d3aZZDORM4u3lBY+huSBfQ05FEH0tdkZMciEajL5rJbF8O9UeaK5uqUIxe8Kjb5ZO+XBvdxS5EgKVVIIg== +"@polkadot/rpc-core@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.38.16.tgz#332bd9134502c075a4a2dee478d818bf4bd17ec0" + integrity sha512-H/H6fnXj/tkArf8hfBFpvfI+EGw0uedKkwLca3tRSJ/4680oTD9JNKqWkp3BMfCjombsLkuw6mAqnOyBDO1Z9w== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/jsonrpc" "^0.38.9" - "@polkadot/rpc-provider" "^0.38.9" - "@polkadot/types" "^0.38.9" - "@polkadot/util" "^0.33.30" + "@polkadot/jsonrpc" "^0.38.16" + "@polkadot/rpc-provider" "^0.38.16" + "@polkadot/types" "^0.38.16" + "@polkadot/util" "^0.33.33" -"@polkadot/rpc-provider@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.38.9.tgz#81807fab2d648df850449d63b6e4aa3da88d6c86" - integrity sha512-BdFYa0BIC1iaVGolevfobVjwVQhWCFXBE616xlaSP3TZgYaQHpGb/PNFUsDLaqSBYv5P3GADOWEiAvx6T95EqQ== +"@polkadot/rpc-provider@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.38.16.tgz#9216e5629e06cf51b2f736113b9a1c178d0df1a8" + integrity sha512-oqh2p0FeroymdcJbPDYlNpGrZpahrcZN04EZYixnL0JrluD6nmz51yA0/k59YdHwBNZRAcF9eOGJfuQhEtTL0g== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/keyring" "^0.33.30" - "@polkadot/storage" "^0.38.9" - "@polkadot/util" "^0.33.30" - "@polkadot/util-crypto" "^0.33.30" + "@polkadot/keyring" "^0.33.33" + "@polkadot/storage" "^0.38.16" + "@polkadot/util" "^0.33.33" + "@polkadot/util-crypto" "^0.33.33" "@types/nock" "^9.3.0" eventemitter3 "^3.1.0" isomorphic-fetch "^2.2.1" websocket "^1.0.28" -"@polkadot/rpc-rx@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-rx/-/rpc-rx-0.38.9.tgz#a595165cd747ec826db8e0f071f333480496db6f" - integrity sha512-2KhoJkUk5VY6LE/i390TKQvb4cmkwUgeosUfSoUbi2En4+hqKTIosJBlIVA60s1s1Y6HYIF1P2HETKLr0DznCw== +"@polkadot/rpc-rx@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-rx/-/rpc-rx-0.38.16.tgz#7485afab25429095716e579cb456a7c25601c947" + integrity sha512-i/3E52TGYGO3sQWP8QRTEbUmrpTdMkV/+U+jUUvs0DyjbpnI1hw6roTI0lUdJoi3dPP8p29WctSGP6kXaIlkHQ== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/rpc-core" "^0.38.9" - "@polkadot/rpc-provider" "^0.38.9" + "@polkadot/rpc-core" "^0.38.16" + "@polkadot/rpc-provider" "^0.38.16" "@types/rx" "^4.1.1" rxjs "^6.3.3" -"@polkadot/storage@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.38.9.tgz#d36b663d7bc3d21d5b010d092117e23ba92e2068" - integrity sha512-Ps20FwyVDttQrjqyZq08roydL47e1Pa8zjqrZIFSLZd1i8ns5AFvb+I/XDl7xKu+JZPLK8yUZtZYXlI1/gCdsw== +"@polkadot/storage@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/storage/-/storage-0.38.16.tgz#dc53c7a6f35a1623be4f30575974b5e6c1158d92" + integrity sha512-DZT5++RvKu4C57s84mx55kA85R6EKZf4GBiaW06VeHTmq9q6cyoGCaB7tdLxlLmIndz779rFT25LeXN86Bxgpw== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/keyring" "^0.33.30" - "@polkadot/types" "^0.38.9" - "@polkadot/util" "^0.33.30" - "@polkadot/util-crypto" "^0.33.30" + "@polkadot/keyring" "^0.33.33" + "@polkadot/types" "^0.38.16" + "@polkadot/util" "^0.33.33" + "@polkadot/util-crypto" "^0.33.33" -"@polkadot/ts@^0.1.47": - version "0.1.47" - resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.47.tgz#89a7e44ce3274feb446e8102f16499ec6a5b5720" - integrity sha512-UE8Wru0BOk+h0RiDAxo1P5dpk9mZyK1VIJiKKM2vfzQqMCPfKnSuQXXXkNzJ/4dqjRJ6ilYwFkzXQwemJWF0+w== +"@polkadot/ts@^0.1.49": + version "0.1.49" + resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.49.tgz#9f4cf54540ca10bec64910bb3f5e094db609b63d" + integrity sha512-0qtOAmT5DJcDjgnfx95ByljJYjMqgOA72SWsBfZq9myzzCrAvoVXMn7lzfKvpPgaZooTJ+vpp/YqXgx3507LKQ== -"@polkadot/types@^0.38.9": - version "0.38.9" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.38.9.tgz#44606b6f2a3e46e8169fe2bc0a794d1a4fa0dc45" - integrity sha512-vBXEeGuShIzLQ9W4EC9s+YREDnABaOlrajbUaEO37U82WcmOF04MvEPqTbRbyxfLltF3wlEEl9OFPpgem4o0iA== +"@polkadot/types@^0.38.16": + version "0.38.16" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.38.16.tgz#06d898c3dea86601e4c53d4e7b46c6ecf2194376" + integrity sha512-totQOU3ZrxTGH9ZoDM168TD2aEk+vCrrw7TeBu5eeAhcCEPfksXAc3awAa0X09hWB9X+PfbryPOsrp3wHXuWJw== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/keyring" "^0.33.30" - "@polkadot/util" "^0.33.30" + "@polkadot/keyring" "^0.33.33" + "@polkadot/util" "^0.33.33" core-js "^2.6.1" -"@polkadot/ui-assets@^0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@polkadot/ui-assets/-/ui-assets-0.25.1.tgz#fc00d299d2b2f48dc5d6d085638ebe1a266a614d" - integrity sha512-jHqITQ5rye5bjS1ii/ldiB2OIrsOhzEvLYi0MOatgmUXIXgEiWdpRhiqlLKQsmA5bPs4MIsZiLViDjQb8B+r4Q== +"@polkadot/ui-assets@^0.25.2": + version "0.25.2" + resolved "https://registry.yarnpkg.com/@polkadot/ui-assets/-/ui-assets-0.25.2.tgz#62f5ec5320f4e86dff151bd6f6de8c5745d1ff46" + integrity sha512-hgkd9R09nmDbgRQVshozdL9mGZjRSHUHIZqlZ052B7kTgoiGEm37A3ig8E0kUja49+tDYV0Emz2ojd1k6mLofg== dependencies: "@babel/runtime" "^7.2.0" -"@polkadot/ui-identicon@^0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@polkadot/ui-identicon/-/ui-identicon-0.25.1.tgz#bdf38b192a3b9c92846cce2b4ca683e9371043f4" - integrity sha512-cGH6fa0C2XNk88NY2/h772bE6NYbuBa2MOQvuywZ6VT9sqaMTMjUYuNy5uA+QFkNJXOd34sg0jHmVt4Qb4xgvQ== +"@polkadot/ui-identicon@^0.25.2": + version "0.25.2" + resolved "https://registry.yarnpkg.com/@polkadot/ui-identicon/-/ui-identicon-0.25.2.tgz#dc5173e0fc4ac2788dbb85eaecdeb84759df6f42" + integrity sha512-Pv0smjtKkqasipUEHypXGnsRvDYNFjIGydu7ZEmz4O6YUOMM9A9l37HcBWAB8bTro2uEAnL55zupOnOo0CMCkw== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/ui-settings" "^0.25.1" + "@polkadot/ui-settings" "^0.25.2" "@types/color" "^3.0.0" "@types/react-copy-to-clipboard" "^4.2.6" color "^3.0.0" react-copy-to-clipboard "^5.0.1" -"@polkadot/ui-keyring@^0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@polkadot/ui-keyring/-/ui-keyring-0.25.1.tgz#cc687bbdb9660b6a045511200b29a61c68da0aa1" - integrity sha512-609t8YvEQS9hslcFUk/efP2eRk16HsmOksZ3MkH/P/Ibu9ZXlk/38ys6L0Z5c0iiXMUgL5DaJ1udnnU01Xhkrw== +"@polkadot/ui-keyring@^0.25.2": + version "0.25.2" + resolved "https://registry.yarnpkg.com/@polkadot/ui-keyring/-/ui-keyring-0.25.2.tgz#c22468432ba0c9721280496ae11a01336f0b08ba" + integrity sha512-eoYHza4JSo7LEpvOh5KZ2mHBB4aPtQCE7WyJ5w0/5TZIBvA072/pWBeEvTRD1mAZP1PXDEQnPAdOjTZVn5lOqw== dependencies: "@babel/runtime" "^7.2.0" "@types/store" "^2.0.1" rxjs "^6.3.3" store "^2.0.12" -"@polkadot/ui-settings@^0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-0.25.1.tgz#32c346eb2d7c708142633b7ca7aed01aa5601d38" - integrity sha512-ADl+YoZEaXC/v6Gk8F5KuUKYvCRMtvAWSmayyc7KUoMuLtr5MopvEPWlpukUatX+16zfT/RZSgbSybCzfLgECA== +"@polkadot/ui-settings@^0.25.2": + version "0.25.2" + resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-0.25.2.tgz#4526585a211713f275b038db1af4dd47b4b4f93e" + integrity sha512-VW+Wkt1MY5IjsZB9T36vEo5Bck9TF8L45fI4qjNmXinvd/KMxH8+tGuO36ZkJEHAO7QjUiU6csliGXZ/AwoITA== dependencies: "@babel/runtime" "^7.2.0" "@types/store" "^2.0.1" store "^2.0.12" -"@polkadot/util-crypto@^0.33.30": - version "0.33.30" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.33.30.tgz#e164d6cc274e9031b6e51bbe674fc32a3845a6bd" - integrity sha512-epaEyZlVjAvOS2GwiIzgKcD+/09GaNeWcb7+N+Cpr3y8SV2cTFe0r4FHip93Aioj/pB+QzMiYuJbM2gYxKxMvQ== +"@polkadot/util-crypto@^0.33.33": + version "0.33.33" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.33.33.tgz#5c308fb06019d65018aebd4ca56a2d4d21096137" + integrity sha512-LJ5+rV5XwN6Mc/29ZG6CnktZvPf9GAPhJtUYBshZaniXMpf+BvV7NmNG/OzYbQi00F3LNA/wI5Zpjaliwi8oVw== dependencies: "@babel/runtime" "^7.2.0" - "@polkadot/util" "^0.33.30" + "@polkadot/util" "^0.33.33" "@types/bip39" "^2.4.1" bip39 "^2.5.0" blakejs "^1.1.0" @@ -1615,10 +1614,10 @@ tweetnacl "^1.0.0" xxhashjs "^0.2.2" -"@polkadot/util@^0.33.30": - version "0.33.30" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.33.30.tgz#a25ca56ac5b5979ec199d51c35593153162b7ea0" - integrity sha512-193F3ZlFdCWn6hrnICy2NJmsVhi7VsxC1C2RXOfddfxgJa9/5+xtgPiobFD/6sL7IOhLF6vINlDYcoFNKdsw9w== +"@polkadot/util@^0.33.33": + version "0.33.33" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.33.33.tgz#edae020dfa7544c26e11694308411742d23ff048" + integrity sha512-G33KkWZrrnkj0TfqeDjK+2z+g3Odc/6OEKmV4oRnvVmKTP+wmWy2c5r0aRdPHAd4paVHGFuYwaN6gIzo9qirig== dependencies: "@babel/runtime" "^7.2.0" "@types/bn.js" "^4.11.3" @@ -2957,7 +2956,7 @@ block-stream@*, block-stream@0.0.9: dependencies: inherits "~2.0.0" -bluebird@^3.4.1, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@~3.5.0: +bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@~3.5.0: version "3.5.3" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== @@ -8241,17 +8240,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -makeshift@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/makeshift/-/makeshift-1.1.0.tgz#03819e68ebb5a0939edc20e7ea230c8818e2b4c4" - integrity sha512-wrL4SLWEDFlGLRHmO4r+6eMlu5z2Aj73CRpB0iDtRSkznFbN8/S4VNI8kxeClIJM5nZi1mrI+HcNegVw5orO3w== - dependencies: - bluebird "^3.4.1" - chalk "^2.0.1" - figures "^2.0.0" - sywac "^1.0.0" - url-parse-as-address "^1.0.0" - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -12377,11 +12365,6 @@ symbol-tree@^3.2.1, symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= -sywac@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sywac/-/sywac-1.2.1.tgz#528e482b2f2a18e764ffccc59eb40eea16a7f97d" - integrity sha512-bf8agjBAV9mm90k2nWoobe48bO/XugTS86W4dGYTpzVlfFv1cmWsRrQ9hUKIfoDaIRaXIta/BLFINmmxfV+otg== - tapable@^1.0.0, tapable@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" @@ -13088,11 +13071,6 @@ url-loader@^1.1.1: mime "^2.0.3" schema-utils "^1.0.0" -url-parse-as-address@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-as-address/-/url-parse-as-address-1.0.0.tgz#fb80901883f338b3cbed3538f5faa26adaf7f2e7" - integrity sha1-+4CQGIPzOLPL7TU49fqiatr38uc= - url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"