UNPKG

1inch-agent-kit

Version:

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

232 lines 10.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkPortfolioStatus = checkPortfolioStatus; exports.checkAddressesCompliance = checkAddressesCompliance; exports.getSupportedChains = getSupportedChains; exports.getSupportedProtocols = getSupportedProtocols; exports.getCurrentPortfolioValue = getCurrentPortfolioValue; exports.getGeneralValueChart = getGeneralValueChart; exports.getOverviewReport = getOverviewReport; exports.getProtocolsSnapshot = getProtocolsSnapshot; exports.getProtocolsMetrics = getProtocolsMetrics; exports.getTokensSnapshot = getTokensSnapshot; exports.getTokensMetrics = getTokensMetrics; exports.portfolioAPI = portfolioAPI; const fetcher_1 = require("../../utils/fetcher"); // Individual endpoint functions async function checkPortfolioStatus() { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const response = await fetcher.get('/portfolio/portfolio/v5.0/general/status'); return response; } async function checkAddressesCompliance(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); params.addresses.forEach(address => queryParams.append('addresses', address)); if (params.chain_id) queryParams.append('chain_id', params.chain_id.toString()); if (params.use_cache !== undefined) queryParams.append('use_cache', params.use_cache.toString()); const url = `/portfolio/portfolio/v5.0/general/address_check?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } async function getSupportedChains() { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const response = await fetcher.get('/portfolio/portfolio/v5.0/general/supported_chains'); return response; } async function getSupportedProtocols() { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const response = await fetcher.get('/portfolio/portfolio/v5.0/general/supported_protocols'); return response; } async function getCurrentPortfolioValue(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); params.addresses.forEach(address => queryParams.append('addresses', address)); if (params.chain_id) queryParams.append('chain_id', params.chain_id.toString()); if (params.use_cache !== undefined) queryParams.append('use_cache', params.use_cache.toString()); const url = `/portfolio/portfolio/v5.0/general/current_value?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } async function getGeneralValueChart(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); params.addresses.forEach(address => queryParams.append('addresses', address)); if (params.chain_id) queryParams.append('chain_id', params.chain_id.toString()); if (params.timerange) queryParams.append('timerange', params.timerange); if (params.use_cache !== undefined) queryParams.append('use_cache', params.use_cache.toString()); const url = `/portfolio/portfolio/v5.0/general/chart?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } async function getOverviewReport(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); params.addresses.forEach(address => queryParams.append('addresses', address)); if (params.chain_id) queryParams.append('chain_id', params.chain_id.toString()); const url = `/portfolio/portfolio/v5.0/general/report?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } async function getProtocolsSnapshot(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); params.addresses.forEach(address => queryParams.append('addresses', address)); if (params.chain_id) queryParams.append('chain_id', params.chain_id.toString()); if (params.timestamp) queryParams.append('timestamp', params.timestamp.toString()); const url = `/portfolio/portfolio/v5.0/protocols/snapshot?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } async function getProtocolsMetrics(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); params.addresses.forEach(address => queryParams.append('addresses', address)); if (params.chain_id) queryParams.append('chain_id', params.chain_id.toString()); if (params.protocol_group_id) queryParams.append('protocol_group_id', params.protocol_group_id); if (params.contract_address) queryParams.append('contract_address', params.contract_address); if (params.token_id) queryParams.append('token_id', params.token_id.toString()); if (params.use_cache !== undefined) queryParams.append('use_cache', params.use_cache.toString()); const url = `/portfolio/portfolio/v5.0/protocols/metrics?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } async function getTokensSnapshot(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); params.addresses.forEach(address => queryParams.append('addresses', address)); if (params.chain_id) queryParams.append('chain_id', params.chain_id.toString()); if (params.timestamp) queryParams.append('timestamp', params.timestamp.toString()); const url = `/portfolio/portfolio/v5.0/tokens/snapshot?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } async function getTokensMetrics(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); params.addresses.forEach(address => queryParams.append('addresses', address)); if (params.chain_id) queryParams.append('chain_id', params.chain_id.toString()); if (params.timerange) queryParams.append('timerange', params.timerange); if (params.use_cache !== undefined) queryParams.append('use_cache', params.use_cache.toString()); const url = `/portfolio/portfolio/v5.0/tokens/metrics?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } /** * Main portfolioAPI function that handles all Portfolio operations */ async function portfolioAPI(params) { try { switch (params.endpoint) { case 'checkPortfolioStatus': return await checkPortfolioStatus(); case 'checkAddressesCompliance': if (!params.addresses) { throw new Error('addresses is required for checkAddressesCompliance'); } return await checkAddressesCompliance({ addresses: params.addresses, chain_id: params.chain_id, use_cache: params.use_cache }); case 'getSupportedChains': return await getSupportedChains(); case 'getSupportedProtocols': return await getSupportedProtocols(); case 'getCurrentPortfolioValue': if (!params.addresses) { throw new Error('addresses is required for getCurrentPortfolioValue'); } return await getCurrentPortfolioValue({ addresses: params.addresses, chain_id: params.chain_id, use_cache: params.use_cache }); case 'getGeneralValueChart': if (!params.addresses) { throw new Error('addresses is required for getGeneralValueChart'); } return await getGeneralValueChart({ addresses: params.addresses, chain_id: params.chain_id, timerange: params.timerange, use_cache: params.use_cache }); case 'getOverviewReport': if (!params.addresses) { throw new Error('addresses is required for getOverviewReport'); } return await getOverviewReport({ addresses: params.addresses, chain_id: params.chain_id }); case 'getProtocolsSnapshot': if (!params.addresses) { throw new Error('addresses is required for getProtocolsSnapshot'); } return await getProtocolsSnapshot({ addresses: params.addresses, chain_id: params.chain_id, timestamp: params.timestamp }); case 'getProtocolsMetrics': if (!params.addresses) { throw new Error('addresses is required for getProtocolsMetrics'); } return await getProtocolsMetrics({ addresses: params.addresses, chain_id: params.chain_id, protocol_group_id: params.protocol_group_id, contract_address: params.contract_address, token_id: params.token_id, use_cache: params.use_cache }); case 'getTokensSnapshot': if (!params.addresses) { throw new Error('addresses is required for getTokensSnapshot'); } return await getTokensSnapshot({ addresses: params.addresses, chain_id: params.chain_id, timestamp: params.timestamp }); case 'getTokensMetrics': if (!params.addresses) { throw new Error('addresses is required for getTokensMetrics'); } return await getTokensMetrics({ addresses: params.addresses, chain_id: params.chain_id, timerange: params.timerange, use_cache: params.use_cache }); default: throw new Error(`Unknown endpoint: ${params.endpoint}`); } } catch (error) { throw new Error(`Portfolio API error: ${error instanceof Error ? error.message : 'Unknown error'}`); } } //# sourceMappingURL=index.js.map