@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
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type {
3
2
  BaseQuoteParams,
4
3
  DefiHistoryPriceParams,
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type { TimeInterval } from "./common";
3
2
 
4
3
  // Network Types
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type { TimeInterval } from "./common";
3
2
 
4
3
  // Pair Trades Types
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type { BirdeyeSupportedChain } from "../shared";
3
2
 
4
3
  // Search Types
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type { TimeInterval, TokenTradeData } from "./common";
3
2
 
4
3
  // Token Trades Types
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  // Trader Gainers Losers Types
3
2
  export interface GainersLosersParams {
4
3
  type: "yesterday" | "today" | "1W";
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  // Wallet Portfolio Types
3
2
  export interface WalletPortfolioParams {
4
3
  wallet: string;
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type { BIRDEYE_SUPPORTED_CHAINS } from "../utils";
3
2
 
4
3
  // Types
@@ -23,16 +22,6 @@ export interface ContractAddress extends BaseAddress {
23
22
  type: "contract";
24
23
  }
25
24
 
26
- /**
27
- * Represents a type that can be one of four values: "solana", "base", "ethereum", or "L1".
28
- */
29
- //export type TChain = 'solana' | 'base' | 'ethereum' | 'L1';
30
- /**
31
- * Type representing different data providers.
32
- * Possible values are "birdeye" and "coinmarketcap".
33
- */
34
- //export type TDataProvider = 'birdeye' | 'coinmarketcap';
35
-
36
25
  // Shape of what's stored in the cache
37
26
  export interface CacheWrapper<T> {
38
27
  data: T;
@@ -0,0 +1,69 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import {
3
+ extractLimit,
4
+ formatPercentChange,
5
+ formatPrice,
6
+ formatValue,
7
+ shortenAddress,
8
+ } from "./utils.js";
9
+
10
+ /**
11
+ * Birdeye analytics formatting + intent extraction. These render financial
12
+ * figures shown to the user and parse the result limit from free text, so the
13
+ * suffix thresholds, sign handling, and clamping are pinned.
14
+ */
15
+
16
+ describe("formatValue", () => {
17
+ it("scales to K/M/B with a $ prefix, N/A for falsy", () => {
18
+ expect(formatValue(undefined)).toBe("N/A");
19
+ expect(formatValue(0)).toBe("N/A");
20
+ expect(formatValue(500)).toBe("$500.00");
21
+ expect(formatValue(1_500)).toBe("$1.50K");
22
+ expect(formatValue(2_500_000)).toBe("$2.50M");
23
+ expect(formatValue(3_000_000_000)).toBe("$3.00B");
24
+ });
25
+ });
26
+
27
+ describe("formatPercentChange", () => {
28
+ it("uses ↑/↓ and absolute magnitude", () => {
29
+ expect(formatPercentChange(undefined)).toBe("N/A");
30
+ expect(formatPercentChange(5)).toBe("↑ 5.00%");
31
+ expect(formatPercentChange(-3.2)).toBe("↓ 3.20%");
32
+ expect(formatPercentChange(0)).toBe("↑ 0.00%");
33
+ });
34
+ });
35
+
36
+ describe("shortenAddress", () => {
37
+ it("keeps short strings, abbreviates long ones", () => {
38
+ expect(shortenAddress(undefined)).toBe("Unknown");
39
+ expect(shortenAddress("0x1234")).toBe("0x1234");
40
+ expect(shortenAddress("0x1234567890abcdef")).toBe("0x1234...cdef");
41
+ });
42
+ });
43
+
44
+ describe("formatPrice", () => {
45
+ it("uses exponential below 0.01, two decimals otherwise", () => {
46
+ expect(formatPrice(undefined)).toBe("N/A");
47
+ expect(formatPrice(0)).toBe("N/A");
48
+ expect(formatPrice(0.005)).toBe("5.00e-3");
49
+ expect(formatPrice(12.5)).toBe("12.50");
50
+ });
51
+ });
52
+
53
+ describe("extractLimit", () => {
54
+ it("reads explicit limits and clamps to 1..100", () => {
55
+ expect(extractLimit("show 25 tokens")).toBe(25);
56
+ expect(extractLimit("show 500")).toBe(100);
57
+ expect(extractLimit("show 0")).toBe(1);
58
+ });
59
+
60
+ it("falls back to semantic and contextual hints", () => {
61
+ expect(extractLimit("give me everything")).toBe(100);
62
+ expect(extractLimit("quick summary")).toBe(5);
63
+ expect(extractLimit("detailed report")).toBe(50);
64
+ expect(extractLimit("recent trades")).toBe(10);
65
+ expect(extractLimit("analyze the trend")).toBe(24);
66
+ expect(extractLimit("historical data")).toBe(50);
67
+ expect(extractLimit("hello")).toBe(10);
68
+ });
69
+ });
@@ -1,5 +1,5 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import { logger } from "@elizaos/core";
2
+ import { sanitizeWalletDisplayLabel } from "../../security/wallet-context-safety.js";
3
3
  import type { BirdeyeApiParams } from "./types/api/common";
4
4
  import type {
5
5
  TokenMarketSearchResponse,
@@ -176,7 +176,7 @@ export const extractChain = (
176
176
  };
177
177
 
178
178
  export const extractAddresses = (text: string): BaseAddress[] => {
179
- if (!text?.match) return [];
179
+ if (!text.match) return [];
180
180
  const addresses: BaseAddress[] = [];
181
181
 
182
182
  // Sui addresses (0x followed by 64 hex chars). Extract first so the EVM
@@ -214,7 +214,7 @@ export const extractAddresses = (text: string): BaseAddress[] => {
214
214
  // Solana addresses (base58 strings)
215
215
  const solAddresses = Array.from(text.matchAll(/[1-9A-HJ-NP-Za-km-z]{32,44}/g))
216
216
  .filter((match) => {
217
- const start = match.index ?? 0;
217
+ const start = match.index;
218
218
  const end = start + match[0].length;
219
219
  return (
220
220
  !/[A-Za-z0-9]/.test(text[start - 1] ?? "") &&
@@ -443,9 +443,9 @@ export async function makeApiRequest<T>(
443
443
  headers: {
444
444
  "X-API-KEY": apiKey,
445
445
  "x-chain": chain,
446
- ...(body && { "Content-Type": "application/json" }),
446
+ ...(body !== undefined ? { "Content-Type": "application/json" } : {}),
447
447
  },
448
- ...(body && { body: JSON.stringify(body) }),
448
+ ...(body !== undefined ? { body: JSON.stringify(body) } : {}),
449
449
  });
450
450
 
451
451
  if (!response.ok) {
@@ -510,8 +510,11 @@ export const formatTokenInfo = (
510
510
  ? `${Math.floor((Date.now() - new Date(token.creation_time).getTime()) / (1000 * 60 * 60 * 24))}d`
511
511
  : "N/A";
512
512
 
513
+ const safeName = sanitizeWalletDisplayLabel(token.name || "unknown");
514
+ const safeSymbol = sanitizeWalletDisplayLabel(token.symbol || "unknown");
515
+
513
516
  let output =
514
- `🪙 ${token.name} @ ${token.symbol}\n` +
517
+ `🪙 ${safeName} @ ${safeSymbol}\n` +
515
518
  `💰 USD: $${priceFormatted} (${priceChange})\n` +
516
519
  `💎 FDV: ${fdv}\n` +
517
520
  `💦 MCap: ${token.market_cap ? `$${(token.market_cap / 1_000_000).toFixed(2)}M` : "N/A"}\n` +
@@ -552,7 +555,7 @@ export const extractSymbols = (
552
555
  // strict mode will only extract symbols that are clearly formatted as a symbol using $SOL format
553
556
  mode: "strict" | "loose" = "loose",
554
557
  ): string[] => {
555
- if (!text?.matchAll) return [];
558
+ if (!text.matchAll) return [];
556
559
  const symbols = new Set<string>();
557
560
 
558
561
  // Match patterns
@@ -681,7 +684,7 @@ export const waitFor = (ms: number) =>
681
684
  new Promise((resolve) => setTimeout(resolve, ms));
682
685
 
683
686
  export const convertToStringParams = (
684
- params: BirdeyeApiParams,
687
+ params: BirdeyeApiParams | Record<string, unknown>,
685
688
  ): Record<string, string> => {
686
689
  const result: Record<string, string> = {};
687
690
  for (const [key, value] of Object.entries(params || {})) {
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type { IAgentRuntime, SearchCategoryRegistration } from "@elizaos/core";
3
2
 
4
3
  export const DEXSCREENER_SEARCH_CATEGORY: SearchCategoryRegistration = {
@@ -1,5 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
-
3
1
  import {
4
2
  cloudServiceApisBaseUrl,
5
3
  toRuntimeSettings,
@@ -84,10 +82,7 @@ export class DexScreenerService extends Service {
84
82
  return service;
85
83
  }
86
84
 
87
- async stop(): Promise<void> {
88
- // Cleanup if needed
89
- console.log("DexScreener service stopped");
90
- }
85
+ async stop(): Promise<void> {}
91
86
 
92
87
  private async get<T>(
93
88
  path: string,
@@ -273,15 +268,15 @@ export class DexScreenerService extends Service {
273
268
  pairs.sort((a, b) => {
274
269
  switch (params.sortBy) {
275
270
  case "volume":
276
- return (b.volume?.h24 || 0) - (a.volume?.h24 || 0);
271
+ return (b.volume.h24 || 0) - (a.volume.h24 || 0);
277
272
  case "liquidity":
278
273
  return (b.liquidity?.usd || 0) - (a.liquidity?.usd || 0);
279
274
  case "priceChange":
280
- return (b.priceChange?.h24 || 0) - (a.priceChange?.h24 || 0);
275
+ return (b.priceChange.h24 || 0) - (a.priceChange.h24 || 0);
281
276
  case "txns":
282
277
  return (
283
- (b.txns?.h24.buys + b.txns?.h24.sells || 0) -
284
- (a.txns?.h24.buys + a.txns?.h24.sells || 0)
278
+ (b.txns.h24.buys + b.txns.h24.sells || 0) -
279
+ (a.txns.h24.buys + a.txns.h24.sells || 0)
285
280
  );
286
281
  default:
287
282
  return 0;
@@ -328,7 +323,7 @@ export class DexScreenerService extends Service {
328
323
  // Filter by chain if specified
329
324
  const filteredProfiles = params.chain
330
325
  ? profiles.filter(
331
- (p) => p.chainId?.toLowerCase() === params.chain?.toLowerCase(),
326
+ (p) => p.chainId.toLowerCase() === params.chain?.toLowerCase(),
332
327
  )
333
328
  : profiles;
334
329
 
@@ -392,7 +387,7 @@ export class DexScreenerService extends Service {
392
387
  : [responseData];
393
388
 
394
389
  const profile = profiles.find(
395
- (p) => p.tokenAddress?.toLowerCase() === tokenAddress.toLowerCase(),
390
+ (p) => p.tokenAddress.toLowerCase() === tokenAddress.toLowerCase(),
396
391
  );
397
392
 
398
393
  if (!profile) {
@@ -1,4 +1,3 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  // DexScreener API Types
3
2
 
4
3
  export interface DexScreenerTokenInfo {
@@ -1,5 +1,4 @@
1
- // @ts-nocheck legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
- import type { Plugin } from "@elizaos/core";
1
+ import type { IAgentRuntime, Plugin } from "@elizaos/core";
3
2
  // Kamino Protocol Plugin
4
3
  import { kaminoPlugin } from "./kamino";
5
4
  // Steer Finance Plugin
@@ -34,6 +33,10 @@ export const lpinfoPlugin: Plugin = {
34
33
  ],
35
34
  actions: [...(steerPlugin.actions || []), ...(kaminoPlugin.actions || [])],
36
35
  services: [...(steerPlugin.services || []), ...(kaminoPlugin.services || [])],
36
+ async dispose(runtime: IAgentRuntime) {
37
+ await steerPlugin.dispose?.(runtime);
38
+ await kaminoPlugin.dispose?.(runtime);
39
+ },
37
40
  };
38
41
 
39
42
  export default lpinfoPlugin;
@@ -91,9 +91,9 @@ The plugin includes comprehensive error handling for:
91
91
  - API rate limits
92
92
  - Market data unavailability
93
93
 
94
- ## Future Enhancements
94
+ ## Enhancement Backlog
95
95
 
96
- Potential future features:
96
+ Potential feature additions:
97
97
 
98
98
  - Position management actions (deposit, withdraw, borrow, repay)
99
99
  - Yield optimization recommendations
@@ -1,5 +1,4 @@
1
- // @ts-nocheck legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
- import type { Plugin } from "@elizaos/core";
1
+ import type { IAgentRuntime, Plugin } from "@elizaos/core";
3
2
  import { kaminoLiquidityProvider } from "./providers/kaminoLiquidityProvider";
4
3
  import { kaminoPoolProvider } from "./providers/kaminoPoolProvider";
5
4
  // Providers
@@ -19,6 +18,14 @@ export const kaminoPlugin: Plugin = {
19
18
  providers: [kaminoProvider, kaminoLiquidityProvider, kaminoPoolProvider],
20
19
  actions: [],
21
20
  services: [KaminoService, KaminoLiquidityService],
21
+ async dispose(runtime: IAgentRuntime) {
22
+ const kamino = runtime.getService<KaminoService>(KaminoService.serviceType);
23
+ await kamino?.stop();
24
+ const liquidity = runtime.getService<KaminoLiquidityService>(
25
+ KaminoLiquidityService.serviceType,
26
+ );
27
+ await liquidity?.stop();
28
+ },
22
29
  };
23
30
 
24
31
  export default kaminoPlugin;
@@ -1,28 +1,12 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type { IAgentRuntime, Memory, Provider, State } from "@elizaos/core";
3
2
  import { ModelType } from "@elizaos/core";
4
- import type { KaminoLiquidityService } from "../services/kaminoLiquidityService";
3
+ import type {
4
+ KaminoLiquidityService,
5
+ KaminoStrategy,
6
+ } from "../services/kaminoLiquidityService";
5
7
 
6
8
  const KAMINO_LIQUIDITY_TEXT_LIMIT = 4000;
7
9
 
8
- // Import the KaminoStrategy type from the service
9
- interface KaminoStrategy {
10
- address: string;
11
- dataSize: number;
12
- lamports: number;
13
- owner: string;
14
- strategyType: string;
15
- estimatedTvl: number;
16
- volume24h: number;
17
- apy: number;
18
- tokenA: string;
19
- tokenB: string;
20
- feeTier: string;
21
- rebalancing: string;
22
- lastRebalance: string;
23
- positions: unknown[];
24
- }
25
-
26
10
  function asPromptRecord(value: unknown): Record<string, unknown> {
27
11
  return value && typeof value === "object"
28
12
  ? (value as Record<string, unknown>)
@@ -119,8 +103,6 @@ export const kaminoLiquidityProvider: Provider = {
119
103
  cacheScope: "turn",
120
104
  roleGate: { minRole: "USER" },
121
105
  get: async (runtime: IAgentRuntime, message: Memory, _state: State) => {
122
- console.log("KAMINO_LIQUIDITY provider called");
123
-
124
106
  let liquidityInfo = "";
125
107
 
126
108
  try {
@@ -141,8 +123,6 @@ export const kaminoLiquidityProvider: Provider = {
141
123
  liquidityInfo += "❌ Kamino liquidity service not available.\n";
142
124
  } else {
143
125
  if (tokenIdentifier) {
144
- console.log(`Token identifier found: ${tokenIdentifier}`);
145
-
146
126
  liquidityInfo += `=== KAMINO LIQUIDITY POOL STATS ===\n\n`;
147
127
  liquidityInfo += `Token: ${tokenIdentifier}\n\n`;
148
128
 
@@ -217,7 +197,7 @@ export const kaminoLiquidityProvider: Provider = {
217
197
 
218
198
  return {
219
199
  data,
220
- values: {} as Record<string, unknown>,
200
+ values: {},
221
201
  text,
222
202
  };
223
203
  },
@@ -375,7 +355,7 @@ async function generateEnhancedKaminoLiquidityReport(
375
355
  const marketStats = await data.kaminoLiquidityService.getMarketStatistics();
376
356
 
377
357
  // Create a focused prompt for the LLM
378
- const liquidityPrompt = `You are a professional DeFi analyst specializing in Kamino Finance liquidity protocols. Generate a comprehensive, well-crafted analysis report for the token ${data.tokenIdentifier}.
358
+ const liquidityPrompt = `Generate a comprehensive liquidity analysis report for token ${data.tokenIdentifier} on Kamino Finance.
379
359
 
380
360
  TOKEN INFORMATION:
381
361
  ${formatTokenInfoForPrompt(data.tokenInfo)}
@@ -1,9 +1,12 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
1
  import type { IAgentRuntime, Memory, Provider, State } from "@elizaos/core";
3
2
  import { ModelType } from "@elizaos/core";
4
- import type { KaminoLiquidityService } from "../services/kaminoLiquidityService";
3
+ import type {
4
+ KaminoLiquidityService,
5
+ KaminoPoolByAddressResult,
6
+ } from "../services/kaminoLiquidityService";
5
7
 
6
8
  const KAMINO_POOL_TEXT_LIMIT = 4000;
9
+ type KaminoPoolReportData = NonNullable<KaminoPoolByAddressResult>;
7
10
 
8
11
  /**
9
12
  * Kamino Pool-Specific Provider
@@ -22,8 +25,6 @@ export const kaminoPoolProvider: Provider = {
22
25
  cacheScope: "turn",
23
26
  roleGate: { minRole: "USER" },
24
27
  get: async (runtime: IAgentRuntime, message: Memory, _state: State) => {
25
- console.log("KAMINO_POOL provider called");
26
-
27
28
  let poolInfo = "";
28
29
 
29
30
  try {
@@ -44,8 +45,6 @@ export const kaminoPoolProvider: Provider = {
44
45
  poolInfo += "❌ Kamino liquidity service not available.\n";
45
46
  } else {
46
47
  if (poolAddress) {
47
- console.log(`Pool address found: ${poolAddress}`);
48
-
49
48
  poolInfo += `=== KAMINO POOL ANALYSIS ===\n\n`;
50
49
  poolInfo += `🔍 Pool Address: ${poolAddress}\n\n`;
51
50
 
@@ -107,7 +106,7 @@ export const kaminoPoolProvider: Provider = {
107
106
 
108
107
  return {
109
108
  data,
110
- values: {} as Record<string, unknown>,
109
+ values: {},
111
110
  text,
112
111
  };
113
112
  },
@@ -221,7 +220,7 @@ function formatPromptValue(value: unknown): string {
221
220
  */
222
221
  async function generatePoolReport(
223
222
  runtime: IAgentRuntime,
224
- poolData: unknown,
223
+ poolData: KaminoPoolReportData,
225
224
  _kaminoLiquidityService: KaminoLiquidityService,
226
225
  ): Promise<string> {
227
226
  let report = "";
@@ -232,7 +231,7 @@ async function generatePoolReport(
232
231
  report += ` 📍 Address: ${poolData.address}\n`;
233
232
  report += ` 📅 Last Updated: ${new Date(poolData.timestamp).toLocaleString()}\n\n`;
234
233
 
235
- if (poolData.strategy) {
234
+ if ("strategy" in poolData) {
236
235
  const strategy = poolData.strategy;
237
236
 
238
237
  report += `📊 STRATEGY DETAILS:\n`;
@@ -284,7 +283,7 @@ async function generatePoolReport(
284
283
  }
285
284
 
286
285
  // Metrics summary
287
- if (poolData.metrics) {
286
+ if ("metrics" in poolData) {
288
287
  const metrics = poolData.metrics;
289
288
  report += `📈 PERFORMANCE METRICS:\n`;
290
289
  report += ` 💰 Total Value Locked: $${metrics.totalValueLocked.toLocaleString()}\n`;
@@ -323,11 +322,11 @@ async function generatePoolReport(
323
322
  */
324
323
  async function generateEnhancedPoolAnalysis(
325
324
  runtime: IAgentRuntime,
326
- poolData: unknown,
325
+ poolData: KaminoPoolReportData,
327
326
  ): Promise<string> {
328
327
  try {
329
328
  // Create a focused prompt for the LLM
330
- const analysisPrompt = `You are a professional DeFi analyst specializing in Kamino Finance liquidity pools. Generate a concise, insightful analysis for the pool with address ${poolData.address}.
329
+ const analysisPrompt = `Generate a concise pool analysis for Kamino Finance pool at address ${poolData.address}.
331
330
 
332
331
  POOL DATA:
333
332
  ${formatPoolDataForPrompt(poolData)}