Skip to content

Commit

Permalink
Fix "Cannot read property 'url'" for pools that do not have url
Browse files Browse the repository at this point in the history
  • Loading branch information
refi93 committed Feb 21, 2021
1 parent 550dadc commit c5767ea
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
21 changes: 17 additions & 4 deletions app/frontend/wallet/blockchain-explorer.ts
Expand Up @@ -33,6 +33,7 @@ import {
PoolRecommendationResponse,
StakingInfoResponse,
BestSlotResponse,
StakePoolInfo,
} from './explorer-types'

const cacheResults = (maxAge: number, cache_obj: Object = {}) => <T extends Function>(fn: T): T => {
Expand Down Expand Up @@ -360,17 +361,29 @@ const blockchainExplorer = (ADALITE_CONFIG) => {
validStakepools: ValidStakePoolsMapping,
epochsToRewardDistribution: number
): Promise<NextRewardDetailsFormatted> {
const getPool = async (
poolHash: string
): Promise<StakePoolInfo | HostedPoolMetadata | string> => {
// TODO simplify with optional chaining once switching to node 12/eslint v4
if (validStakepools[poolHash]) {
if (validStakepools[poolHash].name) {
return validStakepools[poolHash]
} else if (validStakepools[poolHash].url) {
return await getPoolInfo(validStakepools[poolHash].url).catch(() => UNKNOWN_POOL_NAME)
}
}

return UNKNOWN_POOL_NAME
}

const nextRewardDetailsWithMetaData: Array<RewardWithMetadata> = await Promise.all(
nextRewardDetails.map(async (nextRewardDetail: NextRewardDetail) => {
const poolHash = nextRewardDetail.poolHash
if (poolHash) {
return {
...nextRewardDetail,
distributionEpoch: nextRewardDetail.forEpoch + epochsToRewardDistribution,
pool:
validStakepools[poolHash] && validStakepools[poolHash].name
? validStakepools[poolHash]
: await getPoolInfo(validStakepools[poolHash].url).catch(() => UNKNOWN_POOL_NAME),
pool: getPool(poolHash),
}
} else {
return {
Expand Down
2 changes: 1 addition & 1 deletion app/frontend/wallet/explorer-types.ts
Expand Up @@ -6,7 +6,7 @@ export type HostedPoolMetadata = {
extended?: string
}

type StakePoolInfo = {
export type StakePoolInfo = {
pledge: string
margin: number
fixedCost: string
Expand Down

0 comments on commit c5767ea

Please sign in to comment.