@lifi/perps-sdk-provider-lighter 0.0.0-preview-c903f1e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +35 -0
- package/dist/cjs/LighterProvider.d.ts +20 -0
- package/dist/cjs/LighterProvider.d.ts.map +1 -0
- package/dist/cjs/LighterProvider.js +592 -0
- package/dist/cjs/LighterProvider.js.map +1 -0
- package/dist/cjs/accountConfig.d.ts +3 -0
- package/dist/cjs/accountConfig.d.ts.map +1 -0
- package/dist/cjs/accountConfig.js +69 -0
- package/dist/cjs/accountConfig.js.map +1 -0
- package/dist/cjs/accountSummary.d.ts +3 -0
- package/dist/cjs/accountSummary.d.ts.map +1 -0
- package/dist/cjs/accountSummary.js +8 -0
- package/dist/cjs/accountSummary.js.map +1 -0
- package/dist/cjs/constants.d.ts +14 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +18 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.d.ts +11 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +35 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/signers/LighterKeyStore.d.ts +18 -0
- package/dist/cjs/signers/LighterKeyStore.d.ts.map +1 -0
- package/dist/cjs/signers/LighterKeyStore.js +54 -0
- package/dist/cjs/signers/LighterKeyStore.js.map +1 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts +56 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.js +127 -0
- package/dist/cjs/signers/LighterReadOnlyTokenManager.js.map +1 -0
- package/dist/cjs/signers/LighterSigner.d.ts +41 -0
- package/dist/cjs/signers/LighterSigner.d.ts.map +1 -0
- package/dist/cjs/signers/LighterSigner.js +175 -0
- package/dist/cjs/signers/LighterSigner.js.map +1 -0
- package/dist/cjs/signers/createAuthToken.d.ts +12 -0
- package/dist/cjs/signers/createAuthToken.d.ts.map +1 -0
- package/dist/cjs/signers/createAuthToken.js +28 -0
- package/dist/cjs/signers/createAuthToken.js.map +1 -0
- package/dist/cjs/signers/index.d.ts +11 -0
- package/dist/cjs/signers/index.d.ts.map +1 -0
- package/dist/cjs/signers/index.js +19 -0
- package/dist/cjs/signers/index.js.map +1 -0
- package/dist/cjs/signers/signActions.d.ts +15 -0
- package/dist/cjs/signers/signActions.d.ts.map +1 -0
- package/dist/cjs/signers/signActions.js +142 -0
- package/dist/cjs/signers/signActions.js.map +1 -0
- package/dist/cjs/signers/wasmLoader.d.ts +42 -0
- package/dist/cjs/signers/wasmLoader.d.ts.map +1 -0
- package/dist/cjs/signers/wasmLoader.js +166 -0
- package/dist/cjs/signers/wasmLoader.js.map +1 -0
- package/dist/cjs/types/account.d.ts +97 -0
- package/dist/cjs/types/account.d.ts.map +1 -0
- package/dist/cjs/types/account.js +3 -0
- package/dist/cjs/types/account.js.map +1 -0
- package/dist/cjs/types/action.d.ts +72 -0
- package/dist/cjs/types/action.d.ts.map +1 -0
- package/dist/cjs/types/action.js +23 -0
- package/dist/cjs/types/action.js.map +1 -0
- package/dist/cjs/types/activity.d.ts +73 -0
- package/dist/cjs/types/activity.d.ts.map +1 -0
- package/dist/cjs/types/activity.js +3 -0
- package/dist/cjs/types/activity.js.map +1 -0
- package/dist/cjs/types/asset.d.ts +122 -0
- package/dist/cjs/types/asset.d.ts.map +1 -0
- package/dist/cjs/types/asset.js +3 -0
- package/dist/cjs/types/asset.js.map +1 -0
- package/dist/cjs/types/fill.d.ts +29 -0
- package/dist/cjs/types/fill.d.ts.map +1 -0
- package/dist/cjs/types/fill.js +3 -0
- package/dist/cjs/types/fill.js.map +1 -0
- package/dist/cjs/types/index.d.ts +9 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +25 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/order.d.ts +57 -0
- package/dist/cjs/types/order.d.ts.map +1 -0
- package/dist/cjs/types/order.js +3 -0
- package/dist/cjs/types/order.js.map +1 -0
- package/dist/cjs/types/submit.d.ts +39 -0
- package/dist/cjs/types/submit.d.ts.map +1 -0
- package/dist/cjs/types/submit.js +3 -0
- package/dist/cjs/types/submit.js.map +1 -0
- package/dist/cjs/types/ws.d.ts +84 -0
- package/dist/cjs/types/ws.d.ts.map +1 -0
- package/dist/cjs/types/ws.js +3 -0
- package/dist/cjs/types/ws.js.map +1 -0
- package/dist/cjs/utils/activityCursor.d.ts +12 -0
- package/dist/cjs/utils/activityCursor.d.ts.map +1 -0
- package/dist/cjs/utils/activityCursor.js +85 -0
- package/dist/cjs/utils/activityCursor.js.map +1 -0
- package/dist/cjs/utils/apiClient.d.ts +26 -0
- package/dist/cjs/utils/apiClient.d.ts.map +1 -0
- package/dist/cjs/utils/apiClient.js +94 -0
- package/dist/cjs/utils/apiClient.js.map +1 -0
- package/dist/cjs/utils/fetchDetailedAccount.d.ts +5 -0
- package/dist/cjs/utils/fetchDetailedAccount.d.ts.map +1 -0
- package/dist/cjs/utils/fetchDetailedAccount.js +22 -0
- package/dist/cjs/utils/fetchDetailedAccount.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +16 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +45 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/lighterAsset.d.ts +3 -0
- package/dist/cjs/utils/lighterAsset.d.ts.map +1 -0
- package/dist/cjs/utils/lighterAsset.js +12 -0
- package/dist/cjs/utils/lighterAsset.js.map +1 -0
- package/dist/cjs/utils/liquidation.d.ts +4 -0
- package/dist/cjs/utils/liquidation.d.ts.map +1 -0
- package/dist/cjs/utils/liquidation.js +16 -0
- package/dist/cjs/utils/liquidation.js.map +1 -0
- package/dist/cjs/utils/mapFill.d.ts +4 -0
- package/dist/cjs/utils/mapFill.d.ts.map +1 -0
- package/dist/cjs/utils/mapFill.js +61 -0
- package/dist/cjs/utils/mapFill.js.map +1 -0
- package/dist/cjs/utils/mapOpenPositions.d.ts +4 -0
- package/dist/cjs/utils/mapOpenPositions.d.ts.map +1 -0
- package/dist/cjs/utils/mapOpenPositions.js +9 -0
- package/dist/cjs/utils/mapOpenPositions.js.map +1 -0
- package/dist/cjs/utils/mapOrder.d.ts +15 -0
- package/dist/cjs/utils/mapOrder.d.ts.map +1 -0
- package/dist/cjs/utils/mapOrder.js +164 -0
- package/dist/cjs/utils/mapOrder.js.map +1 -0
- package/dist/cjs/utils/mapPosition.d.ts +4 -0
- package/dist/cjs/utils/mapPosition.d.ts.map +1 -0
- package/dist/cjs/utils/mapPosition.js +30 -0
- package/dist/cjs/utils/mapPosition.js.map +1 -0
- package/dist/cjs/utils/ohlcvInterval.d.ts +2 -0
- package/dist/cjs/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/cjs/utils/ohlcvInterval.js +26 -0
- package/dist/cjs/utils/ohlcvInterval.js.map +1 -0
- package/dist/cjs/utils/orderFormatting.d.ts +4 -0
- package/dist/cjs/utils/orderFormatting.d.ts.map +1 -0
- package/dist/cjs/utils/orderFormatting.js +23 -0
- package/dist/cjs/utils/orderFormatting.js.map +1 -0
- package/dist/cjs/utils/time.d.ts +3 -0
- package/dist/cjs/utils/time.d.ts.map +1 -0
- package/dist/cjs/utils/time.js +8 -0
- package/dist/cjs/utils/time.js.map +1 -0
- package/dist/cjs/utils/wireEncoding.d.ts +9 -0
- package/dist/cjs/utils/wireEncoding.d.ts.map +1 -0
- package/dist/cjs/utils/wireEncoding.js +87 -0
- package/dist/cjs/utils/wireEncoding.js.map +1 -0
- package/dist/cjs/websocket/LighterWsProvider.d.ts +45 -0
- package/dist/cjs/websocket/LighterWsProvider.d.ts.map +1 -0
- package/dist/cjs/websocket/LighterWsProvider.js +396 -0
- package/dist/cjs/websocket/LighterWsProvider.js.map +1 -0
- package/dist/esm/LighterProvider.d.ts +105 -0
- package/dist/esm/LighterProvider.d.ts.map +1 -0
- package/dist/esm/LighterProvider.js +684 -0
- package/dist/esm/LighterProvider.js.map +1 -0
- package/dist/esm/accountConfig.d.ts +14 -0
- package/dist/esm/accountConfig.d.ts.map +1 -0
- package/dist/esm/accountConfig.js +117 -0
- package/dist/esm/accountConfig.js.map +1 -0
- package/dist/esm/accountSummary.d.ts +12 -0
- package/dist/esm/accountSummary.d.ts.map +1 -0
- package/dist/esm/accountSummary.js +14 -0
- package/dist/esm/accountSummary.js.map +1 -0
- package/dist/esm/constants.d.ts +74 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +73 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.d.ts +22 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/signers/LighterKeyStore.d.ts +24 -0
- package/dist/esm/signers/LighterKeyStore.d.ts.map +1 -0
- package/dist/esm/signers/LighterKeyStore.js +55 -0
- package/dist/esm/signers/LighterKeyStore.js.map +1 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts +157 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.js +194 -0
- package/dist/esm/signers/LighterReadOnlyTokenManager.js.map +1 -0
- package/dist/esm/signers/LighterSigner.d.ts +94 -0
- package/dist/esm/signers/LighterSigner.d.ts.map +1 -0
- package/dist/esm/signers/LighterSigner.js +228 -0
- package/dist/esm/signers/LighterSigner.js.map +1 -0
- package/dist/esm/signers/createAuthToken.d.ts +36 -0
- package/dist/esm/signers/createAuthToken.d.ts.map +1 -0
- package/dist/esm/signers/createAuthToken.js +42 -0
- package/dist/esm/signers/createAuthToken.js.map +1 -0
- package/dist/esm/signers/index.d.ts +11 -0
- package/dist/esm/signers/index.d.ts.map +1 -0
- package/dist/esm/signers/index.js +7 -0
- package/dist/esm/signers/index.js.map +1 -0
- package/dist/esm/signers/signActions.d.ts +54 -0
- package/dist/esm/signers/signActions.d.ts.map +1 -0
- package/dist/esm/signers/signActions.js +193 -0
- package/dist/esm/signers/signActions.js.map +1 -0
- package/dist/esm/signers/wasmLoader.d.ts +79 -0
- package/dist/esm/signers/wasmLoader.d.ts.map +1 -0
- package/dist/esm/signers/wasmLoader.js +180 -0
- package/dist/esm/signers/wasmLoader.js.map +1 -0
- package/dist/esm/types/account.d.ts +113 -0
- package/dist/esm/types/account.d.ts.map +1 -0
- package/dist/esm/types/account.js +4 -0
- package/dist/esm/types/account.js.map +1 -0
- package/dist/esm/types/action.d.ts +146 -0
- package/dist/esm/types/action.d.ts.map +1 -0
- package/dist/esm/types/action.js +50 -0
- package/dist/esm/types/action.js.map +1 -0
- package/dist/esm/types/activity.d.ts +83 -0
- package/dist/esm/types/activity.d.ts.map +1 -0
- package/dist/esm/types/activity.js +4 -0
- package/dist/esm/types/activity.js.map +1 -0
- package/dist/esm/types/asset.d.ts +134 -0
- package/dist/esm/types/asset.d.ts.map +1 -0
- package/dist/esm/types/asset.js +3 -0
- package/dist/esm/types/asset.js.map +1 -0
- package/dist/esm/types/fill.d.ts +31 -0
- package/dist/esm/types/fill.d.ts.map +1 -0
- package/dist/esm/types/fill.js +3 -0
- package/dist/esm/types/fill.js.map +1 -0
- package/dist/esm/types/index.d.ts +9 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +12 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/order.d.ts +61 -0
- package/dist/esm/types/order.d.ts.map +1 -0
- package/dist/esm/types/order.js +3 -0
- package/dist/esm/types/order.js.map +1 -0
- package/dist/esm/types/submit.d.ts +76 -0
- package/dist/esm/types/submit.d.ts.map +1 -0
- package/dist/esm/types/submit.js +3 -0
- package/dist/esm/types/submit.js.map +1 -0
- package/dist/esm/types/ws.d.ts +124 -0
- package/dist/esm/types/ws.d.ts.map +1 -0
- package/dist/esm/types/ws.js +11 -0
- package/dist/esm/types/ws.js.map +1 -0
- package/dist/esm/utils/activityCursor.d.ts +51 -0
- package/dist/esm/utils/activityCursor.d.ts.map +1 -0
- package/dist/esm/utils/activityCursor.js +99 -0
- package/dist/esm/utils/activityCursor.js.map +1 -0
- package/dist/esm/utils/apiClient.d.ts +65 -0
- package/dist/esm/utils/apiClient.d.ts.map +1 -0
- package/dist/esm/utils/apiClient.js +131 -0
- package/dist/esm/utils/apiClient.js.map +1 -0
- package/dist/esm/utils/fetchDetailedAccount.d.ts +11 -0
- package/dist/esm/utils/fetchDetailedAccount.d.ts.map +1 -0
- package/dist/esm/utils/fetchDetailedAccount.js +24 -0
- package/dist/esm/utils/fetchDetailedAccount.js.map +1 -0
- package/dist/esm/utils/index.d.ts +16 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +17 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/lighterAsset.d.ts +4 -0
- package/dist/esm/utils/lighterAsset.d.ts.map +1 -0
- package/dist/esm/utils/lighterAsset.js +9 -0
- package/dist/esm/utils/lighterAsset.js.map +1 -0
- package/dist/esm/utils/liquidation.d.ts +22 -0
- package/dist/esm/utils/liquidation.d.ts.map +1 -0
- package/dist/esm/utils/liquidation.js +31 -0
- package/dist/esm/utils/liquidation.js.map +1 -0
- package/dist/esm/utils/mapFill.d.ts +10 -0
- package/dist/esm/utils/mapFill.d.ts.map +1 -0
- package/dist/esm/utils/mapFill.js +72 -0
- package/dist/esm/utils/mapFill.js.map +1 -0
- package/dist/esm/utils/mapOpenPositions.d.ts +11 -0
- package/dist/esm/utils/mapOpenPositions.d.ts.map +1 -0
- package/dist/esm/utils/mapOpenPositions.js +12 -0
- package/dist/esm/utils/mapOpenPositions.js.map +1 -0
- package/dist/esm/utils/mapOrder.d.ts +72 -0
- package/dist/esm/utils/mapOrder.d.ts.map +1 -0
- package/dist/esm/utils/mapOrder.js +219 -0
- package/dist/esm/utils/mapOrder.js.map +1 -0
- package/dist/esm/utils/mapPosition.d.ts +9 -0
- package/dist/esm/utils/mapPosition.d.ts.map +1 -0
- package/dist/esm/utils/mapPosition.js +34 -0
- package/dist/esm/utils/mapPosition.js.map +1 -0
- package/dist/esm/utils/ohlcvInterval.d.ts +3 -0
- package/dist/esm/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/esm/utils/ohlcvInterval.js +30 -0
- package/dist/esm/utils/ohlcvInterval.js.map +1 -0
- package/dist/esm/utils/orderFormatting.d.ts +29 -0
- package/dist/esm/utils/orderFormatting.d.ts.map +1 -0
- package/dist/esm/utils/orderFormatting.js +41 -0
- package/dist/esm/utils/orderFormatting.js.map +1 -0
- package/dist/esm/utils/time.d.ts +5 -0
- package/dist/esm/utils/time.d.ts.map +1 -0
- package/dist/esm/utils/time.js +5 -0
- package/dist/esm/utils/time.js.map +1 -0
- package/dist/esm/utils/wireEncoding.d.ts +72 -0
- package/dist/esm/utils/wireEncoding.d.ts.map +1 -0
- package/dist/esm/utils/wireEncoding.js +129 -0
- package/dist/esm/utils/wireEncoding.js.map +1 -0
- package/dist/esm/websocket/LighterWsProvider.d.ts +97 -0
- package/dist/esm/websocket/LighterWsProvider.d.ts.map +1 -0
- package/dist/esm/websocket/LighterWsProvider.js +489 -0
- package/dist/esm/websocket/LighterWsProvider.js.map +1 -0
- package/dist/types/LighterProvider.d.ts +105 -0
- package/dist/types/LighterProvider.d.ts.map +1 -0
- package/dist/types/accountConfig.d.ts +14 -0
- package/dist/types/accountConfig.d.ts.map +1 -0
- package/dist/types/accountSummary.d.ts +12 -0
- package/dist/types/accountSummary.d.ts.map +1 -0
- package/dist/types/constants.d.ts +74 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/signers/LighterKeyStore.d.ts +24 -0
- package/dist/types/signers/LighterKeyStore.d.ts.map +1 -0
- package/dist/types/signers/LighterReadOnlyTokenManager.d.ts +157 -0
- package/dist/types/signers/LighterReadOnlyTokenManager.d.ts.map +1 -0
- package/dist/types/signers/LighterSigner.d.ts +94 -0
- package/dist/types/signers/LighterSigner.d.ts.map +1 -0
- package/dist/types/signers/createAuthToken.d.ts +36 -0
- package/dist/types/signers/createAuthToken.d.ts.map +1 -0
- package/dist/types/signers/index.d.ts +11 -0
- package/dist/types/signers/index.d.ts.map +1 -0
- package/dist/types/signers/signActions.d.ts +54 -0
- package/dist/types/signers/signActions.d.ts.map +1 -0
- package/dist/types/signers/wasmLoader.d.ts +79 -0
- package/dist/types/signers/wasmLoader.d.ts.map +1 -0
- package/dist/types/types/account.d.ts +113 -0
- package/dist/types/types/account.d.ts.map +1 -0
- package/dist/types/types/action.d.ts +146 -0
- package/dist/types/types/action.d.ts.map +1 -0
- package/dist/types/types/activity.d.ts +83 -0
- package/dist/types/types/activity.d.ts.map +1 -0
- package/dist/types/types/asset.d.ts +134 -0
- package/dist/types/types/asset.d.ts.map +1 -0
- package/dist/types/types/fill.d.ts +31 -0
- package/dist/types/types/fill.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +9 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/order.d.ts +61 -0
- package/dist/types/types/order.d.ts.map +1 -0
- package/dist/types/types/submit.d.ts +76 -0
- package/dist/types/types/submit.d.ts.map +1 -0
- package/dist/types/types/ws.d.ts +124 -0
- package/dist/types/types/ws.d.ts.map +1 -0
- package/dist/types/utils/activityCursor.d.ts +51 -0
- package/dist/types/utils/activityCursor.d.ts.map +1 -0
- package/dist/types/utils/apiClient.d.ts +65 -0
- package/dist/types/utils/apiClient.d.ts.map +1 -0
- package/dist/types/utils/fetchDetailedAccount.d.ts +11 -0
- package/dist/types/utils/fetchDetailedAccount.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +16 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/lighterAsset.d.ts +4 -0
- package/dist/types/utils/lighterAsset.d.ts.map +1 -0
- package/dist/types/utils/liquidation.d.ts +22 -0
- package/dist/types/utils/liquidation.d.ts.map +1 -0
- package/dist/types/utils/mapFill.d.ts +10 -0
- package/dist/types/utils/mapFill.d.ts.map +1 -0
- package/dist/types/utils/mapOpenPositions.d.ts +11 -0
- package/dist/types/utils/mapOpenPositions.d.ts.map +1 -0
- package/dist/types/utils/mapOrder.d.ts +72 -0
- package/dist/types/utils/mapOrder.d.ts.map +1 -0
- package/dist/types/utils/mapPosition.d.ts +9 -0
- package/dist/types/utils/mapPosition.d.ts.map +1 -0
- package/dist/types/utils/ohlcvInterval.d.ts +3 -0
- package/dist/types/utils/ohlcvInterval.d.ts.map +1 -0
- package/dist/types/utils/orderFormatting.d.ts +29 -0
- package/dist/types/utils/orderFormatting.d.ts.map +1 -0
- package/dist/types/utils/time.d.ts +5 -0
- package/dist/types/utils/time.d.ts.map +1 -0
- package/dist/types/utils/wireEncoding.d.ts +72 -0
- package/dist/types/utils/wireEncoding.d.ts.map +1 -0
- package/dist/types/websocket/LighterWsProvider.d.ts +97 -0
- package/dist/types/websocket/LighterWsProvider.d.ts.map +1 -0
- package/dist/wasm/lighter-signer.wasm +0 -0
- package/dist/wasm/wasm_exec.js +575 -0
- package/package.json +67 -0
- package/src/LighterProvider.ts +1167 -0
- package/src/accountConfig.ts +144 -0
- package/src/accountSummary.ts +22 -0
- package/src/constants.ts +89 -0
- package/src/index.ts +37 -0
- package/src/signers/LighterKeyStore.ts +79 -0
- package/src/signers/LighterReadOnlyTokenManager.ts +340 -0
- package/src/signers/LighterSigner.ts +400 -0
- package/src/signers/createAuthToken.ts +69 -0
- package/src/signers/index.ts +36 -0
- package/src/signers/signActions.ts +311 -0
- package/src/signers/wasmLoader.ts +293 -0
- package/src/types/account.ts +123 -0
- package/src/types/action.ts +163 -0
- package/src/types/activity.ts +94 -0
- package/src/types/asset.ts +146 -0
- package/src/types/fill.ts +42 -0
- package/src/types/index.ts +12 -0
- package/src/types/order.ts +65 -0
- package/src/types/submit.ts +83 -0
- package/src/types/ws.ts +136 -0
- package/src/utils/activityCursor.ts +150 -0
- package/src/utils/apiClient.ts +185 -0
- package/src/utils/fetchDetailedAccount.ts +46 -0
- package/src/utils/index.ts +38 -0
- package/src/utils/lighterAsset.ts +10 -0
- package/src/utils/liquidation.ts +39 -0
- package/src/utils/mapFill.ts +108 -0
- package/src/utils/mapOpenPositions.ts +18 -0
- package/src/utils/mapOrder.ts +258 -0
- package/src/utils/mapPosition.ts +42 -0
- package/src/utils/ohlcvInterval.ts +34 -0
- package/src/utils/orderFormatting.ts +46 -0
- package/src/utils/time.ts +6 -0
- package/src/utils/wireEncoding.ts +179 -0
- package/src/websocket/LighterWsProvider.ts +725 -0
- package/wasm/lighter-signer.wasm +0 -0
- package/wasm/wasm_exec.js +575 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.projectLighterConfigSettings = projectLighterConfigSettings;
|
|
4
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
6
|
+
function assertNever(value) {
|
|
7
|
+
throw new Error(`Unreachable: exhaustiveness check failed for value ${JSON.stringify(value)}`);
|
|
8
|
+
}
|
|
9
|
+
const LIGHTER_ACCOUNT_TYPE_STANDARD = 0;
|
|
10
|
+
const LIGHTER_ACCOUNT_TYPE_PREMIUM = 1;
|
|
11
|
+
const ACCOUNT_TYPE_INT_TO_WIRE = {
|
|
12
|
+
[LIGHTER_ACCOUNT_TYPE_STANDARD]: 'standard',
|
|
13
|
+
[LIGHTER_ACCOUNT_TYPE_PREMIUM]: 'premium',
|
|
14
|
+
};
|
|
15
|
+
function projectLighterDescriptor(descriptor, config) {
|
|
16
|
+
switch (descriptor.type) {
|
|
17
|
+
case perps_types_1.ActionType.REGISTER_API_KEY:
|
|
18
|
+
return {
|
|
19
|
+
type: descriptor.type,
|
|
20
|
+
values: [],
|
|
21
|
+
satisfied: config.apiKeyRegistered,
|
|
22
|
+
};
|
|
23
|
+
case perps_types_1.ActionType.APPROVE_READ_ONLY_TOKEN:
|
|
24
|
+
return {
|
|
25
|
+
type: descriptor.type,
|
|
26
|
+
values: [],
|
|
27
|
+
satisfied: config.readOnlyTokenApproved,
|
|
28
|
+
};
|
|
29
|
+
case perps_types_1.ActionType.ACCOUNT_MODE:
|
|
30
|
+
return {
|
|
31
|
+
type: descriptor.type,
|
|
32
|
+
values: [{ name: 'mode', value: null }],
|
|
33
|
+
};
|
|
34
|
+
case perps_types_1.ActionType.ACCOUNT_TYPE:
|
|
35
|
+
return {
|
|
36
|
+
type: descriptor.type,
|
|
37
|
+
values: [
|
|
38
|
+
{
|
|
39
|
+
name: 'tier',
|
|
40
|
+
value: ACCOUNT_TYPE_INT_TO_WIRE[config.accountType] ?? null,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
};
|
|
44
|
+
case perps_types_1.ActionType.APPROVE_AGENT:
|
|
45
|
+
case perps_types_1.ActionType.APPROVE_BUILDER_FEE:
|
|
46
|
+
case perps_types_1.ActionType.SEND_ASSET:
|
|
47
|
+
case perps_types_1.ActionType.WITHDRAWAL:
|
|
48
|
+
case perps_types_1.ActionType.TRANSFER:
|
|
49
|
+
case perps_types_1.ActionType.PLACE_ORDER:
|
|
50
|
+
case perps_types_1.ActionType.PLACE_TRIGGER_ORDER:
|
|
51
|
+
case perps_types_1.ActionType.CANCEL_ORDER:
|
|
52
|
+
case perps_types_1.ActionType.CANCEL_ALL_ORDERS:
|
|
53
|
+
case perps_types_1.ActionType.MODIFY_ORDER:
|
|
54
|
+
case perps_types_1.ActionType.UPDATE_LEVERAGE:
|
|
55
|
+
case perps_types_1.ActionType.UPDATE_POSITION_MARGIN:
|
|
56
|
+
case perps_types_1.ActionType.DEPOSIT:
|
|
57
|
+
case perps_types_1.ActionType.META_VOTE:
|
|
58
|
+
case perps_types_1.ActionType.META_ACCEPT_TERMS:
|
|
59
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `Lighter account-config mapper has no projection for ` +
|
|
60
|
+
`descriptor type '${descriptor.type}' — this ActionType is not ` +
|
|
61
|
+
`valid on Provider.setup / Provider.options for Lighter.`);
|
|
62
|
+
default:
|
|
63
|
+
return assertNever(descriptor.type);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function projectLighterConfigSettings(config, setup, options) {
|
|
67
|
+
return [...setup, ...options].map((descriptor) => projectLighterDescriptor(descriptor, config));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=accountConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":";;AAuIA,oEAQC;AA/ID,+CAA4C;AAM5C,mDAA8D;AAE9D,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,KAAK,CACb,sDAAsD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAA;AACH,CAAC;AASD,MAAM,6BAA6B,GAAG,CAAC,CAAA;AACvC,MAAM,4BAA4B,GAAG,CAAC,CAAA;AAEtC,MAAM,wBAAwB,GAAqC;IACjE,CAAC,6BAA6B,CAAC,EAAE,UAAU;IAC3C,CAAC,4BAA4B,CAAC,EAAE,SAAS;CAC1C,CAAA;AAoBD,SAAS,wBAAwB,CAC/B,UAA0B,EAC1B,MAA4B;IAE5B,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QAKxB,KAAK,wBAAU,CAAC,gBAAgB;YAC9B,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,MAAM,CAAC,gBAAgB;aACnC,CAAA;QAIH,KAAK,wBAAU,CAAC,uBAAuB;YACrC,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,MAAM,CAAC,qBAAqB;aACxC,CAAA;QAKH,KAAK,wBAAU,CAAC,YAAY;YAC1B,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACxC,CAAA;QAOH,KAAK,wBAAU,CAAC,YAAY;YAC1B,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI;qBAC5D;iBACF;aACF,CAAA;QAEH,KAAK,wBAAU,CAAC,aAAa,CAAC;QAC9B,KAAK,wBAAU,CAAC,mBAAmB,CAAC;QACpC,KAAK,wBAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,wBAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,wBAAU,CAAC,QAAQ,CAAC;QACzB,KAAK,wBAAU,CAAC,WAAW,CAAC;QAC5B,KAAK,wBAAU,CAAC,mBAAmB,CAAC;QACpC,KAAK,wBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,wBAAU,CAAC,iBAAiB,CAAC;QAClC,KAAK,wBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,wBAAU,CAAC,eAAe,CAAC;QAChC,KAAK,wBAAU,CAAC,sBAAsB,CAAC;QACvC,KAAK,wBAAU,CAAC,OAAO,CAAC;QACxB,KAAK,wBAAU,CAAC,SAAS,CAAC;QAC1B,KAAK,wBAAU,CAAC,iBAAiB;YAC/B,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,QAAQ,EACvB,sDAAsD;gBACpD,oBAAoB,UAAU,CAAC,IAAI,6BAA6B;gBAChE,yDAAyD,CAC5D,CAAA;QAEH;YACE,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAaD,SAAgB,4BAA4B,CAC1C,MAA4B,EAC5B,KAAuB,EACvB,OAAyB;IAEzB,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC/C,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAC7C,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountSummary.d.ts","sourceRoot":"","sources":["../../src/accountSummary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAW1B,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,cAAc,CAEhB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAccountSummary = getAccountSummary;
|
|
4
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
|
+
function getAccountSummary(account, positions) {
|
|
6
|
+
return (0, perps_sdk_1.summarizeAccount)(account, positions, false);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=accountSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountSummary.js","sourceRoot":"","sources":["../../src/accountSummary.ts"],"names":[],"mappings":";;AAgBA,8CAKC;AArBD,+CAAkD;AAgBlD,SAAgB,iBAAiB,CAC/B,OAAwB,EACxB,SAAqB;IAErB,OAAO,IAAA,4BAAgB,EAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AACpD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FeeTier } from '@lifi/perps-types';
|
|
2
|
+
export declare const LIGHTER_PROVIDER_KEY = "lighter";
|
|
3
|
+
export declare const DEFAULT_LIGHTER_REST_URL = "https://mainnet.zklighter.elliot.ai";
|
|
4
|
+
export declare const DEFAULT_TRADES_LIMIT = 50;
|
|
5
|
+
export declare const LIGHTER_FEE_TICK_SCALE = 1000000;
|
|
6
|
+
export declare const LIGHTER_BASE_FEE_TIER: FeeTier;
|
|
7
|
+
export declare const LIGHTER_ALL_MARKETS_WILDCARD = 255;
|
|
8
|
+
export declare const LIGHTER_HISTORY_PAGE_SIZE = 100;
|
|
9
|
+
export declare const DEFAULT_API_KEY_INDEX = 42;
|
|
10
|
+
declare const LIGHTER_CODE_ACCOUNT_NOT_FOUND = 21100;
|
|
11
|
+
declare const LIGHTER_INVALID_AUTH_CODE = 20013;
|
|
12
|
+
declare const LIGHTER_SUCCESS_CODES: Set<number>;
|
|
13
|
+
export { LIGHTER_CODE_ACCOUNT_NOT_FOUND, LIGHTER_INVALID_AUTH_CODE, LIGHTER_SUCCESS_CODES, };
|
|
14
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAOhD,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAO7C,eAAO,MAAM,wBAAwB,wCAAwC,CAAA;AAG7E,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAUtC,eAAO,MAAM,sBAAsB,UAAY,CAAA;AAS/C,eAAO,MAAM,qBAAqB,EAAE,OAAoC,CAAA;AASxE,eAAO,MAAM,4BAA4B,MAAM,CAAA;AAO/C,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAW5C,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAGvC,QAAA,MAAM,8BAA8B,QAAQ,CAAA;AAO5C,QAAA,MAAM,yBAAyB,QAAQ,CAAA;AASvC,QAAA,MAAM,qBAAqB,aAAoB,CAAA;AAE/C,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,qBAAqB,GACtB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LIGHTER_SUCCESS_CODES = exports.LIGHTER_INVALID_AUTH_CODE = exports.LIGHTER_CODE_ACCOUNT_NOT_FOUND = exports.DEFAULT_API_KEY_INDEX = exports.LIGHTER_HISTORY_PAGE_SIZE = exports.LIGHTER_ALL_MARKETS_WILDCARD = exports.LIGHTER_BASE_FEE_TIER = exports.LIGHTER_FEE_TICK_SCALE = exports.DEFAULT_TRADES_LIMIT = exports.DEFAULT_LIGHTER_REST_URL = exports.LIGHTER_PROVIDER_KEY = void 0;
|
|
4
|
+
exports.LIGHTER_PROVIDER_KEY = 'lighter';
|
|
5
|
+
exports.DEFAULT_LIGHTER_REST_URL = 'https://mainnet.zklighter.elliot.ai';
|
|
6
|
+
exports.DEFAULT_TRADES_LIMIT = 50;
|
|
7
|
+
exports.LIGHTER_FEE_TICK_SCALE = 1_000_000;
|
|
8
|
+
exports.LIGHTER_BASE_FEE_TIER = { maker: '0', taker: '0' };
|
|
9
|
+
exports.LIGHTER_ALL_MARKETS_WILDCARD = 255;
|
|
10
|
+
exports.LIGHTER_HISTORY_PAGE_SIZE = 100;
|
|
11
|
+
exports.DEFAULT_API_KEY_INDEX = 42;
|
|
12
|
+
const LIGHTER_CODE_ACCOUNT_NOT_FOUND = 21100;
|
|
13
|
+
exports.LIGHTER_CODE_ACCOUNT_NOT_FOUND = LIGHTER_CODE_ACCOUNT_NOT_FOUND;
|
|
14
|
+
const LIGHTER_INVALID_AUTH_CODE = 20013;
|
|
15
|
+
exports.LIGHTER_INVALID_AUTH_CODE = LIGHTER_INVALID_AUTH_CODE;
|
|
16
|
+
const LIGHTER_SUCCESS_CODES = new Set([0, 200]);
|
|
17
|
+
exports.LIGHTER_SUCCESS_CODES = LIGHTER_SUCCESS_CODES;
|
|
18
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAOa,QAAA,oBAAoB,GAAG,SAAS,CAAA;AAOhC,QAAA,wBAAwB,GAAG,qCAAqC,CAAA;AAGhE,QAAA,oBAAoB,GAAG,EAAE,CAAA;AAUzB,QAAA,sBAAsB,GAAG,SAAS,CAAA;AASlC,QAAA,qBAAqB,GAAY,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AAS3D,QAAA,4BAA4B,GAAG,GAAG,CAAA;AAOlC,QAAA,yBAAyB,GAAG,GAAG,CAAA;AAW/B,QAAA,qBAAqB,GAAG,EAAE,CAAA;AAGvC,MAAM,8BAA8B,GAAG,KAAK,CAAA;AAmB1C,wEAA8B;AAZhC,MAAM,yBAAyB,GAAG,KAAK,CAAA;AAarC,8DAAyB;AAJ3B,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AAK7C,sDAAqB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { projectLighterConfigSettings } from './accountConfig.js';
|
|
2
|
+
export { getAccountSummary } from './accountSummary.js';
|
|
3
|
+
export { DEFAULT_API_KEY_INDEX, DEFAULT_LIGHTER_REST_URL, LIGHTER_PROVIDER_KEY, } from './constants.js';
|
|
4
|
+
export type { LighterPerpsProvider, LighterProviderOptions, } from './LighterProvider.js';
|
|
5
|
+
export { Lighter, lighterProvider } from './LighterProvider.js';
|
|
6
|
+
export * from './signers/index.js';
|
|
7
|
+
export * from './types/index.js';
|
|
8
|
+
export * from './utils/index.js';
|
|
9
|
+
export type { LighterAuthProvider } from './websocket/LighterWsProvider.js';
|
|
10
|
+
export { LighterWsProvider, type LighterWsProviderOptions, lighterWsProvider, } from './websocket/LighterWsProvider.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE/D,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAC3E,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,iBAAiB,GAClB,MAAM,kCAAkC,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.lighterWsProvider = exports.LighterWsProvider = exports.lighterProvider = exports.Lighter = exports.LIGHTER_PROVIDER_KEY = exports.DEFAULT_LIGHTER_REST_URL = exports.DEFAULT_API_KEY_INDEX = exports.getAccountSummary = exports.projectLighterConfigSettings = void 0;
|
|
18
|
+
var accountConfig_js_1 = require("./accountConfig.js");
|
|
19
|
+
Object.defineProperty(exports, "projectLighterConfigSettings", { enumerable: true, get: function () { return accountConfig_js_1.projectLighterConfigSettings; } });
|
|
20
|
+
var accountSummary_js_1 = require("./accountSummary.js");
|
|
21
|
+
Object.defineProperty(exports, "getAccountSummary", { enumerable: true, get: function () { return accountSummary_js_1.getAccountSummary; } });
|
|
22
|
+
var constants_js_1 = require("./constants.js");
|
|
23
|
+
Object.defineProperty(exports, "DEFAULT_API_KEY_INDEX", { enumerable: true, get: function () { return constants_js_1.DEFAULT_API_KEY_INDEX; } });
|
|
24
|
+
Object.defineProperty(exports, "DEFAULT_LIGHTER_REST_URL", { enumerable: true, get: function () { return constants_js_1.DEFAULT_LIGHTER_REST_URL; } });
|
|
25
|
+
Object.defineProperty(exports, "LIGHTER_PROVIDER_KEY", { enumerable: true, get: function () { return constants_js_1.LIGHTER_PROVIDER_KEY; } });
|
|
26
|
+
var LighterProvider_js_1 = require("./LighterProvider.js");
|
|
27
|
+
Object.defineProperty(exports, "Lighter", { enumerable: true, get: function () { return LighterProvider_js_1.Lighter; } });
|
|
28
|
+
Object.defineProperty(exports, "lighterProvider", { enumerable: true, get: function () { return LighterProvider_js_1.lighterProvider; } });
|
|
29
|
+
__exportStar(require("./signers/index.js"), exports);
|
|
30
|
+
__exportStar(require("./types/index.js"), exports);
|
|
31
|
+
__exportStar(require("./utils/index.js"), exports);
|
|
32
|
+
var LighterWsProvider_js_1 = require("./websocket/LighterWsProvider.js");
|
|
33
|
+
Object.defineProperty(exports, "LighterWsProvider", { enumerable: true, get: function () { return LighterWsProvider_js_1.LighterWsProvider; } });
|
|
34
|
+
Object.defineProperty(exports, "lighterWsProvider", { enumerable: true, get: function () { return LighterWsProvider_js_1.lighterWsProvider; } });
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAeA,uDAAiE;AAAxD,gIAAA,4BAA4B,OAAA;AACrC,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAC1B,+CAIuB;AAHrB,qHAAA,qBAAqB,OAAA;AACrB,wHAAA,wBAAwB,OAAA;AACxB,oHAAA,oBAAoB,OAAA;AAMtB,2DAA+D;AAAtD,6GAAA,OAAO,OAAA;AAAE,qHAAA,eAAe,OAAA;AAEjC,qDAAkC;AAClC,mDAAgC;AAChC,mDAAgC;AAEhC,yEAIyC;AAHvC,yHAAA,iBAAiB,OAAA;AAEjB,yHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type StorageAdapter } from '@lifi/perps-sdk';
|
|
2
|
+
import type { Address } from 'viem';
|
|
3
|
+
export interface LighterApiKey {
|
|
4
|
+
accountIndex: number;
|
|
5
|
+
apiKeyIndex: number;
|
|
6
|
+
apiKeyPrivateKey: string;
|
|
7
|
+
apiKeyPublicKey: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class LighterKeyStore {
|
|
10
|
+
private readonly storage;
|
|
11
|
+
private readonly cache;
|
|
12
|
+
constructor(storage: StorageAdapter);
|
|
13
|
+
private storageKey;
|
|
14
|
+
get(address: Address): Promise<LighterApiKey | null>;
|
|
15
|
+
set(address: Address, value: LighterApiKey): Promise<void>;
|
|
16
|
+
remove(address: Address): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=LighterKeyStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LighterKeyStore.d.ts","sourceRoot":"","sources":["../../../src/signers/LighterKeyStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAUnC,MAAM,WAAW,aAAa;IAE5B,YAAY,EAAE,MAAM,CAAA;IAEpB,WAAW,EAAE,MAAM,CAAA;IAEnB,gBAAgB,EAAE,MAAM,CAAA;IAExB,eAAe,EAAE,MAAM,CAAA;CACxB;AAqBD,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;IAcpD,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,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LighterKeyStore = void 0;
|
|
4
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
|
+
const STORAGE_PREFIX = 'lifi-perps-lighter-key';
|
|
6
|
+
const isLighterApiKey = (value) => {
|
|
7
|
+
if (typeof value !== 'object' || value === null) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
const { accountIndex, apiKeyIndex, apiKeyPrivateKey, apiKeyPublicKey } = value;
|
|
11
|
+
return (typeof accountIndex === 'number' &&
|
|
12
|
+
Number.isFinite(accountIndex) &&
|
|
13
|
+
typeof apiKeyIndex === 'number' &&
|
|
14
|
+
Number.isFinite(apiKeyIndex) &&
|
|
15
|
+
typeof apiKeyPrivateKey === 'string' &&
|
|
16
|
+
apiKeyPrivateKey.length > 0 &&
|
|
17
|
+
typeof apiKeyPublicKey === 'string' &&
|
|
18
|
+
apiKeyPublicKey.length > 0);
|
|
19
|
+
};
|
|
20
|
+
class LighterKeyStore {
|
|
21
|
+
storage;
|
|
22
|
+
cache = new Map();
|
|
23
|
+
constructor(storage) {
|
|
24
|
+
this.storage = storage;
|
|
25
|
+
}
|
|
26
|
+
storageKey(address) {
|
|
27
|
+
return `${STORAGE_PREFIX}:${address.toLowerCase()}`;
|
|
28
|
+
}
|
|
29
|
+
async get(address) {
|
|
30
|
+
const key = this.storageKey(address);
|
|
31
|
+
const cached = this.cache.get(key);
|
|
32
|
+
if (cached) {
|
|
33
|
+
return cached;
|
|
34
|
+
}
|
|
35
|
+
const parsed = await (0, perps_sdk_1.readValidatedRecord)(this.storage, key, isLighterApiKey);
|
|
36
|
+
if (!parsed) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
this.cache.set(key, parsed);
|
|
40
|
+
return parsed;
|
|
41
|
+
}
|
|
42
|
+
async set(address, value) {
|
|
43
|
+
const key = this.storageKey(address);
|
|
44
|
+
this.cache.set(key, value);
|
|
45
|
+
await this.storage.set(key, JSON.stringify(value));
|
|
46
|
+
}
|
|
47
|
+
async remove(address) {
|
|
48
|
+
const key = this.storageKey(address);
|
|
49
|
+
this.cache.delete(key);
|
|
50
|
+
await this.storage.remove(key);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.LighterKeyStore = LighterKeyStore;
|
|
54
|
+
//# sourceMappingURL=LighterKeyStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LighterKeyStore.js","sourceRoot":"","sources":["../../../src/signers/LighterKeyStore.ts"],"names":[],"mappings":";;;AAAA,+CAA0E;AAQ1E,MAAM,cAAc,GAAG,wBAAwB,CAAA;AAc/C,MAAM,eAAe,GAAG,CAAC,KAAc,EAA0B,EAAE;IACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,GACpE,KAAgC,CAAA;IAClC,OAAO,CACL,OAAO,YAAY,KAAK,QAAQ;QAChC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC7B,OAAO,WAAW,KAAK,QAAQ;QAC/B,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC5B,OAAO,gBAAgB,KAAK,QAAQ;QACpC,gBAAgB,CAAC,MAAM,GAAG,CAAC;QAC3B,OAAO,eAAe,KAAK,QAAQ;QACnC,eAAe,CAAC,MAAM,GAAG,CAAC,CAC3B,CAAA;AACH,CAAC,CAAA;AAGD,MAAa,eAAe;IACT,OAAO,CAAgB;IACvB,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAA;IAEzD,YAAY,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEO,UAAU,CAAC,OAAgB;QACjC,OAAO,GAAG,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAgB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAmB,EAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,eAAe,CAAC,CAAA;QAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAgB,EAAE,KAAoB;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAgB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;CACF;AArCD,0CAqCC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type StorageAdapter } from '@lifi/perps-sdk';
|
|
2
|
+
import type { ApproveReadOnlyTokenParams, LighterAccountConfig } from '@lifi/perps-types';
|
|
3
|
+
import type { Address } from 'viem';
|
|
4
|
+
export declare const DEFAULT_LIGHTER_API_URL = "https://mainnet.zklighter.elliot.ai";
|
|
5
|
+
export declare const DEFAULT_READ_ONLY_TOKEN_NAME = "LI.FI Perps";
|
|
6
|
+
export interface LighterReadOnlyToken {
|
|
7
|
+
token: string;
|
|
8
|
+
expiry: number;
|
|
9
|
+
scope: 'single' | 'all';
|
|
10
|
+
accountIndex: number;
|
|
11
|
+
}
|
|
12
|
+
export interface LighterCreateTokenResponse {
|
|
13
|
+
api_token: string;
|
|
14
|
+
account_index: number;
|
|
15
|
+
expiry: number;
|
|
16
|
+
scopes: string;
|
|
17
|
+
}
|
|
18
|
+
export type LighterTokenFetcher = (params: {
|
|
19
|
+
url: string;
|
|
20
|
+
authorization: string;
|
|
21
|
+
name: string;
|
|
22
|
+
accountIndex: number;
|
|
23
|
+
expiry: number;
|
|
24
|
+
subAccountAccess: boolean;
|
|
25
|
+
scopes: string;
|
|
26
|
+
}) => Promise<LighterCreateTokenResponse>;
|
|
27
|
+
export interface LighterReadOnlyTokenManagerOptions {
|
|
28
|
+
storage?: StorageAdapter;
|
|
29
|
+
lighterApiUrl?: string;
|
|
30
|
+
fetcher?: LighterTokenFetcher;
|
|
31
|
+
now?: () => number;
|
|
32
|
+
}
|
|
33
|
+
export interface ApproveReadOnlyTokenInputs extends ApproveReadOnlyTokenParams {
|
|
34
|
+
address: Address;
|
|
35
|
+
}
|
|
36
|
+
export interface ApproveReadOnlyTokenResult {
|
|
37
|
+
token: LighterReadOnlyToken;
|
|
38
|
+
config: Pick<LighterAccountConfig, 'provider' | 'accountIndex' | 'readOnlyTokenApproved' | 'readOnlyTokenExpiry' | 'readOnlyTokenScope'>;
|
|
39
|
+
}
|
|
40
|
+
export declare class LighterReadOnlyTokenManager {
|
|
41
|
+
private readonly storage;
|
|
42
|
+
private readonly lighterApiUrl;
|
|
43
|
+
private readonly fetcher;
|
|
44
|
+
private readonly now;
|
|
45
|
+
private readonly cache;
|
|
46
|
+
constructor(options?: LighterReadOnlyTokenManagerOptions);
|
|
47
|
+
private storageKey;
|
|
48
|
+
private isExpired;
|
|
49
|
+
get(address: Address, accountIndex: number): Promise<LighterReadOnlyToken | undefined>;
|
|
50
|
+
isReadOnlyTokenExpiringSoon(address: Address, accountIndex: number, thresholdDays?: number): Promise<boolean>;
|
|
51
|
+
set(address: Address, accountIndex: number, token: LighterReadOnlyToken): Promise<void>;
|
|
52
|
+
remove(address: Address, accountIndex: number): Promise<void>;
|
|
53
|
+
approve(authorization: string, inputs: ApproveReadOnlyTokenInputs): Promise<ApproveReadOnlyTokenResult>;
|
|
54
|
+
}
|
|
55
|
+
export declare const defaultLighterTokenFetcher: LighterTokenFetcher;
|
|
56
|
+
//# sourceMappingURL=LighterReadOnlyTokenManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LighterReadOnlyTokenManager.d.ts","sourceRoot":"","sources":["../../../src/signers/LighterReadOnlyTokenManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,eAAO,MAAM,uBAAuB,wCAAwC,CAAA;AAQ5E,eAAO,MAAM,4BAA4B,gBAAgB,CAAA;AASzD,MAAM,WAAW,oBAAoB;IAEnC,KAAK,EAAE,MAAM,CAAA;IAEb,MAAM,EAAE,MAAM,CAAA;IAEd,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAA;IAEvB,YAAY,EAAE,MAAM,CAAA;CACrB;AAQD,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AASD,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;AAGzC,MAAM,WAAW,kCAAkC;IACjD,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAE7B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAGD,MAAM,WAAW,0BAA2B,SAAQ,0BAA0B;IAE5E,OAAO,EAAE,OAAO,CAAA;CACjB;AAGD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,oBAAoB,CAAA;IAE3B,MAAM,EAAE,IAAI,CACV,oBAAoB,EAClB,UAAU,GACV,cAAc,GACd,uBAAuB,GACvB,qBAAqB,GACrB,oBAAoB,CACvB,CAAA;CACF;AAoCD,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;IASX,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAwBtC,2BAA2B,CAC/B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,SAAK,GACjB,OAAO,CAAC,OAAO,CAAC;IAoBb,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;IA8B7D,OAAO,CACX,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,0BAA0B,CAAC;CAmCvC;AASD,eAAO,MAAM,0BAA0B,EAAE,mBA+BxC,CAAA"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultLighterTokenFetcher = exports.LighterReadOnlyTokenManager = exports.DEFAULT_READ_ONLY_TOKEN_NAME = exports.DEFAULT_LIGHTER_API_URL = void 0;
|
|
4
|
+
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
6
|
+
const STORAGE_PREFIX = 'lifi:perps:lighter:rotoken';
|
|
7
|
+
exports.DEFAULT_LIGHTER_API_URL = 'https://mainnet.zklighter.elliot.ai';
|
|
8
|
+
exports.DEFAULT_READ_ONLY_TOKEN_NAME = 'LI.FI Perps';
|
|
9
|
+
const SECONDS_PER_DAY = 86_400;
|
|
10
|
+
const isLighterReadOnlyToken = (value) => {
|
|
11
|
+
if (typeof value !== 'object' || value === null) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const { token, expiry, scope, accountIndex } = value;
|
|
15
|
+
return (typeof token === 'string' &&
|
|
16
|
+
token.length > 0 &&
|
|
17
|
+
typeof expiry === 'number' &&
|
|
18
|
+
Number.isFinite(expiry) &&
|
|
19
|
+
(scope === 'single' || scope === 'all') &&
|
|
20
|
+
typeof accountIndex === 'number' &&
|
|
21
|
+
Number.isFinite(accountIndex));
|
|
22
|
+
};
|
|
23
|
+
class LighterReadOnlyTokenManager {
|
|
24
|
+
storage;
|
|
25
|
+
lighterApiUrl;
|
|
26
|
+
fetcher;
|
|
27
|
+
now;
|
|
28
|
+
cache = new Map();
|
|
29
|
+
constructor(options = {}) {
|
|
30
|
+
this.storage = options.storage ?? perps_sdk_1.localStorageAdapter;
|
|
31
|
+
this.lighterApiUrl = options.lighterApiUrl ?? exports.DEFAULT_LIGHTER_API_URL;
|
|
32
|
+
this.fetcher = options.fetcher ?? exports.defaultLighterTokenFetcher;
|
|
33
|
+
this.now = options.now ?? (() => Date.now());
|
|
34
|
+
}
|
|
35
|
+
storageKey(address, accountIndex) {
|
|
36
|
+
return `${STORAGE_PREFIX}:${address.toLowerCase()}:${accountIndex}`;
|
|
37
|
+
}
|
|
38
|
+
isExpired(token) {
|
|
39
|
+
return token.expiry * 1000 <= this.now();
|
|
40
|
+
}
|
|
41
|
+
async get(address, accountIndex) {
|
|
42
|
+
const key = this.storageKey(address, accountIndex);
|
|
43
|
+
const cached = this.cache.get(key);
|
|
44
|
+
if (cached) {
|
|
45
|
+
return this.isExpired(cached) ? undefined : cached;
|
|
46
|
+
}
|
|
47
|
+
const parsed = await (0, perps_sdk_1.readValidatedRecord)(this.storage, key, isLighterReadOnlyToken);
|
|
48
|
+
if (!parsed || this.isExpired(parsed)) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
this.cache.set(key, parsed);
|
|
52
|
+
return parsed;
|
|
53
|
+
}
|
|
54
|
+
async isReadOnlyTokenExpiringSoon(address, accountIndex, thresholdDays = 30) {
|
|
55
|
+
const key = this.storageKey(address, accountIndex);
|
|
56
|
+
const token = this.cache.get(key) ??
|
|
57
|
+
(await (0, perps_sdk_1.readValidatedRecord)(this.storage, key, isLighterReadOnlyToken));
|
|
58
|
+
if (!token) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
const remainingSeconds = token.expiry - Math.floor(this.now() / 1000);
|
|
62
|
+
if (remainingSeconds <= 0) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return remainingSeconds <= thresholdDays * SECONDS_PER_DAY;
|
|
66
|
+
}
|
|
67
|
+
async set(address, accountIndex, token) {
|
|
68
|
+
const key = this.storageKey(address, accountIndex);
|
|
69
|
+
this.cache.set(key, token);
|
|
70
|
+
await this.storage.set(key, JSON.stringify(token));
|
|
71
|
+
}
|
|
72
|
+
async remove(address, accountIndex) {
|
|
73
|
+
const key = this.storageKey(address, accountIndex);
|
|
74
|
+
this.cache.delete(key);
|
|
75
|
+
await this.storage.remove(key);
|
|
76
|
+
}
|
|
77
|
+
async approve(authorization, inputs) {
|
|
78
|
+
const { address, accountIndex, expirySeconds, scope } = inputs;
|
|
79
|
+
const response = await this.fetcher({
|
|
80
|
+
url: `${this.lighterApiUrl}/api/v1/tokens/create`,
|
|
81
|
+
authorization,
|
|
82
|
+
name: exports.DEFAULT_READ_ONLY_TOKEN_NAME,
|
|
83
|
+
accountIndex,
|
|
84
|
+
expiry: expirySeconds,
|
|
85
|
+
subAccountAccess: scope === 'all',
|
|
86
|
+
scopes: 'read.*',
|
|
87
|
+
});
|
|
88
|
+
const token = {
|
|
89
|
+
token: response.api_token,
|
|
90
|
+
expiry: response.expiry,
|
|
91
|
+
scope,
|
|
92
|
+
accountIndex,
|
|
93
|
+
};
|
|
94
|
+
await this.set(address, token.accountIndex, token);
|
|
95
|
+
return {
|
|
96
|
+
token,
|
|
97
|
+
config: {
|
|
98
|
+
provider: 'lighter',
|
|
99
|
+
accountIndex: token.accountIndex,
|
|
100
|
+
readOnlyTokenApproved: true,
|
|
101
|
+
readOnlyTokenExpiry: token.expiry,
|
|
102
|
+
readOnlyTokenScope: token.scope,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.LighterReadOnlyTokenManager = LighterReadOnlyTokenManager;
|
|
108
|
+
const defaultLighterTokenFetcher = async ({ url, authorization, name, accountIndex, expiry, subAccountAccess, scopes, }) => {
|
|
109
|
+
const form = new FormData();
|
|
110
|
+
form.set('name', name);
|
|
111
|
+
form.set('account_index', String(accountIndex));
|
|
112
|
+
form.set('expiry', String(expiry));
|
|
113
|
+
form.set('sub_account_access', String(subAccountAccess));
|
|
114
|
+
form.set('scopes', scopes);
|
|
115
|
+
const response = await fetch(url, {
|
|
116
|
+
method: 'POST',
|
|
117
|
+
headers: { authorization },
|
|
118
|
+
body: form,
|
|
119
|
+
});
|
|
120
|
+
if (!response.ok) {
|
|
121
|
+
const body = await response.text();
|
|
122
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ServerError, `Lighter tokens/create returned ${response.status}: ${body || '<empty>'}`);
|
|
123
|
+
}
|
|
124
|
+
return (await response.json());
|
|
125
|
+
};
|
|
126
|
+
exports.defaultLighterTokenFetcher = defaultLighterTokenFetcher;
|
|
127
|
+
//# sourceMappingURL=LighterReadOnlyTokenManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LighterReadOnlyTokenManager.js","sourceRoot":"","sources":["../../../src/signers/LighterReadOnlyTokenManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ActionType } from '@lifi/perps-types';
|
|
2
|
+
import { type LoadLighterWasmOptions } from './wasmLoader.js';
|
|
3
|
+
export interface LighterSignerContext {
|
|
4
|
+
apiKeyPrivateKey: string;
|
|
5
|
+
apiKeyIndex: number;
|
|
6
|
+
accountIndex: number;
|
|
7
|
+
}
|
|
8
|
+
export interface LighterSignerConfig extends LoadLighterWasmOptions {
|
|
9
|
+
apiUrl?: string;
|
|
10
|
+
chainId?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface LighterSignedBlob {
|
|
13
|
+
txType: number;
|
|
14
|
+
txInfo: string;
|
|
15
|
+
txHash: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ChangePubKeyResult extends LighterSignedBlob {
|
|
18
|
+
messageToSign: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ApiKeyPair {
|
|
21
|
+
publicKey: string;
|
|
22
|
+
privateKey: string;
|
|
23
|
+
}
|
|
24
|
+
export declare class LighterSigner {
|
|
25
|
+
private readonly apiUrl;
|
|
26
|
+
private readonly chainId;
|
|
27
|
+
private readonly loaderOptions;
|
|
28
|
+
private wasm;
|
|
29
|
+
private readonly registeredClients;
|
|
30
|
+
constructor(config?: LighterSignerConfig);
|
|
31
|
+
initialize(): Promise<void>;
|
|
32
|
+
generateAPIKey(seed?: string): Promise<ApiKeyPair>;
|
|
33
|
+
sign(action: ActionType, wasmSignParams: Record<string, unknown>, context: LighterSignerContext): Promise<LighterSignedBlob>;
|
|
34
|
+
signChangePubKey(pubKeyHex: string, privateKey: string, nonce: number, apiKeyIndex: number, accountIndex: number, skipNonce?: 0 | 1): Promise<ChangePubKeyResult>;
|
|
35
|
+
embedL1Signature(txInfo: string, l1Signature: string): string;
|
|
36
|
+
createAuthToken(deadline: number, context: LighterSignerContext): Promise<string>;
|
|
37
|
+
private ensureLoaded;
|
|
38
|
+
private ensureClient;
|
|
39
|
+
private dispatch;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=LighterSigner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LighterSigner.d.ts","sourceRoot":"","sources":["../../../src/signers/LighterSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAEL,KAAK,sBAAsB,EAG5B,MAAM,iBAAiB,CAAA;AAQxB,MAAM,WAAW,oBAAoB;IAEnC,gBAAgB,EAAE,MAAM,CAAA;IAExB,WAAW,EAAE,MAAM,CAAA;IAEnB,YAAY,EAAE,MAAM,CAAA;CACrB;AAGD,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IAEjE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAGD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAGD,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAE3D,aAAa,EAAE,MAAM,CAAA;CACtB;AAGD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAMD,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;IAU3B,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBlD,IAAI,CACR,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,iBAAiB,CAAC;IAyBvB,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,CAAC,GAAG,CAAK,GACnB,OAAO,CAAC,kBAAkB,CAAC;IA4C9B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAiBvD,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;YAiBJ,YAAY;YAOZ,YAAY;IAyB1B,OAAO,CAAC,QAAQ;CAsGjB"}
|