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 { 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 { - 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 ||