@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,110 @@
|
|
|
1
|
+
import { PerpsErrorCode } from '@lifi/perps-types';
|
|
2
|
+
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
3
|
+
import { PerpsErrorMessage } from '../errors/constants.js';
|
|
4
|
+
import { PerpsError } from '../errors/PerpsError.js';
|
|
5
|
+
import { localStorageAdapter } from './storage.js';
|
|
6
|
+
const STORAGE_PREFIX = 'lifi-perps-agent';
|
|
7
|
+
/**
|
|
8
|
+
* Manages agent keypairs for USER_AGENT signing mode.
|
|
9
|
+
* Agent keys are stored per user address + DEX combination.
|
|
10
|
+
*/
|
|
11
|
+
export class AgentManager {
|
|
12
|
+
storage;
|
|
13
|
+
cache = new Map();
|
|
14
|
+
constructor(storage) {
|
|
15
|
+
this.storage = storage ?? localStorageAdapter;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get the storage key for an agent.
|
|
19
|
+
*/
|
|
20
|
+
storageKey(address, dex) {
|
|
21
|
+
return `${STORAGE_PREFIX}:${address.toLowerCase()}:${dex.toLowerCase()}`;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get an existing agent for a user + DEX pair.
|
|
25
|
+
*
|
|
26
|
+
* @throws {PerpsError} If agent not found
|
|
27
|
+
*/
|
|
28
|
+
async getAgent(address, dex) {
|
|
29
|
+
const key = this.storageKey(address, dex);
|
|
30
|
+
// Check cache first
|
|
31
|
+
const cached = this.cache.get(key);
|
|
32
|
+
if (cached) {
|
|
33
|
+
return cached;
|
|
34
|
+
}
|
|
35
|
+
// Check storage
|
|
36
|
+
const stored = await this.storage.get(key);
|
|
37
|
+
if (stored) {
|
|
38
|
+
const agent = JSON.parse(stored);
|
|
39
|
+
this.cache.set(key, agent);
|
|
40
|
+
return agent;
|
|
41
|
+
}
|
|
42
|
+
throw new PerpsError(PerpsErrorCode.AgentUnauthorized, PerpsErrorMessage.AgentNotFound);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get an existing agent or create a new one.
|
|
46
|
+
*/
|
|
47
|
+
async getOrCreateAgent(address, dex) {
|
|
48
|
+
try {
|
|
49
|
+
return await this.getAgent(address, dex);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Generate new agent
|
|
53
|
+
const privateKey = generatePrivateKey();
|
|
54
|
+
const account = privateKeyToAccount(privateKey);
|
|
55
|
+
const agent = {
|
|
56
|
+
address: account.address,
|
|
57
|
+
privateKey,
|
|
58
|
+
};
|
|
59
|
+
// Store
|
|
60
|
+
const key = this.storageKey(address, dex);
|
|
61
|
+
await this.storage.set(key, JSON.stringify(agent));
|
|
62
|
+
this.cache.set(key, agent);
|
|
63
|
+
return agent;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if an agent exists for a user + DEX pair.
|
|
68
|
+
*/
|
|
69
|
+
async hasAgent(address, dex) {
|
|
70
|
+
try {
|
|
71
|
+
await this.getAgent(address, dex);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Remove an agent for a user + DEX pair.
|
|
80
|
+
* Call this when the user revokes agent authorization.
|
|
81
|
+
*/
|
|
82
|
+
async removeAgent(address, dex) {
|
|
83
|
+
const key = this.storageKey(address, dex);
|
|
84
|
+
this.cache.delete(key);
|
|
85
|
+
await this.storage.remove(key);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Import an existing agent keypair.
|
|
89
|
+
* Useful for restoring from backup or using a specific key.
|
|
90
|
+
*/
|
|
91
|
+
async importAgent(address, dex, privateKey) {
|
|
92
|
+
const account = privateKeyToAccount(privateKey);
|
|
93
|
+
const agent = {
|
|
94
|
+
address: account.address,
|
|
95
|
+
privateKey,
|
|
96
|
+
};
|
|
97
|
+
const key = this.storageKey(address, dex);
|
|
98
|
+
await this.storage.set(key, JSON.stringify(agent));
|
|
99
|
+
this.cache.set(key, agent);
|
|
100
|
+
return agent;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Clear all cached agents.
|
|
104
|
+
* Does not remove from storage.
|
|
105
|
+
*/
|
|
106
|
+
clearCache() {
|
|
107
|
+
this.cache.clear();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=AgentManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentManager.js","sourceRoot":"","sources":["../../../src/agent/AgentManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,cAAc,GAAG,kBAAkB,CAAA;AAEzC;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,OAAO,CAAgB;IACvB,KAAK,GAAuB,IAAI,GAAG,EAAE,CAAA;IAE7C,YAAY,OAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,mBAAmB,CAAA;IAC/C,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,OAAgB,EAAE,GAAW;QAC9C,OAAO,GAAG,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAA;IAC1E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAgB,EAAE,GAAW;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAEzC,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;QAED,gBAAgB;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAU,CAAA;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAC1B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,iBAAiB,EAChC,iBAAiB,CAAC,aAAa,CAChC,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAgB,EAAE,GAAW;QAClD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;YACrB,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAA;YACvC,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;YAE/C,MAAM,KAAK,GAAU;gBACnB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU;aACX,CAAA;YAED,QAAQ;YACR,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YACzC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAE1B,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAgB,EAAE,GAAW;QAC1C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YACjC,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE,GAAW;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,OAAgB,EAChB,GAAW,EACX,UAAe;QAEf,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAE/C,MAAM,KAAK,GAAU;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU;SACX,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACzC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAE1B,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACF"}
|
|
@@ -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,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* localStorage adapter for browser environments.
|
|
3
|
+
* Agent keys are stored as JSON strings with the key pattern:
|
|
4
|
+
* `lifi-perps-agent:{address}:{dex}`
|
|
5
|
+
*/
|
|
6
|
+
export const localStorageAdapter = {
|
|
7
|
+
get: (key) => {
|
|
8
|
+
try {
|
|
9
|
+
return Promise.resolve(localStorage.getItem(key));
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
// localStorage not available (e.g., SSR)
|
|
13
|
+
return Promise.resolve(null);
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
set: (key, value) => {
|
|
17
|
+
try {
|
|
18
|
+
localStorage.setItem(key, value);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
// localStorage not available
|
|
22
|
+
}
|
|
23
|
+
return Promise.resolve();
|
|
24
|
+
},
|
|
25
|
+
remove: (key) => {
|
|
26
|
+
try {
|
|
27
|
+
localStorage.removeItem(key);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// localStorage not available
|
|
31
|
+
}
|
|
32
|
+
return Promise.resolve();
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* In-memory storage adapter for testing or server-side use.
|
|
37
|
+
*/
|
|
38
|
+
export function createMemoryStorage() {
|
|
39
|
+
const store = new Map();
|
|
40
|
+
return {
|
|
41
|
+
get: (key) => {
|
|
42
|
+
return Promise.resolve(store.get(key) ?? null);
|
|
43
|
+
},
|
|
44
|
+
set: (key, value) => {
|
|
45
|
+
store.set(key, value);
|
|
46
|
+
return Promise.resolve();
|
|
47
|
+
},
|
|
48
|
+
remove: (key) => {
|
|
49
|
+
store.delete(key);
|
|
50
|
+
return Promise.resolve();
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/agent/storage.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,GAAG,EAAE,CAAC,GAAW,EAA0B,EAAE;QAC3C,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;YACzC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,GAAG,EAAE,CAAC,GAAW,EAAE,KAAa,EAAiB,EAAE;QACjD,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,MAAM,EAAE,CAAC,GAAW,EAAiB,EAAE;QACrC,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEvC,OAAO;QACL,GAAG,EAAE,CAAC,GAAW,EAA0B,EAAE;YAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAA;QAChD,CAAC;QAED,GAAG,EAAE,CAAC,GAAW,EAAE,KAAa,EAAiB,EAAE;YACjD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,MAAM,EAAE,CAAC,GAAW,EAAiB,EAAE;YACrC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACjB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import type { Address, AuthorizationsResponse, CancelOrderPayloadResponse, CreateAuthorizationResponse, CreateOrderResponse, SubmitOrderResponse } from '@lifi/perps-types';
|
|
2
|
+
import type { SubmitAuthorizationParams } from '../services/submitAuthorization.js';
|
|
3
|
+
import type { SubmitOrderParams } from '../services/submitOrder.js';
|
|
4
|
+
import { type PerpsSDKClient } from './createPerpsClient.js';
|
|
5
|
+
import type { BuildAuthorizationParams, CancelOrdersParams, ExecuteAuthorizationsParams, ExecuteAuthorizationsResult, GetRequiredAuthorizationsParams, PerpsClientOptions, PlaceOrderParams, RequiredAuthorizationsResult, SigningMode } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Stateful client for managing signing modes and trading operations.
|
|
8
|
+
*
|
|
9
|
+
* The PerpsClient provides two signing modes:
|
|
10
|
+
* - `USER`: User wallet signs each action (wallet popup per action)
|
|
11
|
+
* - `USER_AGENT`: SDK-generated agent signs actions (no popups after setup)
|
|
12
|
+
*
|
|
13
|
+
* In `USER_AGENT` mode, the client:
|
|
14
|
+
* - Generates an agent keypair stored in localStorage (or custom storage)
|
|
15
|
+
* - Auto-injects agent address into authorization requests
|
|
16
|
+
* - Auto-signs trading actions with the agent key
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const perps = new PerpsClient({ integrator: 'my-app' })
|
|
21
|
+
*
|
|
22
|
+
* // Set up agent signing for a user + DEX pair
|
|
23
|
+
* await perps.setSigningMode(userAddress, 'hyperliquid', 'USER_AGENT')
|
|
24
|
+
*
|
|
25
|
+
* // Build authorization (agent address auto-injected)
|
|
26
|
+
* const { actions } = await perps.buildAuthorization({
|
|
27
|
+
* dex: 'hyperliquid',
|
|
28
|
+
* address: userAddress,
|
|
29
|
+
* authorizations: [
|
|
30
|
+
* { key: 'ApproveAgent' },
|
|
31
|
+
* { key: 'ApproveBuilderFee' }
|
|
32
|
+
* ]
|
|
33
|
+
* })
|
|
34
|
+
*
|
|
35
|
+
* // ... sign actions with user wallet ...
|
|
36
|
+
*
|
|
37
|
+
* // Place orders (agent signs automatically)
|
|
38
|
+
* const result = await perps.placeOrder({
|
|
39
|
+
* address: userAddress,
|
|
40
|
+
* dex: 'hyperliquid',
|
|
41
|
+
* symbol: 'BTC',
|
|
42
|
+
* side: 'BUY',
|
|
43
|
+
* type: 'MARKET',
|
|
44
|
+
* size: '0.1',
|
|
45
|
+
* price: '95000.00'
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare class PerpsClient {
|
|
50
|
+
private sdkClient;
|
|
51
|
+
private signingModes;
|
|
52
|
+
constructor(options: PerpsClientOptions);
|
|
53
|
+
/**
|
|
54
|
+
* Get the underlying SDK client for use with service functions.
|
|
55
|
+
*/
|
|
56
|
+
get client(): PerpsSDKClient;
|
|
57
|
+
/**
|
|
58
|
+
* Promise that resolves when the API health check passes.
|
|
59
|
+
* Await this before making requests if you need to handle readiness explicitly.
|
|
60
|
+
*/
|
|
61
|
+
get ready(): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Get the storage key for a user + DEX pair.
|
|
64
|
+
*/
|
|
65
|
+
private modeKey;
|
|
66
|
+
/**
|
|
67
|
+
* Set the signing mode for a user + DEX pair.
|
|
68
|
+
*
|
|
69
|
+
* In `USER_AGENT` mode, generates an agent keypair if one doesn't exist.
|
|
70
|
+
*
|
|
71
|
+
* @param address - User wallet address
|
|
72
|
+
* @param dex - DEX identifier
|
|
73
|
+
* @param mode - Signing mode to set
|
|
74
|
+
*/
|
|
75
|
+
setSigningMode(address: Address, dex: string, mode: SigningMode): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Get the current signing mode for a user + DEX pair.
|
|
78
|
+
* Defaults to `USER` if not set.
|
|
79
|
+
*/
|
|
80
|
+
getSigningMode(address: Address, dex: string): SigningMode;
|
|
81
|
+
/**
|
|
82
|
+
* Get the agent address for a user + DEX pair.
|
|
83
|
+
*
|
|
84
|
+
* @throws {PerpsError} If in USER mode or agent not found
|
|
85
|
+
*/
|
|
86
|
+
getAgentAddress(address: Address, dex: string): Promise<Address>;
|
|
87
|
+
/**
|
|
88
|
+
* Check if an agent exists for a user + DEX pair.
|
|
89
|
+
*/
|
|
90
|
+
hasAgent(address: Address, dex: string): Promise<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* Remove the agent for a user + DEX pair.
|
|
93
|
+
* Also resets signing mode to USER.
|
|
94
|
+
*/
|
|
95
|
+
removeAgent(address: Address, dex: string): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Build authorization payloads for signing.
|
|
98
|
+
*
|
|
99
|
+
* In `USER` mode, `signerAddress` is omitted (backend defaults to `address`).
|
|
100
|
+
* In `USER_AGENT` mode, auto-injects the agent address as `signerAddress`
|
|
101
|
+
* and `agentAddress` param for `ApproveAgent` authorization.
|
|
102
|
+
*
|
|
103
|
+
* @param params - Authorization parameters
|
|
104
|
+
* @returns Authorization actions with typed data for signing
|
|
105
|
+
*/
|
|
106
|
+
buildAuthorization(params: BuildAuthorizationParams): Promise<CreateAuthorizationResponse>;
|
|
107
|
+
/**
|
|
108
|
+
* Submit signed authorizations.
|
|
109
|
+
*
|
|
110
|
+
* In `USER` mode, `signerAddress` is omitted (backend defaults to `address`).
|
|
111
|
+
* In `USER_AGENT` mode, auto-injects the agent address as `signerAddress`.
|
|
112
|
+
*
|
|
113
|
+
* @param params - Signed authorization parameters
|
|
114
|
+
*/
|
|
115
|
+
submitAuthorizations(params: SubmitAuthorizationParams): Promise<AuthorizationsResponse>;
|
|
116
|
+
/**
|
|
117
|
+
* Build order payloads for signing.
|
|
118
|
+
*
|
|
119
|
+
* In `USER` mode, `signerAddress` is omitted (backend defaults to `address`).
|
|
120
|
+
* In `USER_AGENT` mode, auto-injects the agent address as `signerAddress`.
|
|
121
|
+
*
|
|
122
|
+
* @param params - Order parameters
|
|
123
|
+
* @returns Order actions with typed data for signing
|
|
124
|
+
*/
|
|
125
|
+
buildOrder(params: PlaceOrderParams): Promise<CreateOrderResponse>;
|
|
126
|
+
/**
|
|
127
|
+
* Build cancel order payloads for signing.
|
|
128
|
+
*
|
|
129
|
+
* In `USER` mode, `signerAddress` is omitted (backend defaults to `address`).
|
|
130
|
+
* In `USER_AGENT` mode, auto-injects the agent address as `signerAddress`.
|
|
131
|
+
*
|
|
132
|
+
* @param params - Cancel parameters
|
|
133
|
+
* @returns Cancel actions with typed data for signing
|
|
134
|
+
*/
|
|
135
|
+
buildCancelOrder(params: CancelOrdersParams): Promise<CancelOrderPayloadResponse>;
|
|
136
|
+
/**
|
|
137
|
+
* Place an order with automatic agent signing.
|
|
138
|
+
*
|
|
139
|
+
* **Requires USER_AGENT mode.** For USER mode, use `buildOrder()` + `submitSignedOrder()`.
|
|
140
|
+
*
|
|
141
|
+
* @param params - Order parameters
|
|
142
|
+
* @returns Order submission results
|
|
143
|
+
* @throws {PerpsError} If not in USER_AGENT mode
|
|
144
|
+
*/
|
|
145
|
+
placeOrder(params: PlaceOrderParams): Promise<SubmitOrderResponse>;
|
|
146
|
+
/**
|
|
147
|
+
* Cancel orders with automatic agent signing.
|
|
148
|
+
*
|
|
149
|
+
* **Requires USER_AGENT mode.** For USER mode, use `buildCancelOrder()` + `submitSignedOrder()`.
|
|
150
|
+
*
|
|
151
|
+
* @param params - Cancel parameters
|
|
152
|
+
* @returns Cancel submission results
|
|
153
|
+
* @throws {PerpsError} If not in USER_AGENT mode
|
|
154
|
+
*/
|
|
155
|
+
cancelOrders(params: CancelOrdersParams): Promise<SubmitOrderResponse>;
|
|
156
|
+
/**
|
|
157
|
+
* Submit pre-signed order actions.
|
|
158
|
+
*
|
|
159
|
+
* Use this for USER mode when you've already signed the actions with the user's wallet.
|
|
160
|
+
* Auto-injects `signerAddress` if not provided (defaults to `address`).
|
|
161
|
+
*
|
|
162
|
+
* @param params - Signed order parameters
|
|
163
|
+
*/
|
|
164
|
+
submitSignedOrder(params: SubmitOrderParams): Promise<SubmitOrderResponse>;
|
|
165
|
+
/**
|
|
166
|
+
* Determine which authorizations (if any) the user needs to sign before trading.
|
|
167
|
+
*
|
|
168
|
+
* Fetches account state and checks the current signing mode to build
|
|
169
|
+
* a precise list of required authorizations.
|
|
170
|
+
*
|
|
171
|
+
* @param params - Parameters including dex, address, and asset requirements
|
|
172
|
+
* @returns Which authorizations are needed and whether the user is ready to trade
|
|
173
|
+
*/
|
|
174
|
+
getRequiredAuthorizations(params: GetRequiredAuthorizationsParams): Promise<RequiredAuthorizationsResult>;
|
|
175
|
+
/**
|
|
176
|
+
* Execute authorizations: submit user-signed actions, then auto-sign and submit
|
|
177
|
+
* any agent authorizations.
|
|
178
|
+
*
|
|
179
|
+
* @param params - User-signed actions and the required authorizations result
|
|
180
|
+
* @returns Combined results from user and agent submissions
|
|
181
|
+
*/
|
|
182
|
+
executeAuthorizations(params: ExecuteAuthorizationsParams): Promise<ExecuteAuthorizationsResult>;
|
|
183
|
+
/**
|
|
184
|
+
* Check if the local agent is registered and valid on the backend.
|
|
185
|
+
*/
|
|
186
|
+
private validateAgent;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=PerpsClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerpsClient.d.ts","sourceRoot":"","sources":["../../../src/client/PerpsClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EAInB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAS1B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AAEnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAGnE,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,EAC/B,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAC5B,WAAW,EACZ,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,YAAY,CAAsC;gBAE9C,OAAO,EAAE,kBAAkB;IAUvC;;OAEG;IACH,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzB;IAED;;OAEG;IACH,OAAO,CAAC,OAAO;IAIf;;;;;;;;OAQG;IACG,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC;IAUhB;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;IAI1D;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D;;;;;;;;;OASG;IACG,kBAAkB,CACtB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,2BAA2B,CAAC;IA8BvC;;;;;;;OAOG;IACG,oBAAoB,CACxB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAelC;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA+BxE;;;;;;;;OAQG;IACG,gBAAgB,CACpB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,0BAA0B,CAAC;IAoBtC;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoDxE;;;;;;;;OAQG;IACG,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyC5E;;;;;;;OAOG;IACG,iBAAiB,CACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,mBAAmB,CAAC;IAI/B;;;;;;;;OAQG;IACG,yBAAyB,CAC7B,MAAM,EAAE,+BAA+B,GACtC,OAAO,CAAC,4BAA4B,CAAC;IAoGxC;;;;;;OAMG;IACG,qBAAqB,CACzB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,2BAA2B,CAAC;IA4DvC;;OAEG;YACW,aAAa;CAwB5B"}
|