@lifi/perps-sdk 17.0.1 → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -6
- package/dist/cjs/client/PerpsClient.d.ts +3 -2
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +4 -0
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/api.d.ts +4 -0
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +5 -1
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/types/withdrawal.d.ts +11 -1
- package/dist/cjs/types/withdrawal.d.ts.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/websocket/PerpsWsClient.d.ts +2 -0
- package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/cjs/websocket/PerpsWsClient.js +3 -0
- package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
- package/dist/esm/client/PerpsClient.d.ts +13 -2
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +14 -0
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/api.d.ts +9 -0
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +18 -1
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/types/withdrawal.d.ts +30 -1
- package/dist/esm/types/withdrawal.d.ts.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts +10 -0
- package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/esm/websocket/PerpsWsClient.js +10 -0
- package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
- package/dist/types/client/PerpsClient.d.ts +13 -2
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/api.d.ts +9 -0
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +18 -1
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/types/withdrawal.d.ts +30 -1
- package/dist/types/types/withdrawal.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/websocket/PerpsWsClient.d.ts +10 -0
- package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +19 -1
- package/src/index.ts +5 -0
- package/src/types/api.ts +10 -0
- package/src/types/provider.ts +23 -1
- package/src/types/withdrawal.ts +33 -1
- package/src/version.ts +1 -1
- package/src/websocket/PerpsWsClient.ts +15 -0
|
@@ -2,7 +2,7 @@ import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSumma
|
|
|
2
2
|
import type { Address } from 'viem';
|
|
3
3
|
import type { PerpsBaseConfig, PerpsClientSigner, SDKRequestOptions } from './config.js';
|
|
4
4
|
import type { DepositFlow } from './deposit.js';
|
|
5
|
-
import type { ProviderWithdrawableBalance } from './withdrawal.js';
|
|
5
|
+
import type { ProviderWithdrawableBalance, WithdrawFlow } from './withdrawal.js';
|
|
6
6
|
/**
|
|
7
7
|
* Low-level SDK client: resolved config, the optional end-user wallet, and the
|
|
8
8
|
* registered provider plugins. Returned by {@link createPerpsClient} and
|
|
@@ -137,6 +137,14 @@ export interface ProviderAccountExistsParams {
|
|
|
137
137
|
export interface ProviderGetDepositFlowParams {
|
|
138
138
|
address: Address;
|
|
139
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Read params for {@link PerpsProviderPlugin.getWithdrawFlow}.
|
|
142
|
+
*
|
|
143
|
+
* @public
|
|
144
|
+
*/
|
|
145
|
+
export interface ProviderGetWithdrawFlowParams {
|
|
146
|
+
address: Address;
|
|
147
|
+
}
|
|
140
148
|
/**
|
|
141
149
|
* Read params for {@link PerpsProviderPlugin.getWithdrawableBalances}.
|
|
142
150
|
*
|
|
@@ -351,6 +359,15 @@ export interface PerpsProviderPlugin {
|
|
|
351
359
|
* `PerpsClient.getDepositFlow` then resolves `undefined`.
|
|
352
360
|
*/
|
|
353
361
|
getDepositFlow?(params: ProviderGetDepositFlowParams, options?: SDKRequestOptions): Promise<DepositFlow>;
|
|
362
|
+
/**
|
|
363
|
+
* The withdrawal flow this venue offers `params.address`, resolved from the
|
|
364
|
+
* venue's own account and setup state — the destination a withdrawal goes
|
|
365
|
+
* to, or the venue setup that must come first.
|
|
366
|
+
*
|
|
367
|
+
* Optional: a provider without a gated withdrawal destination omits it, and
|
|
368
|
+
* `PerpsClient.getWithdrawFlow` then resolves `undefined`.
|
|
369
|
+
*/
|
|
370
|
+
getWithdrawFlow?(params: ProviderGetWithdrawFlowParams, options?: SDKRequestOptions): Promise<WithdrawFlow>;
|
|
354
371
|
/**
|
|
355
372
|
* The `(asset, route)` pairs `params.address` currently has something to
|
|
356
373
|
* withdraw from, keyed by provider-native asset id. Only the venue knows how
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,SAAS,EACT,cAAc,EACd,KAAK,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,wBAAwB,EACxB,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,SAAS,EACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Asset } from '@lifi/perps-types';
|
|
1
|
+
import type { ActionType, Asset } from '@lifi/perps-types';
|
|
2
|
+
import type { Address } from 'viem';
|
|
2
3
|
/**
|
|
3
4
|
* Which of a venue's two balance routes a withdrawal is drawn from. Lighter's
|
|
4
5
|
* own vocabulary, carried in the signed tx as `AssetRouteType` (`perps` = 0,
|
|
@@ -46,4 +47,32 @@ export interface WithdrawableBalance {
|
|
|
46
47
|
*/
|
|
47
48
|
withdrawalFee?: string;
|
|
48
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* The venue accepts a withdrawal to `destination` now.
|
|
52
|
+
*
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
export interface WithdrawFlowReady {
|
|
56
|
+
kind: 'ready';
|
|
57
|
+
destination: Address;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The venue cannot accept a withdrawal until the listed setup actions are
|
|
61
|
+
* satisfied — Ondo sends funds only to an address in its address book, behind
|
|
62
|
+
* a signed-in session.
|
|
63
|
+
*
|
|
64
|
+
* @public
|
|
65
|
+
*/
|
|
66
|
+
export interface WithdrawFlowSetupRequired {
|
|
67
|
+
kind: 'setupRequired';
|
|
68
|
+
/** Setup action types that must be completed, in execution order. */
|
|
69
|
+
setup: ActionType[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The single withdrawal flow a venue offers one address, resolved from the
|
|
73
|
+
* venue's account and setup state.
|
|
74
|
+
*
|
|
75
|
+
* @public
|
|
76
|
+
*/
|
|
77
|
+
export type WithdrawFlow = WithdrawFlowReady | WithdrawFlowSetupRequired;
|
|
49
78
|
//# sourceMappingURL=withdrawal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../../src/types/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../../src/types/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,eAAe,CAAA;IACtB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,eAAe,CAAA;IACtB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,eAAe,CAAA;IACrB,qEAAqE;IACrE,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,yBAAyB,CAAA"}
|
package/dist/types/version.d.ts
CHANGED
|
@@ -35,6 +35,8 @@ export interface WsProviderFactory {
|
|
|
35
35
|
(params: WsProviderFactoryParams): WsProvider;
|
|
36
36
|
/** `true` when the venue socket serves the `candle` channel. */
|
|
37
37
|
readonly streamsCandles: boolean;
|
|
38
|
+
/** `true` when the venue socket serves the `availableToTrade` channel. */
|
|
39
|
+
readonly streamsAvailableToTrade: boolean;
|
|
38
40
|
}
|
|
39
41
|
/**
|
|
40
42
|
* Options for {@link PerpsWsClient}.
|
|
@@ -74,6 +76,14 @@ export declare class PerpsWsClient {
|
|
|
74
76
|
* @public
|
|
75
77
|
*/
|
|
76
78
|
streamsCandles(provider: string): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Whether `provider`'s socket serves the `availableToTrade` channel, as
|
|
81
|
+
* reported by its registered factory. Returns `false` when no factory is
|
|
82
|
+
* registered. Synchronous, with the same contract as {@link streamsCandles}.
|
|
83
|
+
*
|
|
84
|
+
* @public
|
|
85
|
+
*/
|
|
86
|
+
streamsAvailableToTrade(provider: string): boolean;
|
|
77
87
|
/**
|
|
78
88
|
* Subscribe to a WebSocket channel, lazily creating the provider's WS
|
|
79
89
|
* connection. Returns an unsubscribe function.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerpsWsClient.d.ts","sourceRoot":"","sources":["../../../src/websocket/PerpsWsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzE,OAAO,KAAK,EACV,oBAAoB,EAEpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;;;OAIG;IACH,MAAM,EAAE,cAAc,CAAA;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU,CAAA;IAC7C,gEAAgE;IAChE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"PerpsWsClient.d.ts","sourceRoot":"","sources":["../../../src/websocket/PerpsWsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzE,OAAO,KAAK,EACV,oBAAoB,EAEpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;;;OAIG;IACH,MAAM,EAAE,cAAc,CAAA;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU,CAAA;IAC7C,gEAAgE;IAChE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAA;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAChD;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,oBAAyB;IAKtE;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC;;;;;;OAMG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMlD;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,CAAC,SAAS,YAAY,EACpC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC;IAOtB;;;;;;;;;;OAUG;IACG,cAAc,CAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAatB;;;;;;;OAOG;IACH,KAAK;IASL;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,CAAC,UAAU;YASJ,mBAAmB;YAqBnB,YAAY;CAsC3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "18.1.0",
|
|
4
4
|
"description": "LI.FI Perps SDK for perpetuals trading",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"big.js": "^7.0.1",
|
|
47
47
|
"partysocket": "^1.1.19",
|
|
48
48
|
"viem": "^2.55.18",
|
|
49
|
-
"@lifi/perps-types": "^16.
|
|
49
|
+
"@lifi/perps-types": "^16.2.0"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
@@ -55,6 +55,7 @@ import type {
|
|
|
55
55
|
GetPortfolioHistoryParams,
|
|
56
56
|
GetSetupParams,
|
|
57
57
|
GetWithdrawableBalancesParams,
|
|
58
|
+
GetWithdrawFlowParams,
|
|
58
59
|
ModifyOrdersParams,
|
|
59
60
|
PerpsClientOptions,
|
|
60
61
|
PlaceOrderParams,
|
|
@@ -78,7 +79,7 @@ import type {
|
|
|
78
79
|
SignActionProgress,
|
|
79
80
|
SignActionsContext,
|
|
80
81
|
} from '../types/provider.js'
|
|
81
|
-
import type { WithdrawableBalance } from '../types/withdrawal.js'
|
|
82
|
+
import type { WithdrawableBalance, WithdrawFlow } from '../types/withdrawal.js'
|
|
82
83
|
import { signTypedDataWithSigner } from '../utils/signTypedData.js'
|
|
83
84
|
import {
|
|
84
85
|
eip712DomainChainId,
|
|
@@ -661,6 +662,23 @@ export class PerpsClient {
|
|
|
661
662
|
return plugin.getDepositFlow?.({ address: params.address })
|
|
662
663
|
}
|
|
663
664
|
|
|
665
|
+
/**
|
|
666
|
+
* The withdrawal flow for `params.address` at `params.provider`, delegated to
|
|
667
|
+
* the provider plugin — the withdrawal destination and any setup gate before
|
|
668
|
+
* it are venue-owned.
|
|
669
|
+
*
|
|
670
|
+
* @returns `undefined` when the registered plugin declares no withdrawal flow.
|
|
671
|
+
* @throws {PerpsError} When the provider plugin is not registered, or the
|
|
672
|
+
* plugin's flow resolution fails.
|
|
673
|
+
* @public
|
|
674
|
+
*/
|
|
675
|
+
async getWithdrawFlow(
|
|
676
|
+
params: GetWithdrawFlowParams
|
|
677
|
+
): Promise<WithdrawFlow | undefined> {
|
|
678
|
+
const plugin = this.requireProvider(params.provider)
|
|
679
|
+
return plugin.getWithdrawFlow?.({ address: params.address })
|
|
680
|
+
}
|
|
681
|
+
|
|
664
682
|
/**
|
|
665
683
|
* The `(asset, route)` selections `params.address` can actually withdraw at
|
|
666
684
|
* `params.provider`. The venue owns how its balances split across routes;
|
package/src/index.ts
CHANGED
|
@@ -118,6 +118,7 @@ export type {
|
|
|
118
118
|
GetPortfolioHistoryParams,
|
|
119
119
|
GetSetupParams,
|
|
120
120
|
GetWithdrawableBalancesParams,
|
|
121
|
+
GetWithdrawFlowParams,
|
|
121
122
|
ModifyOrdersParams,
|
|
122
123
|
PerpsClientOptions,
|
|
123
124
|
PerpsConfig,
|
|
@@ -166,6 +167,7 @@ export type {
|
|
|
166
167
|
ProviderGetPositionsParams,
|
|
167
168
|
ProviderGetQuoteParams,
|
|
168
169
|
ProviderGetWithdrawableBalancesParams,
|
|
170
|
+
ProviderGetWithdrawFlowParams,
|
|
169
171
|
QuoteListener,
|
|
170
172
|
SignActionProgress,
|
|
171
173
|
SignActionsContext,
|
|
@@ -174,6 +176,9 @@ export type {
|
|
|
174
176
|
ProviderWithdrawableBalance,
|
|
175
177
|
WithdrawableBalance,
|
|
176
178
|
WithdrawalRoute,
|
|
179
|
+
WithdrawFlow,
|
|
180
|
+
WithdrawFlowReady,
|
|
181
|
+
WithdrawFlowSetupRequired,
|
|
177
182
|
} from './types/withdrawal.js'
|
|
178
183
|
export { paginateActivity } from './utils/activityPaging.js'
|
|
179
184
|
export type { ExpectedPnl } from './utils/calculations.js'
|
package/src/types/api.ts
CHANGED
|
@@ -289,6 +289,16 @@ export interface GetDepositFlowParams {
|
|
|
289
289
|
address: Address
|
|
290
290
|
}
|
|
291
291
|
|
|
292
|
+
/**
|
|
293
|
+
* Parameters for {@link PerpsClient.getWithdrawFlow}.
|
|
294
|
+
*
|
|
295
|
+
* @public
|
|
296
|
+
*/
|
|
297
|
+
export interface GetWithdrawFlowParams {
|
|
298
|
+
provider: string
|
|
299
|
+
address: Address
|
|
300
|
+
}
|
|
301
|
+
|
|
292
302
|
/**
|
|
293
303
|
* Parameters for {@link PerpsClient.getWithdrawableBalances}.
|
|
294
304
|
*
|
package/src/types/provider.ts
CHANGED
|
@@ -36,7 +36,7 @@ import type {
|
|
|
36
36
|
SDKRequestOptions,
|
|
37
37
|
} from './config.js'
|
|
38
38
|
import type { DepositFlow } from './deposit.js'
|
|
39
|
-
import type { ProviderWithdrawableBalance } from './withdrawal.js'
|
|
39
|
+
import type { ProviderWithdrawableBalance, WithdrawFlow } from './withdrawal.js'
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
* Low-level SDK client: resolved config, the optional end-user wallet, and the
|
|
@@ -180,6 +180,15 @@ export interface ProviderGetDepositFlowParams {
|
|
|
180
180
|
address: Address
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
/**
|
|
184
|
+
* Read params for {@link PerpsProviderPlugin.getWithdrawFlow}.
|
|
185
|
+
*
|
|
186
|
+
* @public
|
|
187
|
+
*/
|
|
188
|
+
export interface ProviderGetWithdrawFlowParams {
|
|
189
|
+
address: Address
|
|
190
|
+
}
|
|
191
|
+
|
|
183
192
|
/**
|
|
184
193
|
* Read params for {@link PerpsProviderPlugin.getWithdrawableBalances}.
|
|
185
194
|
*
|
|
@@ -421,6 +430,19 @@ export interface PerpsProviderPlugin {
|
|
|
421
430
|
options?: SDKRequestOptions
|
|
422
431
|
): Promise<DepositFlow>
|
|
423
432
|
|
|
433
|
+
/**
|
|
434
|
+
* The withdrawal flow this venue offers `params.address`, resolved from the
|
|
435
|
+
* venue's own account and setup state — the destination a withdrawal goes
|
|
436
|
+
* to, or the venue setup that must come first.
|
|
437
|
+
*
|
|
438
|
+
* Optional: a provider without a gated withdrawal destination omits it, and
|
|
439
|
+
* `PerpsClient.getWithdrawFlow` then resolves `undefined`.
|
|
440
|
+
*/
|
|
441
|
+
getWithdrawFlow?(
|
|
442
|
+
params: ProviderGetWithdrawFlowParams,
|
|
443
|
+
options?: SDKRequestOptions
|
|
444
|
+
): Promise<WithdrawFlow>
|
|
445
|
+
|
|
424
446
|
/**
|
|
425
447
|
* The `(asset, route)` pairs `params.address` currently has something to
|
|
426
448
|
* withdraw from, keyed by provider-native asset id. Only the venue knows how
|
package/src/types/withdrawal.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Asset } from '@lifi/perps-types'
|
|
1
|
+
import type { ActionType, Asset } from '@lifi/perps-types'
|
|
2
|
+
import type { Address } from 'viem'
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Which of a venue's two balance routes a withdrawal is drawn from. Lighter's
|
|
@@ -49,3 +50,34 @@ export interface WithdrawableBalance {
|
|
|
49
50
|
*/
|
|
50
51
|
withdrawalFee?: string
|
|
51
52
|
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The venue accepts a withdrawal to `destination` now.
|
|
56
|
+
*
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
export interface WithdrawFlowReady {
|
|
60
|
+
kind: 'ready'
|
|
61
|
+
destination: Address
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* The venue cannot accept a withdrawal until the listed setup actions are
|
|
66
|
+
* satisfied — Ondo sends funds only to an address in its address book, behind
|
|
67
|
+
* a signed-in session.
|
|
68
|
+
*
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
export interface WithdrawFlowSetupRequired {
|
|
72
|
+
kind: 'setupRequired'
|
|
73
|
+
/** Setup action types that must be completed, in execution order. */
|
|
74
|
+
setup: ActionType[]
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The single withdrawal flow a venue offers one address, resolved from the
|
|
79
|
+
* venue's account and setup state.
|
|
80
|
+
*
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
export type WithdrawFlow = WithdrawFlowReady | WithdrawFlowSetupRequired
|
package/src/version.ts
CHANGED
|
@@ -45,6 +45,8 @@ export interface WsProviderFactory {
|
|
|
45
45
|
(params: WsProviderFactoryParams): WsProvider
|
|
46
46
|
/** `true` when the venue socket serves the `candle` channel. */
|
|
47
47
|
readonly streamsCandles: boolean
|
|
48
|
+
/** `true` when the venue socket serves the `availableToTrade` channel. */
|
|
49
|
+
readonly streamsAvailableToTrade: boolean
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
/**
|
|
@@ -94,6 +96,19 @@ export class PerpsWsClient {
|
|
|
94
96
|
return this.options.wsProviders?.[provider]?.streamsCandles ?? false
|
|
95
97
|
}
|
|
96
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Whether `provider`'s socket serves the `availableToTrade` channel, as
|
|
101
|
+
* reported by its registered factory. Returns `false` when no factory is
|
|
102
|
+
* registered. Synchronous, with the same contract as {@link streamsCandles}.
|
|
103
|
+
*
|
|
104
|
+
* @public
|
|
105
|
+
*/
|
|
106
|
+
streamsAvailableToTrade(provider: string): boolean {
|
|
107
|
+
return (
|
|
108
|
+
this.options.wsProviders?.[provider]?.streamsAvailableToTrade ?? false
|
|
109
|
+
)
|
|
110
|
+
}
|
|
111
|
+
|
|
97
112
|
/**
|
|
98
113
|
* Subscribe to a WebSocket channel, lazily creating the provider's WS
|
|
99
114
|
* connection. Returns an unsubscribe function.
|