@elizaos/plugin-wallet 2.0.0-beta.1 → 2.0.3-beta.5
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
|
@@ -9,6 +9,17 @@ import type {
|
|
|
9
9
|
ProviderValue,
|
|
10
10
|
State,
|
|
11
11
|
} from "@elizaos/core";
|
|
12
|
+
import { walletSearchAddressHandler } from "../analytics/birdeye/actions/wallet-search-address.js";
|
|
13
|
+
import { tokenInfoHandler } from "../analytics/token-info/action.js";
|
|
14
|
+
import {
|
|
15
|
+
assertEvmTransferRecipientAuthorized,
|
|
16
|
+
assertWalletFinancialActionAllowed,
|
|
17
|
+
} from "../security/wallet-context-safety.js";
|
|
18
|
+
import {
|
|
19
|
+
gateWalletFinancialExecution,
|
|
20
|
+
requiresWalletFinancialConfirmation,
|
|
21
|
+
walletFinancialGateActionResult,
|
|
22
|
+
} from "../security/wallet-financial-confirmation.js";
|
|
12
23
|
import {
|
|
13
24
|
WALLET_BACKEND_SERVICE_TYPE,
|
|
14
25
|
type WalletBackendService,
|
|
@@ -40,9 +51,40 @@ const LEGACY_TRANSFER_ACTIONS = new Set([
|
|
|
40
51
|
]);
|
|
41
52
|
|
|
42
53
|
const LEGACY_BRIDGE_ACTIONS = new Set(["CROSS_CHAIN_TRANSFER"]);
|
|
43
|
-
const LEGACY_GOV_ACTIONS = new Set(["WALLET_GOV"
|
|
54
|
+
const LEGACY_GOV_ACTIONS = new Set(["WALLET_GOV"]);
|
|
55
|
+
const LEGACY_TOKEN_INFO_ACTIONS = new Set(["TOKEN_INFO"]);
|
|
56
|
+
const LEGACY_SEARCH_ADDRESS_ACTIONS = new Set([
|
|
57
|
+
"BIRDEYE_SEARCH",
|
|
58
|
+
"BIRDEYE_LOOKUP",
|
|
59
|
+
"WALLET_SEARCH_ADDRESS",
|
|
60
|
+
]);
|
|
44
61
|
const GOV_OPS = new Set(["propose", "vote", "queue", "execute"]);
|
|
45
62
|
|
|
63
|
+
const ANALYTICS_SUBACTIONS = ["token_info", "search_address"] as const;
|
|
64
|
+
type WalletAnalyticsSubaction = (typeof ANALYTICS_SUBACTIONS)[number];
|
|
65
|
+
|
|
66
|
+
const WALLET_SUBACTIONS = [
|
|
67
|
+
"transfer",
|
|
68
|
+
"swap",
|
|
69
|
+
"bridge",
|
|
70
|
+
"gov",
|
|
71
|
+
...ANALYTICS_SUBACTIONS,
|
|
72
|
+
] as const;
|
|
73
|
+
type WalletSubaction = (typeof WALLET_SUBACTIONS)[number];
|
|
74
|
+
|
|
75
|
+
function isWalletAnalyticsSubaction(
|
|
76
|
+
value: unknown,
|
|
77
|
+
): value is WalletAnalyticsSubaction {
|
|
78
|
+
return (
|
|
79
|
+
typeof value === "string" &&
|
|
80
|
+
(ANALYTICS_SUBACTIONS as readonly string[]).includes(value)
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function isWalletSubaction(value: unknown): value is WalletSubaction {
|
|
85
|
+
return isWalletRouterSubaction(value) || isWalletAnalyticsSubaction(value);
|
|
86
|
+
}
|
|
87
|
+
|
|
46
88
|
function selectedContextMatches(
|
|
47
89
|
state: State | undefined,
|
|
48
90
|
contexts: readonly string[],
|
|
@@ -79,15 +121,15 @@ function objectRecord(value: unknown): Record<string, unknown> | null {
|
|
|
79
121
|
return value as Record<string, unknown>;
|
|
80
122
|
}
|
|
81
123
|
|
|
82
|
-
function
|
|
124
|
+
function legacySubactionFromName(value: unknown): WalletSubaction | undefined {
|
|
83
125
|
if (typeof value !== "string") return undefined;
|
|
84
126
|
const upper = value.toUpperCase();
|
|
85
127
|
if (LEGACY_SWAP_ACTIONS.has(upper)) return "swap";
|
|
86
|
-
if (LEGACY_TRANSFER_ACTIONS.has(upper))
|
|
87
|
-
return "transfer";
|
|
88
|
-
}
|
|
128
|
+
if (LEGACY_TRANSFER_ACTIONS.has(upper)) return "transfer";
|
|
89
129
|
if (LEGACY_BRIDGE_ACTIONS.has(upper)) return "bridge";
|
|
90
130
|
if (LEGACY_GOV_ACTIONS.has(upper)) return "gov";
|
|
131
|
+
if (LEGACY_TOKEN_INFO_ACTIONS.has(upper)) return "token_info";
|
|
132
|
+
if (LEGACY_SEARCH_ADDRESS_ACTIONS.has(upper)) return "search_address";
|
|
91
133
|
return undefined;
|
|
92
134
|
}
|
|
93
135
|
|
|
@@ -97,18 +139,47 @@ function normalizedGovOp(value: unknown): string | undefined {
|
|
|
97
139
|
return GOV_OPS.has(normalized) ? normalized : undefined;
|
|
98
140
|
}
|
|
99
141
|
|
|
142
|
+
function normalizeSubactionValue(value: unknown): WalletSubaction | undefined {
|
|
143
|
+
if (typeof value !== "string") return undefined;
|
|
144
|
+
const normalized = value
|
|
145
|
+
.trim()
|
|
146
|
+
.toLowerCase()
|
|
147
|
+
.replace(/[\s-]+/g, "_");
|
|
148
|
+
if ((WALLET_SUBACTIONS as readonly string[]).includes(normalized as string)) {
|
|
149
|
+
return normalized as WalletSubaction;
|
|
150
|
+
}
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Pull the discriminator from raw params.
|
|
156
|
+
*
|
|
157
|
+
* Schema-canonical name is `action`. The dispatcher additionally accepts
|
|
158
|
+
* `subaction` (legacy) and other historical aliases for compatibility.
|
|
159
|
+
*/
|
|
160
|
+
function resolveSubaction(
|
|
161
|
+
raw: Record<string, unknown>,
|
|
162
|
+
): WalletSubaction | undefined {
|
|
163
|
+
const discriminator =
|
|
164
|
+
normalizeSubactionValue(raw.action) ??
|
|
165
|
+
normalizeSubactionValue(raw.subaction) ??
|
|
166
|
+
normalizeSubactionValue(raw.operation) ??
|
|
167
|
+
normalizeSubactionValue(raw.actionType);
|
|
168
|
+
if (discriminator) return discriminator;
|
|
169
|
+
|
|
170
|
+
const op = normalizedGovOp(raw.op ?? raw.govOp);
|
|
171
|
+
if (op) return "gov";
|
|
172
|
+
|
|
173
|
+
return legacySubactionFromName(raw.action ?? raw.name);
|
|
174
|
+
}
|
|
175
|
+
|
|
100
176
|
function normalizeRawParams(
|
|
101
177
|
raw: Record<string, unknown>,
|
|
102
178
|
): Record<string, unknown> {
|
|
103
|
-
const
|
|
179
|
+
const subaction = resolveSubaction(raw);
|
|
104
180
|
const op = normalizedGovOp(raw.op ?? raw.govOp);
|
|
105
181
|
return {
|
|
106
|
-
subaction
|
|
107
|
-
raw.subaction ??
|
|
108
|
-
raw.operation ??
|
|
109
|
-
raw.actionType ??
|
|
110
|
-
(op ? "gov" : undefined) ??
|
|
111
|
-
legacySubaction(action),
|
|
182
|
+
subaction,
|
|
112
183
|
chain: raw.chain ?? raw.fromChain ?? raw.network,
|
|
113
184
|
toChain:
|
|
114
185
|
raw.toChain ?? raw.toNetwork ?? raw.destinationChain ?? raw.targetChain,
|
|
@@ -127,7 +198,7 @@ function normalizeRawParams(
|
|
|
127
198
|
amount: raw.amount,
|
|
128
199
|
recipient: raw.recipient ?? raw.toAddress ?? raw.to,
|
|
129
200
|
slippageBps: raw.slippageBps ?? raw.slippage,
|
|
130
|
-
mode: raw.mode
|
|
201
|
+
mode: raw.mode,
|
|
131
202
|
dryRun: raw.dryRun ?? raw.dry_run,
|
|
132
203
|
op,
|
|
133
204
|
governor: raw.governor,
|
|
@@ -151,7 +222,9 @@ function extractRawParams(
|
|
|
151
222
|
|
|
152
223
|
if (
|
|
153
224
|
optionRecord &&
|
|
154
|
-
("
|
|
225
|
+
("action" in optionRecord ||
|
|
226
|
+
"subaction" in optionRecord ||
|
|
227
|
+
"name" in optionRecord)
|
|
155
228
|
) {
|
|
156
229
|
return optionRecord;
|
|
157
230
|
}
|
|
@@ -243,7 +316,7 @@ function serviceFromRuntime(
|
|
|
243
316
|
return null;
|
|
244
317
|
}
|
|
245
318
|
|
|
246
|
-
async function
|
|
319
|
+
async function parseRouterParams(
|
|
247
320
|
message: Memory,
|
|
248
321
|
state?: State,
|
|
249
322
|
options?: HandlerOptions | Record<string, unknown>,
|
|
@@ -252,15 +325,145 @@ async function parseParams(
|
|
|
252
325
|
return parseWalletRouterParams(normalizeRawParams(raw ?? {}));
|
|
253
326
|
}
|
|
254
327
|
|
|
328
|
+
async function runWalletRouter(
|
|
329
|
+
runtime: IAgentRuntime,
|
|
330
|
+
message: Memory,
|
|
331
|
+
state: State | undefined,
|
|
332
|
+
options: HandlerOptions | Record<string, unknown> | undefined,
|
|
333
|
+
callback: HandlerCallback | undefined,
|
|
334
|
+
): Promise<ActionResult> {
|
|
335
|
+
let params: WalletRouterParams;
|
|
336
|
+
try {
|
|
337
|
+
params = await parseRouterParams(message, state, options);
|
|
338
|
+
assertWalletFinancialActionAllowed(message, params.subaction);
|
|
339
|
+
} catch (error) {
|
|
340
|
+
const text = `Invalid wallet parameters: ${
|
|
341
|
+
error instanceof Error ? error.message : String(error)
|
|
342
|
+
}`;
|
|
343
|
+
await callback?.({ text, content: { error: "INVALID_PARAMS" } });
|
|
344
|
+
return {
|
|
345
|
+
success: false,
|
|
346
|
+
text,
|
|
347
|
+
data: { error: "INVALID_PARAMS" },
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
if (
|
|
352
|
+
params.subaction === "transfer" &&
|
|
353
|
+
params.recipient &&
|
|
354
|
+
/^0x[a-fA-F0-9]{40}$/.test(params.recipient)
|
|
355
|
+
) {
|
|
356
|
+
try {
|
|
357
|
+
assertEvmTransferRecipientAuthorized(
|
|
358
|
+
message,
|
|
359
|
+
options as Record<string, unknown> | undefined,
|
|
360
|
+
params.recipient,
|
|
361
|
+
);
|
|
362
|
+
} catch (error) {
|
|
363
|
+
const text = `Invalid wallet transfer recipient: ${
|
|
364
|
+
error instanceof Error ? error.message : String(error)
|
|
365
|
+
}`;
|
|
366
|
+
await callback?.({ text, content: { error: "INVALID_PARAMS" } });
|
|
367
|
+
return {
|
|
368
|
+
success: false,
|
|
369
|
+
text,
|
|
370
|
+
data: { error: "INVALID_PARAMS" },
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
const service = serviceFromRuntime(runtime);
|
|
376
|
+
if (!service) {
|
|
377
|
+
const text = "Wallet router service is not available.";
|
|
378
|
+
await callback?.({ text, content: { error: "SERVICE_UNAVAILABLE" } });
|
|
379
|
+
return {
|
|
380
|
+
success: false,
|
|
381
|
+
text,
|
|
382
|
+
data: { error: "SERVICE_UNAVAILABLE" },
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
const preflightFailure = service.preflightWalletAction(params);
|
|
387
|
+
if (preflightFailure) {
|
|
388
|
+
const text = formatFailure(preflightFailure);
|
|
389
|
+
const data = toProviderRecord({
|
|
390
|
+
error: preflightFailure.error,
|
|
391
|
+
detail: preflightFailure.detail,
|
|
392
|
+
candidates: preflightFailure.candidates,
|
|
393
|
+
});
|
|
394
|
+
await callback?.({ text, content: { success: false, ...data } });
|
|
395
|
+
return {
|
|
396
|
+
success: false,
|
|
397
|
+
text,
|
|
398
|
+
data,
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
const confirmationGate = await gateWalletFinancialExecution({
|
|
403
|
+
runtime,
|
|
404
|
+
message,
|
|
405
|
+
params,
|
|
406
|
+
callback,
|
|
407
|
+
});
|
|
408
|
+
if (!confirmationGate.proceed) {
|
|
409
|
+
return walletFinancialGateActionResult(confirmationGate);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
const executionParams: WalletRouterParams = {
|
|
413
|
+
...params,
|
|
414
|
+
mode: requiresWalletFinancialConfirmation(params) ? "execute" : params.mode,
|
|
415
|
+
};
|
|
416
|
+
|
|
417
|
+
const routed = await service.routeWalletAction(executionParams);
|
|
418
|
+
const text = resultText(routed);
|
|
419
|
+
const data = toProviderRecord(
|
|
420
|
+
routed.ok
|
|
421
|
+
? {
|
|
422
|
+
...routed.result,
|
|
423
|
+
handler: routed.handler,
|
|
424
|
+
}
|
|
425
|
+
: {
|
|
426
|
+
error: routed.error,
|
|
427
|
+
detail: routed.detail,
|
|
428
|
+
candidates: routed.candidates,
|
|
429
|
+
},
|
|
430
|
+
);
|
|
431
|
+
|
|
432
|
+
await callback?.({
|
|
433
|
+
text,
|
|
434
|
+
content: {
|
|
435
|
+
success: routed.ok,
|
|
436
|
+
...data,
|
|
437
|
+
},
|
|
438
|
+
});
|
|
439
|
+
|
|
440
|
+
return {
|
|
441
|
+
success: routed.ok,
|
|
442
|
+
text,
|
|
443
|
+
values: routed.ok
|
|
444
|
+
? {
|
|
445
|
+
walletActionSucceeded: routed.result.status === "submitted",
|
|
446
|
+
walletActionPrepared: routed.result.status === "prepared",
|
|
447
|
+
walletChain: routed.handler.chain,
|
|
448
|
+
walletSubaction: routed.result
|
|
449
|
+
.subaction satisfies WalletRouterSubaction,
|
|
450
|
+
}
|
|
451
|
+
: {
|
|
452
|
+
walletActionError: routed.error,
|
|
453
|
+
},
|
|
454
|
+
data,
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
|
|
255
458
|
export const walletRouterAction: Action = {
|
|
256
459
|
name: "WALLET",
|
|
257
460
|
description:
|
|
258
|
-
"Route wallet
|
|
461
|
+
"Route wallet operations through registered chain handlers and analytics providers. Use action=transfer|swap|bridge|gov for on-chain ops (params: chain, toChain, fromToken, toToken, amount, recipient, slippageBps, mode, dryRun); action=token_info for token/market data (params: target, query, address, chain); action=search_address for Birdeye wallet/portfolio lookup (param: address).",
|
|
259
462
|
descriptionCompressed:
|
|
260
|
-
"
|
|
463
|
+
"WALLET transfer|swap|bridge|gov|token_info|search_address; chain ops + market/portfolio",
|
|
261
464
|
contexts: ["finance", "crypto", "wallet"],
|
|
262
465
|
contextGate: { anyOf: ["finance", "crypto", "wallet"] },
|
|
263
|
-
roleGate: { minRole: "
|
|
466
|
+
roleGate: { minRole: "ADMIN" },
|
|
264
467
|
similes: [
|
|
265
468
|
"SWAP",
|
|
266
469
|
"SWAP_SOLANA",
|
|
@@ -272,23 +475,34 @@ export const walletRouterAction: Action = {
|
|
|
272
475
|
"PREPARE_TRANSFER",
|
|
273
476
|
"WALLET_ACTION",
|
|
274
477
|
"WALLET_GOV",
|
|
275
|
-
"
|
|
478
|
+
"TOKEN_INFO",
|
|
479
|
+
"BIRDEYE_LOOKUP",
|
|
480
|
+
"BIRDEYE_SEARCH",
|
|
481
|
+
"WALLET_SEARCH_ADDRESS",
|
|
276
482
|
],
|
|
277
483
|
parameters: [
|
|
278
484
|
{
|
|
279
|
-
name: "
|
|
280
|
-
description:
|
|
485
|
+
name: "action",
|
|
486
|
+
description:
|
|
487
|
+
"Wallet operation to perform. Write ops use the chain handler registry; analytics ops use the token-info provider registry.",
|
|
281
488
|
required: true,
|
|
282
|
-
schema: { type: "string", enum: [
|
|
283
|
-
examples: [
|
|
489
|
+
schema: { type: "string", enum: [...WALLET_SUBACTIONS] },
|
|
490
|
+
examples: [
|
|
491
|
+
"transfer",
|
|
492
|
+
"swap",
|
|
493
|
+
"bridge",
|
|
494
|
+
"gov",
|
|
495
|
+
"token_info",
|
|
496
|
+
"search_address",
|
|
497
|
+
],
|
|
284
498
|
},
|
|
285
499
|
{
|
|
286
500
|
name: "target",
|
|
287
501
|
description:
|
|
288
|
-
"Chain id
|
|
502
|
+
"Chain id/name for write ops (source chain for bridge); analytics provider for token_info (dexscreener, birdeye, coingecko). Omit only when one handler/provider supports the action.",
|
|
289
503
|
required: false,
|
|
290
504
|
schema: { type: "string" },
|
|
291
|
-
examples: ["base", "solana", "8453"],
|
|
505
|
+
examples: ["base", "solana", "8453", "dexscreener", "birdeye"],
|
|
292
506
|
},
|
|
293
507
|
{
|
|
294
508
|
name: "toChain",
|
|
@@ -316,7 +530,7 @@ export const walletRouterAction: Action = {
|
|
|
316
530
|
name: "amount",
|
|
317
531
|
description:
|
|
318
532
|
"Human-readable token amount. Required for transfer, swap, and bridge.",
|
|
319
|
-
required:
|
|
533
|
+
required: false,
|
|
320
534
|
schema: { type: "string" },
|
|
321
535
|
examples: ["0.1", "25"],
|
|
322
536
|
},
|
|
@@ -336,7 +550,8 @@ export const walletRouterAction: Action = {
|
|
|
336
550
|
},
|
|
337
551
|
{
|
|
338
552
|
name: "mode",
|
|
339
|
-
description:
|
|
553
|
+
description:
|
|
554
|
+
"Prepare without submitting, or request execution. On-chain submission still requires the user to reply yes on a follow-up turn (LLM cannot authorize via mode or confirmed flags).",
|
|
340
555
|
required: false,
|
|
341
556
|
schema: {
|
|
342
557
|
type: "string",
|
|
@@ -354,7 +569,7 @@ export const walletRouterAction: Action = {
|
|
|
354
569
|
},
|
|
355
570
|
{
|
|
356
571
|
name: "op",
|
|
357
|
-
description: "Governance operation when
|
|
572
|
+
description: "Governance operation when action is gov.",
|
|
358
573
|
required: false,
|
|
359
574
|
schema: { type: "string", enum: ["propose", "vote", "queue", "execute"] },
|
|
360
575
|
examples: ["vote"],
|
|
@@ -407,6 +622,20 @@ export const walletRouterAction: Action = {
|
|
|
407
622
|
required: false,
|
|
408
623
|
schema: { type: "string" },
|
|
409
624
|
},
|
|
625
|
+
{
|
|
626
|
+
name: "query",
|
|
627
|
+
description:
|
|
628
|
+
"Search query, coin id, or token symbol for token_info searches.",
|
|
629
|
+
required: false,
|
|
630
|
+
schema: { type: "string" },
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
name: "address",
|
|
634
|
+
description:
|
|
635
|
+
"Wallet address for search_address; token contract address for token_info token lookups.",
|
|
636
|
+
required: false,
|
|
637
|
+
schema: { type: "string" },
|
|
638
|
+
},
|
|
410
639
|
],
|
|
411
640
|
validate: async (_runtime, message, state, options) => {
|
|
412
641
|
if (!serviceFromRuntime(_runtime)) {
|
|
@@ -414,8 +643,8 @@ export const walletRouterAction: Action = {
|
|
|
414
643
|
}
|
|
415
644
|
const raw = extractRawParams(message, state, options);
|
|
416
645
|
if (raw) {
|
|
417
|
-
const
|
|
418
|
-
if (
|
|
646
|
+
const subaction = resolveSubaction(raw);
|
|
647
|
+
if (isWalletSubaction(subaction)) {
|
|
419
648
|
return true;
|
|
420
649
|
}
|
|
421
650
|
}
|
|
@@ -431,70 +660,23 @@ export const walletRouterAction: Action = {
|
|
|
431
660
|
options?: HandlerOptions | Record<string, unknown>,
|
|
432
661
|
callback?: HandlerCallback,
|
|
433
662
|
): Promise<ActionResult> => {
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
params = await parseParams(message, state, options);
|
|
437
|
-
} catch (error) {
|
|
438
|
-
const text = `Invalid wallet parameters: ${
|
|
439
|
-
error instanceof Error ? error.message : String(error)
|
|
440
|
-
}`;
|
|
441
|
-
await callback?.({ text, content: { error: "INVALID_PARAMS" } });
|
|
442
|
-
return {
|
|
443
|
-
success: false,
|
|
444
|
-
text,
|
|
445
|
-
data: { error: "INVALID_PARAMS" },
|
|
446
|
-
};
|
|
447
|
-
}
|
|
663
|
+
const raw = extractRawParams(message, state, options) ?? {};
|
|
664
|
+
const subaction = resolveSubaction(raw);
|
|
448
665
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
return
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
666
|
+
if (subaction === "token_info") {
|
|
667
|
+
return tokenInfoHandler(runtime, message, state, options, callback);
|
|
668
|
+
}
|
|
669
|
+
if (subaction === "search_address") {
|
|
670
|
+
return walletSearchAddressHandler(
|
|
671
|
+
runtime,
|
|
672
|
+
message,
|
|
673
|
+
state,
|
|
674
|
+
options,
|
|
675
|
+
callback,
|
|
676
|
+
);
|
|
458
677
|
}
|
|
459
678
|
|
|
460
|
-
|
|
461
|
-
const text = resultText(routed);
|
|
462
|
-
const data = toProviderRecord(
|
|
463
|
-
routed.ok
|
|
464
|
-
? {
|
|
465
|
-
...routed.result,
|
|
466
|
-
handler: routed.handler,
|
|
467
|
-
}
|
|
468
|
-
: {
|
|
469
|
-
error: routed.error,
|
|
470
|
-
detail: routed.detail,
|
|
471
|
-
candidates: routed.candidates,
|
|
472
|
-
},
|
|
473
|
-
);
|
|
474
|
-
|
|
475
|
-
await callback?.({
|
|
476
|
-
text,
|
|
477
|
-
content: {
|
|
478
|
-
success: routed.ok,
|
|
479
|
-
...data,
|
|
480
|
-
},
|
|
481
|
-
});
|
|
482
|
-
|
|
483
|
-
return {
|
|
484
|
-
success: routed.ok,
|
|
485
|
-
text,
|
|
486
|
-
values: routed.ok
|
|
487
|
-
? {
|
|
488
|
-
walletActionSucceeded: routed.result.status === "submitted",
|
|
489
|
-
walletActionPrepared: routed.result.status === "prepared",
|
|
490
|
-
walletChain: routed.handler.chain,
|
|
491
|
-
walletSubaction: routed.result.subaction,
|
|
492
|
-
}
|
|
493
|
-
: {
|
|
494
|
-
walletActionError: routed.error,
|
|
495
|
-
},
|
|
496
|
-
data,
|
|
497
|
-
};
|
|
679
|
+
return runWalletRouter(runtime, message, state, options, callback);
|
|
498
680
|
},
|
|
499
681
|
examples: [
|
|
500
682
|
[
|
|
@@ -527,6 +709,34 @@ export const walletRouterAction: Action = {
|
|
|
527
709
|
},
|
|
528
710
|
},
|
|
529
711
|
],
|
|
712
|
+
[
|
|
713
|
+
{
|
|
714
|
+
name: "{{user1}}",
|
|
715
|
+
content: { text: "Look up the PEPE token on DexScreener" },
|
|
716
|
+
},
|
|
717
|
+
{
|
|
718
|
+
name: "{{agent}}",
|
|
719
|
+
content: {
|
|
720
|
+
text: "Searching DexScreener.",
|
|
721
|
+
action: "WALLET",
|
|
722
|
+
},
|
|
723
|
+
},
|
|
724
|
+
],
|
|
725
|
+
[
|
|
726
|
+
{
|
|
727
|
+
name: "{{user1}}",
|
|
728
|
+
content: {
|
|
729
|
+
text: "Show the Birdeye portfolio for 9xQeWvG816bUx9EPfWJXn4xHLh1BaK7Z7QXDXuGpS9SW",
|
|
730
|
+
},
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
name: "{{agent}}",
|
|
734
|
+
content: {
|
|
735
|
+
text: "Fetching the Birdeye portfolio.",
|
|
736
|
+
action: "WALLET",
|
|
737
|
+
},
|
|
738
|
+
},
|
|
739
|
+
],
|
|
530
740
|
],
|
|
531
741
|
};
|
|
532
742
|
|
package/src/index.ts
CHANGED
|
@@ -3,7 +3,7 @@ import "./core-augmentation.js";
|
|
|
3
3
|
export * from "./actions/index.js";
|
|
4
4
|
export { BirdeyeService } from "./analytics/birdeye/service.js";
|
|
5
5
|
export { DexScreenerService } from "./analytics/dexscreener/index.js";
|
|
6
|
-
//
|
|
6
|
+
// Analytics surface (formerly @elizaos/plugin-{lpinfo,dexscreener,defi-news,birdeye}).
|
|
7
7
|
export {
|
|
8
8
|
kaminoPlugin,
|
|
9
9
|
lpinfoPlugin,
|
|
@@ -17,8 +17,13 @@ export {
|
|
|
17
17
|
export {
|
|
18
18
|
TOKEN_INFO_SERVICE_TYPE,
|
|
19
19
|
TokenInfoService,
|
|
20
|
-
tokenInfoAction,
|
|
21
20
|
} from "./analytics/token-info/index.js";
|
|
21
|
+
// === Wallet routes extracted from packages/agent ===
|
|
22
|
+
// `handleWalletRoutes` is consumed by the agent HTTP server at
|
|
23
|
+
// `packages/agent/src/api/server.ts`. The file itself is deliberately
|
|
24
|
+
// `@elizaos/agent`-free; the agent injects all required helpers via the
|
|
25
|
+
// `WalletRouteContext.deps` interface.
|
|
26
|
+
export * from "./api/wallet-routes.js";
|
|
22
27
|
export * from "./audit/audit-log.js";
|
|
23
28
|
export { walletRouterAction } from "./chains/wallet-action.js";
|
|
24
29
|
export * from "./contracts.js";
|
|
@@ -31,7 +36,7 @@ export {
|
|
|
31
36
|
_resetForTesting,
|
|
32
37
|
getWalletExportAuditLog,
|
|
33
38
|
} from "./lib/wallet-export-guard.js";
|
|
34
|
-
//
|
|
39
|
+
// LP management surface (formerly @elizaos/plugin-lp-manager).
|
|
35
40
|
// Includes Solana DEX adapters (Raydium / Orca / Meteora) under
|
|
36
41
|
// chains/solana/dex/* and EVM DEX adapters (Uniswap / PancakeSwap / Aerodrome)
|
|
37
42
|
// under chains/evm/dex/*.
|
|
@@ -42,7 +47,6 @@ export {
|
|
|
42
47
|
DexInteractionService,
|
|
43
48
|
default as lpManagerPlugin,
|
|
44
49
|
LP_MANAGER_PLUGIN_NAME,
|
|
45
|
-
LpManagementAgentAction,
|
|
46
50
|
orcaPlugin,
|
|
47
51
|
PancakeSwapV3LpService,
|
|
48
52
|
pancakeswapPlugin,
|
|
@@ -57,7 +61,7 @@ export * from "./lp/types.js";
|
|
|
57
61
|
export { default, walletPlugin } from "./plugin.js";
|
|
58
62
|
export * from "./policy/policy.js";
|
|
59
63
|
export * from "./providers/canonical-provider.js";
|
|
60
|
-
export {
|
|
64
|
+
export { walletProvider } from "./providers/wallet-provider.js";
|
|
61
65
|
export * from "./register-routes.js";
|
|
62
66
|
export * from "./routes/plugin.js";
|
|
63
67
|
/** ERC-6551 / x402 / CCTP / swaps are available from the package barrel. */
|