1inch-agent-kit
Version:
AI Agent Kit for 1inch - Connect any LLM to 1inch DeFi protocols
232 lines • 10.9 kB
JavaScript
;
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