@lifi/perps-sdk 0.1.1-alpha.8 → 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 +16 -8
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPrices.d.ts","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,eAAe;IAC9B,
|
|
1
|
+
{"version":3,"file":"getPrices.d.ts","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAMzB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ProvidersResponse } from '@lifi/perps-types';
|
|
2
|
+
import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get all available providers.
|
|
5
|
+
*
|
|
6
|
+
* @param client - The SDK client instance
|
|
7
|
+
* @param options - Request options (e.g., AbortSignal)
|
|
8
|
+
* @returns List of supported providers with their authorization requirements
|
|
9
|
+
* @throws {PerpsError} On API error responses
|
|
10
|
+
* @throws {PerpsError} On network or parsing errors
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
15
|
+
* const { providers } = await getProviders(client)
|
|
16
|
+
* console.log(providers) // [{ key: 'hyperliquid', name: 'Hyperliquid', ... }]
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function getProviders(client: PerpsSDKClient, options?: SDKRequestOptions): Promise<ProvidersResponse>;
|
|
20
|
+
//# sourceMappingURL=getProviders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getProviders.d.ts","sourceRoot":"","sources":["../../../src/services/getProviders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAO5B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Address } from '@lifi/perps-types';
|
|
2
|
+
import type { StorageAdapter } from '../../agent/types.js';
|
|
3
|
+
export declare const LIGHTER_PROVIDER_KEY = "lighter";
|
|
4
|
+
/**
|
|
5
|
+
* Default API key slot. Reusing one slot is deliberate: Lighter allows 256
|
|
6
|
+
* slots per account but re-registering a slot overwrites the prior key, so
|
|
7
|
+
* a fixed slot keeps storage small and recovery simple.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_API_KEY_INDEX = 1;
|
|
10
|
+
export interface LighterApiKey {
|
|
11
|
+
/** Lighter account index, looked up once via accountsByL1Address. */
|
|
12
|
+
accountIndex: number;
|
|
13
|
+
/** API key slot (0-255). Defaults to {@link DEFAULT_API_KEY_INDEX}. */
|
|
14
|
+
apiKeyIndex: number;
|
|
15
|
+
/** Lighter-native private key (0x-prefixed hex). */
|
|
16
|
+
apiKeyPrivateKey: string;
|
|
17
|
+
/** Corresponding public key, registered via ChangePubKey. */
|
|
18
|
+
apiKeyPublicKey: string;
|
|
19
|
+
}
|
|
20
|
+
export declare class LighterKeyStore {
|
|
21
|
+
private readonly storage;
|
|
22
|
+
private readonly cache;
|
|
23
|
+
constructor(storage: StorageAdapter);
|
|
24
|
+
private storageKey;
|
|
25
|
+
get(address: Address): Promise<LighterApiKey | null>;
|
|
26
|
+
set(address: Address, value: LighterApiKey): Promise<void>;
|
|
27
|
+
remove(address: Address): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=LighterKeyStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LighterKeyStore.d.ts","sourceRoot":"","sources":["../../../../src/signers/lighter/LighterKeyStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAc1D,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAEtC,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAA;IACpB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;gBAE7C,OAAO,EAAE,cAAc;IAInC,OAAO,CAAC,UAAU;IAIZ,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAepD,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAK9C"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import type { Address, ApproveReadOnlyTokenParams, LighterAccountConfig } from '@lifi/perps-types';
|
|
2
|
+
import type { Account, WalletClient } from 'viem';
|
|
3
|
+
import type { StorageAdapter } from '../../agent/types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Default Lighter HTTP host the SDK posts the mint request to. Callers
|
|
6
|
+
* pointing at testnet pass an override via {@link LighterReadOnlyTokenManagerOptions.lighterApiUrl}.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_LIGHTER_API_URL = "https://mainnet.zklighter.elliot.ai";
|
|
9
|
+
/**
|
|
10
|
+
* Default token name persisted alongside Lighter's `tokens/create` row.
|
|
11
|
+
* Lighter requires a non-empty `name` form field; the literal here is what
|
|
12
|
+
* surfaces in Lighter's UI listing under `app.lighter.xyz/read-only-tokens`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const DEFAULT_READ_ONLY_TOKEN_NAME = "LI.FI Perps";
|
|
15
|
+
/**
|
|
16
|
+
* Persisted shape of a Lighter read-only token. The `token` string is
|
|
17
|
+
* Lighter's opaque `ro:{accountIndex}:{scope}:{expiry}:{rand}` bearer; the
|
|
18
|
+
* SDK never parses it — `expiry`/`scope`/`accountIndex` are mint-time inputs
|
|
19
|
+
* we keep alongside so consumers can render expiry UX without re-fetching.
|
|
20
|
+
*/
|
|
21
|
+
export interface LighterReadOnlyToken {
|
|
22
|
+
/** Opaque bearer string — never parse client-side. */
|
|
23
|
+
token: string;
|
|
24
|
+
/** Unix seconds. The SDK's source of truth for expiry. */
|
|
25
|
+
expiry: number;
|
|
26
|
+
/** Lighter's `single | all` scope literal recorded at mint time. */
|
|
27
|
+
scope: 'single' | 'all';
|
|
28
|
+
/** Lighter L2 account index the token authorises. */
|
|
29
|
+
accountIndex: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Lighter `POST /api/v1/tokens/create` response shape (subset). Lighter's
|
|
33
|
+
* OpenAPI documents additional fields (`token_id`, `name`, `revoked`, etc.)
|
|
34
|
+
* we don't need client-side.
|
|
35
|
+
*/
|
|
36
|
+
export interface LighterCreateTokenResponse {
|
|
37
|
+
api_token: string;
|
|
38
|
+
account_index: number;
|
|
39
|
+
expiry: number;
|
|
40
|
+
scopes: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Function injected for the HTTP boundary against Lighter's `tokens/create`
|
|
44
|
+
* endpoint. Returning a parsed {@link LighterCreateTokenResponse} keeps the
|
|
45
|
+
* mint code free of fetch/multipart plumbing and lets tests drop a fixture
|
|
46
|
+
* in without spinning a mock server.
|
|
47
|
+
*/
|
|
48
|
+
export type LighterTokenFetcher = (params: {
|
|
49
|
+
url: string;
|
|
50
|
+
authorization: string;
|
|
51
|
+
name: string;
|
|
52
|
+
accountIndex: number;
|
|
53
|
+
expiry: number;
|
|
54
|
+
subAccountAccess: boolean;
|
|
55
|
+
scopes: string;
|
|
56
|
+
}) => Promise<LighterCreateTokenResponse>;
|
|
57
|
+
/**
|
|
58
|
+
* Function injected for the L1 wallet signature. Signature MUST be EIP-191
|
|
59
|
+
* `personal_sign`. Returning a 0x-prefixed hex string keeps the mint path
|
|
60
|
+
* agnostic to whichever wallet abstraction the consumer wires up.
|
|
61
|
+
*/
|
|
62
|
+
export type LighterWalletSigner = (params: {
|
|
63
|
+
address: Address;
|
|
64
|
+
message: string;
|
|
65
|
+
}) => Promise<string>;
|
|
66
|
+
export interface LighterReadOnlyTokenManagerOptions {
|
|
67
|
+
storage?: StorageAdapter;
|
|
68
|
+
/** Lighter API host. Defaults to {@link DEFAULT_LIGHTER_API_URL}. */
|
|
69
|
+
lighterApiUrl?: string;
|
|
70
|
+
/** Override the multipart POST. Defaults to a `fetch`-based implementation. */
|
|
71
|
+
fetcher?: LighterTokenFetcher;
|
|
72
|
+
/** Clock injection for testing expiry logic. Defaults to `Date.now`. */
|
|
73
|
+
now?: () => number;
|
|
74
|
+
}
|
|
75
|
+
export interface ApproveReadOnlyTokenInputs extends ApproveReadOnlyTokenParams {
|
|
76
|
+
/** L1 wallet address that signs the mint message. */
|
|
77
|
+
address: Address;
|
|
78
|
+
}
|
|
79
|
+
export interface ApproveReadOnlyTokenResult {
|
|
80
|
+
token: LighterReadOnlyToken;
|
|
81
|
+
/** Projection of the post-mint Lighter account state. */
|
|
82
|
+
config: Pick<LighterAccountConfig, 'provider' | 'accountIndex' | 'readOnlyTokenApproved' | 'readOnlyTokenExpiry' | 'readOnlyTokenScope'>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Manage the per-account Lighter read-only token alongside the existing
|
|
86
|
+
* `(L1 address, account index)`-scoped storage adapter pattern. Mirrors
|
|
87
|
+
* `AgentManager`'s injection surface so the same `StorageAdapter` powers
|
|
88
|
+
* both. The token is opaque — never parsed client-side; `expiry`/`scope`
|
|
89
|
+
* recorded at mint time are the source of truth.
|
|
90
|
+
*
|
|
91
|
+
* The L1 wallet signer and the HTTP fetcher are both injectable so unit
|
|
92
|
+
* tests don't need a real wallet or network.
|
|
93
|
+
*/
|
|
94
|
+
export declare class LighterReadOnlyTokenManager {
|
|
95
|
+
private readonly storage;
|
|
96
|
+
private readonly lighterApiUrl;
|
|
97
|
+
private readonly fetcher;
|
|
98
|
+
private readonly now;
|
|
99
|
+
private readonly cache;
|
|
100
|
+
constructor(options?: LighterReadOnlyTokenManagerOptions);
|
|
101
|
+
private storageKey;
|
|
102
|
+
private isExpired;
|
|
103
|
+
/**
|
|
104
|
+
* Return the stored token for the `(address, accountIndex)` pair, or
|
|
105
|
+
* `undefined` if absent or past its `expiry`. Never surfaces an expired
|
|
106
|
+
* token — consumers can rely on the return value being usable as-is.
|
|
107
|
+
*/
|
|
108
|
+
get(address: Address, accountIndex: number): Promise<LighterReadOnlyToken | undefined>;
|
|
109
|
+
/**
|
|
110
|
+
* `true` when a stored token exists AND its `expiry` falls within
|
|
111
|
+
* `thresholdDays` of now. `false` when no token exists, when the token is
|
|
112
|
+
* already expired (caller should treat that as "no token"), or when it
|
|
113
|
+
* has more than `thresholdDays` of life left.
|
|
114
|
+
*/
|
|
115
|
+
isReadOnlyTokenExpiringSoon(address: Address, accountIndex: number, thresholdDays?: number): Promise<boolean>;
|
|
116
|
+
/**
|
|
117
|
+
* Persist `token` for the `(address, accountIndex)` pair. Overwrites any
|
|
118
|
+
* prior stored token under the same key — used both by the approve flow
|
|
119
|
+
* and by the renewal flow.
|
|
120
|
+
*/
|
|
121
|
+
set(address: Address, accountIndex: number, token: LighterReadOnlyToken): Promise<void>;
|
|
122
|
+
remove(address: Address, accountIndex: number): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Mint and persist a new Lighter read-only token.
|
|
125
|
+
*
|
|
126
|
+
* Asks `signer` to produce an EIP-191 `personal_sign` over the
|
|
127
|
+
* `createToken`-specific L1 message, POSTs the signed payload to Lighter's
|
|
128
|
+
* `/api/v1/tokens/create` via the injected `fetcher`, and persists the
|
|
129
|
+
* returned bearer alongside its `expiry`/`scope`/`accountIndex`.
|
|
130
|
+
*
|
|
131
|
+
* `expirySeconds` is the absolute unix-seconds expiry Lighter records on
|
|
132
|
+
* the row. Lighter enforces 1 day ≤ lifetime ≤ 10 years server-side; the
|
|
133
|
+
* SDK does NOT pre-validate and surfaces Lighter's 400 verbatim.
|
|
134
|
+
*
|
|
135
|
+
* `scope` defaults to `'all'` (token authorises read access to every
|
|
136
|
+
* account owned by the L1 signer). `'single'` is wired through so callers
|
|
137
|
+
* who need per-account scoping can opt in.
|
|
138
|
+
*
|
|
139
|
+
* @param signer EIP-191 wallet signer for the L1 message.
|
|
140
|
+
* @param inputs Token-mint parameters plus the L1 `address` that signs.
|
|
141
|
+
*/
|
|
142
|
+
approve(signer: LighterWalletSigner, inputs: ApproveReadOnlyTokenInputs): Promise<ApproveReadOnlyTokenResult>;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Build the EIP-191 message the user's L1 wallet signs to authorise a
|
|
146
|
+
* Lighter `tokens/create` request.
|
|
147
|
+
*
|
|
148
|
+
* NOTE — Lighter's public docs do not fully specify the message template
|
|
149
|
+
* for the read-only token mint flow. The shape here is the SDK's best-fit
|
|
150
|
+
* given (a) Lighter's UI hosts the equivalent flow at
|
|
151
|
+
* `app.lighter.xyz/read-only-tokens` and (b) Lighter's `tokens/create`
|
|
152
|
+
* endpoint reads `account_index`, `expiry`, and `scopes` as form fields.
|
|
153
|
+
* If Lighter publishes a documented template that diverges, update this
|
|
154
|
+
* builder — the test fixtures will fail loudly.
|
|
155
|
+
*/
|
|
156
|
+
export declare function buildReadOnlyTokenMessage(params: {
|
|
157
|
+
accountIndex: number;
|
|
158
|
+
expirySeconds: number;
|
|
159
|
+
scope: 'single' | 'all';
|
|
160
|
+
}): string;
|
|
161
|
+
/**
|
|
162
|
+
* Default fetcher: posts a multipart/form-data request to Lighter's
|
|
163
|
+
* `tokens/create` endpoint and returns the parsed response. Throws a
|
|
164
|
+
* {@link PerpsError} with the Lighter-side body when the response is
|
|
165
|
+
* non-2xx.
|
|
166
|
+
*/
|
|
167
|
+
export declare const defaultLighterTokenFetcher: LighterTokenFetcher;
|
|
168
|
+
/**
|
|
169
|
+
* Adapter producing a {@link LighterWalletSigner} from a viem
|
|
170
|
+
* `WalletClient`. Pulled out so `PerpsClient.approveReadOnlyToken` can call
|
|
171
|
+
* into the manager without leaking viem types past the manager's boundary.
|
|
172
|
+
*/
|
|
173
|
+
export declare function walletClientSigner(client: WalletClient<any, any, Account>): LighterWalletSigner;
|
|
174
|
+
//# sourceMappingURL=LighterReadOnlyTokenManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LighterReadOnlyTokenManager.d.ts","sourceRoot":"","sources":["../../../../src/signers/lighter/LighterReadOnlyTokenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAK1D;;;GAGG;AACH,eAAO,MAAM,uBAAuB,wCAAwC,CAAA;AAE5E;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,gBAAgB,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAA;IACvB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;CACf,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAA;AAEzC;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAErB,MAAM,WAAW,kCAAkC;IACjD,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,0BAA0B;IAC5E,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,oBAAoB,CAAA;IAC3B,yDAAyD;IACzD,MAAM,EAAE,IAAI,CACV,oBAAoB,EAClB,UAAU,GACV,cAAc,GACd,uBAAuB,GACvB,qBAAqB,GACrB,oBAAoB,CACvB,CAAA;CACF;AAID;;;;;;;;;GASG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;gBAEpD,OAAO,GAAE,kCAAuC;IAO5D,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB;;;;OAIG;IACG,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAkB5C;;;;;OAKG;IACG,2BAA2B,CAC/B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,SAAK,GACjB,OAAO,CAAC,OAAO,CAAC;IAkBnB;;;;OAIG;IACG,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAMV,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnE;;;;;;;;;;;;;;;;;;OAkBG;IACG,OAAO,CACX,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,0BAA0B,CAAC;CAyCvC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAA;CACxB,GAAG,MAAM,CAOT;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,mBA+BxC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GACtC,mBAAmB,CAGrB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { ActionType } from '@lifi/perps-types';
|
|
2
|
+
import { type LoadLighterWasmOptions } from './wasmLoader.js';
|
|
3
|
+
export interface LighterSignerContext {
|
|
4
|
+
/** Lighter-native private key (from GenerateAPIKey, NOT an Ethereum key). */
|
|
5
|
+
apiKeyPrivateKey: string;
|
|
6
|
+
/** API key slot registered on-chain (0-255). */
|
|
7
|
+
apiKeyIndex: number;
|
|
8
|
+
/** Lighter account index — looked up from the user's L1 Ethereum address. */
|
|
9
|
+
accountIndex: number;
|
|
10
|
+
}
|
|
11
|
+
export interface LighterSignerConfig extends LoadLighterWasmOptions {
|
|
12
|
+
/** Lighter REST API base URL. */
|
|
13
|
+
apiUrl?: string;
|
|
14
|
+
/** Lighter chain ID (304 = mainnet). */
|
|
15
|
+
chainId?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface LighterSignedBlob {
|
|
18
|
+
txType: number;
|
|
19
|
+
txInfo: string;
|
|
20
|
+
txHash: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ChangePubKeyResult extends LighterSignedBlob {
|
|
23
|
+
/** EIP-191 message the L1 Ethereum wallet must sign to authorize the key rotation. */
|
|
24
|
+
messageToSign: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ApiKeyPair {
|
|
27
|
+
publicKey: string;
|
|
28
|
+
privateKey: string;
|
|
29
|
+
}
|
|
30
|
+
export declare class LighterSigner {
|
|
31
|
+
private readonly apiUrl;
|
|
32
|
+
private readonly chainId;
|
|
33
|
+
private readonly loaderOptions;
|
|
34
|
+
private wasm;
|
|
35
|
+
private readonly registeredClients;
|
|
36
|
+
constructor(config?: LighterSignerConfig);
|
|
37
|
+
initialize(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Generate a fresh Lighter API keypair. Pass an optional 32-byte hex seed
|
|
40
|
+
* for deterministic generation (used in tests); omit for a random key.
|
|
41
|
+
*/
|
|
42
|
+
generateAPIKey(seed?: string): Promise<ApiKeyPair>;
|
|
43
|
+
/**
|
|
44
|
+
* Sign an action blob with the provided (apiKeyPrivateKey, apiKeyIndex,
|
|
45
|
+
* accountIndex) context. `wasmSignParams` comes straight from the backend's
|
|
46
|
+
* `WasmBlobActionStep`. Returns the signed `{ txType, txInfo, txHash }`
|
|
47
|
+
* triple the backend forwards to Lighter's `sendTx` endpoint.
|
|
48
|
+
*
|
|
49
|
+
* For REGISTER_API_KEY use `signChangePubKey` instead — it returns an
|
|
50
|
+
* additional `messageToSign` the L1 wallet must countersign.
|
|
51
|
+
*/
|
|
52
|
+
sign(action: ActionType, wasmSignParams: Record<string, unknown>, context: LighterSignerContext): Promise<LighterSignedBlob>;
|
|
53
|
+
/**
|
|
54
|
+
* Step 1 of the REGISTER_API_KEY flow. Generates the WASM blob for a
|
|
55
|
+
* ChangePubKey tx with `L1Sig` left empty, plus the canonical EIP-191
|
|
56
|
+
* message the L1 Ethereum wallet must sign next.
|
|
57
|
+
*
|
|
58
|
+
* Requires the freshly-generated `privateKey` (returned by
|
|
59
|
+
* {@link generateAPIKey}) — the Go WASM signer registers a per-slot client
|
|
60
|
+
* keyed on `(apiKeyIndex, accountIndex)` before it'll sign anything for
|
|
61
|
+
* that slot, including the ChangePubKey that's about to register the key
|
|
62
|
+
* on-chain. This is purely client-side bookkeeping; it does not touch the
|
|
63
|
+
* Lighter API.
|
|
64
|
+
*/
|
|
65
|
+
signChangePubKey(pubKeyHex: string, privateKey: string, nonce: number, apiKeyIndex: number, accountIndex: number): Promise<ChangePubKeyResult>;
|
|
66
|
+
/**
|
|
67
|
+
* Step 2 of REGISTER_API_KEY — inject the L1 signature produced by the
|
|
68
|
+
* user's Ethereum wallet into the ChangePubKey txInfo JSON. `L1Sig` is the
|
|
69
|
+
* only field in txInfo that depends on the L1 signature; txHash does NOT
|
|
70
|
+
* include it (so we do not recompute it).
|
|
71
|
+
*/
|
|
72
|
+
embedL1Signature(txInfo: string, l1Signature: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Create an auth token for authenticated WebSocket subscriptions.
|
|
75
|
+
* `deadline` is a Unix timestamp in seconds — tokens have an 8h hard cap.
|
|
76
|
+
*/
|
|
77
|
+
createAuthToken(deadline: number, context: LighterSignerContext): Promise<string>;
|
|
78
|
+
private ensureLoaded;
|
|
79
|
+
private ensureClient;
|
|
80
|
+
/**
|
|
81
|
+
* Map an ActionType + backend-provided params object to the positional-arg
|
|
82
|
+
* WASM call. The Go signer exports take primitives in order, not an object
|
|
83
|
+
* — so we pick fields in the exact order the Go side expects. Unknown
|
|
84
|
+
* fields (e.g. backend's integrator_* hints) are ignored.
|
|
85
|
+
*/
|
|
86
|
+
private dispatch;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=LighterSigner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LighterSigner.d.ts","sourceRoot":"","sources":["../../../../src/signers/lighter/LighterSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAEL,KAAK,sBAAsB,EAG5B,MAAM,iBAAiB,CAAA;AAWxB,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,CAAA;IACxB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,sFAAsF;IACtF,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAKD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;gBAE1C,MAAM,GAAE,mBAAwB;IAUtC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;OAGG;IACG,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAYxD;;;;;;;;OAQG;IACG,IAAI,CACR,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,iBAAiB,CAAC;IAa7B;;;;;;;;;;;OAWG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC;IAqC9B;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAa7D;;;OAGG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;YAiBJ,YAAY;YAOZ,YAAY;IAmB1B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;CAsGjB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type { LighterApiKey } from './LighterKeyStore.js';
|
|
2
|
+
export { DEFAULT_API_KEY_INDEX, LIGHTER_PROVIDER_KEY, LighterKeyStore, } from './LighterKeyStore.js';
|
|
3
|
+
export type { ApproveReadOnlyTokenInputs, ApproveReadOnlyTokenResult, LighterCreateTokenResponse, LighterReadOnlyToken, LighterReadOnlyTokenManagerOptions, LighterTokenFetcher, LighterWalletSigner, } from './LighterReadOnlyTokenManager.js';
|
|
4
|
+
export { buildReadOnlyTokenMessage, DEFAULT_LIGHTER_API_URL, DEFAULT_READ_ONLY_TOKEN_NAME, defaultLighterTokenFetcher, LighterReadOnlyTokenManager, walletClientSigner, } from './LighterReadOnlyTokenManager.js';
|
|
5
|
+
export type { ApiKeyPair, ChangePubKeyResult, LighterSignedBlob, LighterSignerConfig, LighterSignerContext, } from './LighterSigner.js';
|
|
6
|
+
export { LighterSigner } from './LighterSigner.js';
|
|
7
|
+
export type { LighterWasmExports, LoadLighterWasmOptions, } from './wasmLoader.js';
|
|
8
|
+
export { loadLighterWasm, resetLighterWasmCache } from './wasmLoader.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/signers/lighter/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,kCAAkC,EAClC,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EACV,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export interface LoadLighterWasmOptions {
|
|
2
|
+
/** Override URL for the `.wasm` binary (browser: fetch; Node: fs). */
|
|
3
|
+
wasmBinaryUrl?: string | URL;
|
|
4
|
+
/** Override URL for Go's `wasm_exec.js` runtime. */
|
|
5
|
+
wasmExecJsUrl?: string | URL;
|
|
6
|
+
/**
|
|
7
|
+
* Pre-fetched source of Go's `wasm_exec.js`. Preferred over
|
|
8
|
+
* `wasmExecJsUrl` for bundlers (Vite/webpack) that may transform a `.js`
|
|
9
|
+
* URL on serve, breaking the IIFE that installs `globalThis.Go`. Pass via
|
|
10
|
+
* a `?raw` import (Vite) or equivalent so the original source survives
|
|
11
|
+
* intact.
|
|
12
|
+
*/
|
|
13
|
+
wasmExecJsSource?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface LighterWasmExports {
|
|
16
|
+
GenerateAPIKey: (seed?: string) => {
|
|
17
|
+
publicKey?: string;
|
|
18
|
+
privateKey?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
};
|
|
21
|
+
CreateClient: (url: string, privateKey: string, chainId: number, apiKeyIndex: number, accountIndex: number) => {
|
|
22
|
+
error?: string;
|
|
23
|
+
};
|
|
24
|
+
CheckClient: (apiKeyIndex: number, accountIndex: number) => {
|
|
25
|
+
error?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Returns `{authToken}` on success — note the field name is `authToken`,
|
|
29
|
+
* NOT `token`. Reading the wrong field silently fails (Go sets nothing
|
|
30
|
+
* else on the result), which is why early code paths returned undefined
|
|
31
|
+
* tokens with no error.
|
|
32
|
+
*/
|
|
33
|
+
CreateAuthToken: (deadline: number, apiKeyIndex: number, accountIndex: number) => {
|
|
34
|
+
authToken?: string;
|
|
35
|
+
error?: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Signature mirrors lighter-python's `signer.SignChangePubKey(...)` call —
|
|
39
|
+
* 5 positional args including `skipNonce` (use 0 to embed our supplied
|
|
40
|
+
* nonce; 1 to leave it out for server-fill scenarios). Earlier versions
|
|
41
|
+
* here had only 4 args, which silently shifted all arguments by one and
|
|
42
|
+
* produced txInfo with garbage AccountIndex / ApiKeyIndex fields →
|
|
43
|
+
* Lighter rejected with code 20001 "invalid param".
|
|
44
|
+
*/
|
|
45
|
+
SignChangePubKey: (pubKeyHex: string, skipNonce: number, nonce: number, apiKeyIndex: number, accountIndex: number) => SignResult & {
|
|
46
|
+
messageToSign?: string;
|
|
47
|
+
};
|
|
48
|
+
SignCreateOrder: (...args: unknown[]) => SignResult;
|
|
49
|
+
SignCancelOrder: (...args: unknown[]) => SignResult;
|
|
50
|
+
SignCancelAllOrders: (...args: unknown[]) => SignResult;
|
|
51
|
+
SignTransfer: (...args: unknown[]) => SignResult;
|
|
52
|
+
SignWithdraw: (...args: unknown[]) => SignResult;
|
|
53
|
+
SignUpdateLeverage: (...args: unknown[]) => SignResult;
|
|
54
|
+
SignModifyOrder: (...args: unknown[]) => SignResult;
|
|
55
|
+
SignUpdateMargin: (...args: unknown[]) => SignResult;
|
|
56
|
+
}
|
|
57
|
+
export interface SignResult {
|
|
58
|
+
txType?: number;
|
|
59
|
+
txInfo?: string;
|
|
60
|
+
txHash?: string;
|
|
61
|
+
error?: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Load the Lighter WASM signer. Memoized per-process: subsequent calls return
|
|
65
|
+
* the cached exports. The Go runtime keeps a long-running goroutine to service
|
|
66
|
+
* JS calls — we start it once and never stop it.
|
|
67
|
+
*/
|
|
68
|
+
export declare function loadLighterWasm(options?: LoadLighterWasmOptions): Promise<LighterWasmExports>;
|
|
69
|
+
/** Testing helper — drop the cached WASM instance so the next load reinitializes. */
|
|
70
|
+
export declare function resetLighterWasmCache(): void;
|
|
71
|
+
//# sourceMappingURL=wasmLoader.d.ts.map
|
|
@@ -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,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,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,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 @@
|
|
|
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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hyperliquid-specific liquidation price calculation.
|
|
3
|
+
*
|
|
4
|
+
* Uses the exact formula from Hyperliquid docs:
|
|
5
|
+
* https://hyperliquid.gitbook.io/hyperliquid-docs/trading/liquidations
|
|
6
|
+
*
|
|
7
|
+
* liq_price = price - side * margin_available / position_size / (1 - l * side)
|
|
8
|
+
*
|
|
9
|
+
* Where:
|
|
10
|
+
* - l = 1 / (2 * maxLeverage) (maintenance margin fraction)
|
|
11
|
+
* - side = 1 (long) or -1 (short)
|
|
12
|
+
* - margin_available = isolated_margin - maintenance_margin_required
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Calculate the maintenance margin fraction for a Hyperliquid asset.
|
|
16
|
+
*
|
|
17
|
+
* Maintenance margin is half of the initial margin at max leverage.
|
|
18
|
+
*
|
|
19
|
+
* @param maxLeverage - Maximum leverage for the asset (e.g., 50 for BTC)
|
|
20
|
+
* @returns Maintenance margin fraction (e.g., 0.01 for 50x max leverage),
|
|
21
|
+
* or undefined if maxLeverage is zero
|
|
22
|
+
*/
|
|
23
|
+
export declare function calculateMaintenanceMarginRate(maxLeverage: number): number | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Calculate liquidation price using the exact Hyperliquid formula.
|
|
26
|
+
*
|
|
27
|
+
* For isolated margin, new position prediction. For existing positions,
|
|
28
|
+
* prefer Position.liquidationPrice from the API.
|
|
29
|
+
*
|
|
30
|
+
* Formula derivation (isolated margin, single position):
|
|
31
|
+
* margin_per_unit = entryPrice / leverage
|
|
32
|
+
* maintenance_per_unit = entryPrice * mmr
|
|
33
|
+
* margin_available = margin_per_unit - maintenance_per_unit
|
|
34
|
+
* liq_price = entryPrice - side * margin_available / (1 - mmr * side)
|
|
35
|
+
*
|
|
36
|
+
* Where mmr = 1 / (2 * maxLeverage).
|
|
37
|
+
*
|
|
38
|
+
* @param entryPrice - Position entry price
|
|
39
|
+
* @param leverage - User-selected leverage (e.g., 10)
|
|
40
|
+
* @param isLong - True if long position, false if short
|
|
41
|
+
* @param maxLeverage - Asset's maximum leverage (e.g., 50 for BTC). Determines
|
|
42
|
+
* the maintenance margin rate: mmr = 1 / (2 * maxLeverage)
|
|
43
|
+
* @returns Estimated liquidation price, or undefined if inputs are invalid
|
|
44
|
+
*/
|
|
45
|
+
export declare function calculateLiquidationPrice(entryPrice: number, leverage: number, isLong: boolean, maxLeverage: number): number | undefined;
|
|
46
|
+
//# sourceMappingURL=liquidation.d.ts.map
|