taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

get-exchange-detailed-info.rst (2219B)


      1 .. ts:op:: getExchangeDetailedInfo
      2   :read-only:
      3 
      4   Get detailed information about an exchange, including a timeline
      5   for the fees charged by the exchange.
      6 
      7   **Request:**
      8 
      9   The request arguments must be a `GetExchangeDetailedInfoRequest`
     10   object.
     11 
     12   **Response:**
     13 
     14   On success, the result is an `ExchangeDetailedResponse` object.
     15 
     16   **Expected errors:**
     17 
     18   The caller can handle the following errors inline:
     19   ``WALLET_EXCHANGE_ENTRY_NOT_FOUND``.
     20 
     21   **Details:**
     22 
     23   The ``denomFees``, ``transferFees`` and ``globalFees`` of the
     24   result are timelines: each `FeeDescription` covers the time range
     25   from ``from`` to ``until`` during which the fee applies.
     26 
     27 .. ts:def:: GetExchangeDetailedInfoRequest
     28 
     29   interface GetExchangeDetailedInfoRequest {
     30     exchangeBaseUrl: string;
     31   }
     32 
     33 .. ts:def:: ExchangeDetailedResponse
     34 
     35   interface ExchangeDetailedResponse {
     36     exchange: ExchangeFullDetails;
     37   }
     38 
     39 .. ts:def:: ExchangeFullDetails
     40 
     41   interface ExchangeFullDetails {
     42     exchangeBaseUrl: string;
     43 
     44     currency: string;
     45 
     46     paytoUris: string[];
     47 
     48     auditors: ExchangeAuditor[];
     49 
     50     wireInfo: WireInfo;
     51 
     52     denomFees: DenomOperationMap<FeeDescription[]>;
     53 
     54     transferFees: Record<string, FeeDescription[]>;
     55 
     56     globalFees: FeeDescription[];
     57   }
     58 
     59 .. ts:def:: DenomOperation
     60 
     61   type DenomOperation = "deposit" | "withdraw" | "refresh" | "refund";
     62 
     63 .. ts:def:: DenomOperationMap
     64 
     65   type DenomOperationMap<T> = { [op in DenomOperation]: T };
     66 
     67 .. ts:def:: FeeDescription
     68 
     69   interface FeeDescription {
     70     group: string;
     71 
     72     from: AbsoluteTime;
     73 
     74     until: AbsoluteTime;
     75 
     76     fee?: AmountString;
     77   }
     78 
     79 .. ts:def:: WireInfo
     80 
     81   interface WireInfo {
     82     feesForType: WireFeeMap;
     83 
     84     accounts: ExchangeWireAccount[];
     85   }
     86 
     87 .. ts:def:: WireFeeMap
     88 
     89   type WireFeeMap = { [wireMethod: string]: WireFee[] };
     90 
     91 .. ts:def:: WireFee
     92 
     93   // Wire fee for one wire method
     94   interface WireFee {
     95     // Fee for wire transfers.
     96     wireFee: AmountString;
     97 
     98     // Fees to close and refund a reserve.
     99     closingFee: AmountString;
    100 
    101     // Start date of the fee.
    102     startStamp: TalerProtocolTimestamp;
    103 
    104     // End date of the fee.
    105     endStamp: TalerProtocolTimestamp;
    106 
    107     // Signature made by the exchange master key.
    108     sig: string;
    109   }