Submit extrinsics via signAndSend (#585)
* WIP first bits... * Coversion should be ok, testing remains * Tie up loose ends * Bump deps
This commit is contained in:
parent
f2aff50736
commit
8e2f80d176
1
.gitignore
vendored
1
.gitignore
vendored
@ -7,6 +7,7 @@ tmp/
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.npmrc
|
||||
package-lock.json
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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<Props> {
|
||||
@ -48,7 +47,7 @@ class VotingButton extends React.PureComponent<Props> {
|
||||
}
|
||||
|
||||
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<Props> {
|
||||
|
||||
queueExtrinsic({
|
||||
extrinsic: apiPromise.tx.democracy.vote(referendumId, vote ? -1 : 0),
|
||||
accountNonce: query_system_accountNonce,
|
||||
accountId
|
||||
});
|
||||
}
|
||||
@ -73,5 +71,5 @@ class VotingButton extends React.PureComponent<Props> {
|
||||
export default withMulti(
|
||||
VotingButton,
|
||||
translate,
|
||||
withCall('query.system.accountNonce', { paramProp: 'accountId' })
|
||||
withApi
|
||||
);
|
||||
|
||||
@ -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<Props, State> {
|
||||
}
|
||||
|
||||
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<Props, State> {
|
||||
|
||||
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
|
||||
});
|
||||
|
||||
@ -43,8 +43,8 @@ class ExtrinsicsApp extends React.PureComponent<Props> {
|
||||
return (
|
||||
<main className='extrinsics--App'>
|
||||
<QueueConsumer>
|
||||
{({ queueExtrinsic, queueUnclog }: QueueProps) => (
|
||||
<Selection queueExtrinsic={queueExtrinsic} queueUnclog={queueUnclog} />
|
||||
{({ queueExtrinsic }: QueueProps) => (
|
||||
<Selection queueExtrinsic={queueExtrinsic} />
|
||||
)}
|
||||
</QueueConsumer>
|
||||
</main>
|
||||
|
||||
@ -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<RawParam>
|
||||
@ -36,7 +34,6 @@ const defaultMethod = rpc.author.methods.submitExtrinsic;
|
||||
class Selection extends React.PureComponent<Props, State> {
|
||||
state: State = {
|
||||
isValid: false,
|
||||
accountNonce: new BN(0),
|
||||
accountId: null,
|
||||
rpc: defaultMethod,
|
||||
values: []
|
||||
@ -96,7 +93,7 @@ class Selection extends React.PureComponent<Props, State> {
|
||||
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<Props, State> {
|
||||
return {
|
||||
isValid,
|
||||
rpc,
|
||||
accountNonce: accountNonce || new BN(0),
|
||||
accountId,
|
||||
values
|
||||
};
|
||||
@ -133,10 +129,9 @@ class Selection extends React.PureComponent<Props, State> {
|
||||
|
||||
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 }) =>
|
||||
|
||||
@ -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<Balance> | undefined,
|
||||
@ -164,11 +162,10 @@ class Account extends React.PureComponent<Props, State> {
|
||||
}
|
||||
|
||||
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' })
|
||||
);
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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<Props, State> {
|
||||
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<Props, State> {
|
||||
);
|
||||
}
|
||||
|
||||
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<Props, State> {
|
||||
...value,
|
||||
id,
|
||||
rpc,
|
||||
status: this.isDuplicateNonce(value) ? 'blocked' : 'queued'
|
||||
status: 'queued'
|
||||
}])
|
||||
} as State)
|
||||
);
|
||||
@ -163,38 +150,19 @@ export default class Queue extends React.Component<Props, State> {
|
||||
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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<QueueStatus>,
|
||||
txqueue: Array<QueueTx>,
|
||||
queueAction: QueueAction$Add,
|
||||
queueUnclog: QueueTx$Unclog,
|
||||
queueExtrinsic: QueueTx$ExtrinsicAdd,
|
||||
queueRpc: QueueTx$RpcAdd,
|
||||
queueSetTxStatus: QueueTx$MessageSetStatus
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ type Props = I18nProps & {
|
||||
|
||||
class Transaction extends React.PureComponent<Props> {
|
||||
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<Props> {
|
||||
<Trans i18nKey='decoded.short-unsigned'>You are about to submit an (unsigned) inherent transaction calling <span className='code'>{section}.{method}</span></Trans>
|
||||
)
|
||||
: (
|
||||
<Trans i18nKey='decoded.short-signed'>You are about to sign a message from <span className='code'>{accountId}</span> calling <span className='code'>{section}.{method}</span> with an index of <span className='code'>{accountNonce.toString()}</span></Trans>
|
||||
<Trans i18nKey='decoded.short-signed'>You are about to sign a transaction from <span className='code'>{accountId}</span> calling <span className='code'>{section}.{method}</span> </Trans>
|
||||
);
|
||||
const icon = isUnsigned
|
||||
? undefined
|
||||
|
||||
@ -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<QueueTx>,
|
||||
@ -72,7 +73,7 @@ class Signer extends React.PureComponent<Props, State> {
|
||||
};
|
||||
}
|
||||
|
||||
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<Props, State> {
|
||||
});
|
||||
}
|
||||
|
||||
private onKeyDown = async (event: React.KeyboardEvent<Element>): Promise<any> => {
|
||||
private onKeyDown = (event: React.KeyboardEvent<Element>): void => {
|
||||
if (event.key === 'Enter') {
|
||||
await this.onSend();
|
||||
this.onSend();
|
||||
}
|
||||
}
|
||||
|
||||
@ -230,7 +231,7 @@ class Signer extends React.PureComponent<Props, State> {
|
||||
queueSetTxStatus(currentItem.id, 'cancelled');
|
||||
}
|
||||
|
||||
private onSend = async (): Promise<any> => {
|
||||
private onSend = (): void => {
|
||||
const { currentItem, password } = this.state;
|
||||
|
||||
// This should never be executed
|
||||
@ -255,13 +256,13 @@ class Signer extends React.PureComponent<Props, State> {
|
||||
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<Props, State> {
|
||||
}
|
||||
}
|
||||
|
||||
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<any>): Promise<QueueTx$Result> {
|
||||
@ -308,30 +304,19 @@ class Signer extends React.PureComponent<Props, State> {
|
||||
}
|
||||
}
|
||||
|
||||
private submitExtrinsic (extrinsic: SubmittableExtrinsic, id: number) {
|
||||
private makeExtrinsicCall (extrinsic: SubmittableExtrinsic, id: number, extrinsicCall: (...params: Array<any>) => any, ..._params: Array<any>) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
238
yarn.lock
238
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"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user