@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.
Files changed (356) hide show
  1. package/README.md +70 -45
  2. package/auto-enable.ts +1 -1
  3. package/dist/actions/failure-codes.d.ts +12 -0
  4. package/dist/actions/index.d.ts +1 -0
  5. package/dist/analytics/birdeye/actions/wallet-search-address.d.ts +7 -0
  6. package/dist/analytics/birdeye/birdeye-task.d.ts +27 -0
  7. package/dist/analytics/birdeye/birdeye.d.ts +140 -0
  8. package/dist/analytics/birdeye/constants.d.ts +68 -0
  9. package/dist/analytics/birdeye/providers/agent-portfolio-provider.d.ts +8 -0
  10. package/dist/analytics/birdeye/providers/market.d.ts +18 -0
  11. package/dist/analytics/birdeye/providers/portfolio-factory.d.ts +10 -0
  12. package/dist/analytics/birdeye/providers/trending.d.ts +19 -0
  13. package/dist/analytics/birdeye/providers/wallet.d.ts +5 -0
  14. package/dist/analytics/birdeye/search-category.d.ts +52 -0
  15. package/dist/analytics/birdeye/service.d.ts +94 -0
  16. package/dist/analytics/birdeye/types/api/common.d.ts +199 -0
  17. package/dist/analytics/birdeye/types/api/defi.d.ts +187 -0
  18. package/dist/analytics/birdeye/types/api/pair.d.ts +182 -0
  19. package/dist/analytics/birdeye/types/api/search.d.ts +64 -0
  20. package/dist/analytics/birdeye/types/api/token.d.ts +580 -0
  21. package/dist/analytics/birdeye/types/api/trader.d.ts +70 -0
  22. package/dist/analytics/birdeye/types/api/wallet.d.ts +161 -0
  23. package/dist/analytics/birdeye/types/shared.d.ts +83 -0
  24. package/dist/analytics/birdeye/utils.d.ts +74 -0
  25. package/dist/analytics/dexscreener/errors.d.ts +2 -0
  26. package/dist/analytics/dexscreener/index.d.ts +3 -0
  27. package/dist/analytics/dexscreener/search-category.d.ts +3 -0
  28. package/dist/analytics/dexscreener/service.d.ts +34 -0
  29. package/dist/analytics/dexscreener/types.d.ts +131 -0
  30. package/dist/analytics/lpinfo/index.d.ts +31 -0
  31. package/dist/analytics/lpinfo/kamino/index.d.ts +7 -0
  32. package/dist/analytics/lpinfo/kamino/providers/kaminoLiquidityProvider.d.ts +6 -0
  33. package/dist/analytics/lpinfo/kamino/providers/kaminoPoolProvider.d.ts +6 -0
  34. package/dist/analytics/lpinfo/kamino/providers/kaminoProvider.d.ts +6 -0
  35. package/dist/analytics/lpinfo/kamino/services/kaminoLiquidityService.d.ts +203 -0
  36. package/dist/analytics/lpinfo/kamino/services/kaminoService.d.ts +171 -0
  37. package/dist/analytics/lpinfo/steer/index.d.ts +7 -0
  38. package/dist/analytics/lpinfo/steer/providers/steerLiquidityProvider.d.ts +6 -0
  39. package/dist/analytics/lpinfo/steer/services/steerLiquidityService.d.ts +208 -0
  40. package/dist/analytics/lpinfo/steer/steer-display-types.d.ts +97 -0
  41. package/dist/analytics/news/index.d.ts +32 -0
  42. package/dist/analytics/news/interfaces/types.d.ts +177 -0
  43. package/dist/analytics/news/providers/defiNewsProvider.d.ts +106 -0
  44. package/dist/analytics/news/services/newsDataService.d.ts +72 -0
  45. package/dist/analytics/news/utils/formatters.d.ts +54 -0
  46. package/dist/analytics/token-info/action.d.ts +6 -0
  47. package/dist/analytics/token-info/index.d.ts +3 -0
  48. package/dist/analytics/token-info/params.d.ts +10 -0
  49. package/dist/analytics/token-info/providers.d.ts +4 -0
  50. package/dist/analytics/token-info/service.d.ts +19 -0
  51. package/dist/analytics/token-info/types.d.ts +45 -0
  52. package/dist/api/wallet-routes.d.ts +100 -0
  53. package/dist/audit/audit-log.d.ts +29 -0
  54. package/dist/browser-shim/build-shim.d.ts +31 -0
  55. package/dist/browser-shim/index.d.ts +1 -0
  56. package/dist/chains/evm/actions/helpers.d.ts +31 -0
  57. package/dist/chains/evm/actions/swap.d.ts +53 -0
  58. package/dist/chains/evm/actions/transfer.d.ts +10 -0
  59. package/dist/chains/evm/bridge-router.d.ts +44 -0
  60. package/dist/chains/evm/build.d.ts +2 -0
  61. package/dist/chains/evm/chain-handler.d.ts +37 -0
  62. package/dist/chains/evm/constants.d.ts +16 -0
  63. package/dist/chains/evm/dex/aerodrome/index.d.ts +6 -0
  64. package/dist/chains/evm/dex/aerodrome/services/AerodromeLpService.d.ts +27 -0
  65. package/dist/chains/evm/dex/aerodrome/types.d.ts +435 -0
  66. package/dist/chains/evm/dex/pancakeswp/index.d.ts +6 -0
  67. package/dist/chains/evm/dex/pancakeswp/services/PancakeSwapV3LpService.d.ts +28 -0
  68. package/dist/chains/evm/dex/pancakeswp/types.d.ts +19 -0
  69. package/dist/chains/evm/dex/uniswap/index.d.ts +6 -0
  70. package/dist/chains/evm/dex/uniswap/services/UniswapV3LpService.d.ts +28 -0
  71. package/dist/chains/evm/dex/uniswap/types.d.ts +458 -0
  72. package/dist/chains/evm/generated/specs/spec-helpers.d.ts +35 -0
  73. package/dist/chains/evm/generated/specs/specs.d.ts +99 -0
  74. package/dist/chains/evm/gov-router.d.ts +6 -0
  75. package/dist/chains/evm/index.browser.d.ts +3 -0
  76. package/dist/chains/evm/index.d.ts +6 -0
  77. package/dist/chains/evm/prompts.d.ts +24 -0
  78. package/dist/chains/evm/providers/get-balance.d.ts +2 -0
  79. package/dist/chains/evm/providers/wallet.d.ts +35 -0
  80. package/dist/chains/evm/routes/sign.d.ts +13 -0
  81. package/dist/chains/evm/rpc-providers.d.ts +26 -0
  82. package/dist/chains/evm/service.d.ts +26 -0
  83. package/dist/chains/evm/templates/index.d.ts +1 -0
  84. package/dist/chains/evm/types/index.d.ts +296 -0
  85. package/dist/chains/evm/vitest.config.d.ts +2 -0
  86. package/dist/chains/registry.d.ts +3 -0
  87. package/dist/chains/solana/actions/confirmation.d.ts +9 -0
  88. package/dist/chains/solana/bn.d.ts +6 -0
  89. package/dist/chains/solana/build.d.ts +2 -0
  90. package/dist/chains/solana/constants.d.ts +2 -0
  91. package/dist/chains/solana/dex/meteora/e2e/scenarios.d.ts +10 -0
  92. package/dist/chains/solana/dex/meteora/e2e/test-utils.d.ts +28 -0
  93. package/dist/chains/solana/dex/meteora/index.d.ts +3 -0
  94. package/dist/chains/solana/dex/meteora/providers/positionProvider.d.ts +9 -0
  95. package/dist/chains/solana/dex/meteora/services/MeteoraLpService.d.ts +37 -0
  96. package/dist/chains/solana/dex/meteora/utils/dlmm.d.ts +6 -0
  97. package/dist/chains/solana/dex/meteora/utils/loadWallet.d.ts +14 -0
  98. package/dist/chains/solana/dex/meteora/utils/sendTransaction.d.ts +2 -0
  99. package/dist/chains/solana/dex/orca/index.d.ts +6 -0
  100. package/dist/chains/solana/dex/orca/providers/positionProvider.d.ts +10 -0
  101. package/dist/chains/solana/dex/orca/services/srv_orca.d.ts +10 -0
  102. package/dist/chains/solana/dex/orca/types.d.ts +61 -0
  103. package/dist/chains/solana/dex/orca/utils/loadWallet.d.ts +1 -0
  104. package/dist/chains/solana/dex/orca/utils/sendTransaction.d.ts +2 -0
  105. package/dist/chains/solana/dex/raydium/index.d.ts +6 -0
  106. package/dist/chains/solana/dex/raydium/providers/positionProvider.d.ts +10 -0
  107. package/dist/chains/solana/dex/raydium/services/srv_raydium.d.ts +104 -0
  108. package/dist/chains/solana/dex/raydium/types.d.ts +42 -0
  109. package/dist/chains/solana/environment.d.ts +15 -0
  110. package/dist/chains/solana/generated/specs/spec-helpers.d.ts +35 -0
  111. package/dist/chains/solana/generated/specs/specs.d.ts +73 -0
  112. package/dist/chains/solana/index.browser.d.ts +3 -0
  113. package/dist/chains/solana/index.d.ts +7 -0
  114. package/dist/chains/solana/keypairUtils.d.ts +7 -0
  115. package/dist/chains/solana/prompts.d.ts +12 -0
  116. package/dist/chains/solana/providers/wallet.d.ts +2 -0
  117. package/dist/chains/solana/routes/index.d.ts +2 -0
  118. package/dist/chains/solana/routes/sign.d.ts +16 -0
  119. package/dist/chains/solana/service.d.ts +237 -0
  120. package/dist/chains/solana/types.d.ts +377 -0
  121. package/dist/chains/solana/vitest.config.d.ts +2 -0
  122. package/dist/chains/wallet-action.d.ts +3 -0
  123. package/dist/contracts.d.ts +58 -0
  124. package/dist/core-augmentation.d.ts +9 -0
  125. package/dist/index.d.mts +27 -34727
  126. package/dist/index.d.ts +27 -0
  127. package/dist/index.mjs +28246 -21186
  128. package/dist/index.mjs.map +153 -0
  129. package/dist/lib/server-wallet-trade.d.ts +22 -0
  130. package/dist/lib/server-wallet-trade.js +333 -0
  131. package/dist/lib/server-wallet-trade.js.map +11 -0
  132. package/dist/lib/wallet-export-guard.d.ts +45 -0
  133. package/dist/lp/actions/liquidity.d.ts +2 -0
  134. package/dist/lp/e2e/real-token-tests.d.ts +6 -0
  135. package/dist/lp/e2e/scenarios.d.ts +9 -0
  136. package/dist/lp/e2e/test-utils.d.ts +28 -0
  137. package/dist/lp/lp-manager-entry.d.ts +18 -0
  138. package/dist/lp/services/ConcentratedLiquidityService.d.ts +32 -0
  139. package/dist/lp/services/DexInteractionService.d.ts +34 -0
  140. package/dist/lp/services/LpManagementService.d.ts +116 -0
  141. package/dist/lp/services/UserLpProfileService.d.ts +18 -0
  142. package/dist/lp/services/VaultService.d.ts +21 -0
  143. package/dist/lp/services/YieldOptimizationService.d.ts +59 -0
  144. package/dist/lp/services/__tests__/MockLpService.d.ts +17 -0
  145. package/dist/lp/types.d.ts +439 -0
  146. package/dist/lp/utils/solanaClient.d.ts +26 -0
  147. package/dist/plugin.d.ts +7 -0
  148. package/dist/policy/policy.d.ts +14 -0
  149. package/dist/providers/canonical-provider.d.ts +19 -0
  150. package/dist/providers/wallet-provider.d.ts +5 -0
  151. package/dist/register-routes.d.ts +1 -0
  152. package/dist/routes/plugin.d.ts +14 -0
  153. package/dist/routes/wallet-market-overview-route.d.ts +7 -0
  154. package/dist/sdk/abi.d.ts +396 -0
  155. package/dist/sdk/bridge/abis.d.ts +63 -0
  156. package/dist/sdk/bridge/client.d.ts +48 -0
  157. package/dist/sdk/bridge/index.d.ts +14 -0
  158. package/dist/sdk/bridge/solana.d.ts +131 -0
  159. package/dist/sdk/bridge/types.d.ts +92 -0
  160. package/dist/sdk/convenience.d.ts +104 -0
  161. package/dist/sdk/escrow/MutualStakeEscrow.d.ts +75 -0
  162. package/dist/sdk/escrow/types.d.ts +58 -0
  163. package/dist/sdk/escrow/verifiers.d.ts +25 -0
  164. package/dist/sdk/identity/erc8004.d.ts +304 -0
  165. package/dist/sdk/identity/reputation.d.ts +317 -0
  166. package/dist/sdk/identity/uaid.d.ts +192 -0
  167. package/dist/sdk/identity/validation.d.ts +282 -0
  168. package/dist/sdk/index.d.ts +133 -0
  169. package/dist/sdk/index.js +5284 -0
  170. package/dist/sdk/index.js.map +40 -0
  171. package/dist/sdk/policy/SpendingPolicy.d.ts +105 -0
  172. package/dist/sdk/policy/UptoBillingPolicy.d.ts +87 -0
  173. package/dist/sdk/router/PaymentRouter.d.ts +77 -0
  174. package/dist/sdk/router/index.d.ts +2 -0
  175. package/dist/sdk/swap/SwapModule.d.ts +47 -0
  176. package/dist/sdk/swap/abi.d.ts +50 -0
  177. package/dist/sdk/swap/index.d.ts +11 -0
  178. package/dist/sdk/swap/types.d.ts +101 -0
  179. package/dist/sdk/tokens/decimals.d.ts +64 -0
  180. package/dist/sdk/tokens/registry.d.ts +81 -0
  181. package/dist/sdk/tokens/solana.d.ts +107 -0
  182. package/dist/sdk/tokens/transfers.d.ts +94 -0
  183. package/dist/sdk/types.d.ts +129 -0
  184. package/dist/sdk/wallet-core.d.ts +29450 -0
  185. package/dist/sdk/x402/budget.d.ts +51 -0
  186. package/dist/sdk/x402/chains/abstract/index.d.ts +134 -0
  187. package/dist/sdk/x402/client.d.ts +66 -0
  188. package/dist/sdk/x402/index.d.ts +8 -0
  189. package/dist/sdk/x402/middleware.d.ts +37 -0
  190. package/dist/sdk/x402/multi-asset.d.ts +53 -0
  191. package/dist/sdk/x402/types.d.ts +109 -0
  192. package/dist/security/wallet-context-safety.d.ts +7 -0
  193. package/dist/security/wallet-financial-confirmation.d.ts +23 -0
  194. package/dist/services/wallet-backend-service.d.ts +39 -0
  195. package/dist/types/wallet-router.d.ts +130 -0
  196. package/dist/utils/intent-trajectory.d.ts +34 -0
  197. package/dist/wallet/backend.d.ts +41 -0
  198. package/dist/wallet/errors.d.ts +17 -0
  199. package/dist/wallet/index.d.ts +6 -0
  200. package/dist/wallet/local-eoa-backend.d.ts +37 -0
  201. package/dist/wallet/pending.d.ts +47 -0
  202. package/dist/wallet/select-backend.d.ts +11 -0
  203. package/dist/wallet/steward-backend.d.ts +22 -0
  204. package/dist/wallet-action.d.ts +1 -0
  205. package/dist/wallet-action.js +6292 -0
  206. package/dist/wallet-action.js.map +44 -0
  207. package/package.json +35 -21
  208. package/registry-entry.json +134 -0
  209. package/src/analytics/birdeye/actions/wallet-search-address.ts +85 -5
  210. package/src/analytics/birdeye/birdeye-task.ts +25 -9
  211. package/src/analytics/birdeye/birdeye.ts +6 -7
  212. package/src/analytics/birdeye/constants.ts +0 -1
  213. package/src/analytics/birdeye/providers/agent-portfolio-provider.ts +0 -1
  214. package/src/analytics/birdeye/providers/market.ts +51 -45
  215. package/src/analytics/birdeye/providers/portfolio-factory.ts +79 -38
  216. package/src/analytics/birdeye/providers/trending.ts +43 -46
  217. package/src/analytics/birdeye/providers/wallet.ts +0 -1
  218. package/src/analytics/birdeye/search-category.test.ts +1 -1
  219. package/src/analytics/birdeye/search-category.ts +77 -12
  220. package/src/analytics/birdeye/service.test.ts +146 -0
  221. package/src/analytics/birdeye/service.ts +220 -105
  222. package/src/analytics/birdeye/types/api/common.ts +0 -1
  223. package/src/analytics/birdeye/types/api/defi.ts +0 -1
  224. package/src/analytics/birdeye/types/api/pair.ts +0 -1
  225. package/src/analytics/birdeye/types/api/search.ts +0 -1
  226. package/src/analytics/birdeye/types/api/token.ts +0 -1
  227. package/src/analytics/birdeye/types/api/trader.ts +0 -1
  228. package/src/analytics/birdeye/types/api/wallet.ts +0 -1
  229. package/src/analytics/birdeye/types/shared.ts +0 -11
  230. package/src/analytics/birdeye/utils.test.ts +69 -0
  231. package/src/analytics/birdeye/utils.ts +11 -8
  232. package/src/analytics/dexscreener/search-category.ts +0 -1
  233. package/src/analytics/dexscreener/service.ts +7 -12
  234. package/src/analytics/dexscreener/types.ts +0 -1
  235. package/src/analytics/lpinfo/index.ts +5 -2
  236. package/src/analytics/lpinfo/kamino/README.md +2 -2
  237. package/src/analytics/lpinfo/kamino/index.ts +9 -2
  238. package/src/analytics/lpinfo/kamino/providers/kaminoLiquidityProvider.ts +6 -26
  239. package/src/analytics/lpinfo/kamino/providers/kaminoPoolProvider.ts +11 -12
  240. package/src/analytics/lpinfo/kamino/providers/kaminoProvider.ts +76 -32
  241. package/src/analytics/lpinfo/kamino/services/kaminoLiquidityService.ts +78 -38
  242. package/src/analytics/lpinfo/kamino/services/kaminoService.ts +71 -31
  243. package/src/analytics/lpinfo/steer/index.ts +7 -2
  244. package/src/analytics/lpinfo/steer/providers/steerLiquidityProvider.ts +25 -26
  245. package/src/analytics/lpinfo/steer/services/steerLiquidityService.ts +367 -149
  246. package/src/analytics/news/index.ts +7 -2
  247. package/src/analytics/news/interfaces/types.ts +0 -1
  248. package/src/analytics/news/providers/defiNewsProvider.ts +17 -44
  249. package/src/analytics/news/services/newsDataService.ts +1 -22
  250. package/src/analytics/news/utils/formatters.test.ts +60 -0
  251. package/src/analytics/news/utils/formatters.ts +0 -1
  252. package/src/analytics/token-info/action.ts +52 -212
  253. package/src/analytics/token-info/index.ts +1 -1
  254. package/src/analytics/token-info/params.test.ts +69 -0
  255. package/src/analytics/token-info/params.ts +13 -11
  256. package/src/analytics/token-info/providers.ts +46 -17
  257. package/src/analytics/token-info/service.ts +3 -3
  258. package/src/analytics/token-info/types.ts +2 -2
  259. package/src/api/wallet-routes.test.ts +56 -0
  260. package/src/api/wallet-routes.ts +1728 -0
  261. package/src/audit/audit-log.ts +57 -2
  262. package/src/browser-shim/build-shim.ts +1 -1
  263. package/src/browser-shim/shim.template.js +107 -117
  264. package/src/chains/{wallet-router.test.ts → __tests__/wallet-router.test.ts} +57 -10
  265. package/src/chains/evm/actions/helpers.ts +9 -7
  266. package/src/chains/evm/actions/swap.ts +176 -22
  267. package/src/chains/evm/actions/transfer.ts +29 -22
  268. package/src/chains/evm/biome.json +1 -1
  269. package/src/chains/evm/build.ts +6 -1
  270. package/src/chains/evm/constants.ts +19 -0
  271. package/src/chains/evm/contracts/artifacts/OZGovernor.json +25 -1682
  272. package/src/chains/evm/dex/aerodrome/index.ts +6 -1
  273. package/src/chains/evm/dex/aerodrome/services/AerodromeLpService.ts +41 -15
  274. package/src/chains/evm/dex/aerodrome/types.ts +1 -2
  275. package/src/chains/evm/dex/pancakeswp/index.ts +6 -1
  276. package/src/chains/evm/dex/pancakeswp/services/PancakeSwapV3LpService.ts +54 -17
  277. package/src/chains/evm/dex/pancakeswp/types.ts +1 -2
  278. package/src/chains/evm/dex/uniswap/index.ts +6 -1
  279. package/src/chains/evm/dex/uniswap/services/UniswapV3LpService.ts +20 -9
  280. package/src/chains/evm/dex/uniswap/types.ts +1 -2
  281. package/src/chains/evm/gov-router.ts +3 -1
  282. package/src/chains/evm/index.browser.ts +1 -1
  283. package/src/chains/evm/index.ts +5 -1
  284. package/src/chains/evm/prompts.ts +5 -0
  285. package/src/chains/evm/providers/get-balance.ts +1 -1
  286. package/src/chains/evm/providers/wallet.ts +80 -9
  287. package/src/chains/evm/routes/sign.ts +35 -26
  288. package/src/chains/evm/rpc-providers.ts +1 -1
  289. package/src/chains/evm/types/index.ts +22 -2
  290. package/src/chains/registry.ts +1 -1
  291. package/src/chains/wallet-action.ts +301 -91
  292. package/src/index.ts +9 -5
  293. package/src/lib/wallet-export-guard.test.ts +233 -0
  294. package/src/lib/wallet-export-guard.ts +1 -1
  295. package/src/lp/actions/liquidity.ts +53 -26
  296. package/src/lp/e2e/real-token-tests.ts +0 -1
  297. package/src/lp/e2e/scenarios.ts +1 -2
  298. package/src/lp/e2e/test-utils.ts +20 -7
  299. package/src/lp/lp-manager-entry.ts +2 -5
  300. package/src/lp/services/ConcentratedLiquidityService.ts +3 -10
  301. package/src/lp/services/DexInteractionService.ts +1 -2
  302. package/src/lp/services/LpManagementService.test.ts +0 -1
  303. package/src/lp/services/LpManagementService.ts +75 -35
  304. package/src/lp/services/UserLpProfileService.ts +2 -3
  305. package/src/lp/services/VaultService.ts +10 -4
  306. package/src/lp/services/YieldOptimizationService.ts +29 -13
  307. package/src/lp/services/__tests__/MockLpService.ts +1 -2
  308. package/src/lp/types.ts +9 -13
  309. package/src/lp/utils/solanaClient.ts +4 -2
  310. package/src/plugin.routes.test.ts +24 -0
  311. package/src/plugin.ts +30 -13
  312. package/src/providers/canonical-provider.ts +1 -1
  313. package/src/providers/{unified-wallet-provider.ts → wallet-provider.ts} +3 -3
  314. package/src/routes/__fixtures__/coingecko-markets.recorded.json +97 -0
  315. package/src/routes/wallet-market-overview-route.ts +1 -1
  316. package/src/routes/wallet-market-overview.contract.test.ts +139 -0
  317. package/src/routes/wallet-market-overview.real.test.ts +83 -0
  318. package/src/sdk/escrow/MutualStakeEscrow.ts +1 -2
  319. package/src/sdk/identity/erc8004.ts +1 -1
  320. package/src/sdk/identity/validation.ts +3 -4
  321. package/src/sdk/index.ts +2 -2
  322. package/src/sdk/policy/SpendingPolicy.ts +1 -1
  323. package/src/sdk/router/PaymentRouter.ts +8 -11
  324. package/src/sdk/swap/SwapModule.ts +1 -1
  325. package/src/sdk/tokens/registry.ts +1 -1
  326. package/src/sdk/x402/middleware.ts +2 -8
  327. package/src/security/__tests__/wallet-context-safety.test.ts +79 -0
  328. package/src/security/__tests__/wallet-financial-confirmation.test.ts +88 -0
  329. package/src/security/wallet-context-safety.ts +128 -0
  330. package/src/security/wallet-financial-confirmation.ts +150 -0
  331. package/src/services/wallet-backend-service.ts +15 -1
  332. package/src/utils/intent-trajectory.ts +2 -2
  333. package/src/wallet/steward-backend.ts +4 -4
  334. package/dist/LpManagementService-BWrQ5-cO.mjs +0 -353
  335. package/dist/MockLpService-D_Apn4Fd.mjs +0 -99
  336. package/dist/aerodrome-CfnESC32.mjs +0 -890
  337. package/dist/chunk-hT5z_Zn9.mjs +0 -35
  338. package/dist/lib/server-wallet-trade.d.mts +0 -34
  339. package/dist/lib/server-wallet-trade.mjs +0 -306
  340. package/dist/meteora-BPX39hZo.mjs +0 -22640
  341. package/dist/orca-Bybp1HXO.mjs +0 -249
  342. package/dist/pancakeswp-CkEXlXti.mjs +0 -604
  343. package/dist/plugin-ZO_MTyd0.mjs +0 -529
  344. package/dist/raydium-rfaM9yEf.mjs +0 -539
  345. package/dist/sdk/index.d.mts +0 -32492
  346. package/dist/sdk/index.mjs +0 -6415
  347. package/dist/types-D5252NZk.mjs +0 -487
  348. package/dist/uniswap-CReXgXVN.mjs +0 -573
  349. package/dist/wallet-action.d.mts +0 -6
  350. package/dist/wallet-action.mjs +0 -820
  351. package/src/analytics/birdeye/tasks/birdeye.ts +0 -232
  352. package/src/analytics/lpinfo/index.d.ts +0 -7
  353. package/src/chains/evm/contracts/artifacts/TimelockController.json +0 -1007
  354. package/src/chains/evm/contracts/artifacts/VoteToken.json +0 -895
  355. package/src/lp/tasks/LpAutoRebalanceTask.ts +0 -117
  356. package/src/lp/tasks/__tests__/LpAutoRebalanceTask.test.ts +0 -370
@@ -0,0 +1,51 @@
1
+ import type { X402ClientConfig, X402ServiceBudget, X402TransactionLog } from "./types.js";
2
+ /**
3
+ * [MAX-ADDED] In-memory budget tracker for x402 payments.
4
+ * Enforces per-service caps, daily limits, and per-request maximums.
5
+ * On-chain spend limits are ALSO enforced by the AgentWallet contract —
6
+ * this is an additional client-side layer for granular service-level control.
7
+ */
8
+ export declare class X402BudgetTracker {
9
+ private serviceBudgets;
10
+ private dailySpend;
11
+ private globalDailySpend;
12
+ private dailyResetTimestamp;
13
+ private transactionLog;
14
+ private globalDailyLimit;
15
+ private globalPerRequestMax;
16
+ constructor(config?: X402ClientConfig);
17
+ /**
18
+ * Check if a payment is within budget limits.
19
+ * Returns { allowed: true } or { allowed: false, reason: string }.
20
+ */
21
+ checkBudget(service: string, amount: bigint): {
22
+ allowed: boolean;
23
+ reason?: string;
24
+ };
25
+ /**
26
+ * Record a completed payment.
27
+ */
28
+ recordPayment(log: X402TransactionLog): void;
29
+ /**
30
+ * Get transaction history, optionally filtered.
31
+ */
32
+ getTransactionLog(filter?: {
33
+ service?: string;
34
+ since?: number;
35
+ }): X402TransactionLog[];
36
+ /**
37
+ * Get current daily spend summary.
38
+ */
39
+ getDailySpendSummary(): {
40
+ global: bigint;
41
+ byService: Record<string, bigint>;
42
+ resetsAt: number;
43
+ };
44
+ /**
45
+ * Add or update a service budget at runtime.
46
+ */
47
+ setServiceBudget(budget: X402ServiceBudget): void;
48
+ private findServiceBudget;
49
+ private maybeResetDaily;
50
+ private startOfDay;
51
+ }
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Abstract x402 Delegated Payment Facilitator Adapter
3
+ *
4
+ * Abstract's x402 implementation uses a delegated facilitator pattern:
5
+ * 1. The agent wallet does NOT sign the payment tx directly
6
+ * 2. A "payment facilitator" contract is designated per-merchant
7
+ * 3. The agent's wallet delegates authorization via a signed EIP-712 permit
8
+ * 4. The facilitator executes the actual chain transaction
9
+ *
10
+ * Chain IDs:
11
+ * - Abstract Mainnet: 2741
12
+ * - Abstract Testnet: 11124
13
+ */
14
+ import type { Address, Hex, WalletClient } from "viem";
15
+ export declare const ABSTRACT_CHAIN_IDS: {
16
+ readonly mainnet: 2741;
17
+ readonly testnet: 11124;
18
+ };
19
+ /** USDC on Abstract Mainnet (official Bridged USDC) */
20
+ export declare const ABSTRACT_USDC: Record<number, Address>;
21
+ /** Abstract's approved payment facilitator contracts */
22
+ export declare const ABSTRACT_APPROVED_FACILITATORS: Address[];
23
+ export interface AbstractDelegatedPaymentConfig {
24
+ /** The facilitator contract address (must be on approved list or user-allowlisted) */
25
+ facilitatorAddress: Address;
26
+ /** Token to pay with (default: USDC on Abstract) */
27
+ token?: Address;
28
+ /** Permit deadline in seconds from now (default: 300 = 5 min) */
29
+ deadlineSeconds?: number;
30
+ /** User-allowlisted facilitator addresses (extends the approved list) */
31
+ userAllowlist?: Address[];
32
+ }
33
+ export interface DelegatedPaymentPermit {
34
+ facilitator: Address;
35
+ token: Address;
36
+ amount: bigint;
37
+ payTo: Address;
38
+ nonce: bigint;
39
+ deadline: bigint;
40
+ resource: string;
41
+ }
42
+ export interface AbstractPaymentResult {
43
+ /** EIP-712 signature for the facilitator permit */
44
+ permitSignature: Hex;
45
+ /** Encoded permit data to submit to the facilitator contract */
46
+ permitData: Hex;
47
+ /** The permit fields for verification */
48
+ permit: DelegatedPaymentPermit;
49
+ /** Chain ID this payment is valid on */
50
+ chainId: number;
51
+ }
52
+ /**
53
+ * Adapter for Abstract's delegated payment facilitator x402 model.
54
+ *
55
+ * Instead of signing a direct payment transaction, the agent signs an EIP-712
56
+ * permit authorizing a facilitator contract to execute the payment on its behalf.
57
+ * This is Abstract's model — the agent's keys never touch the chain directly.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const adapter = new AbstractDelegatedFacilitatorAdapter(walletClient, {
62
+ * facilitatorAddress: '0x5FbDB2315678afecb367f032d93F642f64180aa3',
63
+ * });
64
+ *
65
+ * const result = await adapter.signPaymentPermit({
66
+ * amount: 1_000_000n, // 1 USDC (6 decimals)
67
+ * payTo: '0xmerchant...',
68
+ * nonce: 0n,
69
+ * resource: 'https://api.example.com/resource',
70
+ * });
71
+ * ```
72
+ */
73
+ export declare class AbstractDelegatedFacilitatorAdapter {
74
+ private walletClient;
75
+ private config;
76
+ private chainId;
77
+ constructor(walletClient: WalletClient, config: AbstractDelegatedPaymentConfig, chainId?: number);
78
+ /**
79
+ * Sign an EIP-712 delegated payment permit for the Abstract facilitator.
80
+ * This replaces direct tx signing — the permit is submitted to the facilitator contract.
81
+ */
82
+ signPaymentPermit(params: {
83
+ amount: bigint;
84
+ payTo: Address;
85
+ nonce: bigint;
86
+ resource: string;
87
+ }): Promise<AbstractPaymentResult>;
88
+ /**
89
+ * Build the x402 payment payload for Abstract's delegated facilitator model.
90
+ * This payload replaces the standard txHash payload in the X-PAYMENT header.
91
+ */
92
+ buildX402Payload(params: {
93
+ amount: bigint;
94
+ payTo: Address;
95
+ nonce: bigint;
96
+ resource: string;
97
+ }): Promise<Record<string, unknown>>;
98
+ /** Check if a chain ID is an Abstract chain */
99
+ static isAbstractChain(chainId: number): boolean;
100
+ /** Get the network string for x402 payment requirements (e.g. "abstract:2741") */
101
+ static getNetworkString(chainId: number): string;
102
+ }
103
+ /**
104
+ * Abstract chain IDs to add to SUPPORTED_CHAINS in the main SDK.
105
+ * These route through AbstractDelegatedFacilitatorAdapter for x402 payments.
106
+ */
107
+ export declare const ABSTRACT_SUPPORTED_CHAINS: {
108
+ readonly "abstract:2741": {
109
+ readonly chainId: 2741;
110
+ readonly name: "Abstract Mainnet";
111
+ readonly rpcUrl: "https://api.mainnet.abs.xyz";
112
+ readonly nativeCurrency: {
113
+ readonly name: "Ether";
114
+ readonly symbol: "ETH";
115
+ readonly decimals: 18;
116
+ };
117
+ readonly blockExplorer: "https://explorer.mainnet.abs.xyz";
118
+ readonly x402Model: "delegated-facilitator";
119
+ readonly usdc: `0x${string}`;
120
+ };
121
+ readonly "abstract-testnet:11124": {
122
+ readonly chainId: 11124;
123
+ readonly name: "Abstract Testnet";
124
+ readonly rpcUrl: "https://api.testnet.abs.xyz";
125
+ readonly nativeCurrency: {
126
+ readonly name: "Ether";
127
+ readonly symbol: "ETH";
128
+ readonly decimals: 18;
129
+ };
130
+ readonly blockExplorer: "https://explorer.testnet.abs.xyz";
131
+ readonly x402Model: "delegated-facilitator";
132
+ readonly usdc: `0x${string}`;
133
+ };
134
+ };
@@ -0,0 +1,66 @@
1
+ import { type AgentWallet } from "../wallet-core.js";
2
+ import { X402BudgetTracker } from "./budget.js";
3
+ import type { X402ClientConfig, X402PaymentRequired, X402PaymentRequirements, X402TransactionLog } from "./types.js";
4
+ /**
5
+ * [MAX-ADDED] x402 Payment Client for AgentWallet.
6
+ *
7
+ * Handles the full x402 payment flow:
8
+ * 1. Detects 402 Payment Required responses
9
+ * 2. Parses payment instructions from PAYMENT-REQUIRED header
10
+ * 3. Validates against budget controls
11
+ * 4. Executes USDC payment via AgentWallet contract
12
+ * 5. Retries original request with payment proof
13
+ */
14
+ export declare class X402Client {
15
+ private wallet;
16
+ private config;
17
+ private budget;
18
+ private supportedNetworks;
19
+ constructor(wallet: AgentWallet, config?: X402ClientConfig);
20
+ /**
21
+ * Make an x402-aware fetch request. Automatically handles 402 responses.
22
+ */
23
+ fetch(url: string | URL, init?: RequestInit): Promise<Response>;
24
+ /**
25
+ * Parse a 402 response to extract payment requirements.
26
+ */
27
+ parse402Response(response: Response): Promise<X402PaymentRequired | null>;
28
+ /**
29
+ * Select the best compatible payment option from offered requirements.
30
+ * Prefers: Base network, stablecoins, exact scheme.
31
+ *
32
+ * v6 change: resolves assets via TokenRegistry in addition to USDC_ADDRESSES.
33
+ * Now accepts any ERC-20 whose address is in the TokenRegistry for the network.
34
+ */
35
+ selectPaymentOption(accepts: X402PaymentRequirements[]): X402PaymentRequirements | null;
36
+ /**
37
+ * Execute the payment via AgentWallet's agentTransferToken.
38
+ *
39
+ * v6 change: resolves asset address via TokenRegistry before executing.
40
+ * The 402 response may specify an asset by symbol ("USDC") or by address.
41
+ */
42
+ private executePayment;
43
+ /** Get the budget tracker for direct inspection */
44
+ get budgetTracker(): X402BudgetTracker;
45
+ /** Get transaction log */
46
+ getTransactionLog(filter?: {
47
+ service?: string;
48
+ since?: number;
49
+ }): X402TransactionLog[];
50
+ /** Get daily spend summary */
51
+ getDailySpendSummary(): {
52
+ global: bigint;
53
+ byService: Record<string, bigint>;
54
+ resetsAt: number;
55
+ };
56
+ }
57
+ export declare class X402PaymentError extends Error {
58
+ readonly paymentRequirements: X402PaymentRequirements;
59
+ constructor(message: string, paymentRequirements: X402PaymentRequirements);
60
+ }
61
+ export declare class X402BudgetExceededError extends Error {
62
+ readonly reason: string;
63
+ readonly url: string;
64
+ readonly paymentRequirements: X402PaymentRequirements;
65
+ constructor(reason: string, url: string, paymentRequirements: X402PaymentRequirements);
66
+ }
@@ -0,0 +1,8 @@
1
+ export { X402BudgetTracker } from "./budget.js";
2
+ export type { AbstractDelegatedPaymentConfig, AbstractPaymentResult, DelegatedPaymentPermit, } from "./chains/abstract/index.js";
3
+ export { ABSTRACT_APPROVED_FACILITATORS, ABSTRACT_CHAIN_IDS, ABSTRACT_SUPPORTED_CHAINS, ABSTRACT_USDC, AbstractDelegatedFacilitatorAdapter, } from "./chains/abstract/index.js";
4
+ export { X402BudgetExceededError, X402Client, X402PaymentError, } from "./client.js";
5
+ export { createX402Client, createX402Fetch, wrapWithX402, } from "./middleware.js";
6
+ export { buildSupportedAssets, isStablecoin, parseNetworkChainId, resolveAssetAddress, resolveAssetDecimals, } from "./multi-asset.js";
7
+ export type { X402ClientConfig, X402PaymentPayload, X402PaymentRequired, X402PaymentRequirements, X402ResourceInfo, X402ServiceBudget, X402SettlementResponse, X402TransactionLog, } from "./types.js";
8
+ export { DEFAULT_SUPPORTED_NETWORKS, USDC_ADDRESSES } from "./types.js";
@@ -0,0 +1,37 @@
1
+ import type { AgentWallet } from "../wallet-core.js";
2
+ import { X402Client } from "./client.js";
3
+ import type { X402ClientConfig } from "./types.js";
4
+ /**
5
+ * [MAX-ADDED] Create an x402-aware HTTP client.
6
+ *
7
+ * Usage:
8
+ * const client = createX402Client(wallet, { globalDailyLimit: 10_000_000n });
9
+ * const response = await client.fetch('https://api.example.com/data');
10
+ * // If the endpoint returns 402, payment is handled automatically
11
+ *
12
+ * @param wallet - AgentWallet instance from createWallet()
13
+ * @param config - Optional x402 client configuration
14
+ * @returns X402Client with .fetch() method and budget controls
15
+ */
16
+ export declare function createX402Client(wallet: AgentWallet, config?: X402ClientConfig): X402Client;
17
+ /**
18
+ * [MAX-ADDED] Create an x402-aware fetch function (drop-in replacement).
19
+ *
20
+ * Usage:
21
+ * const x402Fetch = createX402Fetch(wallet);
22
+ * const response = await x402Fetch('https://api.example.com/data');
23
+ *
24
+ * @param wallet - AgentWallet instance from createWallet()
25
+ * @param config - Optional x402 client configuration
26
+ * @returns A fetch-compatible function that handles 402 payments
27
+ */
28
+ export declare function createX402Fetch(wallet: AgentWallet, config?: X402ClientConfig): typeof globalThis.fetch;
29
+ /**
30
+ * [MAX-ADDED] Wrap an existing fetch-like function to be x402-aware.
31
+ * Useful for wrapping custom HTTP clients or test mocks.
32
+ *
33
+ * @param fetchFn - The original fetch function to wrap
34
+ * @param wallet - AgentWallet instance
35
+ * @param config - Optional x402 client configuration
36
+ */
37
+ export declare function wrapWithX402(fetchFn: typeof globalThis.fetch, wallet: AgentWallet, config?: X402ClientConfig): typeof globalThis.fetch;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @module x402/multi-asset
3
+ * Multi-asset support utilities for the x402 payment client.
4
+ *
5
+ * Resolves asset names/symbols → token addresses via the global TokenRegistry.
6
+ * This extends x402 beyond USDC-only to support any token the 402 response requests.
7
+ *
8
+ * All address lookups use the TokenRegistry from src/tokens/registry.ts.
9
+ * Fallback: USDC_ADDRESSES from x402/types.ts.
10
+ */
11
+ import type { Address } from "viem";
12
+ /**
13
+ * Network string format used in x402: "chainName:chainId" (e.g. "base:8453").
14
+ * Returns the chainId portion as a number.
15
+ */
16
+ export declare function parseNetworkChainId(network: string): number | null;
17
+ /**
18
+ * Resolve an asset address in the context of a 402 response.
19
+ * The asset field may be:
20
+ * 1. A token symbol ("USDC", "WETH", etc.) → look up in registry by symbol
21
+ * 2. A hex contract address → look up in registry by address (must be registered)
22
+ *
23
+ * Only returns an address if the asset is known in the TokenRegistry.
24
+ * Unknown addresses are NOT accepted — they must be explicitly added or
25
+ * whitelisted via supportedAssets config.
26
+ *
27
+ * @param asset - Asset identifier from the 402 response
28
+ * @param network - Network string from the 402 response (e.g. "base:8453")
29
+ * @returns Resolved contract address, or null if not found in registry
30
+ */
31
+ export declare function resolveAssetAddress(asset: string, network: string): Address | null;
32
+ /**
33
+ * Get token decimals for a given asset+network pair.
34
+ * Used to correctly format amounts in x402 payments.
35
+ *
36
+ * @param asset - Asset address (hex) or symbol
37
+ * @param network - Network string (e.g. "base:8453")
38
+ * @returns Decimals, defaults to 6 for USDC-like stable, 18 for everything else
39
+ */
40
+ export declare function resolveAssetDecimals(asset: string, network: string): number;
41
+ /**
42
+ * Build a set of accepted payment assets for an x402 client, using the
43
+ * global registry to auto-populate known tokens per network.
44
+ *
45
+ * @param networks - List of network strings (e.g. ["base:8453", "arbitrum:42161"])
46
+ * @param symbols - Token symbols to include (e.g. ["USDC", "USDT", "WETH"])
47
+ * @returns Map from network string → array of token addresses
48
+ */
49
+ export declare function buildSupportedAssets(networks: string[], symbols?: string[]): Record<string, Address[]>;
50
+ /**
51
+ * Check if a given asset address is a known stablecoin (6 decimals) on the network.
52
+ */
53
+ export declare function isStablecoin(asset: string, network: string): boolean;
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @module x402/types
3
+ * x402 protocol type definitions and well-known asset constants.
4
+ *
5
+ * Implements the x402 HTTP payment protocol spec (coinbase/x402) for
6
+ * multi-chain USDC payments. Covers 10 mainnet chains: Base, Ethereum,
7
+ * Arbitrum, Polygon, Optimism, Avalanche, Unichain, Linea, Sonic, Worldchain.
8
+ *
9
+ * USDC addresses are sourced from Circle's official registry:
10
+ * https://developers.circle.com/stablecoins/usdc-contract-addresses
11
+ */
12
+ import type { Address, Hash } from "viem";
13
+ /** Resource information included in x402 responses */
14
+ export interface X402ResourceInfo {
15
+ url: string;
16
+ description: string;
17
+ mimeType: string;
18
+ }
19
+ /** Payment requirements returned in 402 response PAYMENT-REQUIRED header */
20
+ export interface X402PaymentRequirements {
21
+ scheme: string;
22
+ network: string;
23
+ asset: string;
24
+ amount: string;
25
+ payTo: string;
26
+ maxTimeoutSeconds: number;
27
+ extra: Record<string, unknown>;
28
+ }
29
+ /** Full 402 response payload (base64-decoded from PAYMENT-REQUIRED header) */
30
+ export interface X402PaymentRequired {
31
+ x402Version: number;
32
+ error?: string;
33
+ resource: X402ResourceInfo;
34
+ accepts: X402PaymentRequirements[];
35
+ extensions?: Record<string, unknown>;
36
+ }
37
+ /** Payment payload sent back with PAYMENT-SIGNATURE header */
38
+ export interface X402PaymentPayload {
39
+ x402Version: number;
40
+ resource: X402ResourceInfo;
41
+ accepted: X402PaymentRequirements;
42
+ payload: Record<string, unknown>;
43
+ extensions?: Record<string, unknown>;
44
+ }
45
+ /** Settlement response returned in PAYMENT-RESPONSE header */
46
+ export interface X402SettlementResponse {
47
+ success: boolean;
48
+ txHash?: string;
49
+ network?: string;
50
+ error?: string;
51
+ }
52
+ /** Per-service spending cap configuration */
53
+ export interface X402ServiceBudget {
54
+ /** Domain or URL pattern (e.g. "api.example.com" or "*") */
55
+ service: string;
56
+ /** Max spend per single request in token base units */
57
+ maxPerRequest: bigint;
58
+ /** Max total spend per day in token base units */
59
+ dailyLimit: bigint;
60
+ }
61
+ /** Transaction log entry for x402 payments */
62
+ export interface X402TransactionLog {
63
+ timestamp: number;
64
+ service: string;
65
+ url: string;
66
+ amount: bigint;
67
+ token: Address;
68
+ recipient: Address;
69
+ txHash: Hash;
70
+ network: string;
71
+ scheme: string;
72
+ success: boolean;
73
+ error?: string;
74
+ }
75
+ /** Configuration for the x402 client */
76
+ export interface X402ClientConfig {
77
+ /** Service-level budget controls */
78
+ serviceBudgets?: X402ServiceBudget[];
79
+ /** Global daily spending limit (token base units, default: unlimited) */
80
+ globalDailyLimit?: bigint;
81
+ /** Global per-request max (token base units, default: unlimited) */
82
+ globalPerRequestMax?: bigint;
83
+ /** Supported networks (default: ["base:8453"]) */
84
+ supportedNetworks?: string[];
85
+ /** Supported assets by network (default: USDC on Base) */
86
+ supportedAssets?: Record<string, Address[]>;
87
+ /** Max retries after payment (default: 1) */
88
+ maxRetries?: number;
89
+ /** Custom facilitator URL (optional, for verify/settle) */
90
+ facilitatorUrl?: string;
91
+ /** Whether to auto-pay 402 responses (default: true) */
92
+ autoPay?: boolean;
93
+ /** Callback before payment — return false to reject */
94
+ onBeforePayment?: (req: X402PaymentRequirements, url: string) => Promise<boolean> | boolean;
95
+ /** Callback after payment */
96
+ onPaymentComplete?: (log: X402TransactionLog) => void;
97
+ }
98
+ /**
99
+ * USDC contract addresses by network (chain-name:chainId format).
100
+ * Sources:
101
+ * - EVM chains: https://developers.circle.com/cctp/references/contract-addresses
102
+ * - Linea: https://linea.build/ecosystem/usdc
103
+ * - Unichain: https://docs.unichain.org/docs/technical-information/token-addresses
104
+ * - Sonic: https://docs.soniclabs.com/build/useful-addresses
105
+ * - Worldchain: https://docs.worldcoin.org/world-chain/addresses/usdc
106
+ */
107
+ export declare const USDC_ADDRESSES: Record<string, Address>;
108
+ /** Default supported networks (all mainnet chains) */
109
+ export declare const DEFAULT_SUPPORTED_NETWORKS: readonly ["base:8453", "ethereum:1", "arbitrum:42161", "polygon:137", "bsc:56", "optimism:10", "avalanche:43114", "unichain:130", "linea:59144", "sonic:146", "worldchain:480"];
@@ -0,0 +1,7 @@
1
+ import type { Memory } from "@elizaos/core";
2
+ export declare const EVM_ADDRESS_PATTERN: RegExp;
3
+ export declare function sanitizeWalletDisplayLabel(label: string): string;
4
+ export declare function readMemoryText(message: Memory): string;
5
+ export declare function messageAuthorizesEvmRecipient(message: Memory, options: Record<string, unknown> | undefined, recipient: string): boolean;
6
+ export declare function assertWalletFinancialActionAllowed(message: Memory, subaction: string | undefined): void;
7
+ export declare function assertEvmTransferRecipientAuthorized(message: Memory, options: Record<string, unknown> | undefined, recipient: string): void;
@@ -0,0 +1,23 @@
1
+ import type { ActionResult, ConfirmationDecision, HandlerCallback, IAgentRuntime, Memory } from "@elizaos/core";
2
+ import type { WalletRouterParams } from "../types/wallet-router.js";
3
+ /** Cache namespace for on-chain wallet writes (GHSA-rqm7-f4jc-84x3). */
4
+ export declare const WALLET_FINANCIAL_CONFIRM_ACTION = "WALLET_FINANCIAL";
5
+ export declare function requiresWalletFinancialConfirmation(params: Pick<WalletRouterParams, "subaction" | "dryRun">): boolean;
6
+ export declare function walletFinancialPendingKey(params: Pick<WalletRouterParams, "subaction" | "chain" | "toChain" | "amount" | "recipient" | "fromToken" | "toToken" | "slippageBps" | "op" | "governor" | "proposalId">): string;
7
+ export declare function walletFinancialPreview(params: Pick<WalletRouterParams, "subaction" | "chain" | "toChain" | "amount" | "recipient" | "fromToken" | "toToken" | "op">): string;
8
+ export type WalletFinancialGateResult = {
9
+ readonly proceed: true;
10
+ } | {
11
+ readonly proceed: false;
12
+ readonly decision: ConfirmationDecision;
13
+ readonly text: string;
14
+ };
15
+ export declare function gateWalletFinancialExecution(args: {
16
+ runtime: IAgentRuntime;
17
+ message: Memory;
18
+ params: WalletRouterParams;
19
+ callback?: HandlerCallback;
20
+ }): Promise<WalletFinancialGateResult>;
21
+ export declare function walletFinancialGateActionResult(gate: Extract<WalletFinancialGateResult, {
22
+ proceed: false;
23
+ }>): ActionResult;
@@ -0,0 +1,39 @@
1
+ import { type IAgentRuntime, Service } from "@elizaos/core";
2
+ import type { WalletChainHandler, WalletChainHandlerMetadata, WalletRouterFailure, WalletRouterParams, WalletRouterResult, WalletRouterSubaction } from "../types/wallet-router.js";
3
+ import type { WalletBackend } from "../wallet/backend.js";
4
+ import "../core-augmentation.js";
5
+ export declare const WALLET_BACKEND_SERVICE_TYPE: "wallet-backend";
6
+ /**
7
+ * Runtime service exposing {@link WalletBackend}. Retrieve via
8
+ * `runtime.getService("wallet-backend")`.
9
+ */
10
+ export declare class WalletBackendService extends Service {
11
+ static serviceType: "wallet-backend";
12
+ capabilityDescription: string;
13
+ private backend;
14
+ private backendLoadError;
15
+ private readonly handlers;
16
+ private readonly aliases;
17
+ static start(runtime: IAgentRuntime): Promise<WalletBackendService>;
18
+ getWalletBackend(): WalletBackend;
19
+ getWalletBackendOrNull(): WalletBackend | null;
20
+ registerChainHandler(handler: WalletChainHandler): void;
21
+ listChainHandlers(): WalletChainHandlerMetadata[];
22
+ listChainHandlersForSubaction(subaction: WalletRouterSubaction): WalletChainHandlerMetadata[];
23
+ getCapabilities(): {
24
+ readonly chains: readonly WalletChainHandlerMetadata[];
25
+ };
26
+ /**
27
+ * Resolve chain + required fields without signing. Used before out-of-band
28
+ * financial confirmation so invalid params fail fast (GHSA-rqm7-f4jc-84x3).
29
+ */
30
+ preflightWalletAction(params: WalletRouterParams): WalletRouterFailure | null;
31
+ routeWalletAction(params: WalletRouterParams): Promise<WalletRouterResult>;
32
+ stop(): Promise<void>;
33
+ private resolveHandler;
34
+ private validateRequiredParams;
35
+ private createContext;
36
+ private getWalletServices;
37
+ private getTokenDataService;
38
+ private toMetadata;
39
+ }
@@ -0,0 +1,130 @@
1
+ import type { IAgentRuntime, ITokenDataService, IWalletService } from "@elizaos/core";
2
+ import { z } from "zod";
3
+ import type { WalletBackend } from "../wallet/backend.js";
4
+ export declare const WALLET_ROUTER_SUBACTIONS: readonly ["transfer", "swap", "bridge", "gov"];
5
+ export type WalletRouterSubaction = (typeof WALLET_ROUTER_SUBACTIONS)[number];
6
+ export declare const WALLET_ROUTER_MODES: readonly ["prepare", "execute"];
7
+ export type WalletRouterMode = (typeof WALLET_ROUTER_MODES)[number];
8
+ export declare const WALLET_GOV_OPS: readonly ["propose", "vote", "queue", "execute"];
9
+ export type WalletGovOp = (typeof WALLET_GOV_OPS)[number];
10
+ export interface WalletRouterParams {
11
+ readonly subaction: WalletRouterSubaction;
12
+ readonly chain?: string;
13
+ readonly toChain?: string;
14
+ readonly fromToken?: string;
15
+ readonly toToken?: string;
16
+ readonly amount?: string;
17
+ readonly recipient?: string;
18
+ readonly slippageBps?: number;
19
+ readonly mode: WalletRouterMode;
20
+ readonly dryRun: boolean;
21
+ readonly op?: WalletGovOp;
22
+ readonly governor?: string;
23
+ readonly proposalId?: string;
24
+ readonly support?: number;
25
+ readonly targets?: readonly string[];
26
+ readonly values?: readonly string[];
27
+ readonly calldatas?: readonly string[];
28
+ readonly description?: string;
29
+ }
30
+ export interface WalletTokenMetadata {
31
+ readonly symbol: string;
32
+ readonly address: string;
33
+ readonly decimals?: number;
34
+ readonly native?: boolean;
35
+ }
36
+ export interface WalletSignerMetadata {
37
+ readonly required: boolean;
38
+ readonly kind: "evm" | "solana" | "off-chain";
39
+ readonly source?: string;
40
+ readonly description?: string;
41
+ }
42
+ export interface WalletDryRunMetadata {
43
+ readonly supported: boolean;
44
+ readonly supportedActions: readonly WalletRouterSubaction[];
45
+ readonly description?: string;
46
+ }
47
+ export interface WalletChainHandlerMetadata {
48
+ readonly chainId: string;
49
+ readonly chain: string;
50
+ readonly name: string;
51
+ readonly aliases: readonly string[];
52
+ readonly supportedActions: readonly WalletRouterSubaction[];
53
+ readonly tokens: readonly WalletTokenMetadata[];
54
+ readonly signer: WalletSignerMetadata;
55
+ readonly dryRun: WalletDryRunMetadata;
56
+ }
57
+ export interface WalletRouterContext {
58
+ readonly runtime: IAgentRuntime;
59
+ readonly walletBackend: WalletBackend | null;
60
+ readonly walletServices: readonly IWalletService[];
61
+ readonly tokenDataService: ITokenDataService | null;
62
+ }
63
+ export interface WalletRouterExecution {
64
+ readonly status: "prepared" | "submitted";
65
+ readonly chain: string;
66
+ readonly chainId: string;
67
+ readonly subaction: WalletRouterSubaction;
68
+ readonly dryRun: boolean;
69
+ readonly mode: WalletRouterMode;
70
+ readonly transactionHash?: string;
71
+ readonly signature?: string;
72
+ readonly from?: string;
73
+ readonly to?: string;
74
+ readonly amount?: string;
75
+ readonly fromToken?: string;
76
+ readonly toToken?: string;
77
+ readonly metadata?: Record<string, unknown>;
78
+ }
79
+ export interface WalletChainHandler extends WalletChainHandlerMetadata {
80
+ execute(params: WalletRouterParams, context: WalletRouterContext): Promise<WalletRouterExecution>;
81
+ }
82
+ export type WalletRouterErrorCode = "INVALID_PARAMS" | "UNSUPPORTED_CHAIN" | "UNSUPPORTED_SUBACTION" | "AMBIGUOUS_CHAIN" | "DRY_RUN_UNSUPPORTED" | "EXECUTION_FAILED";
83
+ export interface WalletRouterFailure {
84
+ readonly ok: false;
85
+ readonly error: WalletRouterErrorCode;
86
+ readonly detail: string;
87
+ readonly candidates?: readonly WalletChainHandlerMetadata[];
88
+ }
89
+ export interface WalletRouterSuccess {
90
+ readonly ok: true;
91
+ readonly result: WalletRouterExecution;
92
+ readonly handler: WalletChainHandlerMetadata;
93
+ }
94
+ export type WalletRouterResult = WalletRouterSuccess | WalletRouterFailure;
95
+ export declare const WalletRouterParamsSchema: z.ZodObject<{
96
+ subaction: z.ZodEnum<{
97
+ transfer: "transfer";
98
+ swap: "swap";
99
+ bridge: "bridge";
100
+ gov: "gov";
101
+ }>;
102
+ chain: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
103
+ toChain: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
104
+ fromToken: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
105
+ toToken: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
106
+ amount: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
107
+ recipient: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
108
+ slippageBps: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
109
+ mode: z.ZodDefault<z.ZodEnum<{
110
+ prepare: "prepare";
111
+ execute: "execute";
112
+ }>>;
113
+ dryRun: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
114
+ op: z.ZodOptional<z.ZodEnum<{
115
+ execute: "execute";
116
+ propose: "propose";
117
+ vote: "vote";
118
+ queue: "queue";
119
+ }>>;
120
+ governor: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
121
+ proposalId: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
122
+ support: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
123
+ targets: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
124
+ values: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
125
+ calldatas: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodString>>>;
126
+ description: z.ZodPipe<z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>, z.ZodTransform<string | undefined, string | number | null | undefined>>;
127
+ }, z.core.$strip>;
128
+ export declare function parseWalletRouterParams(input: unknown): WalletRouterParams;
129
+ export declare function isWalletRouterSubaction(value: unknown): value is WalletRouterSubaction;
130
+ export declare function normalizeWalletChainKey(value: string | number): string;