taler-docs

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

commit 91dbca924c68b86355258c33a080739456242567
parent dc1e56ca7c2787d0d0000658bf852303668508d0
Author: Florian Dold <florian@dold.me>
Date:   Tue, 14 Jan 2025 23:28:19 +0100

update wallet-core API docs

Diffstat:
Mwallet/wallet-core.md | 222++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 153 insertions(+), 69 deletions(-)

diff --git a/wallet/wallet-core.md b/wallet/wallet-core.md @@ -64,6 +64,7 @@ This file is auto-generated from [wallet-core](https://git.taler.net/wallet-core * [SetExchangeTosAcceptedOp](#setexchangetosacceptedop) * [SetExchangeTosForgottenOp](#setexchangetosforgottenop) * [GetExchangeTosOp](#getexchangetosop) +* [GetDepositWireTypesOp](#getdepositwiretypesop) * [GetDepositWireTypesForCurrencyOp](#getdepositwiretypesforcurrencyop) * [GetExchangeDetailedInfoOp](#getexchangedetailedinfoop) * [GetExchangeEntryByUrlOp](#getexchangeentrybyurlop) @@ -91,6 +92,7 @@ This file is auto-generated from [wallet-core](https://git.taler.net/wallet-core * [DeleteStoredBackupOp](#deletestoredbackupop) ### Peer Payments * [CheckPeerPushDebitOp](#checkpeerpushdebitop) +* [CheckPeerPushDebitV2Op](#checkpeerpushdebitv2op) * [InitiatePeerPushDebitOp](#initiatepeerpushdebitop) * [PreparePeerPushCreditOp](#preparepeerpushcreditop) * [ConfirmPeerPushCreditOp](#confirmpeerpushcreditop) @@ -915,7 +917,7 @@ export type ConfirmWithdrawalOp = { export interface ConfirmWithdrawalRequest { transactionId: string; exchangeBaseUrl: string; - amount: AmountString; + amount: AmountString | undefined; forcedDenomSel?: ForcedDenomSel; restrictAge?: number; } @@ -1562,7 +1564,7 @@ export interface ListBankAccountsRequest { ``` ```typescript export interface ListBankAccountsResponse { - accounts: KnownBankAccountInfo[]; + accounts: WalletBankAccountInfo[]; } ``` @@ -1725,11 +1727,44 @@ export interface GetExchangeTosResult { ``` +### GetDepositWireTypesOp +```typescript +export type GetDepositWireTypesOp = { + op: WalletApiOperation.GetDepositWireTypes; + request: GetDepositWireTypesRequest; + response: GetDepositWireTypesResponse; +}; +// GetDepositWireTypes = "getDepositWireTypes" + +``` +```typescript +export interface GetDepositWireTypesRequest { + currency?: string; + /** + * Optional scope info to further restrict the result. + * Currency must match the currency field. + */ + scopeInfo?: ScopeInfo; +} + +``` +```typescript +export interface GetDepositWireTypesResponse { + /** + * Details for each wire type. + */ + wireTypeDetails: WireTypeDetails[]; +} + +``` + ### GetDepositWireTypesForCurrencyOp ```typescript /** * Get wire types that can be used for a deposit operation * with the provided currency. + * + * @deprecated Use getDepositWireTypes instead */ export type GetDepositWireTypesForCurrencyOp = { op: WalletApiOperation.GetDepositWireTypesForCurrency; @@ -1770,17 +1805,6 @@ export interface GetDepositWireTypesForCurrencyResponse { } ``` -```typescript -export interface WireTypeDetails { - paymentTargetType: string; - /** - * Allowed hostnames for the deposit payto URI. - * Only applicable to x-taler-bank. - */ - talerBankHostnames?: string[]; -} - -``` ### GetExchangeDetailedInfoOp ```typescript @@ -2055,19 +2079,26 @@ export type CreateDepositGroupOp = { ``` ```typescript export interface CreateDepositGroupRequest { + depositPaytoUri: string; /** - * Pre-allocated transaction ID. - * Allows clients to easily handle notifications - * that occur while the operation has been created but - * before the creation request has returned. + * Amount to deposit. */ - transactionId?: TransactionIdStr; - depositPaytoUri: string; amount: AmountString; /** + * Restrict the deposit to a certain scope. + */ + restrictScope?: ScopeInfo; + /** * Use a fixed merchant private key. */ testingFixedPriv?: string; + /** + * Pre-allocated transaction ID. + * Allows clients to easily handle notifications + * that occur while the operation has been created but + * before the creation request has returned. + */ + transactionId?: TransactionIdStr; } ``` @@ -2519,61 +2550,36 @@ export interface DeleteStoredBackupRequest { export type CheckPeerPushDebitOp = { op: WalletApiOperation.CheckPeerPushDebit; request: CheckPeerPushDebitRequest; - response: CheckPeerPushDebitResponse; + response: CheckPeerPushDebitOkResponse; }; // CheckPeerPushDebit = "checkPeerPushDebit" ``` + +### CheckPeerPushDebitV2Op ```typescript -export interface CheckPeerPushDebitRequest { - /** - * Preferred exchange to use for the p2p payment. - */ - exchangeBaseUrl?: string; - /** - * Instructed amount. - * - * FIXME: Allow specifying the instructed amount type. - */ - amount: AmountString; - /** - * Restrict the scope of funds that can be spent via the given - * scope info. - */ - restrictScope?: ScopeInfo; - /** - * ID provided by the client to cancel the request. - * - * If the same request is made again with the same clientCancellationId, - * all previous requests are cancelled. - * - * The cancelled request will receive an error response with - * an error code that indicates the cancellation. - * - * The cancellation is best-effort, responses might still arrive. - */ - clientCancellationId?: string; -} +/** + * Check if initiating a peer push payment is possible + * based on the funds in the wallet. + */ +export type CheckPeerPushDebitV2Op = { + op: WalletApiOperation.CheckPeerPushDebitV2; + request: CheckPeerPushDebitRequest; + response: CheckPeerPushDebitResponse; +}; +// CheckPeerPushDebitV2 = "checkPeerPushDebitV2" ``` ```typescript -export interface CheckPeerPushDebitResponse { - amountRaw: AmountString; - amountEffective: AmountString; - /** - * Exchange base URL. - */ - exchangeBaseUrl: string; - /** - * Maximum expiration date, based on how close the coins - * used for the payment are to expiry. - * - * The value is based on when the wallet would typically - * automatically refresh the coins on its own, leaving enough - * time to get a refund for the push payment and refresh the - * coin. - */ - maxExpirationDate: TalerProtocolTimestamp; +export type CheckPeerPushDebitResponse = + | CheckPeerPushDebitOkResponse + | CheckPeerPushDebitInsufficientBalanceResponse; + +``` +```typescript +export interface CheckPeerPushDebitInsufficientBalanceResponse { + type: "insufficient-balance"; + insufficientBalanceDetails: PaymentInsufficientBalanceDetails; } ``` @@ -4415,6 +4421,10 @@ export interface TransactionDeposit extends TransactionCommon { */ amountRaw: AmountString; /** + * Deposit account public key. + */ + accountPub: string; + /** * Effective amount that is being deposited */ amountEffective: AmountString; @@ -4597,10 +4607,17 @@ export interface AbortTransactionRequest { ```typescript export interface WithdrawUriInfoResponse { operationId: string; - status: WithdrawalOperationStatus; + status: WithdrawalOperationStatusFlag; confirmTransferUrl?: string; currency: string; amount: AmountString | undefined; + /** + * Set to true if the user is allowed to edit the amount. + * + * Note that even with a non-editable amount, the amount + * might be undefined at the beginning of the withdrawal + * process. + */ editableAmount: boolean; maxAmount: AmountString | undefined; wireFee: AmountString | undefined; @@ -4610,7 +4627,7 @@ export interface WithdrawUriInfoResponse { } ``` ```typescript -export type WithdrawalOperationStatus = +export type WithdrawalOperationStatusFlag = | "pending" | "selected" | "aborted" @@ -4878,6 +4895,7 @@ export interface ForcedCoinSel { ```typescript export interface AddExchangeRequest { exchangeBaseUrl: string; + ephemeral?: boolean; /** * @deprecated use a separate API call to start a forced exchange update instead */ @@ -4885,7 +4903,7 @@ export interface AddExchangeRequest { } ``` ```typescript -export interface KnownBankAccountInfo { +export interface WalletBankAccountInfo { bankAccountId: string; paytoUri: string; /** @@ -4905,6 +4923,16 @@ export interface AcceptExchangeTosRequest { } ``` ```typescript +export interface WireTypeDetails { + paymentTargetType: string; + /** + * Allowed hostnames for the deposit payto URI. + * Only applicable to x-taler-bank. + */ + talerBankHostnames?: string[]; +} +``` +```typescript export interface CheckDepositRequest { /** * Payto URI to identify the (bank) account that the exchange will wire @@ -4918,6 +4946,10 @@ export interface CheckDepositRequest { */ amount: AmountString; /** + * Restrict the deposit to a certain scope. + */ + restrictScope?: ScopeInfo; + /** * ID provided by the client to cancel the request. * * If the same request is made again with the same clientCancellationId, @@ -4961,6 +4993,58 @@ export interface BackupRecovery { } ``` ```typescript +export interface CheckPeerPushDebitRequest { + /** + * Preferred exchange to use for the p2p payment. + */ + exchangeBaseUrl?: string; + /** + * Instructed amount. + * + * FIXME: Allow specifying the instructed amount type. + */ + amount: AmountString; + /** + * Restrict the scope of funds that can be spent via the given + * scope info. + */ + restrictScope?: ScopeInfo; + /** + * ID provided by the client to cancel the request. + * + * If the same request is made again with the same clientCancellationId, + * all previous requests are cancelled. + * + * The cancelled request will receive an error response with + * an error code that indicates the cancellation. + * + * The cancellation is best-effort, responses might still arrive. + */ + clientCancellationId?: string; +} +``` +```typescript +export interface CheckPeerPushDebitOkResponse { + type: "ok"; + amountRaw: AmountString; + amountEffective: AmountString; + /** + * Exchange base URL. + */ + exchangeBaseUrl: string; + /** + * Maximum expiration date, based on how close the coins + * used for the payment are to expiry. + * + * The value is based on when the wallet would typically + * automatically refresh the coins on its own, leaving enough + * time to get a refund for the push payment and refresh the + * coin. + */ + maxExpirationDate: TalerProtocolTimestamp; +} +``` +```typescript /** * Contract terms between two wallets (as opposed to a merchant and wallet). */