taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit b36807aa0f673d074f295d004812ba18b2ab544d
parent 0c8e56c32457ea9b9229a8a3607fcf8e7618bc17
Author: Florian Dold <florian@dold.me>
Date:   Fri, 14 Oct 2022 22:49:32 +0200

-fix ID parsing

Diffstat:
Mpackages/taler-wallet-core/src/operations/transactions.ts | 11+++++++++--
1 file 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 @@ -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 ||