aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/pay.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/operations/pay.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/pay.ts23
1 files changed, 23 insertions, 0 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay.ts b/packages/taler-wallet-core/src/operations/pay.ts
index 55b8f513d..d41a20e71 100644
--- a/packages/taler-wallet-core/src/operations/pay.ts
+++ b/packages/taler-wallet-core/src/operations/pay.ts
@@ -662,6 +662,8 @@ export function extractContractData(
products: parsedContractTerms.products,
summaryI18n: parsedContractTerms.summary_i18n,
minimumAge: parsedContractTerms.minimum_age,
+ deliveryDate: parsedContractTerms.delivery_date,
+ deliveryLocation: parsedContractTerms.delivery_location,
};
}
@@ -1318,6 +1320,27 @@ export async function checkPaymentByProposalId(
}
}
+export async function getContractTermsDetails(
+ ws: InternalWalletState,
+ proposalId: string,
+): Promise<WalletContractData> {
+ const proposal = await ws.db
+ .mktx((x) => ({ proposals: x.proposals }))
+ .runReadOnly(async (tx) => {
+ return tx.proposals.get(proposalId);
+ });
+
+ if (!proposal) {
+ throw Error(`proposal with id ${proposalId} not found`);
+ }
+
+ if (!proposal.download || !proposal.download.contractData) {
+ throw Error("proposal is in invalid state");
+ }
+
+ return proposal.download.contractData
+}
+
/**
* Check if a payment for the given taler://pay/ URI is possible.
*