Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 38x 38x 38x 38x 77x 37x 18x 3x 1x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 38x 505x 38x 38x | import { PoolSortType } from './types';
import {
ProviderError,
ProviderFailure,
isPoolAPYSortField,
isPoolDataSortField,
isPoolMetricsSortField,
isPoolROSSortField
} from '@cardano-sdk/core';
import BigNumber from 'bignumber.js';
export const APY_EPOCHS_BACK_LIMIT_DEFAULT = 3;
export const getStakePoolSortType = (field: string): PoolSortType => {
if (isPoolDataSortField(field)) return 'data';
if (isPoolMetricsSortField(field)) return 'metrics';
if (isPoolAPYSortField(field)) return 'apy';
if (isPoolROSSortField(field)) return 'ros';
throw new ProviderError(ProviderFailure.Unknown, null, `Invalid sort field "${field}"`);
};
export const QUERIES_NAMESPACE = 'StakePoolQueries';
export const IDS_NAMESPACE = 'StakePoolIds';
export const LIVE_STAKE_CACHE_KEY = 'StakePoolLiveStake';
export enum StakePoolsSubQuery {
APY = 'apy',
STATS = 'stats',
METRICS = 'metrics',
REWARDS = 'rewards',
RELAYS = 'relays',
REGISTRATIONS = 'registrations',
OWNERS = 'owners',
RETIREMENTS = 'retirements',
TOTAL_STAKE = 'total_stake',
POOL_HASHES = 'pool_hashes',
POOLS_DATA_ORDERED = 'pools_data_ordered'
}
export const queryCacheKey = (queryName: StakePoolsSubQuery, ...args: unknown[]) =>
`${QUERIES_NAMESPACE}/${queryName}/${JSON.stringify(args)}`;
export const emptyPoolsExtraInfo = {
poolMetrics: [],
poolOwners: [],
poolRegistrations: [],
poolRelays: [],
poolRetirements: [],
poolRewards: []
};
export const divideBigIntToFloat = (numerator: bigint, denominator: bigint) =>
new BigNumber(numerator.toString()).dividedBy(new BigNumber(denominator.toString())).toString();
|