From e56d3ba8ebc29c41e95505f3d3cdd6de62e7ce34 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 21 Feb 2023 01:15:27 +0100 Subject: taler-wallet-cli: make purse expiration configurable --- packages/taler-wallet-cli/src/index.ts | 46 +++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 14 deletions(-) (limited to 'packages/taler-wallet-cli') diff --git a/packages/taler-wallet-cli/src/index.ts b/packages/taler-wallet-cli/src/index.ts index 30959d9ed..93cd5457a 100644 --- a/packages/taler-wallet-cli/src/index.ts +++ b/packages/taler-wallet-cli/src/index.ts @@ -1043,8 +1043,23 @@ peerCli .maybeOption("summary", ["--summary"], clk.STRING, { help: "Summary to use in the contract terms.", }) + .maybeOption("purseExpiration", ["--purse-expiration"], clk.STRING) .maybeOption("exchangeBaseUrl", ["--exchange"], clk.STRING) .action(async (args) => { + let purseExpiration: AbsoluteTime; + + if (args.initiatePayPull.purseExpiration) { + purseExpiration = AbsoluteTime.addDuration( + AbsoluteTime.now(), + Duration.fromPrettyString(args.initiatePayPull.purseExpiration), + ); + } else { + purseExpiration = AbsoluteTime.addDuration( + AbsoluteTime.now(), + Duration.fromSpec({ hours: 1 }), + ); + } + await withWallet(args, async (wallet) => { const resp = await wallet.client.call( WalletApiOperation.InitiatePeerPullCredit, @@ -1053,13 +1068,7 @@ peerCli partialContractTerms: { amount: args.initiatePayPull.amount, summary: args.initiatePayPull.summary ?? "Invoice", - // FIXME: Make the expiration configurable - purse_expiration: AbsoluteTime.toTimestamp( - AbsoluteTime.addDuration( - AbsoluteTime.now(), - Duration.fromSpec({ hours: 1 }), - ), - ), + purse_expiration: AbsoluteTime.toTimestamp(purseExpiration), }, }, ); @@ -1092,7 +1101,22 @@ peerCli .maybeOption("summary", ["--summary"], clk.STRING, { help: "Summary to use in the contract terms.", }) + .maybeOption("purseExpiration", ["--purse-expiration"], clk.STRING) .action(async (args) => { + let purseExpiration: AbsoluteTime; + + if (args.payPush.purseExpiration) { + purseExpiration = AbsoluteTime.addDuration( + AbsoluteTime.now(), + Duration.fromPrettyString(args.payPush.purseExpiration), + ); + } else { + purseExpiration = AbsoluteTime.addDuration( + AbsoluteTime.now(), + Duration.fromSpec({ hours: 1 }), + ); + } + await withWallet(args, async (wallet) => { const resp = await wallet.client.call( WalletApiOperation.InitiatePeerPushDebit, @@ -1100,13 +1124,7 @@ peerCli partialContractTerms: { amount: args.payPush.amount, summary: args.payPush.summary ?? "Payment", - // FIXME: Make the expiration configurable - purse_expiration: AbsoluteTime.toTimestamp( - AbsoluteTime.addDuration( - AbsoluteTime.now(), - Duration.fromSpec({ hours: 1 }), - ), - ), + purse_expiration: AbsoluteTime.toTimestamp(purseExpiration), }, }, ); -- cgit v1.2.3