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.
- package/README.md +169 -0
- package/dist/agent/AgentCore.d.ts +220 -0
- package/dist/agent/AgentCore.d.ts.map +1 -0
- package/dist/agent/AgentCore.js +950 -0
- package/dist/agent/AgentCore.js.map +1 -0
- package/dist/agent/QueryRewriter.d.ts +67 -0
- package/dist/agent/QueryRewriter.d.ts.map +1 -0
- package/dist/agent/QueryRewriter.js +262 -0
- package/dist/agent/QueryRewriter.js.map +1 -0
- package/dist/agent/Router.d.ts +33 -0
- package/dist/agent/Router.d.ts.map +1 -0
- package/dist/agent/Router.js +191 -0
- package/dist/agent/Router.js.map +1 -0
- package/dist/agent/Subagent.d.ts +63 -0
- package/dist/agent/Subagent.d.ts.map +1 -0
- package/dist/agent/Subagent.js +240 -0
- package/dist/agent/Subagent.js.map +1 -0
- package/dist/agent/Synthesizer.d.ts +11 -0
- package/dist/agent/Synthesizer.d.ts.map +1 -0
- package/dist/agent/Synthesizer.js +86 -0
- package/dist/agent/Synthesizer.js.map +1 -0
- package/dist/agent/index.d.ts +10 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +24 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/subagents/AiAgent.d.ts +6 -0
- package/dist/agent/subagents/AiAgent.d.ts.map +1 -0
- package/dist/agent/subagents/AiAgent.js +48 -0
- package/dist/agent/subagents/AiAgent.js.map +1 -0
- package/dist/agent/subagents/NftAgent.d.ts +6 -0
- package/dist/agent/subagents/NftAgent.d.ts.map +1 -0
- package/dist/agent/subagents/NftAgent.js +69 -0
- package/dist/agent/subagents/NftAgent.js.map +1 -0
- package/dist/agent/subagents/PoolAgent.d.ts +6 -0
- package/dist/agent/subagents/PoolAgent.d.ts.map +1 -0
- package/dist/agent/subagents/PoolAgent.js +184 -0
- package/dist/agent/subagents/PoolAgent.js.map +1 -0
- package/dist/agent/subagents/TokenAgent.d.ts +6 -0
- package/dist/agent/subagents/TokenAgent.d.ts.map +1 -0
- package/dist/agent/subagents/TokenAgent.js +75 -0
- package/dist/agent/subagents/TokenAgent.js.map +1 -0
- package/dist/agent/subagents/WalletAgent.d.ts +6 -0
- package/dist/agent/subagents/WalletAgent.d.ts.map +1 -0
- package/dist/agent/subagents/WalletAgent.js +92 -0
- package/dist/agent/subagents/WalletAgent.js.map +1 -0
- package/dist/agent/subagents/index.d.ts +14 -0
- package/dist/agent/subagents/index.d.ts.map +1 -0
- package/dist/agent/subagents/index.js +38 -0
- package/dist/agent/subagents/index.js.map +1 -0
- package/dist/constants/abi.d.ts +520 -0
- package/dist/constants/abi.d.ts.map +1 -0
- package/dist/constants/abi.js +667 -0
- package/dist/constants/abi.js.map +1 -0
- package/dist/functions/pool.d.ts +25 -0
- package/dist/functions/pool.d.ts.map +1 -0
- package/dist/functions/pool.js +151 -0
- package/dist/functions/pool.js.map +1 -0
- package/dist/functions/web3.d.ts +32 -0
- package/dist/functions/web3.d.ts.map +1 -0
- package/dist/functions/web3.js +277 -0
- package/dist/functions/web3.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/GeminiProvider.d.ts +16 -0
- package/dist/llm/GeminiProvider.d.ts.map +1 -0
- package/dist/llm/GeminiProvider.js +248 -0
- package/dist/llm/GeminiProvider.js.map +1 -0
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +6 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/memory/ChatHistory.d.ts +83 -0
- package/dist/memory/ChatHistory.d.ts.map +1 -0
- package/dist/memory/ChatHistory.js +143 -0
- package/dist/memory/ChatHistory.js.map +1 -0
- package/dist/memory/KnowledgeBase.d.ts +38 -0
- package/dist/memory/KnowledgeBase.d.ts.map +1 -0
- package/dist/memory/KnowledgeBase.js +139 -0
- package/dist/memory/KnowledgeBase.js.map +1 -0
- package/dist/memory/Summarizer.d.ts +12 -0
- package/dist/memory/Summarizer.d.ts.map +1 -0
- package/dist/memory/Summarizer.js +39 -0
- package/dist/memory/Summarizer.js.map +1 -0
- package/dist/memory/UpstashKnowledgeBase.d.ts +124 -0
- package/dist/memory/UpstashKnowledgeBase.d.ts.map +1 -0
- package/dist/memory/UpstashKnowledgeBase.js +152 -0
- package/dist/memory/UpstashKnowledgeBase.js.map +1 -0
- package/dist/memory/historyUtils.d.ts +58 -0
- package/dist/memory/historyUtils.d.ts.map +1 -0
- package/dist/memory/historyUtils.js +190 -0
- package/dist/memory/historyUtils.js.map +1 -0
- package/dist/memory/index.d.ts +7 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +12 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/ingestKnowledgeBase.d.ts +17 -0
- package/dist/memory/ingestKnowledgeBase.d.ts.map +1 -0
- package/dist/memory/ingestKnowledgeBase.js +35 -0
- package/dist/memory/ingestKnowledgeBase.js.map +1 -0
- package/dist/services/MoralisService.d.ts +1350 -0
- package/dist/services/MoralisService.d.ts.map +1 -0
- package/dist/services/MoralisService.js +1364 -0
- package/dist/services/MoralisService.js.map +1 -0
- package/dist/services/PantographService.d.ts +38 -0
- package/dist/services/PantographService.d.ts.map +1 -0
- package/dist/services/PantographService.js +199 -0
- package/dist/services/PantographService.js.map +1 -0
- package/dist/services/PoolService.d.ts +241 -0
- package/dist/services/PoolService.d.ts.map +1 -0
- package/dist/services/PoolService.js +507 -0
- package/dist/services/PoolService.js.map +1 -0
- package/dist/services/UniswapService.d.ts +289 -0
- package/dist/services/UniswapService.d.ts.map +1 -0
- package/dist/services/UniswapService.js +585 -0
- package/dist/services/UniswapService.js.map +1 -0
- package/dist/services/swap/BaseSwapService.d.ts +17 -0
- package/dist/services/swap/BaseSwapService.d.ts.map +1 -0
- package/dist/services/swap/BaseSwapService.js +19 -0
- package/dist/services/swap/BaseSwapService.js.map +1 -0
- package/dist/services/swap/DebridgeAdapter.d.ts +20 -0
- package/dist/services/swap/DebridgeAdapter.d.ts.map +1 -0
- package/dist/services/swap/DebridgeAdapter.js +175 -0
- package/dist/services/swap/DebridgeAdapter.js.map +1 -0
- package/dist/services/swap/RelayAdapter.d.ts +19 -0
- package/dist/services/swap/RelayAdapter.d.ts.map +1 -0
- package/dist/services/swap/RelayAdapter.js +189 -0
- package/dist/services/swap/RelayAdapter.js.map +1 -0
- package/dist/services/swap/SwapServiceFactory.d.ts +24 -0
- package/dist/services/swap/SwapServiceFactory.d.ts.map +1 -0
- package/dist/services/swap/SwapServiceFactory.js +74 -0
- package/dist/services/swap/SwapServiceFactory.js.map +1 -0
- package/dist/services/swap/addresses.d.ts +3 -0
- package/dist/services/swap/addresses.d.ts.map +1 -0
- package/dist/services/swap/addresses.js +68 -0
- package/dist/services/swap/addresses.js.map +1 -0
- package/dist/services/swap/affiliate.d.ts +17 -0
- package/dist/services/swap/affiliate.d.ts.map +1 -0
- package/dist/services/swap/affiliate.js +126 -0
- package/dist/services/swap/affiliate.js.map +1 -0
- package/dist/services/swap/config.d.ts +9 -0
- package/dist/services/swap/config.d.ts.map +1 -0
- package/dist/services/swap/config.js +19 -0
- package/dist/services/swap/config.js.map +1 -0
- package/dist/services/swap/index.d.ts +10 -0
- package/dist/services/swap/index.d.ts.map +1 -0
- package/dist/services/swap/index.js +22 -0
- package/dist/services/swap/index.js.map +1 -0
- package/dist/services/swap/types.d.ts +89 -0
- package/dist/services/swap/types.d.ts.map +1 -0
- package/dist/services/swap/types.js +6 -0
- package/dist/services/swap/types.js.map +1 -0
- package/dist/tools/BaseTool.d.ts +15 -0
- package/dist/tools/BaseTool.d.ts.map +1 -0
- package/dist/tools/BaseTool.js +35 -0
- package/dist/tools/BaseTool.js.map +1 -0
- package/dist/tools/ToolRegistry.d.ts +27 -0
- package/dist/tools/ToolRegistry.d.ts.map +1 -0
- package/dist/tools/ToolRegistry.js +80 -0
- package/dist/tools/ToolRegistry.js.map +1 -0
- package/dist/tools/builtin/ai/MoralisCortexTool.d.ts +33 -0
- package/dist/tools/builtin/ai/MoralisCortexTool.d.ts.map +1 -0
- package/dist/tools/builtin/ai/MoralisCortexTool.js +76 -0
- package/dist/tools/builtin/ai/MoralisCortexTool.js.map +1 -0
- package/dist/tools/builtin/ai/SolanaCortexTool.d.ts +22 -0
- package/dist/tools/builtin/ai/SolanaCortexTool.d.ts.map +1 -0
- package/dist/tools/builtin/ai/SolanaCortexTool.js +80 -0
- package/dist/tools/builtin/ai/SolanaCortexTool.js.map +1 -0
- package/dist/tools/builtin/ai/index.d.ts +5 -0
- package/dist/tools/builtin/ai/index.d.ts.map +1 -0
- package/dist/tools/builtin/ai/index.js +8 -0
- package/dist/tools/builtin/ai/index.js.map +1 -0
- package/dist/tools/builtin/index.d.ts +6 -0
- package/dist/tools/builtin/index.d.ts.map +1 -0
- package/dist/tools/builtin/index.js +22 -0
- package/dist/tools/builtin/index.js.map +1 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts +21 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts.map +1 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.js +54 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.js.map +1 -0
- package/dist/tools/builtin/nft/NFTMetadataTool.d.ts +121 -0
- package/dist/tools/builtin/nft/NFTMetadataTool.d.ts.map +1 -0
- package/dist/tools/builtin/nft/NFTMetadataTool.js +159 -0
- package/dist/tools/builtin/nft/NFTMetadataTool.js.map +1 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.d.ts +82 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.d.ts.map +1 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.js +172 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.js.map +1 -0
- package/dist/tools/builtin/nft/index.d.ts +7 -0
- package/dist/tools/builtin/nft/index.d.ts.map +1 -0
- package/dist/tools/builtin/nft/index.js +10 -0
- package/dist/tools/builtin/nft/index.js.map +1 -0
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts +124 -0
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.js +235 -0
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.js.map +1 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts +127 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js +517 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js.map +1 -0
- package/dist/tools/builtin/pool/PoolByAddressTool.d.ts +127 -0
- package/dist/tools/builtin/pool/PoolByAddressTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/PoolByAddressTool.js +237 -0
- package/dist/tools/builtin/pool/PoolByAddressTool.js.map +1 -0
- package/dist/tools/builtin/pool/PoolDetailTool.d.ts +127 -0
- package/dist/tools/builtin/pool/PoolDetailTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/PoolDetailTool.js +272 -0
- package/dist/tools/builtin/pool/PoolDetailTool.js.map +1 -0
- package/dist/tools/builtin/pool/PoolSearchTool.d.ts +50 -0
- package/dist/tools/builtin/pool/PoolSearchTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/PoolSearchTool.js +159 -0
- package/dist/tools/builtin/pool/PoolSearchTool.js.map +1 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts +123 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js +380 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js.map +1 -0
- package/dist/tools/builtin/pool/TopPoolsTool.d.ts +68 -0
- package/dist/tools/builtin/pool/TopPoolsTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/TopPoolsTool.js +158 -0
- package/dist/tools/builtin/pool/TopPoolsTool.js.map +1 -0
- package/dist/tools/builtin/pool/index.d.ts +15 -0
- package/dist/tools/builtin/pool/index.d.ts.map +1 -0
- package/dist/tools/builtin/pool/index.js +18 -0
- package/dist/tools/builtin/pool/index.js.map +1 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts +71 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.js +146 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.js.map +1 -0
- package/dist/tools/builtin/token/TokenHoldersTool.d.ts +81 -0
- package/dist/tools/builtin/token/TokenHoldersTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TokenHoldersTool.js +138 -0
- package/dist/tools/builtin/token/TokenHoldersTool.js.map +1 -0
- package/dist/tools/builtin/token/TokenInfoTool.d.ts +36 -0
- package/dist/tools/builtin/token/TokenInfoTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TokenInfoTool.js +163 -0
- package/dist/tools/builtin/token/TokenInfoTool.js.map +1 -0
- package/dist/tools/builtin/token/TokenScoreTool.d.ts +63 -0
- package/dist/tools/builtin/token/TokenScoreTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TokenScoreTool.js +147 -0
- package/dist/tools/builtin/token/TokenScoreTool.js.map +1 -0
- package/dist/tools/builtin/token/TopGainersTool.d.ts +46 -0
- package/dist/tools/builtin/token/TopGainersTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TopGainersTool.js +110 -0
- package/dist/tools/builtin/token/TopGainersTool.js.map +1 -0
- package/dist/tools/builtin/token/TopLosersTool.d.ts +66 -0
- package/dist/tools/builtin/token/TopLosersTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TopLosersTool.js +128 -0
- package/dist/tools/builtin/token/TopLosersTool.js.map +1 -0
- package/dist/tools/builtin/token/TrendingTokensTool.d.ts +39 -0
- package/dist/tools/builtin/token/TrendingTokensTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TrendingTokensTool.js +75 -0
- package/dist/tools/builtin/token/TrendingTokensTool.js.map +1 -0
- package/dist/tools/builtin/token/index.d.ts +15 -0
- package/dist/tools/builtin/token/index.d.ts.map +1 -0
- package/dist/tools/builtin/token/index.js +18 -0
- package/dist/tools/builtin/token/index.js.map +1 -0
- package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts +70 -0
- package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/TransactionByHashTool.js +110 -0
- package/dist/tools/builtin/wallet/TransactionByHashTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts +107 -0
- package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletApprovalsTool.js +163 -0
- package/dist/tools/builtin/wallet/WalletApprovalsTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts +61 -0
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js +99 -0
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts +68 -0
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js +114 -0
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts +50 -0
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js +79 -0
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts +31 -0
- package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletHistoryTool.js +153 -0
- package/dist/tools/builtin/wallet/WalletHistoryTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts +44 -0
- package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletNetWorthTool.js +122 -0
- package/dist/tools/builtin/wallet/WalletNetWorthTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts +86 -0
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.js +264 -0
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts +43 -0
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js +88 -0
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletPnlTool.d.ts +43 -0
- package/dist/tools/builtin/wallet/WalletPnlTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletPnlTool.js +174 -0
- package/dist/tools/builtin/wallet/WalletPnlTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts +35 -0
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js +67 -0
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts +109 -0
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js +353 -0
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js.map +1 -0
- package/dist/tools/builtin/wallet/index.d.ts +25 -0
- package/dist/tools/builtin/wallet/index.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/index.js +28 -0
- package/dist/tools/builtin/wallet/index.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +23 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/index.d.ts +566 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolanaCortexTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/ai/SolanaCortexTool.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,sBAAsB,GAAG,oBAAoB,CAAC;AAoB1D,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,IAAI,SAAsB;IAC1B,WAAW,SAS6C;IACxD,QAAQ,SAAmB;IAC3B,UAAU,EAAE,aAAa,EAAE,CAgBzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,sBAAsB;cAK3B,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;CA2B7E"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SolanaCortexTool = void 0;
|
|
4
|
+
const BaseTool_1 = require("../../BaseTool");
|
|
5
|
+
const MoralisService_1 = require("../../../services/MoralisService");
|
|
6
|
+
const SOLANA_SYSTEM_PROMPT = `You are a Solana blockchain data specialist with real-time on-chain access.
|
|
7
|
+
|
|
8
|
+
Your expertise covers:
|
|
9
|
+
- Native SOL and SPL token balances, transfers, prices
|
|
10
|
+
- Solana NFTs (Metaplex standard, compressed NFTs / cNFTs)
|
|
11
|
+
- Solana DeFi: Jupiter, Raydium, Orca, Marinade, Jito, etc.
|
|
12
|
+
- Solana wallet history, transactions, staking, validators
|
|
13
|
+
- Token metadata, collection info, rarity
|
|
14
|
+
- Solana program interactions and decoded instructions
|
|
15
|
+
|
|
16
|
+
Rules:
|
|
17
|
+
- Always use accurate, current on-chain data.
|
|
18
|
+
- When returning lists (tokens, NFTs, transactions), structure them clearly.
|
|
19
|
+
- Express SOL amounts with 9 decimal places (lamports base unit).
|
|
20
|
+
- For USD values, use current market prices.
|
|
21
|
+
- If data is unavailable or the address has no activity, say so explicitly.
|
|
22
|
+
- Be concise but complete — cover all aspects the user asked about.`;
|
|
23
|
+
class SolanaCortexTool extends BaseTool_1.BaseTool {
|
|
24
|
+
name = 'solana-cortex-ai';
|
|
25
|
+
description = 'Specialized AI tool for all Solana blockchain questions. ' +
|
|
26
|
+
'Use this tool when: (1) the user is connected to Solana chain (0x736f6c), ' +
|
|
27
|
+
'(2) the user provides a Solana wallet address (base58, not 0x…), ' +
|
|
28
|
+
'(3) the user asks about SOL, SPL tokens, Solana NFTs, Solana DeFi (Jupiter, Raydium, Orca, Marinade, Jito), ' +
|
|
29
|
+
'Solana staking, validators, or any Solana-specific topic. ' +
|
|
30
|
+
'The "prompt" parameter must be a precise, self-contained English question crafted from the user query ' +
|
|
31
|
+
'including all relevant context (wallet address, token names, time range, etc.). ' +
|
|
32
|
+
'Examples: token/SOL balances on a Solana address, Solana NFT holdings, Solana transaction history, ' +
|
|
33
|
+
'SPL token price or metadata, Solana DeFi positions.';
|
|
34
|
+
category = 'blockchain-ai';
|
|
35
|
+
parameters = [
|
|
36
|
+
{
|
|
37
|
+
name: 'prompt',
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'A precise, self-contained English question for the Solana AI. ' +
|
|
40
|
+
'Include all relevant details: wallet address (if applicable), token name/mint, time range, chain context. ' +
|
|
41
|
+
'Example: "What are the current SOL and SPL token balances for wallet EaQEsLPoV9Hy12C5nARZvTLATSVUecgR3VxfoB8WxbWd on Solana?"',
|
|
42
|
+
required: true,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'address',
|
|
46
|
+
type: 'string',
|
|
47
|
+
description: 'Solana wallet address (base58). If omitted, uses the connected wallet from user context.',
|
|
48
|
+
required: false,
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
service;
|
|
52
|
+
constructor(config) {
|
|
53
|
+
super();
|
|
54
|
+
this.service = new MoralisService_1.MoralisService(config);
|
|
55
|
+
}
|
|
56
|
+
async run(args, userContext) {
|
|
57
|
+
const prompt = args.prompt;
|
|
58
|
+
if (!prompt) {
|
|
59
|
+
return { error: 'Missing required parameter: prompt' };
|
|
60
|
+
}
|
|
61
|
+
const address = args.address || userContext?.walletAddress || null;
|
|
62
|
+
const contextLines = [];
|
|
63
|
+
if (address)
|
|
64
|
+
contextLines.push(`Solana wallet address: ${address}`);
|
|
65
|
+
const enrichedPrompt = contextLines.length > 0 ? `${contextLines.join('\n')}\n\n${prompt}` : prompt;
|
|
66
|
+
const result = await this.service.chatWithCortex({
|
|
67
|
+
prompt: enrichedPrompt,
|
|
68
|
+
systemPrompt: SOLANA_SYSTEM_PROMPT,
|
|
69
|
+
});
|
|
70
|
+
if (!result.success) {
|
|
71
|
+
return { error: result.error || 'Solana Cortex AI request failed' };
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
source: 'solana-cortex-ai',
|
|
75
|
+
answer: result.data?.text || '',
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.SolanaCortexTool = SolanaCortexTool;
|
|
80
|
+
//# sourceMappingURL=SolanaCortexTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolanaCortexTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/ai/SolanaCortexTool.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,qEAA6F;AAI7F,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;oEAgBuC,CAAC;AAErE,MAAa,gBAAiB,SAAQ,mBAAQ;IAC5C,IAAI,GAAG,kBAAkB,CAAC;IAC1B,WAAW,GACT,2DAA2D;QAC3D,4EAA4E;QAC5E,mEAAmE;QACnE,8GAA8G;QAC9G,4DAA4D;QAC5D,wGAAwG;QACxG,kFAAkF;QAClF,qGAAqG;QACrG,qDAAqD,CAAC;IACxD,QAAQ,GAAG,eAAe,CAAC;IAC3B,UAAU,GAAoB;QAC5B;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,gEAAgE;gBAChE,4GAA4G;gBAC5G,+HAA+H;YACjI,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0FAA0F;YACvG,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEM,OAAO,CAAiB;IAEhC,YAAY,MAA+B;QACzC,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,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,WAAW,EAAE,aAAa,IAAI,IAAI,CAAC;QAE/E,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,OAAO;YAAE,YAAY,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QAEpE,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAEpG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YAC/C,MAAM,EAAE,cAAc;YACtB,YAAY,EAAE,oBAAoB;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,iCAAiC,EAAE,CAAC;QACtE,CAAC;QAED,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;SAChC,CAAC;IACJ,CAAC;CACF;AAjED,4CAiEC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MoralisCortexTool } from './MoralisCortexTool';
|
|
2
|
+
export type { MoralisCortexToolConfig } from './MoralisCortexTool';
|
|
3
|
+
export { SolanaCortexTool } from './SolanaCortexTool';
|
|
4
|
+
export type { SolanaCortexToolConfig } from './SolanaCortexTool';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SolanaCortexTool = exports.MoralisCortexTool = void 0;
|
|
4
|
+
var MoralisCortexTool_1 = require("./MoralisCortexTool");
|
|
5
|
+
Object.defineProperty(exports, "MoralisCortexTool", { enumerable: true, get: function () { return MoralisCortexTool_1.MoralisCortexTool; } });
|
|
6
|
+
var SolanaCortexTool_1 = require("./SolanaCortexTool");
|
|
7
|
+
Object.defineProperty(exports, "SolanaCortexTool", { enumerable: true, get: function () { return SolanaCortexTool_1.SolanaCortexTool; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/builtin/ai/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,MAAM,CAAC;AACrB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./token"), exports);
|
|
18
|
+
__exportStar(require("./wallet"), exports);
|
|
19
|
+
__exportStar(require("./nft"), exports);
|
|
20
|
+
__exportStar(require("./ai"), exports);
|
|
21
|
+
__exportStar(require("./pool"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/builtin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,wCAAsB;AACtB,uCAAqB;AACrB,yCAAuB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseTool } from '../../BaseTool';
|
|
2
|
+
import type { ToolParameter, UserContext } from '../../../types';
|
|
3
|
+
import { type MoralisServiceConfig } from '../../../services/MoralisService';
|
|
4
|
+
export type NFTContractInfoToolConfig = MoralisServiceConfig;
|
|
5
|
+
/**
|
|
6
|
+
* Tool: get-nft-contract-info
|
|
7
|
+
*
|
|
8
|
+
* Fetches metadata for an NFT contract (name, symbol, type) via Moralis EVM API.
|
|
9
|
+
*/
|
|
10
|
+
export declare class NFTContractInfoTool extends BaseTool {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
category: string;
|
|
14
|
+
parameters: ToolParameter[];
|
|
15
|
+
private service;
|
|
16
|
+
constructor(config?: NFTContractInfoToolConfig);
|
|
17
|
+
protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<import("../../../services/MoralisService").NFTContractMetadata | {
|
|
18
|
+
error: string;
|
|
19
|
+
} | undefined>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=NFTContractInfoTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NFTContractInfoTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/nft/NFTContractInfoTool.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,yBAAyB,GAAG,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C,IAAI,SAA2B;IAC/B,WAAW,SAGsE;IACjF,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CAezB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,yBAAyB;cAK9B,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;CAmB7E"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NFTContractInfoTool = void 0;
|
|
4
|
+
const BaseTool_1 = require("../../BaseTool");
|
|
5
|
+
const MoralisService_1 = require("../../../services/MoralisService");
|
|
6
|
+
/**
|
|
7
|
+
* Tool: get-nft-contract-info
|
|
8
|
+
*
|
|
9
|
+
* Fetches metadata for an NFT contract (name, symbol, type) via Moralis EVM API.
|
|
10
|
+
*/
|
|
11
|
+
class NFTContractInfoTool extends BaseTool_1.BaseTool {
|
|
12
|
+
name = 'get-nft-contract-info';
|
|
13
|
+
description = 'Get metadata for an NFT collection/contract: name, symbol, and contract type (ERC721/ERC1155). ' +
|
|
14
|
+
'Use this when the user asks about a specific NFT collection or contract address. ' +
|
|
15
|
+
'Supports: Ethereum, Optimism, BSC, Polygon, Base, Arbitrum, Avalanche, Linea';
|
|
16
|
+
category = 'blockchain-data';
|
|
17
|
+
parameters = [
|
|
18
|
+
{
|
|
19
|
+
name: 'contractAddress',
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'NFT contract address (0x…).',
|
|
22
|
+
required: true,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'chain',
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Hex chain ID: "0x1" Ethereum, "0xa" Optimism, "0x38" BSC, "0x89" Polygon, "0x2105" Base, ' +
|
|
28
|
+
'"0xa4b1" Arbitrum, "0xa86a" Avalanche, "0xe708" Linea . Defaults to connected chain.',
|
|
29
|
+
required: true,
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
service;
|
|
33
|
+
constructor(config) {
|
|
34
|
+
super();
|
|
35
|
+
this.service = new MoralisService_1.MoralisService(config);
|
|
36
|
+
}
|
|
37
|
+
async run(args, userContext) {
|
|
38
|
+
const contractAddress = args.contractAddress;
|
|
39
|
+
const chain = args.chain || userContext?.chain || undefined;
|
|
40
|
+
if (!contractAddress) {
|
|
41
|
+
return { error: 'NFT contract address is required.' };
|
|
42
|
+
}
|
|
43
|
+
const result = await this.service.getNftContractMetadata({
|
|
44
|
+
address: contractAddress,
|
|
45
|
+
chain,
|
|
46
|
+
});
|
|
47
|
+
if (!result.success) {
|
|
48
|
+
return { error: result.error || 'Failed to fetch NFT contract metadata' };
|
|
49
|
+
}
|
|
50
|
+
return result.data;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.NFTContractInfoTool = NFTContractInfoTool;
|
|
54
|
+
//# sourceMappingURL=NFTContractInfoTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NFTContractInfoTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/nft/NFTContractInfoTool.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,qEAA6F;AAI7F;;;;GAIG;AACH,MAAa,mBAAoB,SAAQ,mBAAQ;IAC/C,IAAI,GAAG,uBAAuB,CAAC;IAC/B,WAAW,GACT,iGAAiG;QACjG,mFAAmF;QACnF,8EAA8E,CAAC;IACjF,QAAQ,GAAG,iBAAiB,CAAC;IAC7B,UAAU,GAAoB;QAC5B;YACE,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,2FAA2F;gBAC3F,sFAAsF;YACxF,QAAQ,EAAE,IAAI;SACf;KACF,CAAC;IAEM,OAAO,CAAiB;IAEhC,YAAY,MAAkC;QAC5C,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,eAAe,GAAG,IAAI,CAAC,eAAyB,CAAC;QACvD,MAAM,KAAK,GAAI,IAAI,CAAC,KAAgB,IAAI,WAAW,EAAE,KAAK,IAAI,SAAS,CAAC;QAExE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;YACvD,OAAO,EAAE,eAAe;YACxB,KAAK;SACN,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,uCAAuC,EAAE,CAAC;QAC5E,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;CACF;AAlDD,kDAkDC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { BaseTool } from '../../BaseTool';
|
|
2
|
+
import type { ToolParameter, UserContext } from '../../../types';
|
|
3
|
+
import { type MoralisServiceConfig } from '../../../services/MoralisService';
|
|
4
|
+
export type NFTMetadataToolConfig = MoralisServiceConfig;
|
|
5
|
+
/**
|
|
6
|
+
* Tool: get-nft-metadata
|
|
7
|
+
*
|
|
8
|
+
* Fetches full metadata for a single NFT identified by its contract address
|
|
9
|
+
* and token id via the Moralis EVM `GET /nft/{address}/{token_id}` endpoint.
|
|
10
|
+
*
|
|
11
|
+
* Moralis docs: https://docs.moralis.com/data-api/evm/nft/metadata/nft-metadata
|
|
12
|
+
*/
|
|
13
|
+
export declare class NFTMetadataTool extends BaseTool {
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
category: string;
|
|
17
|
+
parameters: ToolParameter[];
|
|
18
|
+
private service;
|
|
19
|
+
constructor(config?: NFTMetadataToolConfig);
|
|
20
|
+
protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<{
|
|
21
|
+
error: string;
|
|
22
|
+
chain?: undefined;
|
|
23
|
+
contractAddress?: undefined;
|
|
24
|
+
tokenId?: undefined;
|
|
25
|
+
contractType?: undefined;
|
|
26
|
+
amount?: undefined;
|
|
27
|
+
owner?: undefined;
|
|
28
|
+
minter?: undefined;
|
|
29
|
+
blockNumber?: undefined;
|
|
30
|
+
blockNumberMinted?: undefined;
|
|
31
|
+
tokenHash?: undefined;
|
|
32
|
+
name?: undefined;
|
|
33
|
+
description?: undefined;
|
|
34
|
+
image?: undefined;
|
|
35
|
+
animationUrl?: undefined;
|
|
36
|
+
attributes?: undefined;
|
|
37
|
+
tokenUri?: undefined;
|
|
38
|
+
metadata?: undefined;
|
|
39
|
+
collection?: undefined;
|
|
40
|
+
media?: undefined;
|
|
41
|
+
floorPrice?: undefined;
|
|
42
|
+
floorPriceUsd?: undefined;
|
|
43
|
+
floorPriceCurrency?: undefined;
|
|
44
|
+
rarityRank?: undefined;
|
|
45
|
+
rarityPercentage?: undefined;
|
|
46
|
+
rarityLabel?: undefined;
|
|
47
|
+
verifiedCollection?: undefined;
|
|
48
|
+
possibleSpam?: undefined;
|
|
49
|
+
lastMetadataSync?: undefined;
|
|
50
|
+
lastTokenUriSync?: undefined;
|
|
51
|
+
} | {
|
|
52
|
+
chain: string | undefined;
|
|
53
|
+
contractAddress: string;
|
|
54
|
+
tokenId: string;
|
|
55
|
+
contractType: "ERC721" | "ERC1155";
|
|
56
|
+
amount: string;
|
|
57
|
+
owner: string;
|
|
58
|
+
minter: string | undefined;
|
|
59
|
+
blockNumber: string;
|
|
60
|
+
blockNumberMinted: string;
|
|
61
|
+
tokenHash: string;
|
|
62
|
+
name: string;
|
|
63
|
+
description: string | undefined;
|
|
64
|
+
image: string | undefined;
|
|
65
|
+
animationUrl: string | undefined;
|
|
66
|
+
attributes: {
|
|
67
|
+
trait_type: string;
|
|
68
|
+
value: string;
|
|
69
|
+
}[] | undefined;
|
|
70
|
+
tokenUri: string | undefined;
|
|
71
|
+
metadata: string | undefined;
|
|
72
|
+
collection: {
|
|
73
|
+
name: string;
|
|
74
|
+
symbol: string;
|
|
75
|
+
logo: string | undefined;
|
|
76
|
+
banner: string | undefined;
|
|
77
|
+
category: string | undefined;
|
|
78
|
+
projectUrl: string | undefined;
|
|
79
|
+
wikiUrl: string | undefined;
|
|
80
|
+
discordUrl: string | undefined;
|
|
81
|
+
telegramUrl: string | undefined;
|
|
82
|
+
twitter: string | undefined;
|
|
83
|
+
instagram: string | undefined;
|
|
84
|
+
};
|
|
85
|
+
media: {
|
|
86
|
+
mimetype: string | undefined;
|
|
87
|
+
status: string | undefined;
|
|
88
|
+
originalUrl: string | undefined;
|
|
89
|
+
previews: {
|
|
90
|
+
low?: {
|
|
91
|
+
url: string;
|
|
92
|
+
width: number;
|
|
93
|
+
height: number;
|
|
94
|
+
};
|
|
95
|
+
medium?: {
|
|
96
|
+
url: string;
|
|
97
|
+
width: number;
|
|
98
|
+
height: number;
|
|
99
|
+
};
|
|
100
|
+
high?: {
|
|
101
|
+
url: string;
|
|
102
|
+
width: number;
|
|
103
|
+
height: number;
|
|
104
|
+
};
|
|
105
|
+
} | undefined;
|
|
106
|
+
updatedAt: string | undefined;
|
|
107
|
+
} | undefined;
|
|
108
|
+
floorPrice: string | undefined;
|
|
109
|
+
floorPriceUsd: string | undefined;
|
|
110
|
+
floorPriceCurrency: string | undefined;
|
|
111
|
+
rarityRank: number | undefined;
|
|
112
|
+
rarityPercentage: number | undefined;
|
|
113
|
+
rarityLabel: string | undefined;
|
|
114
|
+
verifiedCollection: boolean;
|
|
115
|
+
possibleSpam: boolean;
|
|
116
|
+
lastMetadataSync: string | undefined;
|
|
117
|
+
lastTokenUriSync: string | undefined;
|
|
118
|
+
error?: undefined;
|
|
119
|
+
}>;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=NFTMetadataTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NFTMetadataTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/nft/NFTMetadataTool.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,qBAAqB,GAAG,oBAAoB,CAAC;AAEzD;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,IAAI,SAAsB;IAC1B,WAAW,SAMuF;IAClG,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CA+CzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,qBAAqB;cAK1B,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0F7E"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NFTMetadataTool = void 0;
|
|
4
|
+
const BaseTool_1 = require("../../BaseTool");
|
|
5
|
+
const MoralisService_1 = require("../../../services/MoralisService");
|
|
6
|
+
/**
|
|
7
|
+
* Tool: get-nft-metadata
|
|
8
|
+
*
|
|
9
|
+
* Fetches full metadata for a single NFT identified by its contract address
|
|
10
|
+
* and token id via the Moralis EVM `GET /nft/{address}/{token_id}` endpoint.
|
|
11
|
+
*
|
|
12
|
+
* Moralis docs: https://docs.moralis.com/data-api/evm/nft/metadata/nft-metadata
|
|
13
|
+
*/
|
|
14
|
+
class NFTMetadataTool extends BaseTool_1.BaseTool {
|
|
15
|
+
name = 'get-nft-metadata';
|
|
16
|
+
description = 'Get the full metadata for a specific NFT by its contract address and token ID: ' +
|
|
17
|
+
'name, description, image, attributes/traits, media variants, collection info, ' +
|
|
18
|
+
'floor price, rarity rank, owner, mint block, and sync timestamps. ' +
|
|
19
|
+
'Use this when the user asks about a specific NFT, e.g. "show NFT #1234 of collection X", ' +
|
|
20
|
+
'"details of token ID 42 in contract 0x…", "traits of this NFT", or "floor price of this NFT". ' +
|
|
21
|
+
'Only supports EVM chains: Ethereum, Optimism, BSC, Polygon, Base, Arbitrum, Avalanche, Linea.';
|
|
22
|
+
category = 'blockchain-data';
|
|
23
|
+
parameters = [
|
|
24
|
+
{
|
|
25
|
+
name: 'contractAddress',
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'NFT contract address (0x…). The collection / contract that mints the token.',
|
|
28
|
+
required: true,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'tokenId',
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'The NFT token ID to look up (as a string, in the format specified by the "format" parameter).',
|
|
34
|
+
required: true,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'chain',
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Hex chain ID: "0x1" Ethereum, "0xa" Optimism, "0x38" BSC, "0x89" Polygon, "0x2105" Base, ' +
|
|
40
|
+
'"0xa4b1" Arbitrum, "0xa86a" Avalanche, "0xe708" Linea. Defaults to connected chain.',
|
|
41
|
+
required: true,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'format',
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: 'Format of the provided token ID: "decimal" (default) or "hex".',
|
|
47
|
+
required: false,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'normalizeMetadata',
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
description: 'Whether Moralis should return a normalized metadata object (name/description/image/attributes). Default: true.',
|
|
53
|
+
required: false,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'mediaItems',
|
|
57
|
+
type: 'boolean',
|
|
58
|
+
description: 'Whether to include resized media variants (low / medium / high previews). Default: true.',
|
|
59
|
+
required: false,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'include',
|
|
63
|
+
type: 'string',
|
|
64
|
+
description: 'Optional extra field to refresh / include in the response: "last_token_uri_sync" or "last_metadata_sync".',
|
|
65
|
+
required: false,
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
service;
|
|
69
|
+
constructor(config) {
|
|
70
|
+
super();
|
|
71
|
+
this.service = new MoralisService_1.MoralisService(config);
|
|
72
|
+
}
|
|
73
|
+
async run(args, userContext) {
|
|
74
|
+
const contractAddress = args.contractAddress;
|
|
75
|
+
const tokenId = args.tokenId != null ? String(args.tokenId) : '';
|
|
76
|
+
const chain = args.chain || userContext?.chain || undefined;
|
|
77
|
+
const format = args.format || undefined;
|
|
78
|
+
const normalizeMetadata = typeof args.normalizeMetadata === 'boolean' ? args.normalizeMetadata : undefined;
|
|
79
|
+
const mediaItems = typeof args.mediaItems === 'boolean' ? args.mediaItems : undefined;
|
|
80
|
+
const include = args.include || undefined;
|
|
81
|
+
if (!contractAddress) {
|
|
82
|
+
return { error: 'NFT contract address is required.' };
|
|
83
|
+
}
|
|
84
|
+
if (!tokenId) {
|
|
85
|
+
return { error: 'Token ID is required.' };
|
|
86
|
+
}
|
|
87
|
+
const result = await this.service.getNftMetadata({
|
|
88
|
+
address: contractAddress,
|
|
89
|
+
tokenId,
|
|
90
|
+
chain,
|
|
91
|
+
format,
|
|
92
|
+
normalizeMetadata,
|
|
93
|
+
mediaItems,
|
|
94
|
+
include,
|
|
95
|
+
});
|
|
96
|
+
if (!result.success) {
|
|
97
|
+
return { error: result.error || 'Failed to fetch NFT metadata' };
|
|
98
|
+
}
|
|
99
|
+
const data = result.data;
|
|
100
|
+
if (!data) {
|
|
101
|
+
return { error: 'NFT not found' };
|
|
102
|
+
}
|
|
103
|
+
const normalized = data.normalized_metadata;
|
|
104
|
+
const media = data.media;
|
|
105
|
+
return {
|
|
106
|
+
chain: chain,
|
|
107
|
+
contractAddress: data.token_address,
|
|
108
|
+
tokenId: data.token_id,
|
|
109
|
+
contractType: data.contract_type,
|
|
110
|
+
amount: data.amount,
|
|
111
|
+
owner: data.owner_of,
|
|
112
|
+
minter: data.minter_address,
|
|
113
|
+
blockNumber: data.block_number,
|
|
114
|
+
blockNumberMinted: data.block_number_minted,
|
|
115
|
+
tokenHash: data.token_hash,
|
|
116
|
+
name: normalized?.name || data.name,
|
|
117
|
+
description: normalized?.description,
|
|
118
|
+
image: normalized?.image || media?.original_media_url,
|
|
119
|
+
animationUrl: normalized?.animation_url,
|
|
120
|
+
attributes: normalized?.attributes,
|
|
121
|
+
tokenUri: data.token_uri,
|
|
122
|
+
metadata: data.metadata,
|
|
123
|
+
collection: {
|
|
124
|
+
name: data.name,
|
|
125
|
+
symbol: data.symbol,
|
|
126
|
+
logo: data.collection_logo,
|
|
127
|
+
banner: data.collection_banner_image,
|
|
128
|
+
category: data.collection_category,
|
|
129
|
+
projectUrl: data.project_url,
|
|
130
|
+
wikiUrl: data.wiki_url,
|
|
131
|
+
discordUrl: data.discord_url,
|
|
132
|
+
telegramUrl: data.telegram_url,
|
|
133
|
+
twitter: data.twitter_username,
|
|
134
|
+
instagram: data.instagram_username,
|
|
135
|
+
},
|
|
136
|
+
media: media
|
|
137
|
+
? {
|
|
138
|
+
mimetype: media.mimetype,
|
|
139
|
+
status: media.status,
|
|
140
|
+
originalUrl: media.original_media_url,
|
|
141
|
+
previews: media.media_collection,
|
|
142
|
+
updatedAt: media.updated_at,
|
|
143
|
+
}
|
|
144
|
+
: undefined,
|
|
145
|
+
floorPrice: data.floor_price,
|
|
146
|
+
floorPriceUsd: data.floor_price_usd,
|
|
147
|
+
floorPriceCurrency: data.floor_price_currency,
|
|
148
|
+
rarityRank: data.rarity_rank,
|
|
149
|
+
rarityPercentage: data.rarity_percentage,
|
|
150
|
+
rarityLabel: data.rarity_label,
|
|
151
|
+
verifiedCollection: data.verified_collection,
|
|
152
|
+
possibleSpam: data.possible_spam,
|
|
153
|
+
lastMetadataSync: data.last_metadata_sync,
|
|
154
|
+
lastTokenUriSync: data.last_token_uri_sync,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.NFTMetadataTool = NFTMetadataTool;
|
|
159
|
+
//# sourceMappingURL=NFTMetadataTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NFTMetadataTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/nft/NFTMetadataTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { BaseTool } from '../../BaseTool';
|
|
2
|
+
import type { ToolParameter, UserContext } from '../../../types';
|
|
3
|
+
import { type MoralisServiceConfig } from '../../../services/MoralisService';
|
|
4
|
+
export type WalletNFTsToolConfig = MoralisServiceConfig;
|
|
5
|
+
interface NormalizedNftAttribute {
|
|
6
|
+
trait_type: string;
|
|
7
|
+
value: string;
|
|
8
|
+
}
|
|
9
|
+
interface NormalizedNftMedia {
|
|
10
|
+
original?: string;
|
|
11
|
+
low?: string;
|
|
12
|
+
medium?: string;
|
|
13
|
+
high?: string;
|
|
14
|
+
mimetype?: string;
|
|
15
|
+
status?: string;
|
|
16
|
+
}
|
|
17
|
+
interface NormalizedNft {
|
|
18
|
+
name: string | null;
|
|
19
|
+
collectionName: string | null;
|
|
20
|
+
symbol: string | null;
|
|
21
|
+
tokenId: string;
|
|
22
|
+
contractAddress: string;
|
|
23
|
+
contractType: 'ERC721' | 'ERC1155' | string;
|
|
24
|
+
amount: string;
|
|
25
|
+
ownerOf: string;
|
|
26
|
+
tokenHash: string;
|
|
27
|
+
tokenUri: string | null;
|
|
28
|
+
description: string | null;
|
|
29
|
+
image: string | null;
|
|
30
|
+
animationUrl: string | null;
|
|
31
|
+
media: NormalizedNftMedia;
|
|
32
|
+
attributes: NormalizedNftAttribute[];
|
|
33
|
+
verifiedCollection: boolean;
|
|
34
|
+
possibleSpam: boolean;
|
|
35
|
+
collectionLogo: string | null;
|
|
36
|
+
collectionBanner: string | null;
|
|
37
|
+
blockNumber: string;
|
|
38
|
+
blockNumberMinted: string;
|
|
39
|
+
}
|
|
40
|
+
interface WalletNFTsResult {
|
|
41
|
+
walletAddress: string;
|
|
42
|
+
chain: string;
|
|
43
|
+
filters: {
|
|
44
|
+
contractAddresses: string[] | null;
|
|
45
|
+
excludeSpam: boolean;
|
|
46
|
+
includePrices: boolean;
|
|
47
|
+
limit: number;
|
|
48
|
+
cursor: string | null;
|
|
49
|
+
};
|
|
50
|
+
pagination: {
|
|
51
|
+
cursor: string | null;
|
|
52
|
+
pageSize: number;
|
|
53
|
+
page: number | null;
|
|
54
|
+
hasMore: boolean;
|
|
55
|
+
};
|
|
56
|
+
nftCount: number;
|
|
57
|
+
nfts: NormalizedNft[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Tool: get-wallet-nfts
|
|
61
|
+
*
|
|
62
|
+
* Fetches NFTs owned by a wallet address via the Moralis EVM API
|
|
63
|
+
* `GET /{address}/nft`. Returns normalized metadata, media variants,
|
|
64
|
+
* collection info, and cursor-based pagination.
|
|
65
|
+
*
|
|
66
|
+
* Default page size is 10. Pass `cursor` from a previous response to
|
|
67
|
+
* fetch the next page.
|
|
68
|
+
*/
|
|
69
|
+
export declare class WalletNFTsTool extends BaseTool {
|
|
70
|
+
name: string;
|
|
71
|
+
description: string;
|
|
72
|
+
category: string;
|
|
73
|
+
parameters: ToolParameter[];
|
|
74
|
+
private service;
|
|
75
|
+
constructor(config?: WalletNFTsToolConfig);
|
|
76
|
+
protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<WalletNFTsResult | {
|
|
77
|
+
error: string;
|
|
78
|
+
}>;
|
|
79
|
+
private normalize;
|
|
80
|
+
}
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=WalletNFTsTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletNFTsTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/nft/WalletNFTsTool.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,EAAgB,MAAM,kCAAkC,CAAC;AAE3G,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAExD,UAAU,sBAAsB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,gBAAgB;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACnC,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,IAAI,SAAqB;IACzB,WAAW,SAMuE;IAClF,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CAmDzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,oBAAoB;cAKzB,GAAG,CACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,gBAAgB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA2DhD,OAAO,CAAC,SAAS;CA0ClB"}
|