gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-docs] branch master updated: update wallet-core API docs


From: gnunet
Subject: [taler-docs] branch master updated: update wallet-core API docs
Date: Thu, 20 Oct 2022 15:31:27 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository docs.

The following commit(s) were added to refs/heads/master by this push:
     new c17cccd  update wallet-core API docs
c17cccd is described below

commit c17cccd386d3784ea0862124d1962ec9efe605fa
Author: Florian Dold <florian@dold.me>
AuthorDate: Thu Oct 20 15:31:24 2022 +0200

    update wallet-core API docs
---
 wallet/wallet-core.md | 1430 ++++++++++++++++++++++++++++++++++---------------
 1 file changed, 993 insertions(+), 437 deletions(-)

diff --git a/wallet/wallet-core.md b/wallet/wallet-core.md
index 09619dc..98f22c1 100644
--- a/wallet/wallet-core.md
+++ b/wallet/wallet-core.md
@@ -3,10 +3,13 @@ This file is auto-generated from 
[wallet-core](https://git.taler.net/wallet-core
 ## Overview
 ###  Initialization
 * [InitWalletOp](#initwalletop)
+* [GetVersionOp](#getversionop)
 ###  Basic Wallet Information
 * [GetBalancesOp](#getbalancesop)
 ###  Managing Transactions
 * [GetTransactionsOp](#gettransactionsop)
+* [GetTransactionByIdOp](#gettransactionbyidop)
+* [RetryPendingNowOp](#retrypendingnowop)
 * [DeleteTransactionOp](#deletetransactionop)
 * [RetryTransactionOp](#retrytransactionop)
 ###  Withdrawals
@@ -16,26 +19,37 @@ This file is auto-generated from 
[wallet-core](https://git.taler.net/wallet-core
 * [AcceptManualWithdrawalOp](#acceptmanualwithdrawalop)
 ###  Merchant Payments
 * [PreparePayForUriOp](#preparepayforuriop)
+* [GetContractTermsDetailsOp](#getcontracttermsdetailsop)
 * [ConfirmPayOp](#confirmpayop)
 * [AbortPayWithRefundOp](#abortpaywithrefundop)
 * [ApplyRefundOp](#applyrefundop)
+* [ApplyRefundFromPurchaseIdOp](#applyrefundfrompurchaseidop)
+* [PrepareRefundOp](#preparerefundop)
 ###  Tipping
 * [PrepareTipOp](#preparetipop)
 * [AcceptTipOp](#accepttipop)
 ###  Exchange Management
 * [ListExchangesOp](#listexchangesop)
 * [AddExchangeOp](#addexchangeop)
+* [ListKnownBankAccountsOp](#listknownbankaccountsop)
+* [AddKnownBankAccountsOp](#addknownbankaccountsop)
+* [ForgetKnownBankAccountsOp](#forgetknownbankaccountsop)
 * [SetExchangeTosAcceptedOp](#setexchangetosacceptedop)
 * [GetExchangeTosOp](#getexchangetosop)
+* [GetExchangeDetailedInfoOp](#getexchangedetailedinfoop)
 * [ListCurrenciesOp](#listcurrenciesop)
 ###  Deposits
 * [CreateDepositGroupOp](#createdepositgroupop)
 * [TrackDepositGroupOp](#trackdepositgroupop)
+* [GetFeeForDepositOp](#getfeefordepositop)
+* [PrepareDepositOp](#preparedepositop)
 ###  Backups
 * [ExportBackupRecoveryOp](#exportbackuprecoveryop)
 * [ImportBackupRecoveryOp](#importbackuprecoveryop)
 * [RunBackupCycleOp](#runbackupcycleop)
+* [ExportBackupOp](#exportbackupop)
 * [AddBackupProviderOp](#addbackupproviderop)
+* [RemoveBackupProviderOp](#removebackupproviderop)
 * [GetBackupInfoOp](#getbackupinfoop)
 * [SetWalletDeviceIdOp](#setwalletdeviceidop)
 * [ExportBackupPlainOp](#exportbackupplainop)
@@ -48,10 +62,14 @@ This file is auto-generated from 
[wallet-core](https://git.taler.net/wallet-core
 * [AcceptPeerPullPaymentOp](#acceptpeerpullpaymentop)
 ###  Database Management
 * [ExportDbOp](#exportdbop)
+* [ImportDbOp](#importdbop)
 * [ClearDbOp](#cleardbop)
 * [RecycleOp](#recycleop)
 ###  Testing and Debugging
+* [ApplyDevExperimentOp](#applydevexperimentop)
+* [SetDevModeOp](#setdevmodeop)
 * [RunIntegrationTestOp](#runintegrationtestop)
+* [TestCryptoOp](#testcryptoop)
 * [WithdrawTestBalanceOp](#withdrawtestbalanceop)
 * [WithdrawTestkudosOp](#withdrawtestkudosop)
 * [TestPayOp](#testpayop)
@@ -71,10 +89,27 @@ This file is auto-generated from 
[wallet-core](https://git.taler.net/wallet-core
 export type InitWalletOp = {
   op: WalletApiOperation.InitWallet;
   request: {};
-  response: {};
+  response: InitResponse;
 };
 // InitWallet = "initWallet"
 
+```
+```typescript
+export interface InitResponse {
+  versionInfo: WalletCoreVersion;
+}
+
+```
+
+### GetVersionOp
+```typescript
+export type GetVersionOp = {
+  op: WalletApiOperation.GetVersion;
+  request: {};
+  response: WalletCoreVersion;
+};
+// GetVersion = "getVersion"
+
 ```
 
 ### GetBalancesOp
@@ -123,359 +158,51 @@ export type GetTransactionsOp = {
 ```typescript
 export interface TransactionsRequest {
   /**
-   * return only transactions in the given currency
-   */
-  currency?: string;
-  /**
-   * if present, results will be limited to transactions related to the given 
search string
-   */
-  search?: string;
-}
-
-```
-```typescript
-export interface TransactionsResponse {
-  transactions: Transaction[];
-}
-
-```
-```typescript
-export declare type Transaction =
-  | TransactionWithdrawal
-  | TransactionPayment
-  | TransactionRefund
-  | TransactionTip
-  | TransactionRefresh
-  | TransactionDeposit
-  | TransactionPeerPullCredit
-  | TransactionPeerPullDebit
-  | TransactionPeerPushCredit
-  | TransactionPeerPushDebit;
-
-```
-```typescript
-export interface TransactionWithdrawal extends TransactionCommon {
-  type: TransactionType.Withdrawal;
-  /**
-   * Exchange of the withdrawal.
-   */
-  exchangeBaseUrl: string;
-  /**
-   * Amount that got subtracted from the reserve balance.
-   */
-  amountRaw: AmountString;
-  /**
-   * Amount that actually was (or will be) added to the wallet's balance.
-   */
-  amountEffective: AmountString;
-  withdrawalDetails: WithdrawalDetails;
-}
-
-```
-```typescript
-export interface TransactionCommon {
-  transactionId: string;
-  type: TransactionType;
-  timestamp: TalerProtocolTimestamp;
-  pending: boolean;
-  /**
-   * True if the transaction encountered a problem that might be
-   * permanent.  A frozen transaction won't be automatically retried.
-   */
-  frozen: boolean;
-  /**
-   * Raw amount of the transaction (exclusive of fees or other extra costs).
-   */
-  amountRaw: AmountString;
-  /**
-   * Amount added or removed from the wallet's balance (including all fees and 
other costs).
-   */
-  amountEffective: AmountString;
-  error?: TalerErrorDetail;
-}
-
-```
-```typescript
-export declare enum TransactionType {
-  Withdrawal = "withdrawal",
-  Payment = "payment",
-  Refund = "refund",
-  Refresh = "refresh",
-  Tip = "tip",
-  Deposit = "deposit",
-  PeerPushDebit = "peer-push-debit",
-  PeerPushCredit = "peer-push-credit",
-  PeerPullDebit = "peer-pull-debit",
-  PeerPullCredit = "peer-pull-credit",
-}
-
-```
-```typescript
-export declare type WithdrawalDetails =
-  | WithdrawalDetailsForManualTransfer
-  | WithdrawalDetailsForTalerBankIntegrationApi;
-
-```
-```typescript
-interface WithdrawalDetailsForManualTransfer {
-  type: WithdrawalType.ManualTransfer;
-  /**
-   * Payto URIs that the exchange supports.
-   *
-   * Already contains the amount and message.
-   */
-  exchangePaytoUris: string[];
-  reservePub: string;
-}
-
-```
-```typescript
-interface WithdrawalDetailsForTalerBankIntegrationApi {
-  type: WithdrawalType.TalerBankIntegrationApi;
-  /**
-   * 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;
-  reservePub: string;
-}
-
-```
-```typescript
-export interface TransactionPayment extends TransactionCommon {
-  type: TransactionType.Payment;
-  /**
-   * Additional information about the payment.
-   */
-  info: OrderShortInfo;
-  /**
-   * Wallet-internal end-to-end identifier for the payment.
-   */
-  proposalId: string;
-  /**
-   * How far did the wallet get with processing the payment?
-   */
-  status: PaymentStatus;
-  /**
-   * Amount that must be paid for the contract
-   */
-  amountRaw: AmountString;
-  /**
-   * Amount that was paid, including deposit, wire and refresh fees.
-   */
-  amountEffective: AmountString;
-  /**
-   * Amount that has been refunded by the merchant
-   */
-  totalRefundRaw: AmountString;
-  /**
-   * Amount will be added to the wallet's balance after fees and refreshing
-   */
-  totalRefundEffective: AmountString;
-  /**
-   * Amount pending to be picked up
-   */
-  refundPending: AmountString | undefined;
-  /**
-   * Reference to applied refunds
-   */
-  refunds: RefundInfoShort[];
-}
-
-```
-```typescript
-export declare 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",
-  /**
-   * User accepted, payment is processing.
-   */
-  Accepted = "accepted",
-}
-
-```
-```typescript
-export interface RefundInfoShort {
-  transactionId: string;
-  timestamp: TalerProtocolTimestamp;
-  amountEffective: AmountString;
-  amountRaw: AmountString;
-}
-
-```
-```typescript
-export interface TransactionRefund extends TransactionCommon {
-  type: TransactionType.Refund;
-  refundedTransactionId: string;
-  info: OrderShortInfo;
-  /**
-   * Amount pending to be picked up
-   */
-  refundPending: AmountString | undefined;
-  amountRaw: AmountString;
-  amountEffective: AmountString;
-}
-
-```
-```typescript
-export interface TransactionTip extends TransactionCommon {
-  type: TransactionType.Tip;
-  amountRaw: AmountString;
-  /**
-   * More information about the merchant
-   */
-  amountEffective: AmountString;
-  merchantBaseUrl: string;
-}
-
-```
-```typescript
-export interface TransactionRefresh extends TransactionCommon {
-  type: TransactionType.Refresh;
-  exchangeBaseUrl: string;
-  amountRaw: AmountString;
-  amountEffective: AmountString;
-}
-
-```
-```typescript
-/**
- * Deposit transaction, which effectively sends
- * money from this wallet somewhere else.
- */
-export interface TransactionDeposit extends TransactionCommon {
-  type: TransactionType.Deposit;
-  depositGroupId: string;
-  /**
-   * Target for the deposit.
-   */
-  targetPaytoUri: string;
-  /**
-   * Raw amount that is being deposited
-   */
-  amountRaw: AmountString;
-  /**
-   * Effective amount that is being deposited
-   */
-  amountEffective: AmountString;
-}
-
-```
-```typescript
-/**
- * Credit because we were paid for a P2P invoice we created.
- */
-export interface TransactionPeerPullCredit extends TransactionCommon {
-  type: TransactionType.PeerPullCredit;
-  info: PeerInfoShort;
-  /**
-   * Exchange used.
-   */
-  exchangeBaseUrl: string;
-  /**
-   * Amount that got subtracted from the reserve balance.
-   */
-  amountRaw: AmountString;
-  /**
-   * Amount that actually was (or will be) added to the wallet's balance.
-   */
-  amountEffective: AmountString;
-  /**
-   * URI to send to the other party.
-   */
-  talerUri: string;
-}
-
-```
-```typescript
-export interface PeerInfoShort {
-  expiration: TalerProtocolTimestamp | undefined;
-  summary: string | undefined;
-}
-
-```
-```typescript
-/**
- * Debit because we paid someone's invoice.
- */
-export interface TransactionPeerPullDebit extends TransactionCommon {
-  type: TransactionType.PeerPullDebit;
-  info: PeerInfoShort;
-  /**
-   * Exchange used.
-   */
-  exchangeBaseUrl: string;
-  amountRaw: AmountString;
-  amountEffective: AmountString;
-}
-
-```
-```typescript
-/**
- * We received money via a P2P payment.
- */
-export interface TransactionPeerPushCredit extends TransactionCommon {
-  type: TransactionType.PeerPushCredit;
-  info: PeerInfoShort;
-  /**
-   * Exchange used.
-   */
-  exchangeBaseUrl: string;
-  /**
-   * Amount that got subtracted from the reserve balance.
+   * return only transactions in the given currency
    */
-  amountRaw: AmountString;
+  currency?: string;
   /**
-   * Amount that actually was (or will be) added to the wallet's balance.
+   * if present, results will be limited to transactions related to the given 
search string
    */
-  amountEffective: AmountString;
+  search?: string;
 }
 
 ```
 ```typescript
-/**
- * We sent money via a P2P payment.
- */
-export interface TransactionPeerPushDebit extends TransactionCommon {
-  type: TransactionType.PeerPushDebit;
-  info: PeerInfoShort;
-  /**
-   * Exchange used.
-   */
-  exchangeBaseUrl: string;
-  /**
-   * Amount that got subtracted from the reserve balance.
-   */
-  amountRaw: AmountString;
-  /**
-   * Amount that actually was (or will be) added to the wallet's balance.
-   */
-  amountEffective: AmountString;
-  /**
-   * URI to accept the payment.
-   */
-  talerUri: string;
+export interface TransactionsResponse {
+  transactions: Transaction[];
 }
 
 ```
 
+### GetTransactionByIdOp
+```typescript
+export type GetTransactionByIdOp = {
+  op: WalletApiOperation.GetTransactionById;
+  request: TransactionByIdRequest;
+  response: Transaction;
+};
+// GetTransactionById = "getTransactionById"
+
+```
+```typescript
+export interface TransactionByIdRequest {
+  transactionId: string;
+}
+
+```
+
+### RetryPendingNowOp
+```typescript
+export type RetryPendingNowOp = {
+  op: WalletApiOperation.RetryPendingNow;
+  request: {};
+  response: {};
+};
+// RetryPendingNow = "retryPendingNow"
+
+```
+
 ### DeleteTransactionOp
 ```typescript
 /**
@@ -556,6 +283,11 @@ export interface ManualWithdrawalDetails {
    * Ways to pay the exchange.
    */
   paytoUris: string[];
+  /**
+   * If the exchange supports age-restricted coins it will return
+   * the array of ages.
+   */
+  ageRestrictionOptions?: number[];
 }
 
 ```
@@ -723,6 +455,82 @@ export interface PreparePayResultPaymentPossible {
 
 ```
 
+### GetContractTermsDetailsOp
+```typescript
+export type GetContractTermsDetailsOp = {
+  op: WalletApiOperation.GetContractTermsDetails;
+  request: GetContractTermsDetailsRequest;
+  response: WalletContractData;
+};
+// GetContractTermsDetails = "getContractTermsDetails"
+
+```
+```typescript
+export interface GetContractTermsDetailsRequest {
+  proposalId: string;
+}
+
+```
+```typescript
+/**
+ * Data extracted from the contract terms that is relevant for payment
+ * processing in the wallet.
+ */
+export interface WalletContractData {
+  products?: Product[];
+  summaryI18n:
+    | {
+        [lang_tag: string]: string;
+      }
+    | undefined;
+  /**
+   * Fulfillment URL, or the empty string if the order has no fulfillment URL.
+   *
+   * Stored as a non-nullable string as we use this field for IndexedDB 
indexing.
+   */
+  fulfillmentUrl: string;
+  contractTermsHash: string;
+  fulfillmentMessage?: string;
+  fulfillmentMessageI18n?: InternationalizedString;
+  merchantSig: string;
+  merchantPub: string;
+  merchant: MerchantInfo;
+  amount: AmountJson;
+  orderId: string;
+  merchantBaseUrl: string;
+  summary: string;
+  autoRefund: TalerProtocolDuration | undefined;
+  maxWireFee: AmountJson;
+  wireFeeAmortization: number;
+  payDeadline: TalerProtocolTimestamp;
+  refundDeadline: TalerProtocolTimestamp;
+  allowedAuditors: AllowedAuditorInfo[];
+  allowedExchanges: AllowedExchangeInfo[];
+  timestamp: TalerProtocolTimestamp;
+  wireMethod: string;
+  wireInfoHash: string;
+  maxDepositFee: AmountJson;
+  minimumAge?: number;
+  deliveryDate: TalerProtocolTimestamp | undefined;
+  deliveryLocation: Location | undefined;
+}
+
+```
+```typescript
+export interface AllowedAuditorInfo {
+  auditorBaseUrl: string;
+  auditorPub: string;
+}
+
+```
+```typescript
+export interface AllowedExchangeInfo {
+  exchangeBaseUrl: string;
+  exchangePub: string;
+}
+
+```
+
 ### ConfirmPayOp
 ```typescript
 /**
@@ -810,15 +618,48 @@ export interface ApplyRefundRequest {
 }
 
 ```
+
+### ApplyRefundFromPurchaseIdOp
 ```typescript
-export interface ApplyRefundResponse {
-  contractTermsHash: string;
-  transactionId: string;
+export type ApplyRefundFromPurchaseIdOp = {
+  op: WalletApiOperation.ApplyRefundFromPurchaseId;
+  request: ApplyRefundFromPurchaseIdRequest;
+  response: ApplyRefundResponse;
+};
+// ApplyRefundFromPurchaseId = "applyRefundFromPurchaseId"
+
+```
+```typescript
+export interface ApplyRefundFromPurchaseIdRequest {
+  purchaseId: string;
+}
+
+```
+
+### PrepareRefundOp
+```typescript
+export type PrepareRefundOp = {
+  op: WalletApiOperation.PrepareRefund;
+  request: PrepareRefundRequest;
+  response: PrepareRefundResult;
+};
+// PrepareRefund = "prepareRefund"
+
+```
+```typescript
+export interface PrepareRefundRequest {
+  talerRefundUri: string;
+}
+
+```
+```typescript
+export interface PrepareRefundResult {
   proposalId: string;
-  amountEffectivePaid: AmountString;
-  amountRefundGranted: AmountString;
-  amountRefundGone: AmountString;
-  pendingAtExchange: boolean;
+  effectivePaid: AmountString;
+  gone: AmountString;
+  granted: AmountString;
+  pending: boolean;
+  awaiting: AmountString;
   info: OrderShortInfo;
 }
 
@@ -934,10 +775,120 @@ export type AddExchangeOp = {
 // AddExchange = "addExchange"
 
 ```
+
+### ListKnownBankAccountsOp
 ```typescript
-export interface AddExchangeRequest {
-  exchangeBaseUrl: string;
-  forceUpdate?: boolean;
+export type ListKnownBankAccountsOp = {
+  op: WalletApiOperation.ListKnownBankAccounts;
+  request: ListKnownBankAccountsRequest;
+  response: KnownBankAccounts;
+};
+// ListKnownBankAccounts = "listKnownBankAccounts"
+
+```
+```typescript
+export interface ListKnownBankAccountsRequest {
+  currency?: string;
+}
+
+```
+```typescript
+export interface KnownBankAccounts {
+  accounts: KnownBankAccountsInfo[];
+}
+
+```
+```typescript
+export interface KnownBankAccountsInfo {
+  uri: PaytoUri;
+  kyc_completed: boolean;
+  currency: string;
+  alias: string;
+}
+
+```
+```typescript
+export declare type PaytoUri =
+  | PaytoUriUnknown
+  | PaytoUriIBAN
+  | PaytoUriTalerBank
+  | PaytoUriBitcoin;
+
+```
+```typescript
+export interface PaytoUriUnknown extends PaytoUriGeneric {
+  isKnown: false;
+}
+
+```
+```typescript
+export interface PaytoUriGeneric {
+  targetType: string;
+  targetPath: string;
+  params: {
+    [name: string]: string;
+  };
+}
+
+```
+```typescript
+export interface PaytoUriIBAN extends PaytoUriGeneric {
+  isKnown: true;
+  targetType: "iban";
+  iban: string;
+}
+
+```
+```typescript
+export interface PaytoUriTalerBank extends PaytoUriGeneric {
+  isKnown: true;
+  targetType: "x-taler-bank";
+  host: string;
+  account: string;
+}
+
+```
+```typescript
+export interface PaytoUriBitcoin extends PaytoUriGeneric {
+  isKnown: true;
+  targetType: "bitcoin";
+  segwitAddrs: Array<string>;
+}
+
+```
+
+### AddKnownBankAccountsOp
+```typescript
+export type AddKnownBankAccountsOp = {
+  op: WalletApiOperation.AddKnownBankAccounts;
+  request: AddKnownBankAccountsRequest;
+  response: {};
+};
+// AddKnownBankAccounts = "addKnownBankAccounts"
+
+```
+```typescript
+export interface AddKnownBankAccountsRequest {
+  payto: string;
+  alias: string;
+  currency: string;
+}
+
+```
+
+### ForgetKnownBankAccountsOp
+```typescript
+export type ForgetKnownBankAccountsOp = {
+  op: WalletApiOperation.ForgetKnownBankAccounts;
+  request: ForgetKnownBankAccountsRequest;
+  response: {};
+};
+// ForgetKnownBankAccounts = "forgetKnownBankAccounts"
+
+```
+```typescript
+export interface ForgetKnownBankAccountsRequest {
+  payto: string;
 }
 
 ```
@@ -1002,6 +953,76 @@ export interface GetExchangeTosResult {
    * Accepted content type
    */
   contentType: string;
+  tosStatus: ExchangeTosStatus;
+}
+
+```
+
+### GetExchangeDetailedInfoOp
+```typescript
+/**
+ * Get the current terms of a service of an exchange.
+ */
+export type GetExchangeDetailedInfoOp = {
+  op: WalletApiOperation.GetExchangeDetailedInfo;
+  request: AddExchangeRequest;
+  response: ExchangeDetailedResponse;
+};
+// GetExchangeDetailedInfo = "getExchangeDetailedInfo"
+
+```
+```typescript
+export interface ExchangeDetailedResponse {
+  exchange: ExchangeFullDetails;
+}
+
+```
+```typescript
+export interface ExchangeFullDetails {
+  exchangeBaseUrl: string;
+  currency: string;
+  paytoUris: string[];
+  tos: ExchangeTosStatusDetails;
+  auditors: ExchangeAuditor[];
+  wireInfo: WireInfo;
+  denomFees: DenomOperationMap<FeeDescription[]>;
+  transferFees: Record<string, FeeDescription[]>;
+  globalFees: FeeDescription[];
+}
+
+```
+```typescript
+export interface ExchangeTosStatusDetails {
+  acceptedVersion?: string;
+  currentVersion?: string;
+  contentType?: string;
+  content?: string;
+}
+
+```
+```typescript
+export interface WireInfo {
+  feesForType: WireFeeMap;
+  accounts: ExchangeAccount[];
+}
+
+```
+```typescript
+/**
+ * Information about one of the exchange's bank accounts.
+ */
+export interface ExchangeAccount {
+  payto_uri: string;
+  master_sig: string;
+}
+
+```
+```typescript
+export interface FeeDescription {
+  group: string;
+  from: AbsoluteTime;
+  until: AbsoluteTime;
+  fee?: AmountJson;
 }
 
 ```
@@ -1095,6 +1116,57 @@ export interface TrackDepositGroupResponse {
 
 ```
 
+### GetFeeForDepositOp
+```typescript
+export type GetFeeForDepositOp = {
+  op: WalletApiOperation.GetFeeForDeposit;
+  request: GetFeeForDepositRequest;
+  response: DepositGroupFees;
+};
+// GetFeeForDeposit = "getFeeForDeposit"
+
+```
+```typescript
+export interface GetFeeForDepositRequest {
+  depositPaytoUri: string;
+  amount: AmountString;
+}
+
+```
+```typescript
+export interface DepositGroupFees {
+  coin: AmountJson;
+  wire: AmountJson;
+  refresh: AmountJson;
+}
+
+```
+
+### PrepareDepositOp
+```typescript
+export type PrepareDepositOp = {
+  op: WalletApiOperation.PrepareDeposit;
+  request: PrepareDepositRequest;
+  response: PrepareDepositResponse;
+};
+// PrepareDeposit = "prepareDeposit"
+
+```
+```typescript
+export interface PrepareDepositRequest {
+  depositPaytoUri: string;
+  amount: AmountString;
+}
+
+```
+```typescript
+export interface PrepareDepositResponse {
+  totalDepositCost: AmountJson;
+  effectiveDepositAmount: AmountJson;
+}
+
+```
+
 ### ExportBackupRecoveryOp
 ```typescript
 /**
@@ -1159,7 +1231,18 @@ export type RunBackupCycleOp = {
   request: {};
   response: {};
 };
-// RunBackupCycle = "runBackupCycle"
+// RunBackupCycle = "runBackupCycle"
+
+```
+
+### ExportBackupOp
+```typescript
+export type ExportBackupOp = {
+  op: WalletApiOperation.ExportBackup;
+  request: {};
+  response: {};
+};
+// ExportBackup = "exportBackup"
 
 ```
 
@@ -1189,6 +1272,23 @@ export interface AddBackupProviderRequest {
 
 ```
 
+### RemoveBackupProviderOp
+```typescript
+export type RemoveBackupProviderOp = {
+  op: WalletApiOperation.RemoveBackupProvider;
+  request: RemoveBackupProviderRequest;
+  response: {};
+};
+// RemoveBackupProvider = "removeBackupProvider"
+
+```
+```typescript
+export interface RemoveBackupProviderRequest {
+  provider: string;
+}
+
+```
+
 ### GetBackupInfoOp
 ```typescript
 /**
@@ -1519,7 +1619,7 @@ export interface AcceptPeerPullPaymentRequest {
 ### ExportDbOp
 ```typescript
 /**
- * Exoport the wallet database's contents to JSON.
+ * Export the wallet database's contents to JSON.
  */
 export type ExportDbOp = {
   op: WalletApiOperation.ExportDb;
@@ -1530,6 +1630,17 @@ export type ExportDbOp = {
 
 ```
 
+### ImportDbOp
+```typescript
+export type ImportDbOp = {
+  op: WalletApiOperation.ImportDb;
+  request: any;
+  response: any;
+};
+// ImportDb = "importDb"
+
+```
+
 ### ClearDbOp
 ```typescript
 /**
@@ -1558,6 +1669,46 @@ export type RecycleOp = {
 
 ```
 
+### ApplyDevExperimentOp
+```typescript
+/**
+ * Apply a developer experiment to the current wallet state.
+ *
+ * This allows UI developers / testers to play around without
+ * an elaborate test environment.
+ */
+export type ApplyDevExperimentOp = {
+  op: WalletApiOperation.ApplyDevExperiment;
+  request: ApplyDevExperimentRequest;
+  response: {};
+};
+// ApplyDevExperiment = "applyDevExperiment"
+
+```
+```typescript
+export interface ApplyDevExperimentRequest {
+  devExperimentUri: string;
+}
+
+```
+
+### SetDevModeOp
+```typescript
+export type SetDevModeOp = {
+  op: WalletApiOperation.SetDevMode;
+  request: SetDevModeRequest;
+  response: {};
+};
+// SetDevMode = "setDevMode"
+
+```
+```typescript
+export interface SetDevModeRequest {
+  devModeEnabled: boolean;
+}
+
+```
+
 ### RunIntegrationTestOp
 ```typescript
 /**
@@ -1585,6 +1736,20 @@ export interface IntegrationTestArgs {
 
 ```
 
+### TestCryptoOp
+```typescript
+/**
+ * Test crypto worker.
+ */
+export type TestCryptoOp = {
+  op: WalletApiOperation.TestCrypto;
+  request: {};
+  response: any;
+};
+// TestCrypto = "testCrypto"
+
+```
+
 ### WithdrawTestBalanceOp
 ```typescript
 /**
@@ -1685,27 +1850,6 @@ export interface PayCoinSelection {
   customerDepositFees: AmountJson;
 }
 
-```
-```typescript
-/**
- * Non-negative financial amount.  Fractional values are expressed as multiples
- * of 1e-8.
- */
-export interface AmountJson {
-  /**
-   * Value, must be an integer.
-   */
-  readonly value: number;
-  /**
-   * Fraction, must be an integer.  Represent 1/1e8 of a unit.
-   */
-  readonly fraction: number;
-  /**
-   * Currency of the amount.
-   */
-  readonly currency: string;
-}
-
 ```
 
 ### WithdrawFakebankOp
@@ -1765,10 +1909,8 @@ export type PendingTaskInfo = PendingTaskInfoCommon &
   (
     | PendingExchangeUpdateTask
     | PendingExchangeCheckRefreshTask
-    | PendingPayTask
-    | PendingProposalDownloadTask
+    | PendingPurchaseTask
     | PendingRefreshTask
-    | PendingRefundQueryTask
     | PendingTipPickupTask
     | PendingWithdrawTask
     | PendingRecoupTask
@@ -1795,6 +1937,14 @@ export interface PendingTaskInfoCommon {
    * as opposed to some regular scheduled operation that can be tried later.
    */
   givesLifeness: boolean;
+  /**
+   * Operation is active and waiting for a longpoll result.
+   */
+  isLongpolling: boolean;
+  /**
+   * Operation is waiting to be executed.
+   */
+  isDue: boolean;
   /**
    * Timestamp when the pending operation should be executed next.
    */
@@ -1811,11 +1961,9 @@ export interface PendingTaskInfoCommon {
 export enum PendingTaskType {
   ExchangeUpdate = "exchange-update",
   ExchangeCheckRefresh = "exchange-check-refresh",
-  Pay = "pay",
-  ProposalDownload = "proposal-download",
+  Purchase = "purchase",
   Refresh = "refresh",
   Recoup = "recoup",
-  RefundQuery = "refund-query",
   TipPickup = "tip-pickup",
   Withdraw = "withdraw",
   Deposit = "deposit",
@@ -1944,32 +2092,19 @@ export interface PendingExchangeCheckRefreshTask {
 ```
 ```typescript
 /**
- * The wallet is signing coins and then sending them to
- * the merchant.
+ * A purchase needs to be processed (i.e. for download / payment / refund).
  */
-export interface PendingPayTask {
-  type: PendingTaskType.Pay;
+export interface PendingPurchaseTask {
+  type: PendingTaskType.Purchase;
   proposalId: string;
-  isReplay: boolean;
   retryInfo?: RetryInfo;
+  /**
+   * Status of the payment as string, used only for debugging.
+   */
+  statusStr: string;
   lastError: TalerErrorDetail | undefined;
 }
 
-```
-```typescript
-/**
- * Status of downloading signed contract terms from a merchant.
- */
-export interface PendingProposalDownloadTask {
-  type: PendingTaskType.ProposalDownload;
-  merchantBaseUrl: string;
-  proposalTimestamp: TalerProtocolTimestamp;
-  proposalId: string;
-  orderId: string;
-  lastError?: TalerErrorDetail;
-  retryInfo?: RetryInfo;
-}
-
 ```
 ```typescript
 /**
@@ -1983,19 +2118,6 @@ export interface PendingRefreshTask {
   retryInfo?: RetryInfo;
 }
 
-```
-```typescript
-/**
- * The wallet is querying the merchant about whether any refund
- * permissions are available for a purchase.
- */
-export interface PendingRefundQueryTask {
-  type: PendingTaskType.RefundQuery;
-  proposalId: string;
-  retryInfo?: RetryInfo;
-  lastError: TalerErrorDetail | undefined;
-}
-
 ```
 ```typescript
 /**
@@ -2091,11 +2213,6 @@ export interface CoinDumpJson {
      * 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.
@@ -2106,11 +2223,13 @@ export interface CoinDumpJson {
      * 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;
+    coin_status: CoinStatus;
+    spend_allocation:
+      | {
+          id: string;
+          amount: string;
+        }
+      | undefined;
     /**
      * Information about the age restriction
      */
@@ -2140,6 +2259,27 @@ export interface CsDenominationPubKey {
   readonly cs_public_key: string;
 }
 
+```
+```typescript
+/**
+ * Status of a coin.
+ */
+export declare enum CoinStatus {
+  /**
+   * Withdrawn and never shown to anybody.
+   */
+  Fresh = "fresh",
+  /**
+   * Fresh, but currently marked as "suspended", thus won't be used
+   * for spending.  Used for testing.
+   */
+  FreshSuspended = "fresh-suspended",
+  /**
+   * A coin that has been spent and refreshed.
+   */
+  Dormant = "dormant",
+}
+
 ```
 ```typescript
 export interface AgeCommitmentProof {
@@ -2237,6 +2377,83 @@ export interface ForceRefreshRequest {
 
 ## Common Declarations
 ```typescript
+export interface WalletCoreVersion {
+  hash: string | undefined;
+  version: string;
+  exchange: string;
+  merchant: string;
+  bank: string;
+  devMode?: boolean;
+}
+```
+```typescript
+export declare type Transaction =
+  | TransactionWithdrawal
+  | TransactionPayment
+  | TransactionRefund
+  | TransactionTip
+  | TransactionRefresh
+  | TransactionDeposit
+  | TransactionPeerPullCredit
+  | TransactionPeerPullDebit
+  | TransactionPeerPushCredit
+  | TransactionPeerPushDebit;
+```
+```typescript
+export interface TransactionWithdrawal extends TransactionCommon {
+  type: TransactionType.Withdrawal;
+  /**
+   * Exchange of the withdrawal.
+   */
+  exchangeBaseUrl: string;
+  /**
+   * Amount that got subtracted from the reserve balance.
+   */
+  amountRaw: AmountString;
+  /**
+   * Amount that actually was (or will be) added to the wallet's balance.
+   */
+  amountEffective: AmountString;
+  withdrawalDetails: WithdrawalDetails;
+}
+```
+```typescript
+export interface TransactionCommon {
+  transactionId: TransactionIdStr;
+  type: TransactionType;
+  timestamp: TalerProtocolTimestamp;
+  pending: boolean;
+  /**
+   * True if the transaction encountered a problem that might be
+   * permanent.  A frozen transaction won't be automatically retried.
+   */
+  frozen: boolean;
+  /**
+   * Raw amount of the transaction (exclusive of fees or other extra costs).
+   */
+  amountRaw: AmountString;
+  /**
+   * Amount added or removed from the wallet's balance (including all fees and 
other costs).
+   */
+  amountEffective: AmountString;
+  error?: TalerErrorDetail;
+}
+```
+```typescript
+export declare enum TransactionType {
+  Withdrawal = "withdrawal",
+  Payment = "payment",
+  Refund = "refund",
+  Refresh = "refresh",
+  Tip = "tip",
+  Deposit = "deposit",
+  PeerPushDebit = "peer-push-debit",
+  PeerPushCredit = "peer-push-credit",
+  PeerPullDebit = "peer-pull-debit",
+  PeerPullCredit = "peer-pull-credit",
+}
+```
+```typescript
 export interface TalerProtocolTimestamp {
   readonly t_s: number | "never";
 }
@@ -2249,6 +2466,81 @@ export interface TalerErrorDetail {
 }
 ```
 ```typescript
+export declare type WithdrawalDetails =
+  | WithdrawalDetailsForManualTransfer
+  | WithdrawalDetailsForTalerBankIntegrationApi;
+```
+```typescript
+interface WithdrawalDetailsForManualTransfer {
+  type: WithdrawalType.ManualTransfer;
+  /**
+   * Payto URIs that the exchange supports.
+   *
+   * Already contains the amount and message.
+   */
+  exchangePaytoUris: string[];
+  reservePub: string;
+}
+```
+```typescript
+interface WithdrawalDetailsForTalerBankIntegrationApi {
+  type: WithdrawalType.TalerBankIntegrationApi;
+  /**
+   * 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;
+  reservePub: string;
+}
+```
+```typescript
+export interface TransactionPayment extends TransactionCommon {
+  type: TransactionType.Payment;
+  /**
+   * Additional information about the payment.
+   */
+  info: OrderShortInfo;
+  /**
+   * Wallet-internal end-to-end identifier for the payment.
+   */
+  proposalId: string;
+  /**
+   * How far did the wallet get with processing the payment?
+   */
+  status: PaymentStatus;
+  /**
+   * Amount that must be paid for the contract
+   */
+  amountRaw: AmountString;
+  /**
+   * Amount that was paid, including deposit, wire and refresh fees.
+   */
+  amountEffective: AmountString;
+  /**
+   * Amount that has been refunded by the merchant
+   */
+  totalRefundRaw: AmountString;
+  /**
+   * Amount will be added to the wallet's balance after fees and refreshing
+   */
+  totalRefundEffective: AmountString;
+  /**
+   * Amount pending to be picked up
+   */
+  refundPending: AmountString | undefined;
+  /**
+   * Reference to applied refunds
+   */
+  refunds: RefundInfoShort[];
+}
+```
+```typescript
 export interface OrderShortInfo {
   /**
    * Order ID, uniquely identifies the order within a merchant instance
@@ -2349,19 +2641,245 @@ export interface Tax {
 }
 ```
 ```typescript
+export declare 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",
+  /**
+   * User accepted, payment is processing.
+   */
+  Accepted = "accepted",
+}
+```
+```typescript
+export interface RefundInfoShort {
+  transactionId: string;
+  timestamp: TalerProtocolTimestamp;
+  amountEffective: AmountString;
+  amountRaw: AmountString;
+}
+```
+```typescript
+export interface TransactionRefund extends TransactionCommon {
+  type: TransactionType.Refund;
+  refundedTransactionId: string;
+  info: OrderShortInfo;
+  /**
+   * Amount pending to be picked up
+   */
+  refundPending: AmountString | undefined;
+  amountRaw: AmountString;
+  amountEffective: AmountString;
+}
+```
+```typescript
+export interface TransactionTip extends TransactionCommon {
+  type: TransactionType.Tip;
+  amountRaw: AmountString;
+  /**
+   * More information about the merchant
+   */
+  amountEffective: AmountString;
+  merchantBaseUrl: string;
+}
+```
+```typescript
+/**
+ * A transaction shown for refreshes.
+ * Only shown for (1) refreshes not associated with other transactions
+ * and (2) refreshes in an error state.
+ */
+export interface TransactionRefresh extends TransactionCommon {
+  type: TransactionType.Refresh;
+  /**
+   * Exchange that the coins are refreshed with
+   */
+  exchangeBaseUrl: string;
+  refreshReason: RefreshReason;
+  /**
+   * Transaction ID that caused this refresh.
+   */
+  originatingTransactionId?: string;
+  /**
+   * Always zero for refreshes
+   */
+  amountRaw: AmountString;
+  /**
+   * Fees, i.e. the effective, negative effect of the refresh
+   * on the balance.
+   */
+  amountEffective: AmountString;
+}
+```
+```typescript
+/**
+ * Reasons for why a coin is being refreshed.
+ */
+export declare enum RefreshReason {
+  Manual = "manual",
+  PayMerchant = "pay-merchant",
+  PayDeposit = "pay-deposit",
+  PayPeerPush = "pay-peer-push",
+  PayPeerPull = "pay-peer-pull",
+  Refund = "refund",
+  AbortPay = "abort-pay",
+  Recoup = "recoup",
+  BackupRestored = "backup-restored",
+  Scheduled = "scheduled",
+}
+```
+```typescript
+/**
+ * Deposit transaction, which effectively sends
+ * money from this wallet somewhere else.
+ */
+export interface TransactionDeposit extends TransactionCommon {
+  type: TransactionType.Deposit;
+  depositGroupId: string;
+  /**
+   * Target for the deposit.
+   */
+  targetPaytoUri: string;
+  /**
+   * Raw amount that is being deposited
+   */
+  amountRaw: AmountString;
+  /**
+   * Effective amount that is being deposited
+   */
+  amountEffective: AmountString;
+}
+```
+```typescript
+/**
+ * Credit because we were paid for a P2P invoice we created.
+ */
+export interface TransactionPeerPullCredit extends TransactionCommon {
+  type: TransactionType.PeerPullCredit;
+  info: PeerInfoShort;
+  /**
+   * Exchange used.
+   */
+  exchangeBaseUrl: string;
+  /**
+   * Amount that got subtracted from the reserve balance.
+   */
+  amountRaw: AmountString;
+  /**
+   * Amount that actually was (or will be) added to the wallet's balance.
+   */
+  amountEffective: AmountString;
+  /**
+   * URI to send to the other party.
+   */
+  talerUri: string;
+}
+```
+```typescript
+export interface PeerInfoShort {
+  expiration: TalerProtocolTimestamp | undefined;
+  summary: string | undefined;
+}
+```
+```typescript
+/**
+ * Debit because we paid someone's invoice.
+ */
+export interface TransactionPeerPullDebit extends TransactionCommon {
+  type: TransactionType.PeerPullDebit;
+  info: PeerInfoShort;
+  /**
+   * Exchange used.
+   */
+  exchangeBaseUrl: string;
+  amountRaw: AmountString;
+  amountEffective: AmountString;
+}
+```
+```typescript
+/**
+ * We received money via a P2P payment.
+ */
+export interface TransactionPeerPushCredit extends TransactionCommon {
+  type: TransactionType.PeerPushCredit;
+  info: PeerInfoShort;
+  /**
+   * Exchange used.
+   */
+  exchangeBaseUrl: string;
+  /**
+   * Amount that got subtracted from the reserve balance.
+   */
+  amountRaw: AmountString;
+  /**
+   * Amount that actually was (or will be) added to the wallet's balance.
+   */
+  amountEffective: AmountString;
+}
+```
+```typescript
+/**
+ * We sent money via a P2P payment.
+ */
+export interface TransactionPeerPushDebit extends TransactionCommon {
+  type: TransactionType.PeerPushDebit;
+  info: PeerInfoShort;
+  /**
+   * Exchange used.
+   */
+  exchangeBaseUrl: string;
+  /**
+   * Amount that got subtracted from the reserve balance.
+   */
+  amountRaw: AmountString;
+  /**
+   * Amount that actually was (or will be) added to the wallet's balance.
+   */
+  amountEffective: AmountString;
+  /**
+   * URI to accept the payment.
+   */
+  talerUri: string;
+}
+```
+```typescript
 export interface ExchangeListItem {
   exchangeBaseUrl: string;
-  currency: string;
+  currency: string | undefined;
   paytoUris: string[];
-  tos: ExchangeTos;
+  tosStatus: ExchangeTosStatus;
+  exchangeStatus: ExchangeEntryStatus;
+  /**
+   * Permanently added to the wallet, as opposed to just
+   * temporarily queried.
+   */
+  permanent: boolean;
 }
 ```
 ```typescript
-export interface ExchangeTos {
-  acceptedVersion?: string;
-  currentVersion?: string;
-  contentType?: string;
-  content?: string;
+export declare enum ExchangeTosStatus {
+  New = "new",
+  Accepted = "accepted",
+  Changed = "changed",
+  NotFound = "not-found",
+  Unknown = "unknown",
+}
+```
+```typescript
+export declare enum ExchangeEntryStatus {
+  Unknown = "unknown",
+  Outdated = "outdated",
+  Ok = "ok",
 }
 ```
 ```typescript
@@ -2530,6 +3048,26 @@ export interface ExchangeHandle {
 }
 ```
 ```typescript
+/**
+ * Non-negative financial amount.  Fractional values are expressed as multiples
+ * of 1e-8.
+ */
+export interface AmountJson {
+  /**
+   * Value, must be an integer.
+   */
+  readonly value: number;
+  /**
+   * Fraction, must be an integer.  Represent 1/1e8 of a unit.
+   */
+  readonly fraction: number;
+  /**
+   * Currency of the amount.
+   */
+  readonly currency: string;
+}
+```
+```typescript
 /**
  * Forced coin selection for deposits/payments.
  */
@@ -2541,11 +3079,21 @@ export interface ForcedCoinSel {
 }
 ```
 ```typescript
-export interface BackupRecovery {
-  walletRootPriv: string;
-  providers: {
-    url: string;
-  }[];
+export interface ApplyRefundResponse {
+  contractTermsHash: string;
+  transactionId: string;
+  proposalId: string;
+  amountEffectivePaid: AmountString;
+  amountRefundGranted: AmountString;
+  amountRefundGone: AmountString;
+  pendingAtExchange: boolean;
+  info: OrderShortInfo;
+}
+```
+```typescript
+export interface AddExchangeRequest {
+  exchangeBaseUrl: string;
+  forceUpdate?: boolean;
 }
 ```
 ```typescript
@@ -2564,3 +3112,11 @@ export interface Duration {
   readonly d_ms: number | "forever";
 }
 ```
+```typescript
+export interface BackupRecovery {
+  walletRootPriv: string;
+  providers: {
+    url: string;
+  }[];
+}
+```

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]