@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
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { type IAgentRuntime, Service } from "@elizaos/core";
|
|
2
|
+
export interface WalletAsset {
|
|
3
|
+
address: string;
|
|
4
|
+
symbol: string;
|
|
5
|
+
balance: string;
|
|
6
|
+
decimals: number;
|
|
7
|
+
valueUsd: number;
|
|
8
|
+
}
|
|
9
|
+
export interface WalletPortfolioType {
|
|
10
|
+
totalValueUsd: number;
|
|
11
|
+
assets: WalletAsset[];
|
|
12
|
+
}
|
|
13
|
+
import { type AccountInfo, Connection, type Context, Keypair, type ParsedAccountData, PublicKey } from "@solana/web3.js";
|
|
14
|
+
import BigNumber from "bignumber.js";
|
|
15
|
+
import type { WalletChainHandler, WalletRouterExecution, WalletRouterParams } from "../../types/wallet-router.js";
|
|
16
|
+
import type { ExchangeProvider, ExtendedJupiterServiceInterface, JupiterQuote, SwapExecutionResponse, SwapWalletEntry, TokenAccountEntry, TradingSignal, WalletPortfolio } from "./types";
|
|
17
|
+
export declare const SOLANA_WALLET_COMPAT_SERVICE_NAME = "chain_solana_wallet";
|
|
18
|
+
export type MintBalance = {
|
|
19
|
+
amount: string;
|
|
20
|
+
decimals: number;
|
|
21
|
+
uiAmount: number;
|
|
22
|
+
};
|
|
23
|
+
export type SolanaWalletSubaction = "transfer" | "swap";
|
|
24
|
+
export type SolanaWalletActionMode = "prepare" | "execute";
|
|
25
|
+
export type SolanaTransferParams = {
|
|
26
|
+
tokenAddress?: string | null;
|
|
27
|
+
fromToken?: string | null;
|
|
28
|
+
recipient: string;
|
|
29
|
+
amount: string | number;
|
|
30
|
+
dryRun?: boolean;
|
|
31
|
+
mode?: SolanaWalletActionMode;
|
|
32
|
+
};
|
|
33
|
+
export type SolanaSwapParams = {
|
|
34
|
+
inputTokenCA?: string | null;
|
|
35
|
+
outputTokenCA?: string | null;
|
|
36
|
+
fromToken?: string | null;
|
|
37
|
+
toToken?: string | null;
|
|
38
|
+
inputTokenSymbol?: string | null;
|
|
39
|
+
outputTokenSymbol?: string | null;
|
|
40
|
+
amount: string | number;
|
|
41
|
+
slippageBps?: number;
|
|
42
|
+
dryRun?: boolean;
|
|
43
|
+
mode?: SolanaWalletActionMode;
|
|
44
|
+
};
|
|
45
|
+
export type SolanaWalletActionParams = ({
|
|
46
|
+
subaction: "transfer";
|
|
47
|
+
chain?: string;
|
|
48
|
+
} & SolanaTransferParams) | ({
|
|
49
|
+
subaction: "swap";
|
|
50
|
+
chain?: string;
|
|
51
|
+
} & SolanaSwapParams);
|
|
52
|
+
export type SolanaTransferResult = {
|
|
53
|
+
success: true;
|
|
54
|
+
signature: string | null;
|
|
55
|
+
dryRun: boolean;
|
|
56
|
+
kind: "sol" | "spl";
|
|
57
|
+
amount: string;
|
|
58
|
+
recipient: string;
|
|
59
|
+
tokenAddress: string | null;
|
|
60
|
+
};
|
|
61
|
+
export type SolanaSwapResult = {
|
|
62
|
+
success: true;
|
|
63
|
+
txid: string | null;
|
|
64
|
+
dryRun: boolean;
|
|
65
|
+
inputTokenCA: string;
|
|
66
|
+
outputTokenCA: string;
|
|
67
|
+
amount: string;
|
|
68
|
+
};
|
|
69
|
+
export type SolanaWalletActionResult = SolanaTransferResult | SolanaSwapResult;
|
|
70
|
+
type KeyedParsedTokenAccount = {
|
|
71
|
+
pubkey: PublicKey;
|
|
72
|
+
account: AccountInfo<ParsedAccountData>;
|
|
73
|
+
};
|
|
74
|
+
export interface ISolanaPluginServiceAPI extends Service {
|
|
75
|
+
executeSwap: (wallets: Array<{
|
|
76
|
+
keypair: Keypair;
|
|
77
|
+
amount: number;
|
|
78
|
+
}>, signal: TradingSignal) => Promise<Record<string, SwapExecutionResponse>>;
|
|
79
|
+
getPublicKey: () => Promise<PublicKey | null>;
|
|
80
|
+
}
|
|
81
|
+
export declare class SolanaWalletService extends Service {
|
|
82
|
+
static readonly serviceType: string;
|
|
83
|
+
readonly capabilityDescription = "Deprecated Solana wallet compatibility adapter. Use chain_solana.";
|
|
84
|
+
private _solanaService;
|
|
85
|
+
constructor(runtime?: IAgentRuntime);
|
|
86
|
+
private get solanaService();
|
|
87
|
+
getPortfolio(owner?: string): Promise<WalletPortfolioType>;
|
|
88
|
+
getBalance(assetAddress: string, owner?: string): Promise<number>;
|
|
89
|
+
transferSol(from: Keypair, to: PublicKey, lamports: number | bigint): Promise<string>;
|
|
90
|
+
static start(runtime: IAgentRuntime): Promise<Service>;
|
|
91
|
+
static stop(runtime: IAgentRuntime): Promise<void>;
|
|
92
|
+
stop(): Promise<void>;
|
|
93
|
+
}
|
|
94
|
+
export declare class SolanaService extends Service {
|
|
95
|
+
static readonly serviceType: string;
|
|
96
|
+
readonly capabilityDescription = "The agent is able to interact with the Solana blockchain, and has access to the wallet data";
|
|
97
|
+
private lastUpdate;
|
|
98
|
+
private readonly UPDATE_INTERVAL;
|
|
99
|
+
private connection;
|
|
100
|
+
private _publicKey;
|
|
101
|
+
private _keypair;
|
|
102
|
+
private _publicKeyPromise;
|
|
103
|
+
private _keypairPromise;
|
|
104
|
+
private exchangeRegistry;
|
|
105
|
+
private subscriptions;
|
|
106
|
+
jupiterService: ExtendedJupiterServiceInterface | null;
|
|
107
|
+
static readonly LAMPORTS2SOL: number;
|
|
108
|
+
static readonly SOL2LAMPORTS = 1000000000;
|
|
109
|
+
private decimalsCache;
|
|
110
|
+
constructor(runtime?: IAgentRuntime);
|
|
111
|
+
private isJupiterService;
|
|
112
|
+
private ensurePublicKey;
|
|
113
|
+
private ensureKeypair;
|
|
114
|
+
/**
|
|
115
|
+
* Force reload wallet keys from settings (e.g., after wallet creation)
|
|
116
|
+
* Clears cached values and reloads on next access
|
|
117
|
+
*/
|
|
118
|
+
reloadKeys(): Promise<void>;
|
|
119
|
+
getConnection(): Connection;
|
|
120
|
+
getWalletChainHandler(): WalletChainHandler;
|
|
121
|
+
handleWalletAction(params: SolanaWalletActionParams): Promise<SolanaWalletActionResult>;
|
|
122
|
+
executeWalletRouterAction(params: WalletRouterParams): Promise<WalletRouterExecution>;
|
|
123
|
+
getPortfolio(owner?: string): Promise<WalletPortfolioType>;
|
|
124
|
+
getBalance(assetAddress: string, owner?: string): Promise<number>;
|
|
125
|
+
transferSol(from: Keypair, to: PublicKey, lamports: number | bigint): Promise<string>;
|
|
126
|
+
transfer(params: SolanaTransferParams): Promise<SolanaTransferResult>;
|
|
127
|
+
swap(params: SolanaSwapParams): Promise<SolanaSwapResult>;
|
|
128
|
+
private isNativeSol;
|
|
129
|
+
private normalizeSolanaTokenAddress;
|
|
130
|
+
private normalizeRequiredTokenAddress;
|
|
131
|
+
private normalizePositiveAmount;
|
|
132
|
+
private toAtomicAmount;
|
|
133
|
+
private getTokenDecimalsForTransfer;
|
|
134
|
+
private buildJupiterSwapTransaction;
|
|
135
|
+
registerExchange(provider: ExchangeProvider): Promise<number>;
|
|
136
|
+
/**
|
|
137
|
+
* Determine the Birdeye API configuration.
|
|
138
|
+
*
|
|
139
|
+
* Priority:
|
|
140
|
+
* 1. Direct BIRDEYE_API_KEY — user's own key, calls birdeye.so directly
|
|
141
|
+
* 2. Eliza Cloud proxy — routes through cloud, cloud injects its own key
|
|
142
|
+
* 3. Error — no Birdeye data source available
|
|
143
|
+
*/
|
|
144
|
+
private getBirdeyeConfig;
|
|
145
|
+
/**
|
|
146
|
+
* Determine the Solana RPC connection URL.
|
|
147
|
+
*
|
|
148
|
+
* Priority:
|
|
149
|
+
* 1. Direct SOLANA_RPC_URL — user's own RPC endpoint
|
|
150
|
+
* 2. HELIUS_API_KEY — builds Helius RPC URL
|
|
151
|
+
* 3. Eliza Cloud proxy — routes through cloud RPC proxy
|
|
152
|
+
* 4. Default public RPC (rate-limited)
|
|
153
|
+
*/
|
|
154
|
+
private static resolveRpcUrl;
|
|
155
|
+
private birdeyeFetchWithRetry;
|
|
156
|
+
batchGetMultipleAccountsInfo(pubkeys: PublicKey[], _label: string): Promise<(AccountInfo<Buffer> | null)[]>;
|
|
157
|
+
verifySignature({ publicKeyBase58, message, signatureBase64, }: {
|
|
158
|
+
message: string;
|
|
159
|
+
signatureBase64: string;
|
|
160
|
+
publicKeyBase58: string;
|
|
161
|
+
}): boolean;
|
|
162
|
+
isValidAddress(address: string, onCurveOnly?: boolean): boolean;
|
|
163
|
+
validateAddress(address: string | undefined): boolean;
|
|
164
|
+
private static readonly TOKEN_ACCOUNT_DATA_LENGTH;
|
|
165
|
+
private static readonly TOKEN_MINT_DATA_LENGTH;
|
|
166
|
+
getAddressType(address: string): Promise<string>;
|
|
167
|
+
getAddressesTypes(addresses: string[]): Promise<Record<string, string>>;
|
|
168
|
+
detectPubkeysFromString(input: string, checkCurve?: boolean): Array<string>;
|
|
169
|
+
detectPrivateKeysFromString(input: string): Array<{
|
|
170
|
+
format: "base58" | "hex";
|
|
171
|
+
match: string;
|
|
172
|
+
bytes: Uint8Array;
|
|
173
|
+
}>;
|
|
174
|
+
getCirculatingSupply(mint: string): Promise<number>;
|
|
175
|
+
getCirculatingSupplies(mints: string[]): Promise<number[]>;
|
|
176
|
+
private fetchPrices;
|
|
177
|
+
getDecimal(mintPublicKey: PublicKey): Promise<number>;
|
|
178
|
+
getDecimals(mints: string[]): Promise<number[]>;
|
|
179
|
+
getMetadataAddress(mint: PublicKey): Promise<PublicKey>;
|
|
180
|
+
getTokenSymbol(mint: PublicKey): Promise<string | null>;
|
|
181
|
+
private parseToken2022SymbolFromMintOrPtr;
|
|
182
|
+
getTokensSymbols(mints: string[]): Promise<Record<string, string | null>>;
|
|
183
|
+
getSupply(CAs: string[]): Promise<{
|
|
184
|
+
[k: string]: {
|
|
185
|
+
supply: bigint | undefined;
|
|
186
|
+
decimals: number | undefined;
|
|
187
|
+
human: BigNumber | undefined;
|
|
188
|
+
};
|
|
189
|
+
}>;
|
|
190
|
+
parseTokenAccounts(heldTokens: TokenAccountEntry[], options?: {
|
|
191
|
+
notOlderThan?: number;
|
|
192
|
+
}): Promise<{
|
|
193
|
+
[k: string]: {
|
|
194
|
+
symbol: string | null;
|
|
195
|
+
supply: string | number | null;
|
|
196
|
+
tokenProgram: string;
|
|
197
|
+
decimals: number;
|
|
198
|
+
balanceUi: number;
|
|
199
|
+
isMutable: boolean | null;
|
|
200
|
+
};
|
|
201
|
+
}>;
|
|
202
|
+
private getTokenAccounts;
|
|
203
|
+
getWalletKeypair(): Promise<Keypair>;
|
|
204
|
+
getPublicKey(): Promise<PublicKey | null>;
|
|
205
|
+
updateWalletData(force?: boolean): Promise<WalletPortfolio>;
|
|
206
|
+
getCachedData(): Promise<WalletPortfolio | null>;
|
|
207
|
+
forceUpdate(): Promise<WalletPortfolio>;
|
|
208
|
+
createWallet(): Promise<{
|
|
209
|
+
publicKey: string;
|
|
210
|
+
privateKey: string;
|
|
211
|
+
}>;
|
|
212
|
+
getTokenAccountsByKeypair(walletAddress: PublicKey, options?: {
|
|
213
|
+
notOlderThan?: number;
|
|
214
|
+
includeZeroBalances?: boolean;
|
|
215
|
+
}): Promise<KeyedParsedTokenAccount[]>;
|
|
216
|
+
getTokenAccountsByKeypairs(walletAddresses: string[], options?: {}): Promise<Record<string, KeyedParsedTokenAccount[]>>;
|
|
217
|
+
getBalancesByAddrs(walletAddressArr: string[]): Promise<Record<string, number>>;
|
|
218
|
+
walletAddressToHumanString(pubKey: string): Promise<string>;
|
|
219
|
+
walletAddressToLLMString(pubKey: string): Promise<string>;
|
|
220
|
+
getWalletBalances(publicKeyStr: string, mintAddresses: string[]): Promise<Record<string, MintBalance | null>>;
|
|
221
|
+
getTokenBalanceForWallets(mint: PublicKey, walletAddresses: string[]): Promise<Record<string, number>>;
|
|
222
|
+
subscribeToAccount(accountAddress: string, handler: (address: string, accountInfo: AccountInfo<Buffer>, context: Context) => void): Promise<number>;
|
|
223
|
+
unsubscribeFromAccount(accountAddress: string): Promise<boolean>;
|
|
224
|
+
calculateOptimalBuyAmount(inputMint: string, outputMint: string, availableAmount: number): Promise<{
|
|
225
|
+
amount: number;
|
|
226
|
+
slippage: number;
|
|
227
|
+
}>;
|
|
228
|
+
calculateOptimalBuyAmount2(quote: JupiterQuote, availableAmount: number): Promise<{
|
|
229
|
+
amount: number;
|
|
230
|
+
slippage: number;
|
|
231
|
+
}>;
|
|
232
|
+
executeSwap(wallets: SwapWalletEntry[], signal: TradingSignal): Promise<Record<string, SwapExecutionResponse>>;
|
|
233
|
+
static start(runtime: IAgentRuntime): Promise<Service>;
|
|
234
|
+
static stop(runtime: IAgentRuntime): Promise<void>;
|
|
235
|
+
stop(): Promise<void>;
|
|
236
|
+
}
|
|
237
|
+
export {};
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
import type { Keypair, PublicKey } from "@solana/web3.js";
|
|
2
|
+
export interface Item {
|
|
3
|
+
name: string;
|
|
4
|
+
address: string;
|
|
5
|
+
symbol: string;
|
|
6
|
+
decimals: number;
|
|
7
|
+
balance: string;
|
|
8
|
+
uiAmount: string;
|
|
9
|
+
priceUsd: string;
|
|
10
|
+
valueUsd: string;
|
|
11
|
+
valueSol?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface Prices {
|
|
14
|
+
solana: {
|
|
15
|
+
usd: string;
|
|
16
|
+
};
|
|
17
|
+
bitcoin: {
|
|
18
|
+
usd: string;
|
|
19
|
+
};
|
|
20
|
+
ethereum: {
|
|
21
|
+
usd: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface WalletPortfolio {
|
|
25
|
+
totalUsd: string;
|
|
26
|
+
totalSol?: string;
|
|
27
|
+
items: Array<Item>;
|
|
28
|
+
prices?: Prices;
|
|
29
|
+
lastUpdated?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface TokenAccountInfo {
|
|
32
|
+
pubkey: PublicKey;
|
|
33
|
+
account: {
|
|
34
|
+
lamports: number;
|
|
35
|
+
data: {
|
|
36
|
+
parsed: {
|
|
37
|
+
info: {
|
|
38
|
+
mint: string;
|
|
39
|
+
owner: string;
|
|
40
|
+
tokenAmount: {
|
|
41
|
+
amount: string;
|
|
42
|
+
decimals: number;
|
|
43
|
+
uiAmount: number;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
type: string;
|
|
47
|
+
};
|
|
48
|
+
program: string;
|
|
49
|
+
space: number;
|
|
50
|
+
};
|
|
51
|
+
owner: string;
|
|
52
|
+
executable: boolean;
|
|
53
|
+
rentEpoch: number;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export interface ApiResponse<T> {
|
|
57
|
+
success: boolean;
|
|
58
|
+
data?: T;
|
|
59
|
+
error?: ApiError;
|
|
60
|
+
}
|
|
61
|
+
export interface ApiError {
|
|
62
|
+
code: string;
|
|
63
|
+
message: string;
|
|
64
|
+
details?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface WalletAddressResponse {
|
|
67
|
+
publicKey: string;
|
|
68
|
+
}
|
|
69
|
+
export interface WalletBalanceResponse {
|
|
70
|
+
publicKey: string;
|
|
71
|
+
balance: number;
|
|
72
|
+
symbol: string;
|
|
73
|
+
}
|
|
74
|
+
export interface TokenBalanceResponse {
|
|
75
|
+
publicKey: string;
|
|
76
|
+
token: string;
|
|
77
|
+
balance: number;
|
|
78
|
+
decimals: number;
|
|
79
|
+
}
|
|
80
|
+
export interface WalletPortfolioResponse {
|
|
81
|
+
publicKey: string;
|
|
82
|
+
totalUsd: string;
|
|
83
|
+
totalSol: string;
|
|
84
|
+
tokens: PortfolioTokenResponse[];
|
|
85
|
+
prices?: {
|
|
86
|
+
solana: number;
|
|
87
|
+
bitcoin: number;
|
|
88
|
+
ethereum: number;
|
|
89
|
+
};
|
|
90
|
+
lastUpdated?: string;
|
|
91
|
+
hasBirdeyeData: boolean;
|
|
92
|
+
}
|
|
93
|
+
export interface PortfolioTokenResponse {
|
|
94
|
+
name: string;
|
|
95
|
+
symbol: string;
|
|
96
|
+
address: string;
|
|
97
|
+
balance: string;
|
|
98
|
+
decimals: number;
|
|
99
|
+
priceUsd: string;
|
|
100
|
+
valueUsd: string;
|
|
101
|
+
valueSol: string;
|
|
102
|
+
}
|
|
103
|
+
export interface WalletTokensResponse {
|
|
104
|
+
publicKey: string;
|
|
105
|
+
tokens: TokenAccountResponse[];
|
|
106
|
+
count: number;
|
|
107
|
+
}
|
|
108
|
+
export interface TokenAccountResponse {
|
|
109
|
+
mint: string;
|
|
110
|
+
balance: number;
|
|
111
|
+
decimals: number;
|
|
112
|
+
amount: string;
|
|
113
|
+
}
|
|
114
|
+
export interface MintBalance {
|
|
115
|
+
amount: string;
|
|
116
|
+
decimals: number;
|
|
117
|
+
uiAmount: number;
|
|
118
|
+
}
|
|
119
|
+
export interface ParsedTokenAccount {
|
|
120
|
+
pubkey: PublicKey;
|
|
121
|
+
account: {
|
|
122
|
+
lamports: number;
|
|
123
|
+
data: {
|
|
124
|
+
parsed: {
|
|
125
|
+
info: {
|
|
126
|
+
mint: string;
|
|
127
|
+
owner: string;
|
|
128
|
+
tokenAmount: {
|
|
129
|
+
amount: string;
|
|
130
|
+
decimals: number;
|
|
131
|
+
uiAmount: number;
|
|
132
|
+
uiAmountString?: string;
|
|
133
|
+
};
|
|
134
|
+
isNative?: boolean;
|
|
135
|
+
state?: string;
|
|
136
|
+
extensions?: Array<Record<string, string | number | boolean>>;
|
|
137
|
+
};
|
|
138
|
+
type: string;
|
|
139
|
+
};
|
|
140
|
+
program: string;
|
|
141
|
+
space: number;
|
|
142
|
+
};
|
|
143
|
+
owner: PublicKey | string;
|
|
144
|
+
executable: boolean;
|
|
145
|
+
rentEpoch: number;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export interface JupiterQuote {
|
|
149
|
+
inputMint: string;
|
|
150
|
+
inAmount: string;
|
|
151
|
+
outputMint: string;
|
|
152
|
+
outAmount: string;
|
|
153
|
+
otherAmountThreshold: string;
|
|
154
|
+
swapMode: string;
|
|
155
|
+
slippageBps: number;
|
|
156
|
+
platformFee: null | {
|
|
157
|
+
amount: string;
|
|
158
|
+
feeBps: number;
|
|
159
|
+
};
|
|
160
|
+
priceImpactPct: string;
|
|
161
|
+
routePlan: Array<{
|
|
162
|
+
swapInfo: {
|
|
163
|
+
ammKey: string;
|
|
164
|
+
label: string;
|
|
165
|
+
inputMint: string;
|
|
166
|
+
outputMint: string;
|
|
167
|
+
inAmount: string;
|
|
168
|
+
outAmount: string;
|
|
169
|
+
feeAmount: string;
|
|
170
|
+
feeMint: string;
|
|
171
|
+
};
|
|
172
|
+
percent: number;
|
|
173
|
+
}>;
|
|
174
|
+
contextSlot: number;
|
|
175
|
+
timeTaken: number;
|
|
176
|
+
}
|
|
177
|
+
export interface JupiterSwapResult {
|
|
178
|
+
swapTransaction: string;
|
|
179
|
+
lastValidBlockHeight: number;
|
|
180
|
+
prioritizationFeeLamports: number;
|
|
181
|
+
computeUnitLimit: number;
|
|
182
|
+
error?: string;
|
|
183
|
+
}
|
|
184
|
+
export interface SwapResult {
|
|
185
|
+
success: boolean;
|
|
186
|
+
signature?: string;
|
|
187
|
+
outAmount?: number;
|
|
188
|
+
fees?: SwapFees;
|
|
189
|
+
error?: string;
|
|
190
|
+
}
|
|
191
|
+
export interface SwapFees {
|
|
192
|
+
totalFee: number;
|
|
193
|
+
platformFee: number;
|
|
194
|
+
networkFee: number;
|
|
195
|
+
}
|
|
196
|
+
export interface ExchangeProvider {
|
|
197
|
+
name: string;
|
|
198
|
+
getQuote(params: SwapQuoteParams): Promise<JupiterQuote>;
|
|
199
|
+
executeSwap(params: SwapExecuteParams): Promise<SwapResult>;
|
|
200
|
+
}
|
|
201
|
+
export interface SwapQuoteParams {
|
|
202
|
+
inputMint: string;
|
|
203
|
+
outputMint: string;
|
|
204
|
+
amount: string;
|
|
205
|
+
slippageBps?: number;
|
|
206
|
+
}
|
|
207
|
+
export interface SwapExecuteParams {
|
|
208
|
+
quote: JupiterQuote;
|
|
209
|
+
userPublicKey: string;
|
|
210
|
+
wrapAndUnwrapSol?: boolean;
|
|
211
|
+
}
|
|
212
|
+
export interface JupiterServiceInterface {
|
|
213
|
+
getQuote(params: SwapQuoteParams): Promise<JupiterQuote>;
|
|
214
|
+
swap(params: SwapExecuteParams): Promise<SwapResult>;
|
|
215
|
+
}
|
|
216
|
+
export interface ExtendedJupiterServiceInterface extends JupiterServiceInterface {
|
|
217
|
+
getPriceImpact?(params: {
|
|
218
|
+
inputMint: string;
|
|
219
|
+
outputMint: string;
|
|
220
|
+
amount: number;
|
|
221
|
+
}): Promise<number>;
|
|
222
|
+
findBestSlippage?(params: {
|
|
223
|
+
inputMint: string;
|
|
224
|
+
outputMint: string;
|
|
225
|
+
amount: number;
|
|
226
|
+
}): Promise<number>;
|
|
227
|
+
estimateLamportsNeeded?(params: {
|
|
228
|
+
inputMint: string;
|
|
229
|
+
inAmount: number;
|
|
230
|
+
}): number;
|
|
231
|
+
executeSwap?(params: {
|
|
232
|
+
quoteResponse: JupiterQuote;
|
|
233
|
+
userPublicKey: string;
|
|
234
|
+
slippageBps: number;
|
|
235
|
+
}): Promise<JupiterSwapResult>;
|
|
236
|
+
estimateGasFees?(params: {
|
|
237
|
+
inputMint: string;
|
|
238
|
+
outputMint: string;
|
|
239
|
+
amount: number;
|
|
240
|
+
}): Promise<SwapFees>;
|
|
241
|
+
}
|
|
242
|
+
export interface TradingSignal {
|
|
243
|
+
sourceTokenCA: string;
|
|
244
|
+
targetTokenCA: string;
|
|
245
|
+
}
|
|
246
|
+
export interface SwapExecutionResponse {
|
|
247
|
+
success: boolean;
|
|
248
|
+
outAmount?: string;
|
|
249
|
+
outDecimal?: number;
|
|
250
|
+
signature?: string;
|
|
251
|
+
fees?: {
|
|
252
|
+
lamports: number;
|
|
253
|
+
sol: number;
|
|
254
|
+
};
|
|
255
|
+
swapResponse?: JupiterSwapResult;
|
|
256
|
+
error?: string;
|
|
257
|
+
}
|
|
258
|
+
export interface AccountNotification {
|
|
259
|
+
context: {
|
|
260
|
+
slot: number;
|
|
261
|
+
};
|
|
262
|
+
value: {
|
|
263
|
+
lamports: number;
|
|
264
|
+
data: string | Buffer | {
|
|
265
|
+
parsed: Record<string, string | number | boolean | null>;
|
|
266
|
+
program: string;
|
|
267
|
+
space: number;
|
|
268
|
+
};
|
|
269
|
+
owner: string;
|
|
270
|
+
executable: boolean;
|
|
271
|
+
rentEpoch: number;
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* WebSocket subscription handler.
|
|
276
|
+
*/
|
|
277
|
+
export type SubscriptionHandler = (notification: AccountNotification) => void | Promise<void>;
|
|
278
|
+
export interface CacheWrapper<T> {
|
|
279
|
+
exp: number;
|
|
280
|
+
data: T;
|
|
281
|
+
}
|
|
282
|
+
export interface Token2022Metadata {
|
|
283
|
+
isMutable: boolean;
|
|
284
|
+
updateAuthority?: string;
|
|
285
|
+
mint: string;
|
|
286
|
+
name: string;
|
|
287
|
+
symbol: string;
|
|
288
|
+
uri: string;
|
|
289
|
+
additional?: Array<[string, string]>;
|
|
290
|
+
}
|
|
291
|
+
export interface TokenSupplyInfo {
|
|
292
|
+
supply: bigint;
|
|
293
|
+
decimals: number;
|
|
294
|
+
human: string;
|
|
295
|
+
}
|
|
296
|
+
export interface BirdeyePriceResponse {
|
|
297
|
+
success: boolean;
|
|
298
|
+
data: {
|
|
299
|
+
value: number;
|
|
300
|
+
updateUnixTime: number;
|
|
301
|
+
updateHumanTime: string;
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
export interface BirdeyeWalletTokenItem {
|
|
305
|
+
address: string;
|
|
306
|
+
symbol?: string;
|
|
307
|
+
name?: string;
|
|
308
|
+
decimals?: number;
|
|
309
|
+
balance?: string;
|
|
310
|
+
balanceUsd?: number;
|
|
311
|
+
priceUsd?: string;
|
|
312
|
+
valueUsd?: string;
|
|
313
|
+
uiAmount?: string;
|
|
314
|
+
}
|
|
315
|
+
export interface BirdeyeWalletTokenListResponse {
|
|
316
|
+
success: boolean;
|
|
317
|
+
data?: {
|
|
318
|
+
totalUsd: number | string;
|
|
319
|
+
items: BirdeyeWalletTokenItem[];
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
export interface SwapWalletEntry {
|
|
323
|
+
keypair: Keypair;
|
|
324
|
+
amount: number;
|
|
325
|
+
}
|
|
326
|
+
export interface BatchSwapResult {
|
|
327
|
+
success: boolean;
|
|
328
|
+
outAmount?: number;
|
|
329
|
+
fees?: SwapFees;
|
|
330
|
+
swapResponse?: JupiterSwapResult;
|
|
331
|
+
error?: string;
|
|
332
|
+
}
|
|
333
|
+
export interface TokenAccountEntry {
|
|
334
|
+
pubkey: PublicKey;
|
|
335
|
+
account: {
|
|
336
|
+
data: {
|
|
337
|
+
program: string;
|
|
338
|
+
parsed: {
|
|
339
|
+
type: string;
|
|
340
|
+
info: {
|
|
341
|
+
mint: string;
|
|
342
|
+
owner: string;
|
|
343
|
+
state: string;
|
|
344
|
+
tokenAmount: {
|
|
345
|
+
amount: string;
|
|
346
|
+
decimals: number;
|
|
347
|
+
uiAmount: number;
|
|
348
|
+
uiAmountString: string;
|
|
349
|
+
};
|
|
350
|
+
isNative?: boolean;
|
|
351
|
+
extensions?: Array<Record<string, string | number | boolean>>;
|
|
352
|
+
};
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
owner: PublicKey;
|
|
356
|
+
lamports: number;
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
export interface TokenMetaCacheEntry {
|
|
360
|
+
setAt: number;
|
|
361
|
+
data: {
|
|
362
|
+
symbol: string | null;
|
|
363
|
+
supply: string | number | null;
|
|
364
|
+
tokenProgram: string;
|
|
365
|
+
decimals: number;
|
|
366
|
+
isMutable: boolean | null;
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
export interface ParsedTokenResult {
|
|
370
|
+
mint: string;
|
|
371
|
+
symbol: string | null;
|
|
372
|
+
supply: string | number | null;
|
|
373
|
+
tokenProgram: "Token-2022" | "Token";
|
|
374
|
+
decimals: number;
|
|
375
|
+
balanceUi: number;
|
|
376
|
+
isMutable: boolean | null;
|
|
377
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export interface WalletExportRequestBody {
|
|
2
|
+
confirm?: boolean;
|
|
3
|
+
exportToken?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface WalletExportRejection {
|
|
6
|
+
status: 400 | 401 | 402 | 403 | 429;
|
|
7
|
+
reason: string;
|
|
8
|
+
}
|
|
9
|
+
export interface WalletMarketPriceSnapshot {
|
|
10
|
+
id: string;
|
|
11
|
+
symbol: string;
|
|
12
|
+
name: string;
|
|
13
|
+
priceUsd: number;
|
|
14
|
+
change24hPct: number;
|
|
15
|
+
imageUrl: string | null;
|
|
16
|
+
}
|
|
17
|
+
export interface WalletMarketMover {
|
|
18
|
+
id: string;
|
|
19
|
+
symbol: string;
|
|
20
|
+
name: string;
|
|
21
|
+
priceUsd: number;
|
|
22
|
+
change24hPct: number;
|
|
23
|
+
marketCapRank: number | null;
|
|
24
|
+
imageUrl: string | null;
|
|
25
|
+
}
|
|
26
|
+
export interface WalletMarketPrediction {
|
|
27
|
+
id: string;
|
|
28
|
+
slug: string | null;
|
|
29
|
+
question: string;
|
|
30
|
+
highlightedOutcomeLabel: string;
|
|
31
|
+
highlightedOutcomeProbability: number | null;
|
|
32
|
+
volume24hUsd: number;
|
|
33
|
+
totalVolumeUsd: number | null;
|
|
34
|
+
endsAt: string | null;
|
|
35
|
+
imageUrl: string | null;
|
|
36
|
+
}
|
|
37
|
+
export type WalletMarketOverviewProviderId = "coingecko" | "polymarket";
|
|
38
|
+
export interface WalletMarketOverviewSource {
|
|
39
|
+
providerId: WalletMarketOverviewProviderId;
|
|
40
|
+
providerName: string;
|
|
41
|
+
providerUrl: string;
|
|
42
|
+
available: boolean;
|
|
43
|
+
stale: boolean;
|
|
44
|
+
error: string | null;
|
|
45
|
+
}
|
|
46
|
+
export interface WalletMarketOverviewResponse {
|
|
47
|
+
generatedAt: string;
|
|
48
|
+
cacheTtlSeconds: number;
|
|
49
|
+
stale: boolean;
|
|
50
|
+
sources: {
|
|
51
|
+
prices: WalletMarketOverviewSource;
|
|
52
|
+
movers: WalletMarketOverviewSource;
|
|
53
|
+
predictions: WalletMarketOverviewSource;
|
|
54
|
+
};
|
|
55
|
+
prices: WalletMarketPriceSnapshot[];
|
|
56
|
+
movers: WalletMarketMover[];
|
|
57
|
+
predictions: WalletMarketPrediction[];
|
|
58
|
+
}
|