@elizaos/plugin-wallet 2.0.0-beta.1 → 2.0.3-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -45
- package/auto-enable.ts +1 -1
- package/dist/actions/failure-codes.d.ts +12 -0
- package/dist/actions/index.d.ts +1 -0
- package/dist/analytics/birdeye/actions/wallet-search-address.d.ts +7 -0
- package/dist/analytics/birdeye/birdeye-task.d.ts +27 -0
- package/dist/analytics/birdeye/birdeye.d.ts +140 -0
- package/dist/analytics/birdeye/constants.d.ts +68 -0
- package/dist/analytics/birdeye/providers/agent-portfolio-provider.d.ts +8 -0
- package/dist/analytics/birdeye/providers/market.d.ts +18 -0
- package/dist/analytics/birdeye/providers/portfolio-factory.d.ts +10 -0
- package/dist/analytics/birdeye/providers/trending.d.ts +19 -0
- package/dist/analytics/birdeye/providers/wallet.d.ts +5 -0
- package/dist/analytics/birdeye/search-category.d.ts +52 -0
- package/dist/analytics/birdeye/service.d.ts +94 -0
- package/dist/analytics/birdeye/types/api/common.d.ts +199 -0
- package/dist/analytics/birdeye/types/api/defi.d.ts +187 -0
- package/dist/analytics/birdeye/types/api/pair.d.ts +182 -0
- package/dist/analytics/birdeye/types/api/search.d.ts +64 -0
- package/dist/analytics/birdeye/types/api/token.d.ts +580 -0
- package/dist/analytics/birdeye/types/api/trader.d.ts +70 -0
- package/dist/analytics/birdeye/types/api/wallet.d.ts +161 -0
- package/dist/analytics/birdeye/types/shared.d.ts +83 -0
- package/dist/analytics/birdeye/utils.d.ts +74 -0
- package/dist/analytics/dexscreener/errors.d.ts +2 -0
- package/dist/analytics/dexscreener/index.d.ts +3 -0
- package/dist/analytics/dexscreener/search-category.d.ts +3 -0
- package/dist/analytics/dexscreener/service.d.ts +34 -0
- package/dist/analytics/dexscreener/types.d.ts +131 -0
- package/dist/analytics/lpinfo/index.d.ts +31 -0
- package/dist/analytics/lpinfo/kamino/index.d.ts +7 -0
- package/dist/analytics/lpinfo/kamino/providers/kaminoLiquidityProvider.d.ts +6 -0
- package/dist/analytics/lpinfo/kamino/providers/kaminoPoolProvider.d.ts +6 -0
- package/dist/analytics/lpinfo/kamino/providers/kaminoProvider.d.ts +6 -0
- package/dist/analytics/lpinfo/kamino/services/kaminoLiquidityService.d.ts +203 -0
- package/dist/analytics/lpinfo/kamino/services/kaminoService.d.ts +171 -0
- package/dist/analytics/lpinfo/steer/index.d.ts +7 -0
- package/dist/analytics/lpinfo/steer/providers/steerLiquidityProvider.d.ts +6 -0
- package/dist/analytics/lpinfo/steer/services/steerLiquidityService.d.ts +208 -0
- package/dist/analytics/lpinfo/steer/steer-display-types.d.ts +97 -0
- package/dist/analytics/news/index.d.ts +32 -0
- package/dist/analytics/news/interfaces/types.d.ts +177 -0
- package/dist/analytics/news/providers/defiNewsProvider.d.ts +106 -0
- package/dist/analytics/news/services/newsDataService.d.ts +72 -0
- package/dist/analytics/news/utils/formatters.d.ts +54 -0
- package/dist/analytics/token-info/action.d.ts +6 -0
- package/dist/analytics/token-info/index.d.ts +3 -0
- package/dist/analytics/token-info/params.d.ts +10 -0
- package/dist/analytics/token-info/providers.d.ts +4 -0
- package/dist/analytics/token-info/service.d.ts +19 -0
- package/dist/analytics/token-info/types.d.ts +45 -0
- package/dist/api/wallet-routes.d.ts +100 -0
- package/dist/audit/audit-log.d.ts +29 -0
- package/dist/browser-shim/build-shim.d.ts +31 -0
- package/dist/browser-shim/index.d.ts +1 -0
- package/dist/chains/evm/actions/helpers.d.ts +31 -0
- package/dist/chains/evm/actions/swap.d.ts +53 -0
- package/dist/chains/evm/actions/transfer.d.ts +10 -0
- package/dist/chains/evm/bridge-router.d.ts +44 -0
- package/dist/chains/evm/build.d.ts +2 -0
- package/dist/chains/evm/chain-handler.d.ts +37 -0
- package/dist/chains/evm/constants.d.ts +16 -0
- package/dist/chains/evm/dex/aerodrome/index.d.ts +6 -0
- package/dist/chains/evm/dex/aerodrome/services/AerodromeLpService.d.ts +27 -0
- package/dist/chains/evm/dex/aerodrome/types.d.ts +435 -0
- package/dist/chains/evm/dex/pancakeswp/index.d.ts +6 -0
- package/dist/chains/evm/dex/pancakeswp/services/PancakeSwapV3LpService.d.ts +28 -0
- package/dist/chains/evm/dex/pancakeswp/types.d.ts +19 -0
- package/dist/chains/evm/dex/uniswap/index.d.ts +6 -0
- package/dist/chains/evm/dex/uniswap/services/UniswapV3LpService.d.ts +28 -0
- package/dist/chains/evm/dex/uniswap/types.d.ts +458 -0
- package/dist/chains/evm/generated/specs/spec-helpers.d.ts +35 -0
- package/dist/chains/evm/generated/specs/specs.d.ts +99 -0
- package/dist/chains/evm/gov-router.d.ts +6 -0
- package/dist/chains/evm/index.browser.d.ts +3 -0
- package/dist/chains/evm/index.d.ts +6 -0
- package/dist/chains/evm/prompts.d.ts +24 -0
- package/dist/chains/evm/providers/get-balance.d.ts +2 -0
- package/dist/chains/evm/providers/wallet.d.ts +35 -0
- package/dist/chains/evm/routes/sign.d.ts +13 -0
- package/dist/chains/evm/rpc-providers.d.ts +26 -0
- package/dist/chains/evm/service.d.ts +26 -0
- package/dist/chains/evm/templates/index.d.ts +1 -0
- package/dist/chains/evm/types/index.d.ts +296 -0
- package/dist/chains/evm/vitest.config.d.ts +2 -0
- package/dist/chains/registry.d.ts +3 -0
- package/dist/chains/solana/actions/confirmation.d.ts +9 -0
- package/dist/chains/solana/bn.d.ts +6 -0
- package/dist/chains/solana/build.d.ts +2 -0
- package/dist/chains/solana/constants.d.ts +2 -0
- package/dist/chains/solana/dex/meteora/e2e/scenarios.d.ts +10 -0
- package/dist/chains/solana/dex/meteora/e2e/test-utils.d.ts +28 -0
- package/dist/chains/solana/dex/meteora/index.d.ts +3 -0
- package/dist/chains/solana/dex/meteora/providers/positionProvider.d.ts +9 -0
- package/dist/chains/solana/dex/meteora/services/MeteoraLpService.d.ts +37 -0
- package/dist/chains/solana/dex/meteora/utils/dlmm.d.ts +6 -0
- package/dist/chains/solana/dex/meteora/utils/loadWallet.d.ts +14 -0
- package/dist/chains/solana/dex/meteora/utils/sendTransaction.d.ts +2 -0
- package/dist/chains/solana/dex/orca/index.d.ts +6 -0
- package/dist/chains/solana/dex/orca/providers/positionProvider.d.ts +10 -0
- package/dist/chains/solana/dex/orca/services/srv_orca.d.ts +10 -0
- package/dist/chains/solana/dex/orca/types.d.ts +61 -0
- package/dist/chains/solana/dex/orca/utils/loadWallet.d.ts +1 -0
- package/dist/chains/solana/dex/orca/utils/sendTransaction.d.ts +2 -0
- package/dist/chains/solana/dex/raydium/index.d.ts +6 -0
- package/dist/chains/solana/dex/raydium/providers/positionProvider.d.ts +10 -0
- package/dist/chains/solana/dex/raydium/services/srv_raydium.d.ts +104 -0
- package/dist/chains/solana/dex/raydium/types.d.ts +42 -0
- package/dist/chains/solana/environment.d.ts +15 -0
- package/dist/chains/solana/generated/specs/spec-helpers.d.ts +35 -0
- package/dist/chains/solana/generated/specs/specs.d.ts +73 -0
- package/dist/chains/solana/index.browser.d.ts +3 -0
- package/dist/chains/solana/index.d.ts +7 -0
- package/dist/chains/solana/keypairUtils.d.ts +7 -0
- package/dist/chains/solana/prompts.d.ts +12 -0
- package/dist/chains/solana/providers/wallet.d.ts +2 -0
- package/dist/chains/solana/routes/index.d.ts +2 -0
- package/dist/chains/solana/routes/sign.d.ts +16 -0
- package/dist/chains/solana/service.d.ts +237 -0
- package/dist/chains/solana/types.d.ts +377 -0
- package/dist/chains/solana/vitest.config.d.ts +2 -0
- package/dist/chains/wallet-action.d.ts +3 -0
- package/dist/contracts.d.ts +58 -0
- package/dist/core-augmentation.d.ts +9 -0
- package/dist/index.d.mts +27 -34727
- package/dist/index.d.ts +27 -0
- package/dist/index.mjs +28246 -21186
- package/dist/index.mjs.map +153 -0
- package/dist/lib/server-wallet-trade.d.ts +22 -0
- package/dist/lib/server-wallet-trade.js +333 -0
- package/dist/lib/server-wallet-trade.js.map +11 -0
- package/dist/lib/wallet-export-guard.d.ts +45 -0
- package/dist/lp/actions/liquidity.d.ts +2 -0
- package/dist/lp/e2e/real-token-tests.d.ts +6 -0
- package/dist/lp/e2e/scenarios.d.ts +9 -0
- package/dist/lp/e2e/test-utils.d.ts +28 -0
- package/dist/lp/lp-manager-entry.d.ts +18 -0
- package/dist/lp/services/ConcentratedLiquidityService.d.ts +32 -0
- package/dist/lp/services/DexInteractionService.d.ts +34 -0
- package/dist/lp/services/LpManagementService.d.ts +116 -0
- package/dist/lp/services/UserLpProfileService.d.ts +18 -0
- package/dist/lp/services/VaultService.d.ts +21 -0
- package/dist/lp/services/YieldOptimizationService.d.ts +59 -0
- package/dist/lp/services/__tests__/MockLpService.d.ts +17 -0
- package/dist/lp/types.d.ts +439 -0
- package/dist/lp/utils/solanaClient.d.ts +26 -0
- package/dist/plugin.d.ts +7 -0
- package/dist/policy/policy.d.ts +14 -0
- package/dist/providers/canonical-provider.d.ts +19 -0
- package/dist/providers/wallet-provider.d.ts +5 -0
- package/dist/register-routes.d.ts +1 -0
- package/dist/routes/plugin.d.ts +14 -0
- package/dist/routes/wallet-market-overview-route.d.ts +7 -0
- package/dist/sdk/abi.d.ts +396 -0
- package/dist/sdk/bridge/abis.d.ts +63 -0
- package/dist/sdk/bridge/client.d.ts +48 -0
- package/dist/sdk/bridge/index.d.ts +14 -0
- package/dist/sdk/bridge/solana.d.ts +131 -0
- package/dist/sdk/bridge/types.d.ts +92 -0
- package/dist/sdk/convenience.d.ts +104 -0
- package/dist/sdk/escrow/MutualStakeEscrow.d.ts +75 -0
- package/dist/sdk/escrow/types.d.ts +58 -0
- package/dist/sdk/escrow/verifiers.d.ts +25 -0
- package/dist/sdk/identity/erc8004.d.ts +304 -0
- package/dist/sdk/identity/reputation.d.ts +317 -0
- package/dist/sdk/identity/uaid.d.ts +192 -0
- package/dist/sdk/identity/validation.d.ts +282 -0
- package/dist/sdk/index.d.ts +133 -0
- package/dist/sdk/index.js +5284 -0
- package/dist/sdk/index.js.map +40 -0
- package/dist/sdk/policy/SpendingPolicy.d.ts +105 -0
- package/dist/sdk/policy/UptoBillingPolicy.d.ts +87 -0
- package/dist/sdk/router/PaymentRouter.d.ts +77 -0
- package/dist/sdk/router/index.d.ts +2 -0
- package/dist/sdk/swap/SwapModule.d.ts +47 -0
- package/dist/sdk/swap/abi.d.ts +50 -0
- package/dist/sdk/swap/index.d.ts +11 -0
- package/dist/sdk/swap/types.d.ts +101 -0
- package/dist/sdk/tokens/decimals.d.ts +64 -0
- package/dist/sdk/tokens/registry.d.ts +81 -0
- package/dist/sdk/tokens/solana.d.ts +107 -0
- package/dist/sdk/tokens/transfers.d.ts +94 -0
- package/dist/sdk/types.d.ts +129 -0
- package/dist/sdk/wallet-core.d.ts +29450 -0
- package/dist/sdk/x402/budget.d.ts +51 -0
- package/dist/sdk/x402/chains/abstract/index.d.ts +134 -0
- package/dist/sdk/x402/client.d.ts +66 -0
- package/dist/sdk/x402/index.d.ts +8 -0
- package/dist/sdk/x402/middleware.d.ts +37 -0
- package/dist/sdk/x402/multi-asset.d.ts +53 -0
- package/dist/sdk/x402/types.d.ts +109 -0
- package/dist/security/wallet-context-safety.d.ts +7 -0
- package/dist/security/wallet-financial-confirmation.d.ts +23 -0
- package/dist/services/wallet-backend-service.d.ts +39 -0
- package/dist/types/wallet-router.d.ts +130 -0
- package/dist/utils/intent-trajectory.d.ts +34 -0
- package/dist/wallet/backend.d.ts +41 -0
- package/dist/wallet/errors.d.ts +17 -0
- package/dist/wallet/index.d.ts +6 -0
- package/dist/wallet/local-eoa-backend.d.ts +37 -0
- package/dist/wallet/pending.d.ts +47 -0
- package/dist/wallet/select-backend.d.ts +11 -0
- package/dist/wallet/steward-backend.d.ts +22 -0
- package/dist/wallet-action.d.ts +1 -0
- package/dist/wallet-action.js +6292 -0
- package/dist/wallet-action.js.map +44 -0
- package/package.json +35 -21
- package/registry-entry.json +134 -0
- package/src/analytics/birdeye/actions/wallet-search-address.ts +85 -5
- package/src/analytics/birdeye/birdeye-task.ts +25 -9
- package/src/analytics/birdeye/birdeye.ts +6 -7
- package/src/analytics/birdeye/constants.ts +0 -1
- package/src/analytics/birdeye/providers/agent-portfolio-provider.ts +0 -1
- package/src/analytics/birdeye/providers/market.ts +51 -45
- package/src/analytics/birdeye/providers/portfolio-factory.ts +79 -38
- package/src/analytics/birdeye/providers/trending.ts +43 -46
- package/src/analytics/birdeye/providers/wallet.ts +0 -1
- package/src/analytics/birdeye/search-category.test.ts +1 -1
- package/src/analytics/birdeye/search-category.ts +77 -12
- package/src/analytics/birdeye/service.test.ts +146 -0
- package/src/analytics/birdeye/service.ts +220 -105
- package/src/analytics/birdeye/types/api/common.ts +0 -1
- package/src/analytics/birdeye/types/api/defi.ts +0 -1
- package/src/analytics/birdeye/types/api/pair.ts +0 -1
- package/src/analytics/birdeye/types/api/search.ts +0 -1
- package/src/analytics/birdeye/types/api/token.ts +0 -1
- package/src/analytics/birdeye/types/api/trader.ts +0 -1
- package/src/analytics/birdeye/types/api/wallet.ts +0 -1
- package/src/analytics/birdeye/types/shared.ts +0 -11
- package/src/analytics/birdeye/utils.test.ts +69 -0
- package/src/analytics/birdeye/utils.ts +11 -8
- package/src/analytics/dexscreener/search-category.ts +0 -1
- package/src/analytics/dexscreener/service.ts +7 -12
- package/src/analytics/dexscreener/types.ts +0 -1
- package/src/analytics/lpinfo/index.ts +5 -2
- package/src/analytics/lpinfo/kamino/README.md +2 -2
- package/src/analytics/lpinfo/kamino/index.ts +9 -2
- package/src/analytics/lpinfo/kamino/providers/kaminoLiquidityProvider.ts +6 -26
- package/src/analytics/lpinfo/kamino/providers/kaminoPoolProvider.ts +11 -12
- package/src/analytics/lpinfo/kamino/providers/kaminoProvider.ts +76 -32
- package/src/analytics/lpinfo/kamino/services/kaminoLiquidityService.ts +78 -38
- package/src/analytics/lpinfo/kamino/services/kaminoService.ts +71 -31
- package/src/analytics/lpinfo/steer/index.ts +7 -2
- package/src/analytics/lpinfo/steer/providers/steerLiquidityProvider.ts +25 -26
- package/src/analytics/lpinfo/steer/services/steerLiquidityService.ts +367 -149
- package/src/analytics/news/index.ts +7 -2
- package/src/analytics/news/interfaces/types.ts +0 -1
- package/src/analytics/news/providers/defiNewsProvider.ts +17 -44
- package/src/analytics/news/services/newsDataService.ts +1 -22
- package/src/analytics/news/utils/formatters.test.ts +60 -0
- package/src/analytics/news/utils/formatters.ts +0 -1
- package/src/analytics/token-info/action.ts +52 -212
- package/src/analytics/token-info/index.ts +1 -1
- package/src/analytics/token-info/params.test.ts +69 -0
- package/src/analytics/token-info/params.ts +13 -11
- package/src/analytics/token-info/providers.ts +46 -17
- package/src/analytics/token-info/service.ts +3 -3
- package/src/analytics/token-info/types.ts +2 -2
- package/src/api/wallet-routes.test.ts +56 -0
- package/src/api/wallet-routes.ts +1728 -0
- package/src/audit/audit-log.ts +57 -2
- package/src/browser-shim/build-shim.ts +1 -1
- package/src/browser-shim/shim.template.js +107 -117
- package/src/chains/{wallet-router.test.ts → __tests__/wallet-router.test.ts} +57 -10
- package/src/chains/evm/actions/helpers.ts +9 -7
- package/src/chains/evm/actions/swap.ts +176 -22
- package/src/chains/evm/actions/transfer.ts +29 -22
- package/src/chains/evm/biome.json +1 -1
- package/src/chains/evm/build.ts +6 -1
- package/src/chains/evm/constants.ts +19 -0
- package/src/chains/evm/contracts/artifacts/OZGovernor.json +25 -1682
- package/src/chains/evm/dex/aerodrome/index.ts +6 -1
- package/src/chains/evm/dex/aerodrome/services/AerodromeLpService.ts +41 -15
- package/src/chains/evm/dex/aerodrome/types.ts +1 -2
- package/src/chains/evm/dex/pancakeswp/index.ts +6 -1
- package/src/chains/evm/dex/pancakeswp/services/PancakeSwapV3LpService.ts +54 -17
- package/src/chains/evm/dex/pancakeswp/types.ts +1 -2
- package/src/chains/evm/dex/uniswap/index.ts +6 -1
- package/src/chains/evm/dex/uniswap/services/UniswapV3LpService.ts +20 -9
- package/src/chains/evm/dex/uniswap/types.ts +1 -2
- package/src/chains/evm/gov-router.ts +3 -1
- package/src/chains/evm/index.browser.ts +1 -1
- package/src/chains/evm/index.ts +5 -1
- package/src/chains/evm/prompts.ts +5 -0
- package/src/chains/evm/providers/get-balance.ts +1 -1
- package/src/chains/evm/providers/wallet.ts +80 -9
- package/src/chains/evm/routes/sign.ts +35 -26
- package/src/chains/evm/rpc-providers.ts +1 -1
- package/src/chains/evm/types/index.ts +22 -2
- package/src/chains/registry.ts +1 -1
- package/src/chains/wallet-action.ts +301 -91
- package/src/index.ts +9 -5
- package/src/lib/wallet-export-guard.test.ts +233 -0
- package/src/lib/wallet-export-guard.ts +1 -1
- package/src/lp/actions/liquidity.ts +53 -26
- package/src/lp/e2e/real-token-tests.ts +0 -1
- package/src/lp/e2e/scenarios.ts +1 -2
- package/src/lp/e2e/test-utils.ts +20 -7
- package/src/lp/lp-manager-entry.ts +2 -5
- package/src/lp/services/ConcentratedLiquidityService.ts +3 -10
- package/src/lp/services/DexInteractionService.ts +1 -2
- package/src/lp/services/LpManagementService.test.ts +0 -1
- package/src/lp/services/LpManagementService.ts +75 -35
- package/src/lp/services/UserLpProfileService.ts +2 -3
- package/src/lp/services/VaultService.ts +10 -4
- package/src/lp/services/YieldOptimizationService.ts +29 -13
- package/src/lp/services/__tests__/MockLpService.ts +1 -2
- package/src/lp/types.ts +9 -13
- package/src/lp/utils/solanaClient.ts +4 -2
- package/src/plugin.routes.test.ts +24 -0
- package/src/plugin.ts +30 -13
- package/src/providers/canonical-provider.ts +1 -1
- package/src/providers/{unified-wallet-provider.ts → wallet-provider.ts} +3 -3
- package/src/routes/__fixtures__/coingecko-markets.recorded.json +97 -0
- package/src/routes/wallet-market-overview-route.ts +1 -1
- package/src/routes/wallet-market-overview.contract.test.ts +139 -0
- package/src/routes/wallet-market-overview.real.test.ts +83 -0
- package/src/sdk/escrow/MutualStakeEscrow.ts +1 -2
- package/src/sdk/identity/erc8004.ts +1 -1
- package/src/sdk/identity/validation.ts +3 -4
- package/src/sdk/index.ts +2 -2
- package/src/sdk/policy/SpendingPolicy.ts +1 -1
- package/src/sdk/router/PaymentRouter.ts +8 -11
- package/src/sdk/swap/SwapModule.ts +1 -1
- package/src/sdk/tokens/registry.ts +1 -1
- package/src/sdk/x402/middleware.ts +2 -8
- package/src/security/__tests__/wallet-context-safety.test.ts +79 -0
- package/src/security/__tests__/wallet-financial-confirmation.test.ts +88 -0
- package/src/security/wallet-context-safety.ts +128 -0
- package/src/security/wallet-financial-confirmation.ts +150 -0
- package/src/services/wallet-backend-service.ts +15 -1
- package/src/utils/intent-trajectory.ts +2 -2
- package/src/wallet/steward-backend.ts +4 -4
- package/dist/LpManagementService-BWrQ5-cO.mjs +0 -353
- package/dist/MockLpService-D_Apn4Fd.mjs +0 -99
- package/dist/aerodrome-CfnESC32.mjs +0 -890
- package/dist/chunk-hT5z_Zn9.mjs +0 -35
- package/dist/lib/server-wallet-trade.d.mts +0 -34
- package/dist/lib/server-wallet-trade.mjs +0 -306
- package/dist/meteora-BPX39hZo.mjs +0 -22640
- package/dist/orca-Bybp1HXO.mjs +0 -249
- package/dist/pancakeswp-CkEXlXti.mjs +0 -604
- package/dist/plugin-ZO_MTyd0.mjs +0 -529
- package/dist/raydium-rfaM9yEf.mjs +0 -539
- package/dist/sdk/index.d.mts +0 -32492
- package/dist/sdk/index.mjs +0 -6415
- package/dist/types-D5252NZk.mjs +0 -487
- package/dist/uniswap-CReXgXVN.mjs +0 -573
- package/dist/wallet-action.d.mts +0 -6
- package/dist/wallet-action.mjs +0 -820
- package/src/analytics/birdeye/tasks/birdeye.ts +0 -232
- package/src/analytics/lpinfo/index.d.ts +0 -7
- package/src/chains/evm/contracts/artifacts/TimelockController.json +0 -1007
- package/src/chains/evm/contracts/artifacts/VoteToken.json +0 -895
- package/src/lp/tasks/LpAutoRebalanceTask.ts +0 -117
- package/src/lp/tasks/__tests__/LpAutoRebalanceTask.test.ts +0 -370
|
@@ -1,353 +0,0 @@
|
|
|
1
|
-
import { ILpService, logger } from "@elizaos/core";
|
|
2
|
-
//#region src/lp/services/LpManagementService.ts
|
|
3
|
-
const LP_MANAGEMENT_SERVICE_TYPE = "lp-management";
|
|
4
|
-
var NoMatchingLpProtocolError = class extends Error {
|
|
5
|
-
code = "NO_MATCHING_LP_PROTOCOL";
|
|
6
|
-
constructor(request) {
|
|
7
|
-
const details = [
|
|
8
|
-
request.chain ? `chain=${request.chain}` : void 0,
|
|
9
|
-
request.dex ? `dex=${request.dex}` : void 0,
|
|
10
|
-
request.chainId ? `chainId=${request.chainId}` : void 0
|
|
11
|
-
].filter(Boolean).join(", ");
|
|
12
|
-
super(`No registered LP protocol matches ${details || "the request"}`);
|
|
13
|
-
this.name = "NoMatchingLpProtocolError";
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
function normalizeDex(dex) {
|
|
17
|
-
return dex?.trim().toLowerCase();
|
|
18
|
-
}
|
|
19
|
-
function normalizeChain(chain) {
|
|
20
|
-
return chain?.trim().toLowerCase();
|
|
21
|
-
}
|
|
22
|
-
function protocolKey(chain, dex) {
|
|
23
|
-
return `${normalizeChain(chain)}:${normalizeDex(dex)}`;
|
|
24
|
-
}
|
|
25
|
-
function poolId(pool) {
|
|
26
|
-
if (!pool) return void 0;
|
|
27
|
-
if (typeof pool === "string") return pool;
|
|
28
|
-
return pool.poolAddress || pool.id || pool.address;
|
|
29
|
-
}
|
|
30
|
-
function amountValue(params, key, fallback = "0") {
|
|
31
|
-
const amount = params.amount;
|
|
32
|
-
if (key === "value" && [
|
|
33
|
-
"string",
|
|
34
|
-
"number",
|
|
35
|
-
"bigint"
|
|
36
|
-
].includes(typeof amount)) return String(amount);
|
|
37
|
-
if (amount && typeof amount === "object" && key in amount) {
|
|
38
|
-
const value = amount[key];
|
|
39
|
-
if (value !== void 0 && value !== null) return String(value);
|
|
40
|
-
}
|
|
41
|
-
const nested = params.amounts?.[key];
|
|
42
|
-
if (nested !== void 0 && nested !== null) return String(nested);
|
|
43
|
-
return fallback;
|
|
44
|
-
}
|
|
45
|
-
function bigintAmount(value, fallback = 0n) {
|
|
46
|
-
if (typeof value === "bigint") return value;
|
|
47
|
-
if (typeof value === "number" && Number.isFinite(value)) return BigInt(Math.trunc(value));
|
|
48
|
-
if (typeof value === "string" && value.trim()) return BigInt(value.trim());
|
|
49
|
-
return fallback;
|
|
50
|
-
}
|
|
51
|
-
function unsupported(protocol, operation) {
|
|
52
|
-
return {
|
|
53
|
-
success: false,
|
|
54
|
-
error: `${operation} is not implemented for ${protocol.dex} on ${protocol.chain}`
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
var LpManagementService = class LpManagementService extends ILpService {
|
|
58
|
-
static serviceType = LP_MANAGEMENT_SERVICE_TYPE;
|
|
59
|
-
capabilityDescription = "Aggregates registered DEX liquidity pool protocol providers across chains.";
|
|
60
|
-
protocols = /* @__PURE__ */ new Map();
|
|
61
|
-
static async start(runtime) {
|
|
62
|
-
const service = new LpManagementService(runtime);
|
|
63
|
-
logger.info("[LpManagementService] started");
|
|
64
|
-
return service;
|
|
65
|
-
}
|
|
66
|
-
async stop() {
|
|
67
|
-
this.protocols.clear();
|
|
68
|
-
logger.info("[LpManagementService] stopped");
|
|
69
|
-
}
|
|
70
|
-
getDexName() {
|
|
71
|
-
return "lp-management";
|
|
72
|
-
}
|
|
73
|
-
registerProtocol(provider) {
|
|
74
|
-
const key = protocolKey(provider.chain, provider.dex);
|
|
75
|
-
const normalizedProvider = {
|
|
76
|
-
...provider,
|
|
77
|
-
id: provider.id || key,
|
|
78
|
-
chain: normalizeChain(provider.chain),
|
|
79
|
-
dex: normalizeDex(provider.dex)
|
|
80
|
-
};
|
|
81
|
-
if (this.protocols.has(key)) logger.warn(`[LpManagementService] Replacing LP protocol provider ${key}`);
|
|
82
|
-
this.protocols.set(key, normalizedProvider);
|
|
83
|
-
}
|
|
84
|
-
unregisterProtocol(request) {
|
|
85
|
-
if (!request.chain || !request.dex) return false;
|
|
86
|
-
return this.protocols.delete(protocolKey(request.chain, request.dex));
|
|
87
|
-
}
|
|
88
|
-
listProtocols(request = {}) {
|
|
89
|
-
return this.matchingProtocols(request);
|
|
90
|
-
}
|
|
91
|
-
async listPools(params = {}) {
|
|
92
|
-
const requireMatch = Boolean(params.chain || params.dex || params.chainId);
|
|
93
|
-
const protocols = this.matchingProtocols(params);
|
|
94
|
-
if (protocols.length === 0) {
|
|
95
|
-
if (requireMatch) throw new NoMatchingLpProtocolError(params);
|
|
96
|
-
return [];
|
|
97
|
-
}
|
|
98
|
-
return (await Promise.all(protocols.map(async (protocol) => {
|
|
99
|
-
try {
|
|
100
|
-
return await protocol.listPools(params);
|
|
101
|
-
} catch (error) {
|
|
102
|
-
logger.warn(`[LpManagementService] Failed to list pools for ${protocol.chain}:${protocol.dex}`, error instanceof Error ? error.message : String(error));
|
|
103
|
-
return [];
|
|
104
|
-
}
|
|
105
|
-
}))).flat();
|
|
106
|
-
}
|
|
107
|
-
async openPosition(params) {
|
|
108
|
-
return this.resolveProtocol(params).openPosition(params);
|
|
109
|
-
}
|
|
110
|
-
async closePosition(params) {
|
|
111
|
-
return this.resolveProtocol(params).closePosition(params);
|
|
112
|
-
}
|
|
113
|
-
async repositionPosition(params) {
|
|
114
|
-
const protocol = this.resolveProtocol(params);
|
|
115
|
-
if (!protocol.repositionPosition) return unsupported(protocol, "reposition");
|
|
116
|
-
return protocol.repositionPosition(params);
|
|
117
|
-
}
|
|
118
|
-
async getPosition(params) {
|
|
119
|
-
return this.resolveProtocol(params).getPosition?.(params) ?? null;
|
|
120
|
-
}
|
|
121
|
-
async listPositions(params = {}) {
|
|
122
|
-
const protocols = this.matchingProtocols(params);
|
|
123
|
-
return (await Promise.all(protocols.map((protocol) => protocol.listPositions?.(params) ?? []))).flat();
|
|
124
|
-
}
|
|
125
|
-
async getPools(tokenAMint, tokenBMint) {
|
|
126
|
-
return this.listPools({
|
|
127
|
-
tokenA: tokenAMint,
|
|
128
|
-
tokenB: tokenBMint
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
async addLiquidity(params) {
|
|
132
|
-
return this.openPosition({
|
|
133
|
-
chain: params.chain || "solana",
|
|
134
|
-
dex: params.dexName,
|
|
135
|
-
userVault: params.userVault,
|
|
136
|
-
pool: params.poolId,
|
|
137
|
-
amount: {
|
|
138
|
-
tokenA: params.tokenAAmountLamports,
|
|
139
|
-
tokenB: params.tokenBAmountLamports
|
|
140
|
-
},
|
|
141
|
-
range: {
|
|
142
|
-
tickLowerIndex: params.tickLowerIndex,
|
|
143
|
-
tickUpperIndex: params.tickUpperIndex
|
|
144
|
-
},
|
|
145
|
-
slippageBps: params.slippageBps
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
async removeLiquidity(params) {
|
|
149
|
-
return this.closePosition({
|
|
150
|
-
chain: params.chain || "solana",
|
|
151
|
-
dex: params.dexName,
|
|
152
|
-
userVault: params.userVault,
|
|
153
|
-
pool: params.poolId,
|
|
154
|
-
amount: { lpToken: params.lpTokenAmountLamports },
|
|
155
|
-
slippageBps: params.slippageBps
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
async getLpPositionDetails(userAccountPublicKey, poolOrPositionIdentifier) {
|
|
159
|
-
for (const protocol of this.protocols.values()) {
|
|
160
|
-
if (!protocol.getPosition) continue;
|
|
161
|
-
const position = await protocol.getPosition({
|
|
162
|
-
owner: userAccountPublicKey,
|
|
163
|
-
pool: poolOrPositionIdentifier,
|
|
164
|
-
position: poolOrPositionIdentifier
|
|
165
|
-
});
|
|
166
|
-
if (position) return position;
|
|
167
|
-
}
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
async getMarketDataForPools(poolIds) {
|
|
171
|
-
const marketData = await Promise.all(Array.from(this.protocols.values()).map((protocol) => protocol.getMarketData?.(poolIds) ?? {}));
|
|
172
|
-
return Object.assign({}, ...marketData);
|
|
173
|
-
}
|
|
174
|
-
matchingProtocols(request) {
|
|
175
|
-
const requestedChain = normalizeChain(request.chain);
|
|
176
|
-
const requestedDex = normalizeDex(request.dex);
|
|
177
|
-
return Array.from(this.protocols.values()).filter((protocol) => {
|
|
178
|
-
if (requestedChain && protocol.chain !== requestedChain) return false;
|
|
179
|
-
if (requestedDex && protocol.dex !== requestedDex) return false;
|
|
180
|
-
if (request.chainId !== void 0 && protocol.supportedChainIds?.length && !protocol.supportedChainIds.includes(request.chainId)) return false;
|
|
181
|
-
return protocol.supportsRequest?.(request) ?? true;
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
resolveProtocol(request) {
|
|
185
|
-
const matches = this.matchingProtocols(request);
|
|
186
|
-
if (matches.length === 0) throw new NoMatchingLpProtocolError(request);
|
|
187
|
-
if (matches.length > 1) throw new Error(`Multiple LP protocols match this request (${matches.map((protocol) => `${protocol.chain}:${protocol.dex}`).join(", ")}). Specify chain and dex.`);
|
|
188
|
-
return matches[0];
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
async function getLpManagementService(runtime) {
|
|
192
|
-
const existing = runtime.getService(LP_MANAGEMENT_SERVICE_TYPE);
|
|
193
|
-
if (existing) return existing;
|
|
194
|
-
if (typeof runtime.getServiceLoadPromise === "function") return await runtime.getServiceLoadPromise("lp-management") ?? null;
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
async function registerLpProtocolProvider(runtime, provider) {
|
|
198
|
-
const registry = await getLpManagementService(runtime);
|
|
199
|
-
if (!registry) {
|
|
200
|
-
logger.warn(`[LpManagementService] Cannot register ${provider.chain}:${provider.dex}; registry service is unavailable`);
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
registry.registerProtocol(provider);
|
|
204
|
-
}
|
|
205
|
-
function createSolanaLpProtocolProvider({ dex, label, service }) {
|
|
206
|
-
const provider = {
|
|
207
|
-
id: `solana:${normalizeDex(dex)}`,
|
|
208
|
-
chain: "solana",
|
|
209
|
-
dex: normalizeDex(dex),
|
|
210
|
-
label,
|
|
211
|
-
service,
|
|
212
|
-
supportsRequest: (request) => (!request.chain || normalizeChain(request.chain) === "solana") && (!request.dex || normalizeDex(request.dex) === normalizeDex(dex)),
|
|
213
|
-
listPools: async (params) => {
|
|
214
|
-
if (typeof service.getPools !== "function") return [];
|
|
215
|
-
return service.getPools(params.tokenA, params.tokenB);
|
|
216
|
-
},
|
|
217
|
-
openPosition: async (params) => {
|
|
218
|
-
if (typeof service.addLiquidity !== "function") return unsupported(provider, "open");
|
|
219
|
-
const id = poolId(params.pool);
|
|
220
|
-
if (!id) return {
|
|
221
|
-
success: false,
|
|
222
|
-
error: "Pool is required"
|
|
223
|
-
};
|
|
224
|
-
return service.addLiquidity({
|
|
225
|
-
userVault: params.userVault,
|
|
226
|
-
poolId: id,
|
|
227
|
-
tokenAAmountLamports: amountValue(params, "tokenA", amountValue(params, "value")),
|
|
228
|
-
tokenBAmountLamports: amountValue(params, "tokenB", void 0),
|
|
229
|
-
slippageBps: params.slippageBps ?? 50,
|
|
230
|
-
tickLowerIndex: params.range?.tickLowerIndex ?? params.range?.tickLower,
|
|
231
|
-
tickUpperIndex: params.range?.tickUpperIndex ?? params.range?.tickUpper
|
|
232
|
-
});
|
|
233
|
-
},
|
|
234
|
-
closePosition: async (params) => {
|
|
235
|
-
if (typeof service.removeLiquidity !== "function") return unsupported(provider, "close");
|
|
236
|
-
const id = poolId(params.pool) || params.position;
|
|
237
|
-
if (!id) return {
|
|
238
|
-
success: false,
|
|
239
|
-
error: "Pool or position is required"
|
|
240
|
-
};
|
|
241
|
-
return service.removeLiquidity({
|
|
242
|
-
userVault: params.userVault,
|
|
243
|
-
poolId: id,
|
|
244
|
-
lpTokenAmountLamports: amountValue(params, "lpToken", amountValue(params, "value")),
|
|
245
|
-
slippageBps: params.slippageBps ?? 50
|
|
246
|
-
});
|
|
247
|
-
},
|
|
248
|
-
getPosition: async (params) => {
|
|
249
|
-
if (typeof service.getLpPositionDetails !== "function") return null;
|
|
250
|
-
const identifier = params.position || poolId(params.pool);
|
|
251
|
-
if (!params.owner || !identifier) return null;
|
|
252
|
-
return service.getLpPositionDetails(params.owner, identifier);
|
|
253
|
-
},
|
|
254
|
-
getMarketData: async (poolIds) => {
|
|
255
|
-
if (typeof service.getMarketDataForPools !== "function") return {};
|
|
256
|
-
return service.getMarketDataForPools(poolIds);
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
if (typeof service.repositionPosition === "function") provider.repositionPosition = (params) => service.repositionPosition(params);
|
|
260
|
-
return provider;
|
|
261
|
-
}
|
|
262
|
-
function createEvmLpProtocolProvider({ dex, label, service }) {
|
|
263
|
-
const supportedChainIds = typeof service.getSupportedChainIds === "function" ? service.getSupportedChainIds() : [];
|
|
264
|
-
const provider = {
|
|
265
|
-
id: `evm:${normalizeDex(dex)}`,
|
|
266
|
-
chain: "evm",
|
|
267
|
-
dex: normalizeDex(dex),
|
|
268
|
-
label,
|
|
269
|
-
service,
|
|
270
|
-
supportedChainIds,
|
|
271
|
-
supportsRequest: (request) => {
|
|
272
|
-
if (request.chain && normalizeChain(request.chain) !== "evm") return false;
|
|
273
|
-
if (request.dex && normalizeDex(request.dex) !== normalizeDex(dex)) return false;
|
|
274
|
-
if (request.chainId !== void 0 && supportedChainIds.length > 0) return supportedChainIds.includes(request.chainId);
|
|
275
|
-
return true;
|
|
276
|
-
},
|
|
277
|
-
listPools: async (params) => {
|
|
278
|
-
const chainIds = params.chainId ? [params.chainId] : supportedChainIds;
|
|
279
|
-
return (await Promise.all(chainIds.map((chainId) => service.getPools(chainId, params.tokenA, params.tokenB, params.feeTier)))).flat();
|
|
280
|
-
},
|
|
281
|
-
openPosition: async (params) => {
|
|
282
|
-
if (!params.wallet) return {
|
|
283
|
-
success: false,
|
|
284
|
-
error: "EVM wallet is required"
|
|
285
|
-
};
|
|
286
|
-
if (!params.chainId) return {
|
|
287
|
-
success: false,
|
|
288
|
-
error: "EVM chainId is required"
|
|
289
|
-
};
|
|
290
|
-
const id = poolId(params.pool);
|
|
291
|
-
if (!id) return {
|
|
292
|
-
success: false,
|
|
293
|
-
error: "Pool address is required"
|
|
294
|
-
};
|
|
295
|
-
const evmParams = {
|
|
296
|
-
wallet: params.wallet,
|
|
297
|
-
chainId: params.chainId,
|
|
298
|
-
poolAddress: id,
|
|
299
|
-
tokenAAmount: bigintAmount(amountValue(params, "tokenA", amountValue(params, "value"))),
|
|
300
|
-
tokenBAmount: bigintAmount(amountValue(params, "tokenB", void 0), void 0),
|
|
301
|
-
slippageBps: params.slippageBps ?? 50,
|
|
302
|
-
tickLower: params.range?.tickLower ?? params.range?.tickLowerIndex,
|
|
303
|
-
tickUpper: params.range?.tickUpper ?? params.range?.tickUpperIndex,
|
|
304
|
-
deadline: params.deadline
|
|
305
|
-
};
|
|
306
|
-
return service.addLiquidity(evmParams);
|
|
307
|
-
},
|
|
308
|
-
closePosition: async (params) => {
|
|
309
|
-
if (!params.wallet) return {
|
|
310
|
-
success: false,
|
|
311
|
-
error: "EVM wallet is required"
|
|
312
|
-
};
|
|
313
|
-
if (!params.chainId) return {
|
|
314
|
-
success: false,
|
|
315
|
-
error: "EVM chainId is required"
|
|
316
|
-
};
|
|
317
|
-
const id = poolId(params.pool);
|
|
318
|
-
if (!id) return {
|
|
319
|
-
success: false,
|
|
320
|
-
error: "Pool address is required"
|
|
321
|
-
};
|
|
322
|
-
const evmParams = {
|
|
323
|
-
wallet: params.wallet,
|
|
324
|
-
chainId: params.chainId,
|
|
325
|
-
poolAddress: id,
|
|
326
|
-
tokenId: params.tokenId !== void 0 ? bigintAmount(params.tokenId) : params.position ? bigintAmount(params.position) : void 0,
|
|
327
|
-
lpTokenAmount: bigintAmount(amountValue(params, "lpToken", amountValue(params, "value")), void 0),
|
|
328
|
-
percentageToRemove: typeof params.amount === "object" ? params.amount?.percentage : void 0,
|
|
329
|
-
slippageBps: params.slippageBps ?? 50,
|
|
330
|
-
deadline: params.deadline
|
|
331
|
-
};
|
|
332
|
-
return service.removeLiquidity(evmParams);
|
|
333
|
-
},
|
|
334
|
-
getPosition: async (params) => {
|
|
335
|
-
if (!params.owner || !params.chainId) return null;
|
|
336
|
-
const id = poolId(params.pool);
|
|
337
|
-
if (!id) return null;
|
|
338
|
-
return service.getPositionDetails(params.chainId, params.owner, id, params.tokenId !== void 0 ? bigintAmount(params.tokenId) : params.position ? bigintAmount(params.position) : void 0);
|
|
339
|
-
},
|
|
340
|
-
listPositions: async (params) => {
|
|
341
|
-
if (!params.owner || !params.chainId) return [];
|
|
342
|
-
return service.getAllPositions(params.chainId, params.owner);
|
|
343
|
-
},
|
|
344
|
-
getMarketData: async (poolIds) => {
|
|
345
|
-
if (typeof service.getMarketData !== "function") return {};
|
|
346
|
-
return service.getMarketData(poolIds);
|
|
347
|
-
}
|
|
348
|
-
};
|
|
349
|
-
if (typeof service.repositionPosition === "function") provider.repositionPosition = (params) => service.repositionPosition(params);
|
|
350
|
-
return provider;
|
|
351
|
-
}
|
|
352
|
-
//#endregion
|
|
353
|
-
export { getLpManagementService as a, createSolanaLpProtocolProvider as i, NoMatchingLpProtocolError as n, registerLpProtocolProvider as o, createEvmLpProtocolProvider as r, LpManagementService as t };
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { a as getLpManagementService, i as createSolanaLpProtocolProvider } from "./LpManagementService-BWrQ5-cO.mjs";
|
|
2
|
-
import { Service } from "@elizaos/core";
|
|
3
|
-
//#region src/lp/services/__tests__/MockLpService.ts
|
|
4
|
-
var MockLpService = class extends Service {
|
|
5
|
-
capabilityDescription = "Test-only LP service for registry scenarios.";
|
|
6
|
-
positions = /* @__PURE__ */ new Map();
|
|
7
|
-
constructor(runtime, dexName = "mock-dex") {
|
|
8
|
-
super(runtime);
|
|
9
|
-
this.dexName = dexName;
|
|
10
|
-
}
|
|
11
|
-
getDexName() {
|
|
12
|
-
return this.dexName;
|
|
13
|
-
}
|
|
14
|
-
async getPools(tokenAMint, tokenBMint) {
|
|
15
|
-
const pools = [{
|
|
16
|
-
id: `${this.dexName}-sol-usdc`,
|
|
17
|
-
displayName: `${this.dexName} SOL/USDC`,
|
|
18
|
-
dex: this.dexName,
|
|
19
|
-
tokenA: {
|
|
20
|
-
mint: "So11111111111111111111111111111111111111112",
|
|
21
|
-
symbol: "SOL",
|
|
22
|
-
decimals: 9
|
|
23
|
-
},
|
|
24
|
-
tokenB: {
|
|
25
|
-
mint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
|
|
26
|
-
symbol: "USDC",
|
|
27
|
-
decimals: 6
|
|
28
|
-
},
|
|
29
|
-
apr: 12,
|
|
30
|
-
tvl: 1e6
|
|
31
|
-
}];
|
|
32
|
-
if (!tokenAMint && !tokenBMint) return pools;
|
|
33
|
-
return pools.filter((pool) => {
|
|
34
|
-
const mints = [pool.tokenA?.mint, pool.tokenB?.mint];
|
|
35
|
-
return (!tokenAMint || mints.includes(tokenAMint)) && (!tokenBMint || mints.includes(tokenBMint));
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
async addLiquidity(config) {
|
|
39
|
-
const owner = config.userVault?.publicKey?.toBase58?.() || "test-owner";
|
|
40
|
-
const position = {
|
|
41
|
-
poolId: config.poolId,
|
|
42
|
-
dex: this.dexName,
|
|
43
|
-
lpTokenBalance: {
|
|
44
|
-
address: `lp-${config.poolId}`,
|
|
45
|
-
balance: "1000",
|
|
46
|
-
decimals: 6,
|
|
47
|
-
symbol: "LP"
|
|
48
|
-
},
|
|
49
|
-
underlyingTokens: [],
|
|
50
|
-
accruedFees: [],
|
|
51
|
-
rewards: [],
|
|
52
|
-
valueUsd: 100
|
|
53
|
-
};
|
|
54
|
-
this.positions.set(owner, [...this.positions.get(owner) || [], position]);
|
|
55
|
-
return {
|
|
56
|
-
success: true,
|
|
57
|
-
transactionId: `mock-open-${this.dexName}`,
|
|
58
|
-
data: { poolId: config.poolId }
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
async removeLiquidity(config) {
|
|
62
|
-
const owner = config.userVault?.publicKey?.toBase58?.() || "test-owner";
|
|
63
|
-
this.positions.set(owner, (this.positions.get(owner) || []).filter((position) => position.poolId !== config.poolId));
|
|
64
|
-
return {
|
|
65
|
-
success: true,
|
|
66
|
-
transactionId: `mock-close-${this.dexName}`,
|
|
67
|
-
data: { poolId: config.poolId }
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
async getLpPositionDetails(owner, poolOrPositionIdentifier) {
|
|
71
|
-
return (this.positions.get(owner) || []).find((position) => position.poolId === poolOrPositionIdentifier) || null;
|
|
72
|
-
}
|
|
73
|
-
async getMarketDataForPools(poolIds) {
|
|
74
|
-
return Object.fromEntries(poolIds.map((poolId) => [poolId, {
|
|
75
|
-
apr: 12,
|
|
76
|
-
tvl: 1e6
|
|
77
|
-
}]));
|
|
78
|
-
}
|
|
79
|
-
async start() {}
|
|
80
|
-
async stop() {}
|
|
81
|
-
};
|
|
82
|
-
async function registerMockDexServices(runtime) {
|
|
83
|
-
const registry = await getLpManagementService(runtime);
|
|
84
|
-
if (!registry) return;
|
|
85
|
-
for (const dex of [
|
|
86
|
-
"raydium",
|
|
87
|
-
"orca",
|
|
88
|
-
"meteora"
|
|
89
|
-
]) {
|
|
90
|
-
const service = new MockLpService(runtime, dex);
|
|
91
|
-
registry.registerProtocol(createSolanaLpProtocolProvider({
|
|
92
|
-
dex,
|
|
93
|
-
label: dex,
|
|
94
|
-
service
|
|
95
|
-
}));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
//#endregion
|
|
99
|
-
export { registerMockDexServices };
|