@lifi/perps-sdk-provider-ondo 0.0.0-preview-7ff840c
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/LICENSE +201 -0
- package/README.md +38 -0
- package/dist/cjs/OndoProvider.d.ts +8 -0
- package/dist/cjs/OndoProvider.d.ts.map +1 -0
- package/dist/cjs/OndoProvider.js +338 -0
- package/dist/cjs/OndoProvider.js.map +1 -0
- package/dist/cjs/accountConfig.d.ts +3 -0
- package/dist/cjs/accountConfig.d.ts.map +1 -0
- package/dist/cjs/accountConfig.js +59 -0
- package/dist/cjs/accountConfig.js.map +1 -0
- package/dist/cjs/accountSummary.d.ts +3 -0
- package/dist/cjs/accountSummary.d.ts.map +1 -0
- package/dist/cjs/accountSummary.js +8 -0
- package/dist/cjs/accountSummary.js.map +1 -0
- package/dist/cjs/auth/OndoTokenStore.d.ts +13 -0
- package/dist/cjs/auth/OndoTokenStore.d.ts.map +1 -0
- package/dist/cjs/auth/OndoTokenStore.js +53 -0
- package/dist/cjs/auth/OndoTokenStore.js.map +1 -0
- package/dist/cjs/auth/completeSiweLogin.d.ts +13 -0
- package/dist/cjs/auth/completeSiweLogin.d.ts.map +1 -0
- package/dist/cjs/auth/completeSiweLogin.js +15 -0
- package/dist/cjs/auth/completeSiweLogin.js.map +1 -0
- package/dist/cjs/auth/index.d.ts +4 -0
- package/dist/cjs/auth/index.d.ts.map +1 -0
- package/dist/cjs/auth/index.js +11 -0
- package/dist/cjs/auth/index.js.map +1 -0
- package/dist/cjs/auth/signActions.d.ts +13 -0
- package/dist/cjs/auth/signActions.d.ts.map +1 -0
- package/dist/cjs/auth/signActions.js +86 -0
- package/dist/cjs/auth/signActions.js.map +1 -0
- package/dist/cjs/constants.d.ts +9 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +12 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/types/auth.d.ts +16 -0
- package/dist/cjs/types/auth.d.ts.map +1 -0
- package/dist/cjs/types/auth.js +3 -0
- package/dist/cjs/types/auth.js.map +1 -0
- package/dist/cjs/types/index.d.ts +4 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/wire.d.ts +154 -0
- package/dist/cjs/types/wire.d.ts.map +1 -0
- package/dist/cjs/types/wire.js +3 -0
- package/dist/cjs/types/wire.js.map +1 -0
- package/dist/cjs/types/ws.d.ts +92 -0
- package/dist/cjs/types/ws.d.ts.map +1 -0
- package/dist/cjs/types/ws.js +3 -0
- package/dist/cjs/types/ws.js.map +1 -0
- package/dist/cjs/utils/activityCursor.d.ts +9 -0
- package/dist/cjs/utils/activityCursor.d.ts.map +1 -0
- package/dist/cjs/utils/activityCursor.js +79 -0
- package/dist/cjs/utils/activityCursor.js.map +1 -0
- package/dist/cjs/utils/apiClient.d.ts +43 -0
- package/dist/cjs/utils/apiClient.d.ts.map +1 -0
- package/dist/cjs/utils/apiClient.js +134 -0
- package/dist/cjs/utils/apiClient.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +11 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +39 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/liquidation.d.ts +4 -0
- package/dist/cjs/utils/liquidation.d.ts.map +1 -0
- package/dist/cjs/utils/liquidation.js +16 -0
- package/dist/cjs/utils/liquidation.js.map +1 -0
- package/dist/cjs/utils/mapActivity.d.ts +5 -0
- package/dist/cjs/utils/mapActivity.d.ts.map +1 -0
- package/dist/cjs/utils/mapActivity.js +34 -0
- package/dist/cjs/utils/mapActivity.js.map +1 -0
- package/dist/cjs/utils/mapFill.d.ts +4 -0
- package/dist/cjs/utils/mapFill.d.ts.map +1 -0
- package/dist/cjs/utils/mapFill.js +36 -0
- package/dist/cjs/utils/mapFill.js.map +1 -0
- package/dist/cjs/utils/mapOrder.d.ts +16 -0
- package/dist/cjs/utils/mapOrder.d.ts.map +1 -0
- package/dist/cjs/utils/mapOrder.js +135 -0
- package/dist/cjs/utils/mapOrder.js.map +1 -0
- package/dist/cjs/utils/mapPosition.d.ts +5 -0
- package/dist/cjs/utils/mapPosition.d.ts.map +1 -0
- package/dist/cjs/utils/mapPosition.js +26 -0
- package/dist/cjs/utils/mapPosition.js.map +1 -0
- package/dist/cjs/utils/ohlcvInterval.d.ts +4 -0
- package/dist/cjs/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/cjs/utils/ohlcvInterval.js +49 -0
- package/dist/cjs/utils/ohlcvInterval.js.map +1 -0
- package/dist/cjs/utils/ondoAsset.d.ts +3 -0
- package/dist/cjs/utils/ondoAsset.d.ts.map +1 -0
- package/dist/cjs/utils/ondoAsset.js +12 -0
- package/dist/cjs/utils/ondoAsset.js.map +1 -0
- package/dist/cjs/utils/orderFormatting.d.ts +4 -0
- package/dist/cjs/utils/orderFormatting.d.ts.map +1 -0
- package/dist/cjs/utils/orderFormatting.js +40 -0
- package/dist/cjs/utils/orderFormatting.js.map +1 -0
- package/dist/cjs/websocket/OndoWsProvider.d.ts +56 -0
- package/dist/cjs/websocket/OndoWsProvider.d.ts.map +1 -0
- package/dist/cjs/websocket/OndoWsProvider.js +515 -0
- package/dist/cjs/websocket/OndoWsProvider.js.map +1 -0
- package/dist/esm/OndoProvider.d.ts +39 -0
- package/dist/esm/OndoProvider.d.ts.map +1 -0
- package/dist/esm/OndoProvider.js +366 -0
- package/dist/esm/OndoProvider.js.map +1 -0
- package/dist/esm/accountConfig.d.ts +13 -0
- package/dist/esm/accountConfig.d.ts.map +1 -0
- package/dist/esm/accountConfig.js +77 -0
- package/dist/esm/accountConfig.js.map +1 -0
- package/dist/esm/accountSummary.d.ts +12 -0
- package/dist/esm/accountSummary.d.ts.map +1 -0
- package/dist/esm/accountSummary.js +14 -0
- package/dist/esm/accountSummary.js.map +1 -0
- package/dist/esm/auth/OndoTokenStore.d.ts +20 -0
- package/dist/esm/auth/OndoTokenStore.d.ts.map +1 -0
- package/dist/esm/auth/OndoTokenStore.js +61 -0
- package/dist/esm/auth/OndoTokenStore.js.map +1 -0
- package/dist/esm/auth/completeSiweLogin.d.ts +28 -0
- package/dist/esm/auth/completeSiweLogin.d.ts.map +1 -0
- package/dist/esm/auth/completeSiweLogin.js +21 -0
- package/dist/esm/auth/completeSiweLogin.js.map +1 -0
- package/dist/esm/auth/index.d.ts +4 -0
- package/dist/esm/auth/index.d.ts.map +1 -0
- package/dist/esm/auth/index.js +5 -0
- package/dist/esm/auth/index.js.map +1 -0
- package/dist/esm/auth/signActions.d.ts +35 -0
- package/dist/esm/auth/signActions.d.ts.map +1 -0
- package/dist/esm/auth/signActions.js +103 -0
- package/dist/esm/auth/signActions.js.map +1 -0
- package/dist/esm/constants.d.ts +35 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +35 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.d.ts +19 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +21 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/types/auth.d.ts +32 -0
- package/dist/esm/types/auth.d.ts.map +1 -0
- package/dist/esm/types/auth.js +2 -0
- package/dist/esm/types/auth.js.map +1 -0
- package/dist/esm/types/index.d.ts +4 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/wire.d.ts +195 -0
- package/dist/esm/types/wire.d.ts.map +1 -0
- package/dist/esm/types/wire.js +7 -0
- package/dist/esm/types/wire.js.map +1 -0
- package/dist/esm/types/ws.d.ts +108 -0
- package/dist/esm/types/ws.d.ts.map +1 -0
- package/dist/esm/types/ws.js +7 -0
- package/dist/esm/types/ws.js.map +1 -0
- package/dist/esm/utils/activityCursor.d.ts +47 -0
- package/dist/esm/utils/activityCursor.d.ts.map +1 -0
- package/dist/esm/utils/activityCursor.js +93 -0
- package/dist/esm/utils/activityCursor.js.map +1 -0
- package/dist/esm/utils/apiClient.d.ts +90 -0
- package/dist/esm/utils/apiClient.d.ts.map +1 -0
- package/dist/esm/utils/apiClient.js +169 -0
- package/dist/esm/utils/apiClient.js.map +1 -0
- package/dist/esm/utils/index.d.ts +11 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +12 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/liquidation.d.ts +20 -0
- package/dist/esm/utils/liquidation.d.ts.map +1 -0
- package/dist/esm/utils/liquidation.js +29 -0
- package/dist/esm/utils/liquidation.js.map +1 -0
- package/dist/esm/utils/mapActivity.d.ts +21 -0
- package/dist/esm/utils/mapActivity.d.ts.map +1 -0
- package/dist/esm/utils/mapActivity.js +45 -0
- package/dist/esm/utils/mapActivity.js.map +1 -0
- package/dist/esm/utils/mapFill.d.ts +12 -0
- package/dist/esm/utils/mapFill.d.ts.map +1 -0
- package/dist/esm/utils/mapFill.js +37 -0
- package/dist/esm/utils/mapFill.js.map +1 -0
- package/dist/esm/utils/mapOrder.d.ts +50 -0
- package/dist/esm/utils/mapOrder.d.ts.map +1 -0
- package/dist/esm/utils/mapOrder.js +155 -0
- package/dist/esm/utils/mapOrder.js.map +1 -0
- package/dist/esm/utils/mapPosition.d.ts +19 -0
- package/dist/esm/utils/mapPosition.d.ts.map +1 -0
- package/dist/esm/utils/mapPosition.js +32 -0
- package/dist/esm/utils/mapPosition.js.map +1 -0
- package/dist/esm/utils/ohlcvInterval.d.ts +11 -0
- package/dist/esm/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/esm/utils/ohlcvInterval.js +59 -0
- package/dist/esm/utils/ohlcvInterval.js.map +1 -0
- package/dist/esm/utils/ondoAsset.d.ts +4 -0
- package/dist/esm/utils/ondoAsset.d.ts.map +1 -0
- package/dist/esm/utils/ondoAsset.js +9 -0
- package/dist/esm/utils/ondoAsset.js.map +1 -0
- package/dist/esm/utils/orderFormatting.d.ts +33 -0
- package/dist/esm/utils/orderFormatting.d.ts.map +1 -0
- package/dist/esm/utils/orderFormatting.js +62 -0
- package/dist/esm/utils/orderFormatting.js.map +1 -0
- package/dist/esm/websocket/OndoWsProvider.d.ts +122 -0
- package/dist/esm/websocket/OndoWsProvider.d.ts.map +1 -0
- package/dist/esm/websocket/OndoWsProvider.js +591 -0
- package/dist/esm/websocket/OndoWsProvider.js.map +1 -0
- package/dist/types/OndoProvider.d.ts +39 -0
- package/dist/types/OndoProvider.d.ts.map +1 -0
- package/dist/types/accountConfig.d.ts +13 -0
- package/dist/types/accountConfig.d.ts.map +1 -0
- package/dist/types/accountSummary.d.ts +12 -0
- package/dist/types/accountSummary.d.ts.map +1 -0
- package/dist/types/auth/OndoTokenStore.d.ts +20 -0
- package/dist/types/auth/OndoTokenStore.d.ts.map +1 -0
- package/dist/types/auth/completeSiweLogin.d.ts +28 -0
- package/dist/types/auth/completeSiweLogin.d.ts.map +1 -0
- package/dist/types/auth/index.d.ts +4 -0
- package/dist/types/auth/index.d.ts.map +1 -0
- package/dist/types/auth/signActions.d.ts +35 -0
- package/dist/types/auth/signActions.d.ts.map +1 -0
- package/dist/types/constants.d.ts +35 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/auth.d.ts +32 -0
- package/dist/types/types/auth.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +4 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/wire.d.ts +195 -0
- package/dist/types/types/wire.d.ts.map +1 -0
- package/dist/types/types/ws.d.ts +108 -0
- package/dist/types/types/ws.d.ts.map +1 -0
- package/dist/types/utils/activityCursor.d.ts +47 -0
- package/dist/types/utils/activityCursor.d.ts.map +1 -0
- package/dist/types/utils/apiClient.d.ts +90 -0
- package/dist/types/utils/apiClient.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +11 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/liquidation.d.ts +20 -0
- package/dist/types/utils/liquidation.d.ts.map +1 -0
- package/dist/types/utils/mapActivity.d.ts +21 -0
- package/dist/types/utils/mapActivity.d.ts.map +1 -0
- package/dist/types/utils/mapFill.d.ts +12 -0
- package/dist/types/utils/mapFill.d.ts.map +1 -0
- package/dist/types/utils/mapOrder.d.ts +50 -0
- package/dist/types/utils/mapOrder.d.ts.map +1 -0
- package/dist/types/utils/mapPosition.d.ts +19 -0
- package/dist/types/utils/mapPosition.d.ts.map +1 -0
- package/dist/types/utils/ohlcvInterval.d.ts +11 -0
- package/dist/types/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/types/utils/ondoAsset.d.ts +4 -0
- package/dist/types/utils/ondoAsset.d.ts.map +1 -0
- package/dist/types/utils/orderFormatting.d.ts +33 -0
- package/dist/types/utils/orderFormatting.d.ts.map +1 -0
- package/dist/types/websocket/OndoWsProvider.d.ts +122 -0
- package/dist/types/websocket/OndoWsProvider.d.ts.map +1 -0
- package/package.json +64 -0
- package/src/OndoProvider.ts +635 -0
- package/src/accountConfig.ts +105 -0
- package/src/accountSummary.ts +22 -0
- package/src/auth/OndoTokenStore.ts +83 -0
- package/src/auth/completeSiweLogin.ts +43 -0
- package/src/auth/index.ts +12 -0
- package/src/auth/signActions.ts +160 -0
- package/src/constants.ts +38 -0
- package/src/index.ts +36 -0
- package/src/types/auth.ts +32 -0
- package/src/types/index.ts +5 -0
- package/src/types/wire.ts +228 -0
- package/src/types/ws.ts +79 -0
- package/src/utils/activityCursor.ts +140 -0
- package/src/utils/apiClient.ts +257 -0
- package/src/utils/index.ts +35 -0
- package/src/utils/liquidation.ts +37 -0
- package/src/utils/mapActivity.ts +61 -0
- package/src/utils/mapFill.ts +47 -0
- package/src/utils/mapOrder.ts +201 -0
- package/src/utils/mapPosition.ts +44 -0
- package/src/utils/ohlcvInterval.ts +69 -0
- package/src/utils/ondoAsset.ts +10 -0
- package/src/utils/orderFormatting.ts +70 -0
- package/src/websocket/OndoWsProvider.ts +752 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.estimateLiquidationPrice = estimateLiquidationPrice;
|
|
4
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
|
+
function estimateLiquidationPrice(market, params) {
|
|
6
|
+
if (market.maintenanceMarginRate === undefined) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
return (0, perps_sdk_1.estimateIsolatedLiquidationPrice)({
|
|
10
|
+
entryPrice: params.entryPrice,
|
|
11
|
+
leverage: params.leverage,
|
|
12
|
+
isLong: params.isLong,
|
|
13
|
+
maintenanceMarginRate: market.maintenanceMarginRate,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=liquidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidation.js","sourceRoot":"","sources":["../../../src/utils/liquidation.ts"],"names":[],"mappings":";;AAuBA,4DAaC;AA5BD,+CAGwB;AAYxB,SAAgB,wBAAwB,CACtC,MAAmB,EACnB,MAAiC;IAEjC,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,IAAA,4CAAgC,EAAC;QACtC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;KACpD,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { FundingActivity, LiquidationActivity, MarketDisplay } from '@lifi/perps-types';
|
|
2
|
+
import type { OndoFundingFeeTransfer, OndoLiquidationEvent } from '../types/wire.js';
|
|
3
|
+
export declare const mapFundingActivity: (transfer: OndoFundingFeeTransfer, market: MarketDisplay) => FundingActivity;
|
|
4
|
+
export declare const mapLiquidationActivity: (event: OndoLiquidationEvent, resolveMarket: (market: string) => MarketDisplay) => LiquidationActivity;
|
|
5
|
+
//# sourceMappingURL=mapActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EACd,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,kBAAkB,CAAA;AAWzB,eAAO,MAAM,kBAAkB,GAC7B,UAAU,sBAAsB,EAChC,QAAQ,aAAa,KACpB,eAYF,CAAA;AASD,eAAO,MAAM,sBAAsB,GACjC,OAAO,oBAAoB,EAC3B,eAAe,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,KAC/C,mBAYD,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapLiquidationActivity = exports.mapFundingActivity = void 0;
|
|
4
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
const mapFundingActivity = (transfer, market) => {
|
|
7
|
+
const timestamp = new Date(transfer.time).toISOString();
|
|
8
|
+
return {
|
|
9
|
+
id: `funding:${transfer.market}:${timestamp}`,
|
|
10
|
+
provider: constants_js_1.ONDO_PROVIDER_KEY,
|
|
11
|
+
timestamp,
|
|
12
|
+
type: perps_types_1.ActivityType.FUNDING,
|
|
13
|
+
market,
|
|
14
|
+
amount: transfer.amount,
|
|
15
|
+
positionSize: transfer.positionSize,
|
|
16
|
+
fundingRate: transfer.rate,
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
exports.mapFundingActivity = mapFundingActivity;
|
|
20
|
+
const mapLiquidationActivity = (event, resolveMarket) => ({
|
|
21
|
+
id: event.id,
|
|
22
|
+
provider: constants_js_1.ONDO_PROVIDER_KEY,
|
|
23
|
+
timestamp: new Date(event.time).toISOString(),
|
|
24
|
+
type: perps_types_1.ActivityType.LIQUIDATION,
|
|
25
|
+
liquidatedNotionalPosition: event.filledQuoteSize ?? '0',
|
|
26
|
+
accountValue: '0',
|
|
27
|
+
leverageType: 'cross',
|
|
28
|
+
liquidatedPositions: (event.triggeringPositions ?? []).map((p) => ({
|
|
29
|
+
market: resolveMarket(p.market),
|
|
30
|
+
size: p.netQuantity,
|
|
31
|
+
})),
|
|
32
|
+
});
|
|
33
|
+
exports.mapLiquidationActivity = mapLiquidationActivity;
|
|
34
|
+
//# sourceMappingURL=mapActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapActivity.js","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":";;;AAKA,mDAAgD;AAChD,kDAAmD;AAe5C,MAAM,kBAAkB,GAAG,CAChC,QAAgC,EAChC,MAAqB,EACJ,EAAE;IACnB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IACvD,OAAO;QACL,EAAE,EAAE,WAAW,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE;QAC7C,QAAQ,EAAE,gCAAiB;QAC3B,SAAS;QACT,IAAI,EAAE,0BAAY,CAAC,OAAO;QAC1B,MAAM;QACN,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,WAAW,EAAE,QAAQ,CAAC,IAAI;KAC3B,CAAA;AACH,CAAC,CAAA;AAfY,QAAA,kBAAkB,sBAe9B;AASM,MAAM,sBAAsB,GAAG,CACpC,KAA2B,EAC3B,aAAgD,EAC3B,EAAE,CAAC,CAAC;IACzB,EAAE,EAAE,KAAK,CAAC,EAAE;IACZ,QAAQ,EAAE,gCAAiB;IAC3B,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;IAC7C,IAAI,EAAE,0BAAY,CAAC,WAAW;IAC9B,0BAA0B,EAAE,KAAK,CAAC,eAAe,IAAI,GAAG;IACxD,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,OAAO;IACrB,mBAAmB,EAAE,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/B,IAAI,EAAE,CAAC,CAAC,WAAW;KACpB,CAAC,CAAC;CACJ,CAAC,CAAA;AAfW,QAAA,sBAAsB,0BAejC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQ5D,OAAO,KAAK,EAAE,QAAQ,EAAqB,MAAM,kBAAkB,CAAA;AAoBnE,eAAO,MAAM,OAAO,GAAI,MAAM,QAAQ,EAAE,QAAQ,aAAa,KAAG,IAkB9D,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mapFill = void 0;
|
|
7
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
8
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
9
|
+
const DIRECTION_CLASSIFICATIONS = {
|
|
10
|
+
openLong: perps_types_1.FillClassification.OPENED_LONG,
|
|
11
|
+
openShort: perps_types_1.FillClassification.OPENED_SHORT,
|
|
12
|
+
closeLong: perps_types_1.FillClassification.CLOSED_LONG,
|
|
13
|
+
closeShort: perps_types_1.FillClassification.CLOSED_SHORT,
|
|
14
|
+
flipLongToShort: perps_types_1.FillClassification.SWITCHED_SHORT,
|
|
15
|
+
flipShortToLong: perps_types_1.FillClassification.SWITCHED_LONG,
|
|
16
|
+
};
|
|
17
|
+
const mapFill = (fill, market) => ({
|
|
18
|
+
id: fill.id,
|
|
19
|
+
orderId: fill.orderId,
|
|
20
|
+
market,
|
|
21
|
+
side: fill.side === 'buy' ? perps_types_1.OrderSide.BUY : perps_types_1.OrderSide.SELL,
|
|
22
|
+
size: fill.size,
|
|
23
|
+
price: fill.price,
|
|
24
|
+
status: perps_types_1.FillStatus.FILLED,
|
|
25
|
+
liquidity: fill.isMaker ? perps_types_1.LiquidityRole.MAKER : perps_types_1.LiquidityRole.TAKER,
|
|
26
|
+
fee: new big_js_1.default(fill.fee).minus(fill.feeRebate ?? '0').toFixed(),
|
|
27
|
+
realizedPnl: fill.pnl,
|
|
28
|
+
classification: fill.direction !== undefined
|
|
29
|
+
? DIRECTION_CLASSIFICATIONS[fill.direction]
|
|
30
|
+
: fill.side === 'buy'
|
|
31
|
+
? perps_types_1.FillClassification.OPENED_LONG
|
|
32
|
+
: perps_types_1.FillClassification.OPENED_SHORT,
|
|
33
|
+
createdAt: new Date(fill.time).toISOString(),
|
|
34
|
+
});
|
|
35
|
+
exports.mapFill = mapFill;
|
|
36
|
+
//# sourceMappingURL=mapFill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapFill.js","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":";;;;;;AACA,mDAK0B;AAC1B,oDAAwB;AAGxB,MAAM,yBAAyB,GAC7B;IACE,QAAQ,EAAE,gCAAkB,CAAC,WAAW;IACxC,SAAS,EAAE,gCAAkB,CAAC,YAAY;IAC1C,SAAS,EAAE,gCAAkB,CAAC,WAAW;IACzC,UAAU,EAAE,gCAAkB,CAAC,YAAY;IAC3C,eAAe,EAAE,gCAAkB,CAAC,cAAc;IAClD,eAAe,EAAE,gCAAkB,CAAC,aAAa;CAClD,CAAA;AAUI,MAAM,OAAO,GAAG,CAAC,IAAc,EAAE,MAAqB,EAAQ,EAAE,CAAC,CAAC;IACvE,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,MAAM;IACN,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,uBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAS,CAAC,IAAI;IAC1D,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,MAAM,EAAE,wBAAU,CAAC,MAAM;IACzB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,2BAAa,CAAC,KAAK,CAAC,CAAC,CAAC,2BAAa,CAAC,KAAK;IACnE,GAAG,EAAE,IAAI,gBAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE;IAC7D,WAAW,EAAE,IAAI,CAAC,GAAG;IACrB,cAAc,EACZ,IAAI,CAAC,SAAS,KAAK,SAAS;QAC1B,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK;YACnB,CAAC,CAAC,gCAAkB,CAAC,WAAW;YAChC,CAAC,CAAC,gCAAkB,CAAC,YAAY;IACvC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;CAC7C,CAAC,CAAA;AAlBW,QAAA,OAAO,WAkBlB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { MarketDisplay, OpenOrder, Order, TriggerOrder } from '@lifi/perps-types';
|
|
2
|
+
import { OrderStatus, OrderType } from '@lifi/perps-types';
|
|
3
|
+
import type { OndoOrder, OndoOrderStatus, OndoOrderType } from '../types/wire.js';
|
|
4
|
+
export declare const mapOrderType: (type: OndoOrderType) => OrderType;
|
|
5
|
+
export declare const mapOrderStatus: (status: OndoOrderStatus) => OrderStatus;
|
|
6
|
+
export declare const mapStatusReason: (order: OndoOrder) => string | undefined;
|
|
7
|
+
export declare const isTriggerOrder: (order: OndoOrder) => boolean;
|
|
8
|
+
export declare const mapOrder: (order: OndoOrder, market: MarketDisplay) => OpenOrder;
|
|
9
|
+
export declare const mapTriggerOrder: (order: OndoOrder, market: MarketDisplay) => TriggerOrder;
|
|
10
|
+
export declare const classifyAndMapOrders: (orders: OndoOrder[], resolveMarket: (market: string) => MarketDisplay | undefined) => {
|
|
11
|
+
openOrders: OpenOrder[];
|
|
12
|
+
triggerOrders: TriggerOrder[];
|
|
13
|
+
terminated: string[];
|
|
14
|
+
};
|
|
15
|
+
export declare const mapOrderDetail: (order: OndoOrder, market: MarketDisplay) => Order;
|
|
16
|
+
//# sourceMappingURL=mapOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,KAAK,EACL,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,WAAW,EACX,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACd,MAAM,kBAAkB,CAAA;AAQzB,eAAO,MAAM,YAAY,GAAI,MAAM,aAAa,KAAG,SAWlD,CAAA;AAQD,eAAO,MAAM,cAAc,GAAI,QAAQ,eAAe,KAAG,WAYxD,CAAA;AAeD,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,KAAG,MAAM,GAAG,SAK3D,CAAA;AAQD,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,KAAG,OAIhB,CAAA;AAGlC,eAAO,MAAM,QAAQ,GACnB,OAAO,SAAS,EAChB,QAAQ,aAAa,KACpB,SAUD,CAAA;AAGF,eAAO,MAAM,eAAe,GAC1B,OAAO,SAAS,EAChB,QAAQ,aAAa,KACpB,YAOD,CAAA;AAaF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,SAAS,EAAE,EACnB,eAAe,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KAC3D;IACD,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAA;CAqBrB,CAAA;AASD,eAAO,MAAM,cAAc,GACzB,OAAO,SAAS,EAChB,QAAQ,aAAa,KACpB,KA+BF,CAAA"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mapOrderDetail = exports.classifyAndMapOrders = exports.mapTriggerOrder = exports.mapOrder = exports.isTriggerOrder = exports.mapStatusReason = exports.mapOrderStatus = exports.mapOrderType = void 0;
|
|
7
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
8
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
9
|
+
const toIso = (time) => new Date(time).toISOString();
|
|
10
|
+
const mapSide = (side) => side === 'buy' ? perps_types_1.OrderSide.BUY : perps_types_1.OrderSide.SELL;
|
|
11
|
+
const mapOrderType = (type) => {
|
|
12
|
+
switch (type) {
|
|
13
|
+
case 'limit':
|
|
14
|
+
return perps_types_1.OrderType.LIMIT;
|
|
15
|
+
case 'market':
|
|
16
|
+
return perps_types_1.OrderType.MARKET;
|
|
17
|
+
case 'stopMarket':
|
|
18
|
+
return perps_types_1.OrderType.STOP_MARKET;
|
|
19
|
+
case 'takeProfitMarket':
|
|
20
|
+
return perps_types_1.OrderType.TAKE_PROFIT_MARKET;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.mapOrderType = mapOrderType;
|
|
24
|
+
const mapOrderStatus = (status) => {
|
|
25
|
+
switch (status) {
|
|
26
|
+
case 'open':
|
|
27
|
+
case 'untriggered':
|
|
28
|
+
return perps_types_1.OrderStatus.OPEN;
|
|
29
|
+
case 'pending':
|
|
30
|
+
return perps_types_1.OrderStatus.PENDING;
|
|
31
|
+
case 'fullyfilled':
|
|
32
|
+
return perps_types_1.OrderStatus.FILLED;
|
|
33
|
+
case 'canceled':
|
|
34
|
+
return perps_types_1.OrderStatus.CANCELLED;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports.mapOrderStatus = mapOrderStatus;
|
|
38
|
+
const CANCEL_REASON_SENTENCES = {
|
|
39
|
+
liquidation: 'Order cancelled: position was liquidated.',
|
|
40
|
+
selfMatchPrevention: 'Order cancelled: would self-match against your own resting order.',
|
|
41
|
+
immediateOrCancel: 'Order cancelled: immediate-or-cancel remainder.',
|
|
42
|
+
};
|
|
43
|
+
const mapStatusReason = (order) => {
|
|
44
|
+
if (order.status !== 'canceled') {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
return CANCEL_REASON_SENTENCES[order.cancelReason ?? ''] ?? 'Order cancelled.';
|
|
48
|
+
};
|
|
49
|
+
exports.mapStatusReason = mapStatusReason;
|
|
50
|
+
const isTriggerOrder = (order) => order.type === 'stopMarket' ||
|
|
51
|
+
order.type === 'takeProfitMarket' ||
|
|
52
|
+
order.stopOrderType !== undefined ||
|
|
53
|
+
order.triggerPrice !== undefined;
|
|
54
|
+
exports.isTriggerOrder = isTriggerOrder;
|
|
55
|
+
const mapOrder = (order, market) => ({
|
|
56
|
+
orderId: order.orderId,
|
|
57
|
+
market,
|
|
58
|
+
side: mapSide(order.side),
|
|
59
|
+
type: (0, exports.mapOrderType)(order.type),
|
|
60
|
+
size: order.size,
|
|
61
|
+
price: order.price,
|
|
62
|
+
filledSize: order.filledSize,
|
|
63
|
+
reduceOnly: order.reduceOnly ?? false,
|
|
64
|
+
createdAt: toIso(order.createdAt),
|
|
65
|
+
});
|
|
66
|
+
exports.mapOrder = mapOrder;
|
|
67
|
+
const mapTriggerOrder = (order, market) => ({
|
|
68
|
+
orderId: order.orderId,
|
|
69
|
+
market,
|
|
70
|
+
type: (0, exports.mapOrderType)(order.type),
|
|
71
|
+
size: order.size,
|
|
72
|
+
triggerPrice: order.triggerPrice ?? '0',
|
|
73
|
+
createdAt: toIso(order.createdAt),
|
|
74
|
+
});
|
|
75
|
+
exports.mapTriggerOrder = mapTriggerOrder;
|
|
76
|
+
const TERMINAL_STATUSES = new Set([
|
|
77
|
+
'canceled',
|
|
78
|
+
'fullyfilled',
|
|
79
|
+
]);
|
|
80
|
+
const classifyAndMapOrders = (orders, resolveMarket) => {
|
|
81
|
+
const openOrders = [];
|
|
82
|
+
const triggerOrders = [];
|
|
83
|
+
const terminated = [];
|
|
84
|
+
for (const order of orders) {
|
|
85
|
+
if (TERMINAL_STATUSES.has(order.status)) {
|
|
86
|
+
terminated.push(order.orderId);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const market = resolveMarket(order.market);
|
|
90
|
+
if (market === undefined) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
if ((0, exports.isTriggerOrder)(order)) {
|
|
94
|
+
triggerOrders.push((0, exports.mapTriggerOrder)(order, market));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
openOrders.push((0, exports.mapOrder)(order, market));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return { openOrders, triggerOrders, terminated };
|
|
101
|
+
};
|
|
102
|
+
exports.classifyAndMapOrders = classifyAndMapOrders;
|
|
103
|
+
const mapOrderDetail = (order, market) => {
|
|
104
|
+
const filled = new big_js_1.default(order.filledSize);
|
|
105
|
+
const trigger = (0, exports.isTriggerOrder)(order);
|
|
106
|
+
return {
|
|
107
|
+
orderId: order.orderId,
|
|
108
|
+
market,
|
|
109
|
+
side: mapSide(order.side),
|
|
110
|
+
type: (0, exports.mapOrderType)(order.type),
|
|
111
|
+
price: order.price,
|
|
112
|
+
originalSize: order.size,
|
|
113
|
+
remainingSize: new big_js_1.default(order.size).minus(filled).toFixed(),
|
|
114
|
+
filledSize: order.filledSize,
|
|
115
|
+
timeInForce: order.timeInForce === undefined
|
|
116
|
+
? undefined
|
|
117
|
+
: perps_types_1.TimeInForce[order.timeInForce],
|
|
118
|
+
reduceOnly: order.reduceOnly ?? false,
|
|
119
|
+
isTrigger: trigger,
|
|
120
|
+
...(trigger && order.triggerPrice !== undefined
|
|
121
|
+
? { triggerPrice: order.triggerPrice }
|
|
122
|
+
: {}),
|
|
123
|
+
status: (0, exports.mapOrderStatus)(order.status),
|
|
124
|
+
...((0, exports.mapStatusReason)(order) !== undefined
|
|
125
|
+
? { statusReason: (0, exports.mapStatusReason)(order) }
|
|
126
|
+
: {}),
|
|
127
|
+
...(filled.gt(0)
|
|
128
|
+
? { averagePrice: new big_js_1.default(order.filledCost).div(filled).toFixed() }
|
|
129
|
+
: {}),
|
|
130
|
+
createdAt: toIso(order.createdAt),
|
|
131
|
+
updatedAt: toIso(order.canceledAt ?? order.filledAt ?? order.createdAt),
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
exports.mapOrderDetail = mapOrderDetail;
|
|
135
|
+
//# sourceMappingURL=mapOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MarketDisplay, Position } from '@lifi/perps-types';
|
|
2
|
+
import type { OndoPosition } from '../types/wire.js';
|
|
3
|
+
export declare const mapPosition: (pos: OndoPosition, market: MarketDisplay) => Position;
|
|
4
|
+
export declare const mapOpenPositions: (positions: OndoPosition[], resolveMarket: (market: string) => MarketDisplay) => Position[];
|
|
5
|
+
//# sourceMappingURL=mapPosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AASpD,eAAO,MAAM,WAAW,GACtB,KAAK,YAAY,EACjB,QAAQ,aAAa,KACpB,QAWD,CAAA;AASF,eAAO,MAAM,gBAAgB,GAC3B,WAAW,YAAY,EAAE,EACzB,eAAe,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,KAC/C,QAAQ,EAK6C,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mapOpenPositions = exports.mapPosition = void 0;
|
|
7
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
8
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
9
|
+
const mapPosition = (pos, market) => ({
|
|
10
|
+
market,
|
|
11
|
+
side: pos.direction === 'short' ? perps_types_1.PositionSide.SHORT : perps_types_1.PositionSide.LONG,
|
|
12
|
+
size: new big_js_1.default(pos.netQuantity).abs().toFixed(),
|
|
13
|
+
entryPrice: pos.averageEntryPrice,
|
|
14
|
+
markPrice: pos.markPrice,
|
|
15
|
+
liquidationPrice: pos.liquidationPrice,
|
|
16
|
+
unrealizedPnl: pos.unrealizedPnl,
|
|
17
|
+
leverage: Number.parseFloat(pos.leverage),
|
|
18
|
+
marginUsed: pos.usedMargin,
|
|
19
|
+
marginMode: perps_types_1.MarginMode.CROSS,
|
|
20
|
+
});
|
|
21
|
+
exports.mapPosition = mapPosition;
|
|
22
|
+
const mapOpenPositions = (positions, resolveMarket) => positions
|
|
23
|
+
.filter((p) => p.direction !== 'neutral' && Number.parseFloat(p.netQuantity) !== 0)
|
|
24
|
+
.map((p) => (0, exports.mapPosition)(p, resolveMarket(p.market)));
|
|
25
|
+
exports.mapOpenPositions = mapOpenPositions;
|
|
26
|
+
//# sourceMappingURL=mapPosition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapPosition.js","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":";;;;;;AACA,mDAA4D;AAC5D,oDAAwB;AAUjB,MAAM,WAAW,GAAG,CACzB,GAAiB,EACjB,MAAqB,EACX,EAAE,CAAC,CAAC;IACd,MAAM;IACN,IAAI,EAAE,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,0BAAY,CAAC,KAAK,CAAC,CAAC,CAAC,0BAAY,CAAC,IAAI;IACxE,IAAI,EAAE,IAAI,gBAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IAC9C,UAAU,EAAE,GAAG,CAAC,iBAAiB;IACjC,SAAS,EAAE,GAAG,CAAC,SAAS;IACxB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;IACtC,aAAa,EAAE,GAAG,CAAC,aAAa;IAChC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;IACzC,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,UAAU,EAAE,wBAAU,CAAC,KAAK;CAC7B,CAAC,CAAA;AAdW,QAAA,WAAW,eActB;AASK,MAAM,gBAAgB,GAAG,CAC9B,SAAyB,EACzB,aAAgD,EACpC,EAAE,CACd,SAAS;KACN,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAC3E;KACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAR3C,QAAA,gBAAgB,oBAQ2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ohlcvInterval.d.ts","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAqCtD,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,KAAG,MAU9C,CAAA;AAQD,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,KACf,aAAa,GAAG,SAUlB,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.intervalFromBarSpan = exports.mapInterval = void 0;
|
|
4
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
6
|
+
const ONDO_SUPPORTED_INTERVALS = {
|
|
7
|
+
'1m': '1',
|
|
8
|
+
'5m': '5',
|
|
9
|
+
'15m': '15',
|
|
10
|
+
'30m': '30',
|
|
11
|
+
'1h': '1H',
|
|
12
|
+
'4h': '4H',
|
|
13
|
+
'1d': '1D',
|
|
14
|
+
'1w': '1W',
|
|
15
|
+
'1M': '1M',
|
|
16
|
+
};
|
|
17
|
+
const INTERVAL_SECONDS = {
|
|
18
|
+
60: '1m',
|
|
19
|
+
300: '5m',
|
|
20
|
+
900: '15m',
|
|
21
|
+
1800: '30m',
|
|
22
|
+
3600: '1h',
|
|
23
|
+
14400: '4h',
|
|
24
|
+
86400: '1d',
|
|
25
|
+
604800: '1w',
|
|
26
|
+
};
|
|
27
|
+
const MONTH_MIN_SECS = 28 * 86400;
|
|
28
|
+
const MONTH_MAX_SECS = 31 * 86400;
|
|
29
|
+
const mapInterval = (interval) => {
|
|
30
|
+
const resolution = ONDO_SUPPORTED_INTERVALS[interval];
|
|
31
|
+
if (!resolution) {
|
|
32
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Ondo does not support OHLCV interval '${interval}'. ` +
|
|
33
|
+
`Supported: ${Object.keys(ONDO_SUPPORTED_INTERVALS).join(', ')}.`);
|
|
34
|
+
}
|
|
35
|
+
return resolution;
|
|
36
|
+
};
|
|
37
|
+
exports.mapInterval = mapInterval;
|
|
38
|
+
const intervalFromBarSpan = (spanSecs) => {
|
|
39
|
+
const fixed = INTERVAL_SECONDS[spanSecs];
|
|
40
|
+
if (fixed !== undefined) {
|
|
41
|
+
return fixed;
|
|
42
|
+
}
|
|
43
|
+
if (spanSecs >= MONTH_MIN_SECS && spanSecs <= MONTH_MAX_SECS) {
|
|
44
|
+
return '1M';
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
};
|
|
48
|
+
exports.intervalFromBarSpan = intervalFromBarSpan;
|
|
49
|
+
//# sourceMappingURL=ohlcvInterval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ohlcvInterval.js","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,mDAAkD;AASlD,MAAM,wBAAwB,GAA2B;IACvD,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACX,CAAA;AAED,MAAM,gBAAgB,GAAkC;IACtD,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;CACb,CAAA;AAED,MAAM,cAAc,GAAG,EAAE,GAAG,KAAK,CAAA;AACjC,MAAM,cAAc,GAAG,EAAE,GAAG,KAAK,CAAA;AAG1B,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAU,EAAE;IACtD,MAAM,UAAU,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAA;IACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,yCAAyC,QAAQ,KAAK;YACpD,cAAc,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACpE,CAAA;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAVY,QAAA,WAAW,eAUvB;AAQM,MAAM,mBAAmB,GAAG,CACjC,QAAgB,EACW,EAAE;IAC7B,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,QAAQ,IAAI,cAAc,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAZY,QAAA,mBAAmB,uBAY/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ondoAsset.d.ts","sourceRoot":"","sources":["../../../src/utils/ondoAsset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAI9C,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,EAAE,eAAe,MAAM,KAAG,KAK5D,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ondoAsset = void 0;
|
|
4
|
+
const constants_js_1 = require("../constants.js");
|
|
5
|
+
const ondoAsset = (id, displaySymbol) => ({
|
|
6
|
+
providerId: constants_js_1.ONDO_PROVIDER_KEY,
|
|
7
|
+
id,
|
|
8
|
+
displaySymbol,
|
|
9
|
+
logoURI: '',
|
|
10
|
+
});
|
|
11
|
+
exports.ondoAsset = ondoAsset;
|
|
12
|
+
//# sourceMappingURL=ondoAsset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ondoAsset.js","sourceRoot":"","sources":["../../../src/utils/ondoAsset.ts"],"names":[],"mappings":";;;AACA,kDAAmD;AAG5C,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,aAAqB,EAAS,EAAE,CAAC,CAAC;IACtE,UAAU,EAAE,gCAAiB;IAC7B,EAAE;IACF,aAAa;IACb,OAAO,EAAE,EAAE;CACZ,CAAC,CAAA;AALW,QAAA,SAAS,aAKpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAA;AA6B/D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOtE;AAWD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUpE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.formatOrderPrice = formatOrderPrice;
|
|
7
|
+
exports.formatOrderSize = formatOrderSize;
|
|
8
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
9
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
10
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
11
|
+
const powerOfTenIncrement = (decimals) => new big_js_1.default(`1e-${decimals}`);
|
|
12
|
+
const priceGrid = (market) => {
|
|
13
|
+
if (market.priceIncrement !== undefined) {
|
|
14
|
+
return new big_js_1.default(market.priceIncrement);
|
|
15
|
+
}
|
|
16
|
+
if (market.priceDecimals !== undefined) {
|
|
17
|
+
return powerOfTenIncrement(market.priceDecimals);
|
|
18
|
+
}
|
|
19
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Market '${market.id}' carries no price grid; Ondo order prices cannot ` +
|
|
20
|
+
`be formatted without the market's tick increment.`);
|
|
21
|
+
};
|
|
22
|
+
function formatOrderPrice(market, price) {
|
|
23
|
+
const increment = priceGrid(market);
|
|
24
|
+
const snapped = new big_js_1.default(price)
|
|
25
|
+
.div(increment)
|
|
26
|
+
.round(0, big_js_1.default.roundHalfUp)
|
|
27
|
+
.times(increment);
|
|
28
|
+
return snapped.eq(0) ? '0' : snapped.toFixed();
|
|
29
|
+
}
|
|
30
|
+
function formatOrderSize(market, size) {
|
|
31
|
+
const increment = market.sizeIncrement !== undefined
|
|
32
|
+
? new big_js_1.default(market.sizeIncrement)
|
|
33
|
+
: powerOfTenIncrement(market.szDecimals);
|
|
34
|
+
const snapped = new big_js_1.default(size)
|
|
35
|
+
.div(increment)
|
|
36
|
+
.round(0, big_js_1.default.roundDown)
|
|
37
|
+
.times(increment);
|
|
38
|
+
return snapped.eq(0) ? '0' : snapped.toFixed();
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=orderFormatting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderFormatting.js","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":";;;;;AAyCA,4CAOC;AAWD,0CAUC;AA1DD,+CAA4C;AAC5C,mDAA+D;AAC/D,oDAAwB;AAExB,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAO,EAAE,CAAC,IAAI,gBAAG,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA;AAEhF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAO,EAAE;IACxC,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,gBAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,WAAW,MAAM,CAAC,EAAE,oDAAoD;QACtE,mDAAmD,CACtD,CAAA;AACH,CAAC,CAAA;AAYD,SAAgB,gBAAgB,CAAC,MAAc,EAAE,KAAa;IAC5D,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,gBAAG,CAAC,KAAK,CAAC;SAC3B,GAAG,CAAC,SAAS,CAAC;SACd,KAAK,CAAC,CAAC,EAAE,gBAAG,CAAC,WAAW,CAAC;SACzB,KAAK,CAAC,SAAS,CAAC,CAAA;IACnB,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAChD,CAAC;AAWD,SAAgB,eAAe,CAAC,MAAc,EAAE,IAAY;IAC1D,MAAM,SAAS,GACb,MAAM,CAAC,aAAa,KAAK,SAAS;QAChC,CAAC,CAAC,IAAI,gBAAG,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/B,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,IAAI,gBAAG,CAAC,IAAI,CAAC;SAC1B,GAAG,CAAC,SAAS,CAAC;SACd,KAAK,CAAC,CAAC,EAAE,gBAAG,CAAC,SAAS,CAAC;SACvB,KAAK,CAAC,SAAS,CAAC,CAAA;IACnB,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type PerpsSDKClient, type ProviderGetQuoteParams, type QuoteListener, type StorageAdapter, WsProviderBase, type WsProviderFactory } from '@lifi/perps-sdk';
|
|
2
|
+
import type { Subscription } from '@lifi/perps-types';
|
|
3
|
+
import type { Address } from 'viem';
|
|
4
|
+
interface SubState {
|
|
5
|
+
frame: {
|
|
6
|
+
channel: string;
|
|
7
|
+
markets?: string[];
|
|
8
|
+
resolution?: string;
|
|
9
|
+
};
|
|
10
|
+
needsAuth: boolean;
|
|
11
|
+
address?: Address;
|
|
12
|
+
}
|
|
13
|
+
export interface OndoWsProviderOptions {
|
|
14
|
+
apiUrl?: string;
|
|
15
|
+
storage?: StorageAdapter;
|
|
16
|
+
}
|
|
17
|
+
export declare class OndoWsProvider extends WsProviderBase<SubState> {
|
|
18
|
+
private readonly tokenStore;
|
|
19
|
+
private readonly client;
|
|
20
|
+
private readonly registry;
|
|
21
|
+
private readonly apiUrl;
|
|
22
|
+
private readonly authWireRefs;
|
|
23
|
+
private accountSummary;
|
|
24
|
+
private contexts;
|
|
25
|
+
private pendingFunding;
|
|
26
|
+
private accountAddress;
|
|
27
|
+
private loginPromise;
|
|
28
|
+
constructor(wsUrl?: string, providerKey?: string, options?: OndoWsProviderOptions, client?: PerpsSDKClient);
|
|
29
|
+
subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
|
|
30
|
+
protected toKey(sub: Subscription): string;
|
|
31
|
+
protected openChannel(sub: Subscription): Promise<() => void>;
|
|
32
|
+
private acquireWire;
|
|
33
|
+
private releaseWire;
|
|
34
|
+
protected sendSubscribe(state: SubState): Promise<void>;
|
|
35
|
+
protected onClose(): void;
|
|
36
|
+
private resolveChannel;
|
|
37
|
+
private ensureLogin;
|
|
38
|
+
private restClient;
|
|
39
|
+
private seedAccountSummary;
|
|
40
|
+
private refreshAccountSummaryBalance;
|
|
41
|
+
private emitAccountSummary;
|
|
42
|
+
protected handleMessage(raw: string): void;
|
|
43
|
+
private handleBooks;
|
|
44
|
+
private handleTrades;
|
|
45
|
+
private handleKline;
|
|
46
|
+
private handleMarkPrices;
|
|
47
|
+
private handleFundingRates;
|
|
48
|
+
private emitContexts;
|
|
49
|
+
private resolveMarket;
|
|
50
|
+
private handleOrders;
|
|
51
|
+
private handleFills;
|
|
52
|
+
private handlePositions;
|
|
53
|
+
}
|
|
54
|
+
export declare const ondoWsProvider: (options?: OndoWsProviderOptions) => WsProviderFactory;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=OndoWsProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAGlB,KAAK,cAAc,EAEnB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAwDnC,UAAU,QAAQ;IAEhB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAOD,MAAM,WAAW,qBAAqB;IAMpC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAUD,qBAAa,cAAe,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAQ/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IAOzD,OAAO,CAAC,cAAc,CAET;IAGb,OAAO,CAAC,QAAQ,CAAoC;IAEpD,OAAO,CAAC,cAAc,CAGnB;IAGH,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAA2B;gBAG7C,KAAK,GAAE,MAA4B,EACnC,WAAW,SAAoB,EAC/B,OAAO,GAAE,qBAA0B,EACnC,MAAM,CAAC,EAAE,cAAc;IAmBnB,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAkBtB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;cAqB1B,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;YAiDrD,WAAW;IAuBzB,OAAO,CAAC,WAAW;cAaH,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAO1C,OAAO,IAAI,IAAI;IAOlC,OAAO,CAAC,cAAc;IA8GtB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,UAAU;YAYJ,kBAAkB;YAoBlB,4BAA4B;IAsB1C,OAAO,CAAC,kBAAkB;IAkB1B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA+C1C,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,aAAa,CAGpB;IAED,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;CA2BxB;AAaD,eAAO,MAAM,cAAc,GACxB,UAAU,qBAAqB,KAAG,iBAEmB,CAAA"}
|