UNPKG

1inch-agent-kit

Version:

AI Agent Kit for 1inch - Connect any LLM to 1inch DeFi protocols

259 lines 11.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.balanceAPI = balanceAPI; exports.getAggregatedBalancesAndAllowances = getAggregatedBalancesAndAllowances; exports.getBalances = getBalances; exports.getCustomTokenBalances = getCustomTokenBalances; exports.getMultipleWalletsTokenBalances = getMultipleWalletsTokenBalances; exports.getBalancesAndAllowances = getBalancesAndAllowances; exports.getCustomTokenBalancesAndAllowances = getCustomTokenBalancesAndAllowances; exports.getAllowances = getAllowances; exports.getCustomTokenAllowances = getCustomTokenAllowances; const fetcher_1 = require("../../utils/fetcher"); const wallet_1 = require("../../utils/wallet"); /** * Get balances and allowances by spender for list of wallets addresses */ async function getAggregatedBalancesAndAllowances(params) { const apiKey = process.env.ONEINCH_API_KEY; if (!apiKey) { throw new Error("1inch API key is required. Set ONEINCH_API_KEY environment variable."); } const fetcher = new fetcher_1.OneInchFetcher(apiKey); let url = `/balance/v1.2/${params.chain}/aggregatedBalancesAndAllowances/${params.spender}`; const queryParams = { wallets: params.wallets }; if (params.filterEmpty !== undefined) { queryParams.filterEmpty = params.filterEmpty; } return await fetcher.get(url, queryParams); } /** * Get balances of tokens for walletAddress */ async function getBalances(params) { const apiKey = process.env.ONEINCH_API_KEY; if (!apiKey) { throw new Error("1inch API key is required. Set ONEINCH_API_KEY environment variable."); } const fetcher = new fetcher_1.OneInchFetcher(apiKey); const url = `/balance/v1.2/${params.chain}/balances/${params.walletAddress}`; return await fetcher.get(url); } /** * Get balances of custom tokens for walletAddress */ async function getCustomTokenBalances(params) { const apiKey = process.env.ONEINCH_API_KEY; if (!apiKey) { throw new Error("1inch API key is required. Set ONEINCH_API_KEY environment variable."); } const fetcher = new fetcher_1.OneInchFetcher(apiKey); const url = `/balance/v1.2/${params.chain}/balances/${params.walletAddress}`; const requestBody = { tokens: params.tokens }; return await fetcher.post(url, requestBody); } /** * Get balances of custom tokens for list of wallets addresses */ async function getMultipleWalletsTokenBalances(params) { const apiKey = process.env.ONEINCH_API_KEY; if (!apiKey) { throw new Error("1inch API key is required. Set ONEINCH_API_KEY environment variable."); } const fetcher = new fetcher_1.OneInchFetcher(apiKey); const url = `/balance/v1.2/${params.chain}/balances/multiple/walletsAndTokens`; const requestBody = { tokens: params.tokens, wallets: params.wallets }; return await fetcher.post(url, requestBody); } /** * Get balances and allowances of tokens by spender for walletAddress */ async function getBalancesAndAllowances(params) { const apiKey = process.env.ONEINCH_API_KEY; if (!apiKey) { throw new Error("1inch API key is required. Set ONEINCH_API_KEY environment variable."); } const fetcher = new fetcher_1.OneInchFetcher(apiKey); const url = `/balance/v1.2/${params.chain}/allowancesAndBalances/${params.spender}/${params.walletAddress}`; return await fetcher.get(url); } /** * Get balances and allowances of custom tokens by spender for walletAddress */ async function getCustomTokenBalancesAndAllowances(params) { const apiKey = process.env.ONEINCH_API_KEY; if (!apiKey) { throw new Error("1inch API key is required. Set ONEINCH_API_KEY environment variable."); } const fetcher = new fetcher_1.OneInchFetcher(apiKey); const url = `/balance/v1.2/${params.chain}/allowancesAndBalances/${params.spender}/${params.walletAddress}`; const requestBody = { tokens: params.tokens }; return await fetcher.post(url, requestBody); } /** * Get allowances of tokens by spender for walletAddress */ async function getAllowances(params) { const apiKey = process.env.ONEINCH_API_KEY; if (!apiKey) { throw new Error("1inch API key is required. Set ONEINCH_API_KEY environment variable."); } const fetcher = new fetcher_1.OneInchFetcher(apiKey); const url = `/balance/v1.2/${params.chain}/allowances/${params.spender}/${params.walletAddress}`; return await fetcher.get(url); } /** * Get allowances of custom tokens by spender for walletAddress */ async function getCustomTokenAllowances(params) { const apiKey = process.env.ONEINCH_API_KEY; if (!apiKey) { throw new Error("1inch API key is required. Set ONEINCH_API_KEY environment variable."); } const fetcher = new fetcher_1.OneInchFetcher(apiKey); const url = `/balance/v1.2/${params.chain}/allowances/${params.spender}/${params.walletAddress}`; const requestBody = { tokens: params.tokens }; return await fetcher.post(url, requestBody); } /** * Main balanceAPI function that handles all 8 endpoints */ async function balanceAPI(params) { try { // Initialize wallet manager if not already done if (!wallet_1.walletManager.getWalletContext().isConnected) { await wallet_1.walletManager.initialize(); } // Use wallet address from connected wallet if not provided const connectedWallet = wallet_1.walletManager.getWalletContext().wallet; const walletAddress = params.walletAddress || params.wallet?.address || connectedWallet?.address; // Optional debug logging (uncomment for debugging) // console.log('Balance API Debug:'); // console.log(' - params.walletAddress:', params.walletAddress); // console.log(' - params.wallet?.address:', params.wallet?.address); // console.log(' - connectedWallet?.address:', connectedWallet?.address); // console.log(' - final walletAddress:', walletAddress); // console.log(' - chain:', params.chain); // console.log(' - endpoint:', params.endpoint); switch (params.endpoint) { case "aggregatedBalancesAndAllowances": if (!params.spender) { throw new Error("spender is required for aggregatedBalancesAndAllowances endpoint"); } if (!params.wallets || params.wallets.length === 0) { throw new Error("wallets array is required for aggregatedBalancesAndAllowances endpoint"); } return await getAggregatedBalancesAndAllowances({ chain: params.chain, spender: params.spender, wallets: params.wallets, filterEmpty: params.filterEmpty }); case "getBalances": if (!walletAddress) { throw new Error("walletAddress is required for getBalances endpoint"); } return await getBalances({ chain: params.chain, walletAddress: walletAddress }); case "getCustomTokenBalances": if (!walletAddress) { throw new Error("walletAddress is required for getCustomTokenBalances endpoint"); } if (!params.tokens || params.tokens.length === 0) { throw new Error("tokens array is required for getCustomTokenBalances endpoint"); } return await getCustomTokenBalances({ chain: params.chain, walletAddress: walletAddress, tokens: params.tokens }); case "getMultipleWalletsTokenBalances": if (!params.wallets || params.wallets.length === 0) { throw new Error("wallets array is required for getMultipleWalletsTokenBalances endpoint"); } if (!params.tokens || params.tokens.length === 0) { throw new Error("tokens array is required for getMultipleWalletsTokenBalances endpoint"); } return await getMultipleWalletsTokenBalances({ chain: params.chain, tokens: params.tokens, wallets: params.wallets }); case "getBalancesAndAllowances": if (!walletAddress) { throw new Error("walletAddress is required for getBalancesAndAllowances endpoint"); } if (!params.spender) { throw new Error("spender is required for getBalancesAndAllowances endpoint"); } return await getBalancesAndAllowances({ chain: params.chain, spender: params.spender, walletAddress: walletAddress }); case "getCustomTokenBalancesAndAllowances": if (!walletAddress) { throw new Error("walletAddress is required for getCustomTokenBalancesAndAllowances endpoint"); } if (!params.spender) { throw new Error("spender is required for getCustomTokenBalancesAndAllowances endpoint"); } if (!params.tokens || params.tokens.length === 0) { throw new Error("tokens array is required for getCustomTokenBalancesAndAllowances endpoint"); } return await getCustomTokenBalancesAndAllowances({ chain: params.chain, spender: params.spender, walletAddress: walletAddress, tokens: params.tokens }); case "getAllowances": if (!walletAddress) { throw new Error("walletAddress is required for getAllowances endpoint"); } if (!params.spender) { throw new Error("spender is required for getAllowances endpoint"); } return await getAllowances({ chain: params.chain, spender: params.spender, walletAddress: walletAddress }); case "getCustomTokenAllowances": if (!walletAddress) { throw new Error("walletAddress is required for getCustomTokenAllowances endpoint"); } if (!params.spender) { throw new Error("spender is required for getCustomTokenAllowances endpoint"); } if (!params.tokens || params.tokens.length === 0) { throw new Error("tokens array is required for getCustomTokenAllowances endpoint"); } return await getCustomTokenAllowances({ chain: params.chain, spender: params.spender, walletAddress: walletAddress, tokens: params.tokens }); default: throw new Error(`Unknown endpoint: ${params.endpoint}`); } } catch (error) { throw new Error(`Balance API error: ${error instanceof Error ? error.message : 'Unknown error'}`); } } //# sourceMappingURL=index.js.map