@lifi/perps-sdk-provider-lighter 0.2.0-alpha.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/LICENSE +201 -0
- package/README.md +176 -0
- package/dist/cjs/LighterProvider.d.ts +20 -0
- package/dist/cjs/LighterProvider.d.ts.map +1 -0
- package/dist/cjs/LighterProvider.js +592 -0
- package/dist/cjs/LighterProvider.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 +69 -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/constants.d.ts +14 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +18 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.d.ts +11 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +35 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/signers/LighterKeyStore.d.ts +18 -0
- package/dist/cjs/signers/LighterKeyStore.d.ts.map +1 -0
- package/dist/cjs/signers/LighterKeyStore.js +54 -0
- package/dist/cjs/signers/LighterKeyStore.js.map +1 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts +56 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.js +127 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.js.map +1 -0
- package/dist/cjs/signers/LighterSigner.d.ts +41 -0
- package/dist/cjs/signers/LighterSigner.d.ts.map +1 -0
- package/dist/cjs/signers/LighterSigner.js +175 -0
- package/dist/cjs/signers/LighterSigner.js.map +1 -0
- package/dist/cjs/signers/createAuthToken.d.ts +12 -0
- package/dist/cjs/signers/createAuthToken.d.ts.map +1 -0
- package/dist/cjs/signers/createAuthToken.js +28 -0
- package/dist/cjs/signers/createAuthToken.js.map +1 -0
- package/dist/cjs/signers/index.d.ts +11 -0
- package/dist/cjs/signers/index.d.ts.map +1 -0
- package/dist/cjs/signers/index.js +19 -0
- package/dist/cjs/signers/index.js.map +1 -0
- package/dist/cjs/signers/signActions.d.ts +15 -0
- package/dist/cjs/signers/signActions.d.ts.map +1 -0
- package/dist/cjs/signers/signActions.js +142 -0
- package/dist/cjs/signers/signActions.js.map +1 -0
- package/dist/cjs/signers/wasmLoader.d.ts +42 -0
- package/dist/cjs/signers/wasmLoader.d.ts.map +1 -0
- package/dist/cjs/signers/wasmLoader.js +166 -0
- package/dist/cjs/signers/wasmLoader.js.map +1 -0
- package/dist/cjs/types/account.d.ts +97 -0
- package/dist/cjs/types/account.d.ts.map +1 -0
- package/dist/cjs/types/account.js +3 -0
- package/dist/cjs/types/account.js.map +1 -0
- package/dist/cjs/types/action.d.ts +72 -0
- package/dist/cjs/types/action.d.ts.map +1 -0
- package/dist/cjs/types/action.js +23 -0
- package/dist/cjs/types/action.js.map +1 -0
- package/dist/cjs/types/activity.d.ts +73 -0
- package/dist/cjs/types/activity.d.ts.map +1 -0
- package/dist/cjs/types/activity.js +3 -0
- package/dist/cjs/types/activity.js.map +1 -0
- package/dist/cjs/types/asset.d.ts +122 -0
- package/dist/cjs/types/asset.d.ts.map +1 -0
- package/dist/cjs/types/asset.js +3 -0
- package/dist/cjs/types/asset.js.map +1 -0
- package/dist/cjs/types/fill.d.ts +29 -0
- package/dist/cjs/types/fill.d.ts.map +1 -0
- package/dist/cjs/types/fill.js +3 -0
- package/dist/cjs/types/fill.js.map +1 -0
- package/dist/cjs/types/index.d.ts +9 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +25 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/order.d.ts +57 -0
- package/dist/cjs/types/order.d.ts.map +1 -0
- package/dist/cjs/types/order.js +3 -0
- package/dist/cjs/types/order.js.map +1 -0
- package/dist/cjs/types/submit.d.ts +39 -0
- package/dist/cjs/types/submit.d.ts.map +1 -0
- package/dist/cjs/types/submit.js +3 -0
- package/dist/cjs/types/submit.js.map +1 -0
- package/dist/cjs/types/ws.d.ts +84 -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 +12 -0
- package/dist/cjs/utils/activityCursor.d.ts.map +1 -0
- package/dist/cjs/utils/activityCursor.js +85 -0
- package/dist/cjs/utils/activityCursor.js.map +1 -0
- package/dist/cjs/utils/apiClient.d.ts +26 -0
- package/dist/cjs/utils/apiClient.d.ts.map +1 -0
- package/dist/cjs/utils/apiClient.js +94 -0
- package/dist/cjs/utils/apiClient.js.map +1 -0
- package/dist/cjs/utils/fetchDetailedAccount.d.ts +5 -0
- package/dist/cjs/utils/fetchDetailedAccount.d.ts.map +1 -0
- package/dist/cjs/utils/fetchDetailedAccount.js +22 -0
- package/dist/cjs/utils/fetchDetailedAccount.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +16 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +45 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/lighterAsset.d.ts +3 -0
- package/dist/cjs/utils/lighterAsset.d.ts.map +1 -0
- package/dist/cjs/utils/lighterAsset.js +12 -0
- package/dist/cjs/utils/lighterAsset.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/mapFill.d.ts +4 -0
- package/dist/cjs/utils/mapFill.d.ts.map +1 -0
- package/dist/cjs/utils/mapFill.js +61 -0
- package/dist/cjs/utils/mapFill.js.map +1 -0
- package/dist/cjs/utils/mapOpenPositions.d.ts +4 -0
- package/dist/cjs/utils/mapOpenPositions.d.ts.map +1 -0
- package/dist/cjs/utils/mapOpenPositions.js +9 -0
- package/dist/cjs/utils/mapOpenPositions.js.map +1 -0
- package/dist/cjs/utils/mapOrder.d.ts +15 -0
- package/dist/cjs/utils/mapOrder.d.ts.map +1 -0
- package/dist/cjs/utils/mapOrder.js +164 -0
- package/dist/cjs/utils/mapOrder.js.map +1 -0
- package/dist/cjs/utils/mapPosition.d.ts +4 -0
- package/dist/cjs/utils/mapPosition.d.ts.map +1 -0
- package/dist/cjs/utils/mapPosition.js +30 -0
- package/dist/cjs/utils/mapPosition.js.map +1 -0
- package/dist/cjs/utils/ohlcvInterval.d.ts +2 -0
- package/dist/cjs/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/cjs/utils/ohlcvInterval.js +26 -0
- package/dist/cjs/utils/ohlcvInterval.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 +23 -0
- package/dist/cjs/utils/orderFormatting.js.map +1 -0
- package/dist/cjs/utils/time.d.ts +3 -0
- package/dist/cjs/utils/time.d.ts.map +1 -0
- package/dist/cjs/utils/time.js +8 -0
- package/dist/cjs/utils/time.js.map +1 -0
- package/dist/cjs/utils/wireEncoding.d.ts +9 -0
- package/dist/cjs/utils/wireEncoding.d.ts.map +1 -0
- package/dist/cjs/utils/wireEncoding.js +87 -0
- package/dist/cjs/utils/wireEncoding.js.map +1 -0
- package/dist/cjs/websocket/LighterWsProvider.d.ts +45 -0
- package/dist/cjs/websocket/LighterWsProvider.d.ts.map +1 -0
- package/dist/cjs/websocket/LighterWsProvider.js +396 -0
- package/dist/cjs/websocket/LighterWsProvider.js.map +1 -0
- package/dist/esm/LighterProvider.d.ts +105 -0
- package/dist/esm/LighterProvider.d.ts.map +1 -0
- package/dist/esm/LighterProvider.js +684 -0
- package/dist/esm/LighterProvider.js.map +1 -0
- package/dist/esm/accountConfig.d.ts +14 -0
- package/dist/esm/accountConfig.d.ts.map +1 -0
- package/dist/esm/accountConfig.js +135 -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/constants.d.ts +74 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +73 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.d.ts +22 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/signers/LighterKeyStore.d.ts +24 -0
- package/dist/esm/signers/LighterKeyStore.d.ts.map +1 -0
- package/dist/esm/signers/LighterKeyStore.js +55 -0
- package/dist/esm/signers/LighterKeyStore.js.map +1 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts +157 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.js +194 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.js.map +1 -0
- package/dist/esm/signers/LighterSigner.d.ts +94 -0
- package/dist/esm/signers/LighterSigner.d.ts.map +1 -0
- package/dist/esm/signers/LighterSigner.js +228 -0
- package/dist/esm/signers/LighterSigner.js.map +1 -0
- package/dist/esm/signers/createAuthToken.d.ts +36 -0
- package/dist/esm/signers/createAuthToken.d.ts.map +1 -0
- package/dist/esm/signers/createAuthToken.js +42 -0
- package/dist/esm/signers/createAuthToken.js.map +1 -0
- package/dist/esm/signers/index.d.ts +11 -0
- package/dist/esm/signers/index.d.ts.map +1 -0
- package/dist/esm/signers/index.js +7 -0
- package/dist/esm/signers/index.js.map +1 -0
- package/dist/esm/signers/signActions.d.ts +54 -0
- package/dist/esm/signers/signActions.d.ts.map +1 -0
- package/dist/esm/signers/signActions.js +193 -0
- package/dist/esm/signers/signActions.js.map +1 -0
- package/dist/esm/signers/wasmLoader.d.ts +79 -0
- package/dist/esm/signers/wasmLoader.d.ts.map +1 -0
- package/dist/esm/signers/wasmLoader.js +180 -0
- package/dist/esm/signers/wasmLoader.js.map +1 -0
- package/dist/esm/types/account.d.ts +113 -0
- package/dist/esm/types/account.d.ts.map +1 -0
- package/dist/esm/types/account.js +4 -0
- package/dist/esm/types/account.js.map +1 -0
- package/dist/esm/types/action.d.ts +146 -0
- package/dist/esm/types/action.d.ts.map +1 -0
- package/dist/esm/types/action.js +50 -0
- package/dist/esm/types/action.js.map +1 -0
- package/dist/esm/types/activity.d.ts +83 -0
- package/dist/esm/types/activity.d.ts.map +1 -0
- package/dist/esm/types/activity.js +4 -0
- package/dist/esm/types/activity.js.map +1 -0
- package/dist/esm/types/asset.d.ts +134 -0
- package/dist/esm/types/asset.d.ts.map +1 -0
- package/dist/esm/types/asset.js +3 -0
- package/dist/esm/types/asset.js.map +1 -0
- package/dist/esm/types/fill.d.ts +31 -0
- package/dist/esm/types/fill.d.ts.map +1 -0
- package/dist/esm/types/fill.js +3 -0
- package/dist/esm/types/fill.js.map +1 -0
- package/dist/esm/types/index.d.ts +9 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +12 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/order.d.ts +61 -0
- package/dist/esm/types/order.d.ts.map +1 -0
- package/dist/esm/types/order.js +3 -0
- package/dist/esm/types/order.js.map +1 -0
- package/dist/esm/types/submit.d.ts +76 -0
- package/dist/esm/types/submit.d.ts.map +1 -0
- package/dist/esm/types/submit.js +3 -0
- package/dist/esm/types/submit.js.map +1 -0
- package/dist/esm/types/ws.d.ts +124 -0
- package/dist/esm/types/ws.d.ts.map +1 -0
- package/dist/esm/types/ws.js +11 -0
- package/dist/esm/types/ws.js.map +1 -0
- package/dist/esm/utils/activityCursor.d.ts +51 -0
- package/dist/esm/utils/activityCursor.d.ts.map +1 -0
- package/dist/esm/utils/activityCursor.js +99 -0
- package/dist/esm/utils/activityCursor.js.map +1 -0
- package/dist/esm/utils/apiClient.d.ts +65 -0
- package/dist/esm/utils/apiClient.d.ts.map +1 -0
- package/dist/esm/utils/apiClient.js +131 -0
- package/dist/esm/utils/apiClient.js.map +1 -0
- package/dist/esm/utils/fetchDetailedAccount.d.ts +11 -0
- package/dist/esm/utils/fetchDetailedAccount.d.ts.map +1 -0
- package/dist/esm/utils/fetchDetailedAccount.js +24 -0
- package/dist/esm/utils/fetchDetailedAccount.js.map +1 -0
- package/dist/esm/utils/index.d.ts +16 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +17 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/lighterAsset.d.ts +4 -0
- package/dist/esm/utils/lighterAsset.d.ts.map +1 -0
- package/dist/esm/utils/lighterAsset.js +9 -0
- package/dist/esm/utils/lighterAsset.js.map +1 -0
- package/dist/esm/utils/liquidation.d.ts +22 -0
- package/dist/esm/utils/liquidation.d.ts.map +1 -0
- package/dist/esm/utils/liquidation.js +31 -0
- package/dist/esm/utils/liquidation.js.map +1 -0
- package/dist/esm/utils/mapFill.d.ts +10 -0
- package/dist/esm/utils/mapFill.d.ts.map +1 -0
- package/dist/esm/utils/mapFill.js +72 -0
- package/dist/esm/utils/mapFill.js.map +1 -0
- package/dist/esm/utils/mapOpenPositions.d.ts +11 -0
- package/dist/esm/utils/mapOpenPositions.d.ts.map +1 -0
- package/dist/esm/utils/mapOpenPositions.js +12 -0
- package/dist/esm/utils/mapOpenPositions.js.map +1 -0
- package/dist/esm/utils/mapOrder.d.ts +72 -0
- package/dist/esm/utils/mapOrder.d.ts.map +1 -0
- package/dist/esm/utils/mapOrder.js +219 -0
- package/dist/esm/utils/mapOrder.js.map +1 -0
- package/dist/esm/utils/mapPosition.d.ts +9 -0
- package/dist/esm/utils/mapPosition.d.ts.map +1 -0
- package/dist/esm/utils/mapPosition.js +34 -0
- package/dist/esm/utils/mapPosition.js.map +1 -0
- package/dist/esm/utils/ohlcvInterval.d.ts +3 -0
- package/dist/esm/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/esm/utils/ohlcvInterval.js +30 -0
- package/dist/esm/utils/ohlcvInterval.js.map +1 -0
- package/dist/esm/utils/orderFormatting.d.ts +29 -0
- package/dist/esm/utils/orderFormatting.d.ts.map +1 -0
- package/dist/esm/utils/orderFormatting.js +41 -0
- package/dist/esm/utils/orderFormatting.js.map +1 -0
- package/dist/esm/utils/time.d.ts +5 -0
- package/dist/esm/utils/time.d.ts.map +1 -0
- package/dist/esm/utils/time.js +5 -0
- package/dist/esm/utils/time.js.map +1 -0
- package/dist/esm/utils/wireEncoding.d.ts +72 -0
- package/dist/esm/utils/wireEncoding.d.ts.map +1 -0
- package/dist/esm/utils/wireEncoding.js +129 -0
- package/dist/esm/utils/wireEncoding.js.map +1 -0
- package/dist/esm/websocket/LighterWsProvider.d.ts +97 -0
- package/dist/esm/websocket/LighterWsProvider.d.ts.map +1 -0
- package/dist/esm/websocket/LighterWsProvider.js +489 -0
- package/dist/esm/websocket/LighterWsProvider.js.map +1 -0
- package/dist/types/LighterProvider.d.ts +105 -0
- package/dist/types/LighterProvider.d.ts.map +1 -0
- package/dist/types/accountConfig.d.ts +14 -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/constants.d.ts +74 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/signers/LighterKeyStore.d.ts +24 -0
- package/dist/types/signers/LighterKeyStore.d.ts.map +1 -0
- package/dist/types/signers/LighterReadOnlyTokenManager.d.ts +157 -0
- package/dist/types/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/types/signers/LighterSigner.d.ts +94 -0
- package/dist/types/signers/LighterSigner.d.ts.map +1 -0
- package/dist/types/signers/createAuthToken.d.ts +36 -0
- package/dist/types/signers/createAuthToken.d.ts.map +1 -0
- package/dist/types/signers/index.d.ts +11 -0
- package/dist/types/signers/index.d.ts.map +1 -0
- package/dist/types/signers/signActions.d.ts +54 -0
- package/dist/types/signers/signActions.d.ts.map +1 -0
- package/dist/types/signers/wasmLoader.d.ts +79 -0
- package/dist/types/signers/wasmLoader.d.ts.map +1 -0
- package/dist/types/types/account.d.ts +113 -0
- package/dist/types/types/account.d.ts.map +1 -0
- package/dist/types/types/action.d.ts +146 -0
- package/dist/types/types/action.d.ts.map +1 -0
- package/dist/types/types/activity.d.ts +83 -0
- package/dist/types/types/activity.d.ts.map +1 -0
- package/dist/types/types/asset.d.ts +134 -0
- package/dist/types/types/asset.d.ts.map +1 -0
- package/dist/types/types/fill.d.ts +31 -0
- package/dist/types/types/fill.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +9 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/order.d.ts +61 -0
- package/dist/types/types/order.d.ts.map +1 -0
- package/dist/types/types/submit.d.ts +76 -0
- package/dist/types/types/submit.d.ts.map +1 -0
- package/dist/types/types/ws.d.ts +124 -0
- package/dist/types/types/ws.d.ts.map +1 -0
- package/dist/types/utils/activityCursor.d.ts +51 -0
- package/dist/types/utils/activityCursor.d.ts.map +1 -0
- package/dist/types/utils/apiClient.d.ts +65 -0
- package/dist/types/utils/apiClient.d.ts.map +1 -0
- package/dist/types/utils/fetchDetailedAccount.d.ts +11 -0
- package/dist/types/utils/fetchDetailedAccount.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +16 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/lighterAsset.d.ts +4 -0
- package/dist/types/utils/lighterAsset.d.ts.map +1 -0
- package/dist/types/utils/liquidation.d.ts +22 -0
- package/dist/types/utils/liquidation.d.ts.map +1 -0
- package/dist/types/utils/mapFill.d.ts +10 -0
- package/dist/types/utils/mapFill.d.ts.map +1 -0
- package/dist/types/utils/mapOpenPositions.d.ts +11 -0
- package/dist/types/utils/mapOpenPositions.d.ts.map +1 -0
- package/dist/types/utils/mapOrder.d.ts +72 -0
- package/dist/types/utils/mapOrder.d.ts.map +1 -0
- package/dist/types/utils/mapPosition.d.ts +9 -0
- package/dist/types/utils/mapPosition.d.ts.map +1 -0
- package/dist/types/utils/ohlcvInterval.d.ts +3 -0
- package/dist/types/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/types/utils/orderFormatting.d.ts +29 -0
- package/dist/types/utils/orderFormatting.d.ts.map +1 -0
- package/dist/types/utils/time.d.ts +5 -0
- package/dist/types/utils/time.d.ts.map +1 -0
- package/dist/types/utils/wireEncoding.d.ts +72 -0
- package/dist/types/utils/wireEncoding.d.ts.map +1 -0
- package/dist/types/websocket/LighterWsProvider.d.ts +97 -0
- package/dist/types/websocket/LighterWsProvider.d.ts.map +1 -0
- package/dist/wasm/lighter-signer.wasm +0 -0
- package/dist/wasm/wasm_exec.js +575 -0
- package/package.json +67 -0
- package/src/LighterProvider.ts +1167 -0
- package/src/accountConfig.ts +162 -0
- package/src/accountSummary.ts +22 -0
- package/src/constants.ts +89 -0
- package/src/index.ts +37 -0
- package/src/signers/LighterKeyStore.ts +79 -0
- package/src/signers/LighterReadOnlyTokenManager.ts +340 -0
- package/src/signers/LighterSigner.ts +400 -0
- package/src/signers/createAuthToken.ts +69 -0
- package/src/signers/index.ts +36 -0
- package/src/signers/signActions.ts +311 -0
- package/src/signers/wasmLoader.ts +293 -0
- package/src/types/account.ts +123 -0
- package/src/types/action.ts +163 -0
- package/src/types/activity.ts +94 -0
- package/src/types/asset.ts +146 -0
- package/src/types/fill.ts +42 -0
- package/src/types/index.ts +12 -0
- package/src/types/order.ts +65 -0
- package/src/types/submit.ts +83 -0
- package/src/types/ws.ts +136 -0
- package/src/utils/activityCursor.ts +150 -0
- package/src/utils/apiClient.ts +185 -0
- package/src/utils/fetchDetailedAccount.ts +46 -0
- package/src/utils/index.ts +38 -0
- package/src/utils/lighterAsset.ts +10 -0
- package/src/utils/liquidation.ts +39 -0
- package/src/utils/mapFill.ts +108 -0
- package/src/utils/mapOpenPositions.ts +18 -0
- package/src/utils/mapOrder.ts +258 -0
- package/src/utils/mapPosition.ts +42 -0
- package/src/utils/ohlcvInterval.ts +34 -0
- package/src/utils/orderFormatting.ts +46 -0
- package/src/utils/time.ts +6 -0
- package/src/utils/wireEncoding.ts +179 -0
- package/src/websocket/LighterWsProvider.ts +725 -0
- package/wasm/lighter-signer.wasm +0 -0
- package/wasm/wasm_exec.js +575 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lighterAsset.d.ts","sourceRoot":"","sources":["../../../src/utils/lighterAsset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAI9C,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,EAAE,eAAe,MAAM,KAAG,KAK/D,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lighterAsset = void 0;
|
|
4
|
+
const constants_js_1 = require("../constants.js");
|
|
5
|
+
const lighterAsset = (id, displaySymbol) => ({
|
|
6
|
+
providerId: constants_js_1.LIGHTER_PROVIDER_KEY,
|
|
7
|
+
id,
|
|
8
|
+
displaySymbol,
|
|
9
|
+
logoURI: '',
|
|
10
|
+
});
|
|
11
|
+
exports.lighterAsset = lighterAsset;
|
|
12
|
+
//# sourceMappingURL=lighterAsset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lighterAsset.js","sourceRoot":"","sources":["../../../src/utils/lighterAsset.ts"],"names":[],"mappings":";;;AACA,kDAAsD;AAG/C,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,aAAqB,EAAS,EAAE,CAAC,CAAC;IACzE,UAAU,EAAE,mCAAoB;IAChC,EAAE;IACF,aAAa;IACb,OAAO,EAAE,EAAE;CACZ,CAAC,CAAA;AALW,QAAA,YAAY,gBAKvB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type LiquidationEstimateParams } from '@lifi/perps-sdk';
|
|
2
|
+
import type { PerpsMarket } from '@lifi/perps-types';
|
|
3
|
+
export declare function estimateLiquidationPrice(market: PerpsMarket, params: LiquidationEstimateParams): number | undefined;
|
|
4
|
+
//# sourceMappingURL=liquidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["../../../src/utils/liquidation.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAYpD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,yBAAyB,GAChC,MAAM,GAAG,SAAS,CAUpB"}
|
|
@@ -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":";;AAyBA,4DAaC;AA7BD,+CAGwB;AAaxB,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 @@
|
|
|
1
|
+
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQ5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AA+ChD,eAAO,MAAM,OAAO,GAClB,OAAO,OAAO,EACd,cAAc,MAAM,EACpB,QAAQ,aAAa,KACpB,IA2CF,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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_sdk_1 = require("@lifi/perps-sdk");
|
|
8
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
9
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
10
|
+
const deriveRealizedPnl = (startPosition, entryQuoteBefore, fillSize, fillPrice, isBuyer) => {
|
|
11
|
+
if (entryQuoteBefore === undefined) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const start = new big_js_1.default(startPosition);
|
|
15
|
+
if (start.eq(0)) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const isLong = start.gt(0);
|
|
19
|
+
const reducing = isLong ? !isBuyer : isBuyer;
|
|
20
|
+
if (!reducing) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const absStart = start.abs();
|
|
24
|
+
const fill = new big_js_1.default(fillSize);
|
|
25
|
+
const closedSize = fill.gt(absStart) ? absStart : fill;
|
|
26
|
+
const avgEntry = new big_js_1.default(entryQuoteBefore).abs().div(absStart);
|
|
27
|
+
const price = new big_js_1.default(fillPrice);
|
|
28
|
+
const pnl = isLong
|
|
29
|
+
? price.minus(avgEntry).times(closedSize)
|
|
30
|
+
: avgEntry.minus(price).times(closedSize);
|
|
31
|
+
return pnl.eq(0) ? null : pnl.toString();
|
|
32
|
+
};
|
|
33
|
+
const mapFill = (trade, accountIndex, market) => {
|
|
34
|
+
const isBuyer = trade.bid_account_id === accountIndex;
|
|
35
|
+
const isMaker = (trade.is_maker_ask && !isBuyer) || (!trade.is_maker_ask && isBuyer);
|
|
36
|
+
const startPosition = isMaker
|
|
37
|
+
? trade.maker_position_size_before
|
|
38
|
+
: trade.taker_position_size_before;
|
|
39
|
+
const entryQuoteBefore = isMaker
|
|
40
|
+
? trade.maker_entry_quote_before
|
|
41
|
+
: trade.taker_entry_quote_before;
|
|
42
|
+
return {
|
|
43
|
+
id: trade.trade_id.toString(),
|
|
44
|
+
orderId: String(isBuyer ? trade.bid_id : trade.ask_id),
|
|
45
|
+
market,
|
|
46
|
+
side: isBuyer ? perps_types_1.OrderSide.BUY : perps_types_1.OrderSide.SELL,
|
|
47
|
+
type: perps_types_1.OrderType.LIMIT,
|
|
48
|
+
size: trade.size,
|
|
49
|
+
price: trade.price,
|
|
50
|
+
status: perps_types_1.FillStatus.FILLED,
|
|
51
|
+
liquidity: isMaker ? perps_types_1.LiquidityRole.MAKER : perps_types_1.LiquidityRole.TAKER,
|
|
52
|
+
fee: isMaker ? trade.maker_fee?.toString() : trade.taker_fee?.toString(),
|
|
53
|
+
realizedPnl: deriveRealizedPnl(startPosition, entryQuoteBefore, trade.size, trade.price, isBuyer),
|
|
54
|
+
startPosition,
|
|
55
|
+
classification: (0, perps_sdk_1.classifyFillFromPosition)(startPosition, isBuyer ? 'B' : 'A', trade.size),
|
|
56
|
+
createdAt: new Date(trade.timestamp).toISOString(),
|
|
57
|
+
explorerLink: (0, perps_sdk_1.explorerTxUrl)(perps_sdk_1.ExplorerChainId.LIGHTER, trade.tx_hash),
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
exports.mapFill = mapFill;
|
|
61
|
+
//# sourceMappingURL=mapFill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapFill.js","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MarketDisplay, Position } from '@lifi/perps-types';
|
|
2
|
+
import type { LtAccountPosition } from '../types/index.js';
|
|
3
|
+
export declare const mapOpenPositions: (positions: LtAccountPosition[], resolveMarket: (marketId: number) => MarketDisplay) => Position[];
|
|
4
|
+
//# sourceMappingURL=mapOpenPositions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapOpenPositions.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAU1D,eAAO,MAAM,gBAAgB,GAC3B,WAAW,iBAAiB,EAAE,EAC9B,eAAe,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa,KACjD,QAAQ,EAGgD,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapOpenPositions = void 0;
|
|
4
|
+
const mapPosition_js_1 = require("./mapPosition.js");
|
|
5
|
+
const mapOpenPositions = (positions, resolveMarket) => positions
|
|
6
|
+
.filter((p) => Number.parseFloat(p.position) !== 0)
|
|
7
|
+
.map((p) => (0, mapPosition_js_1.mapPosition)(p, resolveMarket(p.market_id)));
|
|
8
|
+
exports.mapOpenPositions = mapOpenPositions;
|
|
9
|
+
//# sourceMappingURL=mapOpenPositions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapOpenPositions.js","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":";;;AAEA,qDAA8C;AASvC,MAAM,gBAAgB,GAAG,CAC9B,SAA8B,EAC9B,aAAkD,EACtC,EAAE,CACd,SAAS;KACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,4BAAW,EAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAN9C,QAAA,gBAAgB,oBAM8B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MarketDisplay, OpenOrder, Order, TriggerOrder } from '@lifi/perps-types';
|
|
2
|
+
import { OrderType } from '@lifi/perps-types';
|
|
3
|
+
import type { LtOrder } from '../types/index.js';
|
|
4
|
+
export declare const mapStatusReason: (status: string) => string | undefined;
|
|
5
|
+
export declare const isTriggerType: (type: OrderType) => boolean;
|
|
6
|
+
export declare const isTriggerOrder: (raw: LtOrder) => boolean;
|
|
7
|
+
export declare const mapTriggerOrder: (order: LtOrder, market: MarketDisplay) => TriggerOrder;
|
|
8
|
+
export declare const mapOrder: (order: LtOrder, market: MarketDisplay) => OpenOrder;
|
|
9
|
+
export declare const classifyAndMapOrders: (orders: LtOrder[], resolveMarket: (marketIndex: number) => MarketDisplay | undefined) => {
|
|
10
|
+
openOrders: OpenOrder[];
|
|
11
|
+
triggerOrders: TriggerOrder[];
|
|
12
|
+
terminated: string[];
|
|
13
|
+
};
|
|
14
|
+
export declare const mapOrderDetail: (order: LtOrder, market: MarketDisplay) => Order;
|
|
15
|
+
//# sourceMappingURL=mapOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,KAAK,EACL,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAyDhD,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SA+BzD,CAAA;AASD,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,KAAG,OAIjB,CAAA;AAmB/B,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,OAY7C,CAAA;AASD,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,YAkBF,CAAA;AAOD,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,EAAE,QAAQ,aAAa,KAAG,SAU/D,CAAA;AAYF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,OAAO,EAAE,EACjB,eAAe,CAAC,WAAW,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KAChE;IACD,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAA;CAsBrB,CAAA;AAOD,eAAO,MAAM,cAAc,GACzB,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,KAeD,CAAA"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapOrderDetail = exports.classifyAndMapOrders = exports.mapOrder = exports.mapTriggerOrder = exports.isTriggerOrder = exports.isTriggerType = exports.mapStatusReason = void 0;
|
|
4
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
6
|
+
const mapOrderType = (ltType) => {
|
|
7
|
+
const normalized = ltType.replace(/-/g, '_');
|
|
8
|
+
const map = {
|
|
9
|
+
limit: perps_types_1.OrderType.LIMIT,
|
|
10
|
+
market: perps_types_1.OrderType.MARKET,
|
|
11
|
+
stop_loss: perps_types_1.OrderType.STOP_MARKET,
|
|
12
|
+
stop_loss_limit: perps_types_1.OrderType.STOP_LIMIT,
|
|
13
|
+
take_profit: perps_types_1.OrderType.TAKE_PROFIT_MARKET,
|
|
14
|
+
take_profit_limit: perps_types_1.OrderType.TAKE_PROFIT_LIMIT,
|
|
15
|
+
};
|
|
16
|
+
return map[normalized] ?? perps_types_1.OrderType.LIMIT;
|
|
17
|
+
};
|
|
18
|
+
const mapTimeInForce = (tif) => {
|
|
19
|
+
switch (tif.replace(/-/g, '_')) {
|
|
20
|
+
case 'good_till_time':
|
|
21
|
+
return perps_types_1.TimeInForce.GTT;
|
|
22
|
+
case 'immediate_or_cancel':
|
|
23
|
+
return perps_types_1.TimeInForce.IOC;
|
|
24
|
+
case 'post_only':
|
|
25
|
+
return perps_types_1.TimeInForce.POST_ONLY;
|
|
26
|
+
default:
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const mapOrderStatus = (status) => {
|
|
31
|
+
if (status === 'open' ||
|
|
32
|
+
status === 'in-progress' ||
|
|
33
|
+
status === 'in_progress') {
|
|
34
|
+
return perps_types_1.OrderStatus.OPEN;
|
|
35
|
+
}
|
|
36
|
+
if (status === 'pending') {
|
|
37
|
+
return perps_types_1.OrderStatus.PENDING;
|
|
38
|
+
}
|
|
39
|
+
if (status === 'filled') {
|
|
40
|
+
return perps_types_1.OrderStatus.FILLED;
|
|
41
|
+
}
|
|
42
|
+
if (status.startsWith('canceled')) {
|
|
43
|
+
return perps_types_1.OrderStatus.CANCELLED;
|
|
44
|
+
}
|
|
45
|
+
return perps_types_1.OrderStatus.OPEN;
|
|
46
|
+
};
|
|
47
|
+
const mapStatusReason = (status) => {
|
|
48
|
+
switch (status) {
|
|
49
|
+
case 'canceled':
|
|
50
|
+
return 'Order cancelled.';
|
|
51
|
+
case 'canceled-post-only':
|
|
52
|
+
return 'Order cancelled: post-only order would have crossed the book.';
|
|
53
|
+
case 'canceled-reduce-only':
|
|
54
|
+
return 'Order cancelled: would not reduce your position.';
|
|
55
|
+
case 'canceled-position-not-allowed':
|
|
56
|
+
return 'Order cancelled: position not allowed.';
|
|
57
|
+
case 'canceled-margin-not-allowed':
|
|
58
|
+
return 'Order cancelled: insufficient margin.';
|
|
59
|
+
case 'canceled-too-much-slippage':
|
|
60
|
+
return 'Order cancelled: slippage exceeded tolerance.';
|
|
61
|
+
case 'canceled-not-enough-liquidity':
|
|
62
|
+
return 'Order cancelled: not enough liquidity to fill.';
|
|
63
|
+
case 'canceled-self-trade':
|
|
64
|
+
return 'Order cancelled: would self-trade against your own resting order.';
|
|
65
|
+
case 'canceled-expired':
|
|
66
|
+
return 'Order expired.';
|
|
67
|
+
case 'canceled-oco':
|
|
68
|
+
return 'Order cancelled: sibling OCO order filled or cancelled first.';
|
|
69
|
+
case 'canceled-child':
|
|
70
|
+
return 'Order cancelled: parent order was cancelled.';
|
|
71
|
+
case 'canceled-liquidation':
|
|
72
|
+
return 'Order cancelled: account was liquidated.';
|
|
73
|
+
case 'canceled-invalid-balance':
|
|
74
|
+
return 'Order cancelled: invalid balance.';
|
|
75
|
+
default:
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
exports.mapStatusReason = mapStatusReason;
|
|
80
|
+
const isTriggerType = (type) => type === perps_types_1.OrderType.TAKE_PROFIT_MARKET ||
|
|
81
|
+
type === perps_types_1.OrderType.TAKE_PROFIT_LIMIT ||
|
|
82
|
+
type === perps_types_1.OrderType.STOP_MARKET ||
|
|
83
|
+
type === perps_types_1.OrderType.STOP_LIMIT;
|
|
84
|
+
exports.isTriggerType = isTriggerType;
|
|
85
|
+
const isTriggerOrder = (raw) => {
|
|
86
|
+
if (raw.trigger_status === 'ready' ||
|
|
87
|
+
raw.trigger_status === 'mark-price' ||
|
|
88
|
+
raw.trigger_status === 'parent-order') {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
if (raw.trigger_price !== '' && parseFloat(raw.trigger_price) > 0) {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
return (0, exports.isTriggerType)(mapOrderType(raw.type));
|
|
95
|
+
};
|
|
96
|
+
exports.isTriggerOrder = isTriggerOrder;
|
|
97
|
+
const mapTriggerOrder = (order, market) => {
|
|
98
|
+
const type = mapOrderType(order.type);
|
|
99
|
+
const isLimit = type === perps_types_1.OrderType.TAKE_PROFIT_LIMIT || type === perps_types_1.OrderType.STOP_LIMIT;
|
|
100
|
+
return {
|
|
101
|
+
orderId: String(order.order_index),
|
|
102
|
+
market,
|
|
103
|
+
type,
|
|
104
|
+
size: order.initial_base_amount,
|
|
105
|
+
triggerPrice: order.trigger_price,
|
|
106
|
+
...(isLimit ? { limitPrice: order.price } : {}),
|
|
107
|
+
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
exports.mapTriggerOrder = mapTriggerOrder;
|
|
111
|
+
const mapOrder = (order, market) => ({
|
|
112
|
+
orderId: String(order.order_index),
|
|
113
|
+
market,
|
|
114
|
+
side: order.is_ask ? perps_types_1.OrderSide.SELL : perps_types_1.OrderSide.BUY,
|
|
115
|
+
type: mapOrderType(order.type),
|
|
116
|
+
size: order.initial_base_amount,
|
|
117
|
+
price: order.price,
|
|
118
|
+
filledSize: order.filled_base_amount,
|
|
119
|
+
reduceOnly: order.reduce_only,
|
|
120
|
+
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
121
|
+
});
|
|
122
|
+
exports.mapOrder = mapOrder;
|
|
123
|
+
const classifyAndMapOrders = (orders, resolveMarket) => {
|
|
124
|
+
const openOrders = [];
|
|
125
|
+
const triggerOrders = [];
|
|
126
|
+
const terminated = [];
|
|
127
|
+
for (const raw of orders) {
|
|
128
|
+
const orderId = String(raw.order_index);
|
|
129
|
+
if (!(0, perps_sdk_1.isActiveOrderStatus)(mapOrderStatus(raw.status))) {
|
|
130
|
+
terminated.push(orderId);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const market = resolveMarket(raw.market_index);
|
|
134
|
+
if (market === undefined) {
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
if ((0, exports.isTriggerOrder)(raw)) {
|
|
138
|
+
triggerOrders.push((0, exports.mapTriggerOrder)(raw, market));
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
openOrders.push((0, exports.mapOrder)(raw, market));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return { openOrders, triggerOrders, terminated };
|
|
145
|
+
};
|
|
146
|
+
exports.classifyAndMapOrders = classifyAndMapOrders;
|
|
147
|
+
const mapOrderDetail = (order, market) => ({
|
|
148
|
+
orderId: String(order.order_index),
|
|
149
|
+
market,
|
|
150
|
+
side: order.is_ask ? perps_types_1.OrderSide.SELL : perps_types_1.OrderSide.BUY,
|
|
151
|
+
type: mapOrderType(order.type),
|
|
152
|
+
price: order.price,
|
|
153
|
+
originalSize: order.initial_base_amount,
|
|
154
|
+
remainingSize: order.remaining_base_amount,
|
|
155
|
+
filledSize: order.filled_base_amount,
|
|
156
|
+
timeInForce: mapTimeInForce(order.time_in_force),
|
|
157
|
+
reduceOnly: order.reduce_only,
|
|
158
|
+
status: mapOrderStatus(order.status),
|
|
159
|
+
statusReason: (0, exports.mapStatusReason)(order.status),
|
|
160
|
+
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
161
|
+
updatedAt: new Date(order.updated_at * 1000).toISOString(),
|
|
162
|
+
});
|
|
163
|
+
exports.mapOrderDetail = mapOrderDetail;
|
|
164
|
+
//# 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 @@
|
|
|
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;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQ1D,eAAO,MAAM,WAAW,GACtB,KAAK,iBAAiB,EACtB,QAAQ,aAAa,KACpB,QA4BF,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapPosition = void 0;
|
|
4
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
5
|
+
const index_js_1 = require("../types/index.js");
|
|
6
|
+
const mapPosition = (pos, market) => {
|
|
7
|
+
const size = parseFloat(pos.position);
|
|
8
|
+
const isIsolated = pos.margin_mode === index_js_1.LT_MARGIN_MODE_ISOLATED;
|
|
9
|
+
const positionValue = Math.abs(parseFloat(pos.position_value));
|
|
10
|
+
const imf = parseFloat(pos.initial_margin_fraction);
|
|
11
|
+
const marginUsed = isIsolated
|
|
12
|
+
? pos.allocated_margin
|
|
13
|
+
: ((positionValue * imf) / 100).toString();
|
|
14
|
+
return {
|
|
15
|
+
market,
|
|
16
|
+
side: pos.sign >= 0 ? perps_types_1.PositionSide.LONG : perps_types_1.PositionSide.SHORT,
|
|
17
|
+
size: Math.abs(size).toString(),
|
|
18
|
+
entryPrice: pos.avg_entry_price,
|
|
19
|
+
markPrice: pos.position_value === '0' || size === 0
|
|
20
|
+
? '0'
|
|
21
|
+
: (parseFloat(pos.position_value) / Math.abs(size)).toString(),
|
|
22
|
+
liquidationPrice: pos.liquidation_price,
|
|
23
|
+
unrealizedPnl: pos.unrealized_pnl,
|
|
24
|
+
leverage: imf > 0 ? Math.round(100 / imf) : 1,
|
|
25
|
+
marginUsed,
|
|
26
|
+
marginMode: isIsolated ? perps_types_1.MarginMode.ISOLATED : perps_types_1.MarginMode.CROSS,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
exports.mapPosition = mapPosition;
|
|
30
|
+
//# sourceMappingURL=mapPosition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapPosition.js","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":";;;AACA,mDAA4D;AAE5D,gDAA2D;AAOpD,MAAM,WAAW,GAAG,CACzB,GAAsB,EACtB,MAAqB,EACX,EAAE;IACZ,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,KAAK,kCAAuB,CAAA;IAK9D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;IAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,UAAU;QAC3B,CAAC,CAAC,GAAG,CAAC,gBAAgB;QACtB,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;IAE5C,OAAO;QACL,MAAM;QACN,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,0BAAY,CAAC,IAAI,CAAC,CAAC,CAAC,0BAAY,CAAC,KAAK;QAC5D,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC/B,UAAU,EAAE,GAAG,CAAC,eAAe;QAC/B,SAAS,EACP,GAAG,CAAC,cAAc,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC;YACtC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClE,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,UAAU;QACV,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,wBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAU,CAAC,KAAK;KAChE,CAAA;AACH,CAAC,CAAA;AA/BY,QAAA,WAAW,eA+BvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ohlcvInterval.d.ts","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,KAAG,MAU9C,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapInterval = void 0;
|
|
4
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
6
|
+
const LIGHTER_SUPPORTED_INTERVALS = {
|
|
7
|
+
'1m': '1m',
|
|
8
|
+
'5m': '5m',
|
|
9
|
+
'15m': '15m',
|
|
10
|
+
'30m': '30m',
|
|
11
|
+
'1h': '1h',
|
|
12
|
+
'4h': '4h',
|
|
13
|
+
'12h': '12h',
|
|
14
|
+
'1d': '1d',
|
|
15
|
+
'1w': '1w',
|
|
16
|
+
};
|
|
17
|
+
const mapInterval = (interval) => {
|
|
18
|
+
const resolution = LIGHTER_SUPPORTED_INTERVALS[interval];
|
|
19
|
+
if (!resolution) {
|
|
20
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Lighter does not support OHLCV interval '${interval}'. ` +
|
|
21
|
+
`Supported: ${Object.keys(LIGHTER_SUPPORTED_INTERVALS).join(', ')}.`);
|
|
22
|
+
}
|
|
23
|
+
return resolution;
|
|
24
|
+
};
|
|
25
|
+
exports.mapInterval = mapInterval;
|
|
26
|
+
//# sourceMappingURL=ohlcvInterval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ohlcvInterval.js","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,mDAAkD;AASlD,MAAM,2BAA2B,GAA2B;IAC1D,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACX,CAAA;AAGM,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAU,EAAE;IACtD,MAAM,UAAU,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IACxD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,4CAA4C,QAAQ,KAAK;YACvD,cAAc,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACvE,CAAA;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAVY,QAAA,WAAW,eAUvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAA;AAY/D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUtE;AAUD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
function formatOrderPrice(market, price) {
|
|
12
|
+
if (market.priceDecimals === undefined) {
|
|
13
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Market '${market.id}' carries no priceDecimals; Lighter order prices ` +
|
|
14
|
+
`cannot be formatted without the market's tick grid.`);
|
|
15
|
+
}
|
|
16
|
+
const rounded = new big_js_1.default(price).round(market.priceDecimals, big_js_1.default.roundHalfUp);
|
|
17
|
+
return rounded.eq(0) ? '0' : rounded.toFixed();
|
|
18
|
+
}
|
|
19
|
+
function formatOrderSize(market, size) {
|
|
20
|
+
const truncated = new big_js_1.default(size).round(market.szDecimals, big_js_1.default.roundDown);
|
|
21
|
+
return truncated.eq(0) ? '0' : truncated.toFixed();
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=orderFormatting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderFormatting.js","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":";;;;;AAsBA,4CAUC;AAUD,0CAGC;AApCD,+CAA4C;AAC5C,mDAA+D;AAC/D,oDAAwB;AAWxB,SAAgB,gBAAgB,CAAC,MAAc,EAAE,KAAa;IAC5D,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,eAAe,EAC9B,WAAW,MAAM,CAAC,EAAE,mDAAmD;YACrE,qDAAqD,CACxD,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,gBAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAG,CAAC,WAAW,CAAC,CAAA;IAC3E,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAChD,CAAC;AAUD,SAAgB,eAAe,CAAC,MAAc,EAAE,IAAY;IAC1D,MAAM,SAAS,GAAG,IAAI,gBAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAG,CAAC,SAAS,CAAC,CAAA;IACvE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../src/utils/time.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MACX,CAAA;AAGxC,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,MAAoC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toIsoFromMs = exports.toIsoFromSeconds = void 0;
|
|
4
|
+
const toIsoFromSeconds = (seconds) => new Date(seconds * 1000).toISOString();
|
|
5
|
+
exports.toIsoFromSeconds = toIsoFromSeconds;
|
|
6
|
+
const toIsoFromMs = (ms) => new Date(ms).toISOString();
|
|
7
|
+
exports.toIsoFromMs = toIsoFromMs;
|
|
8
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../../src/utils/time.ts"],"names":[],"mappings":";;;AACO,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAU,EAAE,CAC1D,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AAD3B,QAAA,gBAAgB,oBACW;AAGjC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AAAhE,QAAA,WAAW,eAAqD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const marginFractionToMaxLeverage: (fraction: number) => number;
|
|
2
|
+
export declare const leverageToFraction: (leverage: number) => number;
|
|
3
|
+
export type ScaleToIntegerPolicy = 'truncate' | 'round';
|
|
4
|
+
export declare const scaleToInteger: (value: string, decimals: number, policy: ScaleToIntegerPolicy) => number;
|
|
5
|
+
export declare const mapOrderTypeToInt: (type?: string) => number;
|
|
6
|
+
export declare const resolveTimeInForce: (orderTypeInt: number, tif?: string) => number;
|
|
7
|
+
export declare const mapTimeInForceToInt: (tif?: string) => number;
|
|
8
|
+
export declare const orderExpiryForTif: (tifInt: number) => number;
|
|
9
|
+
//# sourceMappingURL=wireEncoding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wireEncoding.d.ts","sourceRoot":"","sources":["../../../src/utils/wireEncoding.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,MAK9D,CAAA;AAMD,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,MAQrD,CAAA;AAUD,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,OAAO,CAAA;AAcvD,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,UAAU,MAAM,EAChB,QAAQ,oBAAoB,KAC3B,MA0BF,CAAA;AAMD,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,MAUjD,CAAA;AAYD,eAAO,MAAM,kBAAkB,GAC7B,cAAc,MAAM,EACpB,MAAM,MAAM,KACX,MAgBF,CAAA;AAMD,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,MAOlD,CAAA;AAaD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MAKlD,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
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.orderExpiryForTif = exports.mapTimeInForceToInt = exports.resolveTimeInForce = exports.mapOrderTypeToInt = exports.scaleToInteger = exports.leverageToFraction = exports.marginFractionToMaxLeverage = void 0;
|
|
7
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
8
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
9
|
+
const big_js_1 = __importDefault(require("big.js"));
|
|
10
|
+
const action_js_1 = require("../types/action.js");
|
|
11
|
+
const marginFractionToMaxLeverage = (fraction) => {
|
|
12
|
+
if (!Number.isFinite(fraction) || fraction <= 0) {
|
|
13
|
+
return 1;
|
|
14
|
+
}
|
|
15
|
+
return Math.floor(10_000 / fraction);
|
|
16
|
+
};
|
|
17
|
+
exports.marginFractionToMaxLeverage = marginFractionToMaxLeverage;
|
|
18
|
+
const leverageToFraction = (leverage) => {
|
|
19
|
+
if (leverage <= 0) {
|
|
20
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid leverage: ${leverage}`);
|
|
21
|
+
}
|
|
22
|
+
return Math.round(10_000 / leverage);
|
|
23
|
+
};
|
|
24
|
+
exports.leverageToFraction = leverageToFraction;
|
|
25
|
+
const scaleToInteger = (value, decimals, policy) => {
|
|
26
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
27
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimals for Lighter integer scaling: ${decimals}`);
|
|
28
|
+
}
|
|
29
|
+
let parsed;
|
|
30
|
+
try {
|
|
31
|
+
parsed = new big_js_1.default(value);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Invalid decimal string for Lighter integer scaling: '${value}'`);
|
|
35
|
+
}
|
|
36
|
+
const scaled = parsed
|
|
37
|
+
.times(new big_js_1.default(10).pow(decimals))
|
|
38
|
+
.round(0, policy === 'truncate' ? big_js_1.default.roundDown : big_js_1.default.roundHalfUp);
|
|
39
|
+
if (scaled.abs().gt(Number.MAX_SAFE_INTEGER)) {
|
|
40
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Scaled value ${scaled.toFixed()} exceeds Number.MAX_SAFE_INTEGER and cannot be encoded exactly.`);
|
|
41
|
+
}
|
|
42
|
+
return scaled.toNumber();
|
|
43
|
+
};
|
|
44
|
+
exports.scaleToInteger = scaleToInteger;
|
|
45
|
+
const mapOrderTypeToInt = (type) => {
|
|
46
|
+
const map = {
|
|
47
|
+
LIMIT: action_js_1.LT_ORDER_TYPE_LIMIT,
|
|
48
|
+
MARKET: action_js_1.LT_ORDER_TYPE_MARKET,
|
|
49
|
+
STOP_MARKET: action_js_1.LT_ORDER_TYPE_STOP_LOSS,
|
|
50
|
+
STOP_LIMIT: action_js_1.LT_ORDER_TYPE_STOP_LOSS_LIMIT,
|
|
51
|
+
TAKE_PROFIT_MARKET: action_js_1.LT_ORDER_TYPE_TAKE_PROFIT,
|
|
52
|
+
TAKE_PROFIT_LIMIT: action_js_1.LT_ORDER_TYPE_TAKE_PROFIT_LIMIT,
|
|
53
|
+
};
|
|
54
|
+
return map[type ?? 'LIMIT'] ?? action_js_1.LT_ORDER_TYPE_LIMIT;
|
|
55
|
+
};
|
|
56
|
+
exports.mapOrderTypeToInt = mapOrderTypeToInt;
|
|
57
|
+
const resolveTimeInForce = (orderTypeInt, tif) => {
|
|
58
|
+
const requested = tif === undefined ? undefined : (0, exports.mapTimeInForceToInt)(tif);
|
|
59
|
+
const isMarketStyle = orderTypeInt === action_js_1.LT_ORDER_TYPE_MARKET ||
|
|
60
|
+
orderTypeInt === action_js_1.LT_ORDER_TYPE_STOP_LOSS ||
|
|
61
|
+
orderTypeInt === action_js_1.LT_ORDER_TYPE_TAKE_PROFIT;
|
|
62
|
+
if (isMarketStyle) {
|
|
63
|
+
if (requested !== undefined && requested !== action_js_1.LT_TIME_IN_FORCE_IOC) {
|
|
64
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Lighter market-style orders only accept IOC (got tif=${tif}).`);
|
|
65
|
+
}
|
|
66
|
+
return action_js_1.LT_TIME_IN_FORCE_IOC;
|
|
67
|
+
}
|
|
68
|
+
return requested ?? action_js_1.LT_TIME_IN_FORCE_GTC;
|
|
69
|
+
};
|
|
70
|
+
exports.resolveTimeInForce = resolveTimeInForce;
|
|
71
|
+
const mapTimeInForceToInt = (tif) => {
|
|
72
|
+
const map = {
|
|
73
|
+
IOC: action_js_1.LT_TIME_IN_FORCE_IOC,
|
|
74
|
+
GTC: action_js_1.LT_TIME_IN_FORCE_GTC,
|
|
75
|
+
POST_ONLY: action_js_1.LT_TIME_IN_FORCE_POST_ONLY,
|
|
76
|
+
};
|
|
77
|
+
return map[tif ?? 'GTC'] ?? action_js_1.LT_TIME_IN_FORCE_GTC;
|
|
78
|
+
};
|
|
79
|
+
exports.mapTimeInForceToInt = mapTimeInForceToInt;
|
|
80
|
+
const orderExpiryForTif = (tifInt) => {
|
|
81
|
+
if (tifInt === action_js_1.LT_TIME_IN_FORCE_IOC) {
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
return action_js_1.LT_DEFAULT_ORDER_EXPIRY;
|
|
85
|
+
};
|
|
86
|
+
exports.orderExpiryForTif = orderExpiryForTif;
|
|
87
|
+
//# sourceMappingURL=wireEncoding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wireEncoding.js","sourceRoot":"","sources":["../../../src/utils/wireEncoding.ts"],"names":[],"mappings":"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"}
|