@lifi/perps-sdk 5.0.0 → 6.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/dist/cjs/client/PerpsClient.d.ts +7 -1
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +10 -0
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
- package/dist/cjs/errors/PerpsError.js.map +1 -1
- package/dist/cjs/index.d.ts +5 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +6 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/registry/assetRegistry.d.ts.map +1 -1
- package/dist/cjs/registry/assetRegistry.js.map +1 -1
- package/dist/cjs/registry/marketRegistry.d.ts +2 -1
- package/dist/cjs/registry/marketRegistry.d.ts.map +1 -1
- package/dist/cjs/registry/marketRegistry.js +24 -1
- package/dist/cjs/registry/marketRegistry.js.map +1 -1
- package/dist/cjs/services/createAction.d.ts.map +1 -1
- package/dist/cjs/services/createAction.js.map +1 -1
- package/dist/cjs/services/executeAction.d.ts.map +1 -1
- package/dist/cjs/services/executeAction.js.map +1 -1
- package/dist/cjs/services/getActivity.d.ts.map +1 -1
- package/dist/cjs/services/getActivity.js.map +1 -1
- package/dist/cjs/services/getFills.d.ts.map +1 -1
- package/dist/cjs/services/getFills.js.map +1 -1
- package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
- package/dist/cjs/services/getOhlcv.js.map +1 -1
- package/dist/cjs/services/getOrder.d.ts.map +1 -1
- package/dist/cjs/services/getOrder.js.map +1 -1
- package/dist/cjs/services/getOrders.d.ts.map +1 -1
- package/dist/cjs/services/getOrders.js.map +1 -1
- package/dist/cjs/services/getPositions.d.ts.map +1 -1
- package/dist/cjs/services/getPositions.js.map +1 -1
- package/dist/cjs/services/getQuote.d.ts.map +1 -1
- package/dist/cjs/services/getQuote.js.map +1 -1
- package/dist/cjs/storage/parseStoredRecord.d.ts.map +1 -1
- package/dist/cjs/storage/parseStoredRecord.js.map +1 -1
- package/dist/cjs/storage/types.d.ts.map +1 -1
- package/dist/cjs/transport/fetchWithRetry.d.ts.map +1 -1
- package/dist/cjs/transport/fetchWithRetry.js.map +1 -1
- package/dist/cjs/transport/retryPolicy.d.ts.map +1 -1
- package/dist/cjs/transport/retryPolicy.js.map +1 -1
- package/dist/cjs/types/api.d.ts +2 -1
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/config.d.ts.map +1 -1
- package/dist/cjs/types/deposit.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +7 -1
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/utils/calculations.d.ts +0 -5
- package/dist/cjs/utils/calculations.d.ts.map +1 -1
- package/dist/cjs/utils/calculations.js +0 -9
- package/dist/cjs/utils/calculations.js.map +1 -1
- package/dist/cjs/utils/format.d.ts.map +1 -1
- package/dist/cjs/utils/format.js.map +1 -1
- package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
- package/dist/cjs/utils/orderClassification.js.map +1 -1
- package/dist/cjs/utils/transferMargin.d.ts +7 -0
- package/dist/cjs/utils/transferMargin.d.ts.map +1 -0
- package/dist/cjs/utils/transferMargin.js +50 -0
- package/dist/cjs/utils/transferMargin.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
- package/dist/cjs/websocket/ReconnectingWebSocket.d.ts.map +1 -1
- package/dist/cjs/websocket/ReconnectingWebSocket.js.map +1 -1
- package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -1
- package/dist/cjs/websocket/WsProviderBase.js.map +1 -1
- package/dist/cjs/websocket/cachePromise.d.ts.map +1 -1
- package/dist/cjs/websocket/cachePromise.js.map +1 -1
- package/dist/cjs/websocket/types.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.d.ts +24 -1
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +27 -0
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/errors/PerpsError.d.ts +7 -0
- package/dist/esm/errors/PerpsError.d.ts.map +1 -1
- package/dist/esm/errors/PerpsError.js +7 -0
- package/dist/esm/errors/PerpsError.js.map +1 -1
- package/dist/esm/index.d.ts +5 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/registry/assetRegistry.d.ts +5 -1
- package/dist/esm/registry/assetRegistry.d.ts.map +1 -1
- package/dist/esm/registry/assetRegistry.js +5 -1
- package/dist/esm/registry/assetRegistry.js.map +1 -1
- package/dist/esm/registry/marketRegistry.d.ts +28 -6
- package/dist/esm/registry/marketRegistry.d.ts.map +1 -1
- package/dist/esm/registry/marketRegistry.js +49 -6
- package/dist/esm/registry/marketRegistry.js.map +1 -1
- package/dist/esm/services/createAction.d.ts +2 -0
- package/dist/esm/services/createAction.d.ts.map +1 -1
- package/dist/esm/services/createAction.js.map +1 -1
- package/dist/esm/services/executeAction.d.ts +2 -0
- package/dist/esm/services/executeAction.d.ts.map +1 -1
- package/dist/esm/services/executeAction.js.map +1 -1
- package/dist/esm/services/getActivity.d.ts +4 -2
- package/dist/esm/services/getActivity.d.ts.map +1 -1
- package/dist/esm/services/getActivity.js.map +1 -1
- package/dist/esm/services/getFills.d.ts +4 -2
- package/dist/esm/services/getFills.d.ts.map +1 -1
- package/dist/esm/services/getFills.js.map +1 -1
- package/dist/esm/services/getMarkets.d.ts +1 -1
- package/dist/esm/services/getMarkets.d.ts.map +1 -1
- package/dist/esm/services/getMarketsContext.d.ts +1 -1
- package/dist/esm/services/getMarketsContext.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.d.ts +4 -3
- package/dist/esm/services/getOhlcv.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.js.map +1 -1
- package/dist/esm/services/getOrder.d.ts +1 -0
- package/dist/esm/services/getOrder.d.ts.map +1 -1
- package/dist/esm/services/getOrder.js.map +1 -1
- package/dist/esm/services/getOrderbook.d.ts +2 -2
- package/dist/esm/services/getOrderbook.d.ts.map +1 -1
- package/dist/esm/services/getOrders.d.ts +3 -1
- package/dist/esm/services/getOrders.d.ts.map +1 -1
- package/dist/esm/services/getOrders.js.map +1 -1
- package/dist/esm/services/getPositions.d.ts +3 -1
- package/dist/esm/services/getPositions.d.ts.map +1 -1
- package/dist/esm/services/getPositions.js.map +1 -1
- package/dist/esm/services/getQuote.d.ts +3 -1
- package/dist/esm/services/getQuote.d.ts.map +1 -1
- package/dist/esm/services/getQuote.js.map +1 -1
- package/dist/esm/storage/parseStoredRecord.d.ts +4 -0
- package/dist/esm/storage/parseStoredRecord.d.ts.map +1 -1
- package/dist/esm/storage/parseStoredRecord.js +4 -0
- package/dist/esm/storage/parseStoredRecord.js.map +1 -1
- package/dist/esm/storage/types.d.ts +10 -6
- package/dist/esm/storage/types.d.ts.map +1 -1
- package/dist/esm/transport/fetchWithRetry.d.ts +3 -0
- package/dist/esm/transport/fetchWithRetry.d.ts.map +1 -1
- package/dist/esm/transport/fetchWithRetry.js.map +1 -1
- package/dist/esm/transport/retryPolicy.d.ts +20 -0
- package/dist/esm/transport/retryPolicy.d.ts.map +1 -1
- package/dist/esm/transport/retryPolicy.js.map +1 -1
- package/dist/esm/types/api.d.ts +31 -10
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/config.d.ts +10 -0
- package/dist/esm/types/config.d.ts.map +1 -1
- package/dist/esm/types/deposit.d.ts +9 -3
- package/dist/esm/types/deposit.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +63 -18
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/utils/calculations.d.ts +2 -20
- package/dist/esm/utils/calculations.d.ts.map +1 -1
- package/dist/esm/utils/calculations.js +0 -23
- package/dist/esm/utils/calculations.js.map +1 -1
- package/dist/esm/utils/format.d.ts +5 -1
- package/dist/esm/utils/format.d.ts.map +1 -1
- package/dist/esm/utils/format.js.map +1 -1
- package/dist/esm/utils/orderClassification.d.ts +5 -0
- package/dist/esm/utils/orderClassification.d.ts.map +1 -1
- package/dist/esm/utils/orderClassification.js +5 -0
- package/dist/esm/utils/orderClassification.js.map +1 -1
- package/dist/esm/utils/transferMargin.d.ts +24 -0
- package/dist/esm/utils/transferMargin.d.ts.map +1 -0
- package/dist/esm/utils/transferMargin.js +56 -0
- package/dist/esm/utils/transferMargin.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts +0 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
- package/dist/esm/websocket/ReconnectingWebSocket.d.ts +5 -3
- package/dist/esm/websocket/ReconnectingWebSocket.d.ts.map +1 -1
- package/dist/esm/websocket/ReconnectingWebSocket.js.map +1 -1
- package/dist/esm/websocket/WsProviderBase.d.ts +17 -0
- package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -1
- package/dist/esm/websocket/WsProviderBase.js +17 -0
- package/dist/esm/websocket/WsProviderBase.js.map +1 -1
- package/dist/esm/websocket/cachePromise.d.ts +2 -0
- package/dist/esm/websocket/cachePromise.d.ts.map +1 -1
- package/dist/esm/websocket/cachePromise.js +2 -0
- package/dist/esm/websocket/cachePromise.js.map +1 -1
- package/dist/esm/websocket/types.d.ts +5 -0
- package/dist/esm/websocket/types.d.ts.map +1 -1
- package/dist/types/client/PerpsClient.d.ts +24 -1
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/errors/PerpsError.d.ts +7 -0
- package/dist/types/errors/PerpsError.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/registry/assetRegistry.d.ts +5 -1
- package/dist/types/registry/assetRegistry.d.ts.map +1 -1
- package/dist/types/registry/marketRegistry.d.ts +28 -6
- package/dist/types/registry/marketRegistry.d.ts.map +1 -1
- package/dist/types/services/createAction.d.ts +2 -0
- package/dist/types/services/createAction.d.ts.map +1 -1
- package/dist/types/services/executeAction.d.ts +2 -0
- package/dist/types/services/executeAction.d.ts.map +1 -1
- package/dist/types/services/getActivity.d.ts +4 -2
- package/dist/types/services/getActivity.d.ts.map +1 -1
- package/dist/types/services/getFills.d.ts +4 -2
- package/dist/types/services/getFills.d.ts.map +1 -1
- package/dist/types/services/getMarkets.d.ts +1 -1
- package/dist/types/services/getMarkets.d.ts.map +1 -1
- package/dist/types/services/getMarketsContext.d.ts +1 -1
- package/dist/types/services/getMarketsContext.d.ts.map +1 -1
- package/dist/types/services/getOhlcv.d.ts +4 -3
- package/dist/types/services/getOhlcv.d.ts.map +1 -1
- package/dist/types/services/getOrder.d.ts +1 -0
- package/dist/types/services/getOrder.d.ts.map +1 -1
- package/dist/types/services/getOrderbook.d.ts +2 -2
- package/dist/types/services/getOrderbook.d.ts.map +1 -1
- package/dist/types/services/getOrders.d.ts +3 -1
- package/dist/types/services/getOrders.d.ts.map +1 -1
- package/dist/types/services/getPositions.d.ts +3 -1
- package/dist/types/services/getPositions.d.ts.map +1 -1
- package/dist/types/services/getQuote.d.ts +3 -1
- package/dist/types/services/getQuote.d.ts.map +1 -1
- package/dist/types/storage/parseStoredRecord.d.ts +4 -0
- package/dist/types/storage/parseStoredRecord.d.ts.map +1 -1
- package/dist/types/storage/types.d.ts +10 -6
- package/dist/types/storage/types.d.ts.map +1 -1
- package/dist/types/transport/fetchWithRetry.d.ts +3 -0
- package/dist/types/transport/fetchWithRetry.d.ts.map +1 -1
- package/dist/types/transport/retryPolicy.d.ts +20 -0
- package/dist/types/transport/retryPolicy.d.ts.map +1 -1
- package/dist/types/types/api.d.ts +31 -10
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/config.d.ts +10 -0
- package/dist/types/types/config.d.ts.map +1 -1
- package/dist/types/types/deposit.d.ts +9 -3
- package/dist/types/types/deposit.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +63 -18
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/utils/calculations.d.ts +2 -20
- package/dist/types/utils/calculations.d.ts.map +1 -1
- package/dist/types/utils/format.d.ts +5 -1
- package/dist/types/utils/format.d.ts.map +1 -1
- package/dist/types/utils/orderClassification.d.ts +5 -0
- package/dist/types/utils/orderClassification.d.ts.map +1 -1
- package/dist/types/utils/transferMargin.d.ts +24 -0
- package/dist/types/utils/transferMargin.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/websocket/PerpsWsClient.d.ts +0 -1
- package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/types/websocket/ReconnectingWebSocket.d.ts +5 -3
- package/dist/types/websocket/ReconnectingWebSocket.d.ts.map +1 -1
- package/dist/types/websocket/WsProviderBase.d.ts +17 -0
- package/dist/types/websocket/WsProviderBase.d.ts.map +1 -1
- package/dist/types/websocket/cachePromise.d.ts +2 -0
- package/dist/types/websocket/cachePromise.d.ts.map +1 -1
- package/dist/types/websocket/types.d.ts +5 -0
- package/dist/types/websocket/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +39 -0
- package/src/errors/PerpsError.ts +7 -0
- package/src/index.ts +4 -1
- package/src/registry/assetRegistry.ts +5 -1
- package/src/registry/marketRegistry.ts +64 -7
- package/src/services/createAction.ts +2 -0
- package/src/services/executeAction.ts +2 -0
- package/src/services/getActivity.ts +4 -2
- package/src/services/getFills.ts +4 -2
- package/src/services/getMarkets.ts +1 -1
- package/src/services/getMarketsContext.ts +1 -1
- package/src/services/getOhlcv.ts +4 -3
- package/src/services/getOrder.ts +1 -0
- package/src/services/getOrderbook.ts +2 -2
- package/src/services/getOrders.ts +3 -1
- package/src/services/getPositions.ts +3 -1
- package/src/services/getQuote.ts +3 -1
- package/src/storage/parseStoredRecord.ts +4 -0
- package/src/storage/types.ts +10 -6
- package/src/transport/fetchWithRetry.ts +3 -0
- package/src/transport/retryPolicy.ts +20 -0
- package/src/types/api.ts +31 -9
- package/src/types/config.ts +10 -0
- package/src/types/deposit.ts +9 -3
- package/src/types/provider.ts +73 -17
- package/src/utils/calculations.ts +2 -28
- package/src/utils/format.ts +5 -1
- package/src/utils/orderClassification.ts +5 -0
- package/src/utils/transferMargin.ts +98 -0
- package/src/version.ts +1 -1
- package/src/websocket/PerpsWsClient.ts +0 -1
- package/src/websocket/ReconnectingWebSocket.ts +5 -3
- package/src/websocket/WsProviderBase.ts +17 -0
- package/src/websocket/cachePromise.ts +2 -0
- package/src/websocket/types.ts +5 -0
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type {
|
|
2
|
+
Market,
|
|
3
|
+
MarketDisplay,
|
|
4
|
+
MarketsResponse,
|
|
5
|
+
PerpsMarketDisplay,
|
|
6
|
+
} from '@lifi/perps-types'
|
|
7
|
+
import { PerpsErrorCode, PositionMarginAdjustment } from '@lifi/perps-types'
|
|
3
8
|
import { PerpsError } from '../errors/PerpsError.js'
|
|
4
9
|
import { buildUrl, request } from '../transport/request.js'
|
|
5
10
|
import type { PerpsSDKClient } from '../types/provider.js'
|
|
@@ -18,12 +23,20 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
|
|
|
18
23
|
super(client, provider, 'market')
|
|
19
24
|
}
|
|
20
25
|
|
|
21
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* The most recently synced market list. Empty before the first {@link sync}.
|
|
28
|
+
*
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
22
31
|
get markets(): readonly Market[] {
|
|
23
32
|
return this.items
|
|
24
33
|
}
|
|
25
34
|
|
|
26
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* The synced markets that are available for live and write operations.
|
|
37
|
+
*
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
27
40
|
get activeMarkets(): readonly Market[] {
|
|
28
41
|
return this.items.filter(isActiveMarket)
|
|
29
42
|
}
|
|
@@ -32,10 +45,10 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
|
|
|
32
45
|
* Lookup by `Market.id`, throwing when the backend list does not know the
|
|
33
46
|
* id. The list is the source of truth for enriched historical and live
|
|
34
47
|
* market metadata, so an id the venue references but the backend does not
|
|
35
|
-
* know is a hard error —
|
|
36
|
-
* never a silent fallback to an unenriched stand-in.
|
|
48
|
+
* know is a hard error — never a silent fallback to an unenriched stand-in.
|
|
37
49
|
*
|
|
38
50
|
* @throws {PerpsError} `MarketNotFound`.
|
|
51
|
+
* @public
|
|
39
52
|
*/
|
|
40
53
|
require(marketId: string): Market {
|
|
41
54
|
const market = this.get(marketId)
|
|
@@ -56,6 +69,7 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
|
|
|
56
69
|
* rejects them.
|
|
57
70
|
*
|
|
58
71
|
* @throws {PerpsError} `MarketNotFound` when the market is absent or delisted.
|
|
72
|
+
* @public
|
|
59
73
|
*/
|
|
60
74
|
requireActive(marketId: string): Market {
|
|
61
75
|
const market = this.require(marketId)
|
|
@@ -86,7 +100,12 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
|
|
|
86
100
|
|
|
87
101
|
const registries = new WeakMap<PerpsSDKClient, Map<string, MarketRegistry>>()
|
|
88
102
|
|
|
89
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* Return whether a market is available for live quoting and trading. A market
|
|
105
|
+
* remains active unless the backend explicitly sets `isDelisted` to `true`.
|
|
106
|
+
*
|
|
107
|
+
* @public
|
|
108
|
+
*/
|
|
90
109
|
export const isActiveMarket = (market: Market): boolean =>
|
|
91
110
|
market.isDelisted !== true
|
|
92
111
|
|
|
@@ -127,3 +146,41 @@ export const toMarketDisplay = (market: Market): MarketDisplay => ({
|
|
|
127
146
|
quoteAsset: market.quoteAsset,
|
|
128
147
|
...(market.isDelisted === undefined ? {} : { isDelisted: market.isDelisted }),
|
|
129
148
|
})
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Project a perpetual {@link Market} to the identity embedded on a
|
|
152
|
+
* {@link Position}, preserving its individual-margin capability.
|
|
153
|
+
*
|
|
154
|
+
* @throws {PerpsError} `ValidationError` when passed a spot market.
|
|
155
|
+
* @public
|
|
156
|
+
*/
|
|
157
|
+
export const toPerpsMarketDisplay = (market: Market): PerpsMarketDisplay => {
|
|
158
|
+
if (!('positionMarginAdjustment' in market)) {
|
|
159
|
+
throw new PerpsError(
|
|
160
|
+
PerpsErrorCode.ValidationError,
|
|
161
|
+
`Market '${market.id}' is not a perpetual market.`
|
|
162
|
+
)
|
|
163
|
+
}
|
|
164
|
+
const capability = market.positionMarginAdjustment
|
|
165
|
+
if (
|
|
166
|
+
capability !== PositionMarginAdjustment.NONE &&
|
|
167
|
+
capability !== PositionMarginAdjustment.ADD_ONLY &&
|
|
168
|
+
capability !== PositionMarginAdjustment.ADD_AND_REMOVE
|
|
169
|
+
) {
|
|
170
|
+
throw new PerpsError(
|
|
171
|
+
PerpsErrorCode.ValidationError,
|
|
172
|
+
`Market '${market.id}' is not a perpetual market.`
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
providerId: market.providerId,
|
|
177
|
+
id: market.id,
|
|
178
|
+
categoryId: market.categoryId,
|
|
179
|
+
baseAsset: market.baseAsset,
|
|
180
|
+
quoteAsset: market.quoteAsset,
|
|
181
|
+
...(market.isDelisted === undefined
|
|
182
|
+
? {}
|
|
183
|
+
: { isDelisted: market.isDelisted }),
|
|
184
|
+
positionMarginAdjustment: capability,
|
|
185
|
+
}
|
|
186
|
+
}
|
|
@@ -16,8 +16,10 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
16
16
|
export interface CreateActionParams<T extends ActionType = ActionType> {
|
|
17
17
|
provider: string
|
|
18
18
|
address: Address
|
|
19
|
+
/** Optional provider-owned signer address sent to the backend. */
|
|
19
20
|
signerAddress?: Address
|
|
20
21
|
action: T
|
|
22
|
+
/** Action-specific payload matching `action`. */
|
|
21
23
|
params: ActionParamsMap[T]
|
|
22
24
|
}
|
|
23
25
|
|
|
@@ -16,7 +16,9 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
16
16
|
export interface ExecuteActionParams {
|
|
17
17
|
provider: string
|
|
18
18
|
address: Address
|
|
19
|
+
/** Optional provider-owned signer address used for submission. */
|
|
19
20
|
signerAddress?: Address
|
|
21
|
+
/** Action descriptor shared by the signed steps. */
|
|
20
22
|
action: ActionType
|
|
21
23
|
actions: SignedActionStep[]
|
|
22
24
|
}
|
|
@@ -12,11 +12,13 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
12
12
|
export interface GetActivityParams {
|
|
13
13
|
provider: string
|
|
14
14
|
address: Address
|
|
15
|
+
/** Maximum items returned; provider defaults and caps apply. */
|
|
15
16
|
limit?: number
|
|
17
|
+
/** Opaque pagination cursor from the previous response. */
|
|
16
18
|
cursor?: string
|
|
17
|
-
/**
|
|
19
|
+
/** Include activity at or after this Unix timestamp in milliseconds. */
|
|
18
20
|
startTime?: number
|
|
19
|
-
/**
|
|
21
|
+
/** Include activity at or before this Unix timestamp in milliseconds. */
|
|
20
22
|
endTime?: number
|
|
21
23
|
type?: ActivityType[]
|
|
22
24
|
}
|
package/src/services/getFills.ts
CHANGED
|
@@ -12,11 +12,13 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
12
12
|
export interface GetFillsParams {
|
|
13
13
|
provider: string
|
|
14
14
|
address: Address
|
|
15
|
+
/** Maximum items returned; provider defaults and caps apply. */
|
|
15
16
|
limit?: number
|
|
17
|
+
/** Opaque pagination cursor from the previous response. */
|
|
16
18
|
cursor?: string
|
|
17
|
-
/**
|
|
19
|
+
/** Include fills at or after this Unix timestamp in milliseconds. */
|
|
18
20
|
startTime?: number
|
|
19
|
-
/**
|
|
21
|
+
/** Include fills at or before this Unix timestamp in milliseconds. */
|
|
20
22
|
endTime?: number
|
|
21
23
|
}
|
|
22
24
|
|
|
@@ -11,7 +11,7 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
11
11
|
*/
|
|
12
12
|
export interface GetMarketsParams {
|
|
13
13
|
provider: string
|
|
14
|
-
/** Optional filter
|
|
14
|
+
/** Optional comma-joined filter of opaque `Market.id`s. */
|
|
15
15
|
marketIds?: string[]
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -10,7 +10,7 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
10
10
|
*/
|
|
11
11
|
export interface GetMarketsContextParams {
|
|
12
12
|
provider: string
|
|
13
|
-
/** Optional filter
|
|
13
|
+
/** Optional filter of opaque `Market.id`s (not display symbols). */
|
|
14
14
|
marketIds?: string[]
|
|
15
15
|
}
|
|
16
16
|
|
package/src/services/getOhlcv.ts
CHANGED
|
@@ -10,13 +10,14 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
10
10
|
*/
|
|
11
11
|
export interface GetOhlcvParams {
|
|
12
12
|
provider: string
|
|
13
|
-
/** Opaque provider `Market.id
|
|
13
|
+
/** Opaque provider `Market.id`, not a display symbol. */
|
|
14
14
|
marketId: string
|
|
15
15
|
interval: OhlcvInterval
|
|
16
|
-
/** Unix timestamp in milliseconds */
|
|
16
|
+
/** Unix timestamp in milliseconds for the start bound. */
|
|
17
17
|
startTime?: number
|
|
18
|
-
/** Unix timestamp in milliseconds */
|
|
18
|
+
/** Unix timestamp in milliseconds for the end bound. */
|
|
19
19
|
endTime?: number
|
|
20
|
+
/** Maximum candles returned; provider defaults and caps apply. */
|
|
20
21
|
limit?: number
|
|
21
22
|
}
|
|
22
23
|
|
package/src/services/getOrder.ts
CHANGED
|
@@ -10,9 +10,9 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
10
10
|
*/
|
|
11
11
|
export interface GetOrderbookParams {
|
|
12
12
|
provider: string
|
|
13
|
-
/** Opaque provider `Market.id
|
|
13
|
+
/** Opaque provider `Market.id`, not a display symbol. */
|
|
14
14
|
marketId: string
|
|
15
|
-
/**
|
|
15
|
+
/** Optional number of price levels; venue defaults apply when omitted. */
|
|
16
16
|
depth?: number
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -12,9 +12,11 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
12
12
|
export interface GetOrdersParams {
|
|
13
13
|
provider: string
|
|
14
14
|
address: Address
|
|
15
|
-
/** Optional
|
|
15
|
+
/** Optional opaque `Market.id` filter, not a display symbol. */
|
|
16
16
|
marketId?: string
|
|
17
|
+
/** Maximum items returned; provider defaults and caps apply. */
|
|
17
18
|
limit?: number
|
|
19
|
+
/** Opaque pagination cursor from the previous response. */
|
|
18
20
|
cursor?: string
|
|
19
21
|
}
|
|
20
22
|
|
|
@@ -12,9 +12,11 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
12
12
|
export interface GetPositionsParams {
|
|
13
13
|
provider: string
|
|
14
14
|
address: Address
|
|
15
|
-
/** Optional
|
|
15
|
+
/** Optional opaque `Market.id` filter, not a display symbol. */
|
|
16
16
|
marketId?: string
|
|
17
|
+
/** Maximum items returned; provider defaults and caps apply. */
|
|
17
18
|
limit?: number
|
|
19
|
+
/** Opaque pagination cursor from the previous response. */
|
|
18
20
|
cursor?: string
|
|
19
21
|
}
|
|
20
22
|
|
package/src/services/getQuote.ts
CHANGED
|
@@ -10,11 +10,13 @@ import type { PerpsSDKClient } from '../types/provider.js'
|
|
|
10
10
|
*/
|
|
11
11
|
export interface GetQuoteParams {
|
|
12
12
|
provider: string
|
|
13
|
-
/** Human `displaySymbol`, e.g. `"BTC"
|
|
13
|
+
/** Human `displaySymbol`, e.g. `"BTC"`, resolved by the provider. */
|
|
14
14
|
symbol: string
|
|
15
|
+
/** Buy consumes asks; sell consumes bids. */
|
|
15
16
|
side: QuoteSide
|
|
16
17
|
/** USD notional to fill. */
|
|
17
18
|
size: number
|
|
19
|
+
/** Product family used to distinguish spot and perpetual markets. */
|
|
18
20
|
type: TradeType
|
|
19
21
|
}
|
|
20
22
|
|
|
@@ -15,6 +15,8 @@ import type { StorageAdapter } from './types.js'
|
|
|
15
15
|
*
|
|
16
16
|
* @param raw Stored string, or `null` when the key is absent.
|
|
17
17
|
* @param isValid Shape guard run against the parsed value.
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
18
20
|
*/
|
|
19
21
|
export function parseStoredRecord<T>(
|
|
20
22
|
raw: string | null,
|
|
@@ -40,6 +42,8 @@ export function parseStoredRecord<T>(
|
|
|
40
42
|
* Returns `null` for both the genuine-absence and the evicted-poison cases;
|
|
41
43
|
* callers that must distinguish them should compare against the pre-read
|
|
42
44
|
* presence of the key themselves.
|
|
45
|
+
*
|
|
46
|
+
* @public
|
|
43
47
|
*/
|
|
44
48
|
export async function readValidatedRecord<T>(
|
|
45
49
|
storage: StorageAdapter,
|
package/src/storage/types.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Asynchronous key-value storage for SDK session credentials (provider agent
|
|
3
|
+
* keypairs, API keys, and read-only tokens). Values are opaque strings; an
|
|
4
|
+
* adapter should preserve them exactly and return `null` when a key is absent.
|
|
5
|
+
* Implement this interface for encrypted storage, a database, or another
|
|
6
|
+
* application-owned store.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
5
9
|
*/
|
|
6
10
|
export interface StorageAdapter {
|
|
7
|
-
/**
|
|
11
|
+
/** Read the value for `key`, or `null` when the key is absent. */
|
|
8
12
|
get(key: string): Promise<string | null>
|
|
9
|
-
/**
|
|
13
|
+
/** Persist `value` under `key`, replacing any existing value. */
|
|
10
14
|
set(key: string, value: string): Promise<void>
|
|
11
|
-
/** Remove
|
|
15
|
+
/** Remove `key`; resolving successfully when it is already absent. */
|
|
12
16
|
remove(key: string): Promise<void>
|
|
13
17
|
}
|
|
@@ -7,8 +7,11 @@ import type { ResolvedRetryPolicy, RetryClassification } from './retryPolicy.js'
|
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
9
|
export interface FetchWithRetryOptions {
|
|
10
|
+
/** Fully resolved retry policy controlling attempts, delays, and classification. */
|
|
10
11
|
policy: ResolvedRetryPolicy
|
|
12
|
+
/** Optional fetch implementation; defaults to the global `fetch`. */
|
|
11
13
|
fetchImpl?: typeof fetch
|
|
14
|
+
/** Abort signal; cancellation is propagated without retrying. */
|
|
12
15
|
signal?: AbortSignal
|
|
13
16
|
}
|
|
14
17
|
|
|
@@ -24,6 +24,7 @@ export type RetryClassification =
|
|
|
24
24
|
* @public
|
|
25
25
|
*/
|
|
26
26
|
export interface RetryClassifyContext {
|
|
27
|
+
/** Non-2xx response being classified for retry or terminal failure. */
|
|
27
28
|
response: Response
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -34,9 +35,13 @@ export interface RetryClassifyContext {
|
|
|
34
35
|
* @public
|
|
35
36
|
*/
|
|
36
37
|
export interface RetryAttemptContext {
|
|
38
|
+
/** Zero-based attempt index for the response/error. */
|
|
37
39
|
attempt: number
|
|
40
|
+
/** Response received, when the attempt reached the server. */
|
|
38
41
|
response?: Response
|
|
42
|
+
/** Network error thrown before a response was received. */
|
|
39
43
|
error?: unknown
|
|
44
|
+
/** Classification returned by the policy's classifier. */
|
|
40
45
|
classification: RetryClassification
|
|
41
46
|
}
|
|
42
47
|
|
|
@@ -50,11 +55,17 @@ export interface RetryAttemptContext {
|
|
|
50
55
|
* @public
|
|
51
56
|
*/
|
|
52
57
|
export interface RetryPolicy {
|
|
58
|
+
/** Maximum total attempts, including the initial request. */
|
|
53
59
|
maxAttempts?: number
|
|
60
|
+
/** Initial exponential-backoff ceiling in milliseconds. */
|
|
54
61
|
baseDelayMs?: number
|
|
62
|
+
/** Maximum backoff delay in milliseconds. */
|
|
55
63
|
maxDelayMs?: number
|
|
64
|
+
/** Whether a valid `Retry-After` response header takes precedence. */
|
|
56
65
|
respectRetryAfter?: boolean
|
|
66
|
+
/** Classify a response; `undefined` delegates to the base classifier. */
|
|
57
67
|
classify?: (ctx: RetryClassifyContext) => RetryClassification | undefined
|
|
68
|
+
/** Final per-attempt veto after classification requests a retry. */
|
|
58
69
|
shouldRetry?: (ctx: RetryAttemptContext) => boolean | Promise<boolean>
|
|
59
70
|
}
|
|
60
71
|
|
|
@@ -65,12 +76,19 @@ export interface RetryPolicy {
|
|
|
65
76
|
* @public
|
|
66
77
|
*/
|
|
67
78
|
export interface ResolvedRetryPolicy {
|
|
79
|
+
/** Whether retries are enabled. */
|
|
68
80
|
enabled: boolean
|
|
81
|
+
/** Maximum total attempts, including the initial request. */
|
|
69
82
|
maxAttempts: number
|
|
83
|
+
/** Initial exponential-backoff ceiling in milliseconds. */
|
|
70
84
|
baseDelayMs: number
|
|
85
|
+
/** Maximum backoff delay in milliseconds. */
|
|
71
86
|
maxDelayMs: number
|
|
87
|
+
/** Whether a valid `Retry-After` header is honored. */
|
|
72
88
|
respectRetryAfter: boolean
|
|
89
|
+
/** Final response classifier used for each failed attempt. */
|
|
73
90
|
classify: (ctx: RetryClassifyContext) => RetryClassification
|
|
91
|
+
/** Optional final veto after classification requests a retry. */
|
|
74
92
|
shouldRetry?: (ctx: RetryAttemptContext) => boolean | Promise<boolean>
|
|
75
93
|
}
|
|
76
94
|
|
|
@@ -82,7 +100,9 @@ export interface ResolvedRetryPolicy {
|
|
|
82
100
|
* @public
|
|
83
101
|
*/
|
|
84
102
|
export interface ProviderRetryConfig {
|
|
103
|
+
/** Fallback policy for providers without an explicit key. */
|
|
85
104
|
default?: RetryPolicy | false
|
|
105
|
+
/** Override keyed by provider type, or `lifi` for backend requests. */
|
|
86
106
|
[providerKey: string]: RetryPolicy | false | undefined
|
|
87
107
|
}
|
|
88
108
|
|
package/src/types/api.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
AccountResponse,
|
|
4
4
|
ActionStep,
|
|
5
5
|
ExecuteActionResponse,
|
|
6
|
+
MarginMode,
|
|
6
7
|
MarketRef,
|
|
7
8
|
ModifyOrderInput,
|
|
8
9
|
OrderSide,
|
|
@@ -27,10 +28,15 @@ import type { PerpsProviderPlugin } from './provider.js'
|
|
|
27
28
|
* @public
|
|
28
29
|
*/
|
|
29
30
|
export interface PerpsConfig {
|
|
31
|
+
/** Integrator identifier sent in the `x-lifi-integrator` request header. */
|
|
30
32
|
integrator: string
|
|
33
|
+
/** LI.FI API key used for authenticated backend requests. */
|
|
31
34
|
apiKey: string
|
|
35
|
+
/** Perps API base URL; defaults to {@link DEFAULT_API_URL}. */
|
|
32
36
|
apiUrl?: string
|
|
37
|
+
/** Skip the SDK-version compatibility check when set. */
|
|
33
38
|
disableVersionCheck?: boolean
|
|
39
|
+
/** Hook that can rewrite URL/request options before transport. */
|
|
34
40
|
requestInterceptor?: RequestInterceptor
|
|
35
41
|
/**
|
|
36
42
|
* Provider plugins or per-provider config. Two shapes are accepted:
|
|
@@ -78,10 +84,11 @@ export interface PerpsConfig {
|
|
|
78
84
|
* @public
|
|
79
85
|
*/
|
|
80
86
|
export interface PerpsClientOptions {
|
|
87
|
+
/** Integrator identifier sent in the `x-lifi-integrator` request header. */
|
|
81
88
|
integrator: string
|
|
82
|
-
/** API key for authenticated requests (get one at https://portal.li.fi/) */
|
|
89
|
+
/** API key for authenticated requests (get one at https://portal.li.fi/). */
|
|
83
90
|
apiKey: string
|
|
84
|
-
/**
|
|
91
|
+
/** Perps API base URL; defaults to {@link DEFAULT_API_URL}. */
|
|
85
92
|
apiUrl?: string
|
|
86
93
|
/**
|
|
87
94
|
* Provider plugins or per-provider config. Accepts the same two shapes as
|
|
@@ -116,14 +123,27 @@ export interface BuildProviderSetupParams {
|
|
|
116
123
|
export interface PlaceOrderParams {
|
|
117
124
|
provider: string
|
|
118
125
|
address: Address
|
|
126
|
+
/** Opaque provider market reference. */
|
|
119
127
|
market: MarketRef
|
|
120
128
|
side: OrderSide
|
|
121
129
|
type: OrderType
|
|
130
|
+
/** Base-asset size as a decimal wire string. */
|
|
122
131
|
size: string
|
|
132
|
+
/** Limit price as a decimal wire string; required by limit-style orders. */
|
|
123
133
|
price: string
|
|
134
|
+
/** Optional leverage multiplier; provider defaults apply when omitted. */
|
|
124
135
|
leverage?: number
|
|
136
|
+
/**
|
|
137
|
+
* Margin mode the order trades under; omitted falls to the venue's cross
|
|
138
|
+
* default. Lighter's order tx carries the mode directly; Hyperliquid
|
|
139
|
+
* applies it via a prepended leverage update (requires `leverage`).
|
|
140
|
+
*/
|
|
141
|
+
marginMode?: MarginMode
|
|
142
|
+
/** Whether the order may only reduce an existing position. */
|
|
125
143
|
reduceOnly?: boolean
|
|
144
|
+
/** Time-in-force policy; provider defaults apply when omitted. */
|
|
126
145
|
timeInForce?: TimeInForce
|
|
146
|
+
/** Optional Unix timestamp or provider wire expiry string. */
|
|
127
147
|
expiresAt?: string
|
|
128
148
|
takeProfit?: TriggerOrderInput
|
|
129
149
|
stopLoss?: TriggerOrderInput
|
|
@@ -138,6 +158,7 @@ export interface PlaceOrderParams {
|
|
|
138
158
|
export interface PlaceTriggerOrderParams {
|
|
139
159
|
provider: string
|
|
140
160
|
address: Address
|
|
161
|
+
/** Opaque provider market reference. */
|
|
141
162
|
market: MarketRef
|
|
142
163
|
side: OrderSide
|
|
143
164
|
takeProfit?: TriggerOrderInput
|
|
@@ -152,6 +173,7 @@ export interface PlaceTriggerOrderParams {
|
|
|
152
173
|
export interface WithdrawParams {
|
|
153
174
|
provider: string
|
|
154
175
|
address: Address
|
|
176
|
+
/** Provider-specific withdrawal payload, including amount/destination. */
|
|
155
177
|
withdrawal: WithdrawalParams
|
|
156
178
|
}
|
|
157
179
|
|
|
@@ -165,11 +187,13 @@ export interface WithdrawParams {
|
|
|
165
187
|
export interface SendAssetActionParams {
|
|
166
188
|
provider: string
|
|
167
189
|
address: Address
|
|
168
|
-
/** Canonical `Asset.id`
|
|
169
|
-
* assets, the token index as a string) — never a display symbol. */
|
|
190
|
+
/** Canonical `Asset.id` (Hyperliquid spot uses the token index as a string); never a display symbol. */
|
|
170
191
|
collateral: string
|
|
192
|
+
/** Source DEX/account identifier understood by the provider. */
|
|
171
193
|
sourceDex: string
|
|
194
|
+
/** Destination DEX/account identifier understood by the provider. */
|
|
172
195
|
destinationDex: string
|
|
196
|
+
/** Transfer amount as a provider-compatible decimal wire string. */
|
|
173
197
|
amount: string
|
|
174
198
|
}
|
|
175
199
|
|
|
@@ -181,10 +205,9 @@ export interface SendAssetActionParams {
|
|
|
181
205
|
export interface CancelOrdersParams {
|
|
182
206
|
provider: string
|
|
183
207
|
address: Address
|
|
184
|
-
/** Venue order ids.
|
|
185
|
-
* `order_index`) also accept the composite `"<market_id>:<order_id>"`. */
|
|
208
|
+
/** Venue order ids. Market-scoped venues such as Lighter also accept `"<market_id>:<order_id>"`. */
|
|
186
209
|
ids: string[]
|
|
187
|
-
/** Market context for per-market order ids; the order's `market.id`. */
|
|
210
|
+
/** Market context for per-market order ids; use the order's opaque `market.id`. */
|
|
188
211
|
assetId?: string
|
|
189
212
|
}
|
|
190
213
|
|
|
@@ -196,6 +219,7 @@ export interface CancelOrdersParams {
|
|
|
196
219
|
export interface ModifyOrdersParams {
|
|
197
220
|
provider: string
|
|
198
221
|
address: Address
|
|
222
|
+
/** Provider-specific order modifications. */
|
|
199
223
|
modifications: ModifyOrderInput[]
|
|
200
224
|
}
|
|
201
225
|
|
|
@@ -250,9 +274,7 @@ export interface ProviderSetup {
|
|
|
250
274
|
* Parameters for the internal `PerpsClient.executeProviderSetup` batch submit.
|
|
251
275
|
*/
|
|
252
276
|
export interface ExecuteProviderSetupParams {
|
|
253
|
-
/** Provider to satisfy setup for */
|
|
254
277
|
provider: string
|
|
255
|
-
/** User wallet address */
|
|
256
278
|
address: Address
|
|
257
279
|
/** The unsatisfied setup steps from checkSetup() */
|
|
258
280
|
setup: ActionStep[]
|
package/src/types/config.ts
CHANGED
|
@@ -30,6 +30,7 @@ export type SwitchChainHook = (
|
|
|
30
30
|
* @public
|
|
31
31
|
*/
|
|
32
32
|
export interface ProviderConfig {
|
|
33
|
+
/** Optional provider category/market ids used to filter WS subscriptions. */
|
|
33
34
|
markets?: string[]
|
|
34
35
|
}
|
|
35
36
|
|
|
@@ -64,6 +65,7 @@ export type RequestInterceptor = (
|
|
|
64
65
|
* @public
|
|
65
66
|
*/
|
|
66
67
|
export interface SDKRequestOptions {
|
|
68
|
+
/** Abort the request and any pending backoff delay. */
|
|
67
69
|
signal?: AbortSignal
|
|
68
70
|
/**
|
|
69
71
|
* Lighter auth token consumed by provider-direct venue reads (getOrders,
|
|
@@ -85,12 +87,20 @@ export interface SDKRequestOptions {
|
|
|
85
87
|
* @public
|
|
86
88
|
*/
|
|
87
89
|
export interface PerpsBaseConfig {
|
|
90
|
+
/** Integrator identifier sent in the `x-lifi-integrator` header. */
|
|
88
91
|
integrator: string
|
|
92
|
+
/** API key applied to backend requests when non-empty. */
|
|
89
93
|
apiKey: string
|
|
94
|
+
/** Resolved perps API base URL. */
|
|
90
95
|
apiUrl: string
|
|
96
|
+
/** Whether SDK version compatibility checks are disabled. */
|
|
91
97
|
disableVersionCheck?: boolean
|
|
98
|
+
/** Optional outgoing-request URL/options interceptor. */
|
|
92
99
|
requestInterceptor?: RequestInterceptor
|
|
100
|
+
/** Optional per-provider WS market filters. */
|
|
93
101
|
providers?: ProviderConfigs
|
|
102
|
+
/** Optional global or per-provider retry configuration. */
|
|
94
103
|
retry?: RetryConfig
|
|
104
|
+
/** Fetch implementation used by core HTTP transport. */
|
|
95
105
|
fetch?: typeof fetch
|
|
96
106
|
}
|
package/src/types/deposit.ts
CHANGED
|
@@ -9,9 +9,11 @@ import type { Address } from 'viem'
|
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
11
|
export interface DeclaredDepositAsset {
|
|
12
|
+
/** EVM chain id on which the asset is held or broadcast. */
|
|
12
13
|
chainId: number
|
|
13
|
-
/** EIP-55 checksummed address; the zero address denotes
|
|
14
|
+
/** EIP-55 checksummed address; the zero address denotes native gas. */
|
|
14
15
|
address: Address
|
|
16
|
+
/** Decimal places used by the token; native gas assets use 18. */
|
|
15
17
|
decimals: number
|
|
16
18
|
}
|
|
17
19
|
|
|
@@ -25,6 +27,7 @@ export interface DeclaredDepositAsset {
|
|
|
25
27
|
*/
|
|
26
28
|
export interface DepositFlowLifiSwap {
|
|
27
29
|
kind: 'lifiSwap'
|
|
30
|
+
/** Destination collateral token and its full chain identity. */
|
|
28
31
|
destination: DeclaredDepositAsset
|
|
29
32
|
/**
|
|
30
33
|
* Credited address when it is not the user's own — a venue-provisioned
|
|
@@ -43,10 +46,13 @@ export interface DepositFlowLifiSwap {
|
|
|
43
46
|
*/
|
|
44
47
|
export interface DepositFlowFirstDepositPipeline {
|
|
45
48
|
kind: 'firstDepositPipeline'
|
|
46
|
-
/** Chain the deposit legs broadcast
|
|
49
|
+
/** Chain on which the deposit legs broadcast; the wallet must be switched here. */
|
|
47
50
|
chainId: number
|
|
51
|
+
/** Native gas asset needed to broadcast the deposit legs. */
|
|
48
52
|
gasAsset: DeclaredDepositAsset
|
|
53
|
+
/** Collateral asset credited by the first deposit. */
|
|
49
54
|
collateral: DeclaredDepositAsset
|
|
55
|
+
/** Action type used to stage the deposit pipeline. */
|
|
50
56
|
bridgeAction: ActionType.DEPOSIT
|
|
51
57
|
}
|
|
52
58
|
|
|
@@ -59,7 +65,7 @@ export interface DepositFlowFirstDepositPipeline {
|
|
|
59
65
|
*/
|
|
60
66
|
export interface DepositFlowSetupRequired {
|
|
61
67
|
kind: 'setupRequired'
|
|
62
|
-
/**
|
|
68
|
+
/** Setup action types that must be completed, in execution order. */
|
|
63
69
|
setup: ActionType[]
|
|
64
70
|
}
|
|
65
71
|
|