keyring-agent-core 0.1.1 → 0.2.1
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 +5 -2
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwapTokenTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/SwapTokenTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ToolParameter, UserContext, WalletActionType } from '../../../types';
|
|
2
|
+
import { BaseWalletActionTool } from './BaseWalletActionTool';
|
|
3
|
+
/**
|
|
4
|
+
* Tool: open-unwrap-native-form
|
|
5
|
+
*
|
|
6
|
+
* Opens the UNWRAP NATIVE form (WETH → ETH, WBNB → BNB, …).
|
|
7
|
+
*/
|
|
8
|
+
export declare class UnwrapNativeTool extends BaseWalletActionTool {
|
|
9
|
+
name: string;
|
|
10
|
+
protected readonly actionType: WalletActionType;
|
|
11
|
+
protected readonly component = "UnwrapNativeForm";
|
|
12
|
+
protected readonly userInputFields: readonly [{
|
|
13
|
+
readonly key: "amount";
|
|
14
|
+
readonly label: "the amount to unwrap";
|
|
15
|
+
}];
|
|
16
|
+
description: string;
|
|
17
|
+
parameters: ToolParameter[];
|
|
18
|
+
protected buildParameters(args: Record<string, unknown>, _userContext?: UserContext): Promise<Record<string, string>>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=UnwrapNativeTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnwrapNativeTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/UnwrapNativeTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD,IAAI,SAA6B;IACjC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAmB;IAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,sBAAsB;IAElD,SAAS,CAAC,QAAQ,CAAC,eAAe;;;OAA+D;IAEjG,WAAW,SAGkE;IAE7E,UAAU,EAAE,aAAa,EAAE,CAQzB;cAEc,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW;CAM1F"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnwrapNativeTool = void 0;
|
|
4
|
+
const BaseWalletActionTool_1 = require("./BaseWalletActionTool");
|
|
5
|
+
/**
|
|
6
|
+
* Tool: open-unwrap-native-form
|
|
7
|
+
*
|
|
8
|
+
* Opens the UNWRAP NATIVE form (WETH → ETH, WBNB → BNB, …).
|
|
9
|
+
*/
|
|
10
|
+
class UnwrapNativeTool extends BaseWalletActionTool_1.BaseWalletActionTool {
|
|
11
|
+
name = 'open-unwrap-native-form';
|
|
12
|
+
actionType = 'unwrap_native';
|
|
13
|
+
component = 'UnwrapNativeForm';
|
|
14
|
+
userInputFields = [{ key: 'amount', label: 'the amount to unwrap' }];
|
|
15
|
+
description = "Open the UNWRAP NATIVE form so the user can unwrap their wrapped native into the chain's native " +
|
|
16
|
+
'coin (WETH → ETH, WBNB → BNB, WMATIC → MATIC, WAVAX → AVAX). Triggered by "unwrap", "withdraw ' +
|
|
17
|
+
'from WETH", "convert WETH to ETH", "tháo WETH". Only `amount` is needed.';
|
|
18
|
+
parameters = [
|
|
19
|
+
{ name: 'chain', type: 'string', description: 'Hex chain id. Defaults to connected chain.', required: false },
|
|
20
|
+
{
|
|
21
|
+
name: 'amount',
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'Human-readable amount of WRAPPED native to unwrap (e.g. "0.5"). Omit when unknown.',
|
|
24
|
+
required: false,
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
async buildParameters(args, _userContext) {
|
|
28
|
+
const params = {};
|
|
29
|
+
const amount = this.normaliseAmount(args.amount);
|
|
30
|
+
if (amount)
|
|
31
|
+
params.amount = amount;
|
|
32
|
+
return params;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.UnwrapNativeTool = UnwrapNativeTool;
|
|
36
|
+
//# sourceMappingURL=UnwrapNativeTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnwrapNativeTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/UnwrapNativeTool.ts"],"names":[],"mappings":";;;AACA,iEAA8D;AAE9D;;;;GAIG;AACH,MAAa,gBAAiB,SAAQ,2CAAoB;IACxD,IAAI,GAAG,yBAAyB,CAAC;IACd,UAAU,GAAqB,eAAe,CAAC;IAC/C,SAAS,GAAG,kBAAkB,CAAC;IAE/B,eAAe,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAU,CAAC;IAEjG,WAAW,GACT,kGAAkG;QAClG,gGAAgG;QAChG,0EAA0E,CAAC;IAE7E,UAAU,GAAoB;QAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC7G;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,oFAAoF;YACjG,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEQ,KAAK,CAAC,eAAe,CAAC,IAA6B,EAAE,YAA0B;QACvF,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA5BD,4CA4BC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ToolParameter, UserContext, WalletActionType } from '../../../types';
|
|
2
|
+
import { BaseWalletActionTool } from './BaseWalletActionTool';
|
|
3
|
+
/**
|
|
4
|
+
* Tool: open-wrap-native-form
|
|
5
|
+
*
|
|
6
|
+
* Opens the WRAP NATIVE form (e.g. ETH → WETH, BNB → WBNB).
|
|
7
|
+
*/
|
|
8
|
+
export declare class WrapNativeTool extends BaseWalletActionTool {
|
|
9
|
+
name: string;
|
|
10
|
+
protected readonly actionType: WalletActionType;
|
|
11
|
+
protected readonly component = "WrapNativeForm";
|
|
12
|
+
protected readonly userInputFields: readonly [{
|
|
13
|
+
readonly key: "amount";
|
|
14
|
+
readonly label: "the amount to wrap";
|
|
15
|
+
}];
|
|
16
|
+
description: string;
|
|
17
|
+
parameters: ToolParameter[];
|
|
18
|
+
protected buildParameters(args: Record<string, unknown>, userContext?: UserContext): Promise<Record<string, string> | {
|
|
19
|
+
error: string;
|
|
20
|
+
_instructions: string;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=WrapNativeTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WrapNativeTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/WrapNativeTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,oBAAoB;IACtD,IAAI,SAA2B;IAC/B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAiB;IAChE,SAAS,CAAC,QAAQ,CAAC,SAAS,oBAAoB;IAEhD,SAAS,CAAC,QAAQ,CAAC,eAAe;;;OAA6D;IAE/F,WAAW,SAG0F;IAErG,UAAU,EAAE,aAAa,EAAE,CAQzB;cAEc,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;CA6BzF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WrapNativeTool = void 0;
|
|
4
|
+
const BaseWalletActionTool_1 = require("./BaseWalletActionTool");
|
|
5
|
+
/**
|
|
6
|
+
* Tool: open-wrap-native-form
|
|
7
|
+
*
|
|
8
|
+
* Opens the WRAP NATIVE form (e.g. ETH → WETH, BNB → WBNB).
|
|
9
|
+
*/
|
|
10
|
+
class WrapNativeTool extends BaseWalletActionTool_1.BaseWalletActionTool {
|
|
11
|
+
name = 'open-wrap-native-form';
|
|
12
|
+
actionType = 'wrap_native';
|
|
13
|
+
component = 'WrapNativeForm';
|
|
14
|
+
userInputFields = [{ key: 'amount', label: 'the amount to wrap' }];
|
|
15
|
+
description = "Open the WRAP NATIVE form so the user can wrap the chain's native coin into its wrapped ERC-20 " +
|
|
16
|
+
'(ETH → WETH, BNB → WBNB, MATIC → WMATIC, AVAX → WAVAX). Triggered by "wrap", "deposit into WETH", ' +
|
|
17
|
+
'"convert ETH to WETH", "bọc ETH". Only `amount` is needed. DO NOT use for arbitrary token swaps.';
|
|
18
|
+
parameters = [
|
|
19
|
+
{ name: 'chain', type: 'string', description: 'Hex chain id. Defaults to connected chain.', required: false },
|
|
20
|
+
{
|
|
21
|
+
name: 'amount',
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'Human-readable amount of native coin to wrap (e.g. "0.5"). Omit when unknown.',
|
|
24
|
+
required: false,
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
async buildParameters(args, userContext) {
|
|
28
|
+
const params = {};
|
|
29
|
+
// Wrapping spends the native coin and pays gas in it, so size the amount off
|
|
30
|
+
// the SPENDABLE balance (held − gas reserve). The reserve uses the wrap gas
|
|
31
|
+
// limit (the WETH deposit() call costs more than a plain transfer): a
|
|
32
|
+
// percent/usd resolves against spendable and a plain amount over it is
|
|
33
|
+
// rejected. The reserve is silent; the user only ever sees the spendable.
|
|
34
|
+
const chain = this.requireChain(args, userContext) ?? undefined;
|
|
35
|
+
const resolvedAmount = await this.resolveAmountInput({
|
|
36
|
+
rawAmount: args.amount,
|
|
37
|
+
tokenAddress: 'native',
|
|
38
|
+
symbol: 'the native coin',
|
|
39
|
+
chain,
|
|
40
|
+
walletAddress: userContext?.walletAddress ?? undefined,
|
|
41
|
+
gasKind: 'wrap',
|
|
42
|
+
});
|
|
43
|
+
if (resolvedAmount && 'error' in resolvedAmount)
|
|
44
|
+
return resolvedAmount;
|
|
45
|
+
if (resolvedAmount)
|
|
46
|
+
params.amount = resolvedAmount.amount;
|
|
47
|
+
const spendable = await this.resolveNativeSpendableFormatted(chain, userContext?.walletAddress ?? undefined, 'wrap');
|
|
48
|
+
if (spendable !== undefined)
|
|
49
|
+
params.spendable = spendable;
|
|
50
|
+
return params;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.WrapNativeTool = WrapNativeTool;
|
|
54
|
+
//# sourceMappingURL=WrapNativeTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WrapNativeTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/WrapNativeTool.ts"],"names":[],"mappings":";;;AACA,iEAA8D;AAE9D;;;;GAIG;AACH,MAAa,cAAe,SAAQ,2CAAoB;IACtD,IAAI,GAAG,uBAAuB,CAAC;IACZ,UAAU,GAAqB,aAAa,CAAC;IAC7C,SAAS,GAAG,gBAAgB,CAAC;IAE7B,eAAe,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAU,CAAC;IAE/F,WAAW,GACT,iGAAiG;QACjG,oGAAoG;QACpG,kGAAkG,CAAC;IAErG,UAAU,GAAoB;QAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC7G;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+EAA+E;YAC5F,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEQ,KAAK,CAAC,eAAe,CAAC,IAA6B,EAAE,WAAyB;QACtF,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,6EAA6E;QAC7E,4EAA4E;QAC5E,sEAAsE;QACtE,uEAAuE;QACvE,0EAA0E;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC;QAChE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACnD,SAAS,EAAE,IAAI,CAAC,MAAM;YACtB,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,iBAAiB;YACzB,KAAK;YACL,aAAa,EAAE,WAAW,EAAE,aAAa,IAAI,SAAS;YACtD,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,IAAI,cAAc,IAAI,OAAO,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QACvE,IAAI,cAAc;YAAE,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QAE1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAC1D,KAAK,EACL,WAAW,EAAE,aAAa,IAAI,SAAS,EACvC,MAAM,CACP,CAAC;QACF,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAE1D,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAnDD,wCAmDC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared "amount spec" parsing for wallet-action tools.
|
|
3
|
+
*
|
|
4
|
+
* Users express a token amount three ways, and the LLM forwards whatever the
|
|
5
|
+
* user typed verbatim as the amount string:
|
|
6
|
+
*
|
|
7
|
+
* - PLAIN token amount: "100", "0.5" → use as-is.
|
|
8
|
+
* - PERCENT of balance: "50%", "100 %" → balance × percent / 100.
|
|
9
|
+
* - USD value: "5$", "$5", "5 usd" → usdValue / tokenUsdPrice.
|
|
10
|
+
*
|
|
11
|
+
* Parsing is pure (no I/O); resolving a percent/usd spec needs the token's
|
|
12
|
+
* balance and/or USD price, which each tool supplies from its own data source
|
|
13
|
+
* (wallet balances + Pantograph price). Both SendToken, SendNative and BuyToken
|
|
14
|
+
* funnel their amount inputs through here so the four shapes behave identically.
|
|
15
|
+
*/
|
|
16
|
+
export type AmountSpec = {
|
|
17
|
+
kind: 'token';
|
|
18
|
+
value: number;
|
|
19
|
+
raw: string;
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'percent';
|
|
22
|
+
percent: number;
|
|
23
|
+
raw: string;
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'usd';
|
|
26
|
+
usd: number;
|
|
27
|
+
raw: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Parse a user-supplied amount string into an {@link AmountSpec}. Returns `null`
|
|
31
|
+
* when the string is empty or not a positive number. Tolerates surrounding
|
|
32
|
+
* whitespace, a leading/trailing `$`, a trailing `%`, and a trailing `usd`/`usdt`
|
|
33
|
+
* unit word is NOT treated as USD (only `$`/`usd` mean fiat — a token symbol like
|
|
34
|
+
* "USDT" is the token, not the unit).
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseAmountSpec(input: unknown): AmountSpec | null;
|
|
37
|
+
/** Outcome of resolving an {@link AmountSpec} into a concrete token amount. */
|
|
38
|
+
export type ResolveAmountResult = {
|
|
39
|
+
ok: true;
|
|
40
|
+
amount: number;
|
|
41
|
+
}
|
|
42
|
+
/** A percent/usd spec needs balance/price we couldn't obtain. */
|
|
43
|
+
| {
|
|
44
|
+
ok: false;
|
|
45
|
+
reason: 'no_balance' | 'no_price';
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Resolve a parsed spec into a concrete token amount (a plain number, in token
|
|
49
|
+
* units) using the supplied balance and/or USD price.
|
|
50
|
+
*
|
|
51
|
+
* - token → the value as-is.
|
|
52
|
+
* - percent → `balance × percent / 100` (needs `balance`).
|
|
53
|
+
* - usd → `usd / usdPrice` (needs a positive `usdPrice`).
|
|
54
|
+
*
|
|
55
|
+
* `balance` / `usdPrice` may be undefined when the caller couldn't fetch them;
|
|
56
|
+
* the matching spec kind then fails with a reason the caller surfaces.
|
|
57
|
+
*/
|
|
58
|
+
export declare function resolveAmountSpec(spec: AmountSpec, ctx: {
|
|
59
|
+
balance?: number;
|
|
60
|
+
usdPrice?: number;
|
|
61
|
+
}): ResolveAmountResult;
|
|
62
|
+
//# sourceMappingURL=amountSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amountSpec.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/amountSpec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAwCjE;AAED,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC9B,iEAAiE;GAC/D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAA;CAAE,CAAC;AAErD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CAiBrH"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared "amount spec" parsing for wallet-action tools.
|
|
4
|
+
*
|
|
5
|
+
* Users express a token amount three ways, and the LLM forwards whatever the
|
|
6
|
+
* user typed verbatim as the amount string:
|
|
7
|
+
*
|
|
8
|
+
* - PLAIN token amount: "100", "0.5" → use as-is.
|
|
9
|
+
* - PERCENT of balance: "50%", "100 %" → balance × percent / 100.
|
|
10
|
+
* - USD value: "5$", "$5", "5 usd" → usdValue / tokenUsdPrice.
|
|
11
|
+
*
|
|
12
|
+
* Parsing is pure (no I/O); resolving a percent/usd spec needs the token's
|
|
13
|
+
* balance and/or USD price, which each tool supplies from its own data source
|
|
14
|
+
* (wallet balances + Pantograph price). Both SendToken, SendNative and BuyToken
|
|
15
|
+
* funnel their amount inputs through here so the four shapes behave identically.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.parseAmountSpec = parseAmountSpec;
|
|
19
|
+
exports.resolveAmountSpec = resolveAmountSpec;
|
|
20
|
+
/**
|
|
21
|
+
* Parse a user-supplied amount string into an {@link AmountSpec}. Returns `null`
|
|
22
|
+
* when the string is empty or not a positive number. Tolerates surrounding
|
|
23
|
+
* whitespace, a leading/trailing `$`, a trailing `%`, and a trailing `usd`/`usdt`
|
|
24
|
+
* unit word is NOT treated as USD (only `$`/`usd` mean fiat — a token symbol like
|
|
25
|
+
* "USDT" is the token, not the unit).
|
|
26
|
+
*/
|
|
27
|
+
function parseAmountSpec(input) {
|
|
28
|
+
if (typeof input === 'number') {
|
|
29
|
+
return Number.isFinite(input) && input > 0 ? { kind: 'token', value: input, raw: String(input) } : null;
|
|
30
|
+
}
|
|
31
|
+
if (typeof input !== 'string')
|
|
32
|
+
return null;
|
|
33
|
+
const raw = input.trim();
|
|
34
|
+
if (!raw)
|
|
35
|
+
return null;
|
|
36
|
+
// MAX / ALL → 100% of the (spendable) balance. The tool descriptions instruct
|
|
37
|
+
// the LLM to NORMALIZE any "whole balance / everything" phrasing — in ANY
|
|
38
|
+
// language — down to the literal "max" before calling, so this parser only
|
|
39
|
+
// needs to recognize that canonical form. The extra English + Vietnamese words
|
|
40
|
+
// below are a defensive safety net for when the LLM forwards a phrase verbatim
|
|
41
|
+
// instead of normalizing it; they are NOT meant to cover every language (that's
|
|
42
|
+
// the LLM's job). Resolving then goes through the same percent path, which for
|
|
43
|
+
// native is sized off the gas-aware spendable balance.
|
|
44
|
+
if (/^(?:max(?:imum)?|all|everything|tất\s*cả|toàn\s*bộ)$/i.test(raw)) {
|
|
45
|
+
return { kind: 'percent', percent: 100, raw };
|
|
46
|
+
}
|
|
47
|
+
// PERCENT: "50%", "50 %", "%50" (rare). The number must be positive.
|
|
48
|
+
const pct = raw.match(/^%?\s*([0-9]*\.?[0-9]+)\s*%$|^%\s*([0-9]*\.?[0-9]+)$/);
|
|
49
|
+
if (pct) {
|
|
50
|
+
const n = parseFloat(pct[1] ?? pct[2]);
|
|
51
|
+
return Number.isFinite(n) && n > 0 ? { kind: 'percent', percent: n, raw } : null;
|
|
52
|
+
}
|
|
53
|
+
// USD: "$5", "5$", "5 usd", "usd 5". The `$` or the standalone word "usd"
|
|
54
|
+
// marks fiat. A bare "5" is a token amount (handled below).
|
|
55
|
+
const usd = raw.match(/^\$\s*([0-9]*\.?[0-9]+)$|^([0-9]*\.?[0-9]+)\s*\$$|^(?:usd)\s*([0-9]*\.?[0-9]+)$|^([0-9]*\.?[0-9]+)\s*usd$/i);
|
|
56
|
+
if (usd) {
|
|
57
|
+
const n = parseFloat(usd[1] ?? usd[2] ?? usd[3] ?? usd[4]);
|
|
58
|
+
return Number.isFinite(n) && n > 0 ? { kind: 'usd', usd: n, raw } : null;
|
|
59
|
+
}
|
|
60
|
+
// PLAIN token amount.
|
|
61
|
+
const n = parseFloat(raw);
|
|
62
|
+
return Number.isFinite(n) && n > 0 && /^[0-9]*\.?[0-9]+$/.test(raw) ? { kind: 'token', value: n, raw } : null;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Resolve a parsed spec into a concrete token amount (a plain number, in token
|
|
66
|
+
* units) using the supplied balance and/or USD price.
|
|
67
|
+
*
|
|
68
|
+
* - token → the value as-is.
|
|
69
|
+
* - percent → `balance × percent / 100` (needs `balance`).
|
|
70
|
+
* - usd → `usd / usdPrice` (needs a positive `usdPrice`).
|
|
71
|
+
*
|
|
72
|
+
* `balance` / `usdPrice` may be undefined when the caller couldn't fetch them;
|
|
73
|
+
* the matching spec kind then fails with a reason the caller surfaces.
|
|
74
|
+
*/
|
|
75
|
+
function resolveAmountSpec(spec, ctx) {
|
|
76
|
+
switch (spec.kind) {
|
|
77
|
+
case 'token':
|
|
78
|
+
return { ok: true, amount: spec.value };
|
|
79
|
+
case 'percent': {
|
|
80
|
+
if (ctx.balance === undefined || !Number.isFinite(ctx.balance) || ctx.balance <= 0) {
|
|
81
|
+
return { ok: false, reason: 'no_balance' };
|
|
82
|
+
}
|
|
83
|
+
return { ok: true, amount: (ctx.balance * spec.percent) / 100 };
|
|
84
|
+
}
|
|
85
|
+
case 'usd': {
|
|
86
|
+
if (ctx.usdPrice === undefined || !Number.isFinite(ctx.usdPrice) || ctx.usdPrice <= 0) {
|
|
87
|
+
return { ok: false, reason: 'no_price' };
|
|
88
|
+
}
|
|
89
|
+
return { ok: true, amount: spec.usd / ctx.usdPrice };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=amountSpec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amountSpec.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/amountSpec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native gas-reserve estimation for wallet-action tools.
|
|
3
|
+
*
|
|
4
|
+
* When the SPENT token is the chain's native coin, the user can't spend their
|
|
5
|
+
* full balance — some must be left to pay the transaction's gas. So "spendable"
|
|
6
|
+
* is `balance − gasReserve`, where `gasReserve = gasLimit × gasPrice`:
|
|
7
|
+
*
|
|
8
|
+
* - send native: gasLimit 30_000 (a plain value transfer).
|
|
9
|
+
* - wrap native: gasLimit 40_000 (a WETH deposit() call).
|
|
10
|
+
* - buy / swap: gasLimit 1_000_000 (a router call + possible approval).
|
|
11
|
+
*
|
|
12
|
+
* The gas price is read live via `eth_gasPrice` against the chain's RPC (a
|
|
13
|
+
* caller-supplied override when configured, else the chain's default).
|
|
14
|
+
* This is best-effort and SILENT: the reserve is only ever used internally to
|
|
15
|
+
* size "spendable" — it is never surfaced to the user. When the price can't be
|
|
16
|
+
* read (RPC error, unknown chain) the reserve is `0n`, i.e. we fall back to the
|
|
17
|
+
* full balance rather than blocking the user.
|
|
18
|
+
*/
|
|
19
|
+
/** Gas limits per native action kind (matches the FE's tx builders). */
|
|
20
|
+
export declare const NATIVE_GAS_LIMIT: {
|
|
21
|
+
readonly send: 30000n;
|
|
22
|
+
/** wrap native → wrapped ERC-20 via the WETH-style `deposit()` payable call. */
|
|
23
|
+
readonly wrap: 40000n;
|
|
24
|
+
/** buy and swap both go through a router call (+ possible approval). */
|
|
25
|
+
readonly swap: 1000000n;
|
|
26
|
+
};
|
|
27
|
+
export type NativeActionKind = keyof typeof NATIVE_GAS_LIMIT;
|
|
28
|
+
/**
|
|
29
|
+
* Estimate the native gas reserve (in wei) to set aside for a transaction of
|
|
30
|
+
* the given kind on `chainId`. Returns `0n` when the gas price can't be read
|
|
31
|
+
* from any endpoint — the caller then treats the full balance as spendable.
|
|
32
|
+
* Never throws.
|
|
33
|
+
*/
|
|
34
|
+
export declare function estimateNativeGasReserveWei(chainId: string, kind: NativeActionKind): Promise<bigint>;
|
|
35
|
+
/**
|
|
36
|
+
* Given a native balance (human token units) and a gas reserve (wei), return the
|
|
37
|
+
* spendable balance in the SAME human units: `balance − gasReserve`, floored at
|
|
38
|
+
* 0. Uses the chain's native decimals to convert the wei reserve. When decimals
|
|
39
|
+
* are unknown the reserve is ignored (returns the full balance).
|
|
40
|
+
*/
|
|
41
|
+
export declare function spendableNative(balanceNum: number, gasReserveWei: bigint, chainId: string): number;
|
|
42
|
+
//# sourceMappingURL=gasReserve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gasReserve.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/gasReserve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,wEAAwE;AACxE,eAAO,MAAM,gBAAgB;;IAE3B,gFAAgF;;IAEhF,wEAAwE;;CAEhE,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AA0C7D;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAI1G;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlG"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Native gas-reserve estimation for wallet-action tools.
|
|
4
|
+
*
|
|
5
|
+
* When the SPENT token is the chain's native coin, the user can't spend their
|
|
6
|
+
* full balance — some must be left to pay the transaction's gas. So "spendable"
|
|
7
|
+
* is `balance − gasReserve`, where `gasReserve = gasLimit × gasPrice`:
|
|
8
|
+
*
|
|
9
|
+
* - send native: gasLimit 30_000 (a plain value transfer).
|
|
10
|
+
* - wrap native: gasLimit 40_000 (a WETH deposit() call).
|
|
11
|
+
* - buy / swap: gasLimit 1_000_000 (a router call + possible approval).
|
|
12
|
+
*
|
|
13
|
+
* The gas price is read live via `eth_gasPrice` against the chain's RPC (a
|
|
14
|
+
* caller-supplied override when configured, else the chain's default).
|
|
15
|
+
* This is best-effort and SILENT: the reserve is only ever used internally to
|
|
16
|
+
* size "spendable" — it is never surfaced to the user. When the price can't be
|
|
17
|
+
* read (RPC error, unknown chain) the reserve is `0n`, i.e. we fall back to the
|
|
18
|
+
* full balance rather than blocking the user.
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.NATIVE_GAS_LIMIT = void 0;
|
|
22
|
+
exports.estimateNativeGasReserveWei = estimateNativeGasReserveWei;
|
|
23
|
+
exports.spendableNative = spendableNative;
|
|
24
|
+
const rpc_1 = require("../../../services/rpc");
|
|
25
|
+
const PoolService_1 = require("../../../services/PoolService");
|
|
26
|
+
/** Gas limits per native action kind (matches the FE's tx builders). */
|
|
27
|
+
exports.NATIVE_GAS_LIMIT = {
|
|
28
|
+
send: 30000n,
|
|
29
|
+
/** wrap native → wrapped ERC-20 via the WETH-style `deposit()` payable call. */
|
|
30
|
+
wrap: 40000n,
|
|
31
|
+
/** buy and swap both go through a router call (+ possible approval). */
|
|
32
|
+
swap: 1000000n,
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Backup gas-price RPCs per hex chain id, tried in order AFTER the default RPC.
|
|
36
|
+
* Some default public endpoints intermittently reject `eth_gasPrice` (e.g.
|
|
37
|
+
* eth.llamarpc.com returns HTTP 525), which would silently zero the reserve and
|
|
38
|
+
* let "100%" overspend. These fallbacks keep the reserve accurate when the
|
|
39
|
+
* primary RPC is flaky. Only chains with a known-good alternative are listed.
|
|
40
|
+
*/
|
|
41
|
+
const GAS_PRICE_FALLBACK_RPCS = {
|
|
42
|
+
'0x1': ['https://ethereum-rpc.publicnode.com', 'https://eth.drpc.org', 'https://1rpc.io/eth'],
|
|
43
|
+
'0xa': ['https://optimism-rpc.publicnode.com', 'https://optimism.drpc.org'],
|
|
44
|
+
'0x38': ['https://bsc-rpc.publicnode.com', 'https://bsc.drpc.org'],
|
|
45
|
+
'0x89': ['https://polygon-bor-rpc.publicnode.com', 'https://polygon.drpc.org'],
|
|
46
|
+
'0x2105': ['https://base-rpc.publicnode.com', 'https://base.drpc.org'],
|
|
47
|
+
'0xa4b1': ['https://arbitrum-one-rpc.publicnode.com', 'https://arbitrum.drpc.org'],
|
|
48
|
+
'0xa86a': ['https://avalanche-c-chain-rpc.publicnode.com', 'https://avalanche.drpc.org'],
|
|
49
|
+
'0xe708': ['https://linea-rpc.publicnode.com', 'https://linea.drpc.org'],
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Read the current gas price (wei) for a chain, trying the resolved RPC first
|
|
53
|
+
* (a caller-supplied override when configured, else the chain default) and then
|
|
54
|
+
* per-chain fallbacks until one responds. Returns `0n` when every endpoint
|
|
55
|
+
* fails so the caller can degrade to the full balance. Never throws.
|
|
56
|
+
*/
|
|
57
|
+
async function readGasPriceWei(chainId) {
|
|
58
|
+
const key = chainId.toLowerCase();
|
|
59
|
+
const primary = (0, rpc_1.resolveRpcUrl)(chainId);
|
|
60
|
+
const urls = [primary, ...(GAS_PRICE_FALLBACK_RPCS[key] ?? [])].filter((u) => !!u);
|
|
61
|
+
for (const url of urls) {
|
|
62
|
+
try {
|
|
63
|
+
const hex = await (0, rpc_1.rpcCall)(url, 'eth_gasPrice', []);
|
|
64
|
+
const gasPrice = BigInt(hex);
|
|
65
|
+
if (gasPrice > 0n)
|
|
66
|
+
return gasPrice;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Try the next endpoint.
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return 0n;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Estimate the native gas reserve (in wei) to set aside for a transaction of
|
|
76
|
+
* the given kind on `chainId`. Returns `0n` when the gas price can't be read
|
|
77
|
+
* from any endpoint — the caller then treats the full balance as spendable.
|
|
78
|
+
* Never throws.
|
|
79
|
+
*/
|
|
80
|
+
async function estimateNativeGasReserveWei(chainId, kind) {
|
|
81
|
+
const gasPrice = await readGasPriceWei(chainId);
|
|
82
|
+
if (gasPrice <= 0n)
|
|
83
|
+
return 0n;
|
|
84
|
+
return exports.NATIVE_GAS_LIMIT[kind] * gasPrice;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Given a native balance (human token units) and a gas reserve (wei), return the
|
|
88
|
+
* spendable balance in the SAME human units: `balance − gasReserve`, floored at
|
|
89
|
+
* 0. Uses the chain's native decimals to convert the wei reserve. When decimals
|
|
90
|
+
* are unknown the reserve is ignored (returns the full balance).
|
|
91
|
+
*/
|
|
92
|
+
function spendableNative(balanceNum, gasReserveWei, chainId) {
|
|
93
|
+
if (gasReserveWei <= 0n)
|
|
94
|
+
return balanceNum;
|
|
95
|
+
const decimals = (0, PoolService_1.getChainMeta)(chainId)?.native.decimals;
|
|
96
|
+
if (decimals === undefined)
|
|
97
|
+
return balanceNum;
|
|
98
|
+
const reserve = Number(gasReserveWei) / 10 ** decimals;
|
|
99
|
+
if (!Number.isFinite(reserve) || reserve <= 0)
|
|
100
|
+
return balanceNum;
|
|
101
|
+
return Math.max(0, balanceNum - reserve);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=gasReserve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gasReserve.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/gasReserve.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AA8DH,kEAIC;AAQD,0CAOC;AA/ED,+CAA+D;AAC/D,+DAA6D;AAE7D,wEAAwE;AAC3D,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAO;IACb,gFAAgF;IAChF,IAAI,EAAE,MAAO;IACb,wEAAwE;IACxE,IAAI,EAAE,QAAU;CACR,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,uBAAuB,GAAsC;IACjE,KAAK,EAAE,CAAC,qCAAqC,EAAE,sBAAsB,EAAE,qBAAqB,CAAC;IAC7F,KAAK,EAAE,CAAC,qCAAqC,EAAE,2BAA2B,CAAC;IAC3E,MAAM,EAAE,CAAC,gCAAgC,EAAE,sBAAsB,CAAC;IAClE,MAAM,EAAE,CAAC,wCAAwC,EAAE,0BAA0B,CAAC;IAC9E,QAAQ,EAAE,CAAC,iCAAiC,EAAE,uBAAuB,CAAC;IACtE,QAAQ,EAAE,CAAC,yCAAyC,EAAE,2BAA2B,CAAC;IAClF,QAAQ,EAAE,CAAC,8CAA8C,EAAE,4BAA4B,CAAC;IACxF,QAAQ,EAAE,CAAC,kCAAkC,EAAE,wBAAwB,CAAC;CACzE,CAAC;AAEF;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,OAAe;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAA,mBAAa,EAAC,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAA,aAAO,EAAS,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,QAAQ,GAAG,EAAE;gBAAE,OAAO,QAAQ,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,2BAA2B,CAAC,OAAe,EAAE,IAAsB;IACvF,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,QAAQ,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,wBAAgB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,UAAkB,EAAE,aAAqB,EAAE,OAAe;IACxF,IAAI,aAAa,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAA,0BAAY,EAAC,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IACxD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { BaseWalletActionTool } from './BaseWalletActionTool';
|
|
2
|
+
export { SendNativeTool } from './SendNativeTool';
|
|
3
|
+
export { SendTokenTool } from './SendTokenTool';
|
|
4
|
+
export { ApproveTokenTool } from './ApproveTokenTool';
|
|
5
|
+
export { WrapNativeTool } from './WrapNativeTool';
|
|
6
|
+
export { UnwrapNativeTool } from './UnwrapNativeTool';
|
|
7
|
+
export { BuyTokenTool } from './BuyTokenTool';
|
|
8
|
+
export { SwapTokenTool } from './SwapTokenTool';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SwapTokenTool = exports.BuyTokenTool = exports.UnwrapNativeTool = exports.WrapNativeTool = exports.ApproveTokenTool = exports.SendTokenTool = exports.SendNativeTool = exports.BaseWalletActionTool = void 0;
|
|
4
|
+
var BaseWalletActionTool_1 = require("./BaseWalletActionTool");
|
|
5
|
+
Object.defineProperty(exports, "BaseWalletActionTool", { enumerable: true, get: function () { return BaseWalletActionTool_1.BaseWalletActionTool; } });
|
|
6
|
+
var SendNativeTool_1 = require("./SendNativeTool");
|
|
7
|
+
Object.defineProperty(exports, "SendNativeTool", { enumerable: true, get: function () { return SendNativeTool_1.SendNativeTool; } });
|
|
8
|
+
var SendTokenTool_1 = require("./SendTokenTool");
|
|
9
|
+
Object.defineProperty(exports, "SendTokenTool", { enumerable: true, get: function () { return SendTokenTool_1.SendTokenTool; } });
|
|
10
|
+
var ApproveTokenTool_1 = require("./ApproveTokenTool");
|
|
11
|
+
Object.defineProperty(exports, "ApproveTokenTool", { enumerable: true, get: function () { return ApproveTokenTool_1.ApproveTokenTool; } });
|
|
12
|
+
var WrapNativeTool_1 = require("./WrapNativeTool");
|
|
13
|
+
Object.defineProperty(exports, "WrapNativeTool", { enumerable: true, get: function () { return WrapNativeTool_1.WrapNativeTool; } });
|
|
14
|
+
var UnwrapNativeTool_1 = require("./UnwrapNativeTool");
|
|
15
|
+
Object.defineProperty(exports, "UnwrapNativeTool", { enumerable: true, get: function () { return UnwrapNativeTool_1.UnwrapNativeTool; } });
|
|
16
|
+
var BuyTokenTool_1 = require("./BuyTokenTool");
|
|
17
|
+
Object.defineProperty(exports, "BuyTokenTool", { enumerable: true, get: function () { return BuyTokenTool_1.BuyTokenTool; } });
|
|
18
|
+
var SwapTokenTool_1 = require("./SwapTokenTool");
|
|
19
|
+
Object.defineProperty(exports, "SwapTokenTool", { enumerable: true, get: function () { return SwapTokenTool_1.SwapTokenTool; } });
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/builtin/wallet-action/index.ts"],"names":[],"mappings":";;;AAAA,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA"}
|