diff options
Diffstat (limited to 'packages/taler-util/src')
| -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>() | 
