From f0bf8efcf4c81f935d817b08fb7f81219dda09e7 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sun, 29 Nov 2020 16:54:35 +0100 Subject: [PATCH] Ensure identity filter applies to all targets (#4100) * Ensure identity filter applies to all targets * Name filter removes flags * Revert * Apply query filters to override toggles --- package.json | 6 +- packages/page-contracts/package.json | 2 +- packages/page-staking/src/Filtering.tsx | 13 +- .../page-staking/src/Overview/CurrentList.tsx | 6 +- .../page-staking/src/Targets/Validator.tsx | 51 +------ packages/page-staking/src/Targets/index.tsx | 95 +++++++++---- packages/page-staking/src/types.ts | 2 - packages/page-staking/src/useSortedTargets.ts | 2 - packages/react-api/package.json | 4 +- packages/react-hooks/src/types.ts | 1 + packages/react-hooks/src/useCall.ts | 6 +- yarn.lock | 126 +++++++++--------- 12 files changed, 158 insertions(+), 156 deletions(-) diff --git a/package.json b/package.json index b2007fcf6d..123adeb432 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,11 @@ "packages/*" ], "resolutions": { - "@polkadot/api": "^2.8.3-2", - "@polkadot/api-contract": "^2.8.3-2", + "@polkadot/api": "^2.8.3-5", + "@polkadot/api-contract": "^2.8.3-5", "@polkadot/keyring": "^4.2.1", "@polkadot/networks": "^4.2.1", - "@polkadot/types": "^2.8.3-2", + "@polkadot/types": "^2.8.3-5", "@polkadot/util": "^4.2.1", "@polkadot/util-crypto": "^4.2.1", "@polkadot/wasm-crypto": "^2.0.1", diff --git a/packages/page-contracts/package.json b/packages/page-contracts/package.json index 69bbebf886..4d290584b0 100644 --- a/packages/page-contracts/package.json +++ b/packages/page-contracts/package.json @@ -10,6 +10,6 @@ "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.12.5", - "@polkadot/api-contract": "^2.8.3-2" + "@polkadot/api-contract": "^2.8.3-5" } } diff --git a/packages/page-staking/src/Filtering.tsx b/packages/page-staking/src/Filtering.tsx index 8858037c6d..c02ad29b0b 100644 --- a/packages/page-staking/src/Filtering.tsx +++ b/packages/page-staking/src/Filtering.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import queryString from 'query-string'; -import React, { useEffect } from 'react'; +import React, { useCallback, useEffect } from 'react'; import { Input, Toggle } from '@polkadot/react-components'; import { useApi } from '@polkadot/react-hooks'; import { isString } from '@polkadot/util'; @@ -13,7 +13,7 @@ interface Props { children?: React.ReactNode; className?: string; nameFilter: string; - setNameFilter: (value: string) => void; + setNameFilter: (value: string, isQuery: boolean) => void; setWithIdentity: (value: boolean) => void; withIdentity: boolean; } @@ -27,18 +27,23 @@ function Filtering ({ children, className, nameFilter, setNameFilter, setWithIde const queryFilter = queryString.parse(location.href.split('?')[1]).filter; if (isString(queryFilter)) { - setNameFilter(queryFilter); + setNameFilter(queryFilter, true); } // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + const _setNameFilter = useCallback( + (value: string) => setNameFilter(value, false), + [setNameFilter] + ); + return (
('filter by name, address or index')} - onChange={setNameFilter} + onChange={_setNameFilter} value={nameFilter} />
diff --git a/packages/page-staking/src/Overview/CurrentList.tsx b/packages/page-staking/src/Overview/CurrentList.tsx index e9a78909fc..88d01c9846 100644 --- a/packages/page-staking/src/Overview/CurrentList.tsx +++ b/packages/page-staking/src/Overview/CurrentList.tsx @@ -40,13 +40,13 @@ const EmptyAuthorsContext: React.Context = React.createContext function filterAccounts (accounts: string[] = [], elected: string[], favorites: string[], without: string[]): AccountExtend[] { return accounts - .filter((accountId): boolean => !without.includes(accountId as any)) + .filter((accountId) => !without.includes(accountId)) .map((accountId): AccountExtend => [ accountId, elected.includes(accountId), favorites.includes(accountId) ]) - .sort(([,, isFavA]: AccountExtend, [,, isFavB]: AccountExtend): number => + .sort(([,, isFavA]: AccountExtend, [,, isFavB]: AccountExtend) => isFavA === isFavB ? 0 : (isFavA ? -1 : 1) @@ -54,7 +54,7 @@ function filterAccounts (accounts: string[] = [], elected: string[], favorites: } function accountsToString (accounts: AccountId[]): string[] { - return accounts.map((accountId): string => accountId.toString()); + return accounts.map((accountId) => accountId.toString()); } function getFiltered (stakingOverview: DeriveStakingOverview, favorites: string[], next?: string[]): Filtered { diff --git a/packages/page-staking/src/Targets/Validator.tsx b/packages/page-staking/src/Targets/Validator.tsx index 6bdfbd2646..66499c5e38 100644 --- a/packages/page-staking/src/Targets/Validator.tsx +++ b/packages/page-staking/src/Targets/Validator.tsx @@ -6,14 +6,12 @@ import type { UnappliedSlash } from '@polkadot/types/interfaces'; import type { ValidatorInfo } from '../types'; import BN from 'bn.js'; -import React, { useCallback, useEffect, useMemo } from 'react'; -import { ApiPromise } from '@polkadot/api'; +import React, { useCallback, useMemo } from 'react'; import { AddressSmall, Badge, Checkbox, Icon } from '@polkadot/react-components'; import { checkVisibility } from '@polkadot/react-components/util'; import { FormatBalance } from '@polkadot/react-query'; import { useApi, useCall } from '@polkadot/react-hooks'; import { formatNumber } from '@polkadot/util'; -import keyring from '@polkadot/ui-keyring'; import MaxBadge from '../MaxBadge'; import Favorite from '../Overview/Address/Favorite'; @@ -28,55 +26,18 @@ interface Props { isSelected: boolean; toggleFavorite: (accountId: string) => void; toggleSelected: (accountId: string) => void; - withIdentity: boolean; } -function checkIdentity (api: ApiPromise, accountInfo: DeriveAccountInfo): [boolean, string | null] { - let hasIdentity = false; - let parentId: string | null = null; - - const { accountId, identity, nickname } = accountInfo; - - if (accountId) { - parentId = accountId.toString(); - } - - if (api.query.identity && api.query.identity.identityOf) { - hasIdentity = !!(identity?.display && identity.display.toString()); - - if (identity.parent) { - parentId = identity.parent.toString(); - } - } else if (nickname) { - hasIdentity = !!nickname.toString(); - } - - if (!hasIdentity && accountId) { - const account = keyring.getAddress(accountId.toString()); - - hasIdentity = !!account?.meta?.name; - } - - return [hasIdentity, parentId]; -} - -function Validator ({ allSlashes, canSelect, filterName, info, isNominated, isSelected, toggleFavorite, toggleSelected, withIdentity }: Props): React.ReactElement | null { +function Validator ({ allSlashes, canSelect, filterName, info, isNominated, isSelected, toggleFavorite, toggleSelected }: Props): React.ReactElement | null { const { t } = useTranslation(); const { api } = useApi(); const accountInfo = useCall(api.derive.accounts.info, [info.accountId]); - useEffect((): void => { - if (accountInfo) { - const [hasIdentity, parentId] = checkIdentity(api, accountInfo); - - info.hasIdentity = hasIdentity; - info.parentId = parentId; - } - }, [api, accountInfo, info]); - const isVisible = useMemo( - () => accountInfo ? checkVisibility(api, info.key, accountInfo, filterName, withIdentity) : true, - [accountInfo, api, filterName, info, withIdentity] + () => accountInfo + ? checkVisibility(api, info.key, accountInfo, filterName) + : true, + [accountInfo, api, filterName, info] ); const slashes = useMemo( diff --git a/packages/page-staking/src/Targets/index.tsx b/packages/page-staking/src/Targets/index.tsx index e0e00b5486..411a44db18 100644 --- a/packages/page-staking/src/Targets/index.tsx +++ b/packages/page-staking/src/Targets/index.tsx @@ -1,7 +1,7 @@ // Copyright 2017-2020 @polkadot/app-staking authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { DeriveStakingOverview } from '@polkadot/api-derive/types'; +import type { DeriveStakingOverview, DeriveHasIdentity } from '@polkadot/api-derive/types'; import type { StakerState } from '@polkadot/react-hooks/types'; import type { SortedTargets, TargetSortBy, ValidatorInfo } from '../types'; @@ -9,7 +9,7 @@ import BN from 'bn.js'; import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import styled from 'styled-components'; import { Button, Icon, Table, Toggle } from '@polkadot/react-components'; -import { useApi, useAvailableSlashes } from '@polkadot/react-hooks'; +import { useApi, useAvailableSlashes, useCall } from '@polkadot/react-hooks'; import ElectionBanner from '../ElectionBanner'; import Filtering from '../Filtering'; @@ -51,13 +51,38 @@ const CLASSES: Record = { const MAX_COMM_FILTER = 20; const SORT_KEYS = ['rankNumNominators', 'rankComm', 'rankBondTotal', 'rankBondOwn', 'rankBondOther', 'rankOverall']; -function isIncluded ({ commissionPer, hasIdentity, isElected, isFavorite, numNominators }: ValidatorInfo, { maxPaid, withElected, withIdentity, withoutComm, withoutOver }: Flags): boolean { - return isFavorite || ( - (!withIdentity || hasIdentity) && - (!withElected || isElected) && - (!withoutComm || commissionPer < MAX_COMM_FILTER) && - (!withoutOver || !maxPaid || maxPaid.gtn(numNominators)) - ); +function filterValidators (validators: ValidatorInfo[], allIdentity: Record, { maxPaid, withElected, withGroup, withIdentity, withoutComm, withoutOver }: Flags): ValidatorInfo[] { + const parentIds: string[] = []; + + return validators.filter(({ accountId, commissionPer, isElected, isFavorite, numNominators }): boolean => { + if (isFavorite) { + return true; + } + + const stashId = accountId.toString(); + const thisIdentity = allIdentity[stashId]; + + if ( + (!withIdentity || !!thisIdentity?.hasIdentity) && + (!withElected || isElected) && + (!withoutComm || (commissionPer < MAX_COMM_FILTER)) && + (!withoutOver || !maxPaid || maxPaid.gtn(numNominators)) + ) { + if (!withGroup || !thisIdentity || !thisIdentity.parentId) { + if (!parentIds.includes(stashId)) { + parentIds.push(stashId); + + return true; + } + } else if (!parentIds.includes(thisIdentity.parentId)) { + parentIds.push(thisIdentity.parentId); + + return true; + } + } + + return false; + }); } function sort (sortBy: TargetSortBy, sortFromMax: boolean, validators: ValidatorInfo[]): ValidatorInfo[] { @@ -84,33 +109,35 @@ function extractNominees (ownNominators: StakerState[] = []): string[] { return myNominees; } -function selectProfitable (list: ValidatorInfo[], flags: Flags): string[] { - const parentIds: string[] = []; +function transformIdentity ([[validatorIds], hasIdentities]: [[string[]], DeriveHasIdentity[]]): Record { + return validatorIds.reduce((result: Record, validatorId, index): Record => { + result[validatorId] = hasIdentities[index]; + + return result; + }, {}); +} + +function selectProfitable (list: ValidatorInfo[]): string[] { const result: string[] = []; - const { withGroup } = flags; for (let i = 0; i < list.length && result.length < MAX_NOMINATIONS; i++) { - const { isFavorite, key, parentId, stakedReturnCmp } = list[i]; + const { isFavorite, key, stakedReturnCmp } = list[i]; - if (isFavorite || ( - (stakedReturnCmp > 0) && - (!withGroup || !parentId || !parentIds.includes(parentId)) - )) { + if (isFavorite || (stakedReturnCmp > 0)) { result.push(key); - parentId && parentIds.push(parentId); } } return result; } -function Targets ({ className = '', isInElection, ownStashes, targets: { avgStaked, inflation: { stakedReturn }, lastReward, lowStaked, nominators, totalIssuance, totalStaked, validators }, toggleFavorite }: Props): React.ReactElement { +function Targets ({ className = '', isInElection, ownStashes, targets: { avgStaked, inflation: { stakedReturn }, lastReward, lowStaked, nominators, totalIssuance, totalStaked, validatorIds = [], validators }, toggleFavorite }: Props): React.ReactElement { const { t } = useTranslation(); const { api } = useApi(); const allSlashes = useAvailableSlashes(); const ownNominators = useOwnNominators(ownStashes); const [selected, setSelected] = useState([]); - const [nameFilter, setNameFilter] = useState(''); + const [{ isQueryFiltered, nameFilter }, setNameFilter] = useState({ isQueryFiltered: false, nameFilter: '' }); const [withElected, setWithElected] = useState(false); const [withGroup, setWithGroup] = useState(true); const [withIdentity, setWithIdentity] = useState(false); @@ -118,6 +145,7 @@ function Targets ({ className = '', isInElection, ownStashes, targets: { avgStak const [withoutOver, setWithoutOver] = useState(true); const [{ sortBy, sortFromMax }, setSortBy] = useState({ sortBy: 'rankOverall', sortFromMax: true }); const [sorted, setSorted] = useState(); + const allIdentity = useCall>(api.derive.accounts.hasIdentityMulti, [validatorIds], { transform: transformIdentity, withParamsTransform: true }); const labelsRef = useRef({ rankBondOther: t('other stake'), @@ -130,6 +158,7 @@ function Targets ({ className = '', isInElection, ownStashes, targets: { avgStak const flags = useMemo( () => ({ + isQueryFiltered, maxPaid: api.consts.staking?.maxNominatorRewardedPerValidator, withElected, withGroup, @@ -137,12 +166,12 @@ function Targets ({ className = '', isInElection, ownStashes, targets: { avgStak withoutComm, withoutOver }), - [api, withElected, withGroup, withIdentity, withoutComm, withoutOver] + [api, isQueryFiltered, withElected, withGroup, withIdentity, withoutComm, withoutOver] ); const filtered = useMemo( - () => validators && validators.filter((info) => isIncluded(info, flags)), - [flags, validators] + () => allIdentity && validators && filterValidators(validators, allIdentity, flags), + [allIdentity, flags, validators] ); // We are using an effect here to get this async. Sorting will have a double-render, however it allows @@ -180,9 +209,14 @@ function Targets ({ className = '', isInElection, ownStashes, targets: { avgStak const _selectProfitable = useCallback( () => filtered && setSelected( - selectProfitable(filtered, flags) + selectProfitable(filtered) ), - [filtered, flags] + [filtered] + ); + + const _setNameFilter = useCallback( + (nameFilter: string, isQueryFiltered: boolean) => setNameFilter({ isQueryFiltered, nameFilter }), + [] ); const header = useMemo(() => [ @@ -201,7 +235,7 @@ function Targets ({ className = '', isInElection, ownStashes, targets: { avgStak
@@ -231,7 +265,11 @@ function Targets ({ className = '', isInElection, ownStashes, targets: { avgStak />
- ), [nameFilter, t, withElected, withGroup, withIdentity, withoutComm, withoutOver]); + ), [nameFilter, _setNameFilter, t, withElected, withGroup, withIdentity, withoutComm, withoutOver]); + + const displayList = isQueryFiltered + ? validators + : sorted; return (
@@ -265,7 +303,7 @@ function Targets ({ className = '', isInElection, ownStashes, targets: { avgStak header={header} legend={} > - {sorted?.map((info): React.ReactNode => + {displayList?.map((info): React.ReactNode => )} diff --git a/packages/page-staking/src/types.ts b/packages/page-staking/src/types.ts index e82d03510d..e8362acc80 100644 --- a/packages/page-staking/src/types.ts +++ b/packages/page-staking/src/types.ts @@ -47,7 +47,6 @@ export interface ValidatorInfo extends ValidatorInfoRank { bondTotal: Balance; commissionPer: number; exposure: Exposure; - hasIdentity: boolean; isActive: boolean; isCommission: boolean; isElected: boolean; @@ -55,7 +54,6 @@ export interface ValidatorInfo extends ValidatorInfoRank { isNominating: boolean; key: string; numNominators: number; - parentId: string | null; rewardSplit: BN; skipRewards: boolean; stakedReturn: number; diff --git a/packages/page-staking/src/useSortedTargets.ts b/packages/page-staking/src/useSortedTargets.ts index 624a9b2726..12bdbae3b2 100644 --- a/packages/page-staking/src/useSortedTargets.ts +++ b/packages/page-staking/src/useSortedTargets.ts @@ -112,7 +112,6 @@ function extractSingle (allAccounts: string[], derive: DeriveStakingElected | De bondTotal, commissionPer: ((validatorPrefs.commission?.unwrap() || BN_ZERO).toNumber() / 10_000_000), exposure, - hasIdentity: false, isActive: !skipRewards, isCommission: !!validatorPrefs.commission, isElected, @@ -120,7 +119,6 @@ function extractSingle (allAccounts: string[], derive: DeriveStakingElected | De isNominating, key, numNominators: (exposure.others || []).length, - parentId: null, rankBondOther: 0, rankBondOwn: 0, rankBondTotal: 0, diff --git a/packages/react-api/package.json b/packages/react-api/package.json index eaf306e839..7ff686f47a 100644 --- a/packages/react-api/package.json +++ b/packages/react-api/package.json @@ -20,8 +20,8 @@ "homepage": "https://github.com/polkadot-js/apps/tree/master/packages/react-api#readme", "dependencies": { "@babel/runtime": "^7.12.5", - "@polkadot/api": "^2.8.3-2", - "@polkadot/extension-dapp": "^0.35.0-beta.56", + "@polkadot/api": "^2.8.3-5", + "@polkadot/extension-dapp": "^0.35.0-beta.57", "rxjs-compat": "^6.6.3" } } diff --git a/packages/react-hooks/src/types.ts b/packages/react-hooks/src/types.ts index 565bdd9271..bc5d4eee34 100644 --- a/packages/react-hooks/src/types.ts +++ b/packages/react-hooks/src/types.ts @@ -18,6 +18,7 @@ export interface CallOptions { paramMap?: (params: any) => CallParams; transform?: (value: any) => T; withParams?: boolean; + withParamsTransform?: boolean; } export type TxDef = [string, any[] | ConstructTxFn]; diff --git a/packages/react-hooks/src/useCall.ts b/packages/react-hooks/src/useCall.ts index 0691354d75..94330b79df 100644 --- a/packages/react-hooks/src/useCall.ts +++ b/packages/react-hooks/src/useCall.ts @@ -58,7 +58,7 @@ function unsubscribe (tracker: TrackerRef): void { } // subscribe, trying to play nice with the browser threads -function subscribe (mountedRef: MountedRef, tracker: TrackerRef, fn: TrackFn | undefined, params: CallParams, setValue: (value: T) => void, { isSingle, transform = transformIdentity, withParams }: CallOptions = {}): void { +function subscribe (mountedRef: MountedRef, tracker: TrackerRef, fn: TrackFn | undefined, params: CallParams, setValue: (value: T) => void, { isSingle, transform = transformIdentity, withParams, withParamsTransform }: CallOptions = {}): void { const validParams = params.filter((p) => !isUndefined(p)); unsubscribe(tracker); @@ -79,7 +79,9 @@ function subscribe (mountedRef: MountedRef, tracker: TrackerRef, fn: TrackFn mountedRef.current && tracker.current.isActive && setValue( withParams ? [params, transform(value)] as any - : transform(value) + : withParamsTransform + ? transform([params, value]) + : transform(value) ); } }); diff --git a/yarn.lock b/yarn.lock index 4a0face43f..8ebc24f812 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1979,55 +1979,55 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-contract@npm:^2.8.3-2": - version: 2.8.3-2 - resolution: "@polkadot/api-contract@npm:2.8.3-2" +"@polkadot/api-contract@npm:^2.8.3-5": + version: 2.8.3-5 + resolution: "@polkadot/api-contract@npm:2.8.3-5" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/api": 2.8.3-2 - "@polkadot/types": 2.8.3-2 + "@polkadot/api": 2.8.3-5 + "@polkadot/types": 2.8.3-5 "@polkadot/util": ^4.2.1 bn.js: ^4.11.9 rxjs: ^6.6.3 - checksum: a24ee31d28f8bd6e6e3cd57284e9eb4659a0ab8327361ff2aedc2d2df9bc39eb35bc36ad519480c5cd949b658c703cc03824dffd936d0ea142c732d19d6b47bc + checksum: 5f32c3b0017a2e13db887646074eb50c1eb6a4a0a90fd207fcef2a5c608ea54daf904431b45028c6808c49abafd48659c633ecdf9e3eacaf520be146d5122653 languageName: node linkType: hard -"@polkadot/api-derive@npm:2.8.3-2": - version: 2.8.3-2 - resolution: "@polkadot/api-derive@npm:2.8.3-2" +"@polkadot/api-derive@npm:2.8.3-5": + version: 2.8.3-5 + resolution: "@polkadot/api-derive@npm:2.8.3-5" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/api": 2.8.3-2 - "@polkadot/rpc-core": 2.8.3-2 - "@polkadot/types": 2.8.3-2 + "@polkadot/api": 2.8.3-5 + "@polkadot/rpc-core": 2.8.3-5 + "@polkadot/types": 2.8.3-5 "@polkadot/util": ^4.2.1 "@polkadot/util-crypto": ^4.2.1 bn.js: ^4.11.9 memoizee: ^0.4.14 rxjs: ^6.6.3 - checksum: 48e3b43281da62ac9ee080298fe83c263e6810c0405d5ea6e097953bd30dc10314d16fae00da9c5dc6da00025c7890c8cf2825e6f04611334b420ad47a44863d + checksum: 86cff232410e4f28c82cc0de661e15f1dd67a561dc2a6287c210fdac1245f45d409f5cd546f9f824054213e7e09f55774a568548563c130b83cae00b0199dfa0 languageName: node linkType: hard -"@polkadot/api@npm:^2.8.3-2": - version: 2.8.3-2 - resolution: "@polkadot/api@npm:2.8.3-2" +"@polkadot/api@npm:^2.8.3-5": + version: 2.8.3-5 + resolution: "@polkadot/api@npm:2.8.3-5" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/api-derive": 2.8.3-2 + "@polkadot/api-derive": 2.8.3-5 "@polkadot/keyring": ^4.2.1 - "@polkadot/metadata": 2.8.3-2 - "@polkadot/rpc-core": 2.8.3-2 - "@polkadot/rpc-provider": 2.8.3-2 - "@polkadot/types": 2.8.3-2 - "@polkadot/types-known": 2.8.3-2 + "@polkadot/metadata": 2.8.3-5 + "@polkadot/rpc-core": 2.8.3-5 + "@polkadot/rpc-provider": 2.8.3-5 + "@polkadot/types": 2.8.3-5 + "@polkadot/types-known": 2.8.3-5 "@polkadot/util": ^4.2.1 "@polkadot/util-crypto": ^4.2.1 bn.js: ^4.11.9 eventemitter3: ^4.0.7 rxjs: ^6.6.3 - checksum: bca87686689d76bd68a3475039c3de26efe0c8597e07479c332ec0d53a1e746969a8ff56acd971f6ed889acb493a98fa70d81367fb9d3b86a5c5ca2dec237e4d + checksum: ac8adcd1bec1e65cad7388a54e1c7206a004336de0ae5eb3fcab3981c856eb87624f24ef54f7cc73ca780d2dbaad48b5031e6fd3e8b099bbb4ce127e388f6f71 languageName: node linkType: hard @@ -2081,7 +2081,7 @@ __metadata: resolution: "@polkadot/app-contracts@workspace:packages/page-contracts" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/api-contract": ^2.8.3-2 + "@polkadot/api-contract": ^2.8.3-5 languageName: unknown linkType: soft @@ -2425,28 +2425,28 @@ __metadata: languageName: node linkType: hard -"@polkadot/extension-dapp@npm:^0.35.0-beta.56": - version: 0.35.0-beta.56 - resolution: "@polkadot/extension-dapp@npm:0.35.0-beta.56" +"@polkadot/extension-dapp@npm:^0.35.0-beta.57": + version: 0.35.0-beta.57 + resolution: "@polkadot/extension-dapp@npm:0.35.0-beta.57" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/extension-inject": ^0.35.0-beta.56 + "@polkadot/extension-inject": ^0.35.0-beta.57 "@polkadot/util": ^4.2.1 "@polkadot/util-crypto": ^4.2.1 peerDependencies: "@polkadot/api": "*" - checksum: 72fa9e44a69729a43874fb36a1daec608dcedd37d3101a9e51337c61abde67164899992eedac24524a4989d310bcee9224f8528330411be56e98b34208655624 + checksum: 8e4236402ddbb4b8946d475445f9a6895eb23258a98f9ee1e9f7f750a2caaeaa8c29b54ce7f4a2fa7bcba59b6208732c139086c1f54bb4e153fd2a30f760231c languageName: node linkType: hard -"@polkadot/extension-inject@npm:^0.35.0-beta.56": - version: 0.35.0-beta.56 - resolution: "@polkadot/extension-inject@npm:0.35.0-beta.56" +"@polkadot/extension-inject@npm:^0.35.0-beta.57": + version: 0.35.0-beta.57 + resolution: "@polkadot/extension-inject@npm:0.35.0-beta.57" dependencies: "@babel/runtime": ^7.12.5 peerDependencies: "@polkadot/api": "*" - checksum: e5b358fd99542694b3e45b606281a1f64b905ce91133a1293f153eda2b4dc1828ab77baf00b9545e37bd289c43481cb8953f68c15f42433a499e944b33da4f10 + checksum: df9c2f77cb7dd3ee1d93a8d0328d2aae85f36c43b8bb588e4686de058452ef824363b832768cacaaf76bcdeef0d2a4e318488cc4cb9cfa5f3bae5acb81d8569a languageName: node linkType: hard @@ -2492,17 +2492,17 @@ __metadata: languageName: node linkType: hard -"@polkadot/metadata@npm:2.8.3-2": - version: 2.8.3-2 - resolution: "@polkadot/metadata@npm:2.8.3-2" +"@polkadot/metadata@npm:2.8.3-5": + version: 2.8.3-5 + resolution: "@polkadot/metadata@npm:2.8.3-5" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/types": 2.8.3-2 - "@polkadot/types-known": 2.8.3-2 + "@polkadot/types": 2.8.3-5 + "@polkadot/types-known": 2.8.3-5 "@polkadot/util": ^4.2.1 "@polkadot/util-crypto": ^4.2.1 bn.js: ^4.11.9 - checksum: 4e0e938c3b7ef4d565ebcb9d86b2db81b3862c876a07e7a1af140cdecd55131e4a3b36c04df916b2bae99c450b55af6bfa26ef2854cec605fd4f5f577f239af2 + checksum: 17805f1e7361c8ea166b698bde6b4f5c3442b8d99b8377fdd9f68d2de2aa94a160f52fb609fa0aa1184d1cd1c31a6d2b9eb75bc2bd6e1b2d8332a3cfedafbb22 languageName: node linkType: hard @@ -2520,8 +2520,8 @@ __metadata: resolution: "@polkadot/react-api@workspace:packages/react-api" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/api": ^2.8.3-2 - "@polkadot/extension-dapp": ^0.35.0-beta.56 + "@polkadot/api": ^2.8.3-5 + "@polkadot/extension-dapp": ^0.35.0-beta.57 rxjs-compat: ^6.6.3 languageName: unknown linkType: soft @@ -2652,34 +2652,34 @@ __metadata: languageName: unknown linkType: soft -"@polkadot/rpc-core@npm:2.8.3-2": - version: 2.8.3-2 - resolution: "@polkadot/rpc-core@npm:2.8.3-2" +"@polkadot/rpc-core@npm:2.8.3-5": + version: 2.8.3-5 + resolution: "@polkadot/rpc-core@npm:2.8.3-5" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/metadata": 2.8.3-2 - "@polkadot/rpc-provider": 2.8.3-2 - "@polkadot/types": 2.8.3-2 + "@polkadot/metadata": 2.8.3-5 + "@polkadot/rpc-provider": 2.8.3-5 + "@polkadot/types": 2.8.3-5 "@polkadot/util": ^4.2.1 memoizee: ^0.4.14 rxjs: ^6.6.3 - checksum: 7ece351a72eb06e20f419c7b2544cafa2024ba978019a64da4c608ca05e31f8d7fede9e9c299b2ea4e7029330fb6033a697e56a26cb8939f1745f0acfe7a25a2 + checksum: a2824a5962bf8eece920eb0490761b5030e39b312b13dd1a6f476c99e361ab6b6f12ebbc7cff646c762d3d18b73847210530d242d8de5c944fe92ef522419b3d languageName: node linkType: hard -"@polkadot/rpc-provider@npm:2.8.3-2": - version: 2.8.3-2 - resolution: "@polkadot/rpc-provider@npm:2.8.3-2" +"@polkadot/rpc-provider@npm:2.8.3-5": + version: 2.8.3-5 + resolution: "@polkadot/rpc-provider@npm:2.8.3-5" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/types": 2.8.3-2 + "@polkadot/types": 2.8.3-5 "@polkadot/util": ^4.2.1 "@polkadot/util-crypto": ^4.2.1 "@polkadot/x-fetch": ^4.2.1 "@polkadot/x-ws": ^4.2.1 bn.js: ^4.11.9 eventemitter3: ^4.0.7 - checksum: bfc0fd7239b0921636e58a4785f3c7cd671d6143d9ef98728d39c2019f34d3a1d1645e36bdba23b9b45e3e167d0fbf010198a2f91ce7a01f95ba7c8a8ab94390 + checksum: f3aba96199f7f6ef59914d636481e10d19652cc02b52400a1712c97986d6e7100a020b4a7a7594a42d0e35ebedd47eaa852930071c6e400e59714ebae40700e8 languageName: node linkType: hard @@ -2692,31 +2692,31 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-known@npm:2.8.3-2": - version: 2.8.3-2 - resolution: "@polkadot/types-known@npm:2.8.3-2" +"@polkadot/types-known@npm:2.8.3-5": + version: 2.8.3-5 + resolution: "@polkadot/types-known@npm:2.8.3-5" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/types": 2.8.3-2 + "@polkadot/types": 2.8.3-5 "@polkadot/util": ^4.2.1 bn.js: ^4.11.9 - checksum: fe2775a542a82af3b1139041b2e42965708c2d61a82cb6bf5a6b134642a332a85b49811eef39d4e3b3f7b4a733e870173801d628cc0e627bb828d828ed0be348 + checksum: b5c774b0b8d8340e093605a9eac99c96992ff8cb826f745d71eb338d5902cf93a0e37f447f4aa8d9e3d7fa7275a8e856f72439abdfac03393e8a329f20855de5 languageName: node linkType: hard -"@polkadot/types@npm:^2.8.3-2": - version: 2.8.3-2 - resolution: "@polkadot/types@npm:2.8.3-2" +"@polkadot/types@npm:^2.8.3-5": + version: 2.8.3-5 + resolution: "@polkadot/types@npm:2.8.3-5" dependencies: "@babel/runtime": ^7.12.5 - "@polkadot/metadata": 2.8.3-2 + "@polkadot/metadata": 2.8.3-5 "@polkadot/util": ^4.2.1 "@polkadot/util-crypto": ^4.2.1 "@types/bn.js": ^4.11.6 bn.js: ^4.11.9 memoizee: ^0.4.14 rxjs: ^6.6.3 - checksum: 5094fd7a776e814a012bdfefb2e72371873e9433bd863b7d1a032250c00cc3454b94900a8aca0ff5fa338ac908b131183a68052f9739ecee98afcf1ae0e96387 + checksum: c75100feca572b7b92daad9fd8a269417bf54aa343f588aed4322823566074cbb9e7b338303e2fc61cb4317afdf6a8c797692a941543d15c6bf1d2b80cf88b3c languageName: node linkType: hard