aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-util/src/taleruri.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-util/src/taleruri.ts')
-rw-r--r--packages/taler-util/src/taleruri.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/taler-util/src/taleruri.ts b/packages/taler-util/src/taleruri.ts
index e7d66d7d5..baca3efac 100644
--- a/packages/taler-util/src/taleruri.ts
+++ b/packages/taler-util/src/taleruri.ts
@@ -50,6 +50,10 @@ export interface PayPullUriResult {
contractPriv: string;
}
+export interface DevExperimentUri {
+ devExperimentId: string;
+}
+
/**
* Parse a taler[+http]://withdraw URI.
* Return undefined if not passed a valid URI.
@@ -91,6 +95,7 @@ export enum TalerUriType {
TalerNotifyReserve = "taler-notify-reserve",
TalerPayPush = "taler-pay-push",
TalerPayPull = "taler-pay-pull",
+ TalerDevExperiment = "taler-dev-experiment",
Unknown = "unknown",
}
@@ -141,6 +146,9 @@ export function classifyTalerUri(s: string): TalerUriType {
if (sl.startsWith("taler://notify-reserve/")) {
return TalerUriType.TalerNotifyReserve;
}
+ if (sl.startsWith("taler://dev-experiment/")) {
+ return TalerUriType.TalerDevExperiment;
+ }
return TalerUriType.Unknown;
}
@@ -300,6 +308,19 @@ export function parseRefundUri(s: string): RefundUriResult | undefined {
};
}
+export function parseDevExperimentUri(s: string): DevExperimentUri | undefined {
+ const pi = parseProtoInfo(s, "dev-experiment");
+ const c = pi?.rest.split("?");
+ if (!c) {
+ return undefined;
+ }
+ // const q = new URLSearchParams(c[1] ?? "");
+ const parts = c[0].split("/");
+ return {
+ devExperimentId: parts[0],
+ };
+}
+
export function constructPayPushUri(args: {
exchangeBaseUrl: string;
contractPriv: string;