@lifi/perps-sdk 0.1.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +54 -0
- package/dist/cjs/agent/AgentManager.d.ts +15 -0
- package/dist/cjs/agent/AgentManager.d.ts.map +1 -0
- package/dist/cjs/agent/AgentManager.js +80 -0
- package/dist/cjs/agent/AgentManager.js.map +1 -0
- package/dist/cjs/agent/storage.d.ts +4 -0
- package/dist/cjs/agent/storage.d.ts.map +1 -0
- package/dist/cjs/agent/storage.js +47 -0
- package/dist/cjs/agent/storage.js.map +1 -0
- package/dist/cjs/agent/types.d.ts +11 -0
- package/dist/cjs/agent/types.d.ts.map +1 -0
- package/dist/cjs/agent/types.js +3 -0
- package/dist/cjs/agent/types.js.map +1 -0
- package/dist/cjs/client/PerpsClient.d.ts +29 -0
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -0
- package/dist/cjs/client/PerpsClient.js +328 -0
- package/dist/cjs/client/PerpsClient.js.map +1 -0
- package/dist/cjs/client/createPerpsClient.d.ts +30 -0
- package/dist/cjs/client/createPerpsClient.d.ts.map +1 -0
- package/dist/cjs/client/createPerpsClient.js +56 -0
- package/dist/cjs/client/createPerpsClient.js.map +1 -0
- package/dist/cjs/client/types.d.ts +61 -0
- package/dist/cjs/client/types.d.ts.map +1 -0
- package/dist/cjs/client/types.js +3 -0
- package/dist/cjs/client/types.js.map +1 -0
- package/dist/cjs/errors/AgentError.d.ts +10 -0
- package/dist/cjs/errors/AgentError.d.ts.map +1 -0
- package/dist/cjs/errors/AgentError.js +23 -0
- package/dist/cjs/errors/AgentError.js.map +1 -0
- package/dist/cjs/errors/HTTPError.d.ts +11 -0
- package/dist/cjs/errors/HTTPError.d.ts.map +1 -0
- package/dist/cjs/errors/HTTPError.js +62 -0
- package/dist/cjs/errors/HTTPError.js.map +1 -0
- package/dist/cjs/errors/PerpsError.d.ts +9 -0
- package/dist/cjs/errors/PerpsError.d.ts.map +1 -0
- package/dist/cjs/errors/PerpsError.js +27 -0
- package/dist/cjs/errors/PerpsError.js.map +1 -0
- package/dist/cjs/errors/PerpsSDKError.d.ts +9 -0
- package/dist/cjs/errors/PerpsSDKError.d.ts.map +1 -0
- package/dist/cjs/errors/PerpsSDKError.js +36 -0
- package/dist/cjs/errors/PerpsSDKError.js.map +1 -0
- package/dist/cjs/errors/ServerError.d.ts +10 -0
- package/dist/cjs/errors/ServerError.d.ts.map +1 -0
- package/dist/cjs/errors/ServerError.js +24 -0
- package/dist/cjs/errors/ServerError.js.map +1 -0
- package/dist/cjs/errors/ValidationError.d.ts +9 -0
- package/dist/cjs/errors/ValidationError.d.ts.map +1 -0
- package/dist/cjs/errors/ValidationError.js +23 -0
- package/dist/cjs/errors/ValidationError.js.map +1 -0
- package/dist/cjs/errors/constants.d.ts +15 -0
- package/dist/cjs/errors/constants.d.ts.map +1 -0
- package/dist/cjs/errors/constants.js +20 -0
- package/dist/cjs/errors/constants.js.map +1 -0
- package/dist/cjs/errors/utils/rootCause.d.ts +6 -0
- package/dist/cjs/errors/utils/rootCause.d.ts.map +1 -0
- package/dist/cjs/errors/utils/rootCause.js +41 -0
- package/dist/cjs/errors/utils/rootCause.js.map +1 -0
- package/dist/cjs/index.d.ts +46 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +82 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/services/cancelOrder.d.ts +10 -0
- package/dist/cjs/services/cancelOrder.d.ts.map +1 -0
- package/dist/cjs/services/cancelOrder.js +16 -0
- package/dist/cjs/services/cancelOrder.js.map +1 -0
- package/dist/cjs/services/createAuthorization.d.ts +10 -0
- package/dist/cjs/services/createAuthorization.d.ts.map +1 -0
- package/dist/cjs/services/createAuthorization.js +16 -0
- package/dist/cjs/services/createAuthorization.js.map +1 -0
- package/dist/cjs/services/createOrder.d.ts +21 -0
- package/dist/cjs/services/createOrder.d.ts.map +1 -0
- package/dist/cjs/services/createOrder.js +27 -0
- package/dist/cjs/services/createOrder.js.map +1 -0
- package/dist/cjs/services/getAccount.d.ts +8 -0
- package/dist/cjs/services/getAccount.d.ts.map +1 -0
- package/dist/cjs/services/getAccount.js +12 -0
- package/dist/cjs/services/getAccount.js.map +1 -0
- package/dist/cjs/services/getDexes.d.ts +4 -0
- package/dist/cjs/services/getDexes.d.ts.map +1 -0
- package/dist/cjs/services/getDexes.js +8 -0
- package/dist/cjs/services/getDexes.js.map +1 -0
- package/dist/cjs/services/getHistory.d.ts +10 -0
- package/dist/cjs/services/getHistory.d.ts.map +1 -0
- package/dist/cjs/services/getHistory.js +14 -0
- package/dist/cjs/services/getHistory.js.map +1 -0
- package/dist/cjs/services/getMarket.d.ts +8 -0
- package/dist/cjs/services/getMarket.d.ts.map +1 -0
- package/dist/cjs/services/getMarket.js +11 -0
- package/dist/cjs/services/getMarket.js.map +1 -0
- package/dist/cjs/services/getMarkets.d.ts +7 -0
- package/dist/cjs/services/getMarkets.d.ts.map +1 -0
- package/dist/cjs/services/getMarkets.js +9 -0
- package/dist/cjs/services/getMarkets.js.map +1 -0
- package/dist/cjs/services/getOhlcv.d.ts +12 -0
- package/dist/cjs/services/getOhlcv.d.ts.map +1 -0
- package/dist/cjs/services/getOhlcv.js +15 -0
- package/dist/cjs/services/getOhlcv.js.map +1 -0
- package/dist/cjs/services/getOrder.d.ts +9 -0
- package/dist/cjs/services/getOrder.d.ts.map +1 -0
- package/dist/cjs/services/getOrder.js +12 -0
- package/dist/cjs/services/getOrder.js.map +1 -0
- package/dist/cjs/services/getOrderbook.d.ts +9 -0
- package/dist/cjs/services/getOrderbook.d.ts.map +1 -0
- package/dist/cjs/services/getOrderbook.js +12 -0
- package/dist/cjs/services/getOrderbook.js.map +1 -0
- package/dist/cjs/services/getPrices.d.ts +8 -0
- package/dist/cjs/services/getPrices.d.ts.map +1 -0
- package/dist/cjs/services/getPrices.js +12 -0
- package/dist/cjs/services/getPrices.js.map +1 -0
- package/dist/cjs/services/submitAuthorization.d.ts +10 -0
- package/dist/cjs/services/submitAuthorization.d.ts.map +1 -0
- package/dist/cjs/services/submitAuthorization.js +16 -0
- package/dist/cjs/services/submitAuthorization.js.map +1 -0
- package/dist/cjs/services/submitOrder.d.ts +10 -0
- package/dist/cjs/services/submitOrder.d.ts.map +1 -0
- package/dist/cjs/services/submitOrder.js +16 -0
- package/dist/cjs/services/submitOrder.js.map +1 -0
- package/dist/cjs/utils/request.d.ts +7 -0
- package/dist/cjs/utils/request.d.ts.map +1 -0
- package/dist/cjs/utils/request.js +63 -0
- package/dist/cjs/utils/request.js.map +1 -0
- package/dist/cjs/utils/signTypedData.d.ts +3 -0
- package/dist/cjs/utils/signTypedData.d.ts.map +1 -0
- package/dist/cjs/utils/signTypedData.js +15 -0
- package/dist/cjs/utils/signTypedData.js.map +1 -0
- package/dist/cjs/utils/sleep.d.ts +2 -0
- package/dist/cjs/utils/sleep.d.ts.map +1 -0
- package/dist/cjs/utils/sleep.js +6 -0
- package/dist/cjs/utils/sleep.js.map +1 -0
- package/dist/cjs/version.d.ts +3 -0
- package/dist/cjs/version.d.ts.map +1 -0
- package/dist/cjs/version.js +6 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/agent/AgentManager.d.ts +45 -0
- package/dist/esm/agent/AgentManager.d.ts.map +1 -0
- package/dist/esm/agent/AgentManager.js +110 -0
- package/dist/esm/agent/AgentManager.js.map +1 -0
- package/dist/esm/agent/storage.d.ts +12 -0
- package/dist/esm/agent/storage.d.ts.map +1 -0
- package/dist/esm/agent/storage.js +54 -0
- package/dist/esm/agent/storage.js.map +1 -0
- package/dist/esm/agent/types.d.ts +23 -0
- package/dist/esm/agent/types.d.ts.map +1 -0
- package/dist/esm/agent/types.js +2 -0
- package/dist/esm/agent/types.js.map +1 -0
- package/dist/esm/client/PerpsClient.d.ts +188 -0
- package/dist/esm/client/PerpsClient.d.ts.map +1 -0
- package/dist/esm/client/PerpsClient.js +512 -0
- package/dist/esm/client/PerpsClient.js.map +1 -0
- package/dist/esm/client/createPerpsClient.d.ts +82 -0
- package/dist/esm/client/createPerpsClient.d.ts.map +1 -0
- package/dist/esm/client/createPerpsClient.js +80 -0
- package/dist/esm/client/createPerpsClient.js.map +1 -0
- package/dist/esm/client/types.d.ts +131 -0
- package/dist/esm/client/types.d.ts.map +1 -0
- package/dist/esm/client/types.js +2 -0
- package/dist/esm/client/types.js.map +1 -0
- package/dist/esm/errors/AgentError.d.ts +25 -0
- package/dist/esm/errors/AgentError.d.ts.map +1 -0
- package/dist/esm/errors/AgentError.js +35 -0
- package/dist/esm/errors/AgentError.js.map +1 -0
- package/dist/esm/errors/HTTPError.d.ts +11 -0
- package/dist/esm/errors/HTTPError.d.ts.map +1 -0
- package/dist/esm/errors/HTTPError.js +61 -0
- package/dist/esm/errors/HTTPError.js.map +1 -0
- package/dist/esm/errors/PerpsError.d.ts +9 -0
- package/dist/esm/errors/PerpsError.d.ts.map +1 -0
- package/dist/esm/errors/PerpsError.js +23 -0
- package/dist/esm/errors/PerpsError.js.map +1 -0
- package/dist/esm/errors/PerpsSDKError.d.ts +40 -0
- package/dist/esm/errors/PerpsSDKError.d.ts.map +1 -0
- package/dist/esm/errors/PerpsSDKError.js +67 -0
- package/dist/esm/errors/PerpsSDKError.js.map +1 -0
- package/dist/esm/errors/ServerError.d.ts +23 -0
- package/dist/esm/errors/ServerError.d.ts.map +1 -0
- package/dist/esm/errors/ServerError.js +34 -0
- package/dist/esm/errors/ServerError.js.map +1 -0
- package/dist/esm/errors/ValidationError.d.ts +23 -0
- package/dist/esm/errors/ValidationError.d.ts.map +1 -0
- package/dist/esm/errors/ValidationError.js +34 -0
- package/dist/esm/errors/ValidationError.js.map +1 -0
- package/dist/esm/errors/constants.d.ts +15 -0
- package/dist/esm/errors/constants.d.ts.map +1 -0
- package/dist/esm/errors/constants.js +17 -0
- package/dist/esm/errors/constants.js.map +1 -0
- package/dist/esm/errors/utils/rootCause.d.ts +71 -0
- package/dist/esm/errors/utils/rootCause.d.ts.map +1 -0
- package/dist/esm/errors/utils/rootCause.js +99 -0
- package/dist/esm/errors/utils/rootCause.js.map +1 -0
- package/dist/esm/index.d.ts +46 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +37 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/services/cancelOrder.d.ts +51 -0
- package/dist/esm/services/cancelOrder.d.ts.map +1 -0
- package/dist/esm/services/cancelOrder.js +50 -0
- package/dist/esm/services/cancelOrder.js.map +1 -0
- package/dist/esm/services/createAuthorization.d.ts +47 -0
- package/dist/esm/services/createAuthorization.d.ts.map +1 -0
- package/dist/esm/services/createAuthorization.js +46 -0
- package/dist/esm/services/createAuthorization.js.map +1 -0
- package/dist/esm/services/createOrder.d.ts +71 -0
- package/dist/esm/services/createOrder.d.ts.map +1 -0
- package/dist/esm/services/createOrder.js +59 -0
- package/dist/esm/services/createOrder.js.map +1 -0
- package/dist/esm/services/getAccount.d.ts +32 -0
- package/dist/esm/services/getAccount.d.ts.map +1 -0
- package/dist/esm/services/getAccount.js +31 -0
- package/dist/esm/services/getAccount.js.map +1 -0
- package/dist/esm/services/getDexes.d.ts +20 -0
- package/dist/esm/services/getDexes.d.ts.map +1 -0
- package/dist/esm/services/getDexes.js +21 -0
- package/dist/esm/services/getDexes.js.map +1 -0
- package/dist/esm/services/getHistory.d.ts +45 -0
- package/dist/esm/services/getHistory.d.ts.map +1 -0
- package/dist/esm/services/getHistory.js +42 -0
- package/dist/esm/services/getHistory.js.map +1 -0
- package/dist/esm/services/getMarket.d.ts +27 -0
- package/dist/esm/services/getMarket.d.ts.map +1 -0
- package/dist/esm/services/getMarket.js +25 -0
- package/dist/esm/services/getMarket.js.map +1 -0
- package/dist/esm/services/getMarkets.d.ts +25 -0
- package/dist/esm/services/getMarkets.d.ts.map +1 -0
- package/dist/esm/services/getMarkets.js +23 -0
- package/dist/esm/services/getMarkets.js.map +1 -0
- package/dist/esm/services/getOhlcv.d.ts +40 -0
- package/dist/esm/services/getOhlcv.d.ts.map +1 -0
- package/dist/esm/services/getOhlcv.js +34 -0
- package/dist/esm/services/getOhlcv.js.map +1 -0
- package/dist/esm/services/getOrder.d.ts +33 -0
- package/dist/esm/services/getOrder.d.ts.map +1 -0
- package/dist/esm/services/getOrder.js +30 -0
- package/dist/esm/services/getOrder.js.map +1 -0
- package/dist/esm/services/getOrderbook.d.ts +34 -0
- package/dist/esm/services/getOrderbook.d.ts.map +1 -0
- package/dist/esm/services/getOrderbook.js +31 -0
- package/dist/esm/services/getOrderbook.js.map +1 -0
- package/dist/esm/services/getPrices.d.ts +33 -0
- package/dist/esm/services/getPrices.d.ts.map +1 -0
- package/dist/esm/services/getPrices.js +32 -0
- package/dist/esm/services/getPrices.js.map +1 -0
- package/dist/esm/services/submitAuthorization.d.ts +42 -0
- package/dist/esm/services/submitAuthorization.d.ts.map +1 -0
- package/dist/esm/services/submitAuthorization.js +41 -0
- package/dist/esm/services/submitAuthorization.js.map +1 -0
- package/dist/esm/services/submitOrder.d.ts +44 -0
- package/dist/esm/services/submitOrder.d.ts.map +1 -0
- package/dist/esm/services/submitOrder.js +43 -0
- package/dist/esm/services/submitOrder.js.map +1 -0
- package/dist/esm/utils/request.d.ts +26 -0
- package/dist/esm/utils/request.d.ts.map +1 -0
- package/dist/esm/utils/request.js +82 -0
- package/dist/esm/utils/request.js.map +1 -0
- package/dist/esm/utils/signTypedData.d.ts +15 -0
- package/dist/esm/utils/signTypedData.d.ts.map +1 -0
- package/dist/esm/utils/signTypedData.js +25 -0
- package/dist/esm/utils/signTypedData.js.map +1 -0
- package/dist/esm/utils/sleep.d.ts +2 -0
- package/dist/esm/utils/sleep.d.ts.map +1 -0
- package/dist/esm/utils/sleep.js +2 -0
- package/dist/esm/utils/sleep.js.map +1 -0
- package/dist/esm/version.d.ts +3 -0
- package/dist/esm/version.d.ts.map +1 -0
- package/dist/esm/version.js +3 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/agent/AgentManager.d.ts +45 -0
- package/dist/types/agent/AgentManager.d.ts.map +1 -0
- package/dist/types/agent/storage.d.ts +12 -0
- package/dist/types/agent/storage.d.ts.map +1 -0
- package/dist/types/agent/types.d.ts +23 -0
- package/dist/types/agent/types.d.ts.map +1 -0
- package/dist/types/client/PerpsClient.d.ts +188 -0
- package/dist/types/client/PerpsClient.d.ts.map +1 -0
- package/dist/types/client/createPerpsClient.d.ts +82 -0
- package/dist/types/client/createPerpsClient.d.ts.map +1 -0
- package/dist/types/client/types.d.ts +131 -0
- package/dist/types/client/types.d.ts.map +1 -0
- package/dist/types/errors/AgentError.d.ts +25 -0
- package/dist/types/errors/AgentError.d.ts.map +1 -0
- package/dist/types/errors/HTTPError.d.ts +11 -0
- package/dist/types/errors/HTTPError.d.ts.map +1 -0
- package/dist/types/errors/PerpsError.d.ts +9 -0
- package/dist/types/errors/PerpsError.d.ts.map +1 -0
- package/dist/types/errors/PerpsSDKError.d.ts +40 -0
- package/dist/types/errors/PerpsSDKError.d.ts.map +1 -0
- package/dist/types/errors/ServerError.d.ts +23 -0
- package/dist/types/errors/ServerError.d.ts.map +1 -0
- package/dist/types/errors/ValidationError.d.ts +23 -0
- package/dist/types/errors/ValidationError.d.ts.map +1 -0
- package/dist/types/errors/constants.d.ts +15 -0
- package/dist/types/errors/constants.d.ts.map +1 -0
- package/dist/types/errors/utils/rootCause.d.ts +71 -0
- package/dist/types/errors/utils/rootCause.d.ts.map +1 -0
- package/dist/types/index.d.ts +46 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/services/cancelOrder.d.ts +51 -0
- package/dist/types/services/cancelOrder.d.ts.map +1 -0
- package/dist/types/services/createAuthorization.d.ts +47 -0
- package/dist/types/services/createAuthorization.d.ts.map +1 -0
- package/dist/types/services/createOrder.d.ts +71 -0
- package/dist/types/services/createOrder.d.ts.map +1 -0
- package/dist/types/services/getAccount.d.ts +32 -0
- package/dist/types/services/getAccount.d.ts.map +1 -0
- package/dist/types/services/getDexes.d.ts +20 -0
- package/dist/types/services/getDexes.d.ts.map +1 -0
- package/dist/types/services/getHistory.d.ts +45 -0
- package/dist/types/services/getHistory.d.ts.map +1 -0
- package/dist/types/services/getMarket.d.ts +27 -0
- package/dist/types/services/getMarket.d.ts.map +1 -0
- package/dist/types/services/getMarkets.d.ts +25 -0
- package/dist/types/services/getMarkets.d.ts.map +1 -0
- package/dist/types/services/getOhlcv.d.ts +40 -0
- package/dist/types/services/getOhlcv.d.ts.map +1 -0
- package/dist/types/services/getOrder.d.ts +33 -0
- package/dist/types/services/getOrder.d.ts.map +1 -0
- package/dist/types/services/getOrderbook.d.ts +34 -0
- package/dist/types/services/getOrderbook.d.ts.map +1 -0
- package/dist/types/services/getPrices.d.ts +33 -0
- package/dist/types/services/getPrices.d.ts.map +1 -0
- package/dist/types/services/submitAuthorization.d.ts +42 -0
- package/dist/types/services/submitAuthorization.d.ts.map +1 -0
- package/dist/types/services/submitOrder.d.ts +44 -0
- package/dist/types/services/submitOrder.d.ts.map +1 -0
- package/dist/types/utils/request.d.ts +26 -0
- package/dist/types/utils/request.d.ts.map +1 -0
- package/dist/types/utils/signTypedData.d.ts +15 -0
- package/dist/types/utils/signTypedData.d.ts.map +1 -0
- package/dist/types/utils/sleep.d.ts +2 -0
- package/dist/types/utils/sleep.d.ts.map +1 -0
- package/dist/types/version.d.ts +3 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +102 -0
- package/src/agent/AgentManager.ts +135 -0
- package/src/agent/storage.ts +58 -0
- package/src/agent/types.ts +24 -0
- package/src/client/PerpsClient.ts +654 -0
- package/src/client/createPerpsClient.ts +164 -0
- package/src/client/types.ts +156 -0
- package/src/errors/AgentError.ts +43 -0
- package/src/errors/HTTPError.ts +72 -0
- package/src/errors/PerpsError.ts +34 -0
- package/src/errors/PerpsSDKError.ts +79 -0
- package/src/errors/ServerError.ts +41 -0
- package/src/errors/ValidationError.ts +38 -0
- package/src/errors/constants.ts +15 -0
- package/src/errors/utils/rootCause.ts +112 -0
- package/src/index.ts +77 -0
- package/src/services/cancelOrder.ts +75 -0
- package/src/services/createAuthorization.ts +75 -0
- package/src/services/createOrder.ts +113 -0
- package/src/services/getAccount.ts +47 -0
- package/src/services/getDexes.ts +34 -0
- package/src/services/getHistory.ts +62 -0
- package/src/services/getMarket.ts +41 -0
- package/src/services/getMarkets.ts +37 -0
- package/src/services/getOhlcv.ts +58 -0
- package/src/services/getOrder.ts +48 -0
- package/src/services/getOrderbook.ts +49 -0
- package/src/services/getPrices.ts +48 -0
- package/src/services/submitAuthorization.ts +70 -0
- package/src/services/submitOrder.ts +72 -0
- package/src/utils/request.ts +121 -0
- package/src/utils/signTypedData.ts +31 -0
- package/src/utils/sleep.ts +2 -0
- package/src/version.ts +2 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PricesResponse } from '@lifi/perps-types';
|
|
2
|
+
import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
|
|
3
|
+
export interface GetPricesParams {
|
|
4
|
+
/** DEX to get prices from (e.g., 'hyperliquid') */
|
|
5
|
+
dex: string;
|
|
6
|
+
/** Optional list of symbols to filter (e.g., ['BTC', 'ETH']) */
|
|
7
|
+
symbols?: string[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Get current prices for markets.
|
|
11
|
+
*
|
|
12
|
+
* @param client - The SDK client instance
|
|
13
|
+
* @param params - Request parameters
|
|
14
|
+
* @param options - Request options (e.g., AbortSignal)
|
|
15
|
+
* @returns Map of symbol to price
|
|
16
|
+
* @throws {HTTPError} On API error responses
|
|
17
|
+
* @throws {PerpsError} On network or parsing errors
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
22
|
+
* const { prices } = await getPrices(client, { dex: 'hyperliquid' })
|
|
23
|
+
* console.log(prices) // { BTC: '95000.00', ETH: '3400.00', ... }
|
|
24
|
+
*
|
|
25
|
+
* // Filter by symbols
|
|
26
|
+
* const { prices } = await getPrices(client, {
|
|
27
|
+
* dex: 'hyperliquid',
|
|
28
|
+
* symbols: ['BTC', 'ETH']
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function getPrices(client: PerpsSDKClient, params: GetPricesParams, options?: SDKRequestOptions): Promise<PricesResponse>;
|
|
33
|
+
//# sourceMappingURL=getPrices.d.ts.map
|
|
@@ -0,0 +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,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,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,32 @@
|
|
|
1
|
+
import { buildUrl, request } from '../utils/request.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get current prices for markets.
|
|
4
|
+
*
|
|
5
|
+
* @param client - The SDK client instance
|
|
6
|
+
* @param params - Request parameters
|
|
7
|
+
* @param options - Request options (e.g., AbortSignal)
|
|
8
|
+
* @returns Map of symbol to price
|
|
9
|
+
* @throws {HTTPError} 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 { prices } = await getPrices(client, { dex: 'hyperliquid' })
|
|
16
|
+
* console.log(prices) // { BTC: '95000.00', ETH: '3400.00', ... }
|
|
17
|
+
*
|
|
18
|
+
* // Filter by symbols
|
|
19
|
+
* const { prices } = await getPrices(client, {
|
|
20
|
+
* dex: 'hyperliquid',
|
|
21
|
+
* symbols: ['BTC', 'ETH']
|
|
22
|
+
* })
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export async function getPrices(client, params, options) {
|
|
26
|
+
const url = buildUrl(`${client.config.apiUrl}/prices`, {
|
|
27
|
+
dex: params.dex,
|
|
28
|
+
symbols: params.symbols?.join(','),
|
|
29
|
+
});
|
|
30
|
+
return request(client.config, url, {}, options);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=getPrices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPrices.js","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AASvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAuB,EACvB,OAA2B;IAE3B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE;QACrD,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;KACnC,CAAC,CAAA;IACF,OAAO,OAAO,CAAiB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Address, AuthorizationsResponse, SignedAuthorization } from '@lifi/perps-types';
|
|
2
|
+
import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
|
|
3
|
+
export interface SubmitAuthorizationParams {
|
|
4
|
+
/** DEX to authorize (e.g., 'hyperliquid') */
|
|
5
|
+
dex: string;
|
|
6
|
+
/** Wallet address */
|
|
7
|
+
address: Address;
|
|
8
|
+
/** Address of the signer (for agent mode, this is the agent address) */
|
|
9
|
+
signerAddress?: Address;
|
|
10
|
+
/** Signed authorization actions */
|
|
11
|
+
actions: SignedAuthorization[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Submit signed authorizations to the DEX.
|
|
15
|
+
*
|
|
16
|
+
* @param client - The SDK client instance
|
|
17
|
+
* @param params - Request parameters
|
|
18
|
+
* @param options - Request options (e.g., AbortSignal)
|
|
19
|
+
* @returns Results for each authorization action
|
|
20
|
+
* @throws {HTTPError} On API error responses
|
|
21
|
+
* @throws {PerpsError} On network or parsing errors
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
26
|
+
* const { results } = await submitAuthorization(client, {
|
|
27
|
+
* dex: 'hyperliquid',
|
|
28
|
+
* address: '0x1234...',
|
|
29
|
+
* actions: signedActions
|
|
30
|
+
* })
|
|
31
|
+
*
|
|
32
|
+
* for (const result of results) {
|
|
33
|
+
* if (result.success) {
|
|
34
|
+
* console.log(`${result.action} authorized`)
|
|
35
|
+
* } else {
|
|
36
|
+
* console.error(`${result.action} failed: ${result.error}`)
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function submitAuthorization(client: PerpsSDKClient, params: SubmitAuthorizationParams, options?: SDKRequestOptions): Promise<AuthorizationsResponse>;
|
|
42
|
+
//# sourceMappingURL=submitAuthorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submitAuthorization.d.ts","sourceRoot":"","sources":["../../../src/services/submitAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mCAAmC;IACnC,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAejC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { request } from '../utils/request.js';
|
|
2
|
+
/**
|
|
3
|
+
* Submit signed authorizations to the DEX.
|
|
4
|
+
*
|
|
5
|
+
* @param client - The SDK client instance
|
|
6
|
+
* @param params - Request parameters
|
|
7
|
+
* @param options - Request options (e.g., AbortSignal)
|
|
8
|
+
* @returns Results for each authorization action
|
|
9
|
+
* @throws {HTTPError} 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 { results } = await submitAuthorization(client, {
|
|
16
|
+
* dex: 'hyperliquid',
|
|
17
|
+
* address: '0x1234...',
|
|
18
|
+
* actions: signedActions
|
|
19
|
+
* })
|
|
20
|
+
*
|
|
21
|
+
* for (const result of results) {
|
|
22
|
+
* if (result.success) {
|
|
23
|
+
* console.log(`${result.action} authorized`)
|
|
24
|
+
* } else {
|
|
25
|
+
* console.error(`${result.action} failed: ${result.error}`)
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export async function submitAuthorization(client, params, options) {
|
|
31
|
+
return request(client.config, `${client.config.apiUrl}/authorization`, {
|
|
32
|
+
method: 'POST',
|
|
33
|
+
body: JSON.stringify({
|
|
34
|
+
dex: params.dex,
|
|
35
|
+
address: params.address,
|
|
36
|
+
signerAddress: params.signerAddress,
|
|
37
|
+
actions: params.actions,
|
|
38
|
+
}),
|
|
39
|
+
}, options);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=submitAuthorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submitAuthorization.js","sourceRoot":"","sources":["../../../src/services/submitAuthorization.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAa7C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,MAAiC,EACjC,OAA2B;IAE3B,OAAO,OAAO,CACZ,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,gBAAgB,EACvC;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;KACH,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Address, SignedOrderAction, SubmitOrderResponse } from '@lifi/perps-types';
|
|
2
|
+
import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
|
|
3
|
+
export interface SubmitOrderParams {
|
|
4
|
+
/** DEX to submit order to (e.g., 'hyperliquid') */
|
|
5
|
+
dex: string;
|
|
6
|
+
/** Wallet address */
|
|
7
|
+
address: Address;
|
|
8
|
+
/** Address of the signer (for agent mode, this is the agent address) */
|
|
9
|
+
signerAddress?: Address;
|
|
10
|
+
/** Signed order actions */
|
|
11
|
+
actions: SignedOrderAction[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Submit signed order actions to the DEX.
|
|
15
|
+
*
|
|
16
|
+
* @param client - The SDK client instance
|
|
17
|
+
* @param params - Request parameters
|
|
18
|
+
* @param options - Request options (e.g., AbortSignal)
|
|
19
|
+
* @returns Results for each order action
|
|
20
|
+
* @throws {HTTPError} On API error responses
|
|
21
|
+
* @throws {PerpsError} On network or parsing errors
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* const client = createPerpsClient({ integrator: 'my-app' })
|
|
26
|
+
*
|
|
27
|
+
* // After creating and signing order actions
|
|
28
|
+
* const { results } = await submitOrder(client, {
|
|
29
|
+
* dex: 'hyperliquid',
|
|
30
|
+
* address: '0x1234...',
|
|
31
|
+
* actions: signedActions
|
|
32
|
+
* })
|
|
33
|
+
*
|
|
34
|
+
* for (const result of results) {
|
|
35
|
+
* if (result.success) {
|
|
36
|
+
* console.log(`Order placed: ${result.orderId}`)
|
|
37
|
+
* } else {
|
|
38
|
+
* console.error(`Order failed: ${result.error}`)
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function submitOrder(client: PerpsSDKClient, params: SubmitOrderParams, options?: SDKRequestOptions): Promise<SubmitOrderResponse>;
|
|
44
|
+
//# sourceMappingURL=submitOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submitOrder.d.ts","sourceRoot":"","sources":["../../../src/services/submitOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,2BAA2B;IAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAe9B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { request } from '../utils/request.js';
|
|
2
|
+
/**
|
|
3
|
+
* Submit signed order actions to the DEX.
|
|
4
|
+
*
|
|
5
|
+
* @param client - The SDK client instance
|
|
6
|
+
* @param params - Request parameters
|
|
7
|
+
* @param options - Request options (e.g., AbortSignal)
|
|
8
|
+
* @returns Results for each order action
|
|
9
|
+
* @throws {HTTPError} 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
|
+
*
|
|
16
|
+
* // After creating and signing order actions
|
|
17
|
+
* const { results } = await submitOrder(client, {
|
|
18
|
+
* dex: 'hyperliquid',
|
|
19
|
+
* address: '0x1234...',
|
|
20
|
+
* actions: signedActions
|
|
21
|
+
* })
|
|
22
|
+
*
|
|
23
|
+
* for (const result of results) {
|
|
24
|
+
* if (result.success) {
|
|
25
|
+
* console.log(`Order placed: ${result.orderId}`)
|
|
26
|
+
* } else {
|
|
27
|
+
* console.error(`Order failed: ${result.error}`)
|
|
28
|
+
* }
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export async function submitOrder(client, params, options) {
|
|
33
|
+
return request(client.config, `${client.config.apiUrl}/order`, {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
body: JSON.stringify({
|
|
36
|
+
dex: params.dex,
|
|
37
|
+
address: params.address,
|
|
38
|
+
signerAddress: params.signerAddress,
|
|
39
|
+
actions: params.actions,
|
|
40
|
+
}),
|
|
41
|
+
}, options);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=submitOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submitOrder.js","sourceRoot":"","sources":["../../../src/services/submitOrder.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAa7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAsB,EACtB,MAAyB,EACzB,OAA2B;IAE3B,OAAO,OAAO,CACZ,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,EAC/B;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;KACH,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { PerpsBaseConfig, SDKRequestOptions } from '../client/createPerpsClient.js';
|
|
2
|
+
export interface RequestOptions extends RequestInit {
|
|
3
|
+
/** Number of retries on 5xx errors. Default: 1 */
|
|
4
|
+
retries?: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Make an HTTP request to the Perps API.
|
|
8
|
+
*
|
|
9
|
+
* @param config - SDK configuration
|
|
10
|
+
* @param url - The full URL to request
|
|
11
|
+
* @param options - Fetch options plus retries
|
|
12
|
+
* @param sdkOptions - SDK-specific options (signal, etc.)
|
|
13
|
+
* @returns Parsed JSON response
|
|
14
|
+
* @throws {HTTPError} On non-2xx responses
|
|
15
|
+
* @throws {PerpsError} On network or parsing errors
|
|
16
|
+
*/
|
|
17
|
+
export declare function request<T>(config: PerpsBaseConfig, url: string, options?: RequestOptions, sdkOptions?: SDKRequestOptions): Promise<T>;
|
|
18
|
+
/**
|
|
19
|
+
* Build a URL with query parameters.
|
|
20
|
+
*
|
|
21
|
+
* @param baseUrl - The base URL
|
|
22
|
+
* @param params - Query parameters (undefined values are filtered out)
|
|
23
|
+
* @returns Full URL with query string
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildUrl(baseUrl: string, params: Record<string, string | number | boolean | undefined>): string;
|
|
26
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAMvC,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,EAC5B,UAAU,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAgEZ;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC5D,MAAM,CAWR"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { PerpsErrorCode } from '@lifi/perps-types';
|
|
2
|
+
import { HTTPError } from '../errors/HTTPError.js';
|
|
3
|
+
import { PerpsError } from '../errors/PerpsError.js';
|
|
4
|
+
import { version } from '../version.js';
|
|
5
|
+
import { sleep } from './sleep.js';
|
|
6
|
+
const DEFAULT_RETRIES = 1;
|
|
7
|
+
/**
|
|
8
|
+
* Make an HTTP request to the Perps API.
|
|
9
|
+
*
|
|
10
|
+
* @param config - SDK configuration
|
|
11
|
+
* @param url - The full URL to request
|
|
12
|
+
* @param options - Fetch options plus retries
|
|
13
|
+
* @param sdkOptions - SDK-specific options (signal, etc.)
|
|
14
|
+
* @returns Parsed JSON response
|
|
15
|
+
* @throws {HTTPError} On non-2xx responses
|
|
16
|
+
* @throws {PerpsError} On network or parsing errors
|
|
17
|
+
*/
|
|
18
|
+
export async function request(config, url, options = {}, sdkOptions) {
|
|
19
|
+
// Wait for API health check to pass before making requests
|
|
20
|
+
if (config.readyPromise) {
|
|
21
|
+
await config.readyPromise;
|
|
22
|
+
}
|
|
23
|
+
const retries = options.retries ?? DEFAULT_RETRIES;
|
|
24
|
+
const headers = {
|
|
25
|
+
'Content-Type': 'application/json',
|
|
26
|
+
'x-lifi-integrator': config.integrator,
|
|
27
|
+
'x-lifi-perps-sdk': version,
|
|
28
|
+
...options.headers,
|
|
29
|
+
};
|
|
30
|
+
if (config.apiKey) {
|
|
31
|
+
headers['x-lifi-api-key'] = config.apiKey;
|
|
32
|
+
}
|
|
33
|
+
// Merge signal from sdkOptions into options
|
|
34
|
+
let finalOptions = {
|
|
35
|
+
...options,
|
|
36
|
+
headers,
|
|
37
|
+
signal: sdkOptions?.signal ?? options.signal,
|
|
38
|
+
};
|
|
39
|
+
// Apply request interceptor if configured
|
|
40
|
+
if (config.requestInterceptor) {
|
|
41
|
+
finalOptions = await config.requestInterceptor(url, finalOptions);
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const response = await fetch(url, finalOptions);
|
|
45
|
+
if (!response.ok) {
|
|
46
|
+
const error = new HTTPError(response, url);
|
|
47
|
+
await error.buildAdditionalDetails();
|
|
48
|
+
// Retry on 5xx errors
|
|
49
|
+
if (retries > 0 && response.status >= 500) {
|
|
50
|
+
await sleep(500);
|
|
51
|
+
return request(config, url, { ...options, retries: retries - 1 }, sdkOptions);
|
|
52
|
+
}
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
return (await response.json());
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error instanceof HTTPError || error instanceof PerpsError) {
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
// Network error or other fetch failure
|
|
62
|
+
throw new PerpsError(PerpsErrorCode.ServerError, error instanceof Error ? error.message : 'Request failed');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Build a URL with query parameters.
|
|
67
|
+
*
|
|
68
|
+
* @param baseUrl - The base URL
|
|
69
|
+
* @param params - Query parameters (undefined values are filtered out)
|
|
70
|
+
* @returns Full URL with query string
|
|
71
|
+
*/
|
|
72
|
+
export function buildUrl(baseUrl, params) {
|
|
73
|
+
const searchParams = new URLSearchParams();
|
|
74
|
+
for (const [key, value] of Object.entries(params)) {
|
|
75
|
+
if (value !== undefined) {
|
|
76
|
+
searchParams.set(key, String(value));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const queryString = searchParams.toString();
|
|
80
|
+
return queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Hex, PerpsTypedData } from '@lifi/perps-types';
|
|
2
|
+
/**
|
|
3
|
+
* Sign EIP-712 typed data with a private key.
|
|
4
|
+
*
|
|
5
|
+
* @param privateKey - The private key to sign with
|
|
6
|
+
* @param typedData - The typed data to sign
|
|
7
|
+
* @returns The signature as a hex string
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const signature = await signTypedData(agentPrivateKey, typedData)
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function signTypedData(privateKey: Hex, typedData: PerpsTypedData): Promise<Hex>;
|
|
15
|
+
//# sourceMappingURL=signTypedData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../src/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAG5D;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,GAAG,EACf,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,CAAC,CAYd"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
2
|
+
/**
|
|
3
|
+
* Sign EIP-712 typed data with a private key.
|
|
4
|
+
*
|
|
5
|
+
* @param privateKey - The private key to sign with
|
|
6
|
+
* @param typedData - The typed data to sign
|
|
7
|
+
* @returns The signature as a hex string
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const signature = await signTypedData(agentPrivateKey, typedData)
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export async function signTypedData(privateKey, typedData) {
|
|
15
|
+
const account = privateKeyToAccount(privateKey);
|
|
16
|
+
// viem's signTypedData expects the typed data in a specific format
|
|
17
|
+
const signature = await account.signTypedData({
|
|
18
|
+
domain: typedData.domain,
|
|
19
|
+
types: typedData.types,
|
|
20
|
+
primaryType: typedData.primaryType,
|
|
21
|
+
message: typedData.message,
|
|
22
|
+
});
|
|
23
|
+
return signature;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=signTypedData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../src/utils/signTypedData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAe,EACf,SAAyB;IAEzB,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAE/C,mEAAmE;IACnE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;QAC5C,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,oBAAoB,CAAA;AACrC,eAAO,MAAM,OAAO,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Address, Hex } from '@lifi/perps-types';
|
|
2
|
+
import type { Agent, StorageAdapter } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Manages agent keypairs for USER_AGENT signing mode.
|
|
5
|
+
* Agent keys are stored per user address + DEX combination.
|
|
6
|
+
*/
|
|
7
|
+
export declare class AgentManager {
|
|
8
|
+
private storage;
|
|
9
|
+
private cache;
|
|
10
|
+
constructor(storage?: StorageAdapter);
|
|
11
|
+
/**
|
|
12
|
+
* Get the storage key for an agent.
|
|
13
|
+
*/
|
|
14
|
+
private storageKey;
|
|
15
|
+
/**
|
|
16
|
+
* Get an existing agent for a user + DEX pair.
|
|
17
|
+
*
|
|
18
|
+
* @throws {PerpsError} If agent not found
|
|
19
|
+
*/
|
|
20
|
+
getAgent(address: Address, dex: string): Promise<Agent>;
|
|
21
|
+
/**
|
|
22
|
+
* Get an existing agent or create a new one.
|
|
23
|
+
*/
|
|
24
|
+
getOrCreateAgent(address: Address, dex: string): Promise<Agent>;
|
|
25
|
+
/**
|
|
26
|
+
* Check if an agent exists for a user + DEX pair.
|
|
27
|
+
*/
|
|
28
|
+
hasAgent(address: Address, dex: string): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Remove an agent for a user + DEX pair.
|
|
31
|
+
* Call this when the user revokes agent authorization.
|
|
32
|
+
*/
|
|
33
|
+
removeAgent(address: Address, dex: string): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Import an existing agent keypair.
|
|
36
|
+
* Useful for restoring from backup or using a specific key.
|
|
37
|
+
*/
|
|
38
|
+
importAgent(address: Address, dex: string, privateKey: Hex): Promise<Agent>;
|
|
39
|
+
/**
|
|
40
|
+
* Clear all cached agents.
|
|
41
|
+
* Does not remove from storage.
|
|
42
|
+
*/
|
|
43
|
+
clearCache(): void;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=AgentManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentManager.d.ts","sourceRoot":"","sources":["../../../src/agent/AgentManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAMrD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIvD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAAgC;gBAEjC,OAAO,CAAC,EAAE,cAAc;IAIpC;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAuB7D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAsBrE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D;;;OAGG;IACG,WAAW,CACf,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,GAAG,GACd,OAAO,CAAC,KAAK,CAAC;IAejB;;;OAGG;IACH,UAAU,IAAI,IAAI;CAGnB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StorageAdapter } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* localStorage adapter for browser environments.
|
|
4
|
+
* Agent keys are stored as JSON strings with the key pattern:
|
|
5
|
+
* `lifi-perps-agent:{address}:{dex}`
|
|
6
|
+
*/
|
|
7
|
+
export declare const localStorageAdapter: StorageAdapter;
|
|
8
|
+
/**
|
|
9
|
+
* In-memory storage adapter for testing or server-side use.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createMemoryStorage(): StorageAdapter;
|
|
12
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/agent/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,cA2BjC,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAkBpD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Address, Hex } from '@lifi/perps-types';
|
|
2
|
+
/**
|
|
3
|
+
* Agent keypair for signing trading actions.
|
|
4
|
+
*/
|
|
5
|
+
export interface Agent {
|
|
6
|
+
/** Agent wallet address */
|
|
7
|
+
address: Address;
|
|
8
|
+
/** Agent private key */
|
|
9
|
+
privateKey: Hex;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Storage adapter interface for persisting agent keys.
|
|
13
|
+
* Implement this interface to use custom storage (e.g., encrypted storage, database).
|
|
14
|
+
*/
|
|
15
|
+
export interface StorageAdapter {
|
|
16
|
+
/** Get a value by key */
|
|
17
|
+
get(key: string): Promise<string | null>;
|
|
18
|
+
/** Set a value by key */
|
|
19
|
+
set(key: string, value: string): Promise<void>;
|
|
20
|
+
/** Remove a value by key */
|
|
21
|
+
remove(key: string): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,wBAAwB;IACxB,UAAU,EAAE,GAAG,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxC,yBAAyB;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,4BAA4B;IAC5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC"}
|