aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/declaration.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/declaration.d.ts')
-rw-r--r--packages/merchant-backoffice-ui/src/declaration.d.ts75
1 files changed, 63 insertions, 12 deletions
diff --git a/packages/merchant-backoffice-ui/src/declaration.d.ts b/packages/merchant-backoffice-ui/src/declaration.d.ts
index 58e14a114..2c5730666 100644
--- a/packages/merchant-backoffice-ui/src/declaration.d.ts
+++ b/packages/merchant-backoffice-ui/src/declaration.d.ts
@@ -48,6 +48,64 @@ type Amount = string;
type UUID = string;
type Integer = number;
+interface WireAccount {
+ // payto:// URI identifying the account and wire method
+ payto_uri: string;
+
+ // URI to convert amounts from or to the currency used by
+ // this wire account of the exchange. Missing if no
+ // conversion is applicable.
+ conversion_url?: string;
+
+ // Restrictions that apply to bank accounts that would send
+ // funds to the exchange (crediting this exchange bank account).
+ // Optional, empty array for unrestricted.
+ credit_restrictions: AccountRestriction[];
+
+ // Restrictions that apply to bank accounts that would receive
+ // funds from the exchange (debiting this exchange bank account).
+ // Optional, empty array for unrestricted.
+ debit_restrictions: AccountRestriction[];
+
+ // Signature using the exchange's offline key over
+ // a TALER_MasterWireDetailsPS
+ // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.
+ master_sig: EddsaSignature;
+}
+
+type AccountRestriction = RegexAccountRestriction | DenyAllAccountRestriction;
+
+// Account restriction that disables this type of
+// account for the indicated operation categorically.
+interface DenyAllAccountRestriction {
+ type: "deny";
+}
+
+// Accounts interacting with this type of account
+// restriction must have a payto://-URI matching
+// the given regex.
+interface RegexAccountRestriction {
+ type: "regex";
+
+ // Regular expression that the payto://-URI of the
+ // partner account must follow. The regular expression
+ // should follow posix-egrep, but without support for character
+ // classes, GNU extensions, back-references or intervals. See
+ // https://www.gnu.org/software/findutils/manual/html_node/find_html/posix_002degrep-regular-expression-syntax.html
+ // for a description of the posix-egrep syntax. Applications
+ // may support regexes with additional features, but exchanges
+ // must not use such regexes.
+ payto_regex: string;
+
+ // Hint for a human to understand the restriction
+ // (that is hopefully easier to comprehend than the regex itself).
+ human_hint: string;
+
+ // Map from IETF BCP 47 language tags to localized
+ // human hints.
+ human_hint_i18n?: { [lang_tag: string]: string };
+}
+
export namespace ExchangeBackend {
interface WireResponse {
// Master public key of the exchange, must match the key returned in /keys.
@@ -61,14 +119,6 @@ export namespace ExchangeBackend {
// to wire fees.
fees: { method: AggregateTransferFee };
}
- interface WireAccount {
- // payto:// URI identifying the account and wire method
- payto_uri: string;
-
- // Signature using the exchange's offline key
- // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.
- master_sig: EddsaSignature;
- }
interface AggregateTransferFee {
// Per transfer wire transfer fee.
wire_fee: Amount;
@@ -1028,8 +1078,8 @@ export namespace MerchantBackend {
// Public key identifying the reserve
reserve_pub: EddsaPublicKey;
- // Wire account of the exchange where to transfer the funds
- payto_uri: string;
+ // Wire accounts of the exchange where to transfer the funds.
+ accounts: WireAccount[];
}
interface TipCreateRequest {
// Amount that the customer should be tipped
@@ -1084,9 +1134,10 @@ export namespace MerchantBackend {
// Is this reserve active (false if it was deleted but not purged)?
active: boolean;
- // URI to use to fill the reserve, can be NULL
+ // Array of wire accounts of the exchange that could
+ // be used to fill the reserve, can be NULL
// if the reserve is inactive or was already filled
- payto_uri: string;
+ accounts?: WireAccount[];
// URL of the exchange hosting the reserve,
// NULL if the reserve is inactive