More effcicient derive for staking info (#2017)

This commit is contained in:
Jaco Greeff 2019-12-09 11:37:39 +01:00 committed by GitHub
parent 5b155bd65b
commit e9a45f8dde
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 75 additions and 177 deletions

View File

@ -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",

View File

@ -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"
}
}

View File

@ -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' }]
)
);

View File

@ -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,

View File

@ -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}>

View File

@ -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"

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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';

View File

@ -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"