keyring-agent-core 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/AgentCore.d.ts +37 -1
- package/dist/agent/AgentCore.d.ts.map +1 -1
- package/dist/agent/AgentCore.js +287 -144
- package/dist/agent/AgentCore.js.map +1 -1
- package/dist/agent/QueryRewriter.d.ts +17 -0
- package/dist/agent/QueryRewriter.d.ts.map +1 -1
- package/dist/agent/QueryRewriter.js +48 -4
- package/dist/agent/QueryRewriter.js.map +1 -1
- package/dist/agent/Router.d.ts.map +1 -1
- package/dist/agent/Router.js +73 -35
- package/dist/agent/Router.js.map +1 -1
- package/dist/agent/Subagent.d.ts +17 -0
- package/dist/agent/Subagent.d.ts.map +1 -1
- package/dist/agent/Subagent.js +32 -0
- package/dist/agent/Subagent.js.map +1 -1
- package/dist/agent/chatGraph.d.ts +364 -0
- package/dist/agent/chatGraph.d.ts.map +1 -0
- package/dist/agent/chatGraph.js +184 -0
- package/dist/agent/chatGraph.js.map +1 -0
- package/dist/agent/subagents/AiAgent.d.ts +1 -1
- package/dist/agent/subagents/AiAgent.d.ts.map +1 -1
- package/dist/agent/subagents/AiAgent.js +24 -20
- package/dist/agent/subagents/AiAgent.js.map +1 -1
- package/dist/agent/subagents/NftAgent.d.ts +1 -1
- package/dist/agent/subagents/NftAgent.d.ts.map +1 -1
- package/dist/agent/subagents/NftAgent.js +36 -26
- package/dist/agent/subagents/NftAgent.js.map +1 -1
- package/dist/agent/subagents/PoolSubgraphAgent.d.ts +6 -0
- package/dist/agent/subagents/PoolSubgraphAgent.d.ts.map +1 -0
- package/dist/agent/subagents/PoolSubgraphAgent.js +117 -0
- package/dist/agent/subagents/PoolSubgraphAgent.js.map +1 -0
- package/dist/agent/subagents/TokenAgent.d.ts +1 -1
- package/dist/agent/subagents/TokenAgent.d.ts.map +1 -1
- package/dist/agent/subagents/TokenAgent.js +23 -22
- package/dist/agent/subagents/TokenAgent.js.map +1 -1
- package/dist/agent/subagents/WalletActionAgent.d.ts +6 -0
- package/dist/agent/subagents/WalletActionAgent.d.ts.map +1 -0
- package/dist/agent/subagents/WalletActionAgent.js +55 -0
- package/dist/agent/subagents/WalletActionAgent.js.map +1 -0
- package/dist/agent/subagents/WalletAgent.d.ts +1 -1
- package/dist/agent/subagents/WalletAgent.d.ts.map +1 -1
- package/dist/agent/subagents/WalletAgent.js +18 -17
- package/dist/agent/subagents/WalletAgent.js.map +1 -1
- package/dist/agent/subagents/index.d.ts +23 -3
- package/dist/agent/subagents/index.d.ts.map +1 -1
- package/dist/agent/subagents/index.js +42 -11
- package/dist/agent/subagents/index.js.map +1 -1
- package/dist/constants/abi.d.ts +31 -0
- package/dist/constants/abi.d.ts.map +1 -1
- package/dist/constants/abi.js +24 -1
- package/dist/constants/abi.js.map +1 -1
- package/dist/functions/web3.d.ts +0 -1
- package/dist/functions/web3.d.ts.map +1 -1
- package/dist/functions/web3.js +0 -45
- package/dist/functions/web3.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/GeminiProvider.d.ts.map +1 -1
- package/dist/llm/GeminiProvider.js +115 -34
- package/dist/llm/GeminiProvider.js.map +1 -1
- package/dist/memory/UpstashKnowledgeBase.d.ts +1 -1
- package/dist/memory/UpstashKnowledgeBase.js +1 -1
- package/dist/services/MoralisService.d.ts +3 -25
- package/dist/services/MoralisService.d.ts.map +1 -1
- package/dist/services/MoralisService.js +7 -132
- package/dist/services/MoralisService.js.map +1 -1
- package/dist/services/PantographService.d.ts +61 -1
- package/dist/services/PantographService.d.ts.map +1 -1
- package/dist/services/PantographService.js +264 -12
- package/dist/services/PantographService.js.map +1 -1
- package/dist/services/PoolService.d.ts +1 -4
- package/dist/services/PoolService.d.ts.map +1 -1
- package/dist/services/PoolService.js +18 -40
- package/dist/services/PoolService.js.map +1 -1
- package/dist/services/UniswapSubgraphService.d.ts +144 -0
- package/dist/services/UniswapSubgraphService.d.ts.map +1 -0
- package/dist/services/UniswapSubgraphService.js +606 -0
- package/dist/services/UniswapSubgraphService.js.map +1 -0
- package/dist/services/rpc.d.ts +35 -0
- package/dist/services/rpc.d.ts.map +1 -0
- package/dist/services/rpc.js +110 -0
- package/dist/services/rpc.js.map +1 -0
- package/dist/services/swap/DebridgeAdapter.d.ts +17 -0
- package/dist/services/swap/DebridgeAdapter.d.ts.map +1 -1
- package/dist/services/swap/DebridgeAdapter.js +74 -6
- package/dist/services/swap/DebridgeAdapter.js.map +1 -1
- package/dist/services/swap/SwapServiceFactory.d.ts +1 -0
- package/dist/services/swap/SwapServiceFactory.d.ts.map +1 -1
- package/dist/services/swap/SwapServiceFactory.js +8 -3
- package/dist/services/swap/SwapServiceFactory.js.map +1 -1
- package/dist/tools/builtin/ai/GeminiSearchAiTool.d.ts +36 -0
- package/dist/tools/builtin/ai/GeminiSearchAiTool.d.ts.map +1 -0
- package/dist/tools/builtin/ai/GeminiSearchAiTool.js +91 -0
- package/dist/tools/builtin/ai/GeminiSearchAiTool.js.map +1 -0
- package/dist/tools/builtin/ai/index.d.ts +2 -4
- package/dist/tools/builtin/ai/index.d.ts.map +1 -1
- package/dist/tools/builtin/ai/index.js +3 -5
- package/dist/tools/builtin/ai/index.js.map +1 -1
- package/dist/tools/builtin/index.d.ts +2 -0
- package/dist/tools/builtin/index.d.ts.map +1 -1
- package/dist/tools/builtin/index.js +2 -0
- package/dist/tools/builtin/index.js.map +1 -1
- package/dist/tools/builtin/nft/BaseNftMessageTool.d.ts +35 -0
- package/dist/tools/builtin/nft/BaseNftMessageTool.d.ts.map +1 -0
- package/dist/tools/builtin/nft/BaseNftMessageTool.js +45 -0
- package/dist/tools/builtin/nft/BaseNftMessageTool.js.map +1 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts +7 -13
- package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts.map +1 -1
- package/dist/tools/builtin/nft/NFTContractInfoTool.js +8 -43
- package/dist/tools/builtin/nft/NFTContractInfoTool.js.map +1 -1
- package/dist/tools/builtin/nft/NFTMetadataTool.d.ts +7 -113
- package/dist/tools/builtin/nft/NFTMetadataTool.d.ts.map +1 -1
- package/dist/tools/builtin/nft/NFTMetadataTool.js +9 -148
- package/dist/tools/builtin/nft/NFTMetadataTool.js.map +1 -1
- package/dist/tools/builtin/nft/SendNftTool.d.ts +14 -0
- package/dist/tools/builtin/nft/SendNftTool.d.ts.map +1 -0
- package/dist/tools/builtin/nft/SendNftTool.js +20 -0
- package/dist/tools/builtin/nft/SendNftTool.js.map +1 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.d.ts +7 -74
- package/dist/tools/builtin/nft/WalletNFTsTool.d.ts.map +1 -1
- package/dist/tools/builtin/nft/WalletNFTsTool.js +9 -161
- package/dist/tools/builtin/nft/WalletNFTsTool.js.map +1 -1
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts.map +1 -1
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.js +4 -3
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.js.map +1 -1
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts +1 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts.map +1 -1
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js +8 -5
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js.map +1 -1
- package/dist/tools/builtin/pool/PoolByAddressTool.d.ts.map +1 -1
- package/dist/tools/builtin/pool/PoolByAddressTool.js +4 -3
- package/dist/tools/builtin/pool/PoolByAddressTool.js.map +1 -1
- package/dist/tools/builtin/pool/PoolDetailTool.d.ts.map +1 -1
- package/dist/tools/builtin/pool/PoolDetailTool.js +4 -3
- package/dist/tools/builtin/pool/PoolDetailTool.js.map +1 -1
- package/dist/tools/builtin/pool/PoolSearchTool.d.ts.map +1 -1
- package/dist/tools/builtin/pool/PoolSearchTool.js +4 -3
- package/dist/tools/builtin/pool/PoolSearchTool.js.map +1 -1
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts +1 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts.map +1 -1
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js +5 -3
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js.map +1 -1
- package/dist/tools/builtin/pool/TopPoolsTool.d.ts.map +1 -1
- package/dist/tools/builtin/pool/TopPoolsTool.js +4 -3
- package/dist/tools/builtin/pool/TopPoolsTool.js.map +1 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.d.ts +54 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.js +98 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.js.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.d.ts +63 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.js +82 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.js.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.d.ts +79 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.js +97 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.js.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.d.ts +77 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.js +190 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.js.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.d.ts +107 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.js +92 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.js.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.d.ts +56 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.js +94 -0
- package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.js.map +1 -0
- package/dist/tools/builtin/pool-subgraph/index.d.ts +13 -0
- package/dist/tools/builtin/pool-subgraph/index.d.ts.map +1 -0
- package/dist/tools/builtin/pool-subgraph/index.js +18 -0
- package/dist/tools/builtin/pool-subgraph/index.js.map +1 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts.map +1 -1
- package/dist/tools/builtin/token/TokenAnalyticsTool.js +4 -3
- package/dist/tools/builtin/token/TokenAnalyticsTool.js.map +1 -1
- package/dist/tools/builtin/token/TokenHoldersTool.d.ts.map +1 -1
- package/dist/tools/builtin/token/TokenHoldersTool.js +4 -3
- package/dist/tools/builtin/token/TokenHoldersTool.js.map +1 -1
- package/dist/tools/builtin/token/TokenInfoTool.d.ts +6 -2
- package/dist/tools/builtin/token/TokenInfoTool.d.ts.map +1 -1
- package/dist/tools/builtin/token/TokenInfoTool.js +66 -8
- package/dist/tools/builtin/token/TokenInfoTool.js.map +1 -1
- package/dist/tools/builtin/token/TokenScoreTool.d.ts.map +1 -1
- package/dist/tools/builtin/token/TokenScoreTool.js +4 -3
- package/dist/tools/builtin/token/TokenScoreTool.js.map +1 -1
- package/dist/tools/builtin/token/TopGainersTool.d.ts +10 -19
- package/dist/tools/builtin/token/TopGainersTool.d.ts.map +1 -1
- package/dist/tools/builtin/token/TopGainersTool.js +44 -54
- package/dist/tools/builtin/token/TopGainersTool.js.map +1 -1
- package/dist/tools/builtin/token/TopLosersTool.d.ts.map +1 -1
- package/dist/tools/builtin/token/TopLosersTool.js +3 -2
- package/dist/tools/builtin/token/TopLosersTool.js.map +1 -1
- package/dist/tools/builtin/token/TrendingTokensTool.d.ts +1 -1
- package/dist/tools/builtin/token/TrendingTokensTool.d.ts.map +1 -1
- package/dist/tools/builtin/token/TrendingTokensTool.js +20 -12
- package/dist/tools/builtin/token/TrendingTokensTool.js.map +1 -1
- package/dist/tools/builtin/token/index.d.ts +0 -2
- package/dist/tools/builtin/token/index.d.ts.map +1 -1
- package/dist/tools/builtin/token/index.js +1 -3
- package/dist/tools/builtin/token/index.js.map +1 -1
- package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/TransactionByHashTool.js +4 -3
- package/dist/tools/builtin/wallet/TransactionByHashTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletApprovalsTool.js +4 -3
- package/dist/tools/builtin/wallet/WalletApprovalsTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js +4 -3
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js +4 -3
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js +4 -3
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletHistoryTool.js +5 -4
- package/dist/tools/builtin/wallet/WalletHistoryTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletNetWorthTool.js +1 -1
- package/dist/tools/builtin/wallet/WalletNetWorthTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.js +5 -4
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js +4 -3
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletPnlTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletPnlTool.js +4 -3
- package/dist/tools/builtin/wallet/WalletPnlTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js +4 -3
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js.map +1 -1
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js +5 -4
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js.map +1 -1
- package/dist/tools/builtin/wallet/index.d.ts +3 -0
- package/dist/tools/builtin/wallet/index.d.ts.map +1 -1
- package/dist/tools/builtin/wallet/index.js +5 -1
- package/dist/tools/builtin/wallet/index.js.map +1 -1
- package/dist/tools/builtin/wallet-action/ApproveTokenTool.d.ts +25 -0
- package/dist/tools/builtin/wallet-action/ApproveTokenTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/ApproveTokenTool.js +98 -0
- package/dist/tools/builtin/wallet-action/ApproveTokenTool.js.map +1 -0
- package/dist/tools/builtin/wallet-action/BaseWalletActionTool.d.ts +211 -0
- package/dist/tools/builtin/wallet-action/BaseWalletActionTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/BaseWalletActionTool.js +499 -0
- package/dist/tools/builtin/wallet-action/BaseWalletActionTool.js.map +1 -0
- package/dist/tools/builtin/wallet-action/BuyTokenTool.d.ts +240 -0
- package/dist/tools/builtin/wallet-action/BuyTokenTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/BuyTokenTool.js +1257 -0
- package/dist/tools/builtin/wallet-action/BuyTokenTool.js.map +1 -0
- package/dist/tools/builtin/wallet-action/SendNativeTool.d.ts +41 -0
- package/dist/tools/builtin/wallet-action/SendNativeTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/SendNativeTool.js +127 -0
- package/dist/tools/builtin/wallet-action/SendNativeTool.js.map +1 -0
- package/dist/tools/builtin/wallet-action/SendTokenTool.d.ts +63 -0
- package/dist/tools/builtin/wallet-action/SendTokenTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/SendTokenTool.js +294 -0
- package/dist/tools/builtin/wallet-action/SendTokenTool.js.map +1 -0
- package/dist/tools/builtin/wallet-action/SwapTokenTool.d.ts +247 -0
- package/dist/tools/builtin/wallet-action/SwapTokenTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/SwapTokenTool.js +1258 -0
- package/dist/tools/builtin/wallet-action/SwapTokenTool.js.map +1 -0
- package/dist/tools/builtin/wallet-action/UnwrapNativeTool.d.ts +20 -0
- package/dist/tools/builtin/wallet-action/UnwrapNativeTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/UnwrapNativeTool.js +36 -0
- package/dist/tools/builtin/wallet-action/UnwrapNativeTool.js.map +1 -0
- package/dist/tools/builtin/wallet-action/WrapNativeTool.d.ts +23 -0
- package/dist/tools/builtin/wallet-action/WrapNativeTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/WrapNativeTool.js +54 -0
- package/dist/tools/builtin/wallet-action/WrapNativeTool.js.map +1 -0
- package/dist/tools/builtin/wallet-action/amountSpec.d.ts +62 -0
- package/dist/tools/builtin/wallet-action/amountSpec.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/amountSpec.js +93 -0
- package/dist/tools/builtin/wallet-action/amountSpec.js.map +1 -0
- package/dist/tools/builtin/wallet-action/gasReserve.d.ts +42 -0
- package/dist/tools/builtin/wallet-action/gasReserve.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/gasReserve.js +103 -0
- package/dist/tools/builtin/wallet-action/gasReserve.js.map +1 -0
- package/dist/tools/builtin/wallet-action/index.d.ts +9 -0
- package/dist/tools/builtin/wallet-action/index.d.ts.map +1 -0
- package/dist/tools/builtin/wallet-action/index.js +20 -0
- package/dist/tools/builtin/wallet-action/index.js.map +1 -0
- package/dist/tools/chainResolver.d.ts +98 -0
- package/dist/tools/chainResolver.d.ts.map +1 -0
- package/dist/tools/chainResolver.js +302 -0
- package/dist/tools/chainResolver.js.map +1 -0
- package/dist/types/index.d.ts +218 -7
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +7 -3
- package/dist/tools/builtin/ai/MoralisCortexTool.d.ts +0 -33
- package/dist/tools/builtin/ai/MoralisCortexTool.d.ts.map +0 -1
- package/dist/tools/builtin/ai/MoralisCortexTool.js +0 -76
- package/dist/tools/builtin/ai/MoralisCortexTool.js.map +0 -1
- package/dist/tools/builtin/ai/SolanaCortexTool.d.ts +0 -22
- package/dist/tools/builtin/ai/SolanaCortexTool.d.ts.map +0 -1
- package/dist/tools/builtin/ai/SolanaCortexTool.js +0 -80
- package/dist/tools/builtin/ai/SolanaCortexTool.js.map +0 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* lookups via the Pantograph wallet API.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.PantographService = exports.HEX_TO_PANTOGRAPH = void 0;
|
|
9
|
+
exports.PantographService = exports.TRENDING_DEFAULT_BY_HEX_CHAIN = exports.HEX_TO_PANTOGRAPH = void 0;
|
|
10
10
|
exports.toPantographChain = toPantographChain;
|
|
11
11
|
// ---------------------------------------------------------------------------
|
|
12
12
|
// Constants
|
|
@@ -23,8 +23,48 @@ exports.HEX_TO_PANTOGRAPH = {
|
|
|
23
23
|
'0xa4b1': 'arbitrum',
|
|
24
24
|
'0xa86a': 'avax',
|
|
25
25
|
'0xe708': 'linea',
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Default tokens to always surface in the trending list per chain (keyed by hex
|
|
29
|
+
* chain ID). Mirrors the SDK's `tokenTrendingDefault`: these are prepended to
|
|
30
|
+
* the top-gainers feed so staple assets (WETH/WBTC/…) appear even when they are
|
|
31
|
+
* not currently "gaining". Addresses are lowercased for matching.
|
|
32
|
+
*/
|
|
33
|
+
exports.TRENDING_DEFAULT_BY_HEX_CHAIN = {
|
|
34
|
+
'0x1': [
|
|
35
|
+
'0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // WETH
|
|
36
|
+
'0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', // WBTC
|
|
37
|
+
],
|
|
38
|
+
'0xa': [
|
|
39
|
+
'0x4200000000000000000000000000000000000006', // WETH
|
|
40
|
+
'0x68f180fcce6836688e9084f035309e29bf0a2095', // WBTC
|
|
41
|
+
'0xc47da4cb96ce65a96844a01bfae509f9d5454534', // JPYT
|
|
42
|
+
],
|
|
43
|
+
'0x38': [
|
|
44
|
+
'0x2170ed0880ac9a755fd29b2688956bd959f933f8', // WETH
|
|
45
|
+
'0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c', // WBTC
|
|
46
|
+
],
|
|
47
|
+
'0x89': [
|
|
48
|
+
'0x7ceb23fd6bc0add59e62ac25578270cff1b9f619', // WETH
|
|
49
|
+
'0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6', // WBTC
|
|
50
|
+
],
|
|
51
|
+
'0x2105': [
|
|
52
|
+
'0x4200000000000000000000000000000000000006', // WETH
|
|
53
|
+
'0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf', // WBTC
|
|
54
|
+
'0xc47da4cb96ce65a96844a01bfae509f9d5454534', // JPYT
|
|
55
|
+
],
|
|
56
|
+
'0xa4b1': [
|
|
57
|
+
'0x82af49447d8a07e3bd95bd0d56f35241523fbab1', // WETH
|
|
58
|
+
'0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f', // WBTC
|
|
59
|
+
],
|
|
60
|
+
'0xa86a': [
|
|
61
|
+
'0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab', // WETH
|
|
62
|
+
'0x0555e30da8f98308edb960aa94c0db47230d2b9c', // WBTC
|
|
63
|
+
],
|
|
64
|
+
'0xe708': [
|
|
65
|
+
'0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f', // WETH
|
|
66
|
+
'0x3aab2285ddcddad8edf438c1bab47e1a9d05a9b4', // WBTC
|
|
67
|
+
],
|
|
28
68
|
};
|
|
29
69
|
// ---------------------------------------------------------------------------
|
|
30
70
|
// Helpers
|
|
@@ -48,6 +88,63 @@ function buildQueryString(params) {
|
|
|
48
88
|
}
|
|
49
89
|
return parts.join('&');
|
|
50
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Normalize a raw Pantograph token object to {@link TokenMetadata}.
|
|
93
|
+
*
|
|
94
|
+
* The Pantograph APIs (`/token-list`, `/keyrings/tokens/.../v2`) return the
|
|
95
|
+
* contract under `address` (NOT `token_address`) and `decimals` as a STRING
|
|
96
|
+
* ("18") on some tokens. Downstream code matches on `token_address` and expects
|
|
97
|
+
* a numeric `decimals`, so every consumer must run results through this. See
|
|
98
|
+
* memory: pantograph-token-list-field-mapping.
|
|
99
|
+
*/
|
|
100
|
+
function normalizePantographToken(raw) {
|
|
101
|
+
const item = raw;
|
|
102
|
+
const decRaw = item.decimals;
|
|
103
|
+
const decimals = typeof decRaw === 'number' ? decRaw : typeof decRaw === 'string' ? parseInt(decRaw, 10) : NaN;
|
|
104
|
+
// Pantograph exposes the USD price as `price`; surface it as `usd_price` too
|
|
105
|
+
// so consumers reading the canonical field (TokenMetadata.usd_price) work the
|
|
106
|
+
// same whether the data came from Pantograph or the Moralis proxy fallback.
|
|
107
|
+
const priceRaw = item.price;
|
|
108
|
+
const price = priceRaw != null ? parseFloat(String(priceRaw)) : NaN;
|
|
109
|
+
return {
|
|
110
|
+
...item,
|
|
111
|
+
token_address: item.token_address ?? item.address ?? '',
|
|
112
|
+
decimals: Number.isFinite(decimals) ? decimals : 0,
|
|
113
|
+
...(Number.isFinite(price) ? { usd_price: price } : {}),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** Parse a possibly-string numeric field; returns null when not finite. */
|
|
117
|
+
function toNumberOrNull(value) {
|
|
118
|
+
if (value == null)
|
|
119
|
+
return null;
|
|
120
|
+
const n = typeof value === 'number' ? value : parseFloat(String(value));
|
|
121
|
+
return Number.isFinite(n) ? n : null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Map a raw Pantograph token (top-gainer row OR `/keyrings/tokens/v2` metadata)
|
|
125
|
+
* to the canonical {@link TrendingToken} shape consumed by the trending tools.
|
|
126
|
+
*/
|
|
127
|
+
function toTrendingToken(item, hexChain) {
|
|
128
|
+
const decRaw = item.decimals;
|
|
129
|
+
const decimals = typeof decRaw === 'number' ? decRaw : typeof decRaw === 'string' ? parseInt(decRaw, 10) : null;
|
|
130
|
+
const change24h = toNumberOrNull(item.price_change_percentage_24h) ??
|
|
131
|
+
toNumberOrNull(item.priceChange24h) ??
|
|
132
|
+
toNumberOrNull(item.usd_price_24hr_percent_change) ??
|
|
133
|
+
toNumberOrNull(item.price_change_24h) ??
|
|
134
|
+
toNumberOrNull(item.priceChange);
|
|
135
|
+
return {
|
|
136
|
+
chainId: hexChain,
|
|
137
|
+
tokenAddress: item.address ?? item.token_address ?? '',
|
|
138
|
+
name: item.name ?? null,
|
|
139
|
+
symbol: item.symbol ?? null,
|
|
140
|
+
decimals: decimals != null && Number.isFinite(decimals) ? decimals : null,
|
|
141
|
+
logo: item.logoURI ?? item.icon_image ?? item.logo ?? null,
|
|
142
|
+
usdPrice: toNumberOrNull(item.price) ?? toNumberOrNull(item.usd_price),
|
|
143
|
+
marketCap: toNumberOrNull(item.market_cap) ?? toNumberOrNull(item.marketCap),
|
|
144
|
+
totalVolume: { '24h': toNumberOrNull(item.total_volume) ?? toNumberOrNull(item.volume24h) },
|
|
145
|
+
pricePercentChange: { '24h': change24h },
|
|
146
|
+
};
|
|
147
|
+
}
|
|
51
148
|
// ---------------------------------------------------------------------------
|
|
52
149
|
// Service class
|
|
53
150
|
// ---------------------------------------------------------------------------
|
|
@@ -74,7 +171,7 @@ class PantographService {
|
|
|
74
171
|
if (!res.ok)
|
|
75
172
|
return;
|
|
76
173
|
const json = (await res.json());
|
|
77
|
-
const list = Array.isArray(json
|
|
174
|
+
const list = Array.isArray(json) ? json : Array.isArray(json.data) ? json.data : [];
|
|
78
175
|
const priceMap = new Map();
|
|
79
176
|
for (const item of list) {
|
|
80
177
|
if (item.address) {
|
|
@@ -117,7 +214,7 @@ class PantographService {
|
|
|
117
214
|
if (!res.ok)
|
|
118
215
|
return null;
|
|
119
216
|
const pData = (await res.json());
|
|
120
|
-
const list = Array.isArray(pData
|
|
217
|
+
const list = Array.isArray(pData) ? pData : Array.isArray(pData.data) ? pData.data : [];
|
|
121
218
|
const isNative = address.toLowerCase() === ZERO_ADDRESS;
|
|
122
219
|
const item = list.find((t) => t.address?.toLowerCase() === address.toLowerCase() ||
|
|
123
220
|
(isNative && t.address === '') ||
|
|
@@ -125,7 +222,7 @@ class PantographService {
|
|
|
125
222
|
(isNative && t.token_address === ''));
|
|
126
223
|
if (!item)
|
|
127
224
|
return null;
|
|
128
|
-
return item;
|
|
225
|
+
return normalizePantographToken(item);
|
|
129
226
|
}
|
|
130
227
|
catch {
|
|
131
228
|
return null;
|
|
@@ -142,12 +239,12 @@ class PantographService {
|
|
|
142
239
|
if (!res.ok)
|
|
143
240
|
return result;
|
|
144
241
|
const pData = (await res.json());
|
|
145
|
-
const list = Array.isArray(pData
|
|
242
|
+
const list = Array.isArray(pData) ? pData : Array.isArray(pData.data) ? pData.data : [];
|
|
146
243
|
const addressSet = new Set(addresses.map((a) => a.toLowerCase()));
|
|
147
244
|
for (const item of list) {
|
|
148
245
|
const itemAddress = item.address?.toLowerCase() || item.token_address?.toLowerCase() || (item.address === '' ? '' : null);
|
|
149
246
|
if (itemAddress && addressSet.has(itemAddress)) {
|
|
150
|
-
result[itemAddress] = item;
|
|
247
|
+
result[itemAddress] = normalizePantographToken(item);
|
|
151
248
|
}
|
|
152
249
|
}
|
|
153
250
|
}
|
|
@@ -179,14 +276,18 @@ class PantographService {
|
|
|
179
276
|
if (!res.ok)
|
|
180
277
|
throw new Error(`HTTP ${res.status}`);
|
|
181
278
|
const json = (await res.json());
|
|
182
|
-
// The endpoint returns an object
|
|
183
|
-
|
|
279
|
+
// The endpoint returns an object keyed by token address; flatten all
|
|
280
|
+
// values. (Some shapes nest the map under `data`.)
|
|
281
|
+
let raw = [];
|
|
184
282
|
if (json?.data) {
|
|
185
|
-
|
|
283
|
+
raw = Array.isArray(json.data) ? json.data : Object.values(json.data).flat();
|
|
186
284
|
}
|
|
187
285
|
else if (typeof json === 'object' && !Array.isArray(json)) {
|
|
188
|
-
|
|
286
|
+
raw = Object.values(json).flat();
|
|
189
287
|
}
|
|
288
|
+
// Normalize to the shape downstream expects (`token_address` + numeric
|
|
289
|
+
// `decimals`) so symbol resolution works. See normalizePantographToken.
|
|
290
|
+
const list = raw.map(normalizePantographToken);
|
|
190
291
|
return { success: true, data: list };
|
|
191
292
|
}
|
|
192
293
|
catch (error) {
|
|
@@ -194,6 +295,157 @@ class PantographService {
|
|
|
194
295
|
return { success: false, error: msg };
|
|
195
296
|
}
|
|
196
297
|
}
|
|
298
|
+
// =========================================================================
|
|
299
|
+
// Trending Tokens (top gainers)
|
|
300
|
+
// =========================================================================
|
|
301
|
+
/**
|
|
302
|
+
* List trending tokens on a chain via Pantograph's top-gainers endpoint:
|
|
303
|
+
* `GET /token-list/top-gainers/{chainName}?duration=24h&limit=N`.
|
|
304
|
+
*
|
|
305
|
+
* Mirrors the SDK's trending view: the chain's staple tokens
|
|
306
|
+
* ({@link TRENDING_DEFAULT_BY_HEX_CHAIN}, e.g. WETH/WBTC) are fetched in
|
|
307
|
+
* parallel and prepended to the top-gainers feed, then the merged list is
|
|
308
|
+
* de-duplicated by address. This guarantees the default tokens always show
|
|
309
|
+
* up even when they are not currently "gaining".
|
|
310
|
+
*
|
|
311
|
+
* `limit` behaviour:
|
|
312
|
+
* - omitted → ALL default tokens + 5 top gainers (no cap).
|
|
313
|
+
* - given N → exactly N tokens TOTAL (defaults + gainers, capped to N).
|
|
314
|
+
*
|
|
315
|
+
* Returns the canonical {@link TrendingToken} shape so it is a drop-in
|
|
316
|
+
* replacement for `MoralisService.getTrendingTokens` — consumers reading
|
|
317
|
+
* `symbol`, `name`, `usdPrice`, `pricePercentChange['24h']` and
|
|
318
|
+
* `tokenAddress` work unchanged.
|
|
319
|
+
*
|
|
320
|
+
* Pantograph scopes results to a single chain (it has no cross-chain feed),
|
|
321
|
+
* so when no `chain` is given we fall back to Base ("0x2105").
|
|
322
|
+
*/
|
|
323
|
+
async getTrendingTokens(params) {
|
|
324
|
+
const hexChain = params?.chain || '0x2105';
|
|
325
|
+
// A caller-supplied limit is the TOTAL token count (defaults + gainers). When
|
|
326
|
+
// omitted, we keep all defaults and add exactly DEFAULT_GAINERS_COUNT gainers.
|
|
327
|
+
const DEFAULT_GAINERS_COUNT = 5;
|
|
328
|
+
const totalLimit = params?.limit && params.limit > 0 ? Math.floor(params.limit) : undefined;
|
|
329
|
+
try {
|
|
330
|
+
const defaultAddresses = exports.TRENDING_DEFAULT_BY_HEX_CHAIN[hexChain.toLowerCase()] ?? [];
|
|
331
|
+
// How many gainers to request: enough to fill `totalLimit` after defaults
|
|
332
|
+
// are prepended (overlaps are dropped by dedupe), or the fixed default count.
|
|
333
|
+
const gainersToFetch = totalLimit != null ? totalLimit + defaultAddresses.length : DEFAULT_GAINERS_COUNT + defaultAddresses.length;
|
|
334
|
+
// Fetch top-gainers and the chain's default tokens in parallel. Either may
|
|
335
|
+
// fail independently — we keep whatever resolves.
|
|
336
|
+
const [gainersResult, defaultsResult] = await Promise.allSettled([
|
|
337
|
+
this.fetchTopGainers(hexChain, gainersToFetch),
|
|
338
|
+
defaultAddresses.length > 0
|
|
339
|
+
? this.getTokensMetadata(defaultAddresses, hexChain)
|
|
340
|
+
: Promise.resolve({}),
|
|
341
|
+
]);
|
|
342
|
+
const gainers = gainersResult.status === 'fulfilled' ? gainersResult.value : [];
|
|
343
|
+
// Preserve the configured default order (getTokensMetadata returns a map).
|
|
344
|
+
const defaults = defaultsResult.status === 'fulfilled'
|
|
345
|
+
? defaultAddresses
|
|
346
|
+
.map((addr) => defaultsResult.value[addr.toLowerCase()])
|
|
347
|
+
.filter((m) => m != null)
|
|
348
|
+
.map((m) => toTrendingToken(m, hexChain))
|
|
349
|
+
: [];
|
|
350
|
+
// Defaults first, then gainers; de-duplicate by lowercased address. When a
|
|
351
|
+
// limit is given, cap the TOTAL to it; otherwise keep all defaults plus the
|
|
352
|
+
// first DEFAULT_GAINERS_COUNT distinct gainers.
|
|
353
|
+
const seen = new Set();
|
|
354
|
+
const dedupedDefaults = [];
|
|
355
|
+
for (const token of defaults) {
|
|
356
|
+
const key = token.tokenAddress?.toLowerCase();
|
|
357
|
+
if (!key || seen.has(key))
|
|
358
|
+
continue;
|
|
359
|
+
seen.add(key);
|
|
360
|
+
dedupedDefaults.push(token);
|
|
361
|
+
}
|
|
362
|
+
const dedupedGainers = [];
|
|
363
|
+
for (const token of gainers) {
|
|
364
|
+
const key = token.tokenAddress?.toLowerCase();
|
|
365
|
+
if (!key || seen.has(key))
|
|
366
|
+
continue;
|
|
367
|
+
seen.add(key);
|
|
368
|
+
dedupedGainers.push(token);
|
|
369
|
+
}
|
|
370
|
+
const data = totalLimit != null
|
|
371
|
+
? [...dedupedDefaults, ...dedupedGainers].slice(0, totalLimit)
|
|
372
|
+
: [...dedupedDefaults, ...dedupedGainers.slice(0, DEFAULT_GAINERS_COUNT)];
|
|
373
|
+
// The top-gainers feed omits market cap and 24h volume, so enrich any
|
|
374
|
+
// token still missing them in one batched metadata call (defaults already
|
|
375
|
+
// carry these from their own metadata fetch above).
|
|
376
|
+
await this.enrichTrendingMarketData(data, hexChain);
|
|
377
|
+
return { success: true, data };
|
|
378
|
+
}
|
|
379
|
+
catch (error) {
|
|
380
|
+
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
381
|
+
return { success: false, error: msg };
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Fill missing `marketCap` / `totalVolume` on trending tokens via a single
|
|
386
|
+
* `/keyrings/tokens/{chain}/v2` batch. Non-fatal: leaves fields null on error.
|
|
387
|
+
*/
|
|
388
|
+
async enrichTrendingMarketData(tokens, hexChain) {
|
|
389
|
+
const missing = tokens.filter((t) => t.tokenAddress && (t.marketCap == null || t.totalVolume?.['24h'] == null));
|
|
390
|
+
if (missing.length === 0)
|
|
391
|
+
return;
|
|
392
|
+
const meta = await this.getTokensMetadata(missing.map((t) => t.tokenAddress), hexChain);
|
|
393
|
+
for (const token of missing) {
|
|
394
|
+
const m = meta[token.tokenAddress.toLowerCase()];
|
|
395
|
+
if (!m)
|
|
396
|
+
continue;
|
|
397
|
+
if (token.marketCap == null) {
|
|
398
|
+
token.marketCap = toNumberOrNull(m.market_cap) ?? toNumberOrNull(m.marketCap);
|
|
399
|
+
}
|
|
400
|
+
if (token.totalVolume?.['24h'] == null) {
|
|
401
|
+
token.totalVolume = { '24h': toNumberOrNull(m.total_volume) ?? toNumberOrNull(m.volume24h) };
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
/** Fetch and normalize the raw top-gainers feed for a hex chain. */
|
|
406
|
+
async fetchTopGainers(hexChain, limit, duration = '24h') {
|
|
407
|
+
const pantographChain = toPantographChain(hexChain);
|
|
408
|
+
const qs = buildQueryString({ duration, limit });
|
|
409
|
+
const url = `${this.baseUrl}/token-list/top-gainers/${pantographChain}${qs ? `?${qs}` : ''}`;
|
|
410
|
+
const res = await fetch(url);
|
|
411
|
+
if (!res.ok)
|
|
412
|
+
throw new Error(`HTTP ${res.status}`);
|
|
413
|
+
const json = (await res.json());
|
|
414
|
+
const list = Array.isArray(json) ? json : Array.isArray(json.data) ? json.data : [];
|
|
415
|
+
return list.map((item) => toTrendingToken(item, hexChain));
|
|
416
|
+
}
|
|
417
|
+
// =========================================================================
|
|
418
|
+
// Top Gainers (standalone ranking)
|
|
419
|
+
// =========================================================================
|
|
420
|
+
/**
|
|
421
|
+
* List the top-gaining tokens on a chain via Pantograph's top-gainers feed:
|
|
422
|
+
* `GET /token-list/top-gainers/{chainName}?duration={duration}&limit=N`.
|
|
423
|
+
*
|
|
424
|
+
* Unlike {@link getTrendingTokens}, this does NOT prepend the chain's staple
|
|
425
|
+
* tokens — it returns the raw gainers ranking only, so it answers "biggest
|
|
426
|
+
* pumps" questions directly. Results are enriched with market cap / 24h volume
|
|
427
|
+
* via a batched metadata call (the gainers feed omits those fields), then
|
|
428
|
+
* returned in the canonical {@link TrendingToken} shape.
|
|
429
|
+
*
|
|
430
|
+
* Pantograph scopes results to a single chain (no cross-chain feed), so when
|
|
431
|
+
* no `chain` is given we fall back to Base ("0x2105").
|
|
432
|
+
*
|
|
433
|
+
* `duration` accepts Pantograph windows: "1h", "24h", "7d", "30d".
|
|
434
|
+
*/
|
|
435
|
+
async getTopGainers(params) {
|
|
436
|
+
const hexChain = params?.chain || '0x2105';
|
|
437
|
+
const limit = params?.limit && params.limit > 0 ? Math.floor(params.limit) : undefined;
|
|
438
|
+
const duration = params?.duration || '24h';
|
|
439
|
+
try {
|
|
440
|
+
const data = await this.fetchTopGainers(hexChain, limit, duration);
|
|
441
|
+
await this.enrichTrendingMarketData(data, hexChain);
|
|
442
|
+
return { success: true, data };
|
|
443
|
+
}
|
|
444
|
+
catch (error) {
|
|
445
|
+
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
446
|
+
return { success: false, error: msg };
|
|
447
|
+
}
|
|
448
|
+
}
|
|
197
449
|
}
|
|
198
450
|
exports.PantographService = PantographService;
|
|
199
451
|
//# sourceMappingURL=PantographService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PantographService.js","sourceRoot":"","sources":["../../src/services/PantographService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PantographService.js","sourceRoot":"","sources":["../../src/services/PantographService.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export interface NativeTokenInfo {
|
|
|
11
11
|
export interface ChainMeta {
|
|
12
12
|
hexId: string;
|
|
13
13
|
name: string;
|
|
14
|
-
/** Default public RPC — overridable via
|
|
14
|
+
/** Default public RPC — overridable via the core-wide `AgentConfig.rpcUrls`. */
|
|
15
15
|
defaultRpc: string;
|
|
16
16
|
native: NativeTokenInfo;
|
|
17
17
|
/** Default gas limit for the gateway.mint tx (matches coinpool-v2 DEFAULT_GAS_LIMIT_PAIR) */
|
|
@@ -20,8 +20,6 @@ export interface ChainMeta {
|
|
|
20
20
|
export declare function getChainMeta(chainId: string): ChainMeta | undefined;
|
|
21
21
|
export declare function getNativeTokenInfo(chainId: string): NativeTokenInfo | undefined;
|
|
22
22
|
export interface PoolServiceConfig {
|
|
23
|
-
/** Per-chain RPC override. Falls back to CHAIN_REGISTRY[chain].defaultRpc. */
|
|
24
|
-
rpcUrls?: Record<string, string>;
|
|
25
23
|
/**
|
|
26
24
|
* Optional swap factory override. When omitted, a factory is built using the
|
|
27
25
|
* `isProduction` flag (defaults to the prod singleton when true).
|
|
@@ -94,7 +92,6 @@ export interface PoolOnchainInfo {
|
|
|
94
92
|
currentPrice: number;
|
|
95
93
|
}
|
|
96
94
|
export declare class PoolService {
|
|
97
|
-
private rpcUrls;
|
|
98
95
|
private swapFactory;
|
|
99
96
|
private isProduction;
|
|
100
97
|
constructor(config?: PoolServiceConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoolService.d.ts","sourceRoot":"","sources":["../../src/services/PoolService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAST,WAAW,EACX,kBAAkB,EAGlB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAoE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"PoolService.d.ts","sourceRoot":"","sources":["../../src/services/PoolService.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "priceToTick", { enumerable: true, get: function
|
|
|
10
10
|
Object.defineProperty(exports, "roundTickToSpacing", { enumerable: true, get: function () { return pool_1.roundTickToSpacing; } });
|
|
11
11
|
Object.defineProperty(exports, "tickToPrice", { enumerable: true, get: function () { return pool_1.tickToPrice; } });
|
|
12
12
|
const swap_1 = require("./swap");
|
|
13
|
+
const rpc_1 = require("./rpc");
|
|
13
14
|
// ============================================================
|
|
14
15
|
// PoolService — on-chain reads + add-liquidity tx builders
|
|
15
16
|
// ============================================================
|
|
@@ -24,56 +25,56 @@ const CHAIN_REGISTRY = {
|
|
|
24
25
|
'0x1': {
|
|
25
26
|
hexId: '0x1',
|
|
26
27
|
name: 'Ethereum',
|
|
27
|
-
defaultRpc:
|
|
28
|
+
defaultRpc: rpc_1.DEFAULT_RPC_BY_CHAIN['0x1'],
|
|
28
29
|
native: { symbol: 'ETH', name: 'Ether', decimals: 18, coingeckoId: 'ethereum' },
|
|
29
30
|
defaultMintGasLimit: 1_200_000,
|
|
30
31
|
},
|
|
31
32
|
'0xa': {
|
|
32
33
|
hexId: '0xa',
|
|
33
34
|
name: 'Optimism',
|
|
34
|
-
defaultRpc:
|
|
35
|
+
defaultRpc: rpc_1.DEFAULT_RPC_BY_CHAIN['0xa'],
|
|
35
36
|
native: { symbol: 'ETH', name: 'Ether', decimals: 18, coingeckoId: 'ethereum' },
|
|
36
37
|
defaultMintGasLimit: 1_200_000,
|
|
37
38
|
},
|
|
38
39
|
'0x38': {
|
|
39
40
|
hexId: '0x38',
|
|
40
41
|
name: 'BNB Smart Chain',
|
|
41
|
-
defaultRpc:
|
|
42
|
+
defaultRpc: rpc_1.DEFAULT_RPC_BY_CHAIN['0x38'],
|
|
42
43
|
native: { symbol: 'BNB', name: 'BNB', decimals: 18, coingeckoId: 'binancecoin' },
|
|
43
44
|
defaultMintGasLimit: 1_200_000,
|
|
44
45
|
},
|
|
45
46
|
'0x89': {
|
|
46
47
|
hexId: '0x89',
|
|
47
48
|
name: 'Polygon',
|
|
48
|
-
defaultRpc:
|
|
49
|
+
defaultRpc: rpc_1.DEFAULT_RPC_BY_CHAIN['0x89'],
|
|
49
50
|
native: { symbol: 'MATIC', name: 'Polygon', decimals: 18, coingeckoId: 'matic-network' },
|
|
50
51
|
defaultMintGasLimit: 1_200_000,
|
|
51
52
|
},
|
|
52
53
|
'0x2105': {
|
|
53
54
|
hexId: '0x2105',
|
|
54
55
|
name: 'Base',
|
|
55
|
-
defaultRpc:
|
|
56
|
+
defaultRpc: rpc_1.DEFAULT_RPC_BY_CHAIN['0x2105'],
|
|
56
57
|
native: { symbol: 'ETH', name: 'Ether', decimals: 18, coingeckoId: 'ethereum' },
|
|
57
58
|
defaultMintGasLimit: 1_200_000,
|
|
58
59
|
},
|
|
59
60
|
'0xa4b1': {
|
|
60
61
|
hexId: '0xa4b1',
|
|
61
62
|
name: 'Arbitrum One',
|
|
62
|
-
defaultRpc:
|
|
63
|
+
defaultRpc: rpc_1.DEFAULT_RPC_BY_CHAIN['0xa4b1'],
|
|
63
64
|
native: { symbol: 'ETH', name: 'Ether', decimals: 18, coingeckoId: 'ethereum' },
|
|
64
65
|
defaultMintGasLimit: 2_200_000,
|
|
65
66
|
},
|
|
66
67
|
'0xa86a': {
|
|
67
68
|
hexId: '0xa86a',
|
|
68
69
|
name: 'Avalanche',
|
|
69
|
-
defaultRpc:
|
|
70
|
+
defaultRpc: rpc_1.DEFAULT_RPC_BY_CHAIN['0xa86a'],
|
|
70
71
|
native: { symbol: 'AVAX', name: 'Avalanche', decimals: 18, coingeckoId: 'avalanche-2' },
|
|
71
72
|
defaultMintGasLimit: 1_200_000,
|
|
72
73
|
},
|
|
73
74
|
'0xe708': {
|
|
74
75
|
hexId: '0xe708',
|
|
75
76
|
name: 'Linea',
|
|
76
|
-
defaultRpc:
|
|
77
|
+
defaultRpc: rpc_1.DEFAULT_RPC_BY_CHAIN['0xe708'],
|
|
77
78
|
native: { symbol: 'ETH', name: 'Ether', decimals: 18, coingeckoId: 'ethereum' },
|
|
78
79
|
defaultMintGasLimit: 1_200_000,
|
|
79
80
|
},
|
|
@@ -84,29 +85,6 @@ function getChainMeta(chainId) {
|
|
|
84
85
|
function getNativeTokenInfo(chainId) {
|
|
85
86
|
return getChainMeta(chainId)?.native;
|
|
86
87
|
}
|
|
87
|
-
async function rpcCall(rpcUrl, method, params) {
|
|
88
|
-
const maxRetries = 5;
|
|
89
|
-
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
90
|
-
const res = await fetch(rpcUrl, {
|
|
91
|
-
method: 'POST',
|
|
92
|
-
headers: { 'Content-Type': 'application/json' },
|
|
93
|
-
body: JSON.stringify({ jsonrpc: '2.0', id: Date.now(), method, params }),
|
|
94
|
-
});
|
|
95
|
-
if (res.status === 429 && attempt < maxRetries) {
|
|
96
|
-
await new Promise((r) => setTimeout(r, 2 ** attempt * 500));
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
if (!res.ok)
|
|
100
|
-
throw new Error(`RPC ${method} HTTP ${res.status}`);
|
|
101
|
-
const json = (await res.json());
|
|
102
|
-
if (json.error)
|
|
103
|
-
throw new Error(`RPC ${method}: ${json.error.message}`);
|
|
104
|
-
if (json.result === undefined)
|
|
105
|
-
throw new Error(`RPC ${method}: empty result`);
|
|
106
|
-
return json.result;
|
|
107
|
-
}
|
|
108
|
-
throw new Error(`RPC ${method}: exceeded max retries (429)`);
|
|
109
|
-
}
|
|
110
88
|
/** keccak256("Transfer(address,address,uint256)") — ERC-20 / ERC-721 transfer */
|
|
111
89
|
exports.TRANSFER_TOPIC = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
|
|
112
90
|
function buildRangePresets(input) {
|
|
@@ -151,19 +129,19 @@ const TOKEN0_SELECTOR = (0, pool_1.functionSelector)('token0()');
|
|
|
151
129
|
const TOKEN1_SELECTOR = (0, pool_1.functionSelector)('token1()');
|
|
152
130
|
const DECIMALS_SELECTOR = (0, pool_1.functionSelector)('decimals()');
|
|
153
131
|
class PoolService {
|
|
154
|
-
rpcUrls;
|
|
155
132
|
swapFactory;
|
|
156
133
|
isProduction;
|
|
157
134
|
constructor(config) {
|
|
158
|
-
this.rpcUrls = config?.rpcUrls ?? {};
|
|
159
135
|
this.isProduction = config?.isProduction ?? true;
|
|
160
136
|
this.swapFactory =
|
|
161
137
|
config?.swapFactory ?? (this.isProduction ? swap_1.swapServiceFactory : new swap_1.SwapServiceFactory(undefined, false));
|
|
162
138
|
}
|
|
163
139
|
getRpcUrl(chainId) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
140
|
+
// RPC comes from the core-wide shared overrides (AgentConfig.rpcUrls,
|
|
141
|
+
// installed via setRpcOverrides), falling back to the chain default.
|
|
142
|
+
const shared = (0, rpc_1.resolveRpcUrl)(chainId);
|
|
143
|
+
if (shared)
|
|
144
|
+
return shared;
|
|
167
145
|
const meta = getChainMeta(chainId);
|
|
168
146
|
if (!meta)
|
|
169
147
|
throw new Error(`Unsupported chain: ${chainId}`);
|
|
@@ -177,16 +155,16 @@ class PoolService {
|
|
|
177
155
|
}
|
|
178
156
|
/** Generic eth_call helper. `data` is the encoded calldata (with selector). */
|
|
179
157
|
async ethCall(chainId, to, data) {
|
|
180
|
-
return rpcCall(this.getRpcUrl(chainId), 'eth_call', [{ to, data }, 'latest']);
|
|
158
|
+
return (0, rpc_1.rpcCall)(this.getRpcUrl(chainId), 'eth_call', [{ to, data }, 'latest']);
|
|
181
159
|
}
|
|
182
160
|
/** Read native balance (wei) */
|
|
183
161
|
async getNativeBalance(chainId, userAddress) {
|
|
184
|
-
const hex = await rpcCall(this.getRpcUrl(chainId), 'eth_getBalance', [userAddress, 'latest']);
|
|
162
|
+
const hex = await (0, rpc_1.rpcCall)(this.getRpcUrl(chainId), 'eth_getBalance', [userAddress, 'latest']);
|
|
185
163
|
return BigInt(hex);
|
|
186
164
|
}
|
|
187
165
|
/** Read current gas price (wei) */
|
|
188
166
|
async getGasPrice(chainId) {
|
|
189
|
-
const hex = await rpcCall(this.getRpcUrl(chainId), 'eth_gasPrice', []);
|
|
167
|
+
const hex = await (0, rpc_1.rpcCall)(this.getRpcUrl(chainId), 'eth_gasPrice', []);
|
|
190
168
|
return BigInt(hex);
|
|
191
169
|
}
|
|
192
170
|
/**
|
|
@@ -194,7 +172,7 @@ class PoolService {
|
|
|
194
172
|
* pending. Throws on RPC errors.
|
|
195
173
|
*/
|
|
196
174
|
async getTransactionReceipt(chainId, txHash) {
|
|
197
|
-
const res = await rpcCall(this.getRpcUrl(chainId), 'eth_getTransactionReceipt', [
|
|
175
|
+
const res = await (0, rpc_1.rpcCall)(this.getRpcUrl(chainId), 'eth_getTransactionReceipt', [
|
|
198
176
|
txHash,
|
|
199
177
|
]);
|
|
200
178
|
return res;
|