keyring-agent-core 0.1.0

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 (318) hide show
  1. package/README.md +169 -0
  2. package/dist/agent/AgentCore.d.ts +220 -0
  3. package/dist/agent/AgentCore.d.ts.map +1 -0
  4. package/dist/agent/AgentCore.js +950 -0
  5. package/dist/agent/AgentCore.js.map +1 -0
  6. package/dist/agent/QueryRewriter.d.ts +67 -0
  7. package/dist/agent/QueryRewriter.d.ts.map +1 -0
  8. package/dist/agent/QueryRewriter.js +262 -0
  9. package/dist/agent/QueryRewriter.js.map +1 -0
  10. package/dist/agent/Router.d.ts +33 -0
  11. package/dist/agent/Router.d.ts.map +1 -0
  12. package/dist/agent/Router.js +191 -0
  13. package/dist/agent/Router.js.map +1 -0
  14. package/dist/agent/Subagent.d.ts +63 -0
  15. package/dist/agent/Subagent.d.ts.map +1 -0
  16. package/dist/agent/Subagent.js +240 -0
  17. package/dist/agent/Subagent.js.map +1 -0
  18. package/dist/agent/Synthesizer.d.ts +11 -0
  19. package/dist/agent/Synthesizer.d.ts.map +1 -0
  20. package/dist/agent/Synthesizer.js +86 -0
  21. package/dist/agent/Synthesizer.js.map +1 -0
  22. package/dist/agent/index.d.ts +10 -0
  23. package/dist/agent/index.d.ts.map +1 -0
  24. package/dist/agent/index.js +24 -0
  25. package/dist/agent/index.js.map +1 -0
  26. package/dist/agent/subagents/AiAgent.d.ts +6 -0
  27. package/dist/agent/subagents/AiAgent.d.ts.map +1 -0
  28. package/dist/agent/subagents/AiAgent.js +48 -0
  29. package/dist/agent/subagents/AiAgent.js.map +1 -0
  30. package/dist/agent/subagents/NftAgent.d.ts +6 -0
  31. package/dist/agent/subagents/NftAgent.d.ts.map +1 -0
  32. package/dist/agent/subagents/NftAgent.js +69 -0
  33. package/dist/agent/subagents/NftAgent.js.map +1 -0
  34. package/dist/agent/subagents/PoolAgent.d.ts +6 -0
  35. package/dist/agent/subagents/PoolAgent.d.ts.map +1 -0
  36. package/dist/agent/subagents/PoolAgent.js +184 -0
  37. package/dist/agent/subagents/PoolAgent.js.map +1 -0
  38. package/dist/agent/subagents/TokenAgent.d.ts +6 -0
  39. package/dist/agent/subagents/TokenAgent.d.ts.map +1 -0
  40. package/dist/agent/subagents/TokenAgent.js +75 -0
  41. package/dist/agent/subagents/TokenAgent.js.map +1 -0
  42. package/dist/agent/subagents/WalletAgent.d.ts +6 -0
  43. package/dist/agent/subagents/WalletAgent.d.ts.map +1 -0
  44. package/dist/agent/subagents/WalletAgent.js +92 -0
  45. package/dist/agent/subagents/WalletAgent.js.map +1 -0
  46. package/dist/agent/subagents/index.d.ts +14 -0
  47. package/dist/agent/subagents/index.d.ts.map +1 -0
  48. package/dist/agent/subagents/index.js +38 -0
  49. package/dist/agent/subagents/index.js.map +1 -0
  50. package/dist/constants/abi.d.ts +520 -0
  51. package/dist/constants/abi.d.ts.map +1 -0
  52. package/dist/constants/abi.js +667 -0
  53. package/dist/constants/abi.js.map +1 -0
  54. package/dist/functions/pool.d.ts +25 -0
  55. package/dist/functions/pool.d.ts.map +1 -0
  56. package/dist/functions/pool.js +151 -0
  57. package/dist/functions/pool.js.map +1 -0
  58. package/dist/functions/web3.d.ts +32 -0
  59. package/dist/functions/web3.d.ts.map +1 -0
  60. package/dist/functions/web3.js +277 -0
  61. package/dist/functions/web3.js.map +1 -0
  62. package/dist/index.d.ts +24 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +65 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/llm/GeminiProvider.d.ts +16 -0
  67. package/dist/llm/GeminiProvider.d.ts.map +1 -0
  68. package/dist/llm/GeminiProvider.js +248 -0
  69. package/dist/llm/GeminiProvider.js.map +1 -0
  70. package/dist/llm/index.d.ts +2 -0
  71. package/dist/llm/index.d.ts.map +1 -0
  72. package/dist/llm/index.js +6 -0
  73. package/dist/llm/index.js.map +1 -0
  74. package/dist/memory/ChatHistory.d.ts +83 -0
  75. package/dist/memory/ChatHistory.d.ts.map +1 -0
  76. package/dist/memory/ChatHistory.js +143 -0
  77. package/dist/memory/ChatHistory.js.map +1 -0
  78. package/dist/memory/KnowledgeBase.d.ts +38 -0
  79. package/dist/memory/KnowledgeBase.d.ts.map +1 -0
  80. package/dist/memory/KnowledgeBase.js +139 -0
  81. package/dist/memory/KnowledgeBase.js.map +1 -0
  82. package/dist/memory/Summarizer.d.ts +12 -0
  83. package/dist/memory/Summarizer.d.ts.map +1 -0
  84. package/dist/memory/Summarizer.js +39 -0
  85. package/dist/memory/Summarizer.js.map +1 -0
  86. package/dist/memory/UpstashKnowledgeBase.d.ts +124 -0
  87. package/dist/memory/UpstashKnowledgeBase.d.ts.map +1 -0
  88. package/dist/memory/UpstashKnowledgeBase.js +152 -0
  89. package/dist/memory/UpstashKnowledgeBase.js.map +1 -0
  90. package/dist/memory/historyUtils.d.ts +58 -0
  91. package/dist/memory/historyUtils.d.ts.map +1 -0
  92. package/dist/memory/historyUtils.js +190 -0
  93. package/dist/memory/historyUtils.js.map +1 -0
  94. package/dist/memory/index.d.ts +7 -0
  95. package/dist/memory/index.d.ts.map +1 -0
  96. package/dist/memory/index.js +12 -0
  97. package/dist/memory/index.js.map +1 -0
  98. package/dist/memory/ingestKnowledgeBase.d.ts +17 -0
  99. package/dist/memory/ingestKnowledgeBase.d.ts.map +1 -0
  100. package/dist/memory/ingestKnowledgeBase.js +35 -0
  101. package/dist/memory/ingestKnowledgeBase.js.map +1 -0
  102. package/dist/services/MoralisService.d.ts +1350 -0
  103. package/dist/services/MoralisService.d.ts.map +1 -0
  104. package/dist/services/MoralisService.js +1364 -0
  105. package/dist/services/MoralisService.js.map +1 -0
  106. package/dist/services/PantographService.d.ts +38 -0
  107. package/dist/services/PantographService.d.ts.map +1 -0
  108. package/dist/services/PantographService.js +199 -0
  109. package/dist/services/PantographService.js.map +1 -0
  110. package/dist/services/PoolService.d.ts +241 -0
  111. package/dist/services/PoolService.d.ts.map +1 -0
  112. package/dist/services/PoolService.js +507 -0
  113. package/dist/services/PoolService.js.map +1 -0
  114. package/dist/services/UniswapService.d.ts +289 -0
  115. package/dist/services/UniswapService.d.ts.map +1 -0
  116. package/dist/services/UniswapService.js +585 -0
  117. package/dist/services/UniswapService.js.map +1 -0
  118. package/dist/services/swap/BaseSwapService.d.ts +17 -0
  119. package/dist/services/swap/BaseSwapService.d.ts.map +1 -0
  120. package/dist/services/swap/BaseSwapService.js +19 -0
  121. package/dist/services/swap/BaseSwapService.js.map +1 -0
  122. package/dist/services/swap/DebridgeAdapter.d.ts +20 -0
  123. package/dist/services/swap/DebridgeAdapter.d.ts.map +1 -0
  124. package/dist/services/swap/DebridgeAdapter.js +175 -0
  125. package/dist/services/swap/DebridgeAdapter.js.map +1 -0
  126. package/dist/services/swap/RelayAdapter.d.ts +19 -0
  127. package/dist/services/swap/RelayAdapter.d.ts.map +1 -0
  128. package/dist/services/swap/RelayAdapter.js +189 -0
  129. package/dist/services/swap/RelayAdapter.js.map +1 -0
  130. package/dist/services/swap/SwapServiceFactory.d.ts +24 -0
  131. package/dist/services/swap/SwapServiceFactory.d.ts.map +1 -0
  132. package/dist/services/swap/SwapServiceFactory.js +74 -0
  133. package/dist/services/swap/SwapServiceFactory.js.map +1 -0
  134. package/dist/services/swap/addresses.d.ts +3 -0
  135. package/dist/services/swap/addresses.d.ts.map +1 -0
  136. package/dist/services/swap/addresses.js +68 -0
  137. package/dist/services/swap/addresses.js.map +1 -0
  138. package/dist/services/swap/affiliate.d.ts +17 -0
  139. package/dist/services/swap/affiliate.d.ts.map +1 -0
  140. package/dist/services/swap/affiliate.js +126 -0
  141. package/dist/services/swap/affiliate.js.map +1 -0
  142. package/dist/services/swap/config.d.ts +9 -0
  143. package/dist/services/swap/config.d.ts.map +1 -0
  144. package/dist/services/swap/config.js +19 -0
  145. package/dist/services/swap/config.js.map +1 -0
  146. package/dist/services/swap/index.d.ts +10 -0
  147. package/dist/services/swap/index.d.ts.map +1 -0
  148. package/dist/services/swap/index.js +22 -0
  149. package/dist/services/swap/index.js.map +1 -0
  150. package/dist/services/swap/types.d.ts +89 -0
  151. package/dist/services/swap/types.d.ts.map +1 -0
  152. package/dist/services/swap/types.js +6 -0
  153. package/dist/services/swap/types.js.map +1 -0
  154. package/dist/tools/BaseTool.d.ts +15 -0
  155. package/dist/tools/BaseTool.d.ts.map +1 -0
  156. package/dist/tools/BaseTool.js +35 -0
  157. package/dist/tools/BaseTool.js.map +1 -0
  158. package/dist/tools/ToolRegistry.d.ts +27 -0
  159. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  160. package/dist/tools/ToolRegistry.js +80 -0
  161. package/dist/tools/ToolRegistry.js.map +1 -0
  162. package/dist/tools/builtin/ai/MoralisCortexTool.d.ts +33 -0
  163. package/dist/tools/builtin/ai/MoralisCortexTool.d.ts.map +1 -0
  164. package/dist/tools/builtin/ai/MoralisCortexTool.js +76 -0
  165. package/dist/tools/builtin/ai/MoralisCortexTool.js.map +1 -0
  166. package/dist/tools/builtin/ai/SolanaCortexTool.d.ts +22 -0
  167. package/dist/tools/builtin/ai/SolanaCortexTool.d.ts.map +1 -0
  168. package/dist/tools/builtin/ai/SolanaCortexTool.js +80 -0
  169. package/dist/tools/builtin/ai/SolanaCortexTool.js.map +1 -0
  170. package/dist/tools/builtin/ai/index.d.ts +5 -0
  171. package/dist/tools/builtin/ai/index.d.ts.map +1 -0
  172. package/dist/tools/builtin/ai/index.js +8 -0
  173. package/dist/tools/builtin/ai/index.js.map +1 -0
  174. package/dist/tools/builtin/index.d.ts +6 -0
  175. package/dist/tools/builtin/index.d.ts.map +1 -0
  176. package/dist/tools/builtin/index.js +22 -0
  177. package/dist/tools/builtin/index.js.map +1 -0
  178. package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts +21 -0
  179. package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts.map +1 -0
  180. package/dist/tools/builtin/nft/NFTContractInfoTool.js +54 -0
  181. package/dist/tools/builtin/nft/NFTContractInfoTool.js.map +1 -0
  182. package/dist/tools/builtin/nft/NFTMetadataTool.d.ts +121 -0
  183. package/dist/tools/builtin/nft/NFTMetadataTool.d.ts.map +1 -0
  184. package/dist/tools/builtin/nft/NFTMetadataTool.js +159 -0
  185. package/dist/tools/builtin/nft/NFTMetadataTool.js.map +1 -0
  186. package/dist/tools/builtin/nft/WalletNFTsTool.d.ts +82 -0
  187. package/dist/tools/builtin/nft/WalletNFTsTool.d.ts.map +1 -0
  188. package/dist/tools/builtin/nft/WalletNFTsTool.js +172 -0
  189. package/dist/tools/builtin/nft/WalletNFTsTool.js.map +1 -0
  190. package/dist/tools/builtin/nft/index.d.ts +7 -0
  191. package/dist/tools/builtin/nft/index.d.ts.map +1 -0
  192. package/dist/tools/builtin/nft/index.js +10 -0
  193. package/dist/tools/builtin/nft/index.js.map +1 -0
  194. package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts +124 -0
  195. package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts.map +1 -0
  196. package/dist/tools/builtin/pool/EstimatePoolYieldTool.js +235 -0
  197. package/dist/tools/builtin/pool/EstimatePoolYieldTool.js.map +1 -0
  198. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts +127 -0
  199. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts.map +1 -0
  200. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js +517 -0
  201. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js.map +1 -0
  202. package/dist/tools/builtin/pool/PoolByAddressTool.d.ts +127 -0
  203. package/dist/tools/builtin/pool/PoolByAddressTool.d.ts.map +1 -0
  204. package/dist/tools/builtin/pool/PoolByAddressTool.js +237 -0
  205. package/dist/tools/builtin/pool/PoolByAddressTool.js.map +1 -0
  206. package/dist/tools/builtin/pool/PoolDetailTool.d.ts +127 -0
  207. package/dist/tools/builtin/pool/PoolDetailTool.d.ts.map +1 -0
  208. package/dist/tools/builtin/pool/PoolDetailTool.js +272 -0
  209. package/dist/tools/builtin/pool/PoolDetailTool.js.map +1 -0
  210. package/dist/tools/builtin/pool/PoolSearchTool.d.ts +50 -0
  211. package/dist/tools/builtin/pool/PoolSearchTool.d.ts.map +1 -0
  212. package/dist/tools/builtin/pool/PoolSearchTool.js +159 -0
  213. package/dist/tools/builtin/pool/PoolSearchTool.js.map +1 -0
  214. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts +123 -0
  215. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts.map +1 -0
  216. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js +380 -0
  217. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js.map +1 -0
  218. package/dist/tools/builtin/pool/TopPoolsTool.d.ts +68 -0
  219. package/dist/tools/builtin/pool/TopPoolsTool.d.ts.map +1 -0
  220. package/dist/tools/builtin/pool/TopPoolsTool.js +158 -0
  221. package/dist/tools/builtin/pool/TopPoolsTool.js.map +1 -0
  222. package/dist/tools/builtin/pool/index.d.ts +15 -0
  223. package/dist/tools/builtin/pool/index.d.ts.map +1 -0
  224. package/dist/tools/builtin/pool/index.js +18 -0
  225. package/dist/tools/builtin/pool/index.js.map +1 -0
  226. package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts +71 -0
  227. package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts.map +1 -0
  228. package/dist/tools/builtin/token/TokenAnalyticsTool.js +146 -0
  229. package/dist/tools/builtin/token/TokenAnalyticsTool.js.map +1 -0
  230. package/dist/tools/builtin/token/TokenHoldersTool.d.ts +81 -0
  231. package/dist/tools/builtin/token/TokenHoldersTool.d.ts.map +1 -0
  232. package/dist/tools/builtin/token/TokenHoldersTool.js +138 -0
  233. package/dist/tools/builtin/token/TokenHoldersTool.js.map +1 -0
  234. package/dist/tools/builtin/token/TokenInfoTool.d.ts +36 -0
  235. package/dist/tools/builtin/token/TokenInfoTool.d.ts.map +1 -0
  236. package/dist/tools/builtin/token/TokenInfoTool.js +163 -0
  237. package/dist/tools/builtin/token/TokenInfoTool.js.map +1 -0
  238. package/dist/tools/builtin/token/TokenScoreTool.d.ts +63 -0
  239. package/dist/tools/builtin/token/TokenScoreTool.d.ts.map +1 -0
  240. package/dist/tools/builtin/token/TokenScoreTool.js +147 -0
  241. package/dist/tools/builtin/token/TokenScoreTool.js.map +1 -0
  242. package/dist/tools/builtin/token/TopGainersTool.d.ts +46 -0
  243. package/dist/tools/builtin/token/TopGainersTool.d.ts.map +1 -0
  244. package/dist/tools/builtin/token/TopGainersTool.js +110 -0
  245. package/dist/tools/builtin/token/TopGainersTool.js.map +1 -0
  246. package/dist/tools/builtin/token/TopLosersTool.d.ts +66 -0
  247. package/dist/tools/builtin/token/TopLosersTool.d.ts.map +1 -0
  248. package/dist/tools/builtin/token/TopLosersTool.js +128 -0
  249. package/dist/tools/builtin/token/TopLosersTool.js.map +1 -0
  250. package/dist/tools/builtin/token/TrendingTokensTool.d.ts +39 -0
  251. package/dist/tools/builtin/token/TrendingTokensTool.d.ts.map +1 -0
  252. package/dist/tools/builtin/token/TrendingTokensTool.js +75 -0
  253. package/dist/tools/builtin/token/TrendingTokensTool.js.map +1 -0
  254. package/dist/tools/builtin/token/index.d.ts +15 -0
  255. package/dist/tools/builtin/token/index.d.ts.map +1 -0
  256. package/dist/tools/builtin/token/index.js +18 -0
  257. package/dist/tools/builtin/token/index.js.map +1 -0
  258. package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts +70 -0
  259. package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts.map +1 -0
  260. package/dist/tools/builtin/wallet/TransactionByHashTool.js +110 -0
  261. package/dist/tools/builtin/wallet/TransactionByHashTool.js.map +1 -0
  262. package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts +107 -0
  263. package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts.map +1 -0
  264. package/dist/tools/builtin/wallet/WalletApprovalsTool.js +163 -0
  265. package/dist/tools/builtin/wallet/WalletApprovalsTool.js.map +1 -0
  266. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts +61 -0
  267. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts.map +1 -0
  268. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js +99 -0
  269. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js.map +1 -0
  270. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts +68 -0
  271. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts.map +1 -0
  272. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js +114 -0
  273. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js.map +1 -0
  274. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts +50 -0
  275. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts.map +1 -0
  276. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js +79 -0
  277. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js.map +1 -0
  278. package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts +31 -0
  279. package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts.map +1 -0
  280. package/dist/tools/builtin/wallet/WalletHistoryTool.js +153 -0
  281. package/dist/tools/builtin/wallet/WalletHistoryTool.js.map +1 -0
  282. package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts +44 -0
  283. package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts.map +1 -0
  284. package/dist/tools/builtin/wallet/WalletNetWorthTool.js +122 -0
  285. package/dist/tools/builtin/wallet/WalletNetWorthTool.js.map +1 -0
  286. package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts +86 -0
  287. package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts.map +1 -0
  288. package/dist/tools/builtin/wallet/WalletNftTransfersTool.js +264 -0
  289. package/dist/tools/builtin/wallet/WalletNftTransfersTool.js.map +1 -0
  290. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts +43 -0
  291. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts.map +1 -0
  292. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js +88 -0
  293. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js.map +1 -0
  294. package/dist/tools/builtin/wallet/WalletPnlTool.d.ts +43 -0
  295. package/dist/tools/builtin/wallet/WalletPnlTool.d.ts.map +1 -0
  296. package/dist/tools/builtin/wallet/WalletPnlTool.js +174 -0
  297. package/dist/tools/builtin/wallet/WalletPnlTool.js.map +1 -0
  298. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts +35 -0
  299. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts.map +1 -0
  300. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js +67 -0
  301. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js.map +1 -0
  302. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts +109 -0
  303. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts.map +1 -0
  304. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js +353 -0
  305. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js.map +1 -0
  306. package/dist/tools/builtin/wallet/index.d.ts +25 -0
  307. package/dist/tools/builtin/wallet/index.d.ts.map +1 -0
  308. package/dist/tools/builtin/wallet/index.js +28 -0
  309. package/dist/tools/builtin/wallet/index.js.map +1 -0
  310. package/dist/tools/index.d.ts +4 -0
  311. package/dist/tools/index.d.ts.map +1 -0
  312. package/dist/tools/index.js +23 -0
  313. package/dist/tools/index.js.map +1 -0
  314. package/dist/types/index.d.ts +566 -0
  315. package/dist/types/index.d.ts.map +1 -0
  316. package/dist/types/index.js +6 -0
  317. package/dist/types/index.js.map +1 -0
  318. package/package.json +52 -0
@@ -0,0 +1,35 @@
1
+ import { BaseTool } from '../../BaseTool';
2
+ import type { ToolParameter, UserContext } from '../../../types';
3
+ import { type MoralisServiceConfig } from '../../../services/MoralisService';
4
+ export type WalletTokenBalancesToolConfig = MoralisServiceConfig;
5
+ /**
6
+ * Tool: get-wallet-token-balances
7
+ *
8
+ * Fetches ERC-20 token balances for a wallet address via the Moralis EVM API.
9
+ * Automatically enriches prices, filters spam/dust, and uses the connected
10
+ * wallet + chain from UserContext when not explicitly provided.
11
+ */
12
+ export declare class WalletTokenBalancesTool extends BaseTool {
13
+ name: string;
14
+ description: string;
15
+ category: string;
16
+ parameters: ToolParameter[];
17
+ private service;
18
+ constructor(config?: WalletTokenBalancesToolConfig);
19
+ protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<{
20
+ error: string;
21
+ walletAddress?: undefined;
22
+ chain?: undefined;
23
+ tokenCount?: undefined;
24
+ tokens?: undefined;
25
+ totalUsdValue?: undefined;
26
+ } | {
27
+ walletAddress: string;
28
+ chain: string;
29
+ tokenCount: number;
30
+ tokens: import("../../../services/MoralisService").TokenBalance[];
31
+ totalUsdValue: number;
32
+ error?: undefined;
33
+ }>;
34
+ }
35
+ //# sourceMappingURL=WalletTokenBalancesTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletTokenBalancesTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletTokenBalancesTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7F,MAAM,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAEjE;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,QAAQ;IACnD,IAAI,SAA+B;IACnC,WAAW,SAIwE;IACnF,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CAezB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,6BAA6B;cAKlC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;CA8B7E"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletTokenBalancesTool = void 0;
4
+ const BaseTool_1 = require("../../BaseTool");
5
+ const MoralisService_1 = require("../../../services/MoralisService");
6
+ /**
7
+ * Tool: get-wallet-token-balances
8
+ *
9
+ * Fetches ERC-20 token balances for a wallet address via the Moralis EVM API.
10
+ * Automatically enriches prices, filters spam/dust, and uses the connected
11
+ * wallet + chain from UserContext when not explicitly provided.
12
+ */
13
+ class WalletTokenBalancesTool extends BaseTool_1.BaseTool {
14
+ name = 'get-wallet-token-balances';
15
+ description = 'Get all ERC-20 token balances for a wallet address, including USD prices and 24h changes. ' +
16
+ 'Use this when the user asks about: "my tokens", "my balances", "what do I hold", "portfolio", ' +
17
+ '"how much ETH/USDC/… do I have", or any wallet balance question. ' +
18
+ 'Supports: Ethereum, Optimism, BSC, Polygon, Base, Arbitrum, Avalanche, Linea. ';
19
+ category = 'blockchain-data';
20
+ parameters = [
21
+ {
22
+ name: 'address',
23
+ type: 'string',
24
+ description: 'Wallet address to query (0x…). If omitted, uses the connected wallet from user context.',
25
+ required: false,
26
+ },
27
+ {
28
+ name: 'chain',
29
+ type: 'string',
30
+ description: 'Hex chain ID: "0x1" Ethereum, "0xa" Optimism, "0x38" BSC, "0x89" Polygon, "0x2105" Base, ' +
31
+ '"0xa4b1" Arbitrum, "0xa86a" Avalanche, "0xe708" Linea. Defaults to connected chain.',
32
+ required: true,
33
+ },
34
+ ];
35
+ service;
36
+ constructor(config) {
37
+ super();
38
+ this.service = new MoralisService_1.MoralisService(config);
39
+ }
40
+ async run(args, userContext) {
41
+ const address = args.address || userContext?.walletAddress || undefined;
42
+ const chain = args.chain || userContext?.chain || undefined;
43
+ if (!address) {
44
+ return { error: 'No wallet address available. Please connect a wallet.' };
45
+ }
46
+ const result = await this.service.getWalletTokenBalances({
47
+ address,
48
+ chain,
49
+ excludeSpam: false,
50
+ excludeUnverifiedContracts: false,
51
+ });
52
+ if (!result.success) {
53
+ return { error: result.error || 'Failed to fetch token balances' };
54
+ }
55
+ const tokens = result.data?.result || [];
56
+ // Build structured response data for the Synthesizer
57
+ return {
58
+ walletAddress: address,
59
+ chain: chain || 'default',
60
+ tokenCount: tokens.length,
61
+ tokens: tokens,
62
+ totalUsdValue: tokens.reduce((sum, t) => sum + (t.usd_value || 0), 0),
63
+ };
64
+ }
65
+ }
66
+ exports.WalletTokenBalancesTool = WalletTokenBalancesTool;
67
+ //# sourceMappingURL=WalletTokenBalancesTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletTokenBalancesTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletTokenBalancesTool.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,qEAA6F;AAI7F;;;;;;GAMG;AACH,MAAa,uBAAwB,SAAQ,mBAAQ;IACnD,IAAI,GAAG,2BAA2B,CAAC;IACnC,WAAW,GACT,4FAA4F;QAC5F,gGAAgG;QAChG,mEAAmE;QACnE,gFAAgF,CAAC;IACnF,QAAQ,GAAG,iBAAiB,CAAC;IAC7B,UAAU,GAAoB;QAC5B;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yFAAyF;YACtG,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,2FAA2F;gBAC3F,qFAAqF;YACvF,QAAQ,EAAE,IAAI;SACf;KACF,CAAC;IAEM,OAAO,CAAiB;IAEhC,YAAY,MAAsC;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAES,KAAK,CAAC,GAAG,CAAC,IAA6B,EAAE,WAAyB;QAC1E,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,WAAW,EAAE,aAAa,IAAI,SAAS,CAAC;QACpF,MAAM,KAAK,GAAI,IAAI,CAAC,KAAgB,IAAI,WAAW,EAAE,KAAK,IAAI,SAAS,CAAC;QAExE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,uDAAuD,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;YACvD,OAAO;YACP,KAAK;YACL,WAAW,EAAE,KAAK;YAClB,0BAA0B,EAAE,KAAK;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,gCAAgC,EAAE,CAAC;QACrE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;QAEzC,qDAAqD;QACrD,OAAO;YACL,aAAa,EAAE,OAAO;YACtB,KAAK,EAAE,KAAK,IAAI,SAAS;YACzB,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;CACF;AA9DD,0DA8DC"}
@@ -0,0 +1,109 @@
1
+ import { BaseTool } from '../../BaseTool';
2
+ import type { ToolParameter, UserContext } from '../../../types';
3
+ import { type MoralisServiceConfig, type WalletTokenTransferItem } from '../../../services/MoralisService';
4
+ export type WalletTokenTransfersToolConfig = MoralisServiceConfig;
5
+ interface EnrichedTransfer extends WalletTokenTransferItem {
6
+ /** "send" = wallet sent, "receive" = wallet received */
7
+ direction: 'send' | 'receive';
8
+ /** Human-readable amount */
9
+ amount_formatted: string;
10
+ /** The other party: to_address (for send) or from_address (for receive) */
11
+ counterparty: string;
12
+ counterparty_label?: string;
13
+ counterparty_entity?: string;
14
+ }
15
+ interface CounterpartySummary {
16
+ address: string;
17
+ label?: string;
18
+ entity?: string;
19
+ total_amount: string;
20
+ tx_count: number;
21
+ first_seen: string;
22
+ last_seen: string;
23
+ }
24
+ /**
25
+ * Tool: get-wallet-token-transfers
26
+ *
27
+ * Queries the dedicated Moralis ERC-20 transfer endpoint
28
+ * `GET /{address}/erc20/transfers`, which returns every ERC-20 transfer
29
+ * involving the wallet — far more reliable for token-specific questions than
30
+ * parsing the general history endpoint.
31
+ *
32
+ * Each item is enriched with:
33
+ * - `direction`: "send" or "receive" (derived from from_address vs wallet)
34
+ * - `amount_formatted`: human-readable amount (decimals applied)
35
+ * - `counterparty`: the other address (recipient for sends, sender for receives)
36
+ * - `counterparty_label` / `counterparty_entity`: Moralis-resolved name if known
37
+ *
38
+ * The response also includes a `counterparties` aggregation — unique addresses
39
+ * grouped by direction with total transferred amount and tx count.
40
+ */
41
+ export declare class WalletTokenTransfersTool extends BaseTool {
42
+ name: string;
43
+ description: string;
44
+ category: string;
45
+ parameters: ToolParameter[];
46
+ private service;
47
+ constructor(config?: WalletTokenTransfersToolConfig);
48
+ protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<{
49
+ error: string;
50
+ walletAddress?: undefined;
51
+ chain?: undefined;
52
+ resolvedToken?: undefined;
53
+ filters?: undefined;
54
+ pagination?: undefined;
55
+ transferCount?: undefined;
56
+ transfers?: undefined;
57
+ counterparties?: undefined;
58
+ } | {
59
+ walletAddress: string;
60
+ chain: string;
61
+ resolvedToken: {
62
+ symbol: string;
63
+ name: string | undefined;
64
+ contractAddress: string | undefined;
65
+ } | null;
66
+ filters: {
67
+ tokenSymbol: string | null;
68
+ contractAddresses: string[] | null;
69
+ direction: "receive" | "send" | "all";
70
+ limit: number;
71
+ order: "ASC" | "DESC";
72
+ fromDate: string | null;
73
+ toDate: string | null;
74
+ fromBlock: number | null;
75
+ toBlock: number | null;
76
+ };
77
+ pagination: {
78
+ cursor: string | null;
79
+ pageSize: number;
80
+ page: number | null;
81
+ hasMore: boolean;
82
+ };
83
+ transferCount: number;
84
+ transfers: EnrichedTransfer[];
85
+ counterparties: {
86
+ sent: CounterpartySummary[];
87
+ received: CounterpartySummary[];
88
+ };
89
+ error?: undefined;
90
+ }>;
91
+ /**
92
+ * Resolve a token's contract address from a symbol string.
93
+ *
94
+ * Strategy (in order):
95
+ * 1. Wallet token balances — most reliable, wallet has actually held this token.
96
+ * 2. Token search (Pantograph) — fallback for tokens no longer in the wallet.
97
+ *
98
+ * Returns the first confident match, or undefined if nothing found.
99
+ */
100
+ private resolveContractAddressBySymbol;
101
+ /**
102
+ * Aggregate unique counterparties, sorted by tx count descending.
103
+ * Splits into sent[] and received[].
104
+ */
105
+ private buildCounterparties;
106
+ private parseBlock;
107
+ }
108
+ export {};
109
+ //# sourceMappingURL=WalletTokenTransfersTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletTokenTransfersTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletTokenTransfersTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,8BAA8B,GAAG,oBAAoB,CAAC;AAsBlE,UAAU,gBAAiB,SAAQ,uBAAuB;IACxD,wDAAwD;IACxD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,4BAA4B;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,wBAAyB,SAAQ,QAAQ;IACpD,IAAI,SAAgC;IACpC,WAAW,SAkB0D;IACrE,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CA0FzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,8BAA8B;cAKnC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwKpE,mBAAmB,EAAE;sBACjB,mBAAmB,EAAE;;;;IA5CjC;;;;;;;;OAQG;YACW,8BAA8B;IA6B5C;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAwD3B,OAAO,CAAC,UAAU;CAQnB"}
@@ -0,0 +1,353 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletTokenTransfersTool = void 0;
4
+ const BaseTool_1 = require("../../BaseTool");
5
+ const MoralisService_1 = require("../../../services/MoralisService");
6
+ /**
7
+ * Derive human-readable amount from raw value + decimals string.
8
+ * Falls back to value_decimal if provided by Moralis.
9
+ */
10
+ function formatTokenAmount(item) {
11
+ if (item.value_decimal)
12
+ return item.value_decimal;
13
+ const dec = parseInt(item.token_decimals ?? '18', 10);
14
+ if (isNaN(dec) || dec === 0)
15
+ return item.value;
16
+ try {
17
+ const raw = BigInt(item.value);
18
+ const divisor = BigInt(10) ** BigInt(dec);
19
+ const whole = raw / divisor;
20
+ const remainder = raw % divisor;
21
+ const fracStr = remainder.toString().padStart(dec, '0').replace(/0+$/, '');
22
+ return fracStr ? `${whole}.${fracStr}` : `${whole}`;
23
+ }
24
+ catch {
25
+ return item.value;
26
+ }
27
+ }
28
+ /**
29
+ * Tool: get-wallet-token-transfers
30
+ *
31
+ * Queries the dedicated Moralis ERC-20 transfer endpoint
32
+ * `GET /{address}/erc20/transfers`, which returns every ERC-20 transfer
33
+ * involving the wallet — far more reliable for token-specific questions than
34
+ * parsing the general history endpoint.
35
+ *
36
+ * Each item is enriched with:
37
+ * - `direction`: "send" or "receive" (derived from from_address vs wallet)
38
+ * - `amount_formatted`: human-readable amount (decimals applied)
39
+ * - `counterparty`: the other address (recipient for sends, sender for receives)
40
+ * - `counterparty_label` / `counterparty_entity`: Moralis-resolved name if known
41
+ *
42
+ * The response also includes a `counterparties` aggregation — unique addresses
43
+ * grouped by direction with total transferred amount and tx count.
44
+ */
45
+ class WalletTokenTransfersTool extends BaseTool_1.BaseTool {
46
+ name = 'get-wallet-token-transfers';
47
+ description = 'Get all ERC-20 token transfers for a wallet from the dedicated Moralis transfers endpoint. ' +
48
+ 'Each transfer includes direction (send/receive), human-readable amount, and the exact counterparty address with its label/entity. ' +
49
+ 'The response includes a "counterparties" section that aggregates unique sender/recipient addresses with totals. ' +
50
+ 'Use tokenSymbol (e.g. "USDC") to filter by token name — the tool automatically resolves the contract address ' +
51
+ "by checking the wallet's token balances first, then falling back to token search. " +
52
+ 'Use contractAddresses when you already have the exact contract address. ' +
53
+ 'Use this tool for questions like: ' +
54
+ '"When did I last send USDC and to whom?" (tokenSymbol=USDC, direction=send, limit=1), ' +
55
+ '"Who have I sent token 0x… to?" (contractAddresses=[0x…], direction=send), ' +
56
+ '"Who sent me USDT?" (tokenSymbol=USDT, direction=receive), ' +
57
+ '"Show all USDC transfers" (tokenSymbol=USDC), ' +
58
+ '"What tokens did I receive this month?" (fromDate=..., direction=receive). ' +
59
+ 'Supports: Ethereum, Optimism, BSC, Polygon, Base, Arbitrum, Avalanche, Linea, Solana. ' +
60
+ 'Returns paginated results — pass cursor to get the next page. ' +
61
+ 'IMPORTANT — this tool covers ERC-20 tokens ONLY. ' +
62
+ 'Do NOT use it for native coins (ETH, BNB, MATIC, AVAX, etc.) — ' +
63
+ 'native coin transfers are not ERC-20 and will not appear here. ' +
64
+ 'For native coin transfer history use get-wallet-history instead.';
65
+ category = 'blockchain-data';
66
+ parameters = [
67
+ {
68
+ name: 'address',
69
+ type: 'string',
70
+ description: 'EVM wallet address (0x…). If omitted, uses the connected wallet from user context.',
71
+ required: false,
72
+ },
73
+ {
74
+ name: 'chain',
75
+ type: 'string',
76
+ description: 'Hex chain ID: "0x1" Ethereum, "0xa" Optimism, "0x38" BSC, "0x89" Polygon, "0x2105" Base, ' +
77
+ '"0xa4b1" Arbitrum, "0xa86a" Avalanche, "0xe708" Linea . Defaults to connected chain.',
78
+ required: true,
79
+ },
80
+ {
81
+ name: 'tokenSymbol',
82
+ type: 'string',
83
+ description: 'Filter by token symbol (e.g. "USDC", "USDT", "WETH"). ' +
84
+ 'The tool resolves the contract address automatically: first checks wallet balances, ' +
85
+ 'then searches by symbol on the chain. Use this when the user mentions a token by name/symbol. ' +
86
+ 'Takes precedence over contractAddresses when both are given.',
87
+ required: false,
88
+ },
89
+ {
90
+ name: 'contractAddresses',
91
+ type: 'array',
92
+ description: 'Filter by one or more ERC-20 token contract addresses (0x…). ' +
93
+ 'Use when the exact contract address is already known. Ignored if tokenSymbol is provided.',
94
+ required: false,
95
+ items: { type: 'string' },
96
+ },
97
+ {
98
+ name: 'direction',
99
+ type: 'string',
100
+ description: 'Client-side direction filter: "send" (wallet is sender), "receive" (wallet is recipient), "all" (default).',
101
+ required: false,
102
+ default: 'all',
103
+ },
104
+ {
105
+ name: 'limit',
106
+ type: 'number',
107
+ description: 'Page size (1-100, default 25). ' +
108
+ 'Use limit=1 ONLY when the user asks for the single most recent transfer (e.g. "Lần cuối cùng tôi gửi USDC là khi nào?"). ' +
109
+ 'For "show recent history" or "list my transfers" questions use the default (25). ' +
110
+ 'Use 100 for bulk counterparty analysis.',
111
+ required: false,
112
+ default: 25,
113
+ },
114
+ {
115
+ name: 'fromDate',
116
+ type: 'string',
117
+ description: 'Inclusive start date (ISO-8601 or "YYYY-MM-DD").',
118
+ required: false,
119
+ },
120
+ {
121
+ name: 'toDate',
122
+ type: 'string',
123
+ description: 'Inclusive end date (ISO-8601 or "YYYY-MM-DD").',
124
+ required: false,
125
+ },
126
+ {
127
+ name: 'fromBlock',
128
+ type: 'number',
129
+ description: 'Minimum block number.',
130
+ required: false,
131
+ },
132
+ {
133
+ name: 'toBlock',
134
+ type: 'number',
135
+ description: 'Maximum block number.',
136
+ required: false,
137
+ },
138
+ {
139
+ name: 'cursor',
140
+ type: 'string',
141
+ description: 'Pagination cursor from a previous response.',
142
+ required: false,
143
+ },
144
+ {
145
+ name: 'order',
146
+ type: 'string',
147
+ description: '"DESC" newest first (default) or "ASC" oldest first.',
148
+ required: false,
149
+ default: 'DESC',
150
+ },
151
+ ];
152
+ service;
153
+ constructor(config) {
154
+ super();
155
+ this.service = new MoralisService_1.MoralisService(config);
156
+ }
157
+ async run(args, userContext) {
158
+ const address = args.address || userContext?.walletAddress || undefined;
159
+ const chain = args.chain || userContext?.chain || undefined;
160
+ if (!address) {
161
+ return { error: 'No wallet address available. Please connect a wallet or pass "address".' };
162
+ }
163
+ const rawLimit = typeof args.limit === 'number' ? args.limit : Number(args.limit);
164
+ const limit = Number.isFinite(rawLimit) && rawLimit > 0 ? Math.min(100, Math.floor(rawLimit)) : 25;
165
+ const fromDate = typeof args.fromDate === 'string' && args.fromDate ? args.fromDate : undefined;
166
+ const toDate = typeof args.toDate === 'string' && args.toDate ? args.toDate : undefined;
167
+ const fromBlock = this.parseBlock(args.fromBlock);
168
+ const toBlock = this.parseBlock(args.toBlock);
169
+ const cursor = typeof args.cursor === 'string' && args.cursor ? args.cursor : undefined;
170
+ const rawOrder = typeof args.order === 'string' ? args.order.toUpperCase() : '';
171
+ const order = rawOrder === 'ASC' ? 'ASC' : 'DESC';
172
+ const rawDir = typeof args.direction === 'string' ? args.direction.trim().toLowerCase() : 'all';
173
+ const direction = rawDir === 'send' ? 'send' : rawDir === 'receive' ? 'receive' : 'all';
174
+ // tokenSymbol takes precedence: resolve contract address automatically
175
+ const tokenSymbol = typeof args.tokenSymbol === 'string' && args.tokenSymbol ? args.tokenSymbol.trim() : undefined;
176
+ let contractAddresses = Array.isArray(args.contractAddresses)
177
+ ? args.contractAddresses
178
+ .filter((c) => typeof c === 'string' && !!c)
179
+ .map((c) => c.trim())
180
+ : undefined;
181
+ let resolvedSymbol;
182
+ let resolvedTokenName;
183
+ if (tokenSymbol) {
184
+ const resolved = await this.resolveContractAddressBySymbol(tokenSymbol, address, chain);
185
+ if (resolved) {
186
+ contractAddresses = [resolved.address];
187
+ resolvedSymbol = resolved.symbol;
188
+ resolvedTokenName = resolved.name;
189
+ }
190
+ // If resolution fails we still proceed — Moralis will return all transfers
191
+ // and client-side filtering by symbol below acts as a safety net
192
+ }
193
+ const result = await this.service.getWalletTokenTransfers({
194
+ address,
195
+ chain,
196
+ contractAddresses,
197
+ limit,
198
+ fromDate,
199
+ toDate,
200
+ fromBlock,
201
+ toBlock,
202
+ cursor,
203
+ order,
204
+ });
205
+ if (!result.success) {
206
+ return { error: result.error || 'Failed to fetch token transfers' };
207
+ }
208
+ const walletLower = address.toLowerCase();
209
+ const rawItems = result.data?.result || [];
210
+ // Enrich each transfer with direction, formatted amount, and counterparty
211
+ const allEnriched = rawItems.map((tr) => {
212
+ const isSend = tr.from_address.toLowerCase() === walletLower;
213
+ const dir = isSend ? 'send' : 'receive';
214
+ const counterparty = isSend ? tr.to_address : tr.from_address;
215
+ const counterpartyLabel = isSend ? (tr.to_address_label ?? undefined) : (tr.from_address_label ?? undefined);
216
+ const counterpartyEntity = isSend ? (tr.to_address_entity ?? undefined) : (tr.from_address_entity ?? undefined);
217
+ return {
218
+ ...tr,
219
+ direction: dir,
220
+ amount_formatted: formatTokenAmount(tr),
221
+ counterparty,
222
+ counterparty_label: counterpartyLabel,
223
+ counterparty_entity: counterpartyEntity,
224
+ };
225
+ });
226
+ // Apply client-side direction filter
227
+ let enriched = direction === 'all' ? allEnriched : allEnriched.filter((t) => t.direction === direction);
228
+ // Safety-net symbol filter: when tokenSymbol was provided but contract resolution failed,
229
+ // filter results by symbol client-side so we never return unrelated tokens.
230
+ if (tokenSymbol && !contractAddresses) {
231
+ const symLower = tokenSymbol.toLowerCase();
232
+ enriched = enriched.filter((t) => (t.token_symbol ?? '').toLowerCase() === symLower);
233
+ }
234
+ // Build counterparty aggregation
235
+ const counterparties = this.buildCounterparties(enriched);
236
+ return {
237
+ walletAddress: address,
238
+ chain: chain || 'default',
239
+ resolvedToken: resolvedSymbol
240
+ ? { symbol: resolvedSymbol, name: resolvedTokenName, contractAddress: contractAddresses?.[0] }
241
+ : null,
242
+ filters: {
243
+ tokenSymbol: tokenSymbol || null,
244
+ contractAddresses: contractAddresses || null,
245
+ direction,
246
+ limit,
247
+ order,
248
+ fromDate: fromDate || null,
249
+ toDate: toDate || null,
250
+ fromBlock: fromBlock ?? null,
251
+ toBlock: toBlock ?? null,
252
+ },
253
+ pagination: {
254
+ cursor: result.data?.cursor ?? null,
255
+ pageSize: result.data?.page_size ?? limit,
256
+ page: result.data?.page ?? null,
257
+ hasMore: !!result.data?.cursor,
258
+ },
259
+ transferCount: enriched.length,
260
+ transfers: enriched,
261
+ counterparties,
262
+ };
263
+ }
264
+ /**
265
+ * Resolve a token's contract address from a symbol string.
266
+ *
267
+ * Strategy (in order):
268
+ * 1. Wallet token balances — most reliable, wallet has actually held this token.
269
+ * 2. Token search (Pantograph) — fallback for tokens no longer in the wallet.
270
+ *
271
+ * Returns the first confident match, or undefined if nothing found.
272
+ */
273
+ async resolveContractAddressBySymbol(symbol, walletAddress, chain) {
274
+ const symLower = symbol.toLowerCase();
275
+ // 1. Check wallet's current token balances
276
+ const balancesRes = await this.service.getWalletTokenBalances({ address: walletAddress, chain });
277
+ if (balancesRes.success && balancesRes.data?.result?.length) {
278
+ const match = balancesRes.data.result.find((t) => (t.symbol ?? '').toLowerCase() === symLower);
279
+ if (match) {
280
+ return { address: match.token_address, symbol: match.symbol, name: match.name };
281
+ }
282
+ }
283
+ // 2. Search for the token by symbol on the chain
284
+ const searchRes = await this.service.searchTokensByKey({ key: symbol, chain });
285
+ if (searchRes.success && searchRes.data?.length) {
286
+ const exact = searchRes.data.find((t) => (t.symbol ?? '').toLowerCase() === symLower);
287
+ const candidate = exact ?? searchRes.data[0];
288
+ if (candidate?.token_address) {
289
+ return { address: candidate.token_address, symbol: candidate.symbol, name: candidate.name };
290
+ }
291
+ }
292
+ return undefined;
293
+ }
294
+ /**
295
+ * Aggregate unique counterparties, sorted by tx count descending.
296
+ * Splits into sent[] and received[].
297
+ */
298
+ buildCounterparties(transfers) {
299
+ const sentMap = new Map();
300
+ const receivedMap = new Map();
301
+ for (const t of transfers) {
302
+ const map = t.direction === 'send' ? sentMap : receivedMap;
303
+ const key = t.counterparty.toLowerCase();
304
+ const amount = parseFloat(t.amount_formatted) || 0;
305
+ const existing = map.get(key);
306
+ if (existing) {
307
+ existing.total += amount;
308
+ existing.count += 1;
309
+ if (!existing.label && t.counterparty_label)
310
+ existing.label = t.counterparty_label;
311
+ if (!existing.entity && t.counterparty_entity)
312
+ existing.entity = t.counterparty_entity;
313
+ if (t.block_timestamp < existing.first)
314
+ existing.first = t.block_timestamp;
315
+ if (t.block_timestamp > existing.last)
316
+ existing.last = t.block_timestamp;
317
+ }
318
+ else {
319
+ map.set(key, {
320
+ label: t.counterparty_label,
321
+ entity: t.counterparty_entity,
322
+ total: amount,
323
+ count: 1,
324
+ first: t.block_timestamp,
325
+ last: t.block_timestamp,
326
+ });
327
+ }
328
+ }
329
+ const toArray = (map) => Array.from(map.entries())
330
+ .sort((a, b) => b[1].count - a[1].count)
331
+ .map(([addr, info]) => ({
332
+ address: addr,
333
+ label: info.label,
334
+ entity: info.entity,
335
+ total_amount: info.total.toFixed(6).replace(/\.?0+$/, ''),
336
+ tx_count: info.count,
337
+ first_seen: info.first,
338
+ last_seen: info.last,
339
+ }));
340
+ return { sent: toArray(sentMap), received: toArray(receivedMap) };
341
+ }
342
+ parseBlock(raw) {
343
+ if (typeof raw === 'number')
344
+ return Number.isFinite(raw) ? raw : undefined;
345
+ if (typeof raw === 'string' && raw) {
346
+ const n = Number(raw);
347
+ return Number.isFinite(n) ? n : undefined;
348
+ }
349
+ return undefined;
350
+ }
351
+ }
352
+ exports.WalletTokenTransfersTool = WalletTokenTransfersTool;
353
+ //# sourceMappingURL=WalletTokenTransfersTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletTokenTransfersTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletTokenTransfersTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export { WalletTokenBalancesTool } from './WalletTokenBalancesTool';
2
+ export type { WalletTokenBalancesToolConfig } from './WalletTokenBalancesTool';
3
+ export { WalletHistoryTool } from './WalletHistoryTool';
4
+ export type { WalletHistoryToolConfig } from './WalletHistoryTool';
5
+ export { WalletTokenTransfersTool } from './WalletTokenTransfersTool';
6
+ export type { WalletTokenTransfersToolConfig } from './WalletTokenTransfersTool';
7
+ export { WalletNftTransfersTool } from './WalletNftTransfersTool';
8
+ export type { WalletNftTransfersToolConfig } from './WalletNftTransfersTool';
9
+ export { WalletNetWorthTool } from './WalletNetWorthTool';
10
+ export type { WalletNetWorthToolConfig } from './WalletNetWorthTool';
11
+ export { WalletPnlSummaryTool } from './WalletPnlSummaryTool';
12
+ export type { WalletPnlSummaryToolConfig } from './WalletPnlSummaryTool';
13
+ export { WalletPnlTool } from './WalletPnlTool';
14
+ export type { WalletPnlToolConfig } from './WalletPnlTool';
15
+ export { WalletApprovalsTool } from './WalletApprovalsTool';
16
+ export type { WalletApprovalsToolConfig } from './WalletApprovalsTool';
17
+ export { WalletDefiSummaryTool } from './WalletDefiSummaryTool';
18
+ export type { WalletDefiSummaryToolConfig } from './WalletDefiSummaryTool';
19
+ export { WalletDefiPositionsTool } from './WalletDefiPositionsTool';
20
+ export type { WalletDefiPositionsToolConfig } from './WalletDefiPositionsTool';
21
+ export { WalletDefiProtocolPositionsTool } from './WalletDefiProtocolPositionsTool';
22
+ export type { WalletDefiProtocolPositionsToolConfig } from './WalletDefiProtocolPositionsTool';
23
+ export { TransactionByHashTool } from './TransactionByHashTool';
24
+ export type { TransactionByHashToolConfig } from './TransactionByHashTool';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,YAAY,EAAE,qCAAqC,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC"}