diff options
author | Florian Dold <florian@dold.me> | 2023-02-23 16:07:14 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-02-23 16:07:14 +0100 |
commit | 582b6ae5f4139cd1be8096dd59371430455bbeef (patch) | |
tree | be4a0f36e05726950f929e7a73b51cd1d3339b9a /packages/taler-wallet-core/src/operations | |
parent | dd9e4555baf3b98478e9ad2b0edf81ea81add5e2 (diff) |
wallet-core: report correct amountEffective in peer-pull-credit even before withdrawal is active
Diffstat (limited to 'packages/taler-wallet-core/src/operations')
-rw-r--r-- | packages/taler-wallet-core/src/operations/exchanges.ts | 1 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/operations/pay-peer.ts | 8 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/operations/transactions.ts | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts b/packages/taler-wallet-core/src/operations/exchanges.ts index 457344e06..8a98c8299 100644 --- a/packages/taler-wallet-core/src/operations/exchanges.ts +++ b/packages/taler-wallet-core/src/operations/exchanges.ts @@ -260,6 +260,7 @@ async function validateWireInfo( throw Error("exchange acct signature invalid"); } } + logger.trace("account validation done"); const feesForType: WireFeeMap = {}; for (const wireMethod of Object.keys(wireInfo.fees)) { const feeList: WireFee[] = []; diff --git a/packages/taler-wallet-core/src/operations/pay-peer.ts b/packages/taler-wallet-core/src/operations/pay-peer.ts index 6a04bce7c..05338b83e 100644 --- a/packages/taler-wallet-core/src/operations/pay-peer.ts +++ b/packages/taler-wallet-core/src/operations/pay-peer.ts @@ -1655,6 +1655,13 @@ export async function initiatePeerPullPayment( const mergeReserveRowId = mergeReserveInfo.rowId; checkDbInvariant(!!mergeReserveRowId); + const wi = await getExchangeWithdrawalInfo( + ws, + exchangeBaseUrl, + Amounts.parseOrThrow(req.partialContractTerms.amount), + undefined, + ); + await ws.db .mktx((x) => [x.peerPullPaymentInitiations, x.contractTerms]) .runReadWrite(async (tx) => { @@ -1673,6 +1680,7 @@ export async function initiatePeerPullPayment( contractPriv: contractKeyPair.priv, contractPub: contractKeyPair.pub, withdrawalGroupId, + estimatedAmountEffective: wi.withdrawalAmountEffective, }); await tx.contractTerms.put({ contractTermsRaw: contractTerms, diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts index 764115cef..54fe1320d 100644 --- a/packages/taler-wallet-core/src/operations/transactions.ts +++ b/packages/taler-wallet-core/src/operations/transactions.ts @@ -542,7 +542,7 @@ function buildTransactionForPeerPullCredit( return { type: TransactionType.PeerPullCredit, - amountEffective: Amounts.stringify(peerContractTerms.amount), + amountEffective: Amounts.stringify(pullCredit.amount), amountRaw: Amounts.stringify(peerContractTerms.amount), exchangeBaseUrl: pullCredit.exchangeBaseUrl, extendedStatus: ExtendedStatus.Pending, |