aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-10-14 22:49:32 +0200
committerFlorian Dold <florian@dold.me>2022-10-14 22:49:32 +0200
commitb36807aa0f673d074f295d004812ba18b2ab544d (patch)
treeba738209a0303c1e8b4b4e3e1836be9d490019e6
parent0c8e56c32457ea9b9229a8a3607fcf8e7618bc17 (diff)
-fix ID parsing
-rw-r--r--packages/taler-wallet-core/src/operations/transactions.ts11
1 files changed, 9 insertions, 2 deletions
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts
index 9a34379a9..c7ff4161a 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -954,7 +954,11 @@ export async function retryTransaction(
): Promise<void> {
logger.info(`retrying transaction ${transactionId}`);
- const [type, ...rest] = transactionId.split(":");
+ const [tmbPrefix, type, ...rest] = transactionId.split(":");
+
+ if (tmbPrefix !== "tmb") {
+ throw Error("invalid tombstone, expected 'tmb' prefix");
+ }
switch (type) {
case TransactionType.Deposit: {
@@ -996,7 +1000,10 @@ export async function deleteTransaction(
ws: InternalWalletState,
transactionId: string,
): Promise<void> {
- const [typeStr, ...rest] = transactionId.split(":");
+ const [txnPrefix, typeStr, ...rest] = transactionId.split(":");
+ if (txnPrefix !== "txn") {
+ throw Error("invalid transaction ID, expected 'txn' prefix");
+ }
const type = typeStr as TransactionType;
if (
type === TransactionType.Withdrawal ||