More effcicient derive for staking info (#2017)
This commit is contained in:
parent
5b155bd65b
commit
e9a45f8dde
@ -10,10 +10,10 @@
|
||||
"packages/*"
|
||||
],
|
||||
"resolutions": {
|
||||
"@polkadot/api": "^0.99.0-beta.6",
|
||||
"@polkadot/api-contract": "^0.99.0-beta.6",
|
||||
"@polkadot/api": "^0.99.0-beta.7",
|
||||
"@polkadot/api-contract": "^0.99.0-beta.7",
|
||||
"@polkadot/keyring": "^1.7.1",
|
||||
"@polkadot/types": "^0.99.0-beta.6",
|
||||
"@polkadot/types": "^0.99.0-beta.7",
|
||||
"@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.5",
|
||||
"@polkadot/api-contract": "^0.99.0-beta.6",
|
||||
"@polkadot/api-contract": "^0.99.0-beta.7",
|
||||
"@polkadot/react-components": "^0.38.0-beta.49"
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
// This software may be modified and distributed under the terms
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
import { DerivedBalances, DerivedStaking, DerivedStakingOnlineStatus, DerivedHeartbeats } from '@polkadot/api-derive/types';
|
||||
import { DerivedBalances, DerivedStakingAccount, DerivedHeartbeats } from '@polkadot/api-derive/types';
|
||||
import { ApiProps } from '@polkadot/react-api/types';
|
||||
import { I18nProps } from '@polkadot/react-components/types';
|
||||
import { AccountId, Exposure, StakingLedger, ValidatorPrefs } from '@polkadot/types/interfaces';
|
||||
@ -11,7 +11,7 @@ import { KeyringSectionOption } from '@polkadot/ui-keyring/options/types';
|
||||
|
||||
import React from 'react';
|
||||
import styled from 'styled-components';
|
||||
import { AddressCard, AddressInfo, AddressMini, AddressRow, Button, Menu, OnlineStatus, Popup, TxButton } from '@polkadot/react-components';
|
||||
import { AddressCard, AddressInfo, AddressMini, AddressRow, Button, Menu, Popup, TxButton } from '@polkadot/react-components';
|
||||
import { withCalls, withMulti } from '@polkadot/react-api';
|
||||
|
||||
import BondExtra from './BondExtra';
|
||||
@ -31,7 +31,7 @@ interface Props extends ApiProps, I18nProps {
|
||||
className?: string;
|
||||
isOwnStash: boolean;
|
||||
recentlyOnline?: DerivedHeartbeats;
|
||||
staking_info?: DerivedStaking;
|
||||
staking_account?: DerivedStakingAccount;
|
||||
stashId: string;
|
||||
stashOptions: KeyringSectionOption[];
|
||||
}
|
||||
@ -53,7 +53,6 @@ interface State {
|
||||
isUnbondOpen: boolean;
|
||||
isValidateOpen: boolean;
|
||||
nominees?: string[];
|
||||
onlineStatus: DerivedStakingOnlineStatus;
|
||||
sessionIds: string[];
|
||||
stakers?: Exposure;
|
||||
stakingLedger?: StakingLedger;
|
||||
@ -99,16 +98,15 @@ class Account extends React.PureComponent<Props, State> {
|
||||
isStashValidating: false,
|
||||
isUnbondOpen: false,
|
||||
isValidateOpen: false,
|
||||
onlineStatus: {},
|
||||
sessionIds: []
|
||||
};
|
||||
|
||||
public static getDerivedStateFromProps ({ allStashes, staking_info, stashId }: Props): Pick<State, never> | null {
|
||||
if (!staking_info) {
|
||||
public static getDerivedStateFromProps ({ allStashes, staking_account, stashId }: Props): Pick<State, never> | null {
|
||||
if (!staking_account) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { controllerId, nextSessionIds, nominators, rewardDestination, sessionIds, stakers, stakingLedger, validatorPrefs } = staking_info;
|
||||
const { controllerId, nextSessionIds, nominators, rewardDestination, sessionIds, stakers, stakingLedger, validatorPrefs } = staking_account;
|
||||
const isStashNominating = nominators && !!nominators.length;
|
||||
const isStashValidating = !!allStashes && !!stashId && allStashes.includes(stashId);
|
||||
const nextConcat = u8aConcat(...nextSessionIds.map((id): Uint8Array => id.toU8a()));
|
||||
@ -135,7 +133,7 @@ class Account extends React.PureComponent<Props, State> {
|
||||
|
||||
public render (): React.ReactNode {
|
||||
const { className, isSubstrateV2, stashId, t } = this.props;
|
||||
const { controllerId, hexSessionIdNext, hexSessionIdQueue, isBondExtraOpen, isInjectOpen, isStashValidating, isUnbondOpen, nominees, onlineStatus, sessionIds } = this.state;
|
||||
const { controllerId, hexSessionIdNext, hexSessionIdQueue, isBondExtraOpen, isInjectOpen, isStashValidating, isUnbondOpen, nominees, sessionIds } = this.state;
|
||||
|
||||
// Each component is rendered and gets a `is[Component]Open` passed in a `isOpen` props.
|
||||
// These components will be loaded and return null at the first load (because is[Component]Open === false).
|
||||
@ -145,13 +143,6 @@ class Account extends React.PureComponent<Props, State> {
|
||||
<AddressCard
|
||||
buttons={this.renderButtons()}
|
||||
className={className}
|
||||
iconInfo={onlineStatus && (
|
||||
<OnlineStatus
|
||||
isTooltip
|
||||
value={onlineStatus}
|
||||
/>
|
||||
)}
|
||||
// label={t('stash')}
|
||||
type='account'
|
||||
value={stashId}
|
||||
withAddressOrName
|
||||
@ -612,7 +603,7 @@ export default withMulti(
|
||||
`,
|
||||
translate,
|
||||
withCalls<Props>(
|
||||
['derive.staking.info', { paramName: 'stashId' }],
|
||||
['derive.staking.account', { paramName: 'stashId' }],
|
||||
['derive.balances.all', { paramName: 'stashId' }]
|
||||
)
|
||||
);
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
import { AccountId, Balance, Points, ValidatorPrefsTo196 } from '@polkadot/types/interfaces';
|
||||
import { DerivedStaking, DerivedHeartbeats } from '@polkadot/api-derive/types';
|
||||
import { DerivedStakingQuery, DerivedHeartbeats } from '@polkadot/api-derive/types';
|
||||
import { I18nProps } from '@polkadot/react-components/types';
|
||||
import { ValidatorFilter } from '../types';
|
||||
|
||||
@ -51,7 +51,7 @@ interface StakingState {
|
||||
function Address ({ address, authorsMap, className, filter, hasQueries, isElected, isFavorite, lastAuthors, myAccounts, points, recentlyOnline, t, toggleFavorite, withNominations = true }: Props): React.ReactElement<Props> | null {
|
||||
const { api } = useApi();
|
||||
// FIXME Any horrors, caused by derive type mismatches
|
||||
const stakingInfo = useCall<DerivedStaking>(api.derive.staking.info as any, [address]);
|
||||
const stakingInfo = useCall<DerivedStakingQuery>(api.derive.staking.query as any, [address]);
|
||||
const [hasActivity, setHasActivity] = useState(true);
|
||||
const [{ commission, hasNominators, isNominatorMe, nominators, stashId, stakeOwn, stakeOther, validatorPayment }, setStakingState] = useState<StakingState>({
|
||||
hasNominators: false,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
import { DerivedStakingElected } from '@polkadot/api-derive/types';
|
||||
import { I18nProps } from '@polkadot/react-components/types';
|
||||
import { AccountId, Exposure, ValidatorPrefs, ValidatorPrefsTo196 } from '@polkadot/types/interfaces';
|
||||
import { ValidatorPrefs, ValidatorPrefsTo196 } from '@polkadot/types/interfaces';
|
||||
import { SessionRewards } from '../types';
|
||||
import { ValidatorInfo } from './types';
|
||||
|
||||
@ -32,12 +32,6 @@ interface AllInfo {
|
||||
validators: ValidatorInfo[];
|
||||
}
|
||||
|
||||
interface BaseInfo {
|
||||
accountId: AccountId;
|
||||
stakers?: Exposure;
|
||||
validatorPrefs?: ValidatorPrefs;
|
||||
}
|
||||
|
||||
function sortValidators (list: ValidatorInfo[]): ValidatorInfo[] {
|
||||
return list
|
||||
.sort((a, b): number => b.bondTotal.cmp(a.bondTotal))
|
||||
@ -91,10 +85,11 @@ function sortValidators (list: ValidatorInfo[]): ValidatorInfo[] {
|
||||
);
|
||||
}
|
||||
|
||||
function extractInfo (allAccounts: string[], amount: BN = new BN(0), baseInfo: BaseInfo[], favorites: string[], lastReward: BN): AllInfo {
|
||||
function extractInfo (allAccounts: string[], amount: BN = new BN(0), electedInfo: DerivedStakingElected, favorites: string[], lastReward: BN): AllInfo {
|
||||
let totalStaked = new BN(0);
|
||||
const perValidatorReward = lastReward.divn(electedInfo.info.length);
|
||||
const validators = sortValidators(
|
||||
baseInfo.map(({ accountId, stakers, validatorPrefs }): ValidatorInfo => {
|
||||
electedInfo.info.map(({ accountId, stakers, validatorPrefs }): ValidatorInfo => {
|
||||
const exposure = stakers || {
|
||||
total: createType(registry, 'Compact<Balance>'),
|
||||
own: createType(registry, 'Compact<Balance>'),
|
||||
@ -105,7 +100,6 @@ function extractInfo (allAccounts: string[], amount: BN = new BN(0), baseInfo: B
|
||||
};
|
||||
const bondOwn = exposure.own.unwrap();
|
||||
const bondTotal = exposure.total.unwrap();
|
||||
const perValidatorReward = lastReward.divn(baseInfo.length);
|
||||
const validatorPayment = (prefs as ValidatorPrefsTo196).validatorPayment
|
||||
? (prefs as ValidatorPrefsTo196).validatorPayment.unwrap() as BN
|
||||
: (prefs as ValidatorPrefs).commission.unwrap().mul(perValidatorReward).div(PERBILL);
|
||||
@ -150,23 +144,12 @@ function Targets ({ className, sessionRewards, t }: Props): React.ReactElement<P
|
||||
const { api } = useApi();
|
||||
const { allAccounts } = useAccounts();
|
||||
const [_amount, setAmount] = useState<BN | undefined>(new BN(1000));
|
||||
const electedInfo = useCall<DerivedStakingElected>(api.derive.staking.electedInfo, [], { isSingle: true });
|
||||
const electedInfo = useCall<DerivedStakingElected>(api.derive.staking.electedInfo, []);
|
||||
const [favorites, toggleFavorite] = useFavorites(STORE_FAVS_BASE);
|
||||
const [lastReward, setLastReward] = useState(new BN(0));
|
||||
const [baseInfo, setBaseInfo] = useState<BaseInfo[] | undefined>();
|
||||
const [{ validators, totalStaked }, setWorkable] = useState<AllInfo>({ totalStaked: new BN(0), validators: [] });
|
||||
const amount = useDebounce(_amount);
|
||||
|
||||
useEffect((): void => {
|
||||
if (electedInfo) {
|
||||
setBaseInfo(
|
||||
electedInfo.info.map(({ accountId, stakers, validatorPrefs }) => ({
|
||||
accountId, stakers, validatorPrefs
|
||||
}))
|
||||
);
|
||||
}
|
||||
}, [electedInfo]);
|
||||
|
||||
useEffect((): void => {
|
||||
if (sessionRewards && sessionRewards.length) {
|
||||
const lastRewardSession = sessionRewards.filter(({ reward }): boolean => reward.gtn(0));
|
||||
@ -180,10 +163,10 @@ function Targets ({ className, sessionRewards, t }: Props): React.ReactElement<P
|
||||
}, [sessionRewards]);
|
||||
|
||||
useEffect((): void => {
|
||||
if (baseInfo) {
|
||||
setWorkable(extractInfo(allAccounts, amount, baseInfo, favorites, lastReward));
|
||||
if (electedInfo) {
|
||||
setWorkable(extractInfo(allAccounts, amount, electedInfo, favorites, lastReward));
|
||||
}
|
||||
}, [allAccounts, amount, baseInfo, favorites, lastReward]);
|
||||
}, [allAccounts, amount, electedInfo, favorites, lastReward]);
|
||||
|
||||
return (
|
||||
<div className={className}>
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/ui-reactive#readme",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.7.5",
|
||||
"@polkadot/api": "^0.99.0-beta.6",
|
||||
"@polkadot/api": "^0.99.0-beta.7",
|
||||
"@polkadot/extension-dapp": "^0.14.0-beta.9",
|
||||
"edgeware-node-types": "^1.0.10",
|
||||
"rxjs-compat": "^6.5.3"
|
||||
|
||||
@ -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 { DerivedBalances, DerivedStaking } from '@polkadot/api-derive/types';
|
||||
import { DerivedBalances, DerivedStakingAccount } from '@polkadot/api-derive/types';
|
||||
import { ValidatorPrefsTo145 } from '@polkadot/types/interfaces';
|
||||
import { BareProps, I18nProps } from './types';
|
||||
|
||||
@ -49,7 +49,7 @@ interface Props extends BareProps, I18nProps {
|
||||
balancesAll?: DerivedBalances;
|
||||
children?: React.ReactNode;
|
||||
extraInfo?: [string, string][];
|
||||
stakingInfo?: DerivedStaking;
|
||||
stakingInfo?: DerivedStakingAccount;
|
||||
withBalance?: boolean | BalanceActiveType;
|
||||
withBalanceToggle?: false;
|
||||
withExtended?: boolean | CryptoActiveType;
|
||||
@ -112,7 +112,7 @@ function skipStakingIf ({ stakingInfo, withBalance = true, withRewardDestination
|
||||
}
|
||||
|
||||
// calculates the bonded, first being the own, the second being nominated
|
||||
function calcBonded (stakingInfo?: DerivedStaking, bonded?: boolean | BN[]): [BN, BN[]] {
|
||||
function calcBonded (stakingInfo?: DerivedStakingAccount, bonded?: boolean | BN[]): [BN, BN[]] {
|
||||
let other: BN[] = [];
|
||||
let own = new BN(0);
|
||||
|
||||
@ -494,7 +494,7 @@ export default withMulti(
|
||||
propName: 'balancesAll',
|
||||
skipIf: skipBalancesIf
|
||||
}],
|
||||
['derive.staking.info', {
|
||||
['derive.staking.account', {
|
||||
paramName: 'address',
|
||||
propName: 'stakingInfo',
|
||||
skipIf: skipStakingIf
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
// This software may be modified and distributed under the terms
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
import { DeriveAccountInfo, DerivedStaking } from '@polkadot/api-derive/types';
|
||||
import { DeriveAccountInfo, DerivedStakingAccount } from '@polkadot/api-derive/types';
|
||||
import { ApiProps } from '@polkadot/react-api/types';
|
||||
import { I18nProps } from '@polkadot/react-components/types';
|
||||
import { AccountId, AccountIndex, Address } from '@polkadot/types/interfaces';
|
||||
@ -32,7 +32,7 @@ export interface Props extends I18nProps, RowProps {
|
||||
accounts_info?: DeriveAccountInfo;
|
||||
noDefaultNameOpacity?: boolean;
|
||||
overlay?: React.ReactNode;
|
||||
stakingInfo?: DerivedStaking;
|
||||
stakingInfo?: DerivedStakingAccount;
|
||||
value: AccountId | AccountIndex | Address | string | null;
|
||||
withAddressOrName?: boolean;
|
||||
withBalance?: boolean | BalanceActiveType;
|
||||
|
||||
@ -1,75 +0,0 @@
|
||||
// Copyright 2017-2019 @polkadot/app-staking 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 { DerivedStakingOnlineStatus } from '@polkadot/api-derive/types';
|
||||
import { I18nProps } from './types';
|
||||
|
||||
import BN from 'bn.js';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { formatNumber } from '@polkadot/util';
|
||||
|
||||
import Badge from './Badge';
|
||||
import Icon from './Icon';
|
||||
|
||||
import translate from './translate';
|
||||
|
||||
interface Props extends I18nProps {
|
||||
isTooltip?: boolean;
|
||||
value: DerivedStakingOnlineStatus;
|
||||
}
|
||||
|
||||
function OnlineStatus ({ className, value, isTooltip = false, t }: Props): React.ReactElement<Props> | null {
|
||||
const [{ hover, info, type }, setType] = useState<{ hover: React.ReactNode; info: React.ReactNode; type: 'online' | 'offline' | null }>({ hover: '', info: '', type: null });
|
||||
|
||||
useEffect((): void => {
|
||||
const { online, offline } = value;
|
||||
let hover: React.ReactNode = '';
|
||||
let info: React.ReactNode = '';
|
||||
let type: 'online' | 'offline' | null = null;
|
||||
|
||||
if (offline) {
|
||||
const count = offline.reduce((total, { count }): BN => total.add(count), new BN(0));
|
||||
const blockNumbers = offline.map(({ blockNumber }): string => `#${formatNumber(blockNumber)}`);
|
||||
|
||||
info = count.toString();
|
||||
hover = t('Reported offline {{count}} times, last at {{blockNumber}}', {
|
||||
replace: {
|
||||
count,
|
||||
blockNumber: blockNumbers[blockNumbers.length - 1]
|
||||
}
|
||||
});
|
||||
type = 'offline';
|
||||
} else if (online && online.isOnline) {
|
||||
const blockNumber = value.online ? value.online.blockNumber : null;
|
||||
|
||||
info = <Icon name='check' />;
|
||||
hover = blockNumber
|
||||
? t('Reported online at #{{blockNumber}}', {
|
||||
replace: {
|
||||
blockNumber: formatNumber(blockNumber)
|
||||
}
|
||||
})
|
||||
: t('Reported online in the current session');
|
||||
type = 'online';
|
||||
}
|
||||
|
||||
setType({ hover, info, type });
|
||||
}, [value]);
|
||||
|
||||
if (!type) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<Badge
|
||||
className={`ui--OnlineStatus ${className}`}
|
||||
hover={hover}
|
||||
info={info}
|
||||
isTooltip={isTooltip}
|
||||
type={type}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export default translate(OnlineStatus);
|
||||
@ -67,7 +67,6 @@ export { default as Password } from './Password';
|
||||
export { default as Popup } from './Popup';
|
||||
export { default as Progress } from './Progress';
|
||||
export { default as ProposedAction } from './ProposedAction';
|
||||
export { default as OnlineStatus } from './OnlineStatus';
|
||||
export { default as Row } from './Row';
|
||||
export { default as Static } from './Static';
|
||||
export { default as Status, StatusContext } from './Status';
|
||||
|
||||
92
yarn.lock
92
yarn.lock
@ -2044,35 +2044,35 @@
|
||||
dependencies:
|
||||
"@types/node" ">= 8"
|
||||
|
||||
"@polkadot/api-contract@^0.99.0-beta.6":
|
||||
version "0.99.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-0.99.0-beta.6.tgz#a90e8206c18e27013c4411122f523ef8cb17019e"
|
||||
integrity sha512-jgijvl7vAtHWCWrOKW2rlNTiQihJgvkDPLxEuORV3qcfE9kUwFDFKkDeh9cGhyXXEZZsuXwIwIDuMtZNlLJ92w==
|
||||
"@polkadot/api-contract@^0.99.0-beta.7":
|
||||
version "0.99.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-0.99.0-beta.7.tgz#86c46d87af1094312dc92d3b3aa26ace69196fcf"
|
||||
integrity sha512-88Etd3F7erP0rLoO3vnUYiDO3uZTeCo4pswGhnDpRzkmRMp/LiyvHzmIJjFsY6nOU4nFVVQ1gSA5xvvzfxEczg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
"@polkadot/types" "^0.99.0-beta.6"
|
||||
"@polkadot/types" "^0.99.0-beta.7"
|
||||
|
||||
"@polkadot/api-derive@^0.99.0-beta.6":
|
||||
version "0.99.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.99.0-beta.6.tgz#901dfa6703d515e5121b0749cf18cdbf58316499"
|
||||
integrity sha512-kQzqVH1qRrhU1a3/QNg8m/VJDMcuYmJhPX73NwFS9JnrE4L4wyHrxhJ3B5+viAdA8QI8I0MF+idOIbJ4rkIVfw==
|
||||
"@polkadot/api-derive@^0.99.0-beta.7":
|
||||
version "0.99.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.99.0-beta.7.tgz#90fb3172f665f4e9253d9f209cc5acbb03341b6a"
|
||||
integrity sha512-RdRGOzy3VUY1Bt0XeGSH4l4MgXTlokgtBANlL4BkCYKqpk9VTzOIgTr9km8rveDU+S4EoqT7nL/YuQikm/buGA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
"@polkadot/api" "^0.99.0-beta.6"
|
||||
"@polkadot/types" "^0.99.0-beta.6"
|
||||
"@polkadot/api" "^0.99.0-beta.7"
|
||||
"@polkadot/types" "^0.99.0-beta.7"
|
||||
|
||||
"@polkadot/api@^0.99.0-beta.6":
|
||||
version "0.99.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.99.0-beta.6.tgz#29f91a48a456a5ff27798a028eab4105ff9fec12"
|
||||
integrity sha512-mzzdj4/dJgm/8nq7n8tok3qiC56uBFMoTyJ7GVsOAQWaPso0RflOJHbF9quQZIzxn6adaXV2LnuxWpKuKolCzw==
|
||||
"@polkadot/api@^0.99.0-beta.7":
|
||||
version "0.99.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.99.0-beta.7.tgz#2ea03b2e27d28cbb6af5cca45c226b0db63c685b"
|
||||
integrity sha512-y7lDN4YqAxTwmBlynBWQKBJJVaUPc9cWZyjfLMYY3cp4KcvAxtuAFKmxON4pdGfNdo4bAPvTJZGoEy9oWOJ6Kw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
"@polkadot/api-derive" "^0.99.0-beta.6"
|
||||
"@polkadot/api-derive" "^0.99.0-beta.7"
|
||||
"@polkadot/keyring" "^1.7.1"
|
||||
"@polkadot/metadata" "^0.99.0-beta.6"
|
||||
"@polkadot/rpc-core" "^0.99.0-beta.6"
|
||||
"@polkadot/rpc-provider" "^0.99.0-beta.6"
|
||||
"@polkadot/types" "^0.99.0-beta.6"
|
||||
"@polkadot/metadata" "^0.99.0-beta.7"
|
||||
"@polkadot/rpc-core" "^0.99.0-beta.7"
|
||||
"@polkadot/rpc-provider" "^0.99.0-beta.7"
|
||||
"@polkadot/types" "^0.99.0-beta.7"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
|
||||
"@polkadot/dev-react@^0.32.0-beta.17":
|
||||
@ -2177,10 +2177,10 @@
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
|
||||
"@polkadot/jsonrpc@^0.99.0-beta.6":
|
||||
version "0.99.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.99.0-beta.6.tgz#397ee6c6d7b0e0a3e1447c613fde2fe48786c241"
|
||||
integrity sha512-a/jyvDlEHjWYhVhJyEB+o+ZZd/iNmV6GRImxsaG55kDG9+4fzAN+4xxWHSfPDBi1YHflV7oO4jpcbJeI5QGCaQ==
|
||||
"@polkadot/jsonrpc@^0.99.0-beta.7":
|
||||
version "0.99.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.99.0-beta.7.tgz#31599ae85fa0288bed669c648e4d034c73344be2"
|
||||
integrity sha512-yVPv9/o5AYPbKYSmjuSybCSclBKgc+yGjRHBBZpFXk8ZNLWXeXbpfBIHsW51MMCbrfF2wz/dg1KuZH10/jlJYw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
|
||||
@ -2193,13 +2193,13 @@
|
||||
"@polkadot/util" "^1.7.1"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
|
||||
"@polkadot/metadata@^0.99.0-beta.6":
|
||||
version "0.99.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-0.99.0-beta.6.tgz#4449d636fd99adb6c78f195602e84ba607ad72c8"
|
||||
integrity sha512-zBW4C4OwQyPrJjbv7gUwMYMcrBr6GAEi7eDrxRE9K0s6IvbBONQ+d4MZM9deeIf/0PavYowJ0UqRRnrFuUa3Vg==
|
||||
"@polkadot/metadata@^0.99.0-beta.7":
|
||||
version "0.99.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-0.99.0-beta.7.tgz#02e6c469b42b57aeebf404ddbe3f2b0aaabefb29"
|
||||
integrity sha512-2ONCv+Qv/0yG61j3zsVgj9vibUbO6cEUp7XS37QOMvr2n3M4Mn4lrqIQkizkgh81aUQf4p9zL4kFMF3dYphc6Q==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
"@polkadot/types" "^0.99.0-beta.6"
|
||||
"@polkadot/types" "^0.99.0-beta.7"
|
||||
"@polkadot/util" "^1.7.1"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
|
||||
@ -2228,25 +2228,25 @@
|
||||
qrcode-generator "^1.4.4"
|
||||
react-qr-reader "^2.2.1"
|
||||
|
||||
"@polkadot/rpc-core@^0.99.0-beta.6":
|
||||
version "0.99.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.99.0-beta.6.tgz#2659433bd8dc899f9f3d327d9c623409ed6a8010"
|
||||
integrity sha512-qS0HG+2pQM45oI3nQL3V/ZZUG/nlrnGMX+OTOvG8MYAuEhgHj9AuqJBhP9UQA5E0ZqeAub6Cr9gOPCUbQPiDOQ==
|
||||
"@polkadot/rpc-core@^0.99.0-beta.7":
|
||||
version "0.99.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.99.0-beta.7.tgz#245e40be36b2b98ebb7a3052e0613741559a668f"
|
||||
integrity sha512-l8o9NLuSSMlbg0mSl9kQ4ouRwOdgk4XDs77srkAk6vApmVT1B2UBhPitOHzrbsvS3INCIpzH086la4U7daiPQw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
"@polkadot/jsonrpc" "^0.99.0-beta.6"
|
||||
"@polkadot/rpc-provider" "^0.99.0-beta.6"
|
||||
"@polkadot/types" "^0.99.0-beta.6"
|
||||
"@polkadot/jsonrpc" "^0.99.0-beta.7"
|
||||
"@polkadot/rpc-provider" "^0.99.0-beta.7"
|
||||
"@polkadot/types" "^0.99.0-beta.7"
|
||||
"@polkadot/util" "^1.7.1"
|
||||
rxjs "^6.5.3"
|
||||
|
||||
"@polkadot/rpc-provider@^0.99.0-beta.6":
|
||||
version "0.99.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.99.0-beta.6.tgz#a1a321cbc4b6fcb166299432d840cf9e87dc3405"
|
||||
integrity sha512-4embwXT6bqI3E5FIX281jgHgSfdjNWt/xNnP3UT5eFwExMEOKA9pux80S33mab/lWsWfBuJO81xV4V4nmdV10w==
|
||||
"@polkadot/rpc-provider@^0.99.0-beta.7":
|
||||
version "0.99.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.99.0-beta.7.tgz#c4f533dfeaa782672ffd2425797c86ec72945de2"
|
||||
integrity sha512-266vHWCvVLs3zIHGAqlGp026CMGrHD/FKfHeLDpMPm9Qx/MyGWlm5f89+B6hlrD/RzNy/Hx2r46BGN+zgtp3yw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
"@polkadot/metadata" "^0.99.0-beta.6"
|
||||
"@polkadot/metadata" "^0.99.0-beta.7"
|
||||
"@polkadot/util" "^1.7.1"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
eventemitter3 "^4.0.0"
|
||||
@ -2260,13 +2260,13 @@
|
||||
dependencies:
|
||||
"@types/chrome" "^0.0.91"
|
||||
|
||||
"@polkadot/types@^0.99.0-beta.6":
|
||||
version "0.99.0-beta.6"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.99.0-beta.6.tgz#9775620c61cfea9ab073469f5134ad340cc6cc31"
|
||||
integrity sha512-kboJSre60o37nJuceXe+sxqjuhrYbFXltseN8+aSJS6FxRorBzMhB7zRmK4U8PltE5fhorXeavlmndXLnXzyug==
|
||||
"@polkadot/types@^0.99.0-beta.7":
|
||||
version "0.99.0-beta.7"
|
||||
resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.99.0-beta.7.tgz#fe8c22a39ba46b7dc384cf49342b14a7ac03cdbb"
|
||||
integrity sha512-v70tU4jomd69eRo40nXPwlElVZbk3jWa3Nzn9HJ8C/hm7sowdOlznJ1+WErjYiQynmLJkXPRXCD8+XT2JJeGPg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.5"
|
||||
"@polkadot/metadata" "^0.99.0-beta.6"
|
||||
"@polkadot/metadata" "^0.99.0-beta.7"
|
||||
"@polkadot/util" "^1.7.1"
|
||||
"@polkadot/util-crypto" "^1.7.1"
|
||||
"@types/memoizee" "^0.4.3"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user