Update ValidatorPrefs with commission (#1959)
* Update ValidatorPrefs with commission * Bump API
This commit is contained in:
parent
3ed017fd97
commit
f6976e1e49
@ -10,10 +10,10 @@
|
||||
"packages/*"
|
||||
],
|
||||
"resolutions": {
|
||||
"@polkadot/api": "^0.97.0-beta.39",
|
||||
"@polkadot/api-contract": "^0.97.0-beta.39",
|
||||
"@polkadot/api": "^0.97.0-beta.40",
|
||||
"@polkadot/api-contract": "^0.97.0-beta.40",
|
||||
"@polkadot/keyring": "^1.7.1",
|
||||
"@polkadot/types": "^0.97.0-beta.39",
|
||||
"@polkadot/types": "^0.97.0-beta.40",
|
||||
"@polkadot/util": "^1.7.1",
|
||||
"@polkadot/util-crypto": "^1.7.1",
|
||||
"babel-core": "^7.0.0-bridge.0",
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.7.4",
|
||||
"@polkadot/api-contract": "^0.97.0-beta.39",
|
||||
"@polkadot/api-contract": "^0.97.0-beta.40",
|
||||
"@polkadot/react-components": "^0.37.0-beta.134"
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,14 +2,15 @@
|
||||
// This software may be modified and distributed under the terms
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
import { ValidatorPrefs, ValidatorPrefs0to145 } from '@polkadot/types/interfaces';
|
||||
import { ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196 } from '@polkadot/types/interfaces';
|
||||
import { ApiProps } from '@polkadot/react-api/types';
|
||||
import { I18nProps } from '@polkadot/react-components/types';
|
||||
|
||||
import BN from 'bn.js';
|
||||
import React from 'react';
|
||||
import { withApi, withMulti } from '@polkadot/react-api';
|
||||
import { registry, withApi, withMulti } from '@polkadot/react-api';
|
||||
import { Button, InputAddress, InputBalance, InputNumber, Modal, TxButton, TxComponent } from '@polkadot/react-components';
|
||||
import { createType } from '@polkadot/types';
|
||||
|
||||
import InputValidationUnstakeThreshold from './InputValidationUnstakeThreshold';
|
||||
import translate from '../../translate';
|
||||
@ -19,17 +20,24 @@ interface Props extends ApiProps, I18nProps {
|
||||
isOpen: boolean;
|
||||
onClose: () => void;
|
||||
stashId: string;
|
||||
validatorPrefs?: ValidatorPrefs | ValidatorPrefs0to145;
|
||||
validatorPrefs?: ValidatorPrefs | ValidatorPrefsTo145 | ValidatorPrefsTo196;
|
||||
}
|
||||
|
||||
interface State {
|
||||
unstakeThreshold?: BN;
|
||||
hasCommission: boolean;
|
||||
commission: BN;
|
||||
unstakeThreshold: BN;
|
||||
unstakeThresholdError: string | null;
|
||||
validatorPayment?: BN;
|
||||
validatorPayment: BN;
|
||||
}
|
||||
|
||||
const COMM_MUL = new BN(10000000);
|
||||
const MAX_COMM = new BN(100);
|
||||
|
||||
class Validate extends TxComponent<Props, State> {
|
||||
public state: State = {
|
||||
hasCommission: !!(createType(registry, 'ValidatorPrefs').commission),
|
||||
commission: new BN(0),
|
||||
unstakeThreshold: new BN(3),
|
||||
unstakeThresholdError: null,
|
||||
validatorPayment: new BN(0)
|
||||
@ -87,7 +95,7 @@ class Validate extends TxComponent<Props, State> {
|
||||
|
||||
private renderButtons (): React.ReactNode {
|
||||
const { controllerId, isSubstrateV2, onClose, t } = this.props;
|
||||
const { unstakeThreshold, unstakeThresholdError, validatorPayment } = this.state;
|
||||
const { commission, hasCommission, unstakeThreshold, unstakeThresholdError, validatorPayment } = this.state;
|
||||
|
||||
return (
|
||||
<Modal.Actions>
|
||||
@ -108,7 +116,9 @@ class Validate extends TxComponent<Props, State> {
|
||||
onClick={onClose}
|
||||
params={[
|
||||
isSubstrateV2
|
||||
? { validatorPayment }
|
||||
? hasCommission
|
||||
? { commission }
|
||||
: { validatorPayment }
|
||||
: { unstakeThreshold, validatorPayment }
|
||||
]}
|
||||
tx='staking.validate'
|
||||
@ -121,8 +131,8 @@ class Validate extends TxComponent<Props, State> {
|
||||
|
||||
private renderContent (): React.ReactNode {
|
||||
const { controllerId, isSubstrateV2, stashId, t, validatorPrefs } = this.props;
|
||||
const { unstakeThreshold, unstakeThresholdError } = this.state;
|
||||
const defaultThreshold = validatorPrefs && (validatorPrefs as ValidatorPrefs0to145).unstakeThreshold && (validatorPrefs as ValidatorPrefs0to145).unstakeThreshold.toBn();
|
||||
const { hasCommission, unstakeThreshold, unstakeThresholdError } = this.state;
|
||||
const defaultThreshold = validatorPrefs && (validatorPrefs as ValidatorPrefsTo145).unstakeThreshold && (validatorPrefs as ValidatorPrefsTo145).unstakeThreshold.toBn();
|
||||
|
||||
return (
|
||||
<>
|
||||
@ -161,30 +171,42 @@ class Validate extends TxComponent<Props, State> {
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
<InputBalance
|
||||
className='medium'
|
||||
defaultValue={validatorPrefs?.validatorPayment?.toBn()}
|
||||
help={t('Amount taken up-front from the reward by the validator before splitting the remainder between themselves and the nominators')}
|
||||
isZeroable
|
||||
label={t('reward commission')}
|
||||
onChange={this.onChangePayment}
|
||||
onEnter={this.sendTx}
|
||||
/>
|
||||
{
|
||||
hasCommission
|
||||
? <InputNumber
|
||||
className='medium'
|
||||
help={t('The percentage reward (0-100) that should be applied for the validator')}
|
||||
isZeroable
|
||||
label={t('reward commission percentage')}
|
||||
maxValue={MAX_COMM}
|
||||
onChange={this.onChangeCommission}
|
||||
onEnter={this.sendTx}
|
||||
/>
|
||||
: <InputBalance
|
||||
className='medium'
|
||||
defaultValue={(validatorPrefs as ValidatorPrefsTo196)?.validatorPayment?.toBn()}
|
||||
help={t('Amount taken up-front from the reward by the validator before splitting the remainder between themselves and the nominators')}
|
||||
isZeroable
|
||||
label={t('validator payment')}
|
||||
onChange={this.onChangePayment}
|
||||
onEnter={this.sendTx}
|
||||
/>
|
||||
}
|
||||
</Modal.Content>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
private onChangeCommission = (commission?: BN): void => {
|
||||
commission && this.setState({ commission: commission.mul(COMM_MUL) });
|
||||
}
|
||||
|
||||
private onChangePayment = (validatorPayment?: BN): void => {
|
||||
if (validatorPayment) {
|
||||
this.setState({ validatorPayment });
|
||||
}
|
||||
validatorPayment && this.setState({ validatorPayment });
|
||||
}
|
||||
|
||||
private onChangeThreshold = (unstakeThreshold?: BN): void => {
|
||||
if (unstakeThreshold) {
|
||||
this.setState({ unstakeThreshold });
|
||||
}
|
||||
unstakeThreshold && this.setState({ unstakeThreshold });
|
||||
}
|
||||
|
||||
private onUnstakeThresholdError = (unstakeThresholdError: string | null): void => {
|
||||
|
||||
@ -17,7 +17,7 @@ interface Props extends I18nProps {
|
||||
toggleFavorite: (accountId: string) => void;
|
||||
}
|
||||
|
||||
function Validator ({ info: { accountId, bondOther, bondOwn, bondTotal, commission, isFavorite, isNominating, key, numNominators, rankOverall, rewardPayout }, toggleFavorite }: Props): React.ReactElement<Props> {
|
||||
function Validator ({ info: { accountId, bondOther, bondOwn, bondTotal, commissionPer, isCommission, isFavorite, isNominating, key, numNominators, rankOverall, rewardPayout, validatorPayment }, toggleFavorite }: Props): React.ReactElement<Props> {
|
||||
const _onFavorite = (): void => toggleFavorite(key);
|
||||
const _onQueryStats = (): void => {
|
||||
window.location.hash = `/staking/query/${key}`;
|
||||
@ -34,7 +34,13 @@ function Validator ({ info: { accountId, bondOther, bondOwn, bondTotal, commissi
|
||||
</td>
|
||||
<td className='number'>{formatNumber(rankOverall)}</td>
|
||||
<td className='address'><AddressMini value={accountId} /></td>
|
||||
<td className='number'><FormatBalance value={commission} /></td>
|
||||
<td className='number'>
|
||||
{
|
||||
isCommission
|
||||
? `${commissionPer.toFixed(2)}%`
|
||||
: <FormatBalance value={validatorPayment} />
|
||||
}
|
||||
</td>
|
||||
<td className='number'>{formatNumber(numNominators)}</td>
|
||||
<td className='number'><FormatBalance value={bondTotal} /></td>
|
||||
<td className='number'><FormatBalance value={bondOwn} /></td>
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
import { DerivedStakingElected } from '@polkadot/api-derive/types';
|
||||
import { I18nProps } from '@polkadot/react-components/types';
|
||||
import { ValidatorPrefs, ValidatorPrefsTo196 } from '@polkadot/types/interfaces';
|
||||
import { ComponentProps } from '../types';
|
||||
import { ValidatorInfo } from './types';
|
||||
|
||||
@ -18,6 +19,8 @@ import translate from '../translate';
|
||||
import Summary from './Summary';
|
||||
import Validator from './Validator';
|
||||
|
||||
const PERBILL = new BN(1000000000);
|
||||
|
||||
interface Props extends I18nProps, ComponentProps {
|
||||
}
|
||||
|
||||
@ -34,9 +37,9 @@ function sortValidators (list: ValidatorInfo[]): ValidatorInfo[] {
|
||||
|
||||
return info;
|
||||
})
|
||||
.sort((a, b): number => b.commission.cmp(a.commission))
|
||||
.sort((a, b): number => b.validatorPayment.cmp(a.validatorPayment))
|
||||
.map((info, index): ValidatorInfo => {
|
||||
info.rankCommission = index + 1;
|
||||
info.rankPayment = index + 1;
|
||||
|
||||
return info;
|
||||
})
|
||||
@ -48,13 +51,13 @@ function sortValidators (list: ValidatorInfo[]): ValidatorInfo[] {
|
||||
})
|
||||
.sort((a, b): number =>
|
||||
a.rankReward === b.rankReward
|
||||
? a.rankCommission === b.rankCommission
|
||||
? a.rankPayment === b.rankPayment
|
||||
? a.rankBonded === b.rankBonded
|
||||
? 0
|
||||
: a.rankBonded < b.rankBonded
|
||||
? 1
|
||||
: -1
|
||||
: a.rankCommission < b.rankCommission
|
||||
: a.rankPayment < b.rankPayment
|
||||
? 1
|
||||
: -1
|
||||
: a.rankReward < b.rankReward
|
||||
@ -96,19 +99,24 @@ function Targets ({ className, sessionRewards, t }: Props): React.ReactElement<P
|
||||
const numValidators = electedInfo.info.length;
|
||||
const validators = sortValidators(
|
||||
electedInfo.info.map(({ accountId, stakers, validatorPrefs }): ValidatorInfo => {
|
||||
console.error((validatorPrefs as ValidatorPrefs).commission.toString());
|
||||
|
||||
const exposure = stakers || {
|
||||
total: api.createType('Compact<Balance>'),
|
||||
own: api.createType('Compact<Balance>'),
|
||||
others: api.createType('Vec<IndividualExposure>')
|
||||
};
|
||||
const prefs = validatorPrefs || {
|
||||
validatorPayment: api.createType('Compact<Balance>')
|
||||
const prefs = (validatorPrefs as (ValidatorPrefs | ValidatorPrefsTo196)) || {
|
||||
commission: api.createType('Compact<Perbill>')
|
||||
};
|
||||
const bondOwn = exposure.own.unwrap();
|
||||
const bondTotal = exposure.total.unwrap();
|
||||
const commission = prefs.validatorPayment.unwrap();
|
||||
const perValidatorReward = lastReward.divn(numValidators);
|
||||
const validatorPayment = (prefs as ValidatorPrefsTo196).validatorPayment
|
||||
? (prefs as ValidatorPrefsTo196).validatorPayment.unwrap() as BN
|
||||
: (prefs as ValidatorPrefs).commission.unwrap().mul(perValidatorReward).div(PERBILL);
|
||||
const key = accountId.toString();
|
||||
const rewardSplit = lastReward.divn(numValidators).sub(commission);
|
||||
const rewardSplit = perValidatorReward.sub(validatorPayment);
|
||||
const calcAmount = amount || new BN(0);
|
||||
const rewardPayout = rewardSplit.gtn(0)
|
||||
? calcAmount.mul(rewardSplit).div(calcAmount.add(bondTotal))
|
||||
@ -125,17 +133,19 @@ function Targets ({ className, sessionRewards, t }: Props): React.ReactElement<P
|
||||
bondOwn,
|
||||
bondShare: 0,
|
||||
bondTotal,
|
||||
isCommission: !!(prefs as ValidatorPrefs).commission,
|
||||
isFavorite: favorites.includes(key),
|
||||
isNominating,
|
||||
key,
|
||||
commission,
|
||||
commissionPer: (((prefs as ValidatorPrefs).commission?.unwrap() || new BN(0)).muln(10000).div(PERBILL).toNumber() / 100),
|
||||
numNominators: exposure.others.length,
|
||||
rankBonded: 0,
|
||||
rankCommission: 0,
|
||||
rankOverall: 0,
|
||||
rankPayment: 0,
|
||||
rankReward: 0,
|
||||
rewardPayout,
|
||||
rewardSplit
|
||||
rewardSplit,
|
||||
validatorPayment
|
||||
};
|
||||
})
|
||||
);
|
||||
|
||||
@ -12,15 +12,17 @@ export interface ValidatorInfo {
|
||||
bondOwn: Balance;
|
||||
bondShare: number;
|
||||
bondTotal: Balance;
|
||||
commission: Balance;
|
||||
commissionPer: number;
|
||||
isCommission: boolean;
|
||||
isFavorite: boolean;
|
||||
isNominating: boolean;
|
||||
key: string;
|
||||
numNominators: number;
|
||||
rankBonded: number;
|
||||
rankCommission: number;
|
||||
rankOverall: number;
|
||||
rankPayment: number;
|
||||
rankReward: number;
|
||||
rewardPayout: BN;
|
||||
rewardSplit: BN;
|
||||
validatorPayment: BN;
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/ui-reactive#readme",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.7.4",
|
||||
"@polkadot/api": "^0.97.0-beta.39",
|
||||
"@polkadot/api": "^0.97.0-beta.40",
|
||||
"@polkadot/extension-dapp": "^0.14.0-beta.6",
|
||||
"edgeware-node-types": "^1.0.10",
|
||||
"rxjs-compat": "^6.5.3"
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
import { DerivedBalances, DerivedStaking } from '@polkadot/api-derive/types';
|
||||
import { ValidatorPrefs0to145 } from '@polkadot/types/interfaces';
|
||||
import { ValidatorPrefsTo145 } from '@polkadot/types/interfaces';
|
||||
import { BareProps, I18nProps } from './types';
|
||||
|
||||
import BN from 'bn.js';
|
||||
@ -42,6 +42,8 @@ export interface ValidatorPrefsType {
|
||||
validatorPayment?: boolean;
|
||||
}
|
||||
|
||||
const PERBILL = new BN(1000000000);
|
||||
|
||||
interface Props extends BareProps, I18nProps {
|
||||
address: string;
|
||||
balancesAll?: DerivedBalances;
|
||||
@ -204,22 +206,31 @@ function renderValidatorPrefs ({ stakingInfo, t, withValidatorPrefs = false }: P
|
||||
return (
|
||||
<>
|
||||
<div />
|
||||
{validatorPrefsDisplay.unstakeThreshold && (stakingInfo.validatorPrefs as ValidatorPrefs0to145).unstakeThreshold && (
|
||||
{validatorPrefsDisplay.unstakeThreshold && (stakingInfo.validatorPrefs as any as ValidatorPrefsTo145).unstakeThreshold && (
|
||||
<>
|
||||
<Label label={t('unstake threshold')} />
|
||||
<div className='result'>
|
||||
{(stakingInfo.validatorPrefs as ValidatorPrefs0to145).unstakeThreshold.toString()}
|
||||
{(stakingInfo.validatorPrefs as any as ValidatorPrefsTo145).unstakeThreshold.toString()}
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
{validatorPrefsDisplay.validatorPayment && stakingInfo.validatorPrefs.validatorPayment && (
|
||||
<>
|
||||
<Label label={t('commission')} />
|
||||
<FormatBalance
|
||||
className='result'
|
||||
value={stakingInfo.validatorPrefs.validatorPayment}
|
||||
/>
|
||||
</>
|
||||
{validatorPrefsDisplay.validatorPayment && (stakingInfo.validatorPrefs.commission || (stakingInfo.validatorPrefs as any as ValidatorPrefsTo145).validatorPayment) && (
|
||||
(stakingInfo.validatorPrefs as any as ValidatorPrefsTo145).validatorPayment
|
||||
? (
|
||||
<>
|
||||
<Label label={t('commission')} />
|
||||
<FormatBalance
|
||||
className='result'
|
||||
value={(stakingInfo.validatorPrefs as any as ValidatorPrefsTo145).validatorPayment}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
: (
|
||||
<>
|
||||
<Label label={t('commission')} />
|
||||
<span>{(stakingInfo.validatorPrefs.commission.unwrap().muln(10000).div(PERBILL).toNumber() / 100).toFixed(2)}%</span>
|
||||
</>
|
||||
)
|
||||
)}
|
||||
</>
|
||||
);
|
||||
|
||||
90
yarn.lock
90
yarn.lock
@ -2029,35 +2029,35 @@
|
||||
dependencies:
|
||||
"@types/node" ">= 8"
|
||||
|
||||
"@polkadot/api-contract@^0.97.0-beta.39":
|
||||
version "0.97.0-beta.39"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-0.97.0-beta.39.tgz#3ac80bb39f3592e65fc5cd305b92db8d4ce71b28"
|
||||
integrity sha512-O3p29g5M8Z3eGgdyPlPoAu57SVRocW1VeUUSfgLySS6q9+N1fttaVEzEwbAdktsQFUdxt06sFyYgiCWdZ0ZVew==
|
||||
"@polkadot/api-contract@^0.97.0-beta.40":
|
||||
version "0.97.0-beta.40"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-0.97.0-beta.40.tgz#d267ed52612bfeaa3b5e74353c2acb0e8be02ec1"
|
||||
integrity sha512-ELF7cj3llvKGCJ1aGREl5k6LTvuWlussen4VpAzUhg4LTOv2g341YsqeEddFCkk5jmcvXG/4LTo7fDIrHOzNhQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
"@polkadot/types" "^0.97.0-beta.39"
|
||||
"@polkadot/types" "^0.97.0-beta.40"
|
||||
|
||||
"@polkadot/api-derive@^0.97.0-beta.39":
|
||||
version "0.97.0-beta.39"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.97.0-beta.39.tgz#c835a4f4037cbb6946ff9aeb20c70996c85d1cbf"
|
||||
integrity sha512-bh9uuFk/Nanr5Km0BTfzMtw+FUZrGXvipQHLP5IvHKvPogYEQdIfiOU61q1NjKER2lgpPXRLikXIEFudEXzRmQ==
|
||||
"@polkadot/api-derive@^0.97.0-beta.40":
|
||||
version "0.97.0-beta.40"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.97.0-beta.40.tgz#b70fb3c952884456b7ed9902d31839cfcb69878f"
|
||||
integrity sha512-mS9nvtfZ8zL+MdHw/L17hGmUGILlJ9oDP6dI7YrZ0ystQ1NLlU6UhPzQZsfnD+CE2nHi0PrgW2/hJ9WPz5sjJQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
"@polkadot/api" "^0.97.0-beta.39"
|
||||
"@polkadot/types" "^0.97.0-beta.39"
|
||||
"@polkadot/api" "^0.97.0-beta.40"
|
||||
"@polkadot/types" "^0.97.0-beta.40"
|
||||
|
||||
"@polkadot/api@^0.97.0-beta.39":
|
||||
version "0.97.0-beta.39"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.97.0-beta.39.tgz#1ba48af404920142445f6d01826f0e93943d07e6"
|
||||
integrity sha512-3rZZFjs0PiwJK2RUgC/WLaTq3F6v8ArfTObSiKjL0yq250JIPVdXzh7PDeR7tUH3e/Nuq6Q5Ov+GR6HNkb0ZRw==
|
||||
"@polkadot/api@^0.97.0-beta.40":
|
||||
version "0.97.0-beta.40"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.97.0-beta.40.tgz#ce8981d09d864ac324b9fee43a3b990f0f6f99ca"
|
||||
integrity sha512-BMbaLbbWC/SVrZ7Pd9Al6CN95BB4X7B0jq4tchtbmQylPxgpTZb4Wesu0UIql+b7gCPi2IvQ+BFa0scmObROoA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
"@polkadot/api-derive" "^0.97.0-beta.39"
|
||||
"@polkadot/api-derive" "^0.97.0-beta.40"
|
||||
"@polkadot/keyring" "^1.7.1"
|
||||
"@polkadot/metadata" "^0.97.0-beta.39"
|
||||
"@polkadot/rpc-core" "^0.97.0-beta.39"
|
||||
"@polkadot/rpc-provider" "^0.97.0-beta.39"
|
||||
"@polkadot/types" "^0.97.0-beta.39"
|
||||
"@polkadot/metadata" "^0.97.0-beta.40"
|
||||
"@polkadot/rpc-core" "^0.97.0-beta.40"
|
||||
"@polkadot/rpc-provider" "^0.97.0-beta.40"
|
||||
"@polkadot/types" "^0.97.0-beta.40"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
|
||||
"@polkadot/dev-react@^0.32.0-beta.15":
|
||||
@ -2161,10 +2161,10 @@
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
|
||||
"@polkadot/jsonrpc@^0.97.0-beta.39":
|
||||
version "0.97.0-beta.39"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.97.0-beta.39.tgz#c57452378bac86f9f53d42444bb98b16cb3b0675"
|
||||
integrity sha512-yB0AIfcYtUYs9MyCs3HCw5jnLSy/GtPuWSXS0eeUT6A5QJFYRstgReYHmcGWfT3OzPsa0ONM+o1gEtgF6Torsw==
|
||||
"@polkadot/jsonrpc@^0.97.0-beta.40":
|
||||
version "0.97.0-beta.40"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.97.0-beta.40.tgz#cec17af41fd7e402c0ee21f42ee5ac5b7974c372"
|
||||
integrity sha512-0INE+VrlqNogFX2cerZtTh80dw+2UK6ULcl66jl8bbdux3JcO00T2/KEKO3jaxxebTBk9qnH7OobIfQJ7sbLMA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
|
||||
@ -2177,13 +2177,13 @@
|
||||
"@polkadot/util" "^1.7.1"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
|
||||
"@polkadot/metadata@^0.97.0-beta.39":
|
||||
version "0.97.0-beta.39"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-0.97.0-beta.39.tgz#f2853bff00d6925325932bfe0e9ea09c52a92487"
|
||||
integrity sha512-qShxMdcO3+2WhYglI41k5pGB9U7VMeCXTkdUJ4Wk9UY7HU2Epgc7xrPHq3MLEFFFzFJ0T2Um7q1iYb7dj1y3GQ==
|
||||
"@polkadot/metadata@^0.97.0-beta.40":
|
||||
version "0.97.0-beta.40"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-0.97.0-beta.40.tgz#d0353cf137de4d76c8bfac2a99f3b74004fdc8e6"
|
||||
integrity sha512-bkbA8xg7wDwlVtfW7kk9OrxJ3CETXDETLQ4tC0SepLkf8X5wqpV+lWHiLtQS8XCL5VNiatKO6SDMfjNXzsgF6A==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
"@polkadot/types" "^0.97.0-beta.39"
|
||||
"@polkadot/types" "^0.97.0-beta.40"
|
||||
"@polkadot/util" "^1.7.1"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
|
||||
@ -2212,25 +2212,25 @@
|
||||
qrcode-generator "^1.4.4"
|
||||
react-qr-reader "^2.2.1"
|
||||
|
||||
"@polkadot/rpc-core@^0.97.0-beta.39":
|
||||
version "0.97.0-beta.39"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.97.0-beta.39.tgz#1ee02f3f65ceaba1228830b7ff8c034dc6019a45"
|
||||
integrity sha512-LgPN6uVs61uPWoK4/RkJfcJWLZVVmiF0iefkIxMjb7pHe3E3j4PqIl9xjrk6fY5PyiRdJXp8IDprP8ogmz33kQ==
|
||||
"@polkadot/rpc-core@^0.97.0-beta.40":
|
||||
version "0.97.0-beta.40"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.97.0-beta.40.tgz#a7fc22ce18ae970b80b8561b137a6b115929a36f"
|
||||
integrity sha512-wXvzWDoa1BJtnjRO4pSvdTDdMg6N+4YyevvDETQi+xvvD6K5/dXyGsV5xkZ0QhcgVVJEV7G4sl85WxJOtac+NA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
"@polkadot/jsonrpc" "^0.97.0-beta.39"
|
||||
"@polkadot/rpc-provider" "^0.97.0-beta.39"
|
||||
"@polkadot/types" "^0.97.0-beta.39"
|
||||
"@polkadot/jsonrpc" "^0.97.0-beta.40"
|
||||
"@polkadot/rpc-provider" "^0.97.0-beta.40"
|
||||
"@polkadot/types" "^0.97.0-beta.40"
|
||||
"@polkadot/util" "^1.7.1"
|
||||
rxjs "^6.5.3"
|
||||
|
||||
"@polkadot/rpc-provider@^0.97.0-beta.39":
|
||||
version "0.97.0-beta.39"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.97.0-beta.39.tgz#b75f7cc486e5460be9f7942ba5a3b80f99bce9ef"
|
||||
integrity sha512-PacASxjPndVJixFG4V1Z7hXvKtROO4o5MHm7CYozfwsH7IA7uenno5TsjzGXoWVv+F9vKMCez51gkZlXZLbddQ==
|
||||
"@polkadot/rpc-provider@^0.97.0-beta.40":
|
||||
version "0.97.0-beta.40"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.97.0-beta.40.tgz#89da9c111b1489b5e7957f290c1040c49ace5fc9"
|
||||
integrity sha512-LvWt9zubwopYSt9tq3VrO01+Ojp0WOHJzJ62JaqGfg0n5VyyL5kZpCLPV7e4eWg4KFVSOVHfH+IR8SeRzovEgw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
"@polkadot/metadata" "^0.97.0-beta.39"
|
||||
"@polkadot/metadata" "^0.97.0-beta.40"
|
||||
"@polkadot/util" "^1.7.1"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
eventemitter3 "^4.0.0"
|
||||
@ -2244,10 +2244,10 @@
|
||||
dependencies:
|
||||
"@types/chrome" "^0.0.91"
|
||||
|
||||
"@polkadot/types@^0.97.0-beta.39":
|
||||
version "0.97.0-beta.39"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.97.0-beta.39.tgz#7fe786afb9e987ffb06048ea011838cabdbb918e"
|
||||
integrity sha512-/gkArYctnsJCUn5RQ0YgiWgI4b7OrJaYlYCfVRC8k2N7Fl1UMc6Wyn7zxPLHxHQj4Cm8FlyfHkf9aeNzwgA+Jg==
|
||||
"@polkadot/types@^0.97.0-beta.40":
|
||||
version "0.97.0-beta.40"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.97.0-beta.40.tgz#d7f25e3652a4ef75059fa58fa1d53a9034ecbab1"
|
||||
integrity sha512-Jj4ewqGnwq9T8Mb/r0b5PcqAAtpeBnfmpv7MiSdlsZDRs9iyiqzHn6PMh8AnjCdo+fA0pN8YA//LmQXkFPVpig==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
"@polkadot/util" "^1.7.1"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user