From 0aefb66d92452a292088963c1e50bff564646c63 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 24 Jul 2019 16:16:22 +0200 Subject: [PATCH] Update with signPayload for injected signer (#106) * Update with signPayload for injected signer * Bare-minimum in interface * Cleanup linting * Remove unused (atm) permissions --- package.json | 10 +- packages/extension-inject/src/types.ts | 4 +- .../src/Popup/Signing/Details.tsx | 24 ++-- .../src/Popup/Signing/Request.tsx | 14 ++- packages/extension/manifest.json | 3 +- packages/extension/package.json | 4 +- .../src/background/handlers/Extension.ts | 14 +-- packages/extension/src/background/types.ts | 11 +- packages/extension/src/page/Signer.ts | 45 +++---- tsconfig.json | 11 +- yarn.lock | 110 +++++++++--------- 11 files changed, 120 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 8468dc18..bdc2ba34 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,11 @@ "yarn": "^1.10.1" }, "resolutions": { - "@polkadot/api": "^0.82.0-beta.77", - "@polkadot/keyring": "^0.94.1", - "@polkadot/types": "^0.82.0-beta.77", - "@polkadot/util": "^0.94.1", - "@polkadot/util-crypto": "^0.94.1", + "@polkadot/api": "^0.82.0-beta.88", + "@polkadot/keyring": "^0.95.0-beta.0", + "@polkadot/types": "^0.82.0-beta.88", + "@polkadot/util": "^0.95.0-beta.0", + "@polkadot/util-crypto": "^0.95.0-beta.0", "babel-core": "^7.0.0-bridge.0", "typescript": "^3.5.3" }, diff --git a/packages/extension-inject/src/types.ts b/packages/extension-inject/src/types.ts index 9ab863c2..142f2af2 100644 --- a/packages/extension-inject/src/types.ts +++ b/packages/extension-inject/src/types.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. -import { Signer } from '@polkadot/api/types'; +import { Signer as InjectedSigner } from '@polkadot/api/types'; export type Unsubcall = () => void; @@ -25,8 +25,6 @@ export interface InjectedAccounts { subscribe: (cb: (accounts: InjectedAccount[]) => any) => Unsubcall; } -export type InjectedSigner = Signer; - export interface InjectedExtensionInfo { name: string; version: string; diff --git a/packages/extension-ui/src/Popup/Signing/Details.tsx b/packages/extension-ui/src/Popup/Signing/Details.tsx index 20de35ad..c5c7e0c1 100644 --- a/packages/extension-ui/src/Popup/Signing/Details.tsx +++ b/packages/extension-ui/src/Popup/Signing/Details.tsx @@ -6,7 +6,7 @@ import React from 'react'; import styled from 'styled-components'; import fromMetadata from '@polkadot/api-metadata/extrinsics/fromMetadata'; import findChain from '@polkadot/extension/chains'; -import { Metadata, Method, ExtrinsicEra } from '@polkadot/types'; +import { BlockNumber, ExtrinsicEra, Metadata, Method, SignaturePayload } from '@polkadot/types'; import { formatNumber } from '@polkadot/util'; interface MethodJson { @@ -15,13 +15,12 @@ interface MethodJson { } interface Props { - blockNumber: number; + blockNumber: BlockNumber; className?: string; - era?: string; genesisHash: string; isDecoded: boolean; method: string; - nonce: string; + payload: SignaturePayload; url: string; } @@ -64,7 +63,7 @@ function renderMethod (data: string, meta?: Metadata | null): React.ReactNode { ); } -function renderMortality (era: ExtrinsicEra, blockNumber: number): string { +function renderMortality (era: ExtrinsicEra, blockNumber: BlockNumber): string { if (era.isImmortalEra) { return 'immortal'; } @@ -74,9 +73,8 @@ function renderMortality (era: ExtrinsicEra, blockNumber: number): string { return `mortal, valid from #${formatNumber(mortal.birth(blockNumber))} to #${formatNumber(mortal.death(blockNumber))}`; } -function Details ({ blockNumber, className, genesisHash, isDecoded, era, method, nonce, url }: Props): React.ReactElement { +function Details ({ blockNumber, className, genesisHash, isDecoded, method, payload: { era, nonce, tip }, url }: Props): React.ReactElement { const chain = findChain(genesisHash); - const eera = new ExtrinsicEra(era); return ( @@ -91,12 +89,18 @@ function Details ({ blockNumber, className, genesisHash, isDecoded, era, method, - + + {!tip.isEmpty && ( + + + + + )} {renderMethod(method, (chain && isDecoded) ? chain.meta : null)} - - + +
nonce{nonce}{formatNumber(nonce)}
tip{formatNumber(tip)}
mortality{renderMortality(eera, blockNumber)}lifetime{renderMortality(era, blockNumber)}
diff --git a/packages/extension-ui/src/Popup/Signing/Request.tsx b/packages/extension-ui/src/Popup/Signing/Request.tsx index a612e24d..6674d01f 100644 --- a/packages/extension-ui/src/Popup/Signing/Request.tsx +++ b/packages/extension-ui/src/Popup/Signing/Request.tsx @@ -6,6 +6,7 @@ import { MessageExtrinsicSign } from '@polkadot/extension/background/types'; import { OnActionFromCtx } from '../../components/types'; import React from 'react'; +import { SignaturePayload, BlockNumber } from '@polkadot/types'; import { ActionBar, Address, Link, withOnAction } from '../../components'; import { approveSignRequest, cancelSignRequest } from '../../messaging'; @@ -20,7 +21,7 @@ interface Props { url: string; } -function Request ({ isFirst, onAction, request: { address, blockNumber, era, genesisHash, method, nonce }, signId, url }: Props): React.ReactElement { +function Request ({ isFirst, onAction, request, signId, url }: Props): React.ReactElement { const onCancel = (): Promise => cancelSignRequest(signId) .then((): void => onAction()) @@ -28,16 +29,17 @@ function Request ({ isFirst, onAction, request: { address, blockNumber, era, gen const onSign = (password: string): Promise => approveSignRequest(signId, password) .then((): void => onAction()); + const blockNumber = new BlockNumber(request.blockNumber); + const payload = new SignaturePayload(request, { version: request.version }); return ( -
+
diff --git a/packages/extension/manifest.json b/packages/extension/manifest.json index 29cf644e..27509ea4 100644 --- a/packages/extension/manifest.json +++ b/packages/extension/manifest.json @@ -3,8 +3,9 @@ "description": "Manage your Polkadot accounts outside of dapps. Injects the accounts and allows signing transactions for a specific account.", "homepage_url": "https://github.com/polkadot-js/extension", "name": "polkadot{.js} extension", + "short_name": "polkadot{.js}", "manifest_version": 2, - "permissions": ["activeTab", "storage"], + "permissions": ["storage"], "background": { "scripts": ["background.js"], "persistent": true diff --git a/packages/extension/package.json b/packages/extension/package.json index adefe2c2..4ff99b88 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -5,13 +5,13 @@ "author": "Jaco Greeff ", "license": "Apache-2", "dependencies": { - "@polkadot/api": "^0.82.0-beta.77", + "@polkadot/api": "^0.82.0-beta.88", "@polkadot/extension-ui": "^0.5.0-beta.4", "@polkadot/ui-keyring": "^0.42.0-beta.16" }, "devDependencies": { "@babel/runtime": "^7.5.5", - "@polkadot/keyring": "^0.94.1", + "@polkadot/keyring": "^0.95.0-beta.0", "@types/chrome": "^0.0.86", "@types/firefox-webext-browser": "^67.0.1", "extensionizer": "^1.0.1", diff --git a/packages/extension/src/background/handlers/Extension.ts b/packages/extension/src/background/handlers/Extension.ts index d98f9a3b..b96bb75c 100644 --- a/packages/extension/src/background/handlers/Extension.ts +++ b/packages/extension/src/background/handlers/Extension.ts @@ -8,9 +8,9 @@ import { AuthorizeRequest, MessageTypes, MessageAccountCreate, MessageAccountEdi import keyring from '@polkadot/ui-keyring'; import accountsObservable from '@polkadot/ui-keyring/observable/accounts'; -import { SignaturePayloadRaw } from '@polkadot/types'; +import { SignaturePayload } from '@polkadot/types'; import { mnemonicGenerate, mnemonicValidate } from '@polkadot/util-crypto'; -import { assert, u8aToHex } from '@polkadot/util'; +import { assert } from '@polkadot/util'; import State from './State'; import { createSubscription, unsubscribe } from './subscriptions'; @@ -137,8 +137,8 @@ export default class Extension { assert(queued, 'Unable to find request'); - const { request: { address, blockHash, era, method, nonce }, resolve, reject } = queued; - const pair = keyring.getPair(address); + const { request, resolve, reject } = queued; + const pair = keyring.getPair(request.address); if (!pair) { reject(new Error('Unable to find pair')); @@ -148,14 +148,14 @@ export default class Extension { pair.decodePkcs8(password); - const payload = new SignaturePayloadRaw({ blockHash, era, method, nonce }); - const signature = u8aToHex(payload.sign(pair)); + const payload = new SignaturePayload(request, { version: request.version }); + const result = payload.sign(pair); pair.lock(); resolve({ id, - signature + ...result }); return true; diff --git a/packages/extension/src/background/types.ts b/packages/extension/src/background/types.ts index 66c47989..4d9f8367 100644 --- a/packages/extension/src/background/types.ts +++ b/packages/extension/src/background/types.ts @@ -2,6 +2,7 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. +import { SignerPayload } from '@polkadot/api/types'; import { KeypairType } from '@polkadot/util-crypto/types'; export type MessageTypes = 'authorize.approve' | 'authorize.reject' | 'authorize.requests' | 'authorize.subscribe' | 'authorize.tab' | 'accounts.create' | 'accounts.edit' | 'accounts.forget' | 'accounts.list' | 'accounts.subscribe' | 'extrinsic.sign' | 'seed.create' | 'seed.validate' | 'signing.approve' | 'signing.cancel' | 'signing.requests' | 'signing.subscribe'; @@ -63,15 +64,7 @@ export interface MessageExtrinsicSignCancel { id: string; } -export interface MessageExtrinsicSign { - address: string; - blockHash: string; - blockNumber: number; - era?: string; - genesisHash: string; - method: string; - nonce: string; -} +export type MessageExtrinsicSign = SignerPayload; export interface MessageExtrinsicSignResponse { id: string; diff --git a/packages/extension/src/page/Signer.ts b/packages/extension/src/page/Signer.ts index c0b8d28a..59c68c43 100644 --- a/packages/extension/src/page/Signer.ts +++ b/packages/extension/src/page/Signer.ts @@ -2,42 +2,33 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. -import { SignerOptions } from '@polkadot/api/types'; -import { InjectedSigner } from '@polkadot/extension-inject/types'; -import { IExtrinsic } from '@polkadot/types/types'; +import { Signer as SignerInterface, SignerPayload, SignerResult } from '@polkadot/api/types'; import { SendRequest } from './types'; -import { SubmittableResult } from '@polkadot/api/SubmittableExtrinsic'; -import { Hash } from '@polkadot/types'; - -const DEFAULT_ERA = new Uint8Array(); - let sendRequest: SendRequest; +let nextId = 0; -export default class Signer implements InjectedSigner { +export default class Signer implements SignerInterface { public constructor (_sendRequest: SendRequest) { sendRequest = _sendRequest; } - public async sign (extrinsic: IExtrinsic, address: string, { blockHash, blockNumber, era, genesisHash, nonce }: SignerOptions): Promise { - // Bit of a hack - with this round-about way, we skip any keyring deps - const { id, signature } = await sendRequest('extrinsic.sign', JSON.parse(JSON.stringify({ - address, - blockHash, - blockNumber: blockNumber.toNumber(), - era, - genesisHash, - method: extrinsic.method.toHex(), - nonce - }))); + public async signPayload (payload: SignerPayload): Promise { + const id = ++nextId; + const result = await sendRequest('extrinsic.sign', payload); - extrinsic.addSignature(address, signature, nonce, era || DEFAULT_ERA); - - return id; + // we add an internal id (number) - should have a mapping from the + // extension id (string) -> internal id (number) if we wish to provide + // updated via the update functionality (noop at this point) + return { + ...result, + id + }; } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - public update (id: number, status: Hash | SubmittableResult): void { - // something - } + // We don't listen to updates at all, if we do we can interpret the result + // as provided by the API here + // public update (id: number, status: Hash | SubmittableResult): void { + // // ignore + // } } diff --git a/tsconfig.json b/tsconfig.json index 5c654925..eb22b605 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,8 @@ { "extends": "./node_modules/@polkadot/dev/config/tsconfig", - "compilerOptions": - { + "compilerOptions": { "baseUrl": ".", - "paths": - { + "paths": { "@polkadot/extension": ["packages/extension/src"], "@polkadot/extension/*": ["packages/extension/src/*"], "@polkadot/extension-dapp": ["packages/extension-dapp/src"], @@ -18,5 +16,8 @@ "./node_modules/@polkadot/ts", "./node_modules/@types" ] - } + }, + "exclude": [ + "**/build/*" + ] } diff --git a/yarn.lock b/yarn.lock index e6a9a54a..5174459d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1863,38 +1863,38 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" -"@polkadot/api-derive@^0.82.0-beta.77": - version "0.82.0-beta.77" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.82.0-beta.77.tgz#0586b11291ccda409486f38cedbcaad35b33f577" - integrity sha512-jEpYvsPDvi648HTv7T6b/JNUHbKVaXB2U8AvOKFwhkTscLKWSfkHX4uPyaLzfYm5qqZme9OdDvwM6kw+fh9DJw== +"@polkadot/api-derive@^0.82.0-beta.88": + version "0.82.0-beta.88" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.82.0-beta.88.tgz#9aca03a462e681ef1fc2e4ecef1b6baa04917ce2" + integrity sha512-SmYWcPhNNKZRSmTwe7DMO/jhO8zSnCNPwWyZgriWS7K7ZZHBKheyvG206lOfAWv3NBEUjV34LBc5oJx71AZXAA== dependencies: "@babel/runtime" "^7.5.5" - "@polkadot/api" "^0.82.0-beta.77" - "@polkadot/types" "^0.82.0-beta.77" + "@polkadot/api" "^0.82.0-beta.88" + "@polkadot/types" "^0.82.0-beta.88" "@types/memoizee" "^0.4.2" memoizee "^0.4.14" -"@polkadot/api-metadata@^0.82.0-beta.77": - version "0.82.0-beta.77" - resolved "https://registry.yarnpkg.com/@polkadot/api-metadata/-/api-metadata-0.82.0-beta.77.tgz#3231e1da3d457863085e44d9394bb9e7820f77f5" - integrity sha512-dkcLHPCuFqiZXuUSBQqJ6hhDVYj4o5Mn8h1+fWXwndf0rnivY+WxkZll8rJOMVYltRcIuZjkEVEplx8pkLO6Ng== +"@polkadot/api-metadata@^0.82.0-beta.88": + version "0.82.0-beta.88" + resolved "https://registry.yarnpkg.com/@polkadot/api-metadata/-/api-metadata-0.82.0-beta.88.tgz#8f4ad03dc60cd6dc4255376769b0244e9a805f11" + integrity sha512-x2yrP0yMF0IYXxShyZ8tRy0HyqxzymhHI6l5bX1rVZD7SG35fJJcLAOK1CuoNdPpGNRokA1Phk9xkoktoSTN2Q== dependencies: "@babel/runtime" "^7.5.5" - "@polkadot/types" "^0.82.0-beta.77" + "@polkadot/types" "^0.82.0-beta.88" "@polkadot/util" "^0.94.1" "@polkadot/util-crypto" "^0.94.1" -"@polkadot/api@^0.82.0-beta.77": - version "0.82.0-beta.77" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.82.0-beta.77.tgz#fd3059abc7df7dea8eea02cde6cafe4898e8c82b" - integrity sha512-gXCGc0dS1hUZzcsItQLBjKZ70JpBg5Yie81UPg/zHihMgIijn7/3a15oYh49/mTXx8+kPb4mBmBk8wAElecM8Q== +"@polkadot/api@^0.82.0-beta.88": + version "0.82.0-beta.88" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.82.0-beta.88.tgz#f02d96ea0455ae5a17377f95378a7b0004dc2aa2" + integrity sha512-BitX270xD1v6sBa3qRzDbxgfs7rS2QGikpsDnNcBLD2T2FOpkTdMdhFAWbCcNf1F0425MAA9rsaJ/wy0LcltMQ== dependencies: "@babel/runtime" "^7.5.5" - "@polkadot/api-derive" "^0.82.0-beta.77" - "@polkadot/api-metadata" "^0.82.0-beta.77" - "@polkadot/rpc-core" "^0.82.0-beta.77" - "@polkadot/rpc-provider" "^0.82.0-beta.77" - "@polkadot/types" "^0.82.0-beta.77" + "@polkadot/api-derive" "^0.82.0-beta.88" + "@polkadot/api-metadata" "^0.82.0-beta.88" + "@polkadot/rpc-core" "^0.82.0-beta.88" + "@polkadot/rpc-provider" "^0.82.0-beta.88" + "@polkadot/types" "^0.82.0-beta.88" "@polkadot/util-crypto" "^0.94.1" "@polkadot/dev-react@^0.30.0-beta.23": @@ -1982,42 +1982,42 @@ typescript "^3.5.3" vuepress "^1.0.2" -"@polkadot/jsonrpc@^0.82.0-beta.77": - version "0.82.0-beta.77" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.82.0-beta.77.tgz#c62b07f2203f0ebe77a06c00b92e24727fde4032" - integrity sha512-ylNSTSPnF1cgH9082ZDvpdkuBkCduzVtKSy8wJPuj4YJ2ljz/OeLeoEPwHzfJzyRKANaE2NS7tSuNF3xUnNb1g== +"@polkadot/jsonrpc@^0.82.0-beta.88": + version "0.82.0-beta.88" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.82.0-beta.88.tgz#68912995be01c12ae9af401d7d35c5793ae84ca9" + integrity sha512-Gwmqm5Q2faqTX6RZFWzNadNmNN/RzT4VZL+J+oDl/AnkNeIP10yiEytwy17C0iFw3o266ULC96Y0U51hMlvSmw== dependencies: "@babel/runtime" "^7.5.5" -"@polkadot/keyring@^0.94.1": - version "0.94.1" - resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-0.94.1.tgz#f64743f295b0dc6b64fff6081a642174c87ade21" - integrity sha512-13BZoL6C3tg2U93HGpH44Lj8en3evrbcLCTlyM7A7mI+GPqembQtcgMnp7/gMWVXZApprhr12iBhgGsNizmcfg== +"@polkadot/keyring@^0.95.0-beta.0": + version "0.95.0-beta.0" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-0.95.0-beta.0.tgz#0ca6bf7f2e530f8520ec307231a69fb6dc228228" + integrity sha512-zzzkfJXb3be1LLU2u23aR50ndbFlMqwnzSDn5p+ytbDA8ekTHRjdN9IjPP1VdFvPyqD3kLLhUn4c6+OLh62hsQ== dependencies: "@babel/runtime" "^7.5.5" - "@polkadot/util" "^0.94.1" - "@polkadot/util-crypto" "^0.94.1" + "@polkadot/util" "^0.95.0-beta.0" + "@polkadot/util-crypto" "^0.95.0-beta.0" -"@polkadot/rpc-core@^0.82.0-beta.77": - version "0.82.0-beta.77" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.82.0-beta.77.tgz#b494e504445b4ab8cc9578a7f4aec703daf7fc27" - integrity sha512-wkNaPmUQq020KerFYO4UcefHvGYH5geQQ62ECyPan0Tl1OduhIiP014f1tj8sviD0Rz0jJ1HyhS85oVkBrSXvw== +"@polkadot/rpc-core@^0.82.0-beta.88": + version "0.82.0-beta.88" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.82.0-beta.88.tgz#531572199659586b815463733131a3c3e1e537df" + integrity sha512-w110sRpBL61yBlDuceBbEM0uXisOMd3f/1A+GyNZRlpuXm2KuOCv7EtZ224pIfiU/CecDn/gf51CkF8/7Hiv4A== dependencies: "@babel/runtime" "^7.5.5" - "@polkadot/jsonrpc" "^0.82.0-beta.77" - "@polkadot/rpc-provider" "^0.82.0-beta.77" - "@polkadot/types" "^0.82.0-beta.77" + "@polkadot/jsonrpc" "^0.82.0-beta.88" + "@polkadot/rpc-provider" "^0.82.0-beta.88" + "@polkadot/types" "^0.82.0-beta.88" "@polkadot/util" "^0.94.1" memoizee "^0.4.14" rxjs "^6.5.2" -"@polkadot/rpc-provider@^0.82.0-beta.77": - version "0.82.0-beta.77" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.82.0-beta.77.tgz#9cc82a55f343911f3ef68fce84a32cc1d5c1b57b" - integrity sha512-oGfrhVmA+I5z0O0y7mlZtLuIM0mI7nuDi/lvLdRT5Bir2Lfop+pm9x7eL9XKZFO70hAWbWHGq0kpzLk0NomhfQ== +"@polkadot/rpc-provider@^0.82.0-beta.88": + version "0.82.0-beta.88" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.82.0-beta.88.tgz#adb2fc3cc7ee81919784df18d8c6af89b7a41200" + integrity sha512-rCCEhuqX+ORWg6hflcg4j2ErhZWIVfsf5aNJuLjaVsqcrD+HyjXGix71qSDAoCKGEtOgXh/GQ8nLsFdUXZotQQ== dependencies: "@babel/runtime" "^7.5.5" - "@polkadot/api-metadata" "^0.82.0-beta.77" + "@polkadot/api-metadata" "^0.82.0-beta.88" "@polkadot/util" "^0.94.1" "@polkadot/util-crypto" "^0.94.1" "@types/nock" "^10.0.3" @@ -2032,10 +2032,10 @@ dependencies: "@types/chrome" "^0.0.86" -"@polkadot/types@^0.82.0-beta.77": - version "0.82.0-beta.77" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.82.0-beta.77.tgz#4b0d906775f6abc928e26ffe8c8bbcbbaa928b41" - integrity sha512-a52rLZHFyIEvehVGfaQ/VVI7aGVOLMITxkR0xXRv4ydkahvqknZyPVxUC+mFhxOCebHuOBCuOVYJ2wVjWpqxDw== +"@polkadot/types@^0.82.0-beta.88": + version "0.82.0-beta.88" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.82.0-beta.88.tgz#efc2e96e1799f34cac4fa39a884f75a876c2aec1" + integrity sha512-/f+SifB5BaOQUQKXdUAS4q4eqbZum8sHb3AZbFO26Okvlp/RbSV6HSZnigcEEI50+YeIu4J3hF9hsoB35raFcw== dependencies: "@babel/runtime" "^7.5.5" "@polkadot/util" "^0.94.1" @@ -2077,13 +2077,13 @@ "@types/store" "^2.0.2" store "^2.0.12" -"@polkadot/util-crypto@^0.94.1": - version "0.94.1" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.94.1.tgz#64c076567060c15a752fe1bb046cc902d07a14ca" - integrity sha512-+JB2fjNQn6Kba29gd3R5Bg0GLo9dDsRqayumSkusq3AeXI9YEZmjwstze6gGbGZJscSoyuuoCTzljWOr/RIhzQ== +"@polkadot/util-crypto@^0.94.1", "@polkadot/util-crypto@^0.95.0-beta.0": + version "0.95.0-beta.0" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-0.95.0-beta.0.tgz#4911b4f0e9efc2b5aac12d0c89f1d4cd5020e954" + integrity sha512-3/n75W8UjIIYUnuD0MoZKd5CWuMpzo2xCLXtiiWdki81+tVlGeko2TSiNuaHGTpEA6wt1yOc56x0l3x5hGfF4Q== dependencies: "@babel/runtime" "^7.5.5" - "@polkadot/util" "^0.94.1" + "@polkadot/util" "^0.95.0-beta.0" "@polkadot/wasm-crypto" "^0.13.1" "@types/bip39" "^2.4.2" "@types/bs58" "^4.0.0" @@ -2099,10 +2099,10 @@ tweetnacl "^1.0.1" xxhashjs "^0.2.2" -"@polkadot/util@^0.94.1": - version "0.94.1" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.94.1.tgz#5d1f73ffbf79b16009de45180e5184dfc2110800" - integrity sha512-HpKz0PDgYcvoh2xvT1e5n3H3soXce8vY5h3aq3vqmWfdSUoSo9wIfCfHrOo7Z130Z/qegqtAtJVj4+8434+Q8w== +"@polkadot/util@^0.94.1", "@polkadot/util@^0.95.0-beta.0": + version "0.95.0-beta.0" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-0.95.0-beta.0.tgz#b80a82da38b8b256ac475e6998b80963c6e487de" + integrity sha512-UjNPffq+i+5TAxa0JIDGlAVhDS2wKe8zQYXp7m4MTNaozYnhjM2H7Xs/QWd03FoMMYPRkX1cXJYgeXytFjnmfw== dependencies: "@babel/runtime" "^7.5.5" "@types/bn.js" "^4.11.5"