diff options
author | Florian Dold <florian@dold.me> | 2022-10-12 21:19:09 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-10-12 21:20:22 +0200 |
commit | 3da1e82a245851c384c22293c928fcef1c4c2f34 (patch) | |
tree | 27de90b822f2d8047524659fd8a5084d26ef65bc /packages/taler-util | |
parent | 8bfa77200e711718e24c72ee84a28fa443c61786 (diff) | |
download | wallet-core-3da1e82a245851c384c22293c928fcef1c4c2f34.tar.xz |
wallet-core: skeleton for dev-experiments
Diffstat (limited to 'packages/taler-util')
-rw-r--r-- | packages/taler-util/src/taleruri.ts | 21 | ||||
-rw-r--r-- | packages/taler-util/src/walletTypes.ts | 10 |
2 files changed, 31 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; diff --git a/packages/taler-util/src/walletTypes.ts b/packages/taler-util/src/walletTypes.ts index 7495e02d6..05b18fe6d 100644 --- a/packages/taler-util/src/walletTypes.ts +++ b/packages/taler-util/src/walletTypes.ts @@ -1683,6 +1683,16 @@ export interface AcceptPeerPullPaymentRequest { peerPullPaymentIncomingId: string; } +export interface ApplyDevExperimentRequest { + devExperimentUri: string; +} + +export const codecForApplyDevExperiment = + (): Codec<ApplyDevExperimentRequest> => + buildCodecForObject<ApplyDevExperimentRequest>() + .property("devExperimentUri", codecForString()) + .build("ApplyDevExperimentRequest"); + export const codecForAcceptPeerPullPaymentRequest = (): Codec<AcceptPeerPullPaymentRequest> => buildCodecForObject<AcceptPeerPullPaymentRequest>() |