summaryrefslogtreecommitdiff
path: root/taler-wallet.rst
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-10-04 16:32:12 +0200
committerFlorian Dold <florian@dold.me>2022-10-04 16:32:12 +0200
commit9758c90c6bcbd8306553af901aea29115ee680a9 (patch)
treedc69d3dcb7e424183203e8c31fe0dc7618b4c876 /taler-wallet.rst
parent34f9ac958f1e2dc4e33e40c330531963f6d09d22 (diff)
downloaddocs-9758c90c6bcbd8306553af901aea29115ee680a9.tar.gz
docs-9758c90c6bcbd8306553af901aea29115ee680a9.tar.bz2
docs-9758c90c6bcbd8306553af901aea29115ee680a9.zip
remove docs for wallet API that are now auto-generated
Diffstat (limited to 'taler-wallet.rst')
-rw-r--r--taler-wallet.rst943
1 files changed, 0 insertions, 943 deletions
diff --git a/taler-wallet.rst b/taler-wallet.rst
index 0d889a3a..5dc47c5f 100644
--- a/taler-wallet.rst
+++ b/taler-wallet.rst
@@ -86,10 +86,6 @@ Please see :ref:`Build-apps-from-source` in the :doc:`taler-developer-manual`.
APIs and Data Formats
=====================
-.. warning::
-
- These APIs are still a work in progress and *not* final.
-
Envelope Format
---------------
@@ -153,487 +149,6 @@ following envelope:
details: unknown;
}
-Balances
---------
-
-Balances are the amounts of digital cash held by the wallet.
-
-:name: ``"getBalances"``
-:description: Get a list of balances per currency.
-:response:
- .. ts:def:: BalancesResponse
-
- interface BalancesResponse {
- // a list of balances sorted by currency.
- // (currencies with shorter names first, then lexically ascending).
- //
- // Note: Even when a currency has no balance, but pending or past transactions,
- // it should be included in this list with a balance of zero.
- balances: Balance[];
- }
-
- .. ts:def:: Balance
-
- // Balance for one currency.
- // The currency can be derived from any of the
- // "Amount" fields, as the currency is present even
- // when the amount is zero.
- interface Balance {
- // The total Amount that is currently available to be spent
- // including amounts tied up in ongoing refresh operations. These are hidden from the user.
- // If the user tries to spend coins locked up this way,
- // the wallet will give an error message different from "insufficient balance".
- available: Amount;
-
- // the total incoming amount that will be added to the available balance
- // when all pending transactions succeed (including internal refreshes)
- pendingIncoming: Amount;
-
- // the total outgoing amount that will be subtracted from the available balance
- // when all pending transactions succeed (including internal refreshes)
- pendingOutgoing: Amount;
-
- // true if the balance requires user-interaction, e.g. accepting a tip
- // (DEV: can be left out of a first implementation)
- requiresUserInput: boolean;
- }
-
-Transactions
-------------
-
-Transactions are all operations or events that affect the balance.
-
-:Name: ``"getTransactions"``
-:Description: Get a list of past and pending transactions.
-:Request:
- .. ts:def:: TransactionsRequest
-
- interface TransactionsRequest {
- // return only transactions in the given currency, if present
- currency?: string;
-
- // if present, results will be limited to transactions related to the given search string
- search?: string;
- }
-:Response:
- .. ts:def:: TransactionsResponse
-
- interface TransactionsResponse {
- // a list of past and pending transactions sorted by pending, timestamp and transactionId.
- // In case two events are both pending and have the same timestamp,
- // they are sorted by the transactionId
- // (i.e. pending before non-pending transactions, newer before older
- // and if all equal transactionId lexically ascending).
- transactions: Transaction[];
- }
-
- .. ts:def:: Transaction
-
- interface Transaction {
- // opaque unique ID for the transaction, used as a starting point for paginating queries
- // and for invoking actions on the transaction (e.g. deleting/hiding it from the history)
- transactionId: string;
-
- // the type of the transaction; different types might provide additional information
- type: TransactionType;
-
- // main timestamp of the transaction
- timestamp: Timestamp;
-
- // true if the transaction is still pending, false otherwise
- // If a transaction is not longer pending, its timestamp will be updated,
- // but its transactionId will remain unchanged
- pending: boolean;
-
- // if present, the transaction encountered a fatal error that needs to be shown to the user
- error?: TransactionError;
-
- // Raw amount of the transaction (exclusive of fees or other extra costs)
- amountRaw: Amount;
-
- // Amount added or removed from the wallet's balance (including all fees and other costs)
- amountEffective: Amount;
- }
-
- .. ts:def:: TransactionType
-
- type TransactionType = (
- TransactionWithdrawal |
- TransactionPayment |
- TransactionRefund |
- TransactionTip |
- TransactionRefresh
- )
-
- .. ts:def:: TransactionError
-
- interface TransactionError {
- // TALER_EC_* unique error code.
- // The action(s) offered and message displayed on the transaction item depend on this code.
- ec: number;
-
- // English-only error hint, if available.
- hint?: string;
-
- // Error details specific to "ec", if applicable/available
- details?: any;
- }
-
- .. ts:def:: WithdrawalDetails
-
- export type WithdrawalDetails =
- | WithdrawalDetailsForManualTransfer
- | WithdrawalDetailsForTalerBankIntegrationApi;
-
- .. ts:def:: WithdrawalDetailsForManualTransfer
-
- interface WithdrawalDetailsForManualTransfer {
- type: "manual-transfer";
-
- // Payto URIs that the exchange supports.
- // Already contains the amount and message.
- exchangePaytoUris: string[];
-
- // Public key of the newly created reserve.
- // Not useful for the UI, but required for integration testing.
- reservePub: string;
- }
-
- .. ts:def:: WithdrawalDetailsForTalerBankIntegrationApi
-
- interface WithdrawalDetailsForTalerBankIntegrationApi {
- type: "taler-bank-integration-api";
-
- // Set to true if the bank has confirmed the withdrawal, false if not.
- // An unconfirmed withdrawal usually requires user-input and should be highlighted in the UI.
- // See also bankConfirmationUrl below.
- confirmed: boolean;
-
- // If the withdrawal is unconfirmed, this can include a URL for user
- // initiated confirmation.
- bankConfirmationUrl?: string;
- }
-
- .. ts:def:: TransactionWithdrawal
-
- // This should only be used for actual withdrawals
- // and not for tips that have their own transactions type.
- interface TransactionWithdrawal extends Transaction {
- type: string = "withdrawal",
-
- // Exchange that was withdrawn from.
- exchangeBaseUrl: string;
-
- // Amount that has been subtracted from the reserve's balance for this withdrawal.
- amountRaw: Amount;
-
- // Amount that actually was (or will be) added to the wallet's balance.
- // Should always be shown as a positive amount.
- amountEffective: Amount;
-
- // Further details
- withdrawalDetails: WithdrawalDetails;
- }
-
- .. ts:def:: TransactionPayment
-
- interface TransactionPayment extends Transaction {
- type: string = "payment",
-
- // Additional information about the payment.
- info: OrderShortInfo;
-
- // Wallet-internal end-to-end identifier for the payment
- // (assigned before the order is even downloaded, thus the name).
- proposalId: string;
-
- // The current status of this payment.
- status: PaymentStatus;
-
- // Amount that must be paid for the contract
- amountRaw: Amount;
-
- // Amount that was paid, including deposit, wire and refresh fees.
- // Should always be shown as a negative amount.
- amountEffective: Amount;
- }
-
- .. ts:def:: OrderShortInfo
-
- interface OrderShortInfo {
- // Order ID, uniquely identifies the order within a merchant instance
- orderId: string;
-
- // More information about the merchant
- merchant: Merchant;
-
- // Summary of the order, given by the merchant
- summary: string;
-
- // Map from IETF BCP 47 language tags to localized summaries
- summary_i18n?: { [lang_tag: string]: string };
-
- // List of products that are part of the order
- products: Product[];
-
- // URL of the fulfillment, given by the merchant
- fulfillmentUrl?: string;
-
- // Message shown to the user after the payment is complete.
- fulfillmentMessage?: string;
-
- // Map from IETF BCP 47 language tags to localized fulfillment messages
- fulfillmentMessage_i18n: { [lang_tag: string]: string };
- }
-
- .. ts:def:: PaymentStatus
-
- enum PaymentStatus {
- // Explicitly aborted after timeout / failure
- Aborted = "aborted",
-
- // Payment failed, wallet will auto-retry.
- // User should be given the option to retry now / abort.
- Failed = "failed",
-
- // Paid successfully
- Paid = "paid",
-
- // Only offered, user must accept / decline
- Offered = "offered",
-
- // User accepted, payment is processing.
- Accepted = "accepted",
- }
-
- .. ts:def:: TransactionRefund
-
- interface TransactionRefund extends Transaction {
- type: string = "refund",
-
- // ID for the transaction that is refunded
- refundedTransactionId: string;
-
- // Additional information about the refunded payment
- info: OrderShortInfo;
-
- // Part of the refund that couldn't be applied because the refund permissions were expired
- amountInvalid: Amount;
-
- // Amount that has been refunded by the merchant.
- // Corresponds to amountRefundGranted from the applyRefund response.
- amountRaw: Amount;
-
- // Amount will be added to the wallet's balance after fees and refreshing.
- // Should always be shown as a positive amount.
- amountEffective: Amount;
- }
-
- .. ts:def:: TransactionTip
-
- interface TransactionTip extends Transaction {
- type: string = "tip",
-
- // The current status of this tip.
- status: TipStatus;
-
- // Exchange that the tip will be (or was) withdrawn from
- exchangeBaseUrl: string;
-
- // More information about the merchant that sent the tip
- merchant: Merchant;
-
- // Raw amount of the tip, without extra fees that apply
- amountRaw: Amount;
-
- // Amount will be (or was) added to the wallet's balance after fees and refreshing.
- // Should always be shown as a positive amount.
- amountEffective: Amount;
- }
-
- .. ts:def:: TipStatus
-
- enum TipStatus {
- // Only offered, user must accept / decline
- Offered = "offered",
-
- // User accepted, tip is processing.
- Accepted = "accepted",
-
- // User declined.
- Declined = "declined",
-
- // Received successfully
- Received = "received",
- }
-
- .. ts:def:: TransactionRefresh
-
- // A transaction shown for refreshes that are not associated to other transactions
- // such as a refresh necessary before coin expiration.
- // It should only be returned by the API if the effective amount is different from zero.
- interface TransactionRefresh extends Transaction {
- type: string = "refresh",
-
- // Exchange that the coins are refreshed with
- exchangeBaseUrl: string;
-
- // Raw amount that is refreshed
- amountRaw: Amount;
-
- // Amount that will be paid as fees for the refresh.
- // Should always be shown as a negative amount.
- amountEffective: Amount;
- }
-
-
-:Name: ``"deleteTransaction"``
-:Description: Delete a transaction by ID.
-:Request:
- .. ts:def:: DeleteTransactionRequest
-
- interface DeleteTransactionRequest {
- // Transaction ID (opaque!) as returned in
- // the transaction list response.
- transactionId: string;
- }
-:Response: Returns an empty object
-
-Refunds
--------
-
-:Name: ``"applyRefund"``
-:Description: Process a refund from a ``taler://refund`` URI.
-:Request:
- .. ts:def:: WalletApplyRefundRequest
-
- interface WalletApplyRefundRequest {
- talerRefundUri: string;
- }
-:Response:
- .. ts:def:: WalletApplyRefundResponse
-
- interface WalletApplyRefundResponse {
- // Identifier for the purchase that was refunded
- // DEPRECATED: Will disappear soon.
- contractTermsHash: string;
-
- amountEffectivePaid: Amount;
-
- amountRefundGranted: Amount;
-
- amountRefundGone: Amount;
-
- pendingAtExchange: boolean;
-
- // Short info about the order being refunded.
- info: OrderShortInfo;
- }
-
-Exchange Management
--------------------
-
-List Exchanges
-~~~~~~~~~~~~~~
-
-:Name: ``"listExchanges"``
-:Description:
- List all exchanges.
-:Response:
- .. ts:def:: ExchangesListResponse
-
- interface ExchangesListResponse {
- exchanges: ExchangeListItem[];
- }
-
- .. ts:def:: ExchangeListItem
-
- interface ExchangeListItem {
- exchangeBaseUrl: string;
- currency: string;
- paytoUris: string[];
- }
-
-Add Exchange
-~~~~~~~~~~~~
-
-:Name: ``"addExchange"``
-:Description:
- Add an exchange.
-:Request:
- .. ts:def:: ExchangeAddRequest
-
- interface ExchangeAddRequest {
- exchangeBaseUrl: string;
- }
-:Response:
- On success, the response is an `ExchangeListItem`.
-
-
-Force Exchange Update
-~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"forceUpdateExchange"``
-:Description:
- Force updating an exchange.
- Re-queries current cryptographic key material, wire information
- and terms of service from the exchange. Also applies denomination revocations
- if applicable.
-:Request:
- .. ts:def:: ExchangeForceUpdateRequest
-
- interface ExchangeForceUpdateRequest {
- exchangeBaseUrl: string;
- }
-:Response:
- On success, the response is an `ExchangeListItem`.
-
-
-Get Terms of Service
-~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"getExchangeTos"``
-:Description:
- Get the exchange's current ToS and which version of the ToS (if any)
- the user has accepted.
-:Request:
- .. ts:def:: ExchangeGetTosRequest
-
- interface ExchangeGetTosRequest {
- exchangeBaseUrl: string;
- }
-:Response:
- .. ts:def:: ExchangeGetTosResult
-
- interface GetExchangeTosResult {
- // Markdown version of the current ToS.
- content: string;
-
- // Version tag of the current ToS.
- currentEtag: string;
-
- // Version tag of the last ToS that the user has accepted,
- // if any.
- acceptedEtag: string | undefined;
- }
-
-Set Accepted Terms of Service Version
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"setExchangeTosAccepted"``
-:Description:
- Store that the user has accepted a version of the exchange's ToS.
-:Request:
- .. ts:def:: ExchangeSetTosAccepted
-
- interface ExchangeGetTosRequest {
- exchangeBaseUrl: string;
- etag: string;
- }
-:Response:
- On success, the response is an empty object.
-
-
Withdrawal
----------
@@ -657,464 +172,6 @@ A typical API sequence for *manual* withdrawals can for example look like this:
#. ``"acceptManualWithdrawal"`` after the user confirmed withdrawal with associated fees
-Get Details For Bank-integrated Withdrawal
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"getWithdrawalDetailsForUri"``
-:Description:
- Get information about exchanges for a bank-integrated withdrawal from a ``taler://withdraw`` URI.
-:Request:
- .. ts:def:: GetWithdrawalUriDetailsRequest
-
- interface GetWithdrawalUriDetailsRequest {
- talerWithdrawUri: string;
- }
-:Response:
- .. ts:def:: WithdrawalDetailsForUri
-
- interface WithdrawalDetailsForUri {
- // The amount that the user wants to withdraw
- amount: Amount;
-
- // Exchange suggested by the wallet
- defaultExchangeBaseUrl?: string;
-
- // A list of exchanges that can be used for this withdrawal
- possibleExchanges: ExchangeListItem[];
- }
-
-Get Withdrawal Details
-~~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"getWithdrawalDetailsForAmount"``
-:Description:
- Get information about fees and exchange for a withdrawal of a given amount.
- Can be used for both bank-integrated and manual withdrawals.
-:Request:
- .. ts:def:: WithdrawalDetailsRequest
-
- interface WithdrawalDetailsRequest {
- exchangeBaseUrl: string;
- amount: Amount;
- }
-:Response:
- .. ts:def:: WithdrawalDetails
-
- interface WithdrawalDetails {
- // Did the user accept the current version of the exchange's terms of service?
- tosAccepted: boolean;
-
- // Amount that will be transferred to the exchange.
- amountRaw: Amount;
-
- // Amount that will be added to the user's wallet balance.
- amountEffective: Amount;
- }
-
-Accept Bank-integrated Withdrawal
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"acceptWithdrawal"``
-:Description:
- Accept a bank-integrated withdrawal, where the bank transfers funds automatically.
-:Request:
- .. ts:def:: GetManualWithdrawalDetailsRequest
-
- interface AcceptWithdrawalRequest {
- talerWithdrawUri: string;
- exchangeBaseUrl: string;
- }
-:Response:
- .. ts:def:: AcceptWithdrawalResponse
-
- interface AcceptWithdrawalResponse {
- // a URL for user initiated confirmation.
- bankConfirmationUrl?: string;
- }
-
-Accept Manual Withdrawal
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"acceptManualWithdrawal"``
-:Description:
- Accept a manual withdrawal, where the user has to transfer funds manually.
-:Request:
- .. ts:def:: AcceptManualWithdrawalRequest
-
- interface AcceptManualWithdrawalRequest {
- exchangeBaseUrl: string;
- amount: Amount;
- }
-:Response:
- .. ts:def:: AcceptManualWithdrawalResponse
-
- interface AcceptManualWithdrawalResponse {
- // Payto URIs to fund the withdrawal,
- // with amount and message provided.
- exchangePaytoUris: string[];
- }
-
-Deposits
---------
-
-Deposits are direct payments into a payment target (given via
-a payto URI). They don't involve a merchant.
-
-:Name: ``"createDepositGroup"``
-:Description:
- Deposit funds directly into a payment target.
-:Request:
- .. ts:def:: CreateDepositGroupRequest
-
- interface CreateDepositGroupRequest {
- depositPaytoUri: string;
- amount: Amount;
- }
-:Response:
- .. ts:def:: CreateDepositGroupResponse
-
- interface CreateDepositGroupResponse {
- depositGroupId: string;
- }
-
-
-Payments
---------
-
-Prepare Pay
-~~~~~~~~~~~
-
-:Name: ``"preparePay"``
-:Description:
- Fetch information about a payment request from a merchant.
-:Request:
- .. ts:def:: PreparePayRequest
-
- interface PreparePayRequest {
- talerPayUri: string;
- }
-:Response:
- .. ts:def:: PreparePayResponse
-
- type PreparePayResponse =
- | PreparePayPaymentPossibleResponse
- | PreparePayAlreadyConfirmedResponse
- | PreparePayInsufficientBalanceResponse;
-
- .. ts:def:: PreparePayPaymentPossibleResponse
-
- interface PreparePayPaymentPossibleResponse {
- status: "payment-possible";
-
- proposalId: string;
-
- // Verbatim contract terms as generated by the merchant.
- contractTerms: ContractTerms;
-
- // Amount that the merchant is asking for.
- amountRaw: Amount;
-
- // Amount that will effectively be subtracted from the wallet's
- // balance when accepting this proposal.
- amountEffective: Amount;
- }
-
- .. ts:def:: PreparePayInsufficientBalanceResponse
-
- interface PreparePayInsufficientBalanceResponse {
- status: "insufficient-balance";
-
- proposalId: string;
-
- // Amount that the merchant is asking for.
- amountRaw: Amount;
-
- // Verbatim contract terms as generated by the merchant.
- contractTerms: ContractTerms;
- }
-
- .. ts:def:: PreparePayAlreadyConfirmedResponse
-
- interface PreparePayAlreadyConfirmedResponse {
- status: "already-confirmed";
-
- proposalId: string;
-
- // Did the payment succeed?
- paid: boolean;
-
- // Amount that the merchant is asking for.
- amountRaw: Amount;
-
- // Amount that will be subtracted from the wallet balance
- amountEffective: Amount;
-
- // Verbatim contract terms as generated by the merchant.
- contractTerms: ContractTerms;
- }
-
-
-Confirm Payment
-~~~~~~~~~~~~~~~
-
-:Name: ``"confirmPay"``
-:Description:
- Confirm making a payment.
-
-:Request:
- .. ts:def:: GetManualWithdrawalDetailsRequest
-
- interface ConfirmPayRequest {
- proposalId: string;
- }
-:Response:
- .. ts:def:: ConfirmPayResultDone
-
- interface ConfirmPayResultDone {
- type: "done";
-
- contractTerms: ContractTerms;
- }
-
- .. ts:def:: ConfirmPayResultPending
-
- // Payment was marked as confirmed,
- // but the attempt(s) to pay were not successful yet.
- interface ConfirmPayPending {
- type: "pending";
-
- lastError: TransactionError;
- }
-
- .. ts:def:: ConfirmPayResult
-
- type ConfirmPayResult =
- | ConfirmPayResultDone;
- | ConfirmPayResultPending;
-
-Abort Failed Payment
-~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"abortFailedPayWithRefund"``
-:Description:
- Abort a failed payment and try to get a refund for the
- partially paid amount.
-:Request:
- .. ts:def:: AbortPayWithRefundRequest
-
- export interface AbortPayWithRefundRequest {
- proposalId: string;
- }
-:Response:
- On success, the response is an empty object.
-
-Tipping API Calls
------------------
-
-Preparing a tip
-~~~~~~~~~~~~~~~
-
-:Name: ``"prepareTip"``
-:Description:
- Prepare to accept a tip based in a ``taler://tip`` URI.
-:Request:
- .. ts:def:: PrepareTipRequest
-
- interface PrepareTipRequest {
- talerTipUri: string;
- }
-:Response:
- .. ts:def:: PrepareTipResult
-
- interface PrepareTipResult {
- // Unique ID for the tip assigned by the wallet.
- // Typically different from the merchant-generated tip ID.
- walletTipId: string;
-
- // Has the tip already been accepted?
- accepted: boolean;
- tipAmountRaw: Amount;
- tipAmountEffective: Amount;
- exchangeBaseUrl: string;
- expirationTimestamp: Timestamp;
- }
-
-
-Accepting a tip
-~~~~~~~~~~~~~~~
-
-:Name: ``"acceptTip"``
-:Description:
- Prepare to accept a tip based in a ``taler://tip`` URI.
-:Request:
- .. ts:def:: AcceptTipRequest
-
- interface AcceptTipRequest {
- walletTipId: string;
- }
-:Response:
- On success, the response is an empty object.
-
-Testing API calls
------------------
-
-The following API calls are useful for testing.
-
-Withdraw balance from the TESTKUDOS environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"withdrawTestkudos"``
-:Description:
- Withdraw a balance from the ``TESTKUDOS`` environment.
-:Request:
- The request parameters are ignored.
-:Response:
- On success, the response is an empty object.
-
-Withdraw balance from a test environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"withdrawTestBalance"``
-:Description:
- Withdraw a balance from a test environment.
-:Request:
- .. ts:def:: WithdrawTestBalanceRequest
-
- interface WithdrawTestBalanceRequest {
- amount: string;
- bankBaseUrl: string;
- exchangeBaseUrl: string;
- }
-:Response:
- On success, the response is an empty object.
-
-Run integration test
-~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"runIntegrationTest"``
-:Description:
- Run a basic integration test that does a withdrawal, payment,
- refund and again a payment. Useful to generate test data
- in the integration tests of other components.
-:Request:
- .. ts:def:: IntegrationTestArgs
-
- interface IntegrationTestArgs {
- exchangeBaseUrl: string;
- bankBaseUrl: string;
- merchantBaseUrl: string;
- merchantApiKey: string;
- amountToWithdraw: string;
- amountToSpend: string;
- }
-:Response:
- On success, the response is an empty object.
-
-Make a test payment
-~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"testPay"``
-:Description:
- Make a test payment with existing funds.
-:Request:
- .. ts:def:: TestPayArgs
-
- interface TestPayArgs {
- merchantBaseUrl: string;
- merchantApiKey: string;
- amount: string;
- summary: string;
- }
-
-
-Dump all coins to JSON
-~~~~~~~~~~~~~~~~~~~~~~
-
-:Name: ``"dumpCoins"``
-:Description:
- Make a test payment with existing funds.
-:Request:
- The request object is ignored.
-:Response:
- .. code:: ts
-
- interface CoinDumpJson {
- coins: Array<{
- /**
- * The coin's denomination's public key.
- */
- denom_pub: string;
- /**
- * Hash of denom_pub.
- */
- denom_pub_hash: string;
- /**
- * Value of the denomination (without any fees).
- */
- denom_value: string;
- /**
- * Public key of the coin.
- */
- coin_pub: string;
- /**
- * Base URL of the exchange for the coin.
- */
- exchange_base_url: string;
- /**
- * Remaining value on the coin, to the knowledge of
- * the wallet.
- */
- remaining_value: string;
- /**
- * Public key of the parent coin.
- * Only present if this coin was obtained via refreshing.
- */
- refresh_parent_coin_pub: string | undefined;
- /**
- * Public key of the reserve for this coin.
- * Only present if this coin was obtained via refreshing.
- */
- withdrawal_reserve_pub: string | undefined;
- /**
- * Is the coin suspended?
- * Suspended coins are not considered for payments.
- */
- coin_suspended: boolean;
- }>;
- }
-
-
-Suspend/unsuspend a coin
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-A suspended coin will not be used by the wallet for payments.
-This functionality is only used for testing.
-
-:Name: ``"setCoinSuspended"``
-:Description:
- Make a test payment with existing funds.
-:Request:
- .. ts:def:: SetCoinSuspendedRequest
-
- interface SetCoinSuspendedRequest {
- coinPub: string;
- suspended: boolean;
- }
-:Request:
- On success, the response is an empty object.
-
-Global Errors
--------------
-
-* Backup/Sync/Anastasis failed
-* refresh after pay failed for multiple attempts
- (depending on online status)
-* scheduled refresh (to avoid expiration) failed
-* general recoups (?)
-* failed recoup
-* (maybe) fatal errors during withdrawal
-* pending refund failed permanently (?)
-
Integration Tests
=================