commit 18eefc95782467fdceb232ddc985c6fc55e390e6
parent b8dd91d966e49c62d9f32ec918600d84cb28be40
Author: Sebastian <sebasjm@taler-systems.com>
Date: Wed, 29 Apr 2026 12:10:58 -0300
add support for template in wallet-cli
Diffstat:
1 file changed, 21 insertions(+), 0 deletions(-)
diff --git a/packages/taler-wallet-cli/src/index.ts b/packages/taler-wallet-cli/src/index.ts
@@ -100,6 +100,22 @@ setUnhandledRejectionHandler((error: any) => {
const defaultWalletDbPath = pathHomedir() + "/" + ".talerwalletdb.sqlite3";
const defaultWalletCoreSocket = pathHomedir() + "/" + ".wallet-core.sock";
+async function doPayTemplate(
+ wallet: WalletCoreApiClient,
+ payUrl: string,
+ options: { alwaysYes: boolean } = { alwaysYes: true },
+): Promise<void> {
+ const result = await wallet.call(WalletApiOperation.PreparePayForTemplate, {
+ talerPayTemplateUri: payUrl,
+ });
+ if (result.status === PreparePayResultType.InsufficientBalance) {
+ console.log("contract", result.contractTerms);
+ console.error("insufficient balance");
+ processExit(1);
+ return;
+ }
+ return doPay(wallet, result.talerUri, options)
+}
async function doPay(
wallet: WalletCoreApiClient,
payUrl: string,
@@ -898,6 +914,11 @@ walletCli
throw Error("invalid taler URI");
}
switch (parsedTalerUri.type) {
+ case TalerUriAction.PayTemplate:
+ await doPayTemplate(wallet.client, uri, {
+ alwaysYes: args.handleUri.autoYes,
+ });
+ break;
case TalerUriAction.Pay:
await doPay(wallet.client, uri, {
alwaysYes: args.handleUri.autoYes,