@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
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
2
|
+
import { Service } from "@elizaos/core";
|
|
3
|
+
export interface KaminoStrategy {
|
|
4
|
+
address: string;
|
|
5
|
+
strategyType: string;
|
|
6
|
+
estimatedTvl: number;
|
|
7
|
+
volume24h: number;
|
|
8
|
+
apy: number;
|
|
9
|
+
tokenA: string;
|
|
10
|
+
tokenB: string;
|
|
11
|
+
feeTier: string;
|
|
12
|
+
rebalancing: string;
|
|
13
|
+
lastRebalance: string;
|
|
14
|
+
positions: KaminoPosition[];
|
|
15
|
+
detailedInfo?: {
|
|
16
|
+
creationDate: string;
|
|
17
|
+
totalDeposits: number;
|
|
18
|
+
totalWithdrawals: number;
|
|
19
|
+
activeUsers: number;
|
|
20
|
+
performanceHistory: Array<{
|
|
21
|
+
date: string;
|
|
22
|
+
apy: number;
|
|
23
|
+
}>;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface KaminoPosition {
|
|
27
|
+
type: string;
|
|
28
|
+
range: string;
|
|
29
|
+
liquidity: number;
|
|
30
|
+
feesEarned: number;
|
|
31
|
+
}
|
|
32
|
+
export interface TokenLiquidityStats {
|
|
33
|
+
tokenIdentifier: string;
|
|
34
|
+
normalizedToken: string;
|
|
35
|
+
tokenName: string;
|
|
36
|
+
timestamp: string;
|
|
37
|
+
strategies: KaminoStrategy[];
|
|
38
|
+
totalTvl: number;
|
|
39
|
+
totalVolume: number;
|
|
40
|
+
apyRange: {
|
|
41
|
+
min: number;
|
|
42
|
+
max: number;
|
|
43
|
+
};
|
|
44
|
+
poolCount: number;
|
|
45
|
+
}
|
|
46
|
+
export interface TokenInfo {
|
|
47
|
+
name: string;
|
|
48
|
+
symbol: string;
|
|
49
|
+
address: string;
|
|
50
|
+
price?: number;
|
|
51
|
+
liquidity?: number;
|
|
52
|
+
decimals?: number;
|
|
53
|
+
marketCap?: number;
|
|
54
|
+
volume24h?: number;
|
|
55
|
+
priceChange24h?: number;
|
|
56
|
+
}
|
|
57
|
+
interface KaminoMarketStatistics {
|
|
58
|
+
timestamp: string;
|
|
59
|
+
stakingYields: {
|
|
60
|
+
total: number;
|
|
61
|
+
averageApy: number;
|
|
62
|
+
maxApy: number;
|
|
63
|
+
minApy: number;
|
|
64
|
+
};
|
|
65
|
+
medianYields: {
|
|
66
|
+
total: number;
|
|
67
|
+
averageApy: number;
|
|
68
|
+
};
|
|
69
|
+
limoTrades: {
|
|
70
|
+
total: number;
|
|
71
|
+
totalVolume: number;
|
|
72
|
+
averageTip: number;
|
|
73
|
+
averageSurplus: number;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export interface KaminoPoolInfoWithStrategy {
|
|
77
|
+
address: string;
|
|
78
|
+
strategy: KaminoStrategy;
|
|
79
|
+
tokenInfo: TokenInfo | null;
|
|
80
|
+
timestamp: string;
|
|
81
|
+
metrics: {
|
|
82
|
+
totalValueLocked: number;
|
|
83
|
+
volume24h: number;
|
|
84
|
+
apy: number;
|
|
85
|
+
feeTier: string;
|
|
86
|
+
rebalancing: string;
|
|
87
|
+
lastRebalance: string;
|
|
88
|
+
positionCount: number;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export interface KaminoPoolInfoTokenFallback {
|
|
92
|
+
address: string;
|
|
93
|
+
tokenInfo: TokenInfo;
|
|
94
|
+
timestamp: string;
|
|
95
|
+
note: string;
|
|
96
|
+
}
|
|
97
|
+
export type KaminoPoolByAddressResult = KaminoPoolInfoWithStrategy | KaminoPoolInfoTokenFallback | null;
|
|
98
|
+
interface KaminoLiquidityConnectionTest {
|
|
99
|
+
apiBaseUrl: string;
|
|
100
|
+
programId: string;
|
|
101
|
+
rpcEndpoint: string;
|
|
102
|
+
connectionTest: boolean;
|
|
103
|
+
stakingYieldsTest: boolean;
|
|
104
|
+
limoTradesTest: boolean;
|
|
105
|
+
strategyCount: number;
|
|
106
|
+
timestamp: string;
|
|
107
|
+
}
|
|
108
|
+
interface StakingYield {
|
|
109
|
+
apy: string;
|
|
110
|
+
tokenMint: string;
|
|
111
|
+
}
|
|
112
|
+
interface LimoTrade {
|
|
113
|
+
updatedOn: string;
|
|
114
|
+
inMint: string;
|
|
115
|
+
outMint: string;
|
|
116
|
+
sizeUsd: string;
|
|
117
|
+
tipAmountUsd: string;
|
|
118
|
+
surplusUsd: string;
|
|
119
|
+
order: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Kamino Liquidity Protocol Service
|
|
123
|
+
* Handles interactions with Kamino liquidity protocol using the official API
|
|
124
|
+
*/
|
|
125
|
+
export declare class KaminoLiquidityService extends Service {
|
|
126
|
+
private isRunning;
|
|
127
|
+
private apiBaseUrl;
|
|
128
|
+
static serviceType: string;
|
|
129
|
+
static serviceName: string;
|
|
130
|
+
capabilityDescription: "Provides detailed access to Kamino liquidity protocol pools and strategies for specific tokens via the official API.";
|
|
131
|
+
constructor(runtime?: IAgentRuntime);
|
|
132
|
+
/**
|
|
133
|
+
* Make a rate-limited API request to Kamino
|
|
134
|
+
*/
|
|
135
|
+
private makeApiRequest;
|
|
136
|
+
/**
|
|
137
|
+
* Resolve token information using Birdeye API
|
|
138
|
+
*/
|
|
139
|
+
resolveTokenWithBirdeye(tokenIdentifier: string): Promise<TokenInfo | null>;
|
|
140
|
+
/**
|
|
141
|
+
* Get staking yields for tokens
|
|
142
|
+
*/
|
|
143
|
+
getStakingYields(): Promise<StakingYield[]>;
|
|
144
|
+
/**
|
|
145
|
+
* Get median staking yields
|
|
146
|
+
*/
|
|
147
|
+
getMedianStakingYields(): Promise<StakingYield[]>;
|
|
148
|
+
/**
|
|
149
|
+
* Get Limo trades for a specific token pair
|
|
150
|
+
*/
|
|
151
|
+
getLimoTrades(inTokenMint?: string, outTokenMint?: string): Promise<LimoTrade[]>;
|
|
152
|
+
/**
|
|
153
|
+
* Get real-time market statistics from Kamino API
|
|
154
|
+
*/
|
|
155
|
+
getMarketStatistics(): Promise<KaminoMarketStatistics | null>;
|
|
156
|
+
/**
|
|
157
|
+
* Get all available Kamino strategies (not filtered by token)
|
|
158
|
+
*/
|
|
159
|
+
getAllStrategies(): Promise<KaminoStrategy[]>;
|
|
160
|
+
/**
|
|
161
|
+
* Get a specific strategy by its address
|
|
162
|
+
*/
|
|
163
|
+
getStrategyByAddress(strategyAddress: string): Promise<KaminoStrategy | null>;
|
|
164
|
+
/**
|
|
165
|
+
* Get detailed pool information by pool address
|
|
166
|
+
*/
|
|
167
|
+
getPoolByAddress(poolAddress: string): Promise<KaminoPoolByAddressResult>;
|
|
168
|
+
/**
|
|
169
|
+
* Get token liquidity information from Kamino
|
|
170
|
+
*/
|
|
171
|
+
getTokenLiquidityStats(tokenIdentifier: string): Promise<TokenLiquidityStats>;
|
|
172
|
+
/**
|
|
173
|
+
* Calculate APY for Limo trading strategy using real API data
|
|
174
|
+
*/
|
|
175
|
+
private calculateLimoApy;
|
|
176
|
+
/**
|
|
177
|
+
* Calculate fee tier for Limo trading strategy based on real market data
|
|
178
|
+
*/
|
|
179
|
+
private calculateLimoFeeTier;
|
|
180
|
+
/**
|
|
181
|
+
* Determine rebalancing strategy based on real market data and trade patterns
|
|
182
|
+
*/
|
|
183
|
+
private determineRebalancingStrategy;
|
|
184
|
+
/**
|
|
185
|
+
* Determine trading range based on trade data
|
|
186
|
+
*/
|
|
187
|
+
private determineTradingRange;
|
|
188
|
+
/**
|
|
189
|
+
* Normalize token identifier (handle symbols, addresses, etc.)
|
|
190
|
+
*/
|
|
191
|
+
normalizeTokenIdentifier(identifier: string): string;
|
|
192
|
+
/**
|
|
193
|
+
* Test connection and basic functionality
|
|
194
|
+
*/
|
|
195
|
+
testConnection(): Promise<KaminoLiquidityConnectionTest>;
|
|
196
|
+
static create(runtime: IAgentRuntime): Promise<KaminoLiquidityService>;
|
|
197
|
+
static start(runtime: IAgentRuntime): Promise<KaminoLiquidityService>;
|
|
198
|
+
static stop(runtime: IAgentRuntime): Promise<void>;
|
|
199
|
+
start(): Promise<void>;
|
|
200
|
+
stop(): Promise<void>;
|
|
201
|
+
isServiceRunning(): boolean;
|
|
202
|
+
}
|
|
203
|
+
export {};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
2
|
+
import { Service } from "@elizaos/core";
|
|
3
|
+
interface KaminoUserMarketRef {
|
|
4
|
+
address: string;
|
|
5
|
+
discovered: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface KaminoUserPosition {
|
|
8
|
+
token?: string;
|
|
9
|
+
amount?: number;
|
|
10
|
+
value?: number;
|
|
11
|
+
apy?: number;
|
|
12
|
+
market?: string;
|
|
13
|
+
}
|
|
14
|
+
interface KaminoUserPositionsOk {
|
|
15
|
+
lending: KaminoUserPosition[];
|
|
16
|
+
borrowing: KaminoUserPosition[];
|
|
17
|
+
totalValue: number;
|
|
18
|
+
markets: KaminoUserMarketRef[];
|
|
19
|
+
userAccounts: number;
|
|
20
|
+
walletAddress: string;
|
|
21
|
+
}
|
|
22
|
+
interface KaminoUserPositionsErr {
|
|
23
|
+
lending: KaminoUserPosition[];
|
|
24
|
+
borrowing: KaminoUserPosition[];
|
|
25
|
+
totalValue: number;
|
|
26
|
+
error: string;
|
|
27
|
+
}
|
|
28
|
+
export type KaminoUserPositions = KaminoUserPositionsOk | KaminoUserPositionsErr;
|
|
29
|
+
export interface KaminoMarketOverviewRow {
|
|
30
|
+
address: string;
|
|
31
|
+
marketName: string;
|
|
32
|
+
dataSize: number;
|
|
33
|
+
lamports: number;
|
|
34
|
+
owner: string;
|
|
35
|
+
executable: boolean;
|
|
36
|
+
}
|
|
37
|
+
interface KaminoMarketOverviewOk {
|
|
38
|
+
totalMarkets: number;
|
|
39
|
+
totalTvl: number;
|
|
40
|
+
totalBorrowed: number;
|
|
41
|
+
markets: KaminoMarketOverviewRow[];
|
|
42
|
+
programId: string;
|
|
43
|
+
multisig: string;
|
|
44
|
+
stakingYields?: number;
|
|
45
|
+
avgApy?: number;
|
|
46
|
+
maxApy?: number;
|
|
47
|
+
minApy?: number;
|
|
48
|
+
totalVolume?: number;
|
|
49
|
+
limoTrades?: number;
|
|
50
|
+
}
|
|
51
|
+
interface KaminoMarketOverviewErr {
|
|
52
|
+
totalMarkets: number;
|
|
53
|
+
totalTvl: number;
|
|
54
|
+
totalBorrowed: number;
|
|
55
|
+
markets: KaminoMarketOverviewRow[];
|
|
56
|
+
error: string;
|
|
57
|
+
}
|
|
58
|
+
type KaminoMarketOverview = KaminoMarketOverviewOk | KaminoMarketOverviewErr;
|
|
59
|
+
export interface KaminoReserve {
|
|
60
|
+
market: string;
|
|
61
|
+
marketName: string;
|
|
62
|
+
dataSize: number;
|
|
63
|
+
lamports: number;
|
|
64
|
+
owner: string;
|
|
65
|
+
supplyApy: number;
|
|
66
|
+
borrowApy: number;
|
|
67
|
+
totalSupply: number;
|
|
68
|
+
totalBorrow: number;
|
|
69
|
+
utilization: number;
|
|
70
|
+
}
|
|
71
|
+
interface KaminoProgramInfo {
|
|
72
|
+
programId: string;
|
|
73
|
+
multisig: string;
|
|
74
|
+
dataSize: number;
|
|
75
|
+
lamports: number;
|
|
76
|
+
owner: string;
|
|
77
|
+
executable: boolean;
|
|
78
|
+
rentEpoch: number;
|
|
79
|
+
}
|
|
80
|
+
interface KaminoConnectionTestResult {
|
|
81
|
+
apiBaseUrl: string;
|
|
82
|
+
programId: string;
|
|
83
|
+
connectionTest: boolean;
|
|
84
|
+
stakingYieldsTest: boolean;
|
|
85
|
+
limoTradesTest: boolean;
|
|
86
|
+
marketCount: number;
|
|
87
|
+
timestamp: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Kamino Lending Protocol Service
|
|
91
|
+
* Handles interactions with Kamino lending protocol using the official API
|
|
92
|
+
*/
|
|
93
|
+
export declare class KaminoService extends Service {
|
|
94
|
+
private isRunning;
|
|
95
|
+
private apiBaseUrl;
|
|
96
|
+
static serviceType: string;
|
|
97
|
+
static serviceName: string;
|
|
98
|
+
capabilityDescription: "Provides standardized access to Kamino lending protocol via the official API.";
|
|
99
|
+
constructor(runtime?: IAgentRuntime);
|
|
100
|
+
/**
|
|
101
|
+
* Make a rate-limited API request to Kamino
|
|
102
|
+
*/
|
|
103
|
+
private makeApiRequest;
|
|
104
|
+
/**
|
|
105
|
+
* Get all user positions (lending and borrowing) for a wallet address
|
|
106
|
+
*/
|
|
107
|
+
getUserPositions(walletAddress: string): Promise<KaminoUserPositions>;
|
|
108
|
+
/**
|
|
109
|
+
* Discover all Kamino markets by querying available API endpoints
|
|
110
|
+
*/
|
|
111
|
+
discoverMarkets(): Promise<string[]>;
|
|
112
|
+
/**
|
|
113
|
+
* Get market overview and statistics
|
|
114
|
+
*/
|
|
115
|
+
getMarketOverview(): Promise<KaminoMarketOverview>;
|
|
116
|
+
/**
|
|
117
|
+
* Get available reserves for lending/borrowing
|
|
118
|
+
*/
|
|
119
|
+
getAvailableReserves(): Promise<KaminoReserve[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Get program account info for debugging
|
|
122
|
+
*/
|
|
123
|
+
getProgramInfo(): Promise<KaminoProgramInfo>;
|
|
124
|
+
/**
|
|
125
|
+
* Calculate borrow APY based on supply APY
|
|
126
|
+
*/
|
|
127
|
+
private calculateBorrowApy;
|
|
128
|
+
/**
|
|
129
|
+
* Estimate total supply based on staking yield data
|
|
130
|
+
*/
|
|
131
|
+
private estimateTotalSupply;
|
|
132
|
+
/**
|
|
133
|
+
* Estimate total borrow based on staking yield data
|
|
134
|
+
*/
|
|
135
|
+
private estimateTotalBorrow;
|
|
136
|
+
/**
|
|
137
|
+
* Calculate utilization rate based on staking yield data
|
|
138
|
+
*/
|
|
139
|
+
private calculateUtilization;
|
|
140
|
+
/**
|
|
141
|
+
* Calculate Limo supply APY based on real market data
|
|
142
|
+
*/
|
|
143
|
+
private calculateLimoSupplyApy;
|
|
144
|
+
/**
|
|
145
|
+
* Calculate Limo borrow APY based on trade data
|
|
146
|
+
*/
|
|
147
|
+
private calculateLimoBorrowApy;
|
|
148
|
+
/**
|
|
149
|
+
* Estimate Limo borrow amount based on trade data
|
|
150
|
+
*/
|
|
151
|
+
private estimateLimoBorrow;
|
|
152
|
+
/**
|
|
153
|
+
* Calculate Limo utilization rate based on trade data
|
|
154
|
+
*/
|
|
155
|
+
private calculateLimoUtilization;
|
|
156
|
+
/**
|
|
157
|
+
* Estimate TVL from APY using real market data patterns
|
|
158
|
+
*/
|
|
159
|
+
private estimateTvlFromApy;
|
|
160
|
+
/**
|
|
161
|
+
* Test connection and basic functionality
|
|
162
|
+
*/
|
|
163
|
+
testConnection(): Promise<KaminoConnectionTestResult>;
|
|
164
|
+
static create(runtime: IAgentRuntime): Promise<KaminoService>;
|
|
165
|
+
static start(runtime: IAgentRuntime): Promise<KaminoService>;
|
|
166
|
+
static stop(runtime: IAgentRuntime): Promise<void>;
|
|
167
|
+
start(): Promise<void>;
|
|
168
|
+
stop(): Promise<void>;
|
|
169
|
+
isServiceRunning(): boolean;
|
|
170
|
+
}
|
|
171
|
+
export {};
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
2
|
+
import { Service } from "@elizaos/core";
|
|
3
|
+
import type { StakingPool } from "@steerprotocol/sdk";
|
|
4
|
+
import { StakingClient, VaultClient } from "@steerprotocol/sdk";
|
|
5
|
+
import type { SteerStakingPoolDetailInput, SteerVaultDetailInput } from "../steer-display-types.js";
|
|
6
|
+
type SteerEarnedRewardsResult = Awaited<ReturnType<StakingClient["earned"]>>;
|
|
7
|
+
type SteerStakingSupplyResult = Awaited<ReturnType<StakingClient["totalSupply"]>>;
|
|
8
|
+
type SteerStakingBalanceResult = Awaited<ReturnType<StakingClient["balanceOf"]>>;
|
|
9
|
+
type SteerPreviewDepositResult = Awaited<ReturnType<VaultClient["previewSingleAssetDeposit"]>>;
|
|
10
|
+
type SteerSingleDepositResult = Awaited<ReturnType<VaultClient["singleAssetDeposit"]>>;
|
|
11
|
+
interface TokenLiquidityStats {
|
|
12
|
+
tokenIdentifier: string;
|
|
13
|
+
normalizedToken: string;
|
|
14
|
+
tokenName: string;
|
|
15
|
+
timestamp: string;
|
|
16
|
+
vaults: SteerVaultDetailInput[];
|
|
17
|
+
stakingPools: SteerStakingPoolDetailInput[];
|
|
18
|
+
totalTvl: number;
|
|
19
|
+
totalVolume: number;
|
|
20
|
+
apyRange: {
|
|
21
|
+
min: number;
|
|
22
|
+
max: number;
|
|
23
|
+
};
|
|
24
|
+
vaultCount: number;
|
|
25
|
+
stakingPoolCount: number;
|
|
26
|
+
}
|
|
27
|
+
interface ConnectionTestResult {
|
|
28
|
+
connectionTest: boolean;
|
|
29
|
+
supportedChains: number[];
|
|
30
|
+
vaultCount: number;
|
|
31
|
+
stakingPoolCount: number;
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
interface GraphQLVaultData {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
token0: string;
|
|
38
|
+
token1: string;
|
|
39
|
+
pool: string;
|
|
40
|
+
weeklyFeeAPR: string;
|
|
41
|
+
token0Symbol: string;
|
|
42
|
+
token0Decimals: string;
|
|
43
|
+
token1Symbol: string;
|
|
44
|
+
token1Decimals: string;
|
|
45
|
+
token0Balance: string;
|
|
46
|
+
token1Balance: string;
|
|
47
|
+
totalLPTokensIssued: string;
|
|
48
|
+
feeTier: string;
|
|
49
|
+
fees0: string;
|
|
50
|
+
fees1: string;
|
|
51
|
+
strategyToken: {
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
creator: {
|
|
55
|
+
id: string;
|
|
56
|
+
};
|
|
57
|
+
admin: string;
|
|
58
|
+
executionBundle: string;
|
|
59
|
+
};
|
|
60
|
+
beaconName: string;
|
|
61
|
+
payloadIpfs: string;
|
|
62
|
+
deployer: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Steer Finance Liquidity Protocol Service
|
|
66
|
+
* Handles interactions with Steer Finance protocol using the official SDK
|
|
67
|
+
*/
|
|
68
|
+
export declare class SteerLiquidityService extends Service {
|
|
69
|
+
private isRunning;
|
|
70
|
+
private supportedChains;
|
|
71
|
+
private vaultClients;
|
|
72
|
+
private stakingClients;
|
|
73
|
+
private cache;
|
|
74
|
+
private readonly CACHE_TTL;
|
|
75
|
+
static serviceType: string;
|
|
76
|
+
static serviceName: string;
|
|
77
|
+
capabilityDescription: "Provides detailed access to Steer Finance vaults and staking pools for specific tokens using the official SDK.";
|
|
78
|
+
constructor(runtime?: IAgentRuntime);
|
|
79
|
+
/**
|
|
80
|
+
* Get the appropriate Viem chain object for a given chain ID
|
|
81
|
+
*/
|
|
82
|
+
private getViemChain;
|
|
83
|
+
/**
|
|
84
|
+
* Initialize vault and staking clients for each supported chain
|
|
85
|
+
*/
|
|
86
|
+
private initializeChainClients;
|
|
87
|
+
/**
|
|
88
|
+
* Get token liquidity information from Steer Finance across all supported chains or a specific chain
|
|
89
|
+
*/
|
|
90
|
+
getTokenLiquidityStats(tokenIdentifier: string, targetChainId?: number | null): Promise<TokenLiquidityStats>;
|
|
91
|
+
/**
|
|
92
|
+
* Get all vaults for a specific chain using the SDK
|
|
93
|
+
*/
|
|
94
|
+
private getAllVaultsForChain;
|
|
95
|
+
/**
|
|
96
|
+
* Get vaults for a specific token on a specific chain using SDK
|
|
97
|
+
*/
|
|
98
|
+
private getVaultsForToken;
|
|
99
|
+
/**
|
|
100
|
+
* Check if a vault contains a specific token
|
|
101
|
+
*/
|
|
102
|
+
private vaultContainsToken;
|
|
103
|
+
/**
|
|
104
|
+
* Process vault data from SDK response
|
|
105
|
+
*/
|
|
106
|
+
private processVaultData;
|
|
107
|
+
/**
|
|
108
|
+
* Get vault details by address using GraphQL (preferred) or SDK fallback
|
|
109
|
+
*/
|
|
110
|
+
getVaultDetails(vaultAddress: string, chainId: number): Promise<SteerVaultDetailInput | null>;
|
|
111
|
+
/**
|
|
112
|
+
* Get vault details by address using SDK (fallback method)
|
|
113
|
+
*/
|
|
114
|
+
private getVaultDetailsFromSDK;
|
|
115
|
+
/**
|
|
116
|
+
* Get token prices for TVL calculation
|
|
117
|
+
*/
|
|
118
|
+
getTokenPrices(_tokenAddresses: string[], chainId: number): Promise<{
|
|
119
|
+
[address: string]: number;
|
|
120
|
+
} | null>;
|
|
121
|
+
/**
|
|
122
|
+
* Get pool data including TVL, volume, and fee information
|
|
123
|
+
*/
|
|
124
|
+
getPoolData(poolAddress: string, chainId: number): Promise<{
|
|
125
|
+
tvl: number;
|
|
126
|
+
volume24h: number;
|
|
127
|
+
fee: number;
|
|
128
|
+
liquidity: number;
|
|
129
|
+
} | null>;
|
|
130
|
+
/**
|
|
131
|
+
* Get staking pool details by address using SDK
|
|
132
|
+
*/
|
|
133
|
+
getStakingPoolDetails(poolAddress: string, chainId: number): Promise<StakingPool | null>;
|
|
134
|
+
/**
|
|
135
|
+
* Test GraphQL connection specifically
|
|
136
|
+
*/
|
|
137
|
+
testGraphQLConnection(): Promise<{
|
|
138
|
+
success: boolean;
|
|
139
|
+
error?: string;
|
|
140
|
+
}>;
|
|
141
|
+
/**
|
|
142
|
+
* Test GraphQL vault query with a specific vault address
|
|
143
|
+
*/
|
|
144
|
+
testGraphQLVaultQuery(vaultAddress: string): Promise<{
|
|
145
|
+
success: boolean;
|
|
146
|
+
data?: GraphQLVaultData;
|
|
147
|
+
error?: string;
|
|
148
|
+
}>;
|
|
149
|
+
/**
|
|
150
|
+
* Test connection to Steer Finance services using SDK
|
|
151
|
+
*/
|
|
152
|
+
testConnection(): Promise<ConnectionTestResult>;
|
|
153
|
+
/**
|
|
154
|
+
* Normalize token identifier (handle different formats)
|
|
155
|
+
*/
|
|
156
|
+
private normalizeTokenIdentifier;
|
|
157
|
+
/**
|
|
158
|
+
* Get token name from identifier
|
|
159
|
+
*/
|
|
160
|
+
private getTokenName;
|
|
161
|
+
/**
|
|
162
|
+
* Get chain name from chain ID
|
|
163
|
+
*/
|
|
164
|
+
private getChainName;
|
|
165
|
+
/**
|
|
166
|
+
* Clear expired cache entries
|
|
167
|
+
*/
|
|
168
|
+
private clearExpiredCache;
|
|
169
|
+
static create(runtime: IAgentRuntime): Promise<SteerLiquidityService>;
|
|
170
|
+
static start(runtime: IAgentRuntime): Promise<SteerLiquidityService>;
|
|
171
|
+
static stop(runtime: IAgentRuntime): Promise<void>;
|
|
172
|
+
start(): Promise<void>;
|
|
173
|
+
stop(): Promise<void>;
|
|
174
|
+
isServiceRunning(): boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Preview single-asset deposit for a vault using SDK
|
|
177
|
+
*/
|
|
178
|
+
previewSingleAssetDeposit(vaultAddress: string, chainId: number, assets: bigint, isToken0: boolean, depositSlippagePercent?: bigint, swapSlippageBP?: number): Promise<SteerPreviewDepositResult>;
|
|
179
|
+
/**
|
|
180
|
+
* Execute single-asset deposit for a vault using SDK
|
|
181
|
+
*/
|
|
182
|
+
executeSingleAssetDeposit(vaultAddress: string, chainId: number, assets: bigint, receiver: string, isToken0: boolean, depositSlippagePercent?: bigint, swapSlippageBP?: number): Promise<SteerSingleDepositResult>;
|
|
183
|
+
/**
|
|
184
|
+
* Get earned rewards for a staking pool using SDK
|
|
185
|
+
*/
|
|
186
|
+
getEarnedRewards(poolAddress: string, accountAddress: string, chainId: number): Promise<SteerEarnedRewardsResult>;
|
|
187
|
+
/**
|
|
188
|
+
* Get total supply of a staking pool using SDK
|
|
189
|
+
*/
|
|
190
|
+
getStakingPoolTotalSupply(poolAddress: string, chainId: number): Promise<SteerStakingSupplyResult>;
|
|
191
|
+
/**
|
|
192
|
+
* Get balance of a user in a staking pool using SDK
|
|
193
|
+
*/
|
|
194
|
+
getStakingPoolBalance(poolAddress: string, accountAddress: string, chainId: number): Promise<SteerStakingBalanceResult>;
|
|
195
|
+
/**
|
|
196
|
+
* Fetch detailed vault data from Steer Protocol GraphQL subgraph
|
|
197
|
+
*/
|
|
198
|
+
getVaultDataFromGraphQL(vaultAddress: string): Promise<GraphQLVaultData | null>;
|
|
199
|
+
/**
|
|
200
|
+
* Enrich vault data with GraphQL information
|
|
201
|
+
*/
|
|
202
|
+
enrichVaultWithGraphQLData(vault: SteerVaultDetailInput, _chainId: number): Promise<SteerVaultDetailInput>;
|
|
203
|
+
/**
|
|
204
|
+
* Calculate TVL from token balances using LP tokens as proxy
|
|
205
|
+
*/
|
|
206
|
+
private calculateTvlFromBalances;
|
|
207
|
+
}
|
|
208
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display-layer shapes for Steer vaults/pools rendered in steerLiquidityProvider.
|
|
3
|
+
* These mirror the enriched objects built in SteerLiquidityService.
|
|
4
|
+
*/
|
|
5
|
+
export interface SteerGraphqlTokenRef {
|
|
6
|
+
name: string;
|
|
7
|
+
creator: {
|
|
8
|
+
id: string;
|
|
9
|
+
};
|
|
10
|
+
admin: string;
|
|
11
|
+
executionBundle?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SteerGraphqlEnrichment {
|
|
14
|
+
weeklyFeeAPR: number;
|
|
15
|
+
token0Symbol: string;
|
|
16
|
+
token0Decimals: number;
|
|
17
|
+
token1Symbol: string;
|
|
18
|
+
token1Decimals: number;
|
|
19
|
+
token0Balance: string;
|
|
20
|
+
token1Balance: string;
|
|
21
|
+
totalLPTokensIssued: string;
|
|
22
|
+
feeTier: number;
|
|
23
|
+
fees0: string;
|
|
24
|
+
fees1: string;
|
|
25
|
+
strategyToken?: SteerGraphqlTokenRef;
|
|
26
|
+
beaconName: string;
|
|
27
|
+
payloadIpfs: string;
|
|
28
|
+
deployer: string;
|
|
29
|
+
}
|
|
30
|
+
export interface SteerVaultPositionRow {
|
|
31
|
+
type: string;
|
|
32
|
+
range: string;
|
|
33
|
+
liquidity: number;
|
|
34
|
+
}
|
|
35
|
+
/** Token slot may be raw address string or `{ address?: string }` */
|
|
36
|
+
export type SteerVaultTokenSide = string | {
|
|
37
|
+
address?: string;
|
|
38
|
+
};
|
|
39
|
+
export interface SteerVaultDetailInput {
|
|
40
|
+
address: string;
|
|
41
|
+
/** Present on some SDK responses alongside `address` */
|
|
42
|
+
vaultAddress?: string;
|
|
43
|
+
name: string;
|
|
44
|
+
chainId: number;
|
|
45
|
+
tvl: number;
|
|
46
|
+
volume24h: number;
|
|
47
|
+
apy: number;
|
|
48
|
+
strategyType: string;
|
|
49
|
+
fee: number;
|
|
50
|
+
createdAt: number;
|
|
51
|
+
isActive: boolean;
|
|
52
|
+
token0?: SteerVaultTokenSide | "Unknown";
|
|
53
|
+
token1?: SteerVaultTokenSide | "Unknown";
|
|
54
|
+
graphqlData?: SteerGraphqlEnrichment;
|
|
55
|
+
calculatedTvl?: number;
|
|
56
|
+
positions?: SteerVaultPositionRow[];
|
|
57
|
+
/** Present on some SDK/GraphQL paths for downstream transactions */
|
|
58
|
+
poolAddress?: string;
|
|
59
|
+
singleAssetDepositContract?: `0x${string}`;
|
|
60
|
+
weeklyFeeAPR?: number;
|
|
61
|
+
/** Flattened GraphQL fields sometimes attached on `getVaultDetails` results */
|
|
62
|
+
token0Symbol?: string;
|
|
63
|
+
token1Symbol?: string;
|
|
64
|
+
token0Balance?: string;
|
|
65
|
+
token1Balance?: string;
|
|
66
|
+
totalLPTokensIssued?: string;
|
|
67
|
+
feeTier?: number;
|
|
68
|
+
fees0?: string;
|
|
69
|
+
fees1?: string;
|
|
70
|
+
strategyToken?: SteerGraphqlTokenRef;
|
|
71
|
+
beaconName?: string;
|
|
72
|
+
deployer?: string;
|
|
73
|
+
/** Extra SDK fields merged in `processVaultData` */
|
|
74
|
+
ammType?: string | number;
|
|
75
|
+
protocol?: string;
|
|
76
|
+
protocolBaseType?: string;
|
|
77
|
+
targetProtocol?: string;
|
|
78
|
+
apr?: number;
|
|
79
|
+
apr1d?: number;
|
|
80
|
+
apr7d?: number;
|
|
81
|
+
apr14d?: number;
|
|
82
|
+
feeApr?: number;
|
|
83
|
+
stakingApr?: number;
|
|
84
|
+
merklApr?: number;
|
|
85
|
+
}
|
|
86
|
+
export interface SteerStakingPoolDetailInput {
|
|
87
|
+
address: string;
|
|
88
|
+
name: string;
|
|
89
|
+
chainId: number;
|
|
90
|
+
totalStakedUSD: number;
|
|
91
|
+
apr: number;
|
|
92
|
+
stakingToken: string;
|
|
93
|
+
rewardToken: string;
|
|
94
|
+
rewardRate: number;
|
|
95
|
+
periodFinish: number;
|
|
96
|
+
isActive: boolean;
|
|
97
|
+
}
|