diff options
author | Florian Dold <florian@dold.me> | 2022-10-14 22:49:32 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-10-14 22:49:32 +0200 |
commit | b36807aa0f673d074f295d004812ba18b2ab544d (patch) | |
tree | ba738209a0303c1e8b4b4e3e1836be9d490019e6 | |
parent | 0c8e56c32457ea9b9229a8a3607fcf8e7618bc17 (diff) |
-fix ID parsing
-rw-r--r-- | packages/taler-wallet-core/src/operations/transactions.ts | 11 |
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 || |