Display decoded ExtrinsicFailed errors (#2137)
* Display decoded ExtrinsicFailed errors * Revert debug log * Bump API (error lookup)
This commit is contained in:
parent
abec239d67
commit
2ea6dd0af3
@ -10,10 +10,10 @@
|
||||
"packages/*"
|
||||
],
|
||||
"resolutions": {
|
||||
"@polkadot/api": "^1.0.0-beta.7",
|
||||
"@polkadot/api-contract": "^1.0.0-beta.7",
|
||||
"@polkadot/api": "^1.0.0-beta.8",
|
||||
"@polkadot/api-contract": "^1.0.0-beta.8",
|
||||
"@polkadot/keyring": "^2.0.0-beta.4",
|
||||
"@polkadot/types": "^1.0.0-beta.7",
|
||||
"@polkadot/types": "^1.0.0-beta.8",
|
||||
"@polkadot/util": "^2.0.0-beta.4",
|
||||
"@polkadot/util-crypto": "^2.0.0-beta.4",
|
||||
"babel-core": "^7.0.0-bridge.0",
|
||||
|
||||
@ -11,6 +11,6 @@
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.7.7",
|
||||
"@polkadot/api-contract": "^1.0.0-beta.7"
|
||||
"@polkadot/api-contract": "^1.0.0-beta.8"
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/ui-reactive#readme",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.7.6",
|
||||
"@polkadot/api": "^1.0.0-beta.7",
|
||||
"@polkadot/api": "^1.0.0-beta.8",
|
||||
"@polkadot/extension-dapp": "^0.15.0-beta.1",
|
||||
"edgeware-node-types": "^1.0.10",
|
||||
"rxjs-compat": "^6.5.3"
|
||||
|
||||
@ -3,7 +3,8 @@
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
import { SubmittableExtrinsic } from '@polkadot/api/promise/types';
|
||||
import { SignerPayloadJSON } from '@polkadot/types/types';
|
||||
import { DispatchError } from '@polkadot/types/interfaces';
|
||||
import { ITuple, SignerPayloadJSON } from '@polkadot/types/types';
|
||||
import { BareProps } from '../types';
|
||||
import { ActionStatus, PartialQueueTxExtrinsic, PartialQueueTxRpc, QueueStatus, QueueTx, QueueTxExtrinsic, QueueTxRpc, QueueTxStatus, SignerCallback } from './types';
|
||||
|
||||
@ -128,13 +129,31 @@ export default function Queue ({ children }: Props): React.ReactElement<Props> {
|
||||
// filter events handled globally, or those we are not interested in, these are
|
||||
// handled by the global overview, so don't add them here
|
||||
.filter((record): boolean => !!record.event && record.event.section !== 'democracy')
|
||||
.map(({ event: { method, section } }): ActionStatus => ({
|
||||
action: `${section}.${method}`,
|
||||
status: section === 'system' && method === 'ExtrinsicFailed'
|
||||
? 'error'
|
||||
: 'event',
|
||||
message: 'extrinsic event'
|
||||
}))
|
||||
.map(({ event: { data, method, section } }): ActionStatus => {
|
||||
if (section === 'system' && method === 'ExtrinsicFailed') {
|
||||
const [dispatchError] = data as unknown as ITuple<[DispatchError]>;
|
||||
let message = dispatchError.type;
|
||||
|
||||
if (dispatchError.isModule) {
|
||||
const mod = dispatchError.asModule;
|
||||
const error = registry.findMetaError(new Uint8Array([mod.index.toNumber(), mod.error.toNumber()]));
|
||||
|
||||
message = `${error.section}.${error.name}`;
|
||||
}
|
||||
|
||||
return {
|
||||
action: `${section}.${method}`,
|
||||
status: 'error',
|
||||
message
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
action: `${section}.${method}`,
|
||||
status: 'event',
|
||||
message: 'extrinsic event'
|
||||
};
|
||||
})
|
||||
);
|
||||
|
||||
if (STATUS_COMPLETE.includes(status)) {
|
||||
|
||||
@ -1,167 +0,0 @@
|
||||
// Copyright 2017-2020 @polkadot/react-components authors & contributors
|
||||
// This software may be modified and distributed under the terms
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
import { SubmittableExtrinsic } from '@polkadot/api/promise/types';
|
||||
import { SignerPayloadJSON } from '@polkadot/types/types';
|
||||
import { BareProps } from '../types';
|
||||
import { ActionStatus, PartialQueueTxExtrinsic, PartialQueueTxRpc, QueueStatus, QueueTx, QueueTxExtrinsic, QueueTxRpc, QueueTxStatus, SignerCallback } from './types';
|
||||
|
||||
import React, { useRef, useState } from 'react';
|
||||
import { SubmittableResult } from '@polkadot/api';
|
||||
import jsonrpc from '@polkadot/jsonrpc';
|
||||
import { registry } from '@polkadot/react-api';
|
||||
import { createType } from '@polkadot/types';
|
||||
|
||||
import { QueueProvider } from './Context';
|
||||
|
||||
export interface Props extends BareProps {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
let nextId = 0;
|
||||
|
||||
const REMOVE_TIMEOUT = 7500;
|
||||
const SUBMIT_RPC = jsonrpc.author.methods.submitAndWatchExtrinsic;
|
||||
const STATUS_COMPLETE: QueueTxStatus[] = [
|
||||
// status from subscription
|
||||
'finalized', 'usurped', 'dropped', 'invalid',
|
||||
// normal completion
|
||||
'cancelled', 'error', 'sent'
|
||||
];
|
||||
|
||||
export default function Queue ({ children }: Props): React.ReactElement<Props> {
|
||||
const [stqueue, setStQueue] = useState<QueueStatus[]>([]);
|
||||
const [txqueue, setTxQueue] = useState<QueueTx[]>([]);
|
||||
|
||||
const _clearTxStatus = useRef(
|
||||
(id: number): () => void =>
|
||||
(): void => setTxQueue([...txqueue.map((item): QueueTx =>
|
||||
item.id === id
|
||||
? { ...item, status: 'completed' }
|
||||
: item
|
||||
)])
|
||||
);
|
||||
const _addToTxQueue = useRef(
|
||||
(value: QueueTxExtrinsic | QueueTxRpc | QueueTx): number => {
|
||||
const id = ++nextId;
|
||||
|
||||
setTxQueue([...txqueue, {
|
||||
...value,
|
||||
id,
|
||||
removeItem: _clearTxStatus.current(id),
|
||||
rpc: (value as QueueTxRpc).rpc || SUBMIT_RPC,
|
||||
status: 'queued'
|
||||
}]);
|
||||
|
||||
return id;
|
||||
}
|
||||
);
|
||||
const queueAction = useRef(
|
||||
(status: ActionStatus | ActionStatus[]): number => {
|
||||
const todos = (Array.isArray(status) ? status : [status]).map((item: ActionStatus) => {
|
||||
const id = ++nextId;
|
||||
const removeItem = (): void =>
|
||||
setStQueue([...stqueue.filter((item): boolean => item.id !== id)]);
|
||||
|
||||
setTimeout(removeItem, REMOVE_TIMEOUT);
|
||||
|
||||
return {
|
||||
...item,
|
||||
id,
|
||||
isCompleted: false,
|
||||
removeItem
|
||||
};
|
||||
});
|
||||
|
||||
setStQueue([...stqueue, ...todos]);
|
||||
|
||||
return todos[0].id;
|
||||
}
|
||||
);
|
||||
const queueExtrinsic = useRef(
|
||||
({ accountId, extrinsic, txFailedCb, txSuccessCb, txStartCb, txUpdateCb, isUnsigned }: PartialQueueTxExtrinsic): number =>
|
||||
_addToTxQueue.current({
|
||||
accountId,
|
||||
extrinsic,
|
||||
isUnsigned,
|
||||
txFailedCb,
|
||||
txSuccessCb,
|
||||
txStartCb,
|
||||
txUpdateCb
|
||||
})
|
||||
);
|
||||
const queuePayload = useRef(
|
||||
(payload: SignerPayloadJSON, signerCb: SignerCallback): number =>
|
||||
_addToTxQueue.current({
|
||||
accountId: payload.address,
|
||||
// this is not great, but the Extrinsic we don't need a submittable
|
||||
extrinsic: createType(registry, 'Extrinsic',
|
||||
{ method: createType(registry, 'Call', payload.method) },
|
||||
{ version: payload.version }
|
||||
) as unknown as SubmittableExtrinsic,
|
||||
payload,
|
||||
signerCb
|
||||
})
|
||||
);
|
||||
const queueRpc = useRef(
|
||||
({ accountId, rpc, values }: PartialQueueTxRpc): number =>
|
||||
_addToTxQueue.current({
|
||||
accountId,
|
||||
rpc,
|
||||
values
|
||||
})
|
||||
);
|
||||
const queueSetTxStatus = useRef(
|
||||
(id: number, status: QueueTxStatus, result?: SubmittableResult, error?: Error): void => {
|
||||
setTxQueue([...txqueue.map((item): QueueTx =>
|
||||
item.id === id
|
||||
? {
|
||||
...item,
|
||||
error: error === undefined
|
||||
? item.error
|
||||
: error,
|
||||
result: result === undefined
|
||||
? item.result
|
||||
: result,
|
||||
status: item.status === 'completed'
|
||||
? item.status
|
||||
: status
|
||||
}
|
||||
: item
|
||||
)]);
|
||||
|
||||
queueAction.current(
|
||||
((result && result.events) || [])
|
||||
// filter events handled globally, or those we are not interested in, these are
|
||||
// handled by the global overview, so don't add them here
|
||||
.filter((record): boolean => !!record.event && record.event.section !== 'democracy')
|
||||
.map(({ event: { method, section } }): ActionStatus => ({
|
||||
action: `${section}.${method}`,
|
||||
status: section === 'system' && method === 'ExtrinsicFailed'
|
||||
? 'error'
|
||||
: 'event',
|
||||
message: 'extrinsic event'
|
||||
}))
|
||||
);
|
||||
|
||||
if (STATUS_COMPLETE.includes(status)) {
|
||||
setTimeout(_clearTxStatus.current(id), REMOVE_TIMEOUT);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return (
|
||||
<QueueProvider value={{
|
||||
queueAction: queueAction.current,
|
||||
queueExtrinsic: queueExtrinsic.current,
|
||||
queuePayload: queuePayload.current,
|
||||
queueRpc: queueRpc.current,
|
||||
queueSetTxStatus: queueSetTxStatus.current,
|
||||
stqueue,
|
||||
txqueue
|
||||
}}>
|
||||
{children}
|
||||
</QueueProvider>
|
||||
);
|
||||
}
|
||||
46
packages/react-params/src/Param/DispatchError.tsx
Normal file
46
packages/react-params/src/Param/DispatchError.tsx
Normal file
@ -0,0 +1,46 @@
|
||||
// Copyright 2017-2020 @polkadot/react-components authors & contributors
|
||||
// This software may be modified and distributed under the terms
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
import { DispatchError } from '@polkadot/types/interfaces';
|
||||
import { Props } from '../types';
|
||||
|
||||
import React from 'react';
|
||||
import { registry } from '@polkadot/react-api';
|
||||
import { Input } from '@polkadot/react-components';
|
||||
|
||||
import { useTranslation } from '../translate';
|
||||
import Static from './Static';
|
||||
import Unknown from './Unknown';
|
||||
|
||||
export default function ErrorDisplay (props: Props): React.ReactElement<Props> {
|
||||
const { t } = useTranslation();
|
||||
|
||||
if (!props.isDisabled || !props.defaultValue?.value?.isModule) {
|
||||
return <Unknown {...props} />;
|
||||
}
|
||||
|
||||
const mod = (props.defaultValue.value as DispatchError).asModule;
|
||||
const error = registry.findMetaError(new Uint8Array([mod.index.toNumber(), mod.error.toNumber()]));
|
||||
const type = `${error.section}.${error.name}`;
|
||||
const details = error.documentation.join(', ');
|
||||
|
||||
return (
|
||||
<Static {...props}>
|
||||
<Input
|
||||
className='full'
|
||||
isDisabled
|
||||
label={t('type')}
|
||||
value={type}
|
||||
/>
|
||||
{details && (
|
||||
<Input
|
||||
className='full'
|
||||
isDisabled
|
||||
label={t('details')}
|
||||
value={details}
|
||||
/>
|
||||
)}
|
||||
</Static>
|
||||
);
|
||||
}
|
||||
@ -12,11 +12,12 @@ import Bare from './Bare';
|
||||
|
||||
interface Props extends BareProps {
|
||||
asHex?: boolean;
|
||||
children?: React.ReactNode;
|
||||
defaultValue: RawParam;
|
||||
withLabel?: boolean;
|
||||
}
|
||||
|
||||
export default function StaticParam ({ asHex, className, defaultValue, label, style }: Props): React.ReactElement<Props> {
|
||||
export default function StaticParam ({ asHex, children, className, defaultValue, label, style }: Props): React.ReactElement<Props> {
|
||||
const { t } = useTranslation();
|
||||
const value = defaultValue && defaultValue.value && defaultValue.value[asHex ? 'toHex' : 'toString']();
|
||||
|
||||
@ -30,6 +31,7 @@ export default function StaticParam ({ asHex, className, defaultValue, label, st
|
||||
label={label}
|
||||
value={value || t('<empty>')}
|
||||
/>
|
||||
{children}
|
||||
</Bare>
|
||||
);
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ import Balance from './Balance';
|
||||
import Bool from './Bool';
|
||||
import Bytes from './Bytes';
|
||||
import Code from './Code';
|
||||
import DispatchError from './DispatchError';
|
||||
import Enum from './Enum';
|
||||
import Hash256 from './Hash256';
|
||||
import Hash512 from './Hash512';
|
||||
@ -46,6 +47,7 @@ const components: ComponentMap = ([
|
||||
{ c: Bool, t: ['bool'] },
|
||||
{ c: Bytes, t: ['Bytes'] },
|
||||
{ c: Code, t: ['Code'] },
|
||||
{ c: DispatchError, t: ['DispatchError'] },
|
||||
{ c: Raw, t: ['Raw', 'Keys'] },
|
||||
{ c: Enum, t: ['Enum'] },
|
||||
{ c: Hash256, t: ['BlockHash', 'CodeHash', 'Hash', 'H256', 'SeedOf'] },
|
||||
|
||||
116
yarn.lock
116
yarn.lock
@ -2093,36 +2093,36 @@
|
||||
dependencies:
|
||||
"@types/node" ">= 8"
|
||||
|
||||
"@polkadot/api-contract@^1.0.0-beta.7":
|
||||
version "1.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-1.0.0-beta.7.tgz#10cd98f7162c3ce7fda28769c0cee2c3c520ffc7"
|
||||
integrity sha512-KNPNKh62NxqAGQjGC2dgIZ+duGtFa9a85TjP/hyGQwwlV31PXDYdceb6e+7qgar0VlO4+Wf6MtJt6pHuM0/CpQ==
|
||||
"@polkadot/api-contract@^1.0.0-beta.8":
|
||||
version "1.0.0-beta.8"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-1.0.0-beta.8.tgz#e5ad53023c1b992d6ca466b13e1f594e8ad21161"
|
||||
integrity sha512-CnoAL+H8lcMOhLDXvs6zCCiaDNBNtkQ9yiaKJIVOZ9juLsURBh2Dp9B2nNeQEH7CFMjDBtbxka2JikbKJDtYZg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
"@polkadot/types" "^1.0.0-beta.7"
|
||||
"@polkadot/types" "^1.0.0-beta.8"
|
||||
|
||||
"@polkadot/api-derive@^1.0.0-beta.7":
|
||||
version "1.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-1.0.0-beta.7.tgz#f48682b16e1473cb1bb06c3e823c4156a5f89f97"
|
||||
integrity sha512-ZlVzupjDQAb4aLk0Au0CGBmV+2sVzTpRLTREMgn6k6P+qAfYcaMJObeq7KdFbTtdZDMFXVg1cIOuKChj7Xbzbw==
|
||||
"@polkadot/api-derive@^1.0.0-beta.8":
|
||||
version "1.0.0-beta.8"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-1.0.0-beta.8.tgz#9bf79f4aca19a0bd733aa37e2cd1003f50dd516d"
|
||||
integrity sha512-J8bPbAte7zMEcfgrIn52wNsDXgMRcDMfkwFLYGvrevuEZadViS4GSCZ9cBAiwp1ZQLCiQAIvvMgTLO8EBKQCag==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
"@polkadot/api" "^1.0.0-beta.7"
|
||||
"@polkadot/types" "^1.0.0-beta.7"
|
||||
"@polkadot/api" "^1.0.0-beta.8"
|
||||
"@polkadot/types" "^1.0.0-beta.8"
|
||||
|
||||
"@polkadot/api@^1.0.0-beta.7":
|
||||
version "1.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-1.0.0-beta.7.tgz#e80a9bbd75e87a4ebe7e099b98fefe7cf48f2aa5"
|
||||
integrity sha512-A8pUOeiQWAYwTDMD6Qk0HDpYibdGfJOdWGPdb3jrmoGMic3cQ+BHuCGnQwwAPxeL7wHya7HQbvnKH/j04zMhQQ==
|
||||
"@polkadot/api@^1.0.0-beta.8":
|
||||
version "1.0.0-beta.8"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-1.0.0-beta.8.tgz#065330218f20e5d18a2c4a4e72da90f05035ad01"
|
||||
integrity sha512-naSIXZQyQXJH8LRaw/xeB4NeNQlViceiRcmUCAeFTPP0CXQ1aXToG1tWD5R7UDVeftuKNiisf3pb5yWcMogqiA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
"@polkadot/api-derive" "^1.0.0-beta.7"
|
||||
"@polkadot/keyring" "^2.0.0-beta.2"
|
||||
"@polkadot/metadata" "^1.0.0-beta.7"
|
||||
"@polkadot/rpc-core" "^1.0.0-beta.7"
|
||||
"@polkadot/rpc-provider" "^1.0.0-beta.7"
|
||||
"@polkadot/types" "^1.0.0-beta.7"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.2"
|
||||
"@polkadot/api-derive" "^1.0.0-beta.8"
|
||||
"@polkadot/keyring" "^2.0.0-beta.4"
|
||||
"@polkadot/metadata" "^1.0.0-beta.8"
|
||||
"@polkadot/rpc-core" "^1.0.0-beta.8"
|
||||
"@polkadot/rpc-provider" "^1.0.0-beta.8"
|
||||
"@polkadot/types" "^1.0.0-beta.8"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.4"
|
||||
|
||||
"@polkadot/dev-react@^0.32.14":
|
||||
version "0.32.14"
|
||||
@ -2226,14 +2226,14 @@
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
|
||||
"@polkadot/jsonrpc@^1.0.0-beta.7":
|
||||
version "1.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-1.0.0-beta.7.tgz#64972112d983f427a03f37f3fbebeaad96ca6b14"
|
||||
integrity sha512-ssfzufC3uo62HPhX4tD0OyXk5UyiuM05wChKYtRXZLmd/0/Pe+os71YDURZrWUWFQxXuDlqgN1iBNduLqr6lsw==
|
||||
"@polkadot/jsonrpc@^1.0.0-beta.8":
|
||||
version "1.0.0-beta.8"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-1.0.0-beta.8.tgz#42291c3e945f39e427ff2bed358577b912e08788"
|
||||
integrity sha512-aLMcT99kFGfQVBhiaETvn+fyljyehcgJXATJoUvLu8ZOtJP4K7MWnU8FZ/mulr5uYIo01t5koEvb7BHIkrtU4g==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
|
||||
"@polkadot/keyring@^2.0.0-beta.2", "@polkadot/keyring@^2.0.0-beta.4":
|
||||
"@polkadot/keyring@^2.0.0-beta.4":
|
||||
version "2.0.0-beta.4"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-2.0.0-beta.4.tgz#036b8c49a6ce34a17c2d070125c772f64356fc4f"
|
||||
integrity sha512-Fz+LEIeJzV3uDrb/im2qkJORTO9037dDp4LZVtLvP7H63e401vYd0Q0RbWjKnDq47Um3nuPjog/HmxUUEEnNRw==
|
||||
@ -2242,15 +2242,15 @@
|
||||
"@polkadot/util" "^2.0.0-beta.4"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.4"
|
||||
|
||||
"@polkadot/metadata@^1.0.0-beta.7":
|
||||
version "1.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-1.0.0-beta.7.tgz#fb59f49701733b64beff9833695df63d05a271ab"
|
||||
integrity sha512-I54dag0cm1gE38i2DWXiYPjPO/lgNLZTBRkiruYbE8ZZ/mWPgRdeqeH5ao/e0y0hAFrrGZeKNlyBlO/QVmSwpA==
|
||||
"@polkadot/metadata@^1.0.0-beta.8":
|
||||
version "1.0.0-beta.8"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-1.0.0-beta.8.tgz#823fa4acd840cc2b2b3279539b261111a7f99a4d"
|
||||
integrity sha512-LxPizi7CQJqXMvsb3xIYs4PKmLyvgry/3EQgeSqVRrt34Z/hn02/8fX4R9Gqr685CAwRRolVre6wHhN9dWwaLw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
"@polkadot/types" "^1.0.0-beta.7"
|
||||
"@polkadot/util" "^2.0.0-beta.2"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.2"
|
||||
"@polkadot/types" "^1.0.0-beta.8"
|
||||
"@polkadot/util" "^2.0.0-beta.4"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.4"
|
||||
|
||||
"@polkadot/react-identicon@^0.48.0-beta.12":
|
||||
version "0.48.0-beta.12"
|
||||
@ -2276,27 +2276,27 @@
|
||||
qrcode-generator "^1.4.4"
|
||||
react-qr-reader "^2.2.1"
|
||||
|
||||
"@polkadot/rpc-core@^1.0.0-beta.7":
|
||||
version "1.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-1.0.0-beta.7.tgz#14f9e749f7a51f4978476bf1562384de8dacb5cc"
|
||||
integrity sha512-kze/coKDVDF5lE0h+pscT7wTg9ncWuQrUd1yabEeZ3CrndbWIGW9dFw8Hqo+DMJIOxW3aklgYD9FINRS7DN4aQ==
|
||||
"@polkadot/rpc-core@^1.0.0-beta.8":
|
||||
version "1.0.0-beta.8"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-1.0.0-beta.8.tgz#c65a25ac2436f76aa2ce22360c06cbd3ec73e6d3"
|
||||
integrity sha512-pQlD0GM9GLvCNo0dmY+BmVh/yctsPbGCSa0mT9a5Tsboa+HLAUguWR5ijMTfiukX6XfobB/e5V/ByxWPIc5sVQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
"@polkadot/jsonrpc" "^1.0.0-beta.7"
|
||||
"@polkadot/rpc-provider" "^1.0.0-beta.7"
|
||||
"@polkadot/types" "^1.0.0-beta.7"
|
||||
"@polkadot/util" "^2.0.0-beta.2"
|
||||
"@polkadot/jsonrpc" "^1.0.0-beta.8"
|
||||
"@polkadot/rpc-provider" "^1.0.0-beta.8"
|
||||
"@polkadot/types" "^1.0.0-beta.8"
|
||||
"@polkadot/util" "^2.0.0-beta.4"
|
||||
rxjs "^6.5.4"
|
||||
|
||||
"@polkadot/rpc-provider@^1.0.0-beta.7":
|
||||
version "1.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-1.0.0-beta.7.tgz#43fe5bfb87351b9f6b0c54a0b12a0dbd6d1d4e27"
|
||||
integrity sha512-jvzhJBxKE43NlqiS3KlkwlQnF8kaqSlbyE8JT6bIR4eRKIYWVTefIkNaHRrwuALOzE37V2XiFA01Cb9mp1Ns0g==
|
||||
"@polkadot/rpc-provider@^1.0.0-beta.8":
|
||||
version "1.0.0-beta.8"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-1.0.0-beta.8.tgz#9e584b21b57b285df98d832c8ff2f61bf10cc716"
|
||||
integrity sha512-E7Vwxnw4c3ec13kFmeWGyFOjUFAm6D++xOn9FT8KRGtT6+0iF2X02k7FS5cYQfhy6+d78eC1GPAAoqGqsYKMvg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
"@polkadot/metadata" "^1.0.0-beta.7"
|
||||
"@polkadot/util" "^2.0.0-beta.2"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.2"
|
||||
"@polkadot/metadata" "^1.0.0-beta.8"
|
||||
"@polkadot/util" "^2.0.0-beta.4"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.4"
|
||||
eventemitter3 "^4.0.0"
|
||||
isomorphic-fetch "^2.2.1"
|
||||
websocket "^1.0.31"
|
||||
@ -2308,15 +2308,15 @@
|
||||
dependencies:
|
||||
"@types/chrome" "^0.0.91"
|
||||
|
||||
"@polkadot/types@^1.0.0-beta.7":
|
||||
version "1.0.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-1.0.0-beta.7.tgz#2b812525ba2be1a7d8fcb14e6f1bd3aab33d5132"
|
||||
integrity sha512-ZfDKvtUrQNL+RZbqtFAlgRqAd7LOr+MdfXnIefm0jWlF+avh/JSwDHXmhMZ6RCwRiankPRGAigB/WktNIW29oQ==
|
||||
"@polkadot/types@^1.0.0-beta.8":
|
||||
version "1.0.0-beta.8"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-1.0.0-beta.8.tgz#60104657c810e948a52997c8c28d9812e76931fd"
|
||||
integrity sha512-OzSSgJjiGdmnvOdqqsQ0sSauWPT2yEzgjjehpEo23O1Rxk3z2X/3QTXESJmsi4s6Ky7MYJ5fF/K6TSYxy/2jhA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.7"
|
||||
"@polkadot/metadata" "^1.0.0-beta.7"
|
||||
"@polkadot/util" "^2.0.0-beta.2"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.2"
|
||||
"@polkadot/metadata" "^1.0.0-beta.8"
|
||||
"@polkadot/util" "^2.0.0-beta.4"
|
||||
"@polkadot/util-crypto" "^2.0.0-beta.4"
|
||||
"@types/memoizee" "^0.4.3"
|
||||
memoizee "^0.4.14"
|
||||
|
||||
@ -2364,7 +2364,7 @@
|
||||
"@types/color" "^3.0.1"
|
||||
color "^3.1.2"
|
||||
|
||||
"@polkadot/util-crypto@^2.0.0-beta.2", "@polkadot/util-crypto@^2.0.0-beta.4":
|
||||
"@polkadot/util-crypto@^2.0.0-beta.4":
|
||||
version "2.0.0-beta.4"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-2.0.0-beta.4.tgz#1828ccf34a4f7246f74cd51de29977263296eaaf"
|
||||
integrity sha512-gKbLx4bm3EyR/C/P0ckFTuB17JRK31CKgY6a7bYxiNzOXLLEVBlFm8IznJv54trYb1St2xb3JpijMdJ2cuBL6w==
|
||||
@ -2386,7 +2386,7 @@
|
||||
tweetnacl "^1.0.1"
|
||||
xxhashjs "^0.2.2"
|
||||
|
||||
"@polkadot/util@^2.0.0-beta.2", "@polkadot/util@^2.0.0-beta.4":
|
||||
"@polkadot/util@^2.0.0-beta.4":
|
||||
version "2.0.0-beta.4"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-2.0.0-beta.4.tgz#f7be2e17abe85596c6860d980ee3af686154467a"
|
||||
integrity sha512-OsmCYd5Go0QQcYPNVcwv8brEGTDw25SLaWgaaU2YPJqLnHkJp/1vZW6VP6TSW15BpAxN0+GhZs84Ja+1gYHM/g==
|
||||
|
||||
Loading…
Reference in New Issue
Block a user