aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src')
-rw-r--r--packages/taler-wallet-core/src/db.ts15
-rw-r--r--packages/taler-wallet-core/src/operations/withdraw.ts5
2 files changed, 19 insertions, 1 deletions
diff --git a/packages/taler-wallet-core/src/db.ts b/packages/taler-wallet-core/src/db.ts
index d59085dcc..031550c31 100644
--- a/packages/taler-wallet-core/src/db.ts
+++ b/packages/taler-wallet-core/src/db.ts
@@ -707,6 +707,7 @@ export interface PlanchetRecord {
*/
coinIdx: number;
+
planchetStatus: PlanchetStatus;
lastError: TalerErrorDetail | undefined;
@@ -721,6 +722,12 @@ export interface PlanchetRecord {
coinEvHash: string;
+ /**
+ * Index into the kappa-many planchet commitments per coin
+ * for the age-withdraw operation.
+ */
+ ageWithdrawIdx?: number;
+
ageCommitmentProof?: AgeCommitmentProof;
}
@@ -1412,7 +1419,7 @@ export interface KycPendingInfo {
}
/**
* Group of withdrawal operations that need to be executed.
- * (Either for a normal withdrawal or from a reward.)
+ * (Either for a normal {batch-|age-} withdrawal or from a reward.)
*
* The withdrawal group record is only created after we know
* the coin selection we want to withdraw.
@@ -2440,6 +2447,12 @@ export const WalletStoresV1 = {
"planchets",
describeContents<PlanchetRecord>({ keyPath: "coinPub" }),
{
+ byGroupAgeCoin: describeIndex(
+ "byGroupAgeCoin", [ "withdrawalGroupId", "ageWithdrawIdx", "coinIdx" ],
+ {
+ unique: true,
+ },
+ ),
byGroupAndIndex: describeIndex(
"byGroupAndIndex",
["withdrawalGroupId", "coinIdx"],
diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts b/packages/taler-wallet-core/src/operations/withdraw.ts
index 5f728b6f5..245eec4fa 100644
--- a/packages/taler-wallet-core/src/operations/withdraw.ts
+++ b/packages/taler-wallet-core/src/operations/withdraw.ts
@@ -62,6 +62,10 @@ import {
ExchangeWithdrawResponse,
WithdrawUriInfoResponse,
ExchangeBatchWithdrawRequest,
+ ExchangeAgeWithdrawRequest,
+ ExchangeAgeWithdrawRevealRequest,
+ ExchangeAgeWithdrawResponse,
+ ExchangeAgeWithdrawRevealResponse,
TransactionState,
TransactionMajorState,
TransactionMinorState,
@@ -865,6 +869,7 @@ async function processPlanchetExchangeBatchRequest(
coinIdx < wgContext.numPlanchets;
coinIdx++
) {
+ // FIXME[oec]: Add lookup of planchet for age-withdraw here
let planchet = await tx.planchets.indexes.byGroupAndIndex.get([
withdrawalGroup.withdrawalGroupId,
coinIdx,