From 995b6b4e96e2bd750d2d42f7ff806f4e2efb2d19 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 17 Oct 2022 13:36:39 -0300 Subject: sync parseTx with the new makeTx --- .../taler-wallet-core/src/operations/common.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'packages/taler-wallet-core/src/operations/common.ts') diff --git a/packages/taler-wallet-core/src/operations/common.ts b/packages/taler-wallet-core/src/operations/common.ts index 95441be2b..2bed195a1 100644 --- a/packages/taler-wallet-core/src/operations/common.ts +++ b/packages/taler-wallet-core/src/operations/common.ts @@ -306,6 +306,28 @@ export function makeTransactionId( return `txn:${type}:${args.map((x) => encodeURIComponent(x)).join(":")}`; } +export function parseTransactionId(txId: string): { + type: TransactionType; + args: string[]; +} { + const txnParts = txId.split(":"); + if (txnParts.length < 3) { + throw Error("transactionId should have al least 3 parts separated by ':'"); + } + const [txn, typeStr, ...args] = txnParts; + const type = typeStr as TransactionType; + + if (txn !== "txn") { + throw Error("transactionId should start with txn"); + } + + if (args.length === 0) { + throw Error("transactionId should have one or more arguments"); + } + + return { type, args }; +} + /** * Create an event ID from the type and the primary key for the event. */ -- cgit v1.2.3