Skip to content

Commit 7d23c21

Browse files
committed
fix(app): use effect array
1 parent b0fb5ae commit 7d23c21

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

app2/src/lib/services/incentive.ts

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import { HttpClient, HttpClientResponse } from "@effect/platform"
1111
import { EU_STAKING_HUB } from "@unionlabs/sdk/Constants"
12-
import { Array, BigDecimal, Data, Effect, pipe, Schema } from "effect"
12+
import { Array, BigDecimal, Data, Effect, Option as O, pipe, Schema } from "effect"
1313

1414
const REST_BASE_URL = "https://rest.union.build"
1515

@@ -309,19 +309,23 @@ export const calculateIncentive: Effect.Effect<
309309
const incentiveAfterTax = BigDecimal.subtract(incentiveNominal, communityTaxAmount)
310310

311311
// Calculate weighted average validator commission
312-
const validatorMap = new Map(validatorsData.validators.map(v => [v.operator_address, v]))
313-
314312
const validDelegations = pipe(
315313
delegationsData.delegation_responses,
316-
Array.filter(delegation => {
317-
const validator = validatorMap.get(delegation.delegation.validator_address)
318-
return Boolean(validator && !validator.jailed && validator.status === "BOND_STATUS_BONDED")
314+
Array.filterMap(delegation => {
315+
const validator = pipe(
316+
validatorsData.validators,
317+
Array.findFirst(v => v.operator_address === delegation.delegation.validator_address),
318+
)
319+
320+
return pipe(
321+
validator,
322+
O.filter(v => !v.jailed && v.status === "BOND_STATUS_BONDED"),
323+
O.map(v => ({
324+
amount: delegation.balance.amount,
325+
commission: v.commission.commission_rates.rate,
326+
})),
327+
)
319328
}),
320-
Array.map(delegation => ({
321-
amount: delegation.balance.amount,
322-
commission:
323-
validatorMap.get(delegation.delegation.validator_address)!.commission.commission_rates.rate,
324-
})),
325329
)
326330

327331
const { totalAmount, weightedSum } = pipe(

0 commit comments

Comments
 (0)