wallet-core: report correct amountEffective in peer-pull-credit even before withdrawal is active
This commit is contained in:
parent
dd9e4555ba
commit
582b6ae5f4
@ -151,7 +151,7 @@ class NodeThreadCryptoWorker implements CryptoWorker {
|
||||
this.onmessage(v);
|
||||
}
|
||||
});
|
||||
this.nodeWorker.unref();
|
||||
//this.nodeWorker.unref();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1795,6 +1795,8 @@ export interface PeerPullPaymentInitiationRecord {
|
||||
*/
|
||||
amount: AmountString;
|
||||
|
||||
estimatedAmountEffective: AmountString;
|
||||
|
||||
/**
|
||||
* Purse public key. Used as the primary key to look
|
||||
* up this record.
|
||||
@ -2606,6 +2608,18 @@ export const walletDbFixups: FixupDescription[] = [
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "PeerPullPaymentInitiationRecord_estimatedAmountEffective_add",
|
||||
async fn(tx): Promise<void> {
|
||||
await tx.peerPullPaymentInitiations.iter().forEachAsync(async (pi) => {
|
||||
if (pi.estimatedAmountEffective) {
|
||||
return;
|
||||
}
|
||||
pi.estimatedAmountEffective = pi.amount;
|
||||
await tx.peerPullPaymentInitiations.put(pi);
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "PeerPushPaymentInitiationRecord_ALL_removeLegacyTx",
|
||||
async fn(tx): Promise<void> {
|
||||
|
@ -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[] = [];
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user