@lifi/perps-sdk 0.1.1-alpha.9 → 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/README.md +38 -15
- package/dist/cjs/agent/AgentManager.d.ts +5 -5
- package/dist/cjs/agent/AgentManager.d.ts.map +1 -1
- package/dist/cjs/agent/AgentManager.js +16 -14
- package/dist/cjs/agent/AgentManager.js.map +1 -1
- package/dist/cjs/client/PerpsClient.d.ts +75 -21
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +642 -173
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/client/createPerpsClient.d.ts +15 -2
- package/dist/cjs/client/createPerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/createPerpsClient.js +6 -3
- package/dist/cjs/client/createPerpsClient.js.map +1 -1
- package/dist/cjs/client/projectAccountConfigSettings.d.ts +3 -0
- package/dist/cjs/client/projectAccountConfigSettings.d.ts.map +1 -0
- package/dist/cjs/client/projectAccountConfigSettings.js +17 -0
- package/dist/cjs/client/projectAccountConfigSettings.js.map +1 -0
- package/dist/cjs/client/types.d.ts +49 -26
- package/dist/cjs/client/types.d.ts.map +1 -1
- package/dist/cjs/client/types.js +6 -0
- package/dist/cjs/client/types.js.map +1 -1
- package/dist/cjs/errors/PerpsError.d.ts +2 -3
- package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
- package/dist/cjs/errors/PerpsError.js +3 -15
- package/dist/cjs/errors/PerpsError.js.map +1 -1
- package/dist/cjs/errors/constants.d.ts +0 -10
- package/dist/cjs/errors/constants.d.ts.map +1 -1
- package/dist/cjs/errors/constants.js +1 -12
- package/dist/cjs/errors/constants.js.map +1 -1
- package/dist/cjs/index.d.ts +37 -31
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +87 -42
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/hyperliquid/accountConfig.d.ts +3 -0
- package/dist/cjs/providers/hyperliquid/accountConfig.d.ts.map +1 -0
- package/dist/cjs/providers/hyperliquid/accountConfig.js +41 -0
- package/dist/cjs/providers/hyperliquid/accountConfig.js.map +1 -0
- package/dist/cjs/providers/lighter/accountConfig.d.ts +3 -0
- package/dist/cjs/providers/lighter/accountConfig.d.ts.map +1 -0
- package/dist/cjs/providers/lighter/accountConfig.js +45 -0
- package/dist/cjs/providers/lighter/accountConfig.js.map +1 -0
- package/dist/cjs/realtime/PerpsWsClient.d.ts +7 -1
- package/dist/cjs/realtime/PerpsWsClient.d.ts.map +1 -1
- package/dist/cjs/realtime/PerpsWsClient.js +36 -23
- package/dist/cjs/realtime/PerpsWsClient.js.map +1 -1
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts +9 -5
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js +158 -52
- package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js.map +1 -1
- package/dist/cjs/realtime/hyperliquid/types.d.ts +11 -9
- package/dist/cjs/realtime/hyperliquid/types.d.ts.map +1 -1
- package/dist/cjs/realtime/lighter/LighterWsProvider.d.ts +48 -0
- package/dist/cjs/realtime/lighter/LighterWsProvider.d.ts.map +1 -0
- package/dist/cjs/realtime/lighter/LighterWsProvider.js +424 -0
- package/dist/cjs/realtime/lighter/LighterWsProvider.js.map +1 -0
- package/dist/cjs/realtime/lighter/types.d.ts +84 -0
- package/dist/cjs/realtime/lighter/types.d.ts.map +1 -0
- package/dist/cjs/{dex → realtime/lighter}/types.js.map +1 -1
- package/dist/cjs/services/createAction.d.ts +11 -0
- package/dist/cjs/services/createAction.d.ts.map +1 -0
- package/dist/cjs/services/{submitAuthorization.js → createAction.js} +7 -6
- package/dist/cjs/services/createAction.js.map +1 -0
- package/dist/cjs/services/executeAction.d.ts +11 -0
- package/dist/cjs/services/executeAction.d.ts.map +1 -0
- package/dist/cjs/services/{submitOrder.js → executeAction.js} +6 -5
- package/dist/cjs/services/executeAction.js.map +1 -0
- package/dist/cjs/services/getAccount.d.ts +1 -1
- package/dist/cjs/services/getAccount.d.ts.map +1 -1
- package/dist/cjs/services/getAccount.js +1 -1
- package/dist/cjs/services/getAccount.js.map +1 -1
- package/dist/cjs/services/getActivity.d.ts +13 -0
- package/dist/cjs/services/getActivity.d.ts.map +1 -0
- package/dist/cjs/services/getActivity.js +21 -0
- package/dist/cjs/services/getActivity.js.map +1 -0
- package/dist/cjs/services/getAsset.d.ts +8 -0
- package/dist/cjs/services/getAsset.d.ts.map +1 -0
- package/dist/cjs/services/{getMarkets.js → getAsset.js} +6 -4
- package/dist/cjs/services/getAsset.js.map +1 -0
- package/dist/cjs/services/getAssets.d.ts +7 -0
- package/dist/cjs/services/getAssets.d.ts.map +1 -0
- package/dist/cjs/services/{getMarket.js → getAssets.js} +5 -5
- package/dist/cjs/services/getAssets.js.map +1 -0
- package/dist/cjs/services/getFills.d.ts +12 -0
- package/dist/cjs/services/getFills.d.ts.map +1 -0
- package/dist/cjs/services/{getHistory.js → getFills.js} +7 -5
- package/dist/cjs/services/getFills.js.map +1 -0
- package/dist/cjs/services/getOhlcv.d.ts +1 -1
- package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
- package/dist/cjs/services/getOhlcv.js +2 -2
- package/dist/cjs/services/getOhlcv.js.map +1 -1
- package/dist/cjs/services/getOrder.d.ts +1 -1
- package/dist/cjs/services/getOrder.d.ts.map +1 -1
- package/dist/cjs/services/getOrder.js +2 -2
- package/dist/cjs/services/getOrder.js.map +1 -1
- package/dist/cjs/services/getOrderbook.d.ts +1 -1
- package/dist/cjs/services/getOrderbook.d.ts.map +1 -1
- package/dist/cjs/services/getOrderbook.js +2 -2
- package/dist/cjs/services/getOrderbook.js.map +1 -1
- package/dist/cjs/services/getOrders.d.ts +11 -0
- package/dist/cjs/services/getOrders.d.ts.map +1 -0
- package/dist/cjs/services/getOrders.js +15 -0
- package/dist/cjs/services/getOrders.js.map +1 -0
- package/dist/cjs/services/getPositions.d.ts +11 -0
- package/dist/cjs/services/getPositions.d.ts.map +1 -0
- package/dist/cjs/services/getPositions.js +15 -0
- package/dist/cjs/services/getPositions.js.map +1 -0
- package/dist/cjs/services/getPrices.d.ts +1 -1
- package/dist/cjs/services/getPrices.d.ts.map +1 -1
- package/dist/cjs/services/getPrices.js +1 -1
- package/dist/cjs/services/getPrices.js.map +1 -1
- package/dist/cjs/services/getProviders.d.ts +4 -0
- package/dist/cjs/services/getProviders.d.ts.map +1 -0
- package/dist/cjs/services/{getDexes.js → getProviders.js} +4 -4
- package/dist/cjs/services/getProviders.js.map +1 -0
- package/dist/cjs/signers/lighter/LighterKeyStore.d.ts +20 -0
- package/dist/cjs/signers/lighter/LighterKeyStore.d.ts.map +1 -0
- package/dist/cjs/signers/lighter/LighterKeyStore.js +42 -0
- package/dist/cjs/signers/lighter/LighterKeyStore.js.map +1 -0
- package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.d.ts +66 -0
- package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.js +141 -0
- package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.js.map +1 -0
- package/dist/cjs/signers/lighter/LighterSigner.d.ts +41 -0
- package/dist/cjs/signers/lighter/LighterSigner.d.ts.map +1 -0
- package/dist/cjs/signers/lighter/LighterSigner.js +176 -0
- package/dist/cjs/signers/lighter/LighterSigner.js.map +1 -0
- package/dist/cjs/signers/lighter/index.d.ts +9 -0
- package/dist/cjs/signers/lighter/index.d.ts.map +1 -0
- package/dist/cjs/signers/lighter/index.js +20 -0
- package/dist/cjs/signers/lighter/index.js.map +1 -0
- package/dist/cjs/signers/lighter/wasmLoader.d.ts +42 -0
- package/dist/cjs/signers/lighter/wasmLoader.d.ts.map +1 -0
- package/dist/cjs/signers/lighter/wasmLoader.js +166 -0
- package/dist/cjs/signers/lighter/wasmLoader.js.map +1 -0
- package/dist/cjs/utils/accountSummary.d.ts +9 -0
- package/dist/cjs/utils/accountSummary.d.ts.map +1 -0
- package/dist/cjs/utils/accountSummary.js +83 -0
- package/dist/cjs/utils/accountSummary.js.map +1 -0
- package/dist/cjs/utils/assertNever.d.ts +2 -0
- package/dist/cjs/utils/assertNever.d.ts.map +1 -0
- package/dist/cjs/utils/assertNever.js +7 -0
- package/dist/cjs/utils/assertNever.js.map +1 -0
- package/dist/cjs/utils/calculations.d.ts +16 -0
- package/dist/cjs/utils/calculations.d.ts.map +1 -0
- package/dist/cjs/utils/calculations.js +71 -0
- package/dist/cjs/utils/calculations.js.map +1 -0
- package/dist/cjs/utils/hyperliquid/index.d.ts +3 -0
- package/dist/cjs/utils/hyperliquid/index.d.ts.map +1 -0
- package/dist/cjs/utils/hyperliquid/index.js +11 -0
- package/dist/cjs/utils/hyperliquid/index.js.map +1 -0
- package/dist/cjs/utils/hyperliquid/liquidation.d.ts +3 -0
- package/dist/cjs/utils/hyperliquid/liquidation.d.ts.map +1 -0
- package/dist/cjs/utils/hyperliquid/liquidation.js +24 -0
- package/dist/cjs/utils/hyperliquid/liquidation.js.map +1 -0
- package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts +4 -0
- package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
- package/dist/cjs/utils/hyperliquid/orderFormatting.js +33 -0
- package/dist/cjs/utils/hyperliquid/orderFormatting.js.map +1 -0
- package/dist/cjs/utils/orderClassification.d.ts +8 -0
- package/dist/cjs/utils/orderClassification.d.ts.map +1 -0
- package/dist/cjs/utils/orderClassification.js +39 -0
- package/dist/cjs/utils/orderClassification.js.map +1 -0
- package/dist/cjs/utils/orderMath.d.ts +6 -0
- package/dist/cjs/utils/orderMath.d.ts.map +1 -0
- package/dist/cjs/utils/orderMath.js +71 -0
- package/dist/cjs/utils/orderMath.js.map +1 -0
- package/dist/cjs/utils/parse.d.ts +2 -0
- package/dist/cjs/utils/parse.d.ts.map +1 -0
- package/dist/cjs/utils/parse.js +14 -0
- package/dist/cjs/utils/parse.js.map +1 -0
- package/dist/cjs/utils/positionMath.d.ts +26 -0
- package/dist/cjs/utils/positionMath.d.ts.map +1 -0
- package/dist/cjs/utils/positionMath.js +38 -0
- package/dist/cjs/utils/positionMath.js.map +1 -0
- package/dist/cjs/utils/request.d.ts.map +1 -1
- package/dist/cjs/utils/request.js +19 -4
- package/dist/cjs/utils/request.js.map +1 -1
- package/dist/cjs/utils/signTypedData.d.ts +2 -0
- package/dist/cjs/utils/signTypedData.d.ts.map +1 -1
- package/dist/cjs/utils/signTypedData.js +10 -3
- package/dist/cjs/utils/signTypedData.js.map +1 -1
- package/dist/cjs/utils/units.d.ts +3 -0
- package/dist/cjs/utils/units.d.ts.map +1 -0
- package/dist/cjs/utils/units.js +18 -0
- package/dist/cjs/utils/units.js.map +1 -0
- package/dist/cjs/utils/validation.d.ts +2 -0
- package/dist/cjs/utils/validation.d.ts.map +1 -0
- package/dist/cjs/utils/validation.js +16 -0
- package/dist/cjs/utils/validation.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wasm/lighter-signer.wasm +0 -0
- package/dist/cjs/wasm/wasm_exec.js +575 -0
- package/dist/esm/agent/AgentManager.d.ts +9 -9
- package/dist/esm/agent/AgentManager.d.ts.map +1 -1
- package/dist/esm/agent/AgentManager.js +20 -18
- package/dist/esm/agent/AgentManager.js.map +1 -1
- package/dist/esm/agent/storage.d.ts +1 -1
- package/dist/esm/agent/storage.js +1 -1
- package/dist/esm/client/PerpsClient.d.ts +226 -144
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +869 -320
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/client/createPerpsClient.d.ts +30 -51
- package/dist/esm/client/createPerpsClient.d.ts.map +1 -1
- package/dist/esm/client/createPerpsClient.js +6 -21
- package/dist/esm/client/createPerpsClient.js.map +1 -1
- package/dist/esm/client/projectAccountConfigSettings.d.ts +18 -0
- package/dist/esm/client/projectAccountConfigSettings.d.ts.map +1 -0
- package/dist/esm/client/projectAccountConfigSettings.js +29 -0
- package/dist/esm/client/projectAccountConfigSettings.js.map +1 -0
- package/dist/esm/client/types.d.ts +115 -49
- package/dist/esm/client/types.d.ts.map +1 -1
- package/dist/esm/client/types.js +11 -1
- package/dist/esm/client/types.js.map +1 -1
- package/dist/esm/errors/PerpsError.d.ts +2 -3
- package/dist/esm/errors/PerpsError.d.ts.map +1 -1
- package/dist/esm/errors/PerpsError.js +3 -15
- package/dist/esm/errors/PerpsError.js.map +1 -1
- package/dist/esm/errors/constants.d.ts +0 -10
- package/dist/esm/errors/constants.d.ts.map +1 -1
- package/dist/esm/errors/constants.js +0 -11
- package/dist/esm/errors/constants.js.map +1 -1
- package/dist/esm/index.d.ts +37 -31
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +27 -22
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/providers/hyperliquid/accountConfig.d.ts +13 -0
- package/dist/esm/providers/hyperliquid/accountConfig.d.ts.map +1 -0
- package/dist/esm/providers/hyperliquid/accountConfig.js +69 -0
- package/dist/esm/providers/hyperliquid/accountConfig.js.map +1 -0
- package/dist/esm/providers/lighter/accountConfig.d.ts +13 -0
- package/dist/esm/providers/lighter/accountConfig.d.ts.map +1 -0
- package/dist/esm/providers/lighter/accountConfig.js +79 -0
- package/dist/esm/providers/lighter/accountConfig.js.map +1 -0
- package/dist/esm/realtime/PerpsWsClient.d.ts +13 -1
- package/dist/esm/realtime/PerpsWsClient.d.ts.map +1 -1
- package/dist/esm/realtime/PerpsWsClient.js +36 -23
- package/dist/esm/realtime/PerpsWsClient.js.map +1 -1
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts +11 -5
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js +170 -53
- package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js.map +1 -1
- package/dist/esm/realtime/hyperliquid/types.d.ts +11 -9
- package/dist/esm/realtime/hyperliquid/types.d.ts.map +1 -1
- package/dist/esm/realtime/lighter/LighterWsProvider.d.ts +68 -0
- package/dist/esm/realtime/lighter/LighterWsProvider.d.ts.map +1 -0
- package/dist/esm/realtime/lighter/LighterWsProvider.js +474 -0
- package/dist/esm/realtime/lighter/LighterWsProvider.js.map +1 -0
- package/dist/esm/realtime/lighter/types.d.ts +108 -0
- package/dist/esm/realtime/lighter/types.d.ts.map +1 -0
- package/dist/esm/realtime/lighter/types.js +14 -0
- package/dist/esm/realtime/lighter/types.js.map +1 -0
- package/dist/esm/services/createAction.d.ts +11 -0
- package/dist/esm/services/createAction.d.ts.map +1 -0
- package/dist/esm/services/createAction.js +14 -0
- package/dist/esm/services/createAction.js.map +1 -0
- package/dist/esm/services/executeAction.d.ts +11 -0
- package/dist/esm/services/executeAction.d.ts.map +1 -0
- package/dist/esm/services/executeAction.js +14 -0
- package/dist/esm/services/executeAction.js.map +1 -0
- package/dist/esm/services/getAccount.d.ts +7 -7
- package/dist/esm/services/getAccount.d.ts.map +1 -1
- package/dist/esm/services/getAccount.js +6 -6
- package/dist/esm/services/getAccount.js.map +1 -1
- package/dist/esm/services/getActivity.d.ts +49 -0
- package/dist/esm/services/getActivity.d.ts.map +1 -0
- package/dist/esm/services/getActivity.js +47 -0
- package/dist/esm/services/getActivity.js.map +1 -0
- package/dist/esm/services/getAsset.d.ts +20 -0
- package/dist/esm/services/getAsset.d.ts.map +1 -0
- package/dist/esm/services/getAsset.js +18 -0
- package/dist/esm/services/getAsset.js.map +1 -0
- package/dist/esm/services/getAssets.d.ts +18 -0
- package/dist/esm/services/getAssets.d.ts.map +1 -0
- package/dist/esm/services/getAssets.js +18 -0
- package/dist/esm/services/getAssets.js.map +1 -0
- package/dist/{types/services/getHistory.d.ts → esm/services/getFills.d.ts} +17 -13
- package/dist/esm/services/getFills.d.ts.map +1 -0
- package/dist/esm/services/{getHistory.js → getFills.js} +13 -11
- package/dist/esm/services/getFills.js.map +1 -0
- package/dist/esm/services/getOhlcv.d.ts +4 -4
- package/dist/esm/services/getOhlcv.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.js +4 -4
- package/dist/esm/services/getOhlcv.js.map +1 -1
- package/dist/esm/services/getOrder.d.ts +4 -4
- package/dist/esm/services/getOrder.d.ts.map +1 -1
- package/dist/esm/services/getOrder.js +4 -4
- package/dist/esm/services/getOrder.js.map +1 -1
- package/dist/esm/services/getOrderbook.d.ts +4 -4
- package/dist/esm/services/getOrderbook.d.ts.map +1 -1
- package/dist/esm/services/getOrderbook.js +4 -4
- package/dist/esm/services/getOrderbook.js.map +1 -1
- package/dist/esm/services/getOrders.d.ts +27 -0
- package/dist/esm/services/getOrders.d.ts.map +1 -0
- package/dist/esm/services/getOrders.js +23 -0
- package/dist/esm/services/getOrders.js.map +1 -0
- package/dist/esm/services/getPositions.d.ts +27 -0
- package/dist/esm/services/getPositions.d.ts.map +1 -0
- package/dist/esm/services/getPositions.js +23 -0
- package/dist/esm/services/getPositions.js.map +1 -0
- package/dist/esm/services/getPrices.d.ts +5 -5
- package/dist/esm/services/getPrices.d.ts.map +1 -1
- package/dist/esm/services/getPrices.js +4 -4
- package/dist/esm/services/getPrices.js.map +1 -1
- package/dist/esm/services/getProviders.d.ts +20 -0
- package/dist/esm/services/getProviders.d.ts.map +1 -0
- package/dist/esm/services/getProviders.js +21 -0
- package/dist/esm/services/getProviders.js.map +1 -0
- package/dist/esm/signers/lighter/LighterKeyStore.d.ts +29 -0
- package/dist/esm/signers/lighter/LighterKeyStore.d.ts.map +1 -0
- package/dist/esm/signers/lighter/LighterKeyStore.js +53 -0
- package/dist/esm/signers/lighter/LighterKeyStore.js.map +1 -0
- package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.d.ts +174 -0
- package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.js +214 -0
- package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.js.map +1 -0
- package/dist/esm/signers/lighter/LighterSigner.d.ts +88 -0
- package/dist/esm/signers/lighter/LighterSigner.d.ts.map +1 -0
- package/dist/esm/signers/lighter/LighterSigner.js +226 -0
- package/dist/esm/signers/lighter/LighterSigner.js.map +1 -0
- package/dist/esm/signers/lighter/index.d.ts +9 -0
- package/dist/esm/signers/lighter/index.d.ts.map +1 -0
- package/dist/esm/signers/lighter/index.js +5 -0
- package/dist/esm/signers/lighter/index.js.map +1 -0
- package/dist/esm/signers/lighter/wasmLoader.d.ts +71 -0
- package/dist/esm/signers/lighter/wasmLoader.d.ts.map +1 -0
- package/dist/esm/signers/lighter/wasmLoader.js +181 -0
- package/dist/esm/signers/lighter/wasmLoader.js.map +1 -0
- package/dist/esm/utils/accountSummary.d.ts +13 -0
- package/dist/esm/utils/accountSummary.d.ts.map +1 -0
- package/dist/esm/utils/accountSummary.js +97 -0
- package/dist/esm/utils/accountSummary.js.map +1 -0
- package/dist/esm/utils/assertNever.d.ts +19 -0
- package/dist/esm/utils/assertNever.d.ts.map +1 -0
- package/dist/esm/utils/assertNever.js +21 -0
- package/dist/esm/utils/assertNever.js.map +1 -0
- package/dist/esm/utils/calculations.d.ts +109 -0
- package/dist/esm/utils/calculations.d.ts.map +1 -0
- package/dist/esm/utils/calculations.js +154 -0
- package/dist/esm/utils/calculations.js.map +1 -0
- package/dist/esm/utils/hyperliquid/index.d.ts +3 -0
- package/dist/esm/utils/hyperliquid/index.d.ts.map +1 -0
- package/dist/esm/utils/hyperliquid/index.js +3 -0
- package/dist/esm/utils/hyperliquid/index.js.map +1 -0
- package/dist/esm/utils/hyperliquid/liquidation.d.ts +46 -0
- package/dist/esm/utils/hyperliquid/liquidation.d.ts.map +1 -0
- package/dist/esm/utils/hyperliquid/liquidation.js +63 -0
- package/dist/esm/utils/hyperliquid/liquidation.js.map +1 -0
- package/dist/esm/utils/hyperliquid/orderFormatting.d.ts +44 -0
- package/dist/esm/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
- package/dist/esm/utils/hyperliquid/orderFormatting.js +79 -0
- package/dist/esm/utils/hyperliquid/orderFormatting.js.map +1 -0
- package/dist/esm/utils/orderClassification.d.ts +29 -0
- package/dist/esm/utils/orderClassification.d.ts.map +1 -0
- package/dist/esm/utils/orderClassification.js +53 -0
- package/dist/esm/utils/orderClassification.js.map +1 -0
- package/dist/esm/utils/orderMath.d.ts +40 -0
- package/dist/esm/utils/orderMath.d.ts.map +1 -0
- package/dist/esm/utils/orderMath.js +99 -0
- package/dist/esm/utils/orderMath.js.map +1 -0
- package/dist/esm/utils/parse.d.ts +18 -0
- package/dist/esm/utils/parse.d.ts.map +1 -0
- package/dist/esm/utils/parse.js +28 -0
- package/dist/esm/utils/parse.js.map +1 -0
- package/dist/esm/utils/positionMath.d.ts +78 -0
- package/dist/esm/utils/positionMath.d.ts.map +1 -0
- package/dist/esm/utils/positionMath.js +83 -0
- package/dist/esm/utils/positionMath.js.map +1 -0
- package/dist/esm/utils/request.d.ts +1 -2
- package/dist/esm/utils/request.d.ts.map +1 -1
- package/dist/esm/utils/request.js +23 -7
- package/dist/esm/utils/request.js.map +1 -1
- package/dist/esm/utils/signTypedData.d.ts +8 -10
- package/dist/esm/utils/signTypedData.d.ts.map +1 -1
- package/dist/esm/utils/signTypedData.js +15 -14
- package/dist/esm/utils/signTypedData.js.map +1 -1
- package/dist/esm/utils/units.d.ts +20 -0
- package/dist/esm/utils/units.d.ts.map +1 -0
- package/dist/esm/utils/units.js +31 -0
- package/dist/esm/utils/units.js.map +1 -0
- package/dist/esm/utils/validation.d.ts +15 -0
- package/dist/esm/utils/validation.d.ts.map +1 -0
- package/dist/esm/utils/validation.js +26 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wasm/lighter-signer.wasm +0 -0
- package/dist/esm/wasm/wasm_exec.js +575 -0
- package/dist/types/agent/AgentManager.d.ts +9 -9
- package/dist/types/agent/AgentManager.d.ts.map +1 -1
- package/dist/types/agent/storage.d.ts +1 -1
- package/dist/types/client/PerpsClient.d.ts +226 -144
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/client/createPerpsClient.d.ts +30 -51
- package/dist/types/client/createPerpsClient.d.ts.map +1 -1
- package/dist/types/client/projectAccountConfigSettings.d.ts +18 -0
- package/dist/types/client/projectAccountConfigSettings.d.ts.map +1 -0
- package/dist/types/client/types.d.ts +115 -49
- package/dist/types/client/types.d.ts.map +1 -1
- package/dist/types/errors/PerpsError.d.ts +2 -3
- package/dist/types/errors/PerpsError.d.ts.map +1 -1
- package/dist/types/errors/constants.d.ts +0 -10
- package/dist/types/errors/constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +37 -31
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/providers/hyperliquid/accountConfig.d.ts +13 -0
- package/dist/types/providers/hyperliquid/accountConfig.d.ts.map +1 -0
- package/dist/types/providers/lighter/accountConfig.d.ts +13 -0
- package/dist/types/providers/lighter/accountConfig.d.ts.map +1 -0
- package/dist/types/realtime/PerpsWsClient.d.ts +13 -1
- package/dist/types/realtime/PerpsWsClient.d.ts.map +1 -1
- package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts +11 -5
- package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/types/realtime/hyperliquid/types.d.ts +11 -9
- package/dist/types/realtime/hyperliquid/types.d.ts.map +1 -1
- package/dist/types/realtime/lighter/LighterWsProvider.d.ts +68 -0
- package/dist/types/realtime/lighter/LighterWsProvider.d.ts.map +1 -0
- package/dist/types/realtime/lighter/types.d.ts +108 -0
- package/dist/types/realtime/lighter/types.d.ts.map +1 -0
- package/dist/types/services/createAction.d.ts +11 -0
- package/dist/types/services/createAction.d.ts.map +1 -0
- package/dist/types/services/executeAction.d.ts +11 -0
- package/dist/types/services/executeAction.d.ts.map +1 -0
- package/dist/types/services/getAccount.d.ts +7 -7
- package/dist/types/services/getAccount.d.ts.map +1 -1
- package/dist/types/services/getActivity.d.ts +49 -0
- package/dist/types/services/getActivity.d.ts.map +1 -0
- package/dist/types/services/getAsset.d.ts +20 -0
- package/dist/types/services/getAsset.d.ts.map +1 -0
- package/dist/types/services/getAssets.d.ts +18 -0
- package/dist/types/services/getAssets.d.ts.map +1 -0
- package/dist/{esm/services/getHistory.d.ts → types/services/getFills.d.ts} +17 -13
- package/dist/types/services/getFills.d.ts.map +1 -0
- package/dist/types/services/getOhlcv.d.ts +4 -4
- package/dist/types/services/getOhlcv.d.ts.map +1 -1
- package/dist/types/services/getOrder.d.ts +4 -4
- package/dist/types/services/getOrder.d.ts.map +1 -1
- package/dist/types/services/getOrderbook.d.ts +4 -4
- package/dist/types/services/getOrderbook.d.ts.map +1 -1
- package/dist/types/services/getOrders.d.ts +27 -0
- package/dist/types/services/getOrders.d.ts.map +1 -0
- package/dist/types/services/getPositions.d.ts +27 -0
- package/dist/types/services/getPositions.d.ts.map +1 -0
- package/dist/types/services/getPrices.d.ts +5 -5
- package/dist/types/services/getPrices.d.ts.map +1 -1
- package/dist/types/services/getProviders.d.ts +20 -0
- package/dist/types/services/getProviders.d.ts.map +1 -0
- package/dist/types/signers/lighter/LighterKeyStore.d.ts +29 -0
- package/dist/types/signers/lighter/LighterKeyStore.d.ts.map +1 -0
- package/dist/types/signers/lighter/LighterReadOnlyTokenManager.d.ts +174 -0
- package/dist/types/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/types/signers/lighter/LighterSigner.d.ts +88 -0
- package/dist/types/signers/lighter/LighterSigner.d.ts.map +1 -0
- package/dist/types/signers/lighter/index.d.ts +9 -0
- package/dist/types/signers/lighter/index.d.ts.map +1 -0
- package/dist/types/signers/lighter/wasmLoader.d.ts +71 -0
- package/dist/types/signers/lighter/wasmLoader.d.ts.map +1 -0
- package/dist/types/utils/accountSummary.d.ts +13 -0
- package/dist/types/utils/accountSummary.d.ts.map +1 -0
- package/dist/types/utils/assertNever.d.ts +19 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -0
- package/dist/types/utils/calculations.d.ts +109 -0
- package/dist/types/utils/calculations.d.ts.map +1 -0
- package/dist/types/utils/hyperliquid/index.d.ts +3 -0
- package/dist/types/utils/hyperliquid/index.d.ts.map +1 -0
- package/dist/types/utils/hyperliquid/liquidation.d.ts +46 -0
- package/dist/types/utils/hyperliquid/liquidation.d.ts.map +1 -0
- package/dist/types/utils/hyperliquid/orderFormatting.d.ts +44 -0
- package/dist/types/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
- package/dist/types/utils/orderClassification.d.ts +29 -0
- package/dist/types/utils/orderClassification.d.ts.map +1 -0
- package/dist/types/utils/orderMath.d.ts +40 -0
- package/dist/types/utils/orderMath.d.ts.map +1 -0
- package/dist/types/utils/parse.d.ts +18 -0
- package/dist/types/utils/parse.d.ts.map +1 -0
- package/dist/types/utils/positionMath.d.ts +78 -0
- package/dist/types/utils/positionMath.d.ts.map +1 -0
- package/dist/types/utils/request.d.ts +1 -2
- package/dist/types/utils/request.d.ts.map +1 -1
- package/dist/types/utils/signTypedData.d.ts +8 -10
- package/dist/types/utils/signTypedData.d.ts.map +1 -1
- package/dist/types/utils/units.d.ts +20 -0
- package/dist/types/utils/units.d.ts.map +1 -0
- package/dist/types/utils/validation.d.ts +15 -0
- package/dist/types/utils/validation.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +15 -6
- package/src/agent/AgentManager.ts +21 -19
- package/src/agent/storage.ts +1 -1
- package/src/client/PerpsClient.ts +1221 -396
- package/src/client/createPerpsClient.ts +39 -54
- package/src/client/projectAccountConfigSettings.ts +39 -0
- package/src/client/types.ts +130 -52
- package/src/errors/PerpsError.ts +3 -22
- package/src/errors/constants.ts +0 -11
- package/src/index.ts +115 -47
- package/src/providers/hyperliquid/accountConfig.ts +92 -0
- package/src/providers/lighter/accountConfig.ts +103 -0
- package/src/realtime/PerpsWsClient.ts +67 -32
- package/src/realtime/hyperliquid/HyperliquidWsProvider.ts +199 -64
- package/src/realtime/hyperliquid/types.ts +8 -10
- package/src/realtime/lighter/LighterWsProvider.ts +682 -0
- package/src/realtime/lighter/types.ts +121 -0
- package/src/services/createAction.ts +41 -0
- package/src/services/executeAction.ts +41 -0
- package/src/services/getAccount.ts +8 -8
- package/src/services/getActivity.ts +77 -0
- package/src/services/getAsset.ts +37 -0
- package/src/services/getAssets.ts +32 -0
- package/src/services/{getHistory.ts → getFills.ts} +23 -17
- package/src/services/getOhlcv.ts +14 -11
- package/src/services/getOrder.ts +11 -8
- package/src/services/getOrderbook.ts +11 -8
- package/src/services/getOrders.ts +45 -0
- package/src/services/getPositions.ts +45 -0
- package/src/services/getPrices.ts +6 -6
- package/src/services/{getDexes.ts → getProviders.ts} +10 -10
- package/src/signers/lighter/LighterKeyStore.ts +74 -0
- package/src/signers/lighter/LighterReadOnlyTokenManager.ts +358 -0
- package/src/signers/lighter/LighterSigner.ts +396 -0
- package/src/signers/lighter/index.ts +36 -0
- package/src/signers/lighter/wasmLoader.ts +291 -0
- package/src/utils/accountSummary.ts +130 -0
- package/src/utils/assertNever.ts +22 -0
- package/src/utils/calculations.ts +209 -0
- package/src/utils/hyperliquid/index.ts +9 -0
- package/src/utils/hyperliquid/liquidation.ts +71 -0
- package/src/utils/hyperliquid/orderFormatting.ts +96 -0
- package/src/utils/orderClassification.ts +64 -0
- package/src/utils/orderMath.ts +130 -0
- package/src/utils/parse.ts +28 -0
- package/src/utils/positionMath.ts +107 -0
- package/src/utils/request.ts +26 -7
- package/src/utils/signTypedData.ts +19 -15
- package/src/utils/units.ts +32 -0
- package/src/utils/validation.ts +35 -0
- package/src/version.ts +1 -1
- package/wasm/lighter-signer.wasm +0 -0
- package/wasm/wasm_exec.js +575 -0
- package/dist/cjs/dex/hyperliquid.d.ts +0 -3
- package/dist/cjs/dex/hyperliquid.d.ts.map +0 -1
- package/dist/cjs/dex/hyperliquid.js +0 -21
- package/dist/cjs/dex/hyperliquid.js.map +0 -1
- package/dist/cjs/dex/registry.d.ts +0 -3
- package/dist/cjs/dex/registry.d.ts.map +0 -1
- package/dist/cjs/dex/registry.js +0 -16
- package/dist/cjs/dex/registry.js.map +0 -1
- package/dist/cjs/dex/types.d.ts +0 -13
- package/dist/cjs/dex/types.d.ts.map +0 -1
- package/dist/cjs/errors/AgentError.d.ts +0 -10
- package/dist/cjs/errors/AgentError.d.ts.map +0 -1
- package/dist/cjs/errors/AgentError.js +0 -23
- package/dist/cjs/errors/AgentError.js.map +0 -1
- package/dist/cjs/errors/HTTPError.d.ts +0 -11
- package/dist/cjs/errors/HTTPError.d.ts.map +0 -1
- package/dist/cjs/errors/HTTPError.js +0 -62
- package/dist/cjs/errors/HTTPError.js.map +0 -1
- package/dist/cjs/errors/PerpsSDKError.d.ts +0 -9
- package/dist/cjs/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/cjs/errors/PerpsSDKError.js +0 -36
- package/dist/cjs/errors/PerpsSDKError.js.map +0 -1
- package/dist/cjs/errors/ServerError.d.ts +0 -10
- package/dist/cjs/errors/ServerError.d.ts.map +0 -1
- package/dist/cjs/errors/ServerError.js +0 -24
- package/dist/cjs/errors/ServerError.js.map +0 -1
- package/dist/cjs/errors/ValidationError.d.ts +0 -9
- package/dist/cjs/errors/ValidationError.d.ts.map +0 -1
- package/dist/cjs/errors/ValidationError.js +0 -23
- package/dist/cjs/errors/ValidationError.js.map +0 -1
- package/dist/cjs/errors/utils/rootCause.d.ts +0 -6
- package/dist/cjs/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/cjs/errors/utils/rootCause.js +0 -41
- package/dist/cjs/errors/utils/rootCause.js.map +0 -1
- package/dist/cjs/services/cancelOrder.d.ts +0 -10
- package/dist/cjs/services/cancelOrder.d.ts.map +0 -1
- package/dist/cjs/services/cancelOrder.js +0 -16
- package/dist/cjs/services/cancelOrder.js.map +0 -1
- package/dist/cjs/services/createAuthorization.d.ts +0 -10
- package/dist/cjs/services/createAuthorization.d.ts.map +0 -1
- package/dist/cjs/services/createAuthorization.js +0 -16
- package/dist/cjs/services/createAuthorization.js.map +0 -1
- package/dist/cjs/services/createOrder.d.ts +0 -21
- package/dist/cjs/services/createOrder.d.ts.map +0 -1
- package/dist/cjs/services/createOrder.js +0 -27
- package/dist/cjs/services/createOrder.js.map +0 -1
- package/dist/cjs/services/createWithdrawal.d.ts +0 -9
- package/dist/cjs/services/createWithdrawal.d.ts.map +0 -1
- package/dist/cjs/services/createWithdrawal.js +0 -15
- package/dist/cjs/services/createWithdrawal.js.map +0 -1
- package/dist/cjs/services/getDexes.d.ts +0 -4
- package/dist/cjs/services/getDexes.d.ts.map +0 -1
- package/dist/cjs/services/getDexes.js.map +0 -1
- package/dist/cjs/services/getHistory.d.ts +0 -10
- package/dist/cjs/services/getHistory.d.ts.map +0 -1
- package/dist/cjs/services/getHistory.js.map +0 -1
- package/dist/cjs/services/getMarket.d.ts +0 -8
- package/dist/cjs/services/getMarket.d.ts.map +0 -1
- package/dist/cjs/services/getMarket.js.map +0 -1
- package/dist/cjs/services/getMarkets.d.ts +0 -7
- package/dist/cjs/services/getMarkets.d.ts.map +0 -1
- package/dist/cjs/services/getMarkets.js.map +0 -1
- package/dist/cjs/services/submitAuthorization.d.ts +0 -10
- package/dist/cjs/services/submitAuthorization.d.ts.map +0 -1
- package/dist/cjs/services/submitAuthorization.js.map +0 -1
- package/dist/cjs/services/submitOrder.d.ts +0 -10
- package/dist/cjs/services/submitOrder.d.ts.map +0 -1
- package/dist/cjs/services/submitOrder.js.map +0 -1
- package/dist/cjs/services/submitWithdrawal.d.ts +0 -9
- package/dist/cjs/services/submitWithdrawal.d.ts.map +0 -1
- package/dist/cjs/services/submitWithdrawal.js +0 -15
- package/dist/cjs/services/submitWithdrawal.js.map +0 -1
- package/dist/esm/dex/hyperliquid.d.ts +0 -3
- package/dist/esm/dex/hyperliquid.d.ts.map +0 -1
- package/dist/esm/dex/hyperliquid.js +0 -19
- package/dist/esm/dex/hyperliquid.js.map +0 -1
- package/dist/esm/dex/registry.d.ts +0 -3
- package/dist/esm/dex/registry.d.ts.map +0 -1
- package/dist/esm/dex/registry.js +0 -13
- package/dist/esm/dex/registry.js.map +0 -1
- package/dist/esm/dex/types.d.ts +0 -15
- package/dist/esm/dex/types.d.ts.map +0 -1
- package/dist/esm/dex/types.js +0 -2
- package/dist/esm/dex/types.js.map +0 -1
- package/dist/esm/errors/AgentError.d.ts +0 -25
- package/dist/esm/errors/AgentError.d.ts.map +0 -1
- package/dist/esm/errors/AgentError.js +0 -35
- package/dist/esm/errors/AgentError.js.map +0 -1
- package/dist/esm/errors/HTTPError.d.ts +0 -11
- package/dist/esm/errors/HTTPError.d.ts.map +0 -1
- package/dist/esm/errors/HTTPError.js +0 -61
- package/dist/esm/errors/HTTPError.js.map +0 -1
- package/dist/esm/errors/PerpsSDKError.d.ts +0 -40
- package/dist/esm/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/esm/errors/PerpsSDKError.js +0 -67
- package/dist/esm/errors/PerpsSDKError.js.map +0 -1
- package/dist/esm/errors/ServerError.d.ts +0 -23
- package/dist/esm/errors/ServerError.d.ts.map +0 -1
- package/dist/esm/errors/ServerError.js +0 -34
- package/dist/esm/errors/ServerError.js.map +0 -1
- package/dist/esm/errors/ValidationError.d.ts +0 -23
- package/dist/esm/errors/ValidationError.d.ts.map +0 -1
- package/dist/esm/errors/ValidationError.js +0 -34
- package/dist/esm/errors/ValidationError.js.map +0 -1
- package/dist/esm/errors/utils/rootCause.d.ts +0 -71
- package/dist/esm/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/esm/errors/utils/rootCause.js +0 -99
- package/dist/esm/errors/utils/rootCause.js.map +0 -1
- package/dist/esm/services/cancelOrder.d.ts +0 -51
- package/dist/esm/services/cancelOrder.d.ts.map +0 -1
- package/dist/esm/services/cancelOrder.js +0 -50
- package/dist/esm/services/cancelOrder.js.map +0 -1
- package/dist/esm/services/createAuthorization.d.ts +0 -51
- package/dist/esm/services/createAuthorization.d.ts.map +0 -1
- package/dist/esm/services/createAuthorization.js +0 -50
- package/dist/esm/services/createAuthorization.js.map +0 -1
- package/dist/esm/services/createOrder.d.ts +0 -74
- package/dist/esm/services/createOrder.d.ts.map +0 -1
- package/dist/esm/services/createOrder.js +0 -62
- package/dist/esm/services/createOrder.js.map +0 -1
- package/dist/esm/services/createWithdrawal.d.ts +0 -49
- package/dist/esm/services/createWithdrawal.d.ts.map +0 -1
- package/dist/esm/services/createWithdrawal.js +0 -49
- package/dist/esm/services/createWithdrawal.js.map +0 -1
- package/dist/esm/services/getDexes.d.ts +0 -20
- package/dist/esm/services/getDexes.d.ts.map +0 -1
- package/dist/esm/services/getDexes.js +0 -21
- package/dist/esm/services/getDexes.js.map +0 -1
- package/dist/esm/services/getHistory.d.ts.map +0 -1
- package/dist/esm/services/getHistory.js.map +0 -1
- package/dist/esm/services/getMarket.d.ts +0 -27
- package/dist/esm/services/getMarket.d.ts.map +0 -1
- package/dist/esm/services/getMarket.js +0 -25
- package/dist/esm/services/getMarket.js.map +0 -1
- package/dist/esm/services/getMarkets.d.ts +0 -25
- package/dist/esm/services/getMarkets.d.ts.map +0 -1
- package/dist/esm/services/getMarkets.js +0 -23
- package/dist/esm/services/getMarkets.js.map +0 -1
- package/dist/esm/services/submitAuthorization.d.ts +0 -42
- package/dist/esm/services/submitAuthorization.d.ts.map +0 -1
- package/dist/esm/services/submitAuthorization.js +0 -41
- package/dist/esm/services/submitAuthorization.js.map +0 -1
- package/dist/esm/services/submitOrder.d.ts +0 -44
- package/dist/esm/services/submitOrder.d.ts.map +0 -1
- package/dist/esm/services/submitOrder.js +0 -43
- package/dist/esm/services/submitOrder.js.map +0 -1
- package/dist/esm/services/submitWithdrawal.d.ts +0 -40
- package/dist/esm/services/submitWithdrawal.d.ts.map +0 -1
- package/dist/esm/services/submitWithdrawal.js +0 -40
- package/dist/esm/services/submitWithdrawal.js.map +0 -1
- package/dist/types/dex/hyperliquid.d.ts +0 -3
- package/dist/types/dex/hyperliquid.d.ts.map +0 -1
- package/dist/types/dex/registry.d.ts +0 -3
- package/dist/types/dex/registry.d.ts.map +0 -1
- package/dist/types/dex/types.d.ts +0 -15
- package/dist/types/dex/types.d.ts.map +0 -1
- package/dist/types/errors/AgentError.d.ts +0 -25
- package/dist/types/errors/AgentError.d.ts.map +0 -1
- package/dist/types/errors/HTTPError.d.ts +0 -11
- package/dist/types/errors/HTTPError.d.ts.map +0 -1
- package/dist/types/errors/PerpsSDKError.d.ts +0 -40
- package/dist/types/errors/PerpsSDKError.d.ts.map +0 -1
- package/dist/types/errors/ServerError.d.ts +0 -23
- package/dist/types/errors/ServerError.d.ts.map +0 -1
- package/dist/types/errors/ValidationError.d.ts +0 -23
- package/dist/types/errors/ValidationError.d.ts.map +0 -1
- package/dist/types/errors/utils/rootCause.d.ts +0 -71
- package/dist/types/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/types/services/cancelOrder.d.ts +0 -51
- package/dist/types/services/cancelOrder.d.ts.map +0 -1
- package/dist/types/services/createAuthorization.d.ts +0 -51
- package/dist/types/services/createAuthorization.d.ts.map +0 -1
- package/dist/types/services/createOrder.d.ts +0 -74
- package/dist/types/services/createOrder.d.ts.map +0 -1
- package/dist/types/services/createWithdrawal.d.ts +0 -49
- package/dist/types/services/createWithdrawal.d.ts.map +0 -1
- package/dist/types/services/getDexes.d.ts +0 -20
- package/dist/types/services/getDexes.d.ts.map +0 -1
- package/dist/types/services/getHistory.d.ts.map +0 -1
- package/dist/types/services/getMarket.d.ts +0 -27
- package/dist/types/services/getMarket.d.ts.map +0 -1
- package/dist/types/services/getMarkets.d.ts +0 -25
- package/dist/types/services/getMarkets.d.ts.map +0 -1
- package/dist/types/services/submitAuthorization.d.ts +0 -42
- package/dist/types/services/submitAuthorization.d.ts.map +0 -1
- package/dist/types/services/submitOrder.d.ts +0 -44
- package/dist/types/services/submitOrder.d.ts.map +0 -1
- package/dist/types/services/submitWithdrawal.d.ts +0 -40
- package/dist/types/services/submitWithdrawal.d.ts.map +0 -1
- package/src/dex/hyperliquid.ts +0 -20
- package/src/dex/registry.ts +0 -15
- package/src/dex/types.ts +0 -16
- package/src/errors/AgentError.ts +0 -43
- package/src/errors/HTTPError.ts +0 -72
- package/src/errors/PerpsSDKError.ts +0 -79
- package/src/errors/ServerError.ts +0 -41
- package/src/errors/ValidationError.ts +0 -38
- package/src/errors/utils/rootCause.ts +0 -112
- package/src/services/cancelOrder.ts +0 -75
- package/src/services/createAuthorization.ts +0 -79
- package/src/services/createOrder.ts +0 -116
- package/src/services/createWithdrawal.ts +0 -76
- package/src/services/getMarket.ts +0 -41
- package/src/services/getMarkets.ts +0 -37
- package/src/services/submitAuthorization.ts +0 -70
- package/src/services/submitOrder.ts +0 -72
- package/src/services/submitWithdrawal.ts +0 -67
- /package/dist/cjs/{dex → realtime/lighter}/types.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasmLoader.d.ts","sourceRoot":"","sources":["../../../../src/signers/lighter/wasmLoader.ts"],"names":[],"mappings":"AAwDA,MAAM,WAAW,sBAAsB;IACrC,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;IAC5B,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;IAC5B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK;QACjC,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,YAAY,EAAE,CACZ,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,KACjB;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvB,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9E;;;;;OAKG;IACH,eAAe,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,KACjB;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3C;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,KACjB,UAAU,GAAG;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,eAAe,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAA;IACnD,eAAe,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAA;IACnD,mBAAmB,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAA;IACvD,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAA;IAChD,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAA;IAChD,kBAAkB,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAA;IACtD,eAAe,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAA;IACnD,gBAAgB,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAA;CACrD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAsFD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAK7B;AA+DD,qFAAqF;AACrF,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Lighter WASM loader
|
|
3
|
+
//
|
|
4
|
+
// Loads the Go-compiled `lighter-signer.wasm` and its companion `wasm_exec.js`
|
|
5
|
+
// runtime. The Go runtime installs functions (SignCreateOrder, SignCancelOrder,
|
|
6
|
+
// etc.) onto `globalThis` when `go.run(instance)` starts the main goroutine.
|
|
7
|
+
//
|
|
8
|
+
// The default asset URLs resolve relative to this module's emitted JS file:
|
|
9
|
+
// src/signers/lighter/../../../wasm/lighter-signer.wasm → repo-root wasm/
|
|
10
|
+
// dist/{esm,cjs}/signers/lighter/../../../wasm/… → dist/{esm,cjs}/wasm/
|
|
11
|
+
//
|
|
12
|
+
// The build script copies the wasm assets into both dist subtrees so the same
|
|
13
|
+
// relative path resolves at runtime regardless of which bundle is loaded.
|
|
14
|
+
//
|
|
15
|
+
// To resolve the module's own URL in both ESM (where `__filename` is absent)
|
|
16
|
+
// and CJS (where `import.meta.url` is a syntax error), we parse a stack trace
|
|
17
|
+
// — `currentModuleUrl` always appears as the first frame, and V8 includes the
|
|
18
|
+
// emitting file path regardless of module system. Callers can override both
|
|
19
|
+
// asset URLs via {@link LoadLighterWasmOptions} to bypass this heuristic.
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
function currentModuleUrl() {
|
|
22
|
+
const cjsFilename = globalThis.__filename;
|
|
23
|
+
if (typeof cjsFilename === 'string' && cjsFilename.length > 0) {
|
|
24
|
+
return `file://${cjsFilename}`;
|
|
25
|
+
}
|
|
26
|
+
const stack = new Error().stack ?? '';
|
|
27
|
+
// Stack frames look like one of:
|
|
28
|
+
// " at currentModuleUrl (file:///abs/path/wasmLoader.js:29:10)"
|
|
29
|
+
// " at currentModuleUrl (/abs/path/wasmLoader.js:29:10)"
|
|
30
|
+
// " at currentModuleUrl (file:///abs/path/wasmLoader.ts:29:10)" (vitest)
|
|
31
|
+
// " at currentModuleUrl (http://localhost:5173/.../wasmLoader.ts?v=…:29:10)" (vite dev)
|
|
32
|
+
const match = stack.match(/\(([^)]+wasmLoader\.[tj]s[^)]*)\)/);
|
|
33
|
+
const frame = match?.[1] ?? '';
|
|
34
|
+
const withoutPos = frame.replace(/:\d+:\d+$/, '');
|
|
35
|
+
if (withoutPos.startsWith('file://') ||
|
|
36
|
+
withoutPos.startsWith('http://') ||
|
|
37
|
+
withoutPos.startsWith('https://')) {
|
|
38
|
+
return withoutPos;
|
|
39
|
+
}
|
|
40
|
+
if (withoutPos.length > 0) {
|
|
41
|
+
// Bare absolute path (Node CJS without `file://` prefix in some runners).
|
|
42
|
+
return `file://${withoutPos}`;
|
|
43
|
+
}
|
|
44
|
+
throw new Error('Could not resolve the Lighter WASM loader module URL. Pass an explicit ' +
|
|
45
|
+
'`wasmBinaryUrl` and `wasmExecJsUrl` to loadLighterWasm().');
|
|
46
|
+
}
|
|
47
|
+
function defaultAssetUrl(filename) {
|
|
48
|
+
return new URL(`../../../wasm/${filename}`, currentModuleUrl());
|
|
49
|
+
}
|
|
50
|
+
const WASM_FUNCTION_NAMES = [
|
|
51
|
+
'GenerateAPIKey',
|
|
52
|
+
'CreateClient',
|
|
53
|
+
'CheckClient',
|
|
54
|
+
'CreateAuthToken',
|
|
55
|
+
'SignChangePubKey',
|
|
56
|
+
'SignCreateOrder',
|
|
57
|
+
'SignCancelOrder',
|
|
58
|
+
'SignCancelAllOrders',
|
|
59
|
+
'SignTransfer',
|
|
60
|
+
'SignWithdraw',
|
|
61
|
+
'SignUpdateLeverage',
|
|
62
|
+
'SignModifyOrder',
|
|
63
|
+
'SignUpdateMargin',
|
|
64
|
+
];
|
|
65
|
+
let cachedExports;
|
|
66
|
+
// `node:fs/promises` and `node:url` are Node-only. Static imports force browser
|
|
67
|
+
// bundlers (Vite/Rollup/esbuild) to resolve them up-front, which fails. Dynamic
|
|
68
|
+
// `import('node:...')` lets bundlers leave the branch unreachable in browsers
|
|
69
|
+
// while Node still resolves it at runtime when asked for a `file://` URL.
|
|
70
|
+
async function readNodeFile(url) {
|
|
71
|
+
const [{ readFile }, { fileURLToPath }] = await Promise.all([
|
|
72
|
+
import(/* @vite-ignore */ 'node:fs/promises'),
|
|
73
|
+
import(/* @vite-ignore */ 'node:url'),
|
|
74
|
+
]);
|
|
75
|
+
return readFile(fileURLToPath(url));
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Resolve a possibly-relative URL string against the current document/page
|
|
79
|
+
* origin. Bundlers like Vite hand out absolute paths (e.g. `/node_modules/…`)
|
|
80
|
+
* for `?url` imports, which `new URL(string)` rejects without a base.
|
|
81
|
+
*/
|
|
82
|
+
function toResolvedUrl(url) {
|
|
83
|
+
if (url instanceof URL) {
|
|
84
|
+
return url;
|
|
85
|
+
}
|
|
86
|
+
const base = typeof globalThis !== 'undefined' &&
|
|
87
|
+
globalThis.location?.href
|
|
88
|
+
? globalThis.location.href
|
|
89
|
+
: undefined;
|
|
90
|
+
return new URL(url, base);
|
|
91
|
+
}
|
|
92
|
+
async function readUrlBytes(url) {
|
|
93
|
+
const u = toResolvedUrl(url);
|
|
94
|
+
if (u.protocol === 'file:') {
|
|
95
|
+
const buf = await readNodeFile(u);
|
|
96
|
+
// Copy the view into a fresh ArrayBuffer — `Buffer.buffer` is a shared
|
|
97
|
+
// ArrayBuffer in Node and the wasm instantiator expects a plain one.
|
|
98
|
+
return buf.slice().buffer;
|
|
99
|
+
}
|
|
100
|
+
const response = await fetch(u);
|
|
101
|
+
if (!response.ok) {
|
|
102
|
+
throw new Error(`Failed to fetch ${u.href}: ${response.status} ${response.statusText}`);
|
|
103
|
+
}
|
|
104
|
+
return response.arrayBuffer();
|
|
105
|
+
}
|
|
106
|
+
async function readUrlText(url) {
|
|
107
|
+
const u = toResolvedUrl(url);
|
|
108
|
+
if (u.protocol === 'file:') {
|
|
109
|
+
const buf = await readNodeFile(u);
|
|
110
|
+
return new TextDecoder('utf-8').decode(buf);
|
|
111
|
+
}
|
|
112
|
+
const response = await fetch(u);
|
|
113
|
+
if (!response.ok) {
|
|
114
|
+
throw new Error(`Failed to fetch ${u.href}: ${response.status} ${response.statusText}`);
|
|
115
|
+
}
|
|
116
|
+
return response.text();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Load the Lighter WASM signer. Memoized per-process: subsequent calls return
|
|
120
|
+
* the cached exports. The Go runtime keeps a long-running goroutine to service
|
|
121
|
+
* JS calls — we start it once and never stop it.
|
|
122
|
+
*/
|
|
123
|
+
export async function loadLighterWasm(options) {
|
|
124
|
+
if (!cachedExports) {
|
|
125
|
+
cachedExports = doLoad(options);
|
|
126
|
+
}
|
|
127
|
+
return cachedExports;
|
|
128
|
+
}
|
|
129
|
+
async function doLoad(options) {
|
|
130
|
+
const wasmBinaryUrl = options?.wasmBinaryUrl ?? defaultAssetUrl('lighter-signer.wasm');
|
|
131
|
+
// Prefer a pre-fetched source string (bundler `?raw` imports) over a URL —
|
|
132
|
+
// bundlers may transform a `.js` URL on serve, breaking the IIFE that sets
|
|
133
|
+
// `globalThis.Go`.
|
|
134
|
+
const wasmExecSourcePromise = options?.wasmExecJsSource !== undefined
|
|
135
|
+
? Promise.resolve(options.wasmExecJsSource)
|
|
136
|
+
: readUrlText(options?.wasmExecJsUrl ?? defaultAssetUrl('wasm_exec.js'));
|
|
137
|
+
const [wasmExecSource, wasmBytes] = await Promise.all([
|
|
138
|
+
wasmExecSourcePromise,
|
|
139
|
+
readUrlBytes(wasmBinaryUrl),
|
|
140
|
+
]);
|
|
141
|
+
// wasm_exec.js is an IIFE that installs `globalThis.Go = class { ... }` plus
|
|
142
|
+
// fs/process/crypto polyfills. Evaluate it in a Function scope so the class
|
|
143
|
+
// attaches to globalThis and we read it back from there.
|
|
144
|
+
const installGo = new Function(`${wasmExecSource}; return globalThis.Go`);
|
|
145
|
+
const Go = installGo();
|
|
146
|
+
const go = new Go();
|
|
147
|
+
const { instance } = await WebAssembly.instantiate(wasmBytes, go.importObject);
|
|
148
|
+
// Start the Go goroutine — this never resolves until the Go main() returns,
|
|
149
|
+
// which our signer never does. Intentionally not awaited.
|
|
150
|
+
void go.run(instance);
|
|
151
|
+
// Wait microtasks to let Go's init() register JS-bound functions.
|
|
152
|
+
await yieldToGoRuntime();
|
|
153
|
+
const exports = {};
|
|
154
|
+
for (const name of WASM_FUNCTION_NAMES) {
|
|
155
|
+
const fn = globalThis[name];
|
|
156
|
+
if (typeof fn !== 'function') {
|
|
157
|
+
throw new Error(`Lighter WASM did not export expected function: ${name}. ` +
|
|
158
|
+
'The .wasm binary may be stale or incompatible.');
|
|
159
|
+
}
|
|
160
|
+
;
|
|
161
|
+
exports[name] = fn;
|
|
162
|
+
}
|
|
163
|
+
return exports;
|
|
164
|
+
}
|
|
165
|
+
async function yieldToGoRuntime() {
|
|
166
|
+
for (let i = 0; i < 2; i++) {
|
|
167
|
+
await new Promise((resolve) => {
|
|
168
|
+
if (typeof setImmediate === 'function') {
|
|
169
|
+
setImmediate(resolve);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
setTimeout(resolve, 0);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/** Testing helper — drop the cached WASM instance so the next load reinitializes. */
|
|
178
|
+
export function resetLighterWasmCache() {
|
|
179
|
+
cachedExports = undefined;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=wasmLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasmLoader.js","sourceRoot":"","sources":["../../../../src/signers/lighter/wasmLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AccountResponse, Asset, Position } from '@lifi/perps-types';
|
|
2
|
+
export interface AccountSummary {
|
|
3
|
+
/** Total portfolio value in USD */
|
|
4
|
+
portfolioValue: number;
|
|
5
|
+
/** Collateral available for new positions */
|
|
6
|
+
availableMargin: number;
|
|
7
|
+
/** Margin locked in open positions */
|
|
8
|
+
marginUsed: number;
|
|
9
|
+
/** Unrealized PnL across all positions */
|
|
10
|
+
unrealizedPnl: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function calculateAccountSummary(account: AccountResponse, positions: Position[], prices: Record<string, string>, assets?: Asset[], collateralCurrencies?: ReadonlySet<string>): AccountSummary;
|
|
13
|
+
//# sourceMappingURL=accountSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountSummary.d.ts","sourceRoot":"","sources":["../../../src/utils/accountSummary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIzE,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAA;IACvB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAA;CACtB;AAwDD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,KAAK,EAAE,EAChB,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACzC,cAAc,CAsDhB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { HlAbstractionMode } from '@lifi/perps-types/providers/hyperliquid';
|
|
2
|
+
import { stringToFloat } from './parse.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build a map of coin name → USD price from spot assets and allMids.
|
|
5
|
+
* Spot assets have displaySymbol "BASE/QUOTE" and assetId "@N" which keys into prices.
|
|
6
|
+
*/
|
|
7
|
+
function buildSpotCoinPrices(assets, prices) {
|
|
8
|
+
const map = new Map();
|
|
9
|
+
for (const asset of assets) {
|
|
10
|
+
if (asset.market !== 'spot') {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
const price = prices[asset.assetId];
|
|
14
|
+
if (!price) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const slashIdx = asset.displaySymbol.indexOf('/');
|
|
18
|
+
if (slashIdx < 0) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const base = asset.displaySymbol.slice(0, slashIdx);
|
|
22
|
+
map.set(base, stringToFloat(price));
|
|
23
|
+
}
|
|
24
|
+
return map;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the USD price of a spot balance currency.
|
|
28
|
+
*
|
|
29
|
+
* Looks up the coin in the spot mid prices map first, then tries an exact
|
|
30
|
+
* match in allMids (e.g. a perps-listed stablecoin). Falls back to $1 for
|
|
31
|
+
* stablecoins with no market price entry.
|
|
32
|
+
*/
|
|
33
|
+
function getSpotPrice(currency, prices, spotCoinPrices) {
|
|
34
|
+
const spotPrice = spotCoinPrices.get(currency);
|
|
35
|
+
if (spotPrice !== undefined) {
|
|
36
|
+
return spotPrice;
|
|
37
|
+
}
|
|
38
|
+
if (prices[currency] !== undefined) {
|
|
39
|
+
return stringToFloat(prices[currency]);
|
|
40
|
+
}
|
|
41
|
+
return 1;
|
|
42
|
+
}
|
|
43
|
+
const UNIFIED_STATUSES = new Set([
|
|
44
|
+
HlAbstractionMode.UNIFIED_ACCOUNT,
|
|
45
|
+
HlAbstractionMode.PORTFOLIO_MARGIN,
|
|
46
|
+
]);
|
|
47
|
+
export function calculateAccountSummary(account, positions, prices, assets, collateralCurrencies) {
|
|
48
|
+
let marginUsed = 0;
|
|
49
|
+
let unrealizedPnl = 0;
|
|
50
|
+
for (const p of positions) {
|
|
51
|
+
marginUsed += stringToFloat(p.marginUsed);
|
|
52
|
+
unrealizedPnl += stringToFloat(p.unrealizedPnl);
|
|
53
|
+
}
|
|
54
|
+
const spotCoinPrices = buildSpotCoinPrices(assets ?? [], prices);
|
|
55
|
+
// Split spot into margin-eligible (quote assets) and non-margin (HYPE, PURR etc.)
|
|
56
|
+
let spotMarginValue = 0;
|
|
57
|
+
let spotNonMarginValue = 0;
|
|
58
|
+
let perpsBalance = 0;
|
|
59
|
+
for (const [key, entries] of Object.entries(account.balances)) {
|
|
60
|
+
if (key === 'spot') {
|
|
61
|
+
for (const b of entries) {
|
|
62
|
+
const value = stringToFloat(b.amount) *
|
|
63
|
+
getSpotPrice(b.currency, prices, spotCoinPrices);
|
|
64
|
+
if (!collateralCurrencies || collateralCurrencies.has(b.currency)) {
|
|
65
|
+
spotMarginValue += value;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
spotNonMarginValue += value;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
for (const b of entries) {
|
|
74
|
+
perpsBalance += stringToFloat(b.amount);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// `abstractionMode` is HL-only; for any other provider variant (today
|
|
79
|
+
// Lighter) the unified-collateral semantics don't apply, so fall back
|
|
80
|
+
// to `undefined` and let the non-unified branch below run.
|
|
81
|
+
const status = account.config.provider === 'hyperliquid'
|
|
82
|
+
? (account.config.abstractionMode ?? undefined)
|
|
83
|
+
: undefined;
|
|
84
|
+
const isUnified = UNIFIED_STATUSES.has(status ?? '');
|
|
85
|
+
// Unified: spot balances are total token holdings (margin is NOT subtracted).
|
|
86
|
+
// Disabled: perps venue balances are free margin (margin IS already subtracted).
|
|
87
|
+
const marginCollateral = isUnified
|
|
88
|
+
? spotMarginValue + perpsBalance
|
|
89
|
+
: spotMarginValue + perpsBalance + marginUsed;
|
|
90
|
+
return {
|
|
91
|
+
portfolioValue: marginCollateral + spotNonMarginValue + unrealizedPnl,
|
|
92
|
+
availableMargin: marginCollateral - marginUsed,
|
|
93
|
+
marginUsed,
|
|
94
|
+
unrealizedPnl,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=accountSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountSummary.js","sourceRoot":"","sources":["../../../src/utils/accountSummary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exhaustiveness helper for discriminated-union switches.
|
|
3
|
+
*
|
|
4
|
+
* Use in the `default` arm of a `switch (discriminant)` block: TypeScript
|
|
5
|
+
* narrows the variable to `never` when every case is handled, so adding a
|
|
6
|
+
* new variant to the union without a corresponding `case` becomes a
|
|
7
|
+
* compile error here. At runtime — if reached — throw rather than return
|
|
8
|
+
* silently; the throw is unreachable in well-typed code but flags
|
|
9
|
+
* upstream-shape drift loudly.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* switch (config.provider) {
|
|
13
|
+
* case 'hyperliquid': return projectHyperliquid(config)
|
|
14
|
+
* case 'lighter': return projectLighter(config)
|
|
15
|
+
* default: return assertNever(config)
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
export declare function assertNever(value: never): never;
|
|
19
|
+
//# sourceMappingURL=assertNever.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertNever.d.ts","sourceRoot":"","sources":["../../../src/utils/assertNever.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAI/C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exhaustiveness helper for discriminated-union switches.
|
|
3
|
+
*
|
|
4
|
+
* Use in the `default` arm of a `switch (discriminant)` block: TypeScript
|
|
5
|
+
* narrows the variable to `never` when every case is handled, so adding a
|
|
6
|
+
* new variant to the union without a corresponding `case` becomes a
|
|
7
|
+
* compile error here. At runtime — if reached — throw rather than return
|
|
8
|
+
* silently; the throw is unreachable in well-typed code but flags
|
|
9
|
+
* upstream-shape drift loudly.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* switch (config.provider) {
|
|
13
|
+
* case 'hyperliquid': return projectHyperliquid(config)
|
|
14
|
+
* case 'lighter': return projectLighter(config)
|
|
15
|
+
* default: return assertNever(config)
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
export function assertNever(value) {
|
|
19
|
+
throw new Error(`Unreachable: exhaustiveness check failed for value ${JSON.stringify(value)}`);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=assertNever.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertNever.js","sourceRoot":"","sources":["../../../src/utils/assertNever.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,MAAM,IAAI,KAAK,CACb,sDAAsD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal perpetual futures calculation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions for computing position-related values that any consumer
|
|
5
|
+
* of the perps SDK would need. All parameters are required — no default
|
|
6
|
+
* values for critical financial parameters.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Calculate position size in asset units from margin.
|
|
10
|
+
*
|
|
11
|
+
* @param marginUsd - Margin amount in USD
|
|
12
|
+
* @param leverage - Position leverage
|
|
13
|
+
* @param price - Current asset price
|
|
14
|
+
* @returns Position size in asset units
|
|
15
|
+
*/
|
|
16
|
+
export declare function calculatePositionSize(marginUsd: number, leverage: number, price: number): number;
|
|
17
|
+
/**
|
|
18
|
+
* Calculate notional value of a position.
|
|
19
|
+
*
|
|
20
|
+
* @param size - Position size in asset units
|
|
21
|
+
* @param price - Current asset price
|
|
22
|
+
* @returns Notional value in USD
|
|
23
|
+
*/
|
|
24
|
+
export declare function calculateNotionalValue(size: number, price: number): number;
|
|
25
|
+
/**
|
|
26
|
+
* Calculate unrealized PnL.
|
|
27
|
+
*
|
|
28
|
+
* @param entryPrice - Position entry price
|
|
29
|
+
* @param currentPrice - Current market price
|
|
30
|
+
* @param size - Position size (positive for long, negative for short)
|
|
31
|
+
* @returns Unrealized PnL in USD
|
|
32
|
+
*/
|
|
33
|
+
export declare function calculateUnrealizedPnl(entryPrice: number, currentPrice: number, size: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Calculate return on equity (ROE) percentage.
|
|
36
|
+
*
|
|
37
|
+
* @param pnl - Profit/loss in USD
|
|
38
|
+
* @param margin - Initial margin in USD
|
|
39
|
+
* @returns ROE as percentage (e.g., 10 for 10%)
|
|
40
|
+
*/
|
|
41
|
+
export declare function calculateRoe(pnl: number, margin: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* Calculate required margin for a position.
|
|
44
|
+
*
|
|
45
|
+
* @param notionalValue - Position notional value in USD
|
|
46
|
+
* @param leverage - Position leverage
|
|
47
|
+
* @returns Required margin in USD
|
|
48
|
+
*/
|
|
49
|
+
export declare function calculateRequiredMargin(notionalValue: number, leverage: number): number;
|
|
50
|
+
/**
|
|
51
|
+
* Estimate trading fees.
|
|
52
|
+
*
|
|
53
|
+
* @param sizeUsd - Position size in USD (notional value)
|
|
54
|
+
* @param feeRate - Fee rate as decimal (e.g., 0.00035 for 0.035%)
|
|
55
|
+
* @returns Estimated fee in USD
|
|
56
|
+
*/
|
|
57
|
+
export declare function estimateFees(sizeUsd: number, feeRate: number): number;
|
|
58
|
+
/**
|
|
59
|
+
* Apply slippage to a price for order execution.
|
|
60
|
+
*
|
|
61
|
+
* @param price - Base price
|
|
62
|
+
* @param slippagePercent - Slippage tolerance as percentage (e.g., 0.5 for 0.5%)
|
|
63
|
+
* @param isBuy - True if buying (price goes up), false if selling (price goes down)
|
|
64
|
+
* @returns Price adjusted for slippage
|
|
65
|
+
*/
|
|
66
|
+
export declare function applySlippage(price: number, slippagePercent: number, isBuy: boolean): number;
|
|
67
|
+
export interface ExpectedPnl {
|
|
68
|
+
amount: number;
|
|
69
|
+
percent: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Calculate expected gain/loss for a TP or SL trigger price.
|
|
73
|
+
* Returns signed values — positive means profit, negative means loss.
|
|
74
|
+
*
|
|
75
|
+
* @param triggerPrice - The TP or SL target price
|
|
76
|
+
* @param entryPrice - Position entry / current market price
|
|
77
|
+
* @param leverage - Position leverage multiplier
|
|
78
|
+
* @param isLong - True for long positions, false for short
|
|
79
|
+
* @param margin - Margin amount in USD
|
|
80
|
+
*/
|
|
81
|
+
export declare function calculateExpectedPnl(triggerPrice: number, entryPrice: number, leverage: number, isLong: boolean, margin: number): ExpectedPnl | null;
|
|
82
|
+
/**
|
|
83
|
+
* Convert a percentage gain/loss to a target price.
|
|
84
|
+
*
|
|
85
|
+
* @param percent - Target gain/loss percentage (positive = profitable direction)
|
|
86
|
+
* @param entryPrice - Position entry price
|
|
87
|
+
* @param leverage - Position leverage multiplier
|
|
88
|
+
* @param isLong - True for long positions, false for short
|
|
89
|
+
*/
|
|
90
|
+
export declare function priceFromPercent(percent: number, entryPrice: number, leverage: number, isLong: boolean): number;
|
|
91
|
+
/**
|
|
92
|
+
* Convert a target price to a percentage gain/loss.
|
|
93
|
+
*
|
|
94
|
+
* @param price - Target price
|
|
95
|
+
* @param entryPrice - Position entry price
|
|
96
|
+
* @param leverage - Position leverage multiplier
|
|
97
|
+
* @param isLong - True for long positions, false for short
|
|
98
|
+
*/
|
|
99
|
+
export declare function percentFromPrice(price: number, entryPrice: number, leverage: number, isLong: boolean): number;
|
|
100
|
+
/**
|
|
101
|
+
* Calculate realized PnL as a percentage of position value at close.
|
|
102
|
+
*
|
|
103
|
+
* @param realizedPnl - The realized profit/loss in USD
|
|
104
|
+
* @param size - Position size in asset units at close
|
|
105
|
+
* @param price - Price at close
|
|
106
|
+
* @returns PnL as a percentage of position value
|
|
107
|
+
*/
|
|
108
|
+
export declare function calculateRealizedPnlPercent(realizedPnl: number, size: number, price: number): number;
|
|
109
|
+
//# sourceMappingURL=calculations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,OAAO,GACb,MAAM,CAGR;AAMD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GACb,WAAW,GAAG,IAAI,CAUpB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAMR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,CAMR;AAMD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,MAAM,CAMR"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal perpetual futures calculation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions for computing position-related values that any consumer
|
|
5
|
+
* of the perps SDK would need. All parameters are required — no default
|
|
6
|
+
* values for critical financial parameters.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Calculate position size in asset units from margin.
|
|
10
|
+
*
|
|
11
|
+
* @param marginUsd - Margin amount in USD
|
|
12
|
+
* @param leverage - Position leverage
|
|
13
|
+
* @param price - Current asset price
|
|
14
|
+
* @returns Position size in asset units
|
|
15
|
+
*/
|
|
16
|
+
export function calculatePositionSize(marginUsd, leverage, price) {
|
|
17
|
+
return (marginUsd * leverage) / price;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Calculate notional value of a position.
|
|
21
|
+
*
|
|
22
|
+
* @param size - Position size in asset units
|
|
23
|
+
* @param price - Current asset price
|
|
24
|
+
* @returns Notional value in USD
|
|
25
|
+
*/
|
|
26
|
+
export function calculateNotionalValue(size, price) {
|
|
27
|
+
return Math.abs(size) * price;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Calculate unrealized PnL.
|
|
31
|
+
*
|
|
32
|
+
* @param entryPrice - Position entry price
|
|
33
|
+
* @param currentPrice - Current market price
|
|
34
|
+
* @param size - Position size (positive for long, negative for short)
|
|
35
|
+
* @returns Unrealized PnL in USD
|
|
36
|
+
*/
|
|
37
|
+
export function calculateUnrealizedPnl(entryPrice, currentPrice, size) {
|
|
38
|
+
return (currentPrice - entryPrice) * size;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Calculate return on equity (ROE) percentage.
|
|
42
|
+
*
|
|
43
|
+
* @param pnl - Profit/loss in USD
|
|
44
|
+
* @param margin - Initial margin in USD
|
|
45
|
+
* @returns ROE as percentage (e.g., 10 for 10%)
|
|
46
|
+
*/
|
|
47
|
+
export function calculateRoe(pnl, margin) {
|
|
48
|
+
if (margin === 0) {
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
return (pnl / margin) * 100;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Calculate required margin for a position.
|
|
55
|
+
*
|
|
56
|
+
* @param notionalValue - Position notional value in USD
|
|
57
|
+
* @param leverage - Position leverage
|
|
58
|
+
* @returns Required margin in USD
|
|
59
|
+
*/
|
|
60
|
+
export function calculateRequiredMargin(notionalValue, leverage) {
|
|
61
|
+
return notionalValue / leverage;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Estimate trading fees.
|
|
65
|
+
*
|
|
66
|
+
* @param sizeUsd - Position size in USD (notional value)
|
|
67
|
+
* @param feeRate - Fee rate as decimal (e.g., 0.00035 for 0.035%)
|
|
68
|
+
* @returns Estimated fee in USD
|
|
69
|
+
*/
|
|
70
|
+
export function estimateFees(sizeUsd, feeRate) {
|
|
71
|
+
return sizeUsd * feeRate;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Apply slippage to a price for order execution.
|
|
75
|
+
*
|
|
76
|
+
* @param price - Base price
|
|
77
|
+
* @param slippagePercent - Slippage tolerance as percentage (e.g., 0.5 for 0.5%)
|
|
78
|
+
* @param isBuy - True if buying (price goes up), false if selling (price goes down)
|
|
79
|
+
* @returns Price adjusted for slippage
|
|
80
|
+
*/
|
|
81
|
+
export function applySlippage(price, slippagePercent, isBuy) {
|
|
82
|
+
const multiplier = 1 + slippagePercent / 100;
|
|
83
|
+
return isBuy ? price * multiplier : price / multiplier;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Calculate expected gain/loss for a TP or SL trigger price.
|
|
87
|
+
* Returns signed values — positive means profit, negative means loss.
|
|
88
|
+
*
|
|
89
|
+
* @param triggerPrice - The TP or SL target price
|
|
90
|
+
* @param entryPrice - Position entry / current market price
|
|
91
|
+
* @param leverage - Position leverage multiplier
|
|
92
|
+
* @param isLong - True for long positions, false for short
|
|
93
|
+
* @param margin - Margin amount in USD
|
|
94
|
+
*/
|
|
95
|
+
export function calculateExpectedPnl(triggerPrice, entryPrice, leverage, isLong, margin) {
|
|
96
|
+
if (!triggerPrice || entryPrice === 0 || margin === 0) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
const priceDiff = isLong
|
|
100
|
+
? triggerPrice - entryPrice
|
|
101
|
+
: entryPrice - triggerPrice;
|
|
102
|
+
const percent = (priceDiff / entryPrice) * leverage * 100;
|
|
103
|
+
const amount = margin * (percent / 100);
|
|
104
|
+
return { amount, percent };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Convert a percentage gain/loss to a target price.
|
|
108
|
+
*
|
|
109
|
+
* @param percent - Target gain/loss percentage (positive = profitable direction)
|
|
110
|
+
* @param entryPrice - Position entry price
|
|
111
|
+
* @param leverage - Position leverage multiplier
|
|
112
|
+
* @param isLong - True for long positions, false for short
|
|
113
|
+
*/
|
|
114
|
+
export function priceFromPercent(percent, entryPrice, leverage, isLong) {
|
|
115
|
+
if (entryPrice === 0 || leverage === 0) {
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
const priceDelta = (percent / 100 / leverage) * entryPrice;
|
|
119
|
+
return isLong ? entryPrice + priceDelta : entryPrice - priceDelta;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Convert a target price to a percentage gain/loss.
|
|
123
|
+
*
|
|
124
|
+
* @param price - Target price
|
|
125
|
+
* @param entryPrice - Position entry price
|
|
126
|
+
* @param leverage - Position leverage multiplier
|
|
127
|
+
* @param isLong - True for long positions, false for short
|
|
128
|
+
*/
|
|
129
|
+
export function percentFromPrice(price, entryPrice, leverage, isLong) {
|
|
130
|
+
if (entryPrice === 0 || leverage === 0) {
|
|
131
|
+
return 0;
|
|
132
|
+
}
|
|
133
|
+
const priceDiff = isLong ? price - entryPrice : entryPrice - price;
|
|
134
|
+
return (priceDiff / entryPrice) * leverage * 100;
|
|
135
|
+
}
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
// Realized PnL percentage
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
/**
|
|
140
|
+
* Calculate realized PnL as a percentage of position value at close.
|
|
141
|
+
*
|
|
142
|
+
* @param realizedPnl - The realized profit/loss in USD
|
|
143
|
+
* @param size - Position size in asset units at close
|
|
144
|
+
* @param price - Price at close
|
|
145
|
+
* @returns PnL as a percentage of position value
|
|
146
|
+
*/
|
|
147
|
+
export function calculateRealizedPnlPercent(realizedPnl, size, price) {
|
|
148
|
+
const positionValue = Math.abs(size) * price;
|
|
149
|
+
if (positionValue === 0) {
|
|
150
|
+
return 0;
|
|
151
|
+
}
|
|
152
|
+
return (realizedPnl / positionValue) * 100;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=calculations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculations.js","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/hyperliquid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA"}
|