From eb3c76f041685a9dccd7354ef896cb7eb495c304 Mon Sep 17 00:00:00 2001 From: Theophile Sandoz Date: Mon, 15 Jan 2024 14:42:00 +0100 Subject: [PATCH] Don't encode the addresses --- .../providers/useValidatorsWithDetails.ts | 26 +++++++++---------- packages/ui/src/validators/providers/utils.ts | 6 +++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/ui/src/validators/providers/useValidatorsWithDetails.ts b/packages/ui/src/validators/providers/useValidatorsWithDetails.ts index ecb0a975f5..91cd254aa9 100644 --- a/packages/ui/src/validators/providers/useValidatorsWithDetails.ts +++ b/packages/ui/src/validators/providers/useValidatorsWithDetails.ts @@ -1,7 +1,6 @@ import { useMemo, useState } from 'react' import { combineLatest, map, Observable, of, ReplaySubject, share, switchMap, take } from 'rxjs' -import { encodeAddress } from '@/accounts/model/encodeAddress' import { useApi } from '@/api/hooks/useApi' import { BN_ZERO } from '@/common/constants' import { useObservable } from '@/common/hooks/useObservable' @@ -86,7 +85,6 @@ export const useValidatorsWithDetails = (allValidatorsWithCtrlAcc: Validator[] | const eraPayouts$ = api.query.staking.erasValidatorReward.entries() return combineLatest([eraPoints$, eraPayouts$]).pipe( - take(1), map(([points, payouts]) => { const payoutsMap = new Map(payouts.map(([era, amount]) => [era.args[0].toNumber(), amount.value.toBn()])) @@ -101,18 +99,14 @@ export const useValidatorsWithDetails = (allValidatorsWithCtrlAcc: Validator[] | .sort((a, b) => b.era - a.era) .slice(1) // Remove the current period }), - freezeObservable + keepFirst ) }, [api?.isConnected, !validatorDetailsOptions]) const activeValidators$ = useMemo(() => { if (!validatorDetailsOptions) return - return api?.query.session.validators().pipe( - take(1), - map((activeAccs) => activeAccs.map(encodeAddress)), - freezeObservable - ) + return api?.query.session.validators().pipe(keepFirst) }, [api?.isConnected, !validatorDetailsOptions]) const aggregated = useObservable(() => { @@ -179,9 +173,13 @@ export const useValidatorsWithDetails = (allValidatorsWithCtrlAcc: Validator[] | const validatorsWithDetailsCache = new Map>() -const freezeObservable: (o: Observable) => Observable = share({ - connector: () => new ReplaySubject(1), - resetOnComplete: false, - resetOnError: false, - resetOnRefCountZero: false, -}) +const keepFirst = (o: Observable): Observable => + o.pipe( + take(1), + share({ + connector: () => new ReplaySubject(1), + resetOnComplete: false, + resetOnError: false, + resetOnRefCountZero: false, + }) + ) diff --git a/packages/ui/src/validators/providers/utils.ts b/packages/ui/src/validators/providers/utils.ts index 7e52b454bf..e307368f25 100644 --- a/packages/ui/src/validators/providers/utils.ts +++ b/packages/ui/src/validators/providers/utils.ts @@ -1,3 +1,5 @@ +import { Vec } from '@polkadot/types' +import { AccountId } from '@polkadot/types/interfaces' import BN from 'bn.js' import { map, merge, Observable, of, ReplaySubject, scan, share, switchMap, take } from 'rxjs' @@ -23,7 +25,7 @@ export const getValidatorsFilters = ({ isVerified, search = '' }: ValidatorDetai } export const filterValidatorsByIsActive = (validators: ValidatorWithDetails[], isActive: boolean) => - map((activeValidators: string[]) => + map((activeValidators: Vec) => validators.filter(({ stashAccount }) => activeValidators.includes(stashAccount) === isActive) ) @@ -61,7 +63,7 @@ type EraRewards = { export const getValidatorInfo = ( validator: ValidatorWithDetails, - activeValidators$: Observable, + activeValidators$: Observable>, validatorsRewards$: Observable, api: Api ): Observable => {