Skip to content

Commit ddf37ec

Browse files
committed
fix: handle optional chaining for claimed rewards in staker rewards functions
1 parent f337998 commit ddf37ec

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

packages/api-derive/src/staking/stakerRewards.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ function extractCompatRewards (claimedRewardsEras: Vec<u32>, ledger?: PalletStak
2323
? (
2424
ledger.legacyClaimedRewards ||
2525
(ledger as PalletStakingStakingLedger & { claimedRewards: Vec<u32> }).claimedRewards
26-
).toArray()
26+
)?.toArray()
2727
: [] as unknown as Vec<u32>;
2828

29-
return claimedRewardsEras.toArray().concat(l);
29+
return (claimedRewardsEras.toArray() || []).concat(l);
3030
}
3131

3232
function parseRewards (api: DeriveApi, stashId: AccountId, [erasPoints, erasPrefs, erasRewards]: ErasResult, exposures: DeriveStakerExposure[], claimedRewardsEras: Vec<u32>): DeriveStakerReward[] {
@@ -125,7 +125,7 @@ function removeClaimed (validators: string[], queryValidators: DeriveStakingQuer
125125
if (index !== -1) {
126126
const valLedger = queryValidators[index].stakingLedger;
127127

128-
if (extractCompatRewards(claimedRewardsEras, valLedger).some((e) => reward.era.eq(e))) {
128+
if (extractCompatRewards(claimedRewardsEras, valLedger).some((e) => reward.era?.eq(e))) {
129129
rm.push(validatorId);
130130
}
131131
}
@@ -137,7 +137,7 @@ function removeClaimed (validators: string[], queryValidators: DeriveStakingQuer
137137
}
138138

139139
function filterRewards (eras: EraIndex[], valInfo: [string, DeriveStakingQuery][], { claimedRewardsEras, rewards, stakingLedger }: { rewards: DeriveStakerReward[]; stakingLedger: PalletStakingStakingLedger, claimedRewardsEras: Vec<u32> }): DeriveStakerReward[] {
140-
const filter = eras.filter((e) => !extractCompatRewards(claimedRewardsEras, stakingLedger).some((s) => s.eq(e)));
140+
const filter = eras.filter((e) => !extractCompatRewards(claimedRewardsEras, stakingLedger).some((s) => s?.eq(e)));
141141
const validators = valInfo.map(([v]) => v);
142142
const queryValidators = valInfo.map(([, q]) => q);
143143

@@ -162,7 +162,7 @@ function filterRewards (eras: EraIndex[], valInfo: [string, DeriveStakingQuery][
162162
const info = queryValidators.find((i) => i.accountId.toString() === key);
163163

164164
if (info) {
165-
isClaimed = info.claimedRewardsEras.toArray().some((era) => era.eq(reward.era));
165+
isClaimed = info.claimedRewardsEras?.toArray().some((era) => era.eq(reward.era));
166166
break;
167167
}
168168
}

0 commit comments

Comments
 (0)