summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/taler-util/src/walletTypes.ts2
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-age-restrictions-merchant.ts22
-rw-r--r--packages/taler-wallet-core/src/crypto/cryptoImplementation.ts1
-rw-r--r--packages/taler-wallet-core/src/operations/pending.ts2
-rw-r--r--packages/taler-wallet-core/src/operations/refresh.ts1
5 files changed, 26 insertions, 2 deletions
diff --git a/packages/taler-util/src/walletTypes.ts b/packages/taler-util/src/walletTypes.ts
index 7ca56b4ff..95772a58b 100644
--- a/packages/taler-util/src/walletTypes.ts
+++ b/packages/taler-util/src/walletTypes.ts
@@ -1154,6 +1154,8 @@ export interface RefreshPlanchetInfo {
* Blinding key used.
*/
blindingKey: string;
+
+ ageCommitmentProof?: AgeCommitmentProof;
}
/**
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-age-restrictions-merchant.ts b/packages/taler-wallet-cli/src/integrationtests/test-age-restrictions-merchant.ts
index 27c36ae40..01ddac4d9 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-age-restrictions-merchant.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-age-restrictions-merchant.ts
@@ -44,6 +44,28 @@ export async function runAgeRestrictionsMerchantTest(t: GlobalTestState) {
const walletThree = new WalletCli(t, "walletThree");
{
+ const walletZero = new WalletCli(t, "walletZero");
+
+ await withdrawViaBank(t, {
+ wallet: walletZero,
+ bank,
+ exchange,
+ amount: "TESTKUDOS:20",
+ restrictAge: 13,
+ });
+
+ const order = {
+ summary: "Buy me!",
+ amount: "TESTKUDOS:5",
+ fulfillment_url: "taler://fulfillment-success/thx",
+ minimum_age: 9,
+ };
+
+ await makeTestPayment(t, { wallet: walletZero, merchant, order });
+ await walletZero.runUntilDone();
+ }
+
+ {
const wallet = walletOne;
await withdrawViaBank(t, {
diff --git a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
index c6be1d466..4ec24a98b 100644
--- a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
+++ b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
@@ -1208,6 +1208,7 @@ export const nativeCryptoR: TalerCryptoInterfaceR = {
coinPriv: encodeCrock(coinPriv),
coinPub: encodeCrock(coinPub),
coinEvHash: encodeCrock(coinEvHash),
+ ageCommitmentProof: newAc,
};
planchets.push(planchet);
hashCoinEvInner(coinEv, sessionHc);
diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts
index 38146f72e..5cf3afd4d 100644
--- a/packages/taler-wallet-core/src/operations/pending.ts
+++ b/packages/taler-wallet-core/src/operations/pending.ts
@@ -23,7 +23,6 @@
*/
import {
ProposalStatus,
- ReserveRecordStatus,
AbortStatus,
WalletStoresV1,
BackupProviderStateTag,
@@ -33,7 +32,6 @@ import {
import {
PendingOperationsResponse,
PendingTaskType,
- ReserveType,
} from "../pending-types.js";
import { AbsoluteTime } from "@gnu-taler/taler-util";
import { InternalWalletState } from "../internal-wallet-state.js";
diff --git a/packages/taler-wallet-core/src/operations/refresh.ts b/packages/taler-wallet-core/src/operations/refresh.ts
index fc90b6081..64a734bb3 100644
--- a/packages/taler-wallet-core/src/operations/refresh.ts
+++ b/packages/taler-wallet-core/src/operations/refresh.ts
@@ -695,6 +695,7 @@ async function refreshReveal(
},
suspended: false,
coinEvHash: pc.coinEvHash,
+ ageCommitmentProof: pc.ageCommitmentProof,
};
coins.push(coin);