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