@lifi/perps-sdk 6.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.map +1 -1
- 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/registry/assetRegistry.d.ts.map +1 -1
- package/dist/cjs/registry/assetRegistry.js.map +1 -1
- package/dist/cjs/registry/marketRegistry.d.ts.map +1 -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.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.map +1 -1
- package/dist/cjs/utils/calculations.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/cjs/utils/transferMargin.js +1 -3
- package/dist/cjs/utils/transferMargin.js.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.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 +2 -0
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +2 -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/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 +19 -5
- package/dist/esm/registry/marketRegistry.d.ts.map +1 -1
- package/dist/esm/registry/marketRegistry.js +19 -5
- 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 +24 -9
- 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 +34 -17
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/utils/calculations.d.ts +2 -0
- package/dist/esm/utils/calculations.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/utils/transferMargin.js +2 -4
- package/dist/esm/utils/transferMargin.js.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 +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 +2 -0
- 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/registry/assetRegistry.d.ts +5 -1
- package/dist/types/registry/assetRegistry.d.ts.map +1 -1
- package/dist/types/registry/marketRegistry.d.ts +19 -5
- 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 +24 -9
- 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 +34 -17
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/utils/calculations.d.ts +2 -0
- 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.map +1 -1
- 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 +2 -0
- package/src/errors/PerpsError.ts +7 -0
- package/src/registry/assetRegistry.ts +5 -1
- package/src/registry/marketRegistry.ts +19 -5
- 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 +24 -9
- package/src/types/config.ts +10 -0
- package/src/types/deposit.ts +9 -3
- package/src/types/provider.ts +34 -17
- package/src/utils/calculations.ts +2 -0
- package/src/utils/format.ts +5 -1
- package/src/utils/orderClassification.ts +5 -0
- package/src/utils/transferMargin.ts +2 -7
- 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
|
@@ -36,8 +36,25 @@ export declare abstract class WsProviderBase<TSub = unknown> implements WsProvid
|
|
|
36
36
|
private readonly statusListeners;
|
|
37
37
|
private readonly wireSubs;
|
|
38
38
|
constructor(rws: ReconnectingWebSocket, providerKey: string);
|
|
39
|
+
/**
|
|
40
|
+
* Acquire a ref-counted subscription to a provider channel and return an
|
|
41
|
+
* idempotent release function. Optional status listeners are reference-counted
|
|
42
|
+
* alongside the channel listener.
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
39
46
|
subscribe(sub: Subscription, listener: SubscriptionListener, onStatus?: WsStatusListener): Promise<() => void>;
|
|
47
|
+
/**
|
|
48
|
+
* Reconnect the underlying socket only when it is terminally disconnected.
|
|
49
|
+
*
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
40
52
|
reconnect(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Release all channel and status listeners and close the underlying socket.
|
|
55
|
+
*
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
41
58
|
close(): void;
|
|
42
59
|
/** Deliver an event to every listener on `key`. */
|
|
43
60
|
protected emit(key: string, event: SubscriptionEvent): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WsProviderBase.d.ts","sourceRoot":"","sources":["../../../src/websocket/WsProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAiBhD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,cAAc,CAAC,IAAI,GAAG,OAAO,CAAE,YAAW,UAAU;IACxE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAEtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEvC,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"WsProviderBase.d.ts","sourceRoot":"","sources":["../../../src/websocket/WsProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAiBhD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,cAAc,CAAC,IAAI,GAAG,OAAO,CAAE,YAAW,UAAU;IACxE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAEtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEvC,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM;IAc3D;;;;;;OAMG;IACG,SAAS,CACb,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC;IAgCtB;;;;OAIG;IACH,SAAS,IAAI,IAAI;IAOjB;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAab,mDAAmD;IACnD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAU3D;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAgBlD;;;;;;OAMG;cACa,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE,4EAA4E;IAC5E,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;YAI5B,UAAU;IAqBxB,qFAAqF;IACrF,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAEtB,iFAAiF;IACjF,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAEnD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnE,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAEnD,mFAAmF;IACnF,SAAS,CAAC,OAAO,IAAI,IAAI;IAEzB,OAAO,CAAC,YAAY;YAYN,cAAc;IAgD5B,OAAO,CAAC,cAAc;CAwCvB"}
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
* @param read - Returns the currently cached promise, or `undefined` if none.
|
|
10
10
|
* @param write - Stores (or with `undefined`, clears) the cached promise.
|
|
11
11
|
* @param factory - Creates the promise when the slot is empty.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
12
14
|
*/
|
|
13
15
|
export declare function cachePromise<T>(read: () => Promise<T> | undefined, write: (promise: Promise<T> | undefined) => void, factory: () => Promise<T>): Promise<T>;
|
|
14
16
|
//# sourceMappingURL=cachePromise.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cachePromise.d.ts","sourceRoot":"","sources":["../../../src/websocket/cachePromise.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cachePromise.d.ts","sourceRoot":"","sources":["../../../src/websocket/cachePromise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,EAClC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,IAAI,EAChD,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,CAaZ"}
|
|
@@ -41,6 +41,10 @@ export type WsStatusListener = (status: WsConnectionStatus) => void;
|
|
|
41
41
|
* @public
|
|
42
42
|
*/
|
|
43
43
|
export interface WsProvider {
|
|
44
|
+
/**
|
|
45
|
+
* Subscribe to one venue channel and return an idempotent unsubscribe.
|
|
46
|
+
* `onStatus` receives the provider socket's health transitions.
|
|
47
|
+
*/
|
|
44
48
|
subscribe(sub: Subscription, listener: SubscriptionListener, onStatus?: WsStatusListener): Promise<() => void>;
|
|
45
49
|
/**
|
|
46
50
|
* Recover a terminally exhausted connection. Safe no-op unless status is
|
|
@@ -55,6 +59,7 @@ export interface WsProvider {
|
|
|
55
59
|
* public base fee tier. Returns an idempotent unsubscribe.
|
|
56
60
|
*/
|
|
57
61
|
subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
|
|
62
|
+
/** Permanently close the provider's realtime connection. */
|
|
58
63
|
close(): void;
|
|
59
64
|
}
|
|
60
65
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/websocket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAE7B;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,YAAY,IAAI,OAAO,CAChE,iBAAiB,EACjB;IAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,CAC1B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAA;AAE9E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,CACP,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB;;;OAGG;IACH,SAAS,IAAI,IAAI,CAAA;IACjB;;;;;;OAMG;IACH,cAAc,CACZ,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,IAAI,CAAA;CACd"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/websocket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAE7B;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,YAAY,IAAI,OAAO,CAChE,iBAAiB,EACjB;IAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,CAC1B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAA;AAE9E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,SAAS,CACP,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB;;;OAGG;IACH,SAAS,IAAI,IAAI,CAAA;IACjB;;;;;;OAMG;IACH,cAAc,CACZ,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB,4DAA4D;IAC5D,KAAK,IAAI,IAAI,CAAA;CACd"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"description": "LI.FI Perps SDK for perpetuals trading",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"big.js": "^7.0.1",
|
|
46
46
|
"partysocket": "^1.1.19",
|
|
47
47
|
"viem": "^2.48.8",
|
|
48
|
-
"@lifi/perps-types": "^4.
|
|
48
|
+
"@lifi/perps-types": "^4.1.0"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
@@ -426,6 +426,8 @@ export class PerpsClient {
|
|
|
426
426
|
* Roll an already-fetched {@link AccountResponse} (plus its positions) up
|
|
427
427
|
* into an {@link AccountSummary}, delegating to the owning provider so the
|
|
428
428
|
* venue-specific collateral and margin semantics are applied correctly.
|
|
429
|
+
*
|
|
430
|
+
* @public
|
|
429
431
|
*/
|
|
430
432
|
getAccountSummary(
|
|
431
433
|
account: AccountResponse,
|
package/src/errors/PerpsError.ts
CHANGED
|
@@ -9,10 +9,17 @@ import { PerpsErrorCode } from '@lifi/perps-types'
|
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
11
|
export class PerpsError extends Error {
|
|
12
|
+
/** Machine-readable error code for programmatic handling. */
|
|
12
13
|
code: PerpsErrorCode
|
|
14
|
+
/** Stable error name used by `instanceof`/logging. */
|
|
13
15
|
override name = 'PerpsError'
|
|
16
|
+
/** Originating package or provider key, when known. */
|
|
14
17
|
tool?: string
|
|
15
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Create an SDK error. Defaults to `DefaultError` and a generic message when
|
|
21
|
+
* callers do not provide either value.
|
|
22
|
+
*/
|
|
16
23
|
constructor(
|
|
17
24
|
code: PerpsErrorCode = PerpsErrorCode.DefaultError,
|
|
18
25
|
message = 'Unknown error occurred'
|
|
@@ -16,7 +16,11 @@ export class AssetRegistry extends ReferenceDataRegistry<Asset> {
|
|
|
16
16
|
super(client, provider, 'asset')
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* The most recently synced asset list. Empty before the first {@link sync}.
|
|
21
|
+
*
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
20
24
|
get assets(): readonly Asset[] {
|
|
21
25
|
return this.items
|
|
22
26
|
}
|
|
@@ -23,12 +23,20 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
|
|
|
23
23
|
super(client, provider, 'market')
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* The most recently synced market list. Empty before the first {@link sync}.
|
|
28
|
+
*
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
27
31
|
get markets(): readonly Market[] {
|
|
28
32
|
return this.items
|
|
29
33
|
}
|
|
30
34
|
|
|
31
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* The synced markets that are available for live and write operations.
|
|
37
|
+
*
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
32
40
|
get activeMarkets(): readonly Market[] {
|
|
33
41
|
return this.items.filter(isActiveMarket)
|
|
34
42
|
}
|
|
@@ -37,10 +45,10 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
|
|
|
37
45
|
* Lookup by `Market.id`, throwing when the backend list does not know the
|
|
38
46
|
* id. The list is the source of truth for enriched historical and live
|
|
39
47
|
* market metadata, so an id the venue references but the backend does not
|
|
40
|
-
* know is a hard error —
|
|
41
|
-
* never a silent fallback to an unenriched stand-in.
|
|
48
|
+
* know is a hard error — never a silent fallback to an unenriched stand-in.
|
|
42
49
|
*
|
|
43
50
|
* @throws {PerpsError} `MarketNotFound`.
|
|
51
|
+
* @public
|
|
44
52
|
*/
|
|
45
53
|
require(marketId: string): Market {
|
|
46
54
|
const market = this.get(marketId)
|
|
@@ -61,6 +69,7 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
|
|
|
61
69
|
* rejects them.
|
|
62
70
|
*
|
|
63
71
|
* @throws {PerpsError} `MarketNotFound` when the market is absent or delisted.
|
|
72
|
+
* @public
|
|
64
73
|
*/
|
|
65
74
|
requireActive(marketId: string): Market {
|
|
66
75
|
const market = this.require(marketId)
|
|
@@ -91,7 +100,12 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
|
|
|
91
100
|
|
|
92
101
|
const registries = new WeakMap<PerpsSDKClient, Map<string, MarketRegistry>>()
|
|
93
102
|
|
|
94
|
-
/**
|
|
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
|
+
*/
|
|
95
109
|
export const isActiveMarket = (market: Market): boolean =>
|
|
96
110
|
market.isDelisted !== true
|
|
97
111
|
|
|
@@ -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
|
@@ -28,10 +28,15 @@ import type { PerpsProviderPlugin } from './provider.js'
|
|
|
28
28
|
* @public
|
|
29
29
|
*/
|
|
30
30
|
export interface PerpsConfig {
|
|
31
|
+
/** Integrator identifier sent in the `x-lifi-integrator` request header. */
|
|
31
32
|
integrator: string
|
|
33
|
+
/** LI.FI API key used for authenticated backend requests. */
|
|
32
34
|
apiKey: string
|
|
35
|
+
/** Perps API base URL; defaults to {@link DEFAULT_API_URL}. */
|
|
33
36
|
apiUrl?: string
|
|
37
|
+
/** Skip the SDK-version compatibility check when set. */
|
|
34
38
|
disableVersionCheck?: boolean
|
|
39
|
+
/** Hook that can rewrite URL/request options before transport. */
|
|
35
40
|
requestInterceptor?: RequestInterceptor
|
|
36
41
|
/**
|
|
37
42
|
* Provider plugins or per-provider config. Two shapes are accepted:
|
|
@@ -79,10 +84,11 @@ export interface PerpsConfig {
|
|
|
79
84
|
* @public
|
|
80
85
|
*/
|
|
81
86
|
export interface PerpsClientOptions {
|
|
87
|
+
/** Integrator identifier sent in the `x-lifi-integrator` request header. */
|
|
82
88
|
integrator: string
|
|
83
|
-
/** 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/). */
|
|
84
90
|
apiKey: string
|
|
85
|
-
/**
|
|
91
|
+
/** Perps API base URL; defaults to {@link DEFAULT_API_URL}. */
|
|
86
92
|
apiUrl?: string
|
|
87
93
|
/**
|
|
88
94
|
* Provider plugins or per-provider config. Accepts the same two shapes as
|
|
@@ -117,11 +123,15 @@ export interface BuildProviderSetupParams {
|
|
|
117
123
|
export interface PlaceOrderParams {
|
|
118
124
|
provider: string
|
|
119
125
|
address: Address
|
|
126
|
+
/** Opaque provider market reference. */
|
|
120
127
|
market: MarketRef
|
|
121
128
|
side: OrderSide
|
|
122
129
|
type: OrderType
|
|
130
|
+
/** Base-asset size as a decimal wire string. */
|
|
123
131
|
size: string
|
|
132
|
+
/** Limit price as a decimal wire string; required by limit-style orders. */
|
|
124
133
|
price: string
|
|
134
|
+
/** Optional leverage multiplier; provider defaults apply when omitted. */
|
|
125
135
|
leverage?: number
|
|
126
136
|
/**
|
|
127
137
|
* Margin mode the order trades under; omitted falls to the venue's cross
|
|
@@ -129,8 +139,11 @@ export interface PlaceOrderParams {
|
|
|
129
139
|
* applies it via a prepended leverage update (requires `leverage`).
|
|
130
140
|
*/
|
|
131
141
|
marginMode?: MarginMode
|
|
142
|
+
/** Whether the order may only reduce an existing position. */
|
|
132
143
|
reduceOnly?: boolean
|
|
144
|
+
/** Time-in-force policy; provider defaults apply when omitted. */
|
|
133
145
|
timeInForce?: TimeInForce
|
|
146
|
+
/** Optional Unix timestamp or provider wire expiry string. */
|
|
134
147
|
expiresAt?: string
|
|
135
148
|
takeProfit?: TriggerOrderInput
|
|
136
149
|
stopLoss?: TriggerOrderInput
|
|
@@ -145,6 +158,7 @@ export interface PlaceOrderParams {
|
|
|
145
158
|
export interface PlaceTriggerOrderParams {
|
|
146
159
|
provider: string
|
|
147
160
|
address: Address
|
|
161
|
+
/** Opaque provider market reference. */
|
|
148
162
|
market: MarketRef
|
|
149
163
|
side: OrderSide
|
|
150
164
|
takeProfit?: TriggerOrderInput
|
|
@@ -159,6 +173,7 @@ export interface PlaceTriggerOrderParams {
|
|
|
159
173
|
export interface WithdrawParams {
|
|
160
174
|
provider: string
|
|
161
175
|
address: Address
|
|
176
|
+
/** Provider-specific withdrawal payload, including amount/destination. */
|
|
162
177
|
withdrawal: WithdrawalParams
|
|
163
178
|
}
|
|
164
179
|
|
|
@@ -172,11 +187,13 @@ export interface WithdrawParams {
|
|
|
172
187
|
export interface SendAssetActionParams {
|
|
173
188
|
provider: string
|
|
174
189
|
address: Address
|
|
175
|
-
/** Canonical `Asset.id`
|
|
176
|
-
* 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. */
|
|
177
191
|
collateral: string
|
|
192
|
+
/** Source DEX/account identifier understood by the provider. */
|
|
178
193
|
sourceDex: string
|
|
194
|
+
/** Destination DEX/account identifier understood by the provider. */
|
|
179
195
|
destinationDex: string
|
|
196
|
+
/** Transfer amount as a provider-compatible decimal wire string. */
|
|
180
197
|
amount: string
|
|
181
198
|
}
|
|
182
199
|
|
|
@@ -188,10 +205,9 @@ export interface SendAssetActionParams {
|
|
|
188
205
|
export interface CancelOrdersParams {
|
|
189
206
|
provider: string
|
|
190
207
|
address: Address
|
|
191
|
-
/** Venue order ids.
|
|
192
|
-
* `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>"`. */
|
|
193
209
|
ids: string[]
|
|
194
|
-
/** 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`. */
|
|
195
211
|
assetId?: string
|
|
196
212
|
}
|
|
197
213
|
|
|
@@ -203,6 +219,7 @@ export interface CancelOrdersParams {
|
|
|
203
219
|
export interface ModifyOrdersParams {
|
|
204
220
|
provider: string
|
|
205
221
|
address: Address
|
|
222
|
+
/** Provider-specific order modifications. */
|
|
206
223
|
modifications: ModifyOrderInput[]
|
|
207
224
|
}
|
|
208
225
|
|
|
@@ -257,9 +274,7 @@ export interface ProviderSetup {
|
|
|
257
274
|
* Parameters for the internal `PerpsClient.executeProviderSetup` batch submit.
|
|
258
275
|
*/
|
|
259
276
|
export interface ExecuteProviderSetupParams {
|
|
260
|
-
/** Provider to satisfy setup for */
|
|
261
277
|
provider: string
|
|
262
|
-
/** User wallet address */
|
|
263
278
|
address: Address
|
|
264
279
|
/** The unsatisfied setup steps from checkSetup() */
|
|
265
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
|
}
|