wallet-core: return transactionId whenever a transaction is created

This commit is contained in:
Florian Dold 2023-05-25 11:59:55 +02:00
parent c3ef842df0
commit 0b4d900088
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
3 changed files with 34 additions and 0 deletions

View File

@ -396,9 +396,16 @@ export interface PrepareTipResult {
/**
* Unique ID for the tip assigned by the wallet.
* Typically different from the merchant-generated tip ID.
*
* @deprecated use transactionId instead
*/
walletTipId: string;
/**
* Tip transaction ID.
*/
transactionId: string;
/**
* Has the tip already been accepted?
*/
@ -447,6 +454,7 @@ export const codecForPrepareTipResult = (): Codec<PrepareTipResult> =>
.property("merchantBaseUrl", codecForString())
.property("expirationTimestamp", codecForTimestamp)
.property("walletTipId", codecForString())
.property("transactionId", codecForString())
.build("PrepareTipResult");
export interface BenchmarkResult {
@ -2150,6 +2158,8 @@ export interface PreparePeerPushCreditResponse {
amountRaw: AmountString;
amountEffective: AmountString;
peerPushPaymentIncomingId: string;
transactionId: string;
}
export interface PreparePeerPullDebitResponse {
@ -2163,6 +2173,8 @@ export interface PreparePeerPullDebitResponse {
amountEffective: AmountString;
peerPullPaymentIncomingId: string;
transactionId: string;
}
export const codecForPreparePeerPushCreditRequest =

View File

@ -825,6 +825,10 @@ export async function preparePeerPushCredit(
contractTerms: existing.existingContractTerms,
peerPushPaymentIncomingId:
existing.existingPushInc.peerPushPaymentIncomingId,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPushCredit,
peerPushPaymentIncomingId: existing.existingPushInc.peerPushPaymentIncomingId,
}),
};
}
@ -907,6 +911,10 @@ export async function preparePeerPushCredit(
amountRaw: purseStatus.balance,
contractTerms: dec.contractTerms,
peerPushPaymentIncomingId,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPushCredit,
peerPushPaymentIncomingId,
}),
};
}
@ -1363,6 +1371,10 @@ export async function preparePeerPullDebit(
contractTerms: existingPullIncomingRecord.contractTerms,
peerPullPaymentIncomingId:
existingPullIncomingRecord.peerPullPaymentIncomingId,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPullDebit,
peerPullPaymentIncomingId: existingPullIncomingRecord.peerPullPaymentIncomingId,
}),
};
}
@ -1451,6 +1463,10 @@ export async function preparePeerPullDebit(
amountRaw: contractTerms.amount,
contractTerms: contractTerms,
peerPullPaymentIncomingId,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPullDebit,
peerPullPaymentIncomingId: peerPullPaymentIncomingId,
}),
};
}

View File

@ -176,6 +176,11 @@ export async function prepareTip(
tipRecord = newTipRecord;
}
const transactionId = constructTransactionIdentifier({
tag: TransactionType.Tip,
walletTipId: tipRecord.walletTipId,
})
const tipStatus: PrepareTipResult = {
accepted: !!tipRecord && !!tipRecord.acceptedTimestamp,
tipAmountRaw: Amounts.stringify(tipRecord.tipAmountRaw),
@ -184,6 +189,7 @@ export async function prepareTip(
expirationTimestamp: tipRecord.tipExpiration,
tipAmountEffective: Amounts.stringify(tipRecord.tipAmountEffective),
walletTipId: tipRecord.walletTipId,
transactionId,
};
return tipStatus;