@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,5 +1,10 @@
1
- // @ts-nocheck — legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
- import type { IAgentRuntime, Memory, Provider, State } from "@elizaos/core";
1
+ import type {
2
+ Entity,
3
+ IAgentRuntime,
4
+ Memory,
5
+ Provider,
6
+ State,
7
+ } from "@elizaos/core";
3
8
  import { ModelType } from "@elizaos/core";
4
9
  import type { KaminoService } from "../services/kaminoService";
5
10
 
@@ -19,6 +24,54 @@ type AccountLike = {
19
24
  }>;
20
25
  };
21
26
 
27
+ type Metawallets = NonNullable<AccountLike["metawallets"]>;
28
+
29
+ function isRecord(value: unknown): value is Record<string, unknown> {
30
+ return value !== null && typeof value === "object";
31
+ }
32
+
33
+ function isMetawallets(value: unknown): value is Metawallets {
34
+ return (
35
+ Array.isArray(value) &&
36
+ value.every(
37
+ (metawallet) =>
38
+ isRecord(metawallet) &&
39
+ (metawallet.keypairs === undefined || isRecord(metawallet.keypairs)),
40
+ )
41
+ );
42
+ }
43
+
44
+ async function getAccountFromMessage(
45
+ runtime: IAgentRuntime,
46
+ message: Memory,
47
+ ): Promise<unknown | null> {
48
+ const entity = await runtime.getEntityById(message.entityId);
49
+ if (!entity) {
50
+ return null;
51
+ }
52
+
53
+ return buildAccountLike(entity);
54
+ }
55
+
56
+ function buildAccountLike(entity: Entity): AccountLike {
57
+ const metadata = isRecord(entity.metadata) ? entity.metadata : {};
58
+ const account = isRecord(metadata.account) ? metadata.account : {};
59
+ const firstName = entity.names[0];
60
+
61
+ return {
62
+ ...metadata,
63
+ ...account,
64
+ id: entity.id,
65
+ username: account.username ?? metadata.username,
66
+ name: account.name ?? metadata.name ?? firstName,
67
+ metawallets: isMetawallets(account.metawallets)
68
+ ? account.metawallets
69
+ : isMetawallets(metadata.metawallets)
70
+ ? metadata.metawallets
71
+ : undefined,
72
+ };
73
+ }
74
+
22
75
  function getSolanaWalletAddresses(account: unknown): string[] {
23
76
  const walletAddresses: string[] = [];
24
77
  const accountData = account as AccountLike;
@@ -28,7 +81,7 @@ function getSolanaWalletAddresses(account: unknown): string[] {
28
81
  }
29
82
 
30
83
  for (const mw of accountData.metawallets) {
31
- if (!mw?.keypairs) {
84
+ if (!mw.keypairs) {
32
85
  continue;
33
86
  }
34
87
 
@@ -95,7 +148,7 @@ export const kaminoProvider: Provider = {
95
148
  description:
96
149
  "Provides information about Kamino lending protocol positions, market data, and available lending/borrowing opportunities",
97
150
  descriptionCompressed:
98
- "provide information Kamino lend protocol position, market data, available lending/borrow opportunity",
151
+ "Kamino lending positions, markets, lend/borrow opportunities",
99
152
  dynamic: true,
100
153
  contexts: ["finance", "crypto", "wallet"],
101
154
  contextGate: { anyOf: ["finance", "crypto", "wallet"] },
@@ -103,8 +156,6 @@ export const kaminoProvider: Provider = {
103
156
  cacheScope: "turn",
104
157
  roleGate: { minRole: "OWNER" },
105
158
  get: async (runtime: IAgentRuntime, message: Memory, _state: State) => {
106
- console.log("KAMINO_LENDING provider called");
107
-
108
159
  let kaminoInfo = "";
109
160
 
110
161
  try {
@@ -113,31 +164,25 @@ export const kaminoProvider: Provider = {
113
164
  if (isDM) {
114
165
  const account = await getAccountFromMessage(runtime, message);
115
166
  if (!account) {
116
- console.log("No account found for user");
117
167
  return {
118
168
  data: {},
119
- values: {} as Record<string, unknown>,
169
+ values: {},
120
170
  text: "No account found for this user.",
121
171
  };
122
172
  }
123
173
 
124
- console.log("Account found, getting Kamino service...");
125
-
126
174
  // Get Kamino service with proper type casting
127
175
  const kaminoService = runtime.getService(
128
176
  "KAMINO_SERVICE",
129
177
  ) as KaminoService;
130
178
  if (!kaminoService) {
131
- console.log("Kamino service not available");
132
179
  return {
133
180
  data: {},
134
- values: {} as Record<string, unknown>,
181
+ values: {},
135
182
  text: "Kamino service not available.",
136
183
  };
137
184
  }
138
185
 
139
- console.log("Kamino service found, generating report...");
140
-
141
186
  kaminoInfo += `=== KAMINO LENDING PROTOCOL REPORT ===\n\n`;
142
187
 
143
188
  // Get user's Kamino positions
@@ -182,7 +227,7 @@ export const kaminoProvider: Provider = {
182
227
 
183
228
  return {
184
229
  data,
185
- values: {} as Record<string, unknown>,
230
+ values: {},
186
231
  text,
187
232
  };
188
233
  },
@@ -214,10 +259,8 @@ async function getUserKaminoPositions(
214
259
  // Get real positions from Kamino service
215
260
  const positions = await kaminoService.getUserPositions(walletAddress);
216
261
 
217
- if (positions.error) {
262
+ if ("error" in positions) {
218
263
  positionsInfo += ` ❌ Error: ${positions.error}\n\n`;
219
- } else if (positions.message) {
220
- positionsInfo += ` ℹ️ ${positions.message}\n\n`;
221
264
  } else if (
222
265
  positions.lending.length === 0 &&
223
266
  positions.borrowing.length === 0
@@ -314,12 +357,12 @@ async function getAvailableKaminoReserves(
314
357
  reservesInfo += "💰 TOP LENDING OPPORTUNITIES:\n\n";
315
358
 
316
359
  for (const reserve of topLendingReserves) {
317
- reservesInfo += `🔸 ${reserve.symbol || "Unknown"}\n`;
318
- reservesInfo += ` Supply APY: ${reserve.supplyApy?.toFixed(2) || "N/A"}%\n`;
319
- reservesInfo += ` Borrow APY: ${reserve.borrowApy?.toFixed(2) || "N/A"}%\n`;
320
- reservesInfo += ` Total Supply: $${reserve.totalSupply?.toLocaleString() || "N/A"}\n`;
321
- reservesInfo += ` Total Borrow: $${reserve.totalBorrow?.toLocaleString() || "N/A"}\n`;
322
- reservesInfo += ` Utilization: ${(reserve.utilization * 100)?.toFixed(2) || "N/A"}%\n`;
360
+ reservesInfo += `🔸 ${reserve.marketName || reserve.market || "Unknown"}\n`;
361
+ reservesInfo += ` Supply APY: ${reserve.supplyApy.toFixed(2) || "N/A"}%\n`;
362
+ reservesInfo += ` Borrow APY: ${reserve.borrowApy.toFixed(2) || "N/A"}%\n`;
363
+ reservesInfo += ` Total Supply: $${reserve.totalSupply.toLocaleString() || "N/A"}\n`;
364
+ reservesInfo += ` Total Borrow: $${reserve.totalBorrow.toLocaleString() || "N/A"}\n`;
365
+ reservesInfo += ` Utilization: ${(reserve.utilization * 100).toFixed(2) || "N/A"}%\n`;
323
366
  reservesInfo += ` Market: ${reserve.marketName || "Unknown"}\n\n`;
324
367
  }
325
368
  }
@@ -355,22 +398,23 @@ async function getKaminoMarketOverview(
355
398
  }
356
399
 
357
400
  marketInfo += `📊 Total Markets: ${overview.totalMarkets}\n`;
358
- marketInfo += `💰 Total TVL: $${overview.totalTvl?.toLocaleString() || "N/A"}\n`;
359
- marketInfo += `💳 Total Borrowed: $${overview.totalBorrowed?.toLocaleString() || "N/A"}\n\n`;
401
+ marketInfo += `💰 Total TVL: $${overview.totalTvl.toLocaleString() || "N/A"}\n`;
402
+ marketInfo += `💳 Total Borrowed: $${overview.totalBorrowed.toLocaleString() || "N/A"}\n\n`;
360
403
 
361
404
  // Show top markets by TVL
362
405
  if (overview.markets && overview.markets.length > 0) {
363
406
  marketInfo += "🏆 TOP MARKETS BY TVL:\n\n";
364
407
 
365
408
  const topMarkets = overview.markets
366
- .sort((a, b) => (b.tvl || 0) - (a.tvl || 0))
409
+ .sort((a, b) => (b.lamports || 0) - (a.lamports || 0))
367
410
  .slice(0, 3);
368
411
 
369
412
  for (const market of topMarkets) {
370
- marketInfo += `🔸 ${market.name || "Unknown Market"}\n`;
371
- marketInfo += ` TVL: $${market.tvl?.toLocaleString() || "N/A"}\n`;
372
- marketInfo += ` Borrowed: $${market.borrowed?.toLocaleString() || "N/A"}\n`;
373
- marketInfo += ` Utilization: ${(market.utilization * 100)?.toFixed(2) || "N/A"}%\n\n`;
413
+ marketInfo += `🔸 ${market.marketName || "Unknown Market"}\n`;
414
+ marketInfo += ` Address: ${market.address}\n`;
415
+ marketInfo += ` Data Size: ${market.dataSize.toLocaleString()} bytes\n`;
416
+ marketInfo += ` Lamports: ${market.lamports.toLocaleString()}\n`;
417
+ marketInfo += ` Owner: ${market.owner}\n\n`;
374
418
  }
375
419
  }
376
420
  } catch (error) {
@@ -440,7 +484,7 @@ async function generateEnhancedKaminoLendingReport(
440
484
  ): Promise<string> {
441
485
  try {
442
486
  // Create a focused prompt for the LLM
443
- const lendingPrompt = `You are a professional DeFi analyst specializing in Kamino Finance lending protocols. Generate a comprehensive, well-crafted lending analysis report for the user.
487
+ const lendingPrompt = `Generate a comprehensive lending analysis report for Kamino Finance lending.
444
488
 
445
489
  USER ACCOUNT DATA:
446
490
  ${formatAccountForPrompt(data.account)}
@@ -1,19 +1,19 @@
1
- // @ts-nocheck legacy code from absorbed plugins (lp-manager, lpinfo, dexscreener, defi-news, birdeye); strict types pending cleanup
2
- import type { AgentRuntime } from "@elizaos/core";
1
+ import type { IAgentRuntime } from "@elizaos/core";
3
2
  import { logger, Service } from "@elizaos/core";
4
3
 
5
4
  // Kamino API constants
6
5
  const KAMINO_API_BASE_URL = "https://api.kamino.finance";
6
+ const KAMINO_LIQUIDITY_PROGRAM_ID = "kamino-rest-api";
7
7
 
8
8
  // Known token addresses for reference
9
- const KNOWN_TOKENS = {
9
+ const KNOWN_TOKENS: Record<string, string> = {
10
10
  HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC: "AI16Z Token",
11
11
  ai16z: "AI16Z Token (Symbol)",
12
12
  "4WfUvajjYTrq7KRdToJBkoHQ6bSt7NyBeLhP9LKwtFKh": "Kamino Strategy",
13
13
  };
14
14
 
15
15
  // Interfaces for type safety
16
- interface KaminoStrategy {
16
+ export interface KaminoStrategy {
17
17
  address: string;
18
18
  strategyType: string;
19
19
  estimatedTvl: number;
@@ -34,14 +34,14 @@ interface KaminoStrategy {
34
34
  };
35
35
  }
36
36
 
37
- interface KaminoPosition {
37
+ export interface KaminoPosition {
38
38
  type: string;
39
39
  range: string;
40
40
  liquidity: number;
41
41
  feesEarned: number;
42
42
  }
43
43
 
44
- interface TokenLiquidityStats {
44
+ export interface TokenLiquidityStats {
45
45
  tokenIdentifier: string;
46
46
  normalizedToken: string;
47
47
  tokenName: string;
@@ -53,7 +53,7 @@ interface TokenLiquidityStats {
53
53
  poolCount: number;
54
54
  }
55
55
 
56
- interface TokenInfo {
56
+ export interface TokenInfo {
57
57
  name: string;
58
58
  symbol: string;
59
59
  address: string;
@@ -124,7 +124,7 @@ interface KaminoMarketStatistics {
124
124
  };
125
125
  }
126
126
 
127
- interface KaminoPoolInfoWithStrategy {
127
+ export interface KaminoPoolInfoWithStrategy {
128
128
  address: string;
129
129
  strategy: KaminoStrategy;
130
130
  tokenInfo: TokenInfo | null;
@@ -140,20 +140,22 @@ interface KaminoPoolInfoWithStrategy {
140
140
  };
141
141
  }
142
142
 
143
- interface KaminoPoolInfoTokenFallback {
143
+ export interface KaminoPoolInfoTokenFallback {
144
144
  address: string;
145
145
  tokenInfo: TokenInfo;
146
146
  timestamp: string;
147
147
  note: string;
148
148
  }
149
149
 
150
- type KaminoPoolByAddressResult =
150
+ export type KaminoPoolByAddressResult =
151
151
  | KaminoPoolInfoWithStrategy
152
152
  | KaminoPoolInfoTokenFallback
153
153
  | null;
154
154
 
155
155
  interface KaminoLiquidityConnectionTest {
156
156
  apiBaseUrl: string;
157
+ programId: string;
158
+ rpcEndpoint: string;
157
159
  connectionTest: boolean;
158
160
  stakingYieldsTest: boolean;
159
161
  limoTradesTest: boolean;
@@ -176,6 +178,19 @@ interface LimoTrade {
176
178
  order: string;
177
179
  }
178
180
 
181
+ function getStringSetting(
182
+ runtime: IAgentRuntime | undefined,
183
+ key: string,
184
+ fallback: string,
185
+ ): string {
186
+ const value = runtime?.getSetting(key);
187
+ return typeof value === "string" && value.length > 0 ? value : fallback;
188
+ }
189
+
190
+ function formatLogError(error: unknown): string {
191
+ return error instanceof Error ? error.message : String(error);
192
+ }
193
+
179
194
  /**
180
195
  * Kamino Liquidity Protocol Service
181
196
  * Handles interactions with Kamino liquidity protocol using the official API
@@ -189,11 +204,14 @@ export class KaminoLiquidityService extends Service {
189
204
  capabilityDescription =
190
205
  "Provides detailed access to Kamino liquidity protocol pools and strategies for specific tokens via the official API." as const;
191
206
 
192
- constructor(runtime: AgentRuntime) {
207
+ constructor(runtime?: IAgentRuntime) {
193
208
  super(runtime);
194
209
 
195
- this.apiBaseUrl =
196
- runtime.getSetting("KAMINO_API_URL") || KAMINO_API_BASE_URL;
210
+ this.apiBaseUrl = getStringSetting(
211
+ runtime,
212
+ "KAMINO_API_URL",
213
+ KAMINO_API_BASE_URL,
214
+ );
197
215
 
198
216
  logger.log(
199
217
  `KaminoLiquidityService initialized with API: ${this.apiBaseUrl}`,
@@ -225,7 +243,10 @@ export class KaminoLiquidityService extends Service {
225
243
 
226
244
  return await response.json();
227
245
  } catch (error) {
228
- logger.error(`API request failed for ${endpoint}:`, error);
246
+ logger.error(
247
+ `API request failed for ${endpoint}:`,
248
+ formatLogError(error),
249
+ );
229
250
  throw error;
230
251
  }
231
252
  }
@@ -304,7 +325,7 @@ export class KaminoLiquidityService extends Service {
304
325
  } catch (error) {
305
326
  logger.error(
306
327
  `Error resolving token ${tokenIdentifier} with Birdeye:`,
307
- error,
328
+ formatLogError(error),
308
329
  );
309
330
  return null;
310
331
  }
@@ -321,7 +342,7 @@ export class KaminoLiquidityService extends Service {
321
342
  logger.log(`Found ${yields.length} staking yields`);
322
343
  return yields;
323
344
  } catch (error) {
324
- logger.error("Error fetching staking yields:", error);
345
+ logger.error("Error fetching staking yields:", formatLogError(error));
325
346
  return [];
326
347
  }
327
348
  }
@@ -338,7 +359,10 @@ export class KaminoLiquidityService extends Service {
338
359
  logger.log(`Found ${yields.length} median staking yields`);
339
360
  return yields;
340
361
  } catch (error) {
341
- logger.error("Error fetching median staking yields:", error);
362
+ logger.error(
363
+ "Error fetching median staking yields:",
364
+ formatLogError(error),
365
+ );
342
366
  return [];
343
367
  }
344
368
  }
@@ -366,7 +390,7 @@ export class KaminoLiquidityService extends Service {
366
390
  logger.log(`Found ${trades.length} Limo trades`);
367
391
  return trades;
368
392
  } catch (error) {
369
- logger.error("Error fetching Limo trades:", error);
393
+ logger.error("Error fetching Limo trades:", formatLogError(error));
370
394
  return [];
371
395
  }
372
396
  }
@@ -434,7 +458,7 @@ export class KaminoLiquidityService extends Service {
434
458
  logger.log("Market statistics retrieved successfully");
435
459
  return stats;
436
460
  } catch (error) {
437
- logger.error("Error fetching market statistics:", error);
461
+ logger.error("Error fetching market statistics:", formatLogError(error));
438
462
  return null;
439
463
  }
440
464
  }
@@ -512,7 +536,7 @@ export class KaminoLiquidityService extends Service {
512
536
  logger.log(`Found ${strategies.length} strategies from API data`);
513
537
  return strategies;
514
538
  } catch (error) {
515
- logger.error("Error getting all strategies:", error);
539
+ logger.error("Error getting all strategies:", formatLogError(error));
516
540
  return [];
517
541
  }
518
542
  }
@@ -602,7 +626,7 @@ export class KaminoLiquidityService extends Service {
602
626
  logger.log(`No strategy found for address: ${strategyAddress}`);
603
627
  return null;
604
628
  } catch (error) {
605
- logger.error("Error getting strategy by address:", error);
629
+ logger.error("Error getting strategy by address:", formatLogError(error));
606
630
  return null;
607
631
  }
608
632
  }
@@ -621,13 +645,13 @@ export class KaminoLiquidityService extends Service {
621
645
 
622
646
  if (strategy) {
623
647
  // Get additional token information if available
624
- let tokenInfo = null;
648
+ let tokenInfo: TokenInfo | null = null;
625
649
  try {
626
650
  tokenInfo = await this.resolveTokenWithBirdeye(strategy.tokenA);
627
651
  } catch (error) {
628
652
  logger.warn(
629
653
  `Could not resolve token info for ${strategy.tokenA}:`,
630
- error,
654
+ formatLogError(error),
631
655
  );
632
656
  }
633
657
 
@@ -664,7 +688,10 @@ export class KaminoLiquidityService extends Service {
664
688
  };
665
689
  }
666
690
  } catch (error) {
667
- logger.warn(`Could not resolve token info for ${poolAddress}:`, error);
691
+ logger.warn(
692
+ `Could not resolve token info for ${poolAddress}:`,
693
+ formatLogError(error),
694
+ );
668
695
  }
669
696
 
670
697
  logger.log(
@@ -672,7 +699,7 @@ export class KaminoLiquidityService extends Service {
672
699
  );
673
700
  return null;
674
701
  } catch (error) {
675
- logger.error("Error getting pool by address:", error);
702
+ logger.error("Error getting pool by address:", formatLogError(error));
676
703
  return null;
677
704
  }
678
705
  }
@@ -691,7 +718,6 @@ export class KaminoLiquidityService extends Service {
691
718
 
692
719
  // Normalize token identifier
693
720
  const normalizedToken = this.normalizeTokenIdentifier(tokenIdentifier);
694
- console.log("normalizedToken", normalizedToken);
695
721
 
696
722
  const stats: TokenLiquidityStats = {
697
723
  tokenIdentifier: tokenIdentifier,
@@ -803,7 +829,10 @@ export class KaminoLiquidityService extends Service {
803
829
  logger.log(`No strategies found involving token: ${normalizedToken}`);
804
830
  }
805
831
  } catch (apiError) {
806
- logger.error("Error fetching strategies via API:", apiError);
832
+ logger.error(
833
+ "Error fetching strategies via API:",
834
+ formatLogError(apiError),
835
+ );
807
836
  logger.log(
808
837
  `API method failed, returning basic token info for ${normalizedToken}`,
809
838
  );
@@ -811,7 +840,10 @@ export class KaminoLiquidityService extends Service {
811
840
 
812
841
  return stats;
813
842
  } catch (error) {
814
- logger.error("Error getting token liquidity info:", error);
843
+ logger.error(
844
+ "Error getting token liquidity info:",
845
+ formatLogError(error),
846
+ );
815
847
  throw error;
816
848
  }
817
849
  }
@@ -1011,6 +1043,8 @@ export class KaminoLiquidityService extends Service {
1011
1043
 
1012
1044
  const results = {
1013
1045
  apiBaseUrl: this.apiBaseUrl,
1046
+ programId: KAMINO_LIQUIDITY_PROGRAM_ID,
1047
+ rpcEndpoint: this.apiBaseUrl,
1014
1048
  connectionTest: false,
1015
1049
  stakingYieldsTest: false,
1016
1050
  limoTradesTest: false,
@@ -1027,7 +1061,7 @@ export class KaminoLiquidityService extends Service {
1027
1061
  `API connection test passed. Found ${stakingYields.length} staking yields`,
1028
1062
  );
1029
1063
  } catch (error) {
1030
- logger.error("API connection test failed:", error);
1064
+ logger.error("API connection test failed:", formatLogError(error));
1031
1065
  }
1032
1066
 
1033
1067
  // Test Limo trades endpoint
@@ -1038,7 +1072,7 @@ export class KaminoLiquidityService extends Service {
1038
1072
  `Limo trades test passed. Found ${limoTrades.length} trades`,
1039
1073
  );
1040
1074
  } catch (error) {
1041
- logger.error("Limo trades test failed:", error);
1075
+ logger.error("Limo trades test failed:", formatLogError(error));
1042
1076
  }
1043
1077
 
1044
1078
  // Test strategy discovery
@@ -1049,30 +1083,30 @@ export class KaminoLiquidityService extends Service {
1049
1083
  `Strategy discovery test: ${strategies.length} strategies found`,
1050
1084
  );
1051
1085
  } catch (error) {
1052
- logger.error("Strategy discovery test failed:", error);
1086
+ logger.error("Strategy discovery test failed:", formatLogError(error));
1053
1087
  }
1054
1088
 
1055
1089
  logger.log("Connection test completed");
1056
1090
  return results;
1057
1091
  } catch (error) {
1058
- logger.error("Error in connection test:", error);
1092
+ logger.error("Error in connection test:", formatLogError(error));
1059
1093
  throw error;
1060
1094
  }
1061
1095
  }
1062
1096
 
1063
1097
  // Service lifecycle methods
1064
1098
 
1065
- static async create(runtime: AgentRuntime): Promise<KaminoLiquidityService> {
1099
+ static async create(runtime: IAgentRuntime): Promise<KaminoLiquidityService> {
1066
1100
  return new KaminoLiquidityService(runtime);
1067
1101
  }
1068
1102
 
1069
- static async start(runtime: AgentRuntime): Promise<KaminoLiquidityService> {
1103
+ static async start(runtime: IAgentRuntime): Promise<KaminoLiquidityService> {
1070
1104
  const service = new KaminoLiquidityService(runtime);
1071
1105
  await service.start();
1072
1106
  return service;
1073
1107
  }
1074
1108
 
1075
- static async stop(runtime: AgentRuntime): Promise<void> {
1109
+ static async stop(runtime: IAgentRuntime): Promise<void> {
1076
1110
  const service = runtime.getService(
1077
1111
  "KAMINO_LIQUIDITY_SERVICE",
1078
1112
  ) as KaminoLiquidityService;
@@ -1092,12 +1126,15 @@ export class KaminoLiquidityService extends Service {
1092
1126
 
1093
1127
  // Test connection on startup
1094
1128
  const testResults = await this.testConnection();
1095
- logger.log("Startup connection test results:", testResults);
1129
+ logger.log({ testResults }, "Startup connection test results");
1096
1130
 
1097
1131
  this.isRunning = true;
1098
1132
  logger.log("KaminoLiquidityService started successfully");
1099
1133
  } catch (error) {
1100
- logger.error("Failed to start KaminoLiquidityService:", error);
1134
+ logger.error(
1135
+ "Failed to start KaminoLiquidityService:",
1136
+ formatLogError(error),
1137
+ );
1101
1138
  throw error;
1102
1139
  }
1103
1140
  }
@@ -1112,7 +1149,10 @@ export class KaminoLiquidityService extends Service {
1112
1149
  this.isRunning = false;
1113
1150
  logger.log("KaminoLiquidityService stopped successfully");
1114
1151
  } catch (error) {
1115
- logger.error("Failed to stop KaminoLiquidityService:", error);
1152
+ logger.error(
1153
+ "Failed to stop KaminoLiquidityService:",
1154
+ formatLogError(error),
1155
+ );
1116
1156
  throw error;
1117
1157
  }
1118
1158
  }