keyring-agent-core 0.1.0 → 0.2.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 (301) hide show
  1. package/dist/agent/AgentCore.d.ts +37 -1
  2. package/dist/agent/AgentCore.d.ts.map +1 -1
  3. package/dist/agent/AgentCore.js +287 -144
  4. package/dist/agent/AgentCore.js.map +1 -1
  5. package/dist/agent/QueryRewriter.d.ts +17 -0
  6. package/dist/agent/QueryRewriter.d.ts.map +1 -1
  7. package/dist/agent/QueryRewriter.js +48 -4
  8. package/dist/agent/QueryRewriter.js.map +1 -1
  9. package/dist/agent/Router.d.ts.map +1 -1
  10. package/dist/agent/Router.js +73 -35
  11. package/dist/agent/Router.js.map +1 -1
  12. package/dist/agent/Subagent.d.ts +17 -0
  13. package/dist/agent/Subagent.d.ts.map +1 -1
  14. package/dist/agent/Subagent.js +32 -0
  15. package/dist/agent/Subagent.js.map +1 -1
  16. package/dist/agent/chatGraph.d.ts +364 -0
  17. package/dist/agent/chatGraph.d.ts.map +1 -0
  18. package/dist/agent/chatGraph.js +184 -0
  19. package/dist/agent/chatGraph.js.map +1 -0
  20. package/dist/agent/subagents/AiAgent.d.ts +1 -1
  21. package/dist/agent/subagents/AiAgent.d.ts.map +1 -1
  22. package/dist/agent/subagents/AiAgent.js +24 -20
  23. package/dist/agent/subagents/AiAgent.js.map +1 -1
  24. package/dist/agent/subagents/NftAgent.d.ts +1 -1
  25. package/dist/agent/subagents/NftAgent.d.ts.map +1 -1
  26. package/dist/agent/subagents/NftAgent.js +36 -26
  27. package/dist/agent/subagents/NftAgent.js.map +1 -1
  28. package/dist/agent/subagents/PoolSubgraphAgent.d.ts +6 -0
  29. package/dist/agent/subagents/PoolSubgraphAgent.d.ts.map +1 -0
  30. package/dist/agent/subagents/PoolSubgraphAgent.js +117 -0
  31. package/dist/agent/subagents/PoolSubgraphAgent.js.map +1 -0
  32. package/dist/agent/subagents/TokenAgent.d.ts +1 -1
  33. package/dist/agent/subagents/TokenAgent.d.ts.map +1 -1
  34. package/dist/agent/subagents/TokenAgent.js +23 -22
  35. package/dist/agent/subagents/TokenAgent.js.map +1 -1
  36. package/dist/agent/subagents/WalletActionAgent.d.ts +6 -0
  37. package/dist/agent/subagents/WalletActionAgent.d.ts.map +1 -0
  38. package/dist/agent/subagents/WalletActionAgent.js +55 -0
  39. package/dist/agent/subagents/WalletActionAgent.js.map +1 -0
  40. package/dist/agent/subagents/WalletAgent.d.ts +1 -1
  41. package/dist/agent/subagents/WalletAgent.d.ts.map +1 -1
  42. package/dist/agent/subagents/WalletAgent.js +18 -17
  43. package/dist/agent/subagents/WalletAgent.js.map +1 -1
  44. package/dist/agent/subagents/index.d.ts +23 -3
  45. package/dist/agent/subagents/index.d.ts.map +1 -1
  46. package/dist/agent/subagents/index.js +42 -11
  47. package/dist/agent/subagents/index.js.map +1 -1
  48. package/dist/constants/abi.d.ts +31 -0
  49. package/dist/constants/abi.d.ts.map +1 -1
  50. package/dist/constants/abi.js +24 -1
  51. package/dist/constants/abi.js.map +1 -1
  52. package/dist/functions/web3.d.ts +0 -1
  53. package/dist/functions/web3.d.ts.map +1 -1
  54. package/dist/functions/web3.js +0 -45
  55. package/dist/functions/web3.js.map +1 -1
  56. package/dist/index.d.ts +4 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +7 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/llm/GeminiProvider.d.ts.map +1 -1
  61. package/dist/llm/GeminiProvider.js +115 -34
  62. package/dist/llm/GeminiProvider.js.map +1 -1
  63. package/dist/memory/UpstashKnowledgeBase.d.ts +1 -1
  64. package/dist/memory/UpstashKnowledgeBase.js +1 -1
  65. package/dist/services/MoralisService.d.ts +3 -25
  66. package/dist/services/MoralisService.d.ts.map +1 -1
  67. package/dist/services/MoralisService.js +7 -132
  68. package/dist/services/MoralisService.js.map +1 -1
  69. package/dist/services/PantographService.d.ts +61 -1
  70. package/dist/services/PantographService.d.ts.map +1 -1
  71. package/dist/services/PantographService.js +264 -12
  72. package/dist/services/PantographService.js.map +1 -1
  73. package/dist/services/PoolService.d.ts +1 -4
  74. package/dist/services/PoolService.d.ts.map +1 -1
  75. package/dist/services/PoolService.js +18 -40
  76. package/dist/services/PoolService.js.map +1 -1
  77. package/dist/services/UniswapSubgraphService.d.ts +144 -0
  78. package/dist/services/UniswapSubgraphService.d.ts.map +1 -0
  79. package/dist/services/UniswapSubgraphService.js +606 -0
  80. package/dist/services/UniswapSubgraphService.js.map +1 -0
  81. package/dist/services/rpc.d.ts +35 -0
  82. package/dist/services/rpc.d.ts.map +1 -0
  83. package/dist/services/rpc.js +110 -0
  84. package/dist/services/rpc.js.map +1 -0
  85. package/dist/services/swap/DebridgeAdapter.d.ts +17 -0
  86. package/dist/services/swap/DebridgeAdapter.d.ts.map +1 -1
  87. package/dist/services/swap/DebridgeAdapter.js +74 -6
  88. package/dist/services/swap/DebridgeAdapter.js.map +1 -1
  89. package/dist/services/swap/SwapServiceFactory.d.ts +1 -0
  90. package/dist/services/swap/SwapServiceFactory.d.ts.map +1 -1
  91. package/dist/services/swap/SwapServiceFactory.js +8 -3
  92. package/dist/services/swap/SwapServiceFactory.js.map +1 -1
  93. package/dist/tools/builtin/ai/GeminiSearchAiTool.d.ts +36 -0
  94. package/dist/tools/builtin/ai/GeminiSearchAiTool.d.ts.map +1 -0
  95. package/dist/tools/builtin/ai/GeminiSearchAiTool.js +91 -0
  96. package/dist/tools/builtin/ai/GeminiSearchAiTool.js.map +1 -0
  97. package/dist/tools/builtin/ai/index.d.ts +2 -4
  98. package/dist/tools/builtin/ai/index.d.ts.map +1 -1
  99. package/dist/tools/builtin/ai/index.js +3 -5
  100. package/dist/tools/builtin/ai/index.js.map +1 -1
  101. package/dist/tools/builtin/index.d.ts +2 -0
  102. package/dist/tools/builtin/index.d.ts.map +1 -1
  103. package/dist/tools/builtin/index.js +2 -0
  104. package/dist/tools/builtin/index.js.map +1 -1
  105. package/dist/tools/builtin/nft/BaseNftMessageTool.d.ts +35 -0
  106. package/dist/tools/builtin/nft/BaseNftMessageTool.d.ts.map +1 -0
  107. package/dist/tools/builtin/nft/BaseNftMessageTool.js +45 -0
  108. package/dist/tools/builtin/nft/BaseNftMessageTool.js.map +1 -0
  109. package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts +7 -13
  110. package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts.map +1 -1
  111. package/dist/tools/builtin/nft/NFTContractInfoTool.js +8 -43
  112. package/dist/tools/builtin/nft/NFTContractInfoTool.js.map +1 -1
  113. package/dist/tools/builtin/nft/NFTMetadataTool.d.ts +7 -113
  114. package/dist/tools/builtin/nft/NFTMetadataTool.d.ts.map +1 -1
  115. package/dist/tools/builtin/nft/NFTMetadataTool.js +9 -148
  116. package/dist/tools/builtin/nft/NFTMetadataTool.js.map +1 -1
  117. package/dist/tools/builtin/nft/SendNftTool.d.ts +14 -0
  118. package/dist/tools/builtin/nft/SendNftTool.d.ts.map +1 -0
  119. package/dist/tools/builtin/nft/SendNftTool.js +20 -0
  120. package/dist/tools/builtin/nft/SendNftTool.js.map +1 -0
  121. package/dist/tools/builtin/nft/WalletNFTsTool.d.ts +7 -74
  122. package/dist/tools/builtin/nft/WalletNFTsTool.d.ts.map +1 -1
  123. package/dist/tools/builtin/nft/WalletNFTsTool.js +9 -161
  124. package/dist/tools/builtin/nft/WalletNFTsTool.js.map +1 -1
  125. package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts.map +1 -1
  126. package/dist/tools/builtin/pool/EstimatePoolYieldTool.js +4 -3
  127. package/dist/tools/builtin/pool/EstimatePoolYieldTool.js.map +1 -1
  128. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts +1 -0
  129. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts.map +1 -1
  130. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js +8 -5
  131. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js.map +1 -1
  132. package/dist/tools/builtin/pool/PoolByAddressTool.d.ts.map +1 -1
  133. package/dist/tools/builtin/pool/PoolByAddressTool.js +4 -3
  134. package/dist/tools/builtin/pool/PoolByAddressTool.js.map +1 -1
  135. package/dist/tools/builtin/pool/PoolDetailTool.d.ts.map +1 -1
  136. package/dist/tools/builtin/pool/PoolDetailTool.js +4 -3
  137. package/dist/tools/builtin/pool/PoolDetailTool.js.map +1 -1
  138. package/dist/tools/builtin/pool/PoolSearchTool.d.ts.map +1 -1
  139. package/dist/tools/builtin/pool/PoolSearchTool.js +4 -3
  140. package/dist/tools/builtin/pool/PoolSearchTool.js.map +1 -1
  141. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts +1 -0
  142. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts.map +1 -1
  143. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js +5 -3
  144. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js.map +1 -1
  145. package/dist/tools/builtin/pool/TopPoolsTool.d.ts.map +1 -1
  146. package/dist/tools/builtin/pool/TopPoolsTool.js +4 -3
  147. package/dist/tools/builtin/pool/TopPoolsTool.js.map +1 -1
  148. package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.d.ts +54 -0
  149. package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.d.ts.map +1 -0
  150. package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.js +98 -0
  151. package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.js.map +1 -0
  152. package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.d.ts +63 -0
  153. package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.d.ts.map +1 -0
  154. package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.js +82 -0
  155. package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.js.map +1 -0
  156. package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.d.ts +79 -0
  157. package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.d.ts.map +1 -0
  158. package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.js +97 -0
  159. package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.js.map +1 -0
  160. package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.d.ts +77 -0
  161. package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.d.ts.map +1 -0
  162. package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.js +190 -0
  163. package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.js.map +1 -0
  164. package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.d.ts +107 -0
  165. package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.d.ts.map +1 -0
  166. package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.js +92 -0
  167. package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.js.map +1 -0
  168. package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.d.ts +56 -0
  169. package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.d.ts.map +1 -0
  170. package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.js +94 -0
  171. package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.js.map +1 -0
  172. package/dist/tools/builtin/pool-subgraph/index.d.ts +13 -0
  173. package/dist/tools/builtin/pool-subgraph/index.d.ts.map +1 -0
  174. package/dist/tools/builtin/pool-subgraph/index.js +18 -0
  175. package/dist/tools/builtin/pool-subgraph/index.js.map +1 -0
  176. package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts.map +1 -1
  177. package/dist/tools/builtin/token/TokenAnalyticsTool.js +4 -3
  178. package/dist/tools/builtin/token/TokenAnalyticsTool.js.map +1 -1
  179. package/dist/tools/builtin/token/TokenHoldersTool.d.ts.map +1 -1
  180. package/dist/tools/builtin/token/TokenHoldersTool.js +4 -3
  181. package/dist/tools/builtin/token/TokenHoldersTool.js.map +1 -1
  182. package/dist/tools/builtin/token/TokenInfoTool.d.ts +6 -2
  183. package/dist/tools/builtin/token/TokenInfoTool.d.ts.map +1 -1
  184. package/dist/tools/builtin/token/TokenInfoTool.js +66 -8
  185. package/dist/tools/builtin/token/TokenInfoTool.js.map +1 -1
  186. package/dist/tools/builtin/token/TokenScoreTool.d.ts.map +1 -1
  187. package/dist/tools/builtin/token/TokenScoreTool.js +4 -3
  188. package/dist/tools/builtin/token/TokenScoreTool.js.map +1 -1
  189. package/dist/tools/builtin/token/TopGainersTool.d.ts +10 -19
  190. package/dist/tools/builtin/token/TopGainersTool.d.ts.map +1 -1
  191. package/dist/tools/builtin/token/TopGainersTool.js +44 -54
  192. package/dist/tools/builtin/token/TopGainersTool.js.map +1 -1
  193. package/dist/tools/builtin/token/TopLosersTool.d.ts.map +1 -1
  194. package/dist/tools/builtin/token/TopLosersTool.js +3 -2
  195. package/dist/tools/builtin/token/TopLosersTool.js.map +1 -1
  196. package/dist/tools/builtin/token/TrendingTokensTool.d.ts +1 -1
  197. package/dist/tools/builtin/token/TrendingTokensTool.d.ts.map +1 -1
  198. package/dist/tools/builtin/token/TrendingTokensTool.js +20 -12
  199. package/dist/tools/builtin/token/TrendingTokensTool.js.map +1 -1
  200. package/dist/tools/builtin/token/index.d.ts +0 -2
  201. package/dist/tools/builtin/token/index.d.ts.map +1 -1
  202. package/dist/tools/builtin/token/index.js +1 -3
  203. package/dist/tools/builtin/token/index.js.map +1 -1
  204. package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts.map +1 -1
  205. package/dist/tools/builtin/wallet/TransactionByHashTool.js +4 -3
  206. package/dist/tools/builtin/wallet/TransactionByHashTool.js.map +1 -1
  207. package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts.map +1 -1
  208. package/dist/tools/builtin/wallet/WalletApprovalsTool.js +4 -3
  209. package/dist/tools/builtin/wallet/WalletApprovalsTool.js.map +1 -1
  210. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts.map +1 -1
  211. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js +4 -3
  212. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js.map +1 -1
  213. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts.map +1 -1
  214. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js +4 -3
  215. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js.map +1 -1
  216. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts.map +1 -1
  217. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js +4 -3
  218. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js.map +1 -1
  219. package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts.map +1 -1
  220. package/dist/tools/builtin/wallet/WalletHistoryTool.js +5 -4
  221. package/dist/tools/builtin/wallet/WalletHistoryTool.js.map +1 -1
  222. package/dist/tools/builtin/wallet/WalletNetWorthTool.js +1 -1
  223. package/dist/tools/builtin/wallet/WalletNetWorthTool.js.map +1 -1
  224. package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts.map +1 -1
  225. package/dist/tools/builtin/wallet/WalletNftTransfersTool.js +5 -4
  226. package/dist/tools/builtin/wallet/WalletNftTransfersTool.js.map +1 -1
  227. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts.map +1 -1
  228. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js +4 -3
  229. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js.map +1 -1
  230. package/dist/tools/builtin/wallet/WalletPnlTool.d.ts.map +1 -1
  231. package/dist/tools/builtin/wallet/WalletPnlTool.js +4 -3
  232. package/dist/tools/builtin/wallet/WalletPnlTool.js.map +1 -1
  233. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts.map +1 -1
  234. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js +4 -3
  235. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js.map +1 -1
  236. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts.map +1 -1
  237. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js +5 -4
  238. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js.map +1 -1
  239. package/dist/tools/builtin/wallet/index.d.ts +3 -0
  240. package/dist/tools/builtin/wallet/index.d.ts.map +1 -1
  241. package/dist/tools/builtin/wallet/index.js +5 -1
  242. package/dist/tools/builtin/wallet/index.js.map +1 -1
  243. package/dist/tools/builtin/wallet-action/ApproveTokenTool.d.ts +25 -0
  244. package/dist/tools/builtin/wallet-action/ApproveTokenTool.d.ts.map +1 -0
  245. package/dist/tools/builtin/wallet-action/ApproveTokenTool.js +98 -0
  246. package/dist/tools/builtin/wallet-action/ApproveTokenTool.js.map +1 -0
  247. package/dist/tools/builtin/wallet-action/BaseWalletActionTool.d.ts +211 -0
  248. package/dist/tools/builtin/wallet-action/BaseWalletActionTool.d.ts.map +1 -0
  249. package/dist/tools/builtin/wallet-action/BaseWalletActionTool.js +499 -0
  250. package/dist/tools/builtin/wallet-action/BaseWalletActionTool.js.map +1 -0
  251. package/dist/tools/builtin/wallet-action/BuyTokenTool.d.ts +240 -0
  252. package/dist/tools/builtin/wallet-action/BuyTokenTool.d.ts.map +1 -0
  253. package/dist/tools/builtin/wallet-action/BuyTokenTool.js +1257 -0
  254. package/dist/tools/builtin/wallet-action/BuyTokenTool.js.map +1 -0
  255. package/dist/tools/builtin/wallet-action/SendNativeTool.d.ts +41 -0
  256. package/dist/tools/builtin/wallet-action/SendNativeTool.d.ts.map +1 -0
  257. package/dist/tools/builtin/wallet-action/SendNativeTool.js +127 -0
  258. package/dist/tools/builtin/wallet-action/SendNativeTool.js.map +1 -0
  259. package/dist/tools/builtin/wallet-action/SendTokenTool.d.ts +63 -0
  260. package/dist/tools/builtin/wallet-action/SendTokenTool.d.ts.map +1 -0
  261. package/dist/tools/builtin/wallet-action/SendTokenTool.js +294 -0
  262. package/dist/tools/builtin/wallet-action/SendTokenTool.js.map +1 -0
  263. package/dist/tools/builtin/wallet-action/SwapTokenTool.d.ts +247 -0
  264. package/dist/tools/builtin/wallet-action/SwapTokenTool.d.ts.map +1 -0
  265. package/dist/tools/builtin/wallet-action/SwapTokenTool.js +1258 -0
  266. package/dist/tools/builtin/wallet-action/SwapTokenTool.js.map +1 -0
  267. package/dist/tools/builtin/wallet-action/UnwrapNativeTool.d.ts +20 -0
  268. package/dist/tools/builtin/wallet-action/UnwrapNativeTool.d.ts.map +1 -0
  269. package/dist/tools/builtin/wallet-action/UnwrapNativeTool.js +36 -0
  270. package/dist/tools/builtin/wallet-action/UnwrapNativeTool.js.map +1 -0
  271. package/dist/tools/builtin/wallet-action/WrapNativeTool.d.ts +23 -0
  272. package/dist/tools/builtin/wallet-action/WrapNativeTool.d.ts.map +1 -0
  273. package/dist/tools/builtin/wallet-action/WrapNativeTool.js +54 -0
  274. package/dist/tools/builtin/wallet-action/WrapNativeTool.js.map +1 -0
  275. package/dist/tools/builtin/wallet-action/amountSpec.d.ts +62 -0
  276. package/dist/tools/builtin/wallet-action/amountSpec.d.ts.map +1 -0
  277. package/dist/tools/builtin/wallet-action/amountSpec.js +93 -0
  278. package/dist/tools/builtin/wallet-action/amountSpec.js.map +1 -0
  279. package/dist/tools/builtin/wallet-action/gasReserve.d.ts +42 -0
  280. package/dist/tools/builtin/wallet-action/gasReserve.d.ts.map +1 -0
  281. package/dist/tools/builtin/wallet-action/gasReserve.js +103 -0
  282. package/dist/tools/builtin/wallet-action/gasReserve.js.map +1 -0
  283. package/dist/tools/builtin/wallet-action/index.d.ts +9 -0
  284. package/dist/tools/builtin/wallet-action/index.d.ts.map +1 -0
  285. package/dist/tools/builtin/wallet-action/index.js +20 -0
  286. package/dist/tools/builtin/wallet-action/index.js.map +1 -0
  287. package/dist/tools/chainResolver.d.ts +98 -0
  288. package/dist/tools/chainResolver.d.ts.map +1 -0
  289. package/dist/tools/chainResolver.js +302 -0
  290. package/dist/tools/chainResolver.js.map +1 -0
  291. package/dist/types/index.d.ts +218 -7
  292. package/dist/types/index.d.ts.map +1 -1
  293. package/package.json +7 -3
  294. package/dist/tools/builtin/ai/MoralisCortexTool.d.ts +0 -33
  295. package/dist/tools/builtin/ai/MoralisCortexTool.d.ts.map +0 -1
  296. package/dist/tools/builtin/ai/MoralisCortexTool.js +0 -76
  297. package/dist/tools/builtin/ai/MoralisCortexTool.js.map +0 -1
  298. package/dist/tools/builtin/ai/SolanaCortexTool.d.ts +0 -22
  299. package/dist/tools/builtin/ai/SolanaCortexTool.d.ts.map +0 -1
  300. package/dist/tools/builtin/ai/SolanaCortexTool.js +0 -80
  301. package/dist/tools/builtin/ai/SolanaCortexTool.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuyTokenTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/BuyTokenTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { MoralisServiceConfig } from '../../../services/MoralisService';
2
+ import type { ToolParameter, UserContext, WalletActionType } from '../../../types';
3
+ import { BaseWalletActionTool } from './BaseWalletActionTool';
4
+ /**
5
+ * Tool: open-send-native-form
6
+ *
7
+ * Resolves a "send native coin" intent (ETH/BNB/MATIC/…) and asks the FE to
8
+ * render its `SendNativeForm` pre-filled with `{ to_address, amount }`. The FE
9
+ * builds and submits the transaction itself; this tool only forwards intent.
10
+ */
11
+ export declare class SendNativeTool extends BaseWalletActionTool {
12
+ name: string;
13
+ protected readonly actionType: WalletActionType;
14
+ protected readonly component = "SendNativeForm";
15
+ protected readonly userInputFields: readonly [{
16
+ readonly key: "to_address";
17
+ readonly label: "the recipient address";
18
+ }, {
19
+ readonly key: "amount";
20
+ readonly label: "the amount to send";
21
+ }];
22
+ constructor(config?: MoralisServiceConfig);
23
+ /**
24
+ * A native coin can identify its own chain: "BNB" is only native on BSC,
25
+ * "MATIC"/"POL" on Polygon, "AVAX" on Avalanche. When the user names such a
26
+ * coin but did NOT name a chain explicitly, treat the coin as the chain
27
+ * selection by pinning `args.chain` to it. The base `run()` then runs its
28
+ * normal wrong-chain check: if the wallet is connected to a different chain
29
+ * (e.g. on Optimism and asked to "send bnb"), it prompts the user to switch
30
+ * instead of opening a send-ETH form for the wrong coin. "ETH" is ambiguous
31
+ * (native on several chains), so it never overrides the connected chain.
32
+ */
33
+ protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<unknown>;
34
+ description: string;
35
+ parameters: ToolParameter[];
36
+ protected buildParameters(args: Record<string, unknown>, userContext?: UserContext): Promise<Record<string, string> | {
37
+ error: string;
38
+ _instructions: string;
39
+ }>;
40
+ }
41
+ //# sourceMappingURL=SendNativeTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendNativeTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/SendNativeTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,oBAAoB;IACtD,IAAI,SAA2B;IAC/B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAiB;IAChE,SAAS,CAAC,QAAQ,CAAC,SAAS,oBAAoB;IAEhD,SAAS,CAAC,QAAQ,CAAC,eAAe;;;;;;OAGvB;gBAEC,MAAM,CAAC,EAAE,oBAAoB;IAIzC;;;;;;;;;OASG;cACa,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;IAU5E,WAAW,SAIuB;IAElC,UAAU,EAAE,aAAa,EAAE,CAwCzB;cAEc,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;CA4CzF"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendNativeTool = void 0;
4
+ const chainResolver_1 = require("../../chainResolver");
5
+ const BaseWalletActionTool_1 = require("./BaseWalletActionTool");
6
+ /**
7
+ * Tool: open-send-native-form
8
+ *
9
+ * Resolves a "send native coin" intent (ETH/BNB/MATIC/…) and asks the FE to
10
+ * render its `SendNativeForm` pre-filled with `{ to_address, amount }`. The FE
11
+ * builds and submits the transaction itself; this tool only forwards intent.
12
+ */
13
+ class SendNativeTool extends BaseWalletActionTool_1.BaseWalletActionTool {
14
+ name = 'open-send-native-form';
15
+ actionType = 'send_native';
16
+ component = 'SendNativeForm';
17
+ userInputFields = [
18
+ { key: 'to_address', label: 'the recipient address' },
19
+ { key: 'amount', label: 'the amount to send' },
20
+ ];
21
+ constructor(config) {
22
+ super(config);
23
+ }
24
+ /**
25
+ * A native coin can identify its own chain: "BNB" is only native on BSC,
26
+ * "MATIC"/"POL" on Polygon, "AVAX" on Avalanche. When the user names such a
27
+ * coin but did NOT name a chain explicitly, treat the coin as the chain
28
+ * selection by pinning `args.chain` to it. The base `run()` then runs its
29
+ * normal wrong-chain check: if the wallet is connected to a different chain
30
+ * (e.g. on Optimism and asked to "send bnb"), it prompts the user to switch
31
+ * instead of opening a send-ETH form for the wrong coin. "ETH" is ambiguous
32
+ * (native on several chains), so it never overrides the connected chain.
33
+ */
34
+ async run(args, userContext) {
35
+ if (args.chain == null || args.chain === '') {
36
+ const coinChain = (0, chainResolver_1.chainForNativeSymbol)(args.native_symbol);
37
+ if (coinChain) {
38
+ return super.run({ ...args, chain: coinChain }, userContext);
39
+ }
40
+ }
41
+ return super.run(args, userContext);
42
+ }
43
+ description = "Open the SEND NATIVE form for the chain's native coin (ETH/BNB/MATIC/AVAX/…). Use for ANY native-send " +
44
+ 'intent: "send eth", "send 0.1 ETH", "transfer 1 BNB to vitalik.eth", "gửi ETH". Call EVEN IF the user ' +
45
+ 'did not name an amount or recipient — the form prompts for them. Do NOT use for ERC-20 tokens — use ' +
46
+ 'open-send-token-form instead.';
47
+ parameters = [
48
+ {
49
+ name: 'chain',
50
+ type: 'string',
51
+ description: 'Hex chain id: "0x1" Ethereum, "0xa" Optimism, "0x38" BSC, "0x89" Polygon, "0x2105" Base, ' +
52
+ '"0xa4b1" Arbitrum, "0xa86a" Avalanche, "0xe708" Linea. Defaults to connected chain.',
53
+ required: false,
54
+ },
55
+ {
56
+ name: 'native_symbol',
57
+ type: 'string',
58
+ description: 'The native coin the user named to send, VERBATIM (e.g. "ETH", "BNB", "MATIC", "AVAX"). ALWAYS set ' +
59
+ 'this when the user names the coin ("send bnb" → native_symbol="BNB"); leave blank only when they say ' +
60
+ 'just "send" with no coin. A coin that belongs to one specific chain (BNB→BSC, MATIC/POL→Polygon, ' +
61
+ 'AVAX→Avalanche) selects that chain, so the tool can detect when the wallet is connected elsewhere.',
62
+ required: false,
63
+ },
64
+ {
65
+ name: 'to_address',
66
+ type: 'string',
67
+ description: 'Recipient EVM address (0x…). Omit when unknown — the form will prompt the user.',
68
+ required: false,
69
+ },
70
+ {
71
+ name: 'amount',
72
+ type: 'string',
73
+ description: 'Amount of native coin to send. Accepted forms: ' +
74
+ 'a plain amount ("0.1"); a PERCENT of their balance ("50%"); the literal word "max" for the WHOLE ' +
75
+ 'balance; or a USD value ("5$", "$5", "5 usd"). NORMALIZE natural-language phrasing in ANY language ' +
76
+ 'to one of these before passing it: any "send everything / the whole balance / maximum" phrasing — ' +
77
+ 'regardless of language (e.g. "all", "max", "tất cả", "toàn bộ", "全部", "すべて", "전부", "todo", ' +
78
+ '"tout") — MUST become the literal "max"; any "half" phrasing ("half", "một nửa", "一半", "半分") MUST ' +
79
+ 'become "50%". Pass plain/percent/USD numbers VERBATIM. The tool converts percent/usd/max into a ' +
80
+ 'concrete amount itself (and for the native coin always leaves enough to cover the network fee). ' +
81
+ 'Omit when unknown.',
82
+ required: false,
83
+ },
84
+ ];
85
+ async buildParameters(args, userContext) {
86
+ const params = {};
87
+ if (args.to_address != null) {
88
+ const v = this.normaliseAddress(args.to_address);
89
+ if (v)
90
+ params.to_address = v;
91
+ else if (typeof args.to_address === 'string' && args.to_address.trim()) {
92
+ // Keep ENS-like names verbatim — the FE may resolve them.
93
+ params.to_address = args.to_address.trim();
94
+ }
95
+ }
96
+ // Amount may be plain ("0.1"), a percent of balance ("50%"), or a USD value
97
+ // ("5$") — resolve it against the native SPENDABLE balance. Because the
98
+ // native coin also pays gas, the spendable balance is the held balance minus
99
+ // a silently-estimated gas reserve (gasLimit 30_000 × gasPrice), so "send
100
+ // 100%" / "send all" never leaves the user unable to cover the fee, and an
101
+ // explicit amount over the spendable figure is rejected. The reserve itself
102
+ // is never shown — the user only ever sees the spendable amount. A
103
+ // conversion that can't be done (no balance/price) returns an error payload.
104
+ const chain = this.requireChain(args, userContext) ?? undefined;
105
+ const resolvedAmount = await this.resolveAmountInput({
106
+ rawAmount: args.amount,
107
+ tokenAddress: 'native',
108
+ symbol: 'the native coin',
109
+ chain,
110
+ walletAddress: userContext?.walletAddress ?? undefined,
111
+ gasKind: 'send',
112
+ });
113
+ if (resolvedAmount && 'error' in resolvedAmount)
114
+ return resolvedAmount;
115
+ if (resolvedAmount)
116
+ params.amount = resolvedAmount.amount;
117
+ // Expose the spendable balance (held − gas reserve) so the form card shows
118
+ // what the user can actually send, not the raw balance. Best-effort: when it
119
+ // can't be read the FE falls back to the full balance it fetches itself.
120
+ const spendable = await this.resolveNativeSpendableFormatted(chain, userContext?.walletAddress ?? undefined, 'send');
121
+ if (spendable !== undefined)
122
+ params.spendable = spendable;
123
+ return params;
124
+ }
125
+ }
126
+ exports.SendNativeTool = SendNativeTool;
127
+ //# sourceMappingURL=SendNativeTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendNativeTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/SendNativeTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { MoralisServiceConfig } from '../../../services/MoralisService';
2
+ import type { ToolParameter, UserContext, WalletActionType } from '../../../types';
3
+ import { BaseWalletActionTool } from './BaseWalletActionTool';
4
+ /**
5
+ * Tool: open-send-token-form
6
+ *
7
+ * Resolves a "send ERC-20" intent and asks the FE to render its
8
+ * `SendTokenForm`. Mirrors the chatbot SDK's `send_token` schema:
9
+ * { contract_address, token_symbol, decimals, to_address, amount }
10
+ *
11
+ * Either `contract_address` or `token_symbol` must be given — when only the
12
+ * symbol is provided, the tool resolves the contract address via the user's
13
+ * wallet balances, then falls back to Pantograph token search.
14
+ */
15
+ export declare class SendTokenTool extends BaseWalletActionTool {
16
+ name: string;
17
+ protected readonly actionType: WalletActionType;
18
+ protected readonly component = "SendTokenForm";
19
+ protected readonly userInputFields: readonly [{
20
+ readonly key: "to_address";
21
+ readonly label: "the recipient address";
22
+ }, {
23
+ readonly key: "amount";
24
+ readonly label: "the amount to send";
25
+ }];
26
+ constructor(config?: MoralisServiceConfig);
27
+ description: string;
28
+ parameters: ToolParameter[];
29
+ protected buildParameters(args: Record<string, unknown>, userContext?: UserContext): Promise<Record<string, string> | {
30
+ error: string;
31
+ _instructions: string;
32
+ } | {
33
+ actionButtons: {
34
+ label: string;
35
+ prompt: string;
36
+ }[];
37
+ _instructions: string;
38
+ }>;
39
+ /**
40
+ * Resolve the user's named token from their wallet balances in ONE call,
41
+ * which doubles as the ownership check: a token to send must be held.
42
+ *
43
+ * - Found with a non-zero balance → `{ token }` (address + symbol + decimals).
44
+ * - Found but zero / not held → `{ error: 'no_balance' }`.
45
+ * - Balances unavailable (no moralis / no wallet) → fall back to
46
+ * {@link BaseWalletActionTool.resolveTokenRef} so resolution still works;
47
+ * we can't verify ownership in that case, so we don't block.
48
+ */
49
+ private findOwnedTokenForSend;
50
+ /**
51
+ * Build a token-picker click-prompt from the LLM-supplied, already-localized
52
+ * template (in the user's language) by substituting placeholders:
53
+ * {symbol} → token symbol {amount} → the amount (or '') {to} → recipient 0x… (or '')
54
+ * The localized verb ("send"/"gửi"/…) and the "to" preposition live INSIDE
55
+ * the template, so we only ever substitute concrete values. The click-prompt
56
+ * is re-submitted as a fresh user turn, so keeping it in the user's language
57
+ * keeps that follow-up turn in the same language. Falls back to an English
58
+ * template when the LLM omits one. The full "{to}"-phrase is dropped when no
59
+ * recipient is known, so a trailing "đến"/"to" never dangles.
60
+ */
61
+ private buildSendPrompt;
62
+ }
63
+ //# sourceMappingURL=SendTokenTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendTokenTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/SendTokenTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAsB,MAAM,wBAAwB,CAAC;AAElF;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,SAAQ,oBAAoB;IACrD,IAAI,SAA0B;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAgB;IAC/D,SAAS,CAAC,QAAQ,CAAC,SAAS,mBAAmB;IAI/C,SAAS,CAAC,QAAQ,CAAC,eAAe;;;;;;OAGvB;gBAEC,MAAM,CAAC,EAAE,oBAAoB;IAIzC,WAAW,SAI0F;IAErG,UAAU,EAAE,aAAa,EAAE,CAiEzB;cAEc,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;IAgHxF;;;;;;;;;OASG;YACW,qBAAqB;IAgEnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;CAiBxB"}
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendTokenTool = void 0;
4
+ const BaseWalletActionTool_1 = require("./BaseWalletActionTool");
5
+ /**
6
+ * Tool: open-send-token-form
7
+ *
8
+ * Resolves a "send ERC-20" intent and asks the FE to render its
9
+ * `SendTokenForm`. Mirrors the chatbot SDK's `send_token` schema:
10
+ * { contract_address, token_symbol, decimals, to_address, amount }
11
+ *
12
+ * Either `contract_address` or `token_symbol` must be given — when only the
13
+ * symbol is provided, the tool resolves the contract address via the user's
14
+ * wallet balances, then falls back to Pantograph token search.
15
+ */
16
+ class SendTokenTool extends BaseWalletActionTool_1.BaseWalletActionTool {
17
+ name = 'open-send-token-form';
18
+ actionType = 'send_token';
19
+ component = 'SendTokenForm';
20
+ // contract_address / decimals are resolved by the tool — the user only fills
21
+ // recipient + amount (the token itself is chosen via picker beforehand).
22
+ userInputFields = [
23
+ { key: 'to_address', label: 'the recipient address' },
24
+ { key: 'amount', label: 'the amount to send' },
25
+ ];
26
+ constructor(config) {
27
+ super(config);
28
+ }
29
+ description = 'Open the SEND TOKEN (ERC-20) form. Use for ANY ERC-20 send/transfer intent: "send token", "send USDC", ' +
30
+ '"transfer 50 DAI to 0x…", "gửi 10 USDT". Call this tool EVEN IF the user did not name a token, amount, ' +
31
+ 'or recipient — the tool handles missing token via a picker, the form prompts for the rest. ' +
32
+ "Do NOT use for the chain's native coin (ETH/BNB/MATIC/AVAX) — use open-send-native-form instead.";
33
+ parameters = [
34
+ {
35
+ name: 'chain',
36
+ type: 'string',
37
+ description: 'Hex chain id. Defaults to connected chain.',
38
+ required: false,
39
+ },
40
+ {
41
+ name: 'contract_address',
42
+ type: 'string',
43
+ description: 'ERC-20 token contract address (0x…). Pass when known. Otherwise leave empty and provide token_symbol — ' +
44
+ 'the tool will look up the address.',
45
+ required: false,
46
+ },
47
+ {
48
+ name: 'token_symbol',
49
+ type: 'string',
50
+ description: 'Token symbol (e.g. "USDC"). ALWAYS set this whenever the user names a token to send ("send usdc" → ' +
51
+ 'token_symbol="USDC"); only leave it blank when the user names NO token at all ("send token"), so the ' +
52
+ 'tool can show a wallet picker. Used to auto-resolve the contract address and to display the symbol in ' +
53
+ 'the form. (Pass either this or contract_address.)',
54
+ required: false,
55
+ },
56
+ {
57
+ name: 'decimals',
58
+ type: 'number',
59
+ description: 'Token decimals (e.g. 6 for USDC, 18 for most ERC-20s). Optional.',
60
+ required: false,
61
+ },
62
+ {
63
+ name: 'to_address',
64
+ type: 'string',
65
+ description: 'Recipient EVM address (0x…). Omit when unknown.',
66
+ required: false,
67
+ },
68
+ {
69
+ name: 'amount',
70
+ type: 'string',
71
+ description: 'Amount of the token to send. Accepted forms: a plain amount ("100"); a PERCENT of their balance ' +
72
+ '("50%"); the literal word "max" for the WHOLE balance; or a USD value ("5$", "$5", "5 usd"). ' +
73
+ 'NORMALIZE natural-language phrasing in ANY language to one of these before passing it: any "send ' +
74
+ 'everything / the whole balance / maximum" phrasing — regardless of language (e.g. "all", "max", ' +
75
+ '"tất cả", "toàn bộ", "全部", "すべて", "전부", "todo", "tout") — MUST become "max"; any "half" phrasing ' +
76
+ '("half", "một nửa", "一半", "半分") MUST become "50%". Pass plain/percent/USD numbers VERBATIM. The ' +
77
+ 'tool converts percent/usd/max into a concrete amount itself. Omit when unknown.',
78
+ required: false,
79
+ },
80
+ {
81
+ name: 'send_prompt_template',
82
+ type: 'string',
83
+ description: 'A short imperative "send" command IN THE USER\'S LANGUAGE, used as the label/command when the user has ' +
84
+ 'not yet picked which token to send (token-picker buttons). Write it in the SAME language the user is ' +
85
+ 'using right now. Use these exact placeholders (do not translate the braces): "{symbol}" for the token, ' +
86
+ '"{amount}" for the amount, "{to}" for the recipient address. Put the localized verb and the "to" ' +
87
+ 'preposition directly in the text. ' +
88
+ 'English example: "send {amount} {symbol} to {to}". ' +
89
+ 'Vietnamese example: "gửi {amount} {symbol} đến {to}". ' +
90
+ 'Japanese example: "{to} に {amount} {symbol} を送る". ' +
91
+ 'Always include {symbol}. Include {amount}/{to} too — the tool removes any whose value is unknown.',
92
+ required: true,
93
+ },
94
+ ];
95
+ async buildParameters(args, userContext) {
96
+ const hasContract = this.normaliseAddress(args.contract_address) != null;
97
+ const hasSymbol = typeof args.token_symbol === 'string' && args.token_symbol.trim().length > 0;
98
+ // No token info at all → ask the user to pick one by emitting a token-
99
+ // picker button list built from their actual wallet balances. The agent
100
+ // does NOT open the form in this branch — the user clicks a button which
101
+ // sends a new prompt (e.g. "send USDC") and that triggers a fresh call.
102
+ if (!hasContract && !hasSymbol && this.moralis) {
103
+ const chain = this.requireChain(args, userContext) ?? undefined;
104
+ const walletAddress = userContext?.walletAddress;
105
+ if (walletAddress) {
106
+ const balancesRes = await this.moralis.getWalletTokenBalances({
107
+ address: walletAddress,
108
+ chain,
109
+ excludeSpam: true,
110
+ excludeUnverifiedContracts: true,
111
+ });
112
+ const balances = balancesRes.success ? (balancesRes.data?.result ?? []) : [];
113
+ // Show every holding the user can send — the native coin too. A native
114
+ // pick re-runs as "send <NATIVE>", which the router sends to
115
+ // open-send-native-form; ERC-20 picks come back here. Native needs only
116
+ // a symbol (its token_address may be a placeholder); ERC-20s need both.
117
+ const holdings = balances
118
+ .filter((t) => t.symbol && (t.native_token || t.token_address))
119
+ .sort((a, b) => (b.usd_value ?? 0) - (a.usd_value ?? 0))
120
+ .slice(0, 8);
121
+ if (holdings.length === 0) {
122
+ return {
123
+ error: 'no_token_holdings',
124
+ _instructions: 'The wallet does not hold any sendable tokens on this chain. Tell the user they have nothing to send and suggest they top up first. Do NOT open the form.',
125
+ };
126
+ }
127
+ const toAddrHint = args.to_address != null ? this.normaliseAddress(args.to_address) : null;
128
+ const amountHint = this.normaliseAmount(args.amount);
129
+ // The click-prompt is fed back as a fresh user turn, so it must be in
130
+ // the user's own language. The LLM (which knows that language) supplies
131
+ // a localized template via `send_prompt_template`; we only substitute
132
+ // the concrete token symbol / amount / recipient into its placeholders.
133
+ const promptTemplate = typeof args.send_prompt_template === 'string' ? args.send_prompt_template : '';
134
+ const actionButtons = holdings.map((t) => {
135
+ const sym = t.symbol;
136
+ const balLabel = t.balance_formatted ? this.cleanAmountString(t.balance_formatted) : '';
137
+ const tokenName = t.name ? t.name : '';
138
+ const balPrice = t.usd_value ? `($${t.usd_value.toFixed(2)})` : '';
139
+ return {
140
+ label: `${tokenName}:${balLabel} ${sym} ${balPrice}`.trim(),
141
+ prompt: this.buildSendPrompt(promptTemplate, sym, amountHint, toAddrHint),
142
+ };
143
+ });
144
+ return {
145
+ actionButtons,
146
+ _instructions: "Reply briefly in the user's language: ask them to pick which token they want to send from the options below. Do NOT list the tokens in text — the options already show them. Do NOT mention tool names, UI, or forms.",
147
+ };
148
+ }
149
+ }
150
+ const chain = this.requireChain(args, userContext) ?? undefined;
151
+ const walletAddress = userContext?.walletAddress ?? undefined;
152
+ // The user named a token to send. To send it the wallet MUST hold it, so we
153
+ // look it up directly in their balances — this both resolves the token
154
+ // (address + decimals) and confirms ownership in a single call. If it's not
155
+ // in their balances they own none of it; there's nothing to send, so we
156
+ // tell them rather than open a form for funds they don't have.
157
+ const owned = await this.findOwnedTokenForSend(args, chain, walletAddress);
158
+ if (owned && 'error' in owned) {
159
+ return owned;
160
+ }
161
+ const token = owned?.token;
162
+ const params = {};
163
+ if (token?.address)
164
+ params.contract_address = token.address;
165
+ if (token?.symbol)
166
+ params.token_symbol = token.symbol;
167
+ if (token?.decimals !== undefined)
168
+ params.decimals = String(token.decimals);
169
+ if (args.to_address != null) {
170
+ const v = this.normaliseAddress(args.to_address);
171
+ if (v)
172
+ params.to_address = v;
173
+ else if (typeof args.to_address === 'string' && args.to_address.trim()) {
174
+ params.to_address = args.to_address.trim();
175
+ }
176
+ }
177
+ // Amount may be plain ("100"), a percent of balance ("50%"), or a USD value
178
+ // ("5$") — resolve it against the held balance/price of the token we just
179
+ // confirmed the user owns. A conversion that can't be done returns an error
180
+ // payload we forward; a token address is required to read its balance/price.
181
+ if (token?.address) {
182
+ const resolvedAmount = await this.resolveAmountInput({
183
+ rawAmount: args.amount,
184
+ tokenAddress: token.address,
185
+ symbol: token.symbol,
186
+ chain,
187
+ walletAddress,
188
+ });
189
+ if (resolvedAmount && 'error' in resolvedAmount)
190
+ return resolvedAmount;
191
+ if (resolvedAmount)
192
+ params.amount = resolvedAmount.amount;
193
+ }
194
+ else {
195
+ const amount = this.normaliseAmount(args.amount);
196
+ if (amount)
197
+ params.amount = amount;
198
+ }
199
+ return params;
200
+ }
201
+ /**
202
+ * Resolve the user's named token from their wallet balances in ONE call,
203
+ * which doubles as the ownership check: a token to send must be held.
204
+ *
205
+ * - Found with a non-zero balance → `{ token }` (address + symbol + decimals).
206
+ * - Found but zero / not held → `{ error: 'no_balance' }`.
207
+ * - Balances unavailable (no moralis / no wallet) → fall back to
208
+ * {@link BaseWalletActionTool.resolveTokenRef} so resolution still works;
209
+ * we can't verify ownership in that case, so we don't block.
210
+ */
211
+ async findOwnedTokenForSend(args, chain, walletAddress) {
212
+ const addressKey = this.normaliseAddress(args.contract_address);
213
+ const symbolKey = typeof args.token_symbol === 'string' && args.token_symbol.trim() ? args.token_symbol.trim() : undefined;
214
+ const key = addressKey ?? symbolKey;
215
+ // Can't check balances → resolve only (don't block on ownership).
216
+ if (!this.moralis || !walletAddress || !key) {
217
+ const resolved = await this.resolveTokenRef({
218
+ contractArg: args.contract_address,
219
+ symbolArg: args.token_symbol,
220
+ decimalsArg: args.decimals,
221
+ chain,
222
+ walletAddress,
223
+ });
224
+ if ('error' in resolved) {
225
+ return {
226
+ error: 'token_not_found',
227
+ symbol: resolved.key,
228
+ _instructions: `Could not resolve token "${resolved.key}" to a contract address on this chain. Ask the user to provide the token contract directly.`,
229
+ };
230
+ }
231
+ return { token: resolved.token };
232
+ }
233
+ const keyLower = key.toLowerCase();
234
+ const keyIsAddress = addressKey != null;
235
+ const balRes = await this.moralis.getWalletTokenBalances({
236
+ address: walletAddress,
237
+ chain,
238
+ excludeSpam: true,
239
+ excludeUnverifiedContracts: true,
240
+ });
241
+ const balances = balRes.success ? (balRes.data?.result ?? []) : [];
242
+ const match = balances.find((t) => keyIsAddress ? (t.token_address ?? '').toLowerCase() === keyLower : (t.symbol ?? '').toLowerCase() === keyLower);
243
+ // Held with a positive balance → good to send.
244
+ if (match && match.balance && !/^0*$/.test(match.balance.trim())) {
245
+ const explicitDecimals = this.parseDecimals(args.decimals);
246
+ return {
247
+ token: {
248
+ address: match.token_address,
249
+ symbol: match.symbol ?? symbolKey,
250
+ name: match.name,
251
+ decimals: explicitDecimals ?? (typeof match.decimals === 'number' ? match.decimals : undefined),
252
+ },
253
+ };
254
+ }
255
+ // Not in their balances (or zero) → nothing to send.
256
+ const sym = match?.symbol ?? symbolKey ?? key;
257
+ return {
258
+ error: 'no_balance',
259
+ symbol: sym,
260
+ _instructions: `The user does not hold any ${sym} in their wallet on this chain, so there is nothing to send. Tell them (in their language) that they don't have any ${sym} to send, and suggest they top up or pick another token. Do NOT open a form. Do NOT mention tool names, UI, or forms.`,
261
+ };
262
+ }
263
+ /**
264
+ * Build a token-picker click-prompt from the LLM-supplied, already-localized
265
+ * template (in the user's language) by substituting placeholders:
266
+ * {symbol} → token symbol {amount} → the amount (or '') {to} → recipient 0x… (or '')
267
+ * The localized verb ("send"/"gửi"/…) and the "to" preposition live INSIDE
268
+ * the template, so we only ever substitute concrete values. The click-prompt
269
+ * is re-submitted as a fresh user turn, so keeping it in the user's language
270
+ * keeps that follow-up turn in the same language. Falls back to an English
271
+ * template when the LLM omits one. The full "{to}"-phrase is dropped when no
272
+ * recipient is known, so a trailing "đến"/"to" never dangles.
273
+ */
274
+ buildSendPrompt(template, symbol, amount, toAddress) {
275
+ const tpl = template && template.includes('{symbol}') ? template : 'send {amount} {symbol} to {to}';
276
+ let out = tpl.replace(/\{symbol\}/g, symbol).replace(/\{amount\}/g, amount ?? '');
277
+ if (toAddress) {
278
+ out = out.replace(/\{to\}/g, toAddress);
279
+ }
280
+ else {
281
+ // No recipient: drop {to} together with the adjacent preposition token —
282
+ // which may sit BEFORE it ("... to {to}", "... đến {to}") or AFTER it in
283
+ // languages with postpositions ("{to} に ..."). Try both, then any stray.
284
+ out = out
285
+ .replace(/\s*\S+\s*\{to\}/g, '')
286
+ .replace(/\{to\}\s*\S+\s*/g, '')
287
+ .replace(/\{to\}/g, '');
288
+ }
289
+ // Collapse the extra spaces left by empty substitutions.
290
+ return out.replace(/\s+/g, ' ').trim();
291
+ }
292
+ }
293
+ exports.SendTokenTool = SendTokenTool;
294
+ //# sourceMappingURL=SendTokenTool.js.map