wallet-core: fix creation of refresh session after peer-{push,pull}

This commit is contained in:
Florian Dold 2022-09-12 20:52:01 +02:00
parent 58211515d2
commit b645d793df
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
4 changed files with 12 additions and 6 deletions

View File

@ -523,7 +523,9 @@ export interface PlanchetCreationRequest {
*/
export enum RefreshReason {
Manual = "manual",
Pay = "pay",
PayMerchant = "pay-merchant",
PayPeerPush = "pay-peer-push",
PayPeerPull = "pay-peer-pull",
Refund = "refund",
AbortPay = "abort-pay",
Recoup = "recoup",

View File

@ -810,7 +810,7 @@ export async function importBackup(
reason = RefreshReason.Manual;
break;
case BackupRefreshReason.Pay:
reason = RefreshReason.Pay;
reason = RefreshReason.PayMerchant;
break;
case BackupRefreshReason.Recoup:
reason = RefreshReason.Recoup;

View File

@ -409,7 +409,7 @@ export async function applyCoinSpend(
const refreshCoinPubs = coinSelection.coinPubs.map((x) => ({
coinPub: x,
}));
await createRefreshGroup(ws, tx, refreshCoinPubs, RefreshReason.Pay);
await createRefreshGroup(ws, tx, refreshCoinPubs, RefreshReason.PayMerchant);
}
/**

View File

@ -214,7 +214,6 @@ export async function initiatePeerToPeerPush(
ws: InternalWalletState,
req: InitiatePeerPushPaymentRequest,
): Promise<InitiatePeerPushPaymentResponse> {
// FIXME: actually create a record for retries here!
const instructedAmount = Amounts.parseOrThrow(req.amount);
const pursePair = await ws.cryptoApi.createEddsaKeypair({});
@ -265,6 +264,7 @@ export async function initiatePeerToPeerPush(
Amounts.parseOrThrow(c.contribution),
).amount;
coin.status = CoinStatus.Dormant;
pubs.push({ coinPub: coin.coinPub });
await tx.coins.put(coin);
}
@ -283,7 +283,7 @@ export async function initiatePeerToPeerPush(
timestampCreated: TalerProtocolTimestamp.now(),
});
await createRefreshGroup(ws, tx, pubs, RefreshReason.Pay);
await createRefreshGroup(ws, tx, pubs, RefreshReason.PayPeerPush);
return sel;
});
@ -601,10 +601,11 @@ export async function acceptPeerPullPayment(
Amounts.parseOrThrow(c.contribution),
).amount;
coin.status = CoinStatus.Dormant;
pubs.push({ coinPub: coin.coinPub });
await tx.coins.put(coin);
}
await createRefreshGroup(ws, tx, pubs, RefreshReason.Pay);
await createRefreshGroup(ws, tx, pubs, RefreshReason.PayPeerPull);
const pi = await tx.peerPullPaymentIncoming.get(
req.peerPullPaymentIncomingId,
@ -711,6 +712,9 @@ export async function checkPeerPullPayment(
};
}
/**
* Initiate a peer pull payment.
*/
export async function initiatePeerRequestForPay(
ws: InternalWalletState,
req: InitiatePeerPullPaymentRequest,