File tree 1 file changed +11
-6
lines changed
packages/core/src/Cardano/util 1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -154,6 +154,13 @@ const getTxDeposits = (
154
154
} ;
155
155
} ;
156
156
157
+ const getOwnWithdrawals = ( withdrawals : Cardano . Withdrawal [ ] , rewardAccounts : Address . RewardAccount [ ] ) =>
158
+ BigIntMath . sum (
159
+ withdrawals
160
+ . filter ( ( { stakeAddress } ) => stakeAddressInRewardAccounts ( stakeAddress , rewardAccounts ) )
161
+ . map ( ( { quantity } ) => quantity )
162
+ ) ;
163
+
157
164
/**
158
165
* Computes the implicit coin from the given transaction.
159
166
* If rewardAccounts is provided, it will only count the deposits from
@@ -174,7 +181,7 @@ export const computeImplicitCoin = (
174
181
{
175
182
certificates,
176
183
proposalProcedures,
177
- withdrawals
184
+ withdrawals = [ ]
178
185
} : Pick < Cardano . HydratedTxBody , 'certificates' | 'proposalProcedures' | 'withdrawals' > ,
179
186
rewardAccounts ?: Address . RewardAccount [ ] ,
180
187
dRepKeyHash ?: Crypto . Ed25519KeyHashHex
@@ -187,11 +194,9 @@ export const computeImplicitCoin = (
187
194
proposalProcedures
188
195
) ;
189
196
190
- const ownWithdrawals =
191
- rewardAccounts && withdrawals
192
- ? withdrawals . filter ( ( withdrawal ) => stakeAddressInRewardAccounts ( withdrawal . stakeAddress , rewardAccounts ) )
193
- : [ ] ;
194
- const withdrawalsTotal = BigIntMath . sum ( ownWithdrawals . map ( ( { quantity } ) => quantity ) ) || 0n ;
197
+ const hasRewardAccount = ! ! rewardAccounts ?. length ;
198
+ const withdrawalsAll = BigIntMath . sum ( withdrawals . map ( ( { quantity } ) => quantity ) ) ;
199
+ const withdrawalsTotal = hasRewardAccount ? getOwnWithdrawals ( withdrawals , rewardAccounts ) : withdrawalsAll ;
195
200
196
201
return {
197
202
deposit,
You can’t perform that action at this time.
0 commit comments