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,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletDefiSummaryTool = void 0;
4
+ const BaseTool_1 = require("../../BaseTool");
5
+ const MoralisService_1 = require("../../../services/MoralisService");
6
+ /**
7
+ * Tool: get-wallet-defi-summary
8
+ *
9
+ * Queries `GET /wallets/{address}/defi/summary` — a high-level DeFi overview
10
+ * for a wallet: total USD value, total unclaimed rewards, number of active
11
+ * protocols and positions, plus a per-protocol breakdown.
12
+ *
13
+ * Moralis docs: https://docs.moralis.com/data-api/evm/wallet/wallet-protocols
14
+ */
15
+ class WalletDefiSummaryTool extends BaseTool_1.BaseTool {
16
+ name = 'get-wallet-defi-summary';
17
+ description = "Get a wallet's DeFi protocols summary: which protocols the wallet is using, " +
18
+ 'total USD value locked across all protocols, total unclaimed rewards/fees, ' +
19
+ 'number of active protocols, and total number of positions. ' +
20
+ 'Returns a per-protocol breakdown (protocol name, logo, url, positions count, usd value, unclaimed). ' +
21
+ 'Use for questions like: "Which DeFi protocols am I using?", "What\'s my total DeFi value?", ' +
22
+ '"How much do I have in DeFi?", "Show my DeFi portfolio overview", "Unclaimed rewards across protocols". ' +
23
+ 'Supports: Ethereum, Optimism, BSC, Polygon, Base, Arbitrum, Avalanche, Linea (EVM mainnets only). ' +
24
+ 'Do NOT use for: detailed per-position data → get-wallet-defi-positions; ' +
25
+ 'positions inside a single protocol → get-wallet-defi-protocol-positions.';
26
+ category = 'blockchain-data';
27
+ parameters = [
28
+ {
29
+ name: 'address',
30
+ type: 'string',
31
+ description: 'EVM wallet address (0x…). If omitted, uses the connected wallet from user context.',
32
+ required: false,
33
+ },
34
+ {
35
+ name: 'chain',
36
+ type: 'string',
37
+ description: 'Hex chain ID: "0x1" Ethereum, "0xa" Optimism, "0x38" BSC, "0x89" Polygon, "0x2105" Base, ' +
38
+ '"0xa4b1" Arbitrum, "0xa86a" Avalanche, "0xe708" Linea. Defaults to connected chain.',
39
+ required: true,
40
+ },
41
+ ];
42
+ service;
43
+ constructor(config) {
44
+ super();
45
+ this.service = new MoralisService_1.MoralisService(config);
46
+ }
47
+ async run(args, userContext) {
48
+ const address = args.address || userContext?.walletAddress || undefined;
49
+ const chain = args.chain || userContext?.chain || undefined;
50
+ if (!address) {
51
+ return { error: 'No wallet address available. Please connect a wallet or pass "address".' };
52
+ }
53
+ const result = await this.service.getWalletDefiSummary({ address, chain });
54
+ if (!result.success) {
55
+ return { error: result.error || 'Failed to fetch wallet DeFi summary' };
56
+ }
57
+ const data = result.data;
58
+ return {
59
+ walletAddress: address,
60
+ chain: chain || 'default',
61
+ activeProtocols: data.active_protocols,
62
+ totalPositions: data.total_positions,
63
+ totalUsdValue: data.total_usd_value,
64
+ totalUnclaimedUsdValue: data.total_unclaimed_usd_value,
65
+ protocols: (data.protocols || []).map((p) => ({
66
+ protocolName: p.protocol_name,
67
+ protocolId: p.protocol_id,
68
+ protocolUrl: p.protocol_url,
69
+ protocolLogo: p.protocol_logo,
70
+ positions: p.positions,
71
+ totalUsdValue: p.total_usd_value,
72
+ totalUnclaimedUsdValue: p.total_unclaimed_usd_value,
73
+ accountHealthFactor: p.account_health_factor ?? null,
74
+ })),
75
+ };
76
+ }
77
+ }
78
+ exports.WalletDefiSummaryTool = WalletDefiSummaryTool;
79
+ //# sourceMappingURL=WalletDefiSummaryTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletDefiSummaryTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletDefiSummaryTool.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,qEAA6F;AAI7F;;;;;;;;GAQG;AACH,MAAa,qBAAsB,SAAQ,mBAAQ;IACjD,IAAI,GAAG,yBAAyB,CAAC;IACjC,WAAW,GACT,8EAA8E;QAC9E,6EAA6E;QAC7E,6DAA6D;QAC7D,sGAAsG;QACtG,8FAA8F;QAC9F,0GAA0G;QAC1G,oGAAoG;QACpG,0EAA0E;QAC1E,0EAA0E,CAAC;IAC7E,QAAQ,GAAG,iBAAiB,CAAC;IAC7B,UAAU,GAAoB;QAC5B;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,oFAAoF;YACjG,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,MAAoC;QAC9C,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,yEAAyE,EAAE,CAAC;QAC9F,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,qCAAqC,EAAE,CAAC;QAC1E,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAK,CAAC;QAC1B,OAAO;YACL,aAAa,EAAE,OAAO;YACtB,KAAK,EAAE,KAAK,IAAI,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,aAAa,EAAE,IAAI,CAAC,eAAe;YACnC,sBAAsB,EAAE,IAAI,CAAC,yBAAyB;YACtD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,YAAY,EAAE,CAAC,CAAC,aAAa;gBAC7B,UAAU,EAAE,CAAC,CAAC,WAAW;gBACzB,WAAW,EAAE,CAAC,CAAC,YAAY;gBAC3B,YAAY,EAAE,CAAC,CAAC,aAAa;gBAC7B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,aAAa,EAAE,CAAC,CAAC,eAAe;gBAChC,sBAAsB,EAAE,CAAC,CAAC,yBAAyB;gBACnD,mBAAmB,EAAE,CAAC,CAAC,qBAAqB,IAAI,IAAI;aACrD,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF;AAvED,sDAuEC"}
@@ -0,0 +1,31 @@
1
+ import { BaseTool } from '../../BaseTool';
2
+ import type { ToolParameter, UserContext } from '../../../types';
3
+ import { type MoralisServiceConfig, type WalletHistoryItem } from '../../../services/MoralisService';
4
+ export type WalletHistoryToolConfig = MoralisServiceConfig;
5
+ export declare class WalletHistoryTool extends BaseTool {
6
+ name: string;
7
+ description: string;
8
+ category: string;
9
+ parameters: ToolParameter[];
10
+ private service;
11
+ constructor(config?: WalletHistoryToolConfig);
12
+ protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<{
13
+ error: string;
14
+ walletAddress?: undefined;
15
+ chain?: undefined;
16
+ pagination?: undefined;
17
+ transactionCount?: undefined;
18
+ transactions?: undefined;
19
+ } | {
20
+ walletAddress: string;
21
+ chain: string;
22
+ pagination: {
23
+ cursor: string | null;
24
+ hasMore: boolean;
25
+ };
26
+ transactionCount: number;
27
+ transactions: WalletHistoryItem[];
28
+ error?: undefined;
29
+ }>;
30
+ }
31
+ //# sourceMappingURL=WalletHistoryTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletHistoryTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletHistoryTool.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,KAAK,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErH,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAE3D,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,IAAI,SAAwB;IAC5B,WAAW,SAWyE;IACpF,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CAuEzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,uBAAuB;cAK5B,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;CAoE7E"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletHistoryTool = void 0;
4
+ const BaseTool_1 = require("../../BaseTool");
5
+ const MoralisService_1 = require("../../../services/MoralisService");
6
+ class WalletHistoryTool extends BaseTool_1.BaseTool {
7
+ name = 'get-wallet-history';
8
+ description = "Get a wallet's decoded on-chain transaction history. Always fetches the latest 100 transactions. " +
9
+ 'Each transaction includes: category, summary, from_address, to_address, and nested arrays: ' +
10
+ 'native_transfers (each has direction="send"|"receive", from_address, to_address, value_formatted, token_symbol), ' +
11
+ 'erc20_transfers (each has direction, token_symbol, value_formatted), nft_transfers. ' +
12
+ 'To find ETH sends/receives, inspect native_transfers[].direction — ETH moves appear across many categories ' +
13
+ '(e.g. "token swap", "send", "receive"), not just category="send". ' +
14
+ 'Use this tool for: native coin transfers, swaps, airdrops, deposits, withdrawals, contract interactions, mixed history. ' +
15
+ 'Supports: Ethereum, Optimism, BSC, Polygon, Base, Arbitrum, Avalanche, Linea, Solana. ' +
16
+ 'Returns paginated results — pass cursor to get the next page. ' +
17
+ 'Do NOT use for: specific ERC-20 tokens → get-wallet-token-transfers; ' +
18
+ 'NFT transfers → get-wallet-nft-transfers; balances → get-wallet-token-balances.';
19
+ category = 'blockchain-data';
20
+ parameters = [
21
+ {
22
+ name: 'address',
23
+ type: 'string',
24
+ description: 'EVM wallet address (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
+ name: 'fromDate',
36
+ type: 'string',
37
+ description: 'Inclusive start date (ISO-8601 or "YYYY-MM-DD").',
38
+ required: false,
39
+ },
40
+ {
41
+ name: 'toDate',
42
+ type: 'string',
43
+ description: 'Inclusive end date (ISO-8601 or "YYYY-MM-DD").',
44
+ required: false,
45
+ },
46
+ {
47
+ name: 'fromBlock',
48
+ type: 'number',
49
+ description: 'Minimum block number.',
50
+ required: false,
51
+ },
52
+ {
53
+ name: 'toBlock',
54
+ type: 'number',
55
+ description: 'Maximum block number.',
56
+ required: false,
57
+ },
58
+ {
59
+ name: 'cursor',
60
+ type: 'string',
61
+ description: 'Pagination cursor from a previous response.',
62
+ required: false,
63
+ },
64
+ {
65
+ name: 'order',
66
+ type: 'string',
67
+ description: '"DESC" newest first (default) or "ASC" oldest first.',
68
+ required: false,
69
+ default: 'DESC',
70
+ },
71
+ {
72
+ name: 'includeInternalTransactions',
73
+ type: 'boolean',
74
+ description: 'Include decoded internal transactions on each item.',
75
+ required: false,
76
+ },
77
+ {
78
+ name: 'nftMetadata',
79
+ type: 'boolean',
80
+ description: 'Include NFT normalized metadata in nft_transfers.',
81
+ required: false,
82
+ },
83
+ {
84
+ name: 'limit',
85
+ type: 'number',
86
+ description: 'Number of transactions to return per page. Defaults to 10.',
87
+ required: false,
88
+ default: 10,
89
+ },
90
+ ];
91
+ service;
92
+ constructor(config) {
93
+ super();
94
+ this.service = new MoralisService_1.MoralisService(config);
95
+ }
96
+ async run(args, userContext) {
97
+ const address = args.address || userContext?.walletAddress || undefined;
98
+ const chain = args.chain || userContext?.chain || undefined;
99
+ if (!address) {
100
+ return { error: 'No wallet address available. Please connect a wallet or pass "address".' };
101
+ }
102
+ const fromDate = typeof args.fromDate === 'string' && args.fromDate ? args.fromDate : undefined;
103
+ const toDate = typeof args.toDate === 'string' && args.toDate ? args.toDate : undefined;
104
+ const fromBlockRaw = typeof args.fromBlock === 'number'
105
+ ? args.fromBlock
106
+ : typeof args.fromBlock === 'string' && args.fromBlock
107
+ ? Number(args.fromBlock)
108
+ : undefined;
109
+ const toBlockRaw = typeof args.toBlock === 'number'
110
+ ? args.toBlock
111
+ : typeof args.toBlock === 'string' && args.toBlock
112
+ ? Number(args.toBlock)
113
+ : undefined;
114
+ const fromBlock = Number.isFinite(fromBlockRaw) ? fromBlockRaw : undefined;
115
+ const toBlock = Number.isFinite(toBlockRaw) ? toBlockRaw : undefined;
116
+ const cursor = typeof args.cursor === 'string' && args.cursor ? args.cursor : undefined;
117
+ const rawOrder = typeof args.order === 'string' ? args.order.toUpperCase() : undefined;
118
+ const order = rawOrder === 'ASC' ? 'ASC' : 'DESC';
119
+ const includeInternalTransactions = typeof args.includeInternalTransactions === 'boolean' ? args.includeInternalTransactions : undefined;
120
+ const nftMetadata = typeof args.nftMetadata === 'boolean' ? args.nftMetadata : undefined;
121
+ const limitRaw = typeof args.limit === 'number' ? args.limit : typeof args.limit === 'string' ? Number(args.limit) : undefined;
122
+ const limit = Number.isFinite(limitRaw) && limitRaw > 0 ? limitRaw : 10;
123
+ const result = await this.service.getWalletHistory({
124
+ address,
125
+ chain,
126
+ limit,
127
+ fromDate,
128
+ toDate,
129
+ fromBlock,
130
+ toBlock,
131
+ cursor,
132
+ order,
133
+ includeInternalTransactions,
134
+ nftMetadata,
135
+ });
136
+ if (!result.success) {
137
+ return { error: result.error || 'Failed to fetch wallet history' };
138
+ }
139
+ const transactions = result.data?.result || [];
140
+ return {
141
+ walletAddress: address,
142
+ chain: chain || 'default',
143
+ pagination: {
144
+ cursor: result.data?.cursor ?? null,
145
+ hasMore: !!result.data?.cursor,
146
+ },
147
+ transactionCount: transactions.length,
148
+ transactions,
149
+ };
150
+ }
151
+ }
152
+ exports.WalletHistoryTool = WalletHistoryTool;
153
+ //# sourceMappingURL=WalletHistoryTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletHistoryTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletHistoryTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { BaseTool } from '../../BaseTool';
2
+ import type { ToolParameter, UserContext } from '../../../types';
3
+ import { type MoralisServiceConfig } from '../../../services/MoralisService';
4
+ export type WalletNetWorthToolConfig = MoralisServiceConfig;
5
+ /**
6
+ * Tool: get-wallet-net-worth
7
+ *
8
+ * Queries `GET /wallets/{address}/net-worth` to return a wallet's total USD
9
+ * value across one or more chains. Response includes per-chain breakdown
10
+ * (native + token USD value) plus a grand total.
11
+ */
12
+ export declare class WalletNetWorthTool extends BaseTool {
13
+ name: string;
14
+ description: string;
15
+ category: string;
16
+ parameters: ToolParameter[];
17
+ private service;
18
+ constructor(config?: WalletNetWorthToolConfig);
19
+ protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<{
20
+ error: string;
21
+ walletAddress?: undefined;
22
+ chainsQueried?: undefined;
23
+ filters?: undefined;
24
+ totalNetWorthUsd?: undefined;
25
+ chains?: undefined;
26
+ unsupportedChainIds?: undefined;
27
+ unavailableChains?: undefined;
28
+ } | {
29
+ walletAddress: string;
30
+ chainsQueried: string[];
31
+ filters: {
32
+ excludeSpam: boolean;
33
+ excludeUnverifiedContracts: boolean | null;
34
+ maxTokenInactivity: number | null;
35
+ minPairSideLiquidityUsd: number | null;
36
+ };
37
+ totalNetWorthUsd: string;
38
+ chains: import("../../../services/MoralisService").WalletNetWorthChainBreakdown[];
39
+ unsupportedChainIds: string[];
40
+ unavailableChains: import("../../../services/MoralisService").WalletNetWorthUnavailableChain[];
41
+ error?: undefined;
42
+ }>;
43
+ }
44
+ //# sourceMappingURL=WalletNetWorthTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletNetWorthTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletNetWorthTool.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,wBAAwB,GAAG,oBAAoB,CAAC;AAE5D;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,IAAI,SAA0B;IAC9B,WAAW,SAWwC;IACnD,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CA2CzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,wBAAwB;cAK7B,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;CAwD7E"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletNetWorthTool = void 0;
4
+ const BaseTool_1 = require("../../BaseTool");
5
+ const MoralisService_1 = require("../../../services/MoralisService");
6
+ /**
7
+ * Tool: get-wallet-net-worth
8
+ *
9
+ * Queries `GET /wallets/{address}/net-worth` to return a wallet's total USD
10
+ * value across one or more chains. Response includes per-chain breakdown
11
+ * (native + token USD value) plus a grand total.
12
+ */
13
+ class WalletNetWorthTool extends BaseTool_1.BaseTool {
14
+ name = 'get-wallet-net-worth';
15
+ description = "Get a wallet's total net worth in USD, with a per-chain breakdown. " +
16
+ 'Returns: total_networth_usd (grand total across all queried chains), ' +
17
+ 'chains[] (each with chain, native_balance_formatted, native_balance_usd, token_balance_usd, networth_usd), ' +
18
+ 'and optional unsupported_chain_ids / unavailable_chains lists. ' +
19
+ 'Use this tool for questions like: ' +
20
+ '"How much is my wallet worth?", "What is my total portfolio value?", ' +
21
+ '"What is my net worth on Ethereum?", "Portfolio value across all chains?". ' +
22
+ 'Pass chains=["0x1","0x2105"] to query multiple chains at once; defaults to the connected chain. ' +
23
+ 'Supports: Ethereum, Optimism, BSC, Polygon, Base, Arbitrum, Avalanche, Linea, Solana. ' +
24
+ 'Do NOT use for: individual token balances → get-wallet-token-balances; ' +
25
+ 'realized profit/loss → get-wallet-pnl-summary.';
26
+ category = 'blockchain-data';
27
+ parameters = [
28
+ {
29
+ name: 'address',
30
+ type: 'string',
31
+ description: 'EVM wallet address (0x…). If omitted, uses the connected wallet from user context.',
32
+ required: false,
33
+ },
34
+ {
35
+ name: 'chains',
36
+ type: 'array',
37
+ description: 'One or more hex chain IDs to aggregate. Values: "0x1" Ethereum, "0xa" Optimism, "0x38" BSC, "0x89" Polygon, "0x2105" Base, ' +
38
+ '"0xa4b1" Arbitrum, "0xa86a" Avalanche, "0xe708" Linea ' +
39
+ 'If omitted, defaults to the connected chain.',
40
+ required: false,
41
+ items: { type: 'string' },
42
+ },
43
+ {
44
+ name: 'excludeSpam',
45
+ type: 'boolean',
46
+ description: 'Exclude tokens flagged as spam. Default true for cleaner totals.',
47
+ required: false,
48
+ default: true,
49
+ },
50
+ {
51
+ name: 'excludeUnverifiedContracts',
52
+ type: 'boolean',
53
+ description: 'Exclude unverified token contracts. Default false.',
54
+ required: false,
55
+ default: false,
56
+ },
57
+ {
58
+ name: 'maxTokenInactivity',
59
+ type: 'number',
60
+ description: 'Exclude tokens that have been inactive for more than N days.',
61
+ required: false,
62
+ },
63
+ {
64
+ name: 'minPairSideLiquidityUsd',
65
+ type: 'number',
66
+ description: 'Exclude tokens with pair-side liquidity below this USD threshold.',
67
+ required: false,
68
+ },
69
+ ];
70
+ service;
71
+ constructor(config) {
72
+ super();
73
+ this.service = new MoralisService_1.MoralisService(config);
74
+ }
75
+ async run(args, userContext) {
76
+ const address = args.address || userContext?.walletAddress || undefined;
77
+ if (!address) {
78
+ return { error: 'No wallet address available. Please connect a wallet or pass "address".' };
79
+ }
80
+ const chains = Array.isArray(args.chains)
81
+ ? args.chains.filter((c) => typeof c === 'string' && !!c).map((c) => c.trim())
82
+ : undefined;
83
+ const fallbackChain = userContext?.chain;
84
+ const chainsToQuery = chains && chains.length > 0 ? chains : fallbackChain ? [fallbackChain] : undefined;
85
+ const excludeSpam = typeof args.excludeSpam === 'boolean' ? args.excludeSpam : true;
86
+ const excludeUnverifiedContracts = typeof args.excludeUnverifiedContracts === 'boolean' ? args.excludeUnverifiedContracts : undefined;
87
+ const maxTokenInactivity = typeof args.maxTokenInactivity === 'number' && Number.isFinite(args.maxTokenInactivity)
88
+ ? args.maxTokenInactivity
89
+ : undefined;
90
+ const minPairSideLiquidityUsd = typeof args.minPairSideLiquidityUsd === 'number' && Number.isFinite(args.minPairSideLiquidityUsd)
91
+ ? args.minPairSideLiquidityUsd
92
+ : undefined;
93
+ const result = await this.service.getWalletNetWorth({
94
+ address,
95
+ chains: chainsToQuery,
96
+ excludeSpam,
97
+ excludeUnverifiedContracts,
98
+ maxTokenInactivity,
99
+ minPairSideLiquidityUsd,
100
+ });
101
+ if (!result.success) {
102
+ return { error: result.error || 'Failed to fetch wallet net worth' };
103
+ }
104
+ const data = result.data;
105
+ return {
106
+ walletAddress: address,
107
+ chainsQueried: chainsToQuery ?? ['default'],
108
+ filters: {
109
+ excludeSpam,
110
+ excludeUnverifiedContracts: excludeUnverifiedContracts ?? null,
111
+ maxTokenInactivity: maxTokenInactivity ?? null,
112
+ minPairSideLiquidityUsd: minPairSideLiquidityUsd ?? null,
113
+ },
114
+ totalNetWorthUsd: data.total_networth_usd,
115
+ chains: data.chains,
116
+ unsupportedChainIds: data.unsupported_chain_ids ?? [],
117
+ unavailableChains: data.unavailable_chains ?? [],
118
+ };
119
+ }
120
+ }
121
+ exports.WalletNetWorthTool = WalletNetWorthTool;
122
+ //# sourceMappingURL=WalletNetWorthTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletNetWorthTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletNetWorthTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { BaseTool } from '../../BaseTool';
2
+ import type { ToolParameter, UserContext } from '../../../types';
3
+ import { type MoralisServiceConfig, type WalletNftTransferItem } from '../../../services/MoralisService';
4
+ export type WalletNftTransfersToolConfig = MoralisServiceConfig;
5
+ interface EnrichedNftTransfer extends WalletNftTransferItem {
6
+ /** "send" = wallet sent this NFT, "receive" = wallet received it */
7
+ direction: 'send' | 'receive';
8
+ /** The other party's address */
9
+ counterparty: string;
10
+ counterparty_label?: string;
11
+ counterparty_entity?: string;
12
+ }
13
+ interface NftCounterpartySummary {
14
+ address: string;
15
+ label?: string;
16
+ entity?: string;
17
+ token_ids: string[];
18
+ collections: string[];
19
+ tx_count: number;
20
+ first_seen: string;
21
+ last_seen: string;
22
+ }
23
+ /**
24
+ * Tool: get-wallet-nft-transfers
25
+ *
26
+ * Queries the dedicated Moralis NFT transfer endpoint
27
+ * `GET /{address}/nft/transfers`, which returns every NFT transfer involving
28
+ * the wallet — optionally scoped to specific NFT contract addresses.
29
+ *
30
+ * Each item is enriched with:
31
+ * - `direction`: "send" or "receive" (from from_address vs wallet)
32
+ * - `counterparty`: the other address with optional label/entity
33
+ * - `last_sale`: purchase price data if `includePrices=true`
34
+ *
35
+ * The response includes a `counterparties` aggregation with token IDs,
36
+ * collections, and timestamps for each unique sender/recipient.
37
+ */
38
+ export declare class WalletNftTransfersTool extends BaseTool {
39
+ name: string;
40
+ description: string;
41
+ category: string;
42
+ parameters: ToolParameter[];
43
+ private service;
44
+ constructor(config?: WalletNftTransfersToolConfig);
45
+ protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<{
46
+ error: string;
47
+ walletAddress?: undefined;
48
+ chain?: undefined;
49
+ filters?: undefined;
50
+ pagination?: undefined;
51
+ transferCount?: undefined;
52
+ transfers?: undefined;
53
+ counterparties?: undefined;
54
+ } | {
55
+ walletAddress: string;
56
+ chain: string;
57
+ filters: {
58
+ contractAddresses: string[] | null;
59
+ direction: "receive" | "send" | "all";
60
+ limit: number;
61
+ order: "ASC" | "DESC";
62
+ fromDate: string | null;
63
+ toDate: string | null;
64
+ fromBlock: number | null;
65
+ toBlock: number | null;
66
+ includePrices: boolean | null;
67
+ };
68
+ pagination: {
69
+ cursor: string | null;
70
+ pageSize: number;
71
+ page: number | null;
72
+ hasMore: boolean;
73
+ };
74
+ transferCount: number;
75
+ transfers: EnrichedNftTransfer[];
76
+ counterparties: {
77
+ sent: NftCounterpartySummary[];
78
+ received: NftCounterpartySummary[];
79
+ };
80
+ error?: undefined;
81
+ }>;
82
+ private buildCounterparties;
83
+ private parseBlock;
84
+ }
85
+ export {};
86
+ //# sourceMappingURL=WalletNftTransfersTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletNftTransfersTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet/WalletNftTransfersTool.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,qBAAqB,EAC3B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAEhE,UAAU,mBAAoB,SAAQ,qBAAqB;IACzD,oEAAoE;IACpE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,IAAI,SAA8B;IAClC,WAAW,SAWuD;IAClE,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CAoFzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,4BAA4B;cAKjC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoGpE,sBAAsB,EAAE;sBACpB,sBAAsB,EAAE;;;;IAFpC,OAAO,CAAC,mBAAmB;IA4D3B,OAAO,CAAC,UAAU;CAQnB"}