@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
package/dist/chunk-hT5z_Zn9.mjs
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
//#region \0rolldown/runtime.js
|
|
3
|
-
var __create = Object.create;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
10
|
-
var __exportAll = (all, no_symbols) => {
|
|
11
|
-
let target = {};
|
|
12
|
-
for (var name in all) __defProp(target, name, {
|
|
13
|
-
get: all[name],
|
|
14
|
-
enumerable: true
|
|
15
|
-
});
|
|
16
|
-
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
17
|
-
return target;
|
|
18
|
-
};
|
|
19
|
-
var __copyProps = (to, from, except, desc) => {
|
|
20
|
-
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
21
|
-
key = keys[i];
|
|
22
|
-
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
23
|
-
get: ((k) => from[k]).bind(null, key),
|
|
24
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
return to;
|
|
28
|
-
};
|
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
-
value: mod,
|
|
31
|
-
enumerable: true
|
|
32
|
-
}) : target, mod));
|
|
33
|
-
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
34
|
-
//#endregion
|
|
35
|
-
export { __toESM as i, __exportAll as n, __require as r, __commonJSMin as t };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import http from "node:http";
|
|
2
|
-
|
|
3
|
-
//#region src/contracts.d.ts
|
|
4
|
-
interface WalletExportRequestBody {
|
|
5
|
-
confirm?: boolean;
|
|
6
|
-
exportToken?: string;
|
|
7
|
-
}
|
|
8
|
-
interface WalletExportRejection {
|
|
9
|
-
status: 400 | 401 | 402 | 403 | 429;
|
|
10
|
-
reason: string;
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
//#region src/lib/server-wallet-trade.d.ts
|
|
14
|
-
declare function normalizeCompatRejection<T extends {
|
|
15
|
-
status: number;
|
|
16
|
-
reason: string;
|
|
17
|
-
} | null>(rejection: T): T;
|
|
18
|
-
declare function runWithCompatAuthContext<T>(req: Pick<http.IncomingMessage, "headers">, operation: () => T): T;
|
|
19
|
-
type TradePermissionMode = "user-sign-only" | "manual-local-key" | "agent-auto";
|
|
20
|
-
declare function resolveTradePermissionMode(config: {
|
|
21
|
-
features?: {
|
|
22
|
-
tradePermissionMode?: unknown;
|
|
23
|
-
} | null;
|
|
24
|
-
}): TradePermissionMode;
|
|
25
|
-
declare function canUseLocalTradeExecution(mode: TradePermissionMode, isAgent: boolean): boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Hardened wallet export rejection function.
|
|
28
|
-
*
|
|
29
|
-
* Wraps the upstream token validation with per-IP rate limiting (1 per 10 min),
|
|
30
|
-
* audit logging (IP + UA), and a 10s confirmation delay via single-use nonces.
|
|
31
|
-
*/
|
|
32
|
-
declare function resolveWalletExportRejection(req: http.IncomingMessage, body: WalletExportRequestBody): WalletExportRejection | null;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { TradePermissionMode, canUseLocalTradeExecution, normalizeCompatRejection, resolveTradePermissionMode, resolveWalletExportRejection, runWithCompatAuthContext };
|
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
import crypto from "node:crypto";
|
|
2
|
-
import { syncAppEnvToEliza, syncElizaEnvAliases } from "@elizaos/core";
|
|
3
|
-
//#region src/lib/wallet-export-guard.ts
|
|
4
|
-
/**
|
|
5
|
-
* Hardened wallet private key export guard.
|
|
6
|
-
*
|
|
7
|
-
* Wraps the upstream resolveWalletExportRejection with:
|
|
8
|
-
* 1. Per-IP rate limiting (1 successful export per 10 minutes)
|
|
9
|
-
* 2. Audit logging with IP, User-Agent, and timestamp
|
|
10
|
-
* 3. Forced confirmation delay (10s countdown)
|
|
11
|
-
*
|
|
12
|
-
* The upstream function validates the export token. This module adds
|
|
13
|
-
* defence-in-depth so a compromised session cannot instantly extract
|
|
14
|
-
* keys without leaving an audit trail and hitting rate limits.
|
|
15
|
-
*
|
|
16
|
-
* Exported from the `@elizaos/plugin-wallet` barrel for package consumers.
|
|
17
|
-
*/
|
|
18
|
-
const RATE_LIMIT_WINDOW_MS = 600 * 1e3;
|
|
19
|
-
const RATE_LIMIT_SWEEP_INTERVAL_MS = 900 * 1e3;
|
|
20
|
-
const rateLimitMap = /* @__PURE__ */ new Map();
|
|
21
|
-
const sweepTimer = setInterval(() => {
|
|
22
|
-
const now = Date.now();
|
|
23
|
-
for (const [key, entry] of rateLimitMap) if (now - entry.lastExportAt > RATE_LIMIT_WINDOW_MS * 2) rateLimitMap.delete(key);
|
|
24
|
-
}, RATE_LIMIT_SWEEP_INTERVAL_MS);
|
|
25
|
-
if (typeof sweepTimer === "object" && "unref" in sweepTimer) sweepTimer.unref();
|
|
26
|
-
/**
|
|
27
|
-
* Get client IP from the socket directly. X-Forwarded-For is not trusted
|
|
28
|
-
* because this is a local server — trusting XFF would let attackers spoof
|
|
29
|
-
* IPs to bypass rate limits and nonce IP binding.
|
|
30
|
-
*/
|
|
31
|
-
function getClientIp(req) {
|
|
32
|
-
return req.socket?.remoteAddress ?? null;
|
|
33
|
-
}
|
|
34
|
-
function getUserAgent(req) {
|
|
35
|
-
return req.headers["user-agent"] ?? "unknown";
|
|
36
|
-
}
|
|
37
|
-
const auditLog = [];
|
|
38
|
-
const MAX_AUDIT_ENTRIES = 100;
|
|
39
|
-
function recordAudit(entry) {
|
|
40
|
-
auditLog.push(entry);
|
|
41
|
-
if (auditLog.length > MAX_AUDIT_ENTRIES) auditLog.shift();
|
|
42
|
-
const logLine = `[wallet-export-audit] ${entry.outcome} ip=${entry.ip} ua="${entry.userAgent}"${entry.reason ? ` reason="${entry.reason}"` : ""}`;
|
|
43
|
-
console.warn(logLine);
|
|
44
|
-
}
|
|
45
|
-
const EXPORT_DELAY_MS = 1e4;
|
|
46
|
-
const MAX_PENDING_NONCES_PER_IP = 3;
|
|
47
|
-
/**
|
|
48
|
-
* Issue a time-limited export nonce. The client must wait at least
|
|
49
|
-
* EXPORT_DELAY_MS before submitting the actual export request with this nonce.
|
|
50
|
-
*/
|
|
51
|
-
const pendingExportNonces = /* @__PURE__ */ new Map();
|
|
52
|
-
const NONCE_TTL_MS = 300 * 1e3;
|
|
53
|
-
function issueExportNonce(ip) {
|
|
54
|
-
const now = Date.now();
|
|
55
|
-
for (const [key, value] of pendingExportNonces) if (now - value.issuedAt > NONCE_TTL_MS) pendingExportNonces.delete(key);
|
|
56
|
-
let countForIp = 0;
|
|
57
|
-
for (const entry of pendingExportNonces.values()) if (entry.ip === ip) countForIp++;
|
|
58
|
-
if (countForIp >= MAX_PENDING_NONCES_PER_IP) return null;
|
|
59
|
-
const nonce = `wxn_${crypto.randomBytes(16).toString("hex")}`;
|
|
60
|
-
pendingExportNonces.set(nonce, {
|
|
61
|
-
issuedAt: Date.now(),
|
|
62
|
-
ip
|
|
63
|
-
});
|
|
64
|
-
return nonce;
|
|
65
|
-
}
|
|
66
|
-
function validateExportNonce(nonce, ip) {
|
|
67
|
-
const entry = pendingExportNonces.get(nonce);
|
|
68
|
-
if (!entry) return {
|
|
69
|
-
valid: false,
|
|
70
|
-
reason: "Invalid or expired export nonce."
|
|
71
|
-
};
|
|
72
|
-
if (entry.ip !== ip) return {
|
|
73
|
-
valid: false,
|
|
74
|
-
reason: "Export nonce was issued to a different client."
|
|
75
|
-
};
|
|
76
|
-
const elapsed = Date.now() - entry.issuedAt;
|
|
77
|
-
if (elapsed < EXPORT_DELAY_MS) return {
|
|
78
|
-
valid: false,
|
|
79
|
-
reason: `Export confirmation delay not met. Wait ${Math.ceil((EXPORT_DELAY_MS - elapsed) / 1e3)} more seconds.`
|
|
80
|
-
};
|
|
81
|
-
pendingExportNonces.delete(nonce);
|
|
82
|
-
return { valid: true };
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Create a hardened wallet export rejection function that wraps the upstream
|
|
86
|
-
* token validation with rate limiting, audit logging, and a forced delay.
|
|
87
|
-
*
|
|
88
|
-
* Two-phase export flow:
|
|
89
|
-
* 1. POST /api/wallet/export { confirm: true, exportToken: "...", requestNonce: true }
|
|
90
|
-
* → 403 with { nonce, delaySeconds } — client must wait
|
|
91
|
-
* 2. POST /api/wallet/export { confirm: true, exportToken: "...", exportNonce: "wxn_..." }
|
|
92
|
-
* → 200 with keys (if delay elapsed and rate limit not hit)
|
|
93
|
-
*/
|
|
94
|
-
function createHardenedExportGuard(upstream) {
|
|
95
|
-
return (req, body) => {
|
|
96
|
-
const ip = getClientIp(req);
|
|
97
|
-
const ua = getUserAgent(req);
|
|
98
|
-
if (!ip) {
|
|
99
|
-
recordAudit({
|
|
100
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
101
|
-
ip: "unknown",
|
|
102
|
-
userAgent: ua,
|
|
103
|
-
outcome: "rejected",
|
|
104
|
-
reason: "No client IP available on socket"
|
|
105
|
-
});
|
|
106
|
-
return {
|
|
107
|
-
status: 400,
|
|
108
|
-
reason: "Unable to determine client IP; request rejected."
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
const upstreamRejection = upstream(req, body);
|
|
112
|
-
if (upstreamRejection) {
|
|
113
|
-
recordAudit({
|
|
114
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
115
|
-
ip,
|
|
116
|
-
userAgent: ua,
|
|
117
|
-
outcome: "rejected",
|
|
118
|
-
reason: upstreamRejection.reason
|
|
119
|
-
});
|
|
120
|
-
return upstreamRejection;
|
|
121
|
-
}
|
|
122
|
-
if (body.requestNonce) {
|
|
123
|
-
const nonce = issueExportNonce(ip);
|
|
124
|
-
if (!nonce) {
|
|
125
|
-
recordAudit({
|
|
126
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
127
|
-
ip,
|
|
128
|
-
userAgent: ua,
|
|
129
|
-
outcome: "rejected",
|
|
130
|
-
reason: "Too many pending nonces for this IP"
|
|
131
|
-
});
|
|
132
|
-
return {
|
|
133
|
-
status: 429,
|
|
134
|
-
reason: `Too many pending export requests. Complete or wait for existing nonces to expire.`
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
recordAudit({
|
|
138
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
139
|
-
ip,
|
|
140
|
-
userAgent: ua,
|
|
141
|
-
outcome: "rejected",
|
|
142
|
-
reason: "Nonce issued, waiting for confirmation delay"
|
|
143
|
-
});
|
|
144
|
-
return {
|
|
145
|
-
status: 403,
|
|
146
|
-
reason: JSON.stringify({
|
|
147
|
-
countdown: true,
|
|
148
|
-
nonce,
|
|
149
|
-
delaySeconds: EXPORT_DELAY_MS / 1e3,
|
|
150
|
-
message: `Export nonce issued. Wait ${EXPORT_DELAY_MS / 1e3} seconds, then re-submit with exportNonce: "${nonce}".`
|
|
151
|
-
})
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
if (!body.exportNonce) {
|
|
155
|
-
recordAudit({
|
|
156
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
157
|
-
ip,
|
|
158
|
-
userAgent: ua,
|
|
159
|
-
outcome: "rejected",
|
|
160
|
-
reason: "Missing export nonce"
|
|
161
|
-
});
|
|
162
|
-
return {
|
|
163
|
-
status: 403,
|
|
164
|
-
reason: "Export requires a confirmation delay. First send { \"confirm\": true, \"exportToken\": \"...\", \"requestNonce\": true } to start the countdown."
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
const nonceResult = validateExportNonce(body.exportNonce, ip);
|
|
168
|
-
if (!nonceResult.valid) {
|
|
169
|
-
recordAudit({
|
|
170
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
171
|
-
ip,
|
|
172
|
-
userAgent: ua,
|
|
173
|
-
outcome: "rejected",
|
|
174
|
-
reason: nonceResult.reason
|
|
175
|
-
});
|
|
176
|
-
return {
|
|
177
|
-
status: 403,
|
|
178
|
-
reason: nonceResult.reason
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
const rateLimitEntry = rateLimitMap.get(ip);
|
|
182
|
-
if (rateLimitEntry) {
|
|
183
|
-
const elapsed = Date.now() - rateLimitEntry.lastExportAt;
|
|
184
|
-
if (elapsed < RATE_LIMIT_WINDOW_MS) {
|
|
185
|
-
const retryAfter = Math.ceil((RATE_LIMIT_WINDOW_MS - elapsed) / 1e3);
|
|
186
|
-
recordAudit({
|
|
187
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
188
|
-
ip,
|
|
189
|
-
userAgent: ua,
|
|
190
|
-
outcome: "rate-limited",
|
|
191
|
-
reason: `Rate limited, retry after ${retryAfter}s`
|
|
192
|
-
});
|
|
193
|
-
return {
|
|
194
|
-
status: 429,
|
|
195
|
-
reason: `Rate limit exceeded. One export per ${RATE_LIMIT_WINDOW_MS / 6e4} minutes. Retry after ${retryAfter} seconds.`
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
rateLimitMap.set(ip, { lastExportAt: Date.now() });
|
|
200
|
-
recordAudit({
|
|
201
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
202
|
-
ip,
|
|
203
|
-
userAgent: ua,
|
|
204
|
-
outcome: "allowed"
|
|
205
|
-
});
|
|
206
|
-
return null;
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
//#endregion
|
|
210
|
-
//#region src/lib/server-wallet-trade.ts
|
|
211
|
-
/**
|
|
212
|
-
* Wallet / trade compat helpers — trade permission modes, local execution
|
|
213
|
-
* guards, and wallet export rejection wrappers.
|
|
214
|
-
*
|
|
215
|
-
* Exported from the `@elizaos/plugin-wallet` barrel for package consumers.
|
|
216
|
-
*/
|
|
217
|
-
function normalizeCompatReason(reason) {
|
|
218
|
-
return reason;
|
|
219
|
-
}
|
|
220
|
-
function mirrorCompatHeaders(req) {
|
|
221
|
-
for (const [appHeader, elizaHeader] of [
|
|
222
|
-
["x-elizaos-token", "x-eliza-token"],
|
|
223
|
-
["x-elizaos-export-token", "x-eliza-export-token"],
|
|
224
|
-
["x-elizaos-client-id", "x-eliza-client-id"],
|
|
225
|
-
["x-elizaos-terminal-token", "x-eliza-terminal-token"],
|
|
226
|
-
["x-elizaos-ui-language", "x-eliza-ui-language"],
|
|
227
|
-
["x-elizaos-agent-action", "x-eliza-agent-action"]
|
|
228
|
-
]) {
|
|
229
|
-
const appValue = req.headers[appHeader];
|
|
230
|
-
const elizaValue = req.headers[elizaHeader];
|
|
231
|
-
if (appValue != null && elizaValue == null) req.headers[elizaHeader] = appValue;
|
|
232
|
-
if (elizaValue != null && appValue == null) req.headers[appHeader] = elizaValue;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
function normalizeCompatRejection(rejection) {
|
|
236
|
-
if (!rejection) return rejection;
|
|
237
|
-
return {
|
|
238
|
-
...rejection,
|
|
239
|
-
reason: normalizeCompatReason(rejection.reason)
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
function runWithCompatAuthContext(req, operation) {
|
|
243
|
-
syncElizaEnvAliases();
|
|
244
|
-
syncAppEnvToEliza();
|
|
245
|
-
mirrorCompatHeaders(req);
|
|
246
|
-
try {
|
|
247
|
-
return operation();
|
|
248
|
-
} finally {
|
|
249
|
-
syncAppEnvToEliza();
|
|
250
|
-
syncElizaEnvAliases();
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
function tokenMatches(expected, provided) {
|
|
254
|
-
const a = Buffer.from(expected, "utf8");
|
|
255
|
-
const b = Buffer.from(provided, "utf8");
|
|
256
|
-
if (a.length !== b.length) return false;
|
|
257
|
-
return crypto.timingSafeEqual(a, b);
|
|
258
|
-
}
|
|
259
|
-
function resolveBaseWalletExportRejection(req, body) {
|
|
260
|
-
if (!body.confirm) return {
|
|
261
|
-
status: 403,
|
|
262
|
-
reason: "Export requires explicit confirmation. Send { \"confirm\": true } in the request body."
|
|
263
|
-
};
|
|
264
|
-
const expected = process.env.ELIZA_WALLET_EXPORT_TOKEN?.trim();
|
|
265
|
-
if (!expected) return {
|
|
266
|
-
status: 403,
|
|
267
|
-
reason: "Wallet export is disabled. Set ELIZA_WALLET_EXPORT_TOKEN to enable secure exports."
|
|
268
|
-
};
|
|
269
|
-
const headerToken = typeof req.headers["x-eliza-export-token"] === "string" ? req.headers["x-eliza-export-token"].trim() : "";
|
|
270
|
-
const bodyToken = typeof body.exportToken === "string" ? body.exportToken.trim() : "";
|
|
271
|
-
const provided = headerToken || bodyToken;
|
|
272
|
-
if (!provided) return {
|
|
273
|
-
status: 401,
|
|
274
|
-
reason: "Missing export token. Provide X-Eliza-Export-Token header or exportToken in request body."
|
|
275
|
-
};
|
|
276
|
-
if (!tokenMatches(expected, provided)) return {
|
|
277
|
-
status: 401,
|
|
278
|
-
reason: "Invalid export token."
|
|
279
|
-
};
|
|
280
|
-
return null;
|
|
281
|
-
}
|
|
282
|
-
function resolveCompatWalletExportRejection(req, body) {
|
|
283
|
-
return runWithCompatAuthContext(req, () => normalizeCompatRejection(resolveBaseWalletExportRejection(req, body)));
|
|
284
|
-
}
|
|
285
|
-
const hardenedGuard = createHardenedExportGuard(resolveCompatWalletExportRejection);
|
|
286
|
-
function resolveTradePermissionMode(config) {
|
|
287
|
-
const raw = config.features?.tradePermissionMode;
|
|
288
|
-
if (raw === "user-sign-only" || raw === "manual-local-key" || raw === "agent-auto") return raw;
|
|
289
|
-
return "user-sign-only";
|
|
290
|
-
}
|
|
291
|
-
function canUseLocalTradeExecution(mode, isAgent) {
|
|
292
|
-
if (mode === "agent-auto") return true;
|
|
293
|
-
if (mode === "manual-local-key") return !isAgent;
|
|
294
|
-
return false;
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Hardened wallet export rejection function.
|
|
298
|
-
*
|
|
299
|
-
* Wraps the upstream token validation with per-IP rate limiting (1 per 10 min),
|
|
300
|
-
* audit logging (IP + UA), and a 10s confirmation delay via single-use nonces.
|
|
301
|
-
*/
|
|
302
|
-
function resolveWalletExportRejection(req, body) {
|
|
303
|
-
return runWithCompatAuthContext(req, () => normalizeCompatRejection(hardenedGuard(req, body)));
|
|
304
|
-
}
|
|
305
|
-
//#endregion
|
|
306
|
-
export { canUseLocalTradeExecution, normalizeCompatRejection, resolveTradePermissionMode, resolveWalletExportRejection, runWithCompatAuthContext };
|