summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/wallet.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-06-15 18:58:11 +0200
committerFlorian Dold <florian@dold.me>2021-06-15 18:58:11 +0200
commitf0d5fe3ed64f3e608d1685179722a5a859eb0eff (patch)
treecf193dedc156da738d8d3b10bf90fb07adb6b47f /packages/taler-wallet-core/src/wallet.ts
parentd41ae5eb97a5264b1d61321354eac049ca317c97 (diff)
downloadwallet-core-f0d5fe3ed64f3e608d1685179722a5a859eb0eff.tar.gz
wallet-core-f0d5fe3ed64f3e608d1685179722a5a859eb0eff.tar.bz2
wallet-core-f0d5fe3ed64f3e608d1685179722a5a859eb0eff.zip
split out wallet core API types
Diffstat (limited to 'packages/taler-wallet-core/src/wallet.ts')
-rw-r--r--packages/taler-wallet-core/src/wallet.ts193
1 files changed, 1 insertions, 192 deletions
diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts
index 82bc8b44b..85b5ae657 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -186,6 +186,7 @@ import { AmountJson, Amounts } from "@gnu-taler/taler-util";
import { assertUnreachable } from "./util/assertUnreachable";
import { Logger } from "@gnu-taler/taler-util";
import { setWalletDeviceId } from "./operations/backup/state.js";
+import { WalletCoreApiClient } from "./wallet-api-types.js";
const builtinAuditors: AuditorTrustRecord[] = [
{
@@ -653,198 +654,6 @@ async function dumpCoins(ws: InternalWalletState): Promise<CoinDumpJson> {
return coinsJson;
}
-export enum WalletApiOperation {
- InitWallet = "initWallet",
- WithdrawTestkudos = "withdrawTestkudos",
- WithdrawTestBalance = "withdrawTestBalance",
- PreparePayForUri = "preparePayForUri",
- RunIntegrationTest = "runIntegrationTest",
- TestPay = "testPay",
- AddExchange = "addExchange",
- GetTransactions = "getTransactions",
- ListExchanges = "listExchanges",
- GetWithdrawalDetailsForUri = "getWithdrawalDetailsForUri",
- GetWithdrawalDetailsForAmount = "getWithdrawalDetailsForAmount",
- AcceptManualWithdrawal = "acceptManualWithdrawal",
- GetBalances = "getBalances",
- GetPendingOperations = "getPendingOperations",
- SetExchangeTosAccepted = "setExchangeTosAccepted",
- ApplyRefund = "applyRefund",
- AcceptBankIntegratedWithdrawal = "acceptBankIntegratedWithdrawal",
- GetExchangeTos = "getExchangeTos",
- RetryPendingNow = "retryPendingNow",
- PreparePay = "preparePay",
- ConfirmPay = "confirmPay",
- DumpCoins = "dumpCoins",
- SetCoinSuspended = "setCoinSuspended",
- ForceRefresh = "forceRefresh",
- PrepareTip = "prepareTip",
- AcceptTip = "acceptTip",
- ExportBackup = "exportBackup",
- AddBackupProvider = "addBackupProvider",
- RunBackupCycle = "runBackupCycle",
- ExportBackupRecovery = "exportBackupRecovery",
- ImportBackupRecovery = "importBackupRecovery",
- GetBackupInfo = "getBackupInfo",
- TrackDepositGroup = "trackDepositGroup",
- DeleteTransaction = "deleteTransaction",
- RetryTransaction = "retryTransaction",
- GetCoins = "getCoins",
- ListCurrencies = "listCurrencies",
- CreateDepositGroup = "createDepositGroup",
- SetWalletDeviceId = "setWalletDeviceId",
- ExportBackupPlain = "exportBackupPlain",
-}
-
-export type WalletOperations = {
- [WalletApiOperation.PreparePayForUri]: {
- request: PreparePayRequest;
- response: PreparePayResult;
- };
- [WalletApiOperation.WithdrawTestkudos]: {
- request: {};
- response: {};
- };
- [WalletApiOperation.PreparePay]: {
- request: PreparePayRequest;
- response: PreparePayResult;
- };
- [WalletApiOperation.ConfirmPay]: {
- request: ConfirmPayRequest;
- response: ConfirmPayResult;
- };
- [WalletApiOperation.GetBalances]: {
- request: {};
- response: BalancesResponse;
- };
- [WalletApiOperation.GetTransactions]: {
- request: TransactionsRequest;
- response: TransactionsResponse;
- };
- [WalletApiOperation.GetPendingOperations]: {
- request: {};
- response: PendingOperationsResponse;
- };
- [WalletApiOperation.DumpCoins]: {
- request: {};
- response: CoinDumpJson;
- };
- [WalletApiOperation.SetCoinSuspended]: {
- request: SetCoinSuspendedRequest;
- response: {};
- };
- [WalletApiOperation.ForceRefresh]: {
- request: ForceRefreshRequest;
- response: {};
- };
- [WalletApiOperation.DeleteTransaction]: {
- request: DeleteTransactionRequest;
- response: {};
- };
- [WalletApiOperation.RetryTransaction]: {
- request: RetryTransactionRequest;
- response: {};
- };
- [WalletApiOperation.PrepareTip]: {
- request: PrepareTipRequest;
- response: PrepareTipResult;
- };
- [WalletApiOperation.AcceptTip]: {
- request: AcceptTipRequest;
- response: {};
- };
- [WalletApiOperation.ApplyRefund]: {
- request: ApplyRefundRequest;
- response: ApplyRefundResponse;
- };
- [WalletApiOperation.ListCurrencies]: {
- request: {};
- response: WalletCurrencyInfo;
- };
- [WalletApiOperation.GetWithdrawalDetailsForAmount]: {
- request: GetWithdrawalDetailsForAmountRequest;
- response: ManualWithdrawalDetails;
- };
- [WalletApiOperation.GetWithdrawalDetailsForUri]: {
- request: GetWithdrawalDetailsForUriRequest;
- response: WithdrawUriInfoResponse;
- };
- [WalletApiOperation.AcceptBankIntegratedWithdrawal]: {
- request: AcceptBankIntegratedWithdrawalRequest;
- response: AcceptWithdrawalResponse;
- };
- [WalletApiOperation.AcceptManualWithdrawal]: {
- request: AcceptManualWithdrawalRequest;
- response: AcceptManualWithdrawalResult;
- };
- [WalletApiOperation.ListExchanges]: {
- request: {};
- response: ExchangesListRespose;
- };
- [WalletApiOperation.AddExchange]: {
- request: AddExchangeRequest;
- response: {};
- };
- [WalletApiOperation.SetExchangeTosAccepted]: {
- request: AcceptExchangeTosRequest;
- response: {};
- };
- [WalletApiOperation.GetExchangeTos]: {
- request: GetExchangeTosRequest;
- response: GetExchangeTosResult;
- };
- [WalletApiOperation.TrackDepositGroup]: {
- request: TrackDepositGroupRequest;
- response: TrackDepositGroupResponse;
- };
- [WalletApiOperation.CreateDepositGroup]: {
- request: CreateDepositGroupRequest;
- response: CreateDepositGroupResponse;
- };
- [WalletApiOperation.SetWalletDeviceId]: {
- request: SetWalletDeviceIdRequest;
- response: {};
- };
- [WalletApiOperation.ExportBackupPlain]: {
- request: {};
- response: WalletBackupContentV1;
- };
- [WalletApiOperation.ExportBackupRecovery]: {
- request: {};
- response: BackupRecovery;
- };
- [WalletApiOperation.ImportBackupRecovery]: {
- request: RecoveryLoadRequest;
- response: {};
- };
- [WalletApiOperation.RunBackupCycle]: {
- request: {};
- response: {};
- };
- [WalletApiOperation.AddBackupProvider]: {
- request: AddBackupProviderRequest;
- response: {};
- };
- [WalletApiOperation.GetBackupInfo]: {
- request: {};
- response: BackupInfo;
- };
-};
-
-export type RequestType<
- Op extends WalletApiOperation & keyof WalletOperations
-> = WalletOperations[Op] extends { request: infer T } ? T : never;
-
-export type ResponseType<
- Op extends WalletApiOperation & keyof WalletOperations
-> = WalletOperations[Op] extends { response: infer T } ? T : never;
-
-export interface WalletCoreApiClient {
- call<Op extends WalletApiOperation & keyof WalletOperations>(
- operation: Op,
- payload: RequestType<Op>,
- ): Promise<ResponseType<Op>>;
-}
/**
* Get an API client from an internal wallet state object.