1inch-agent-kit
Version:
AI Agent Kit for 1inch - Connect any LLM to 1inch DeFi protocols
102 lines • 4.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tracesAPI = tracesAPI;
exports.getSyncedInterval = getSyncedInterval;
exports.getBlockTraceByNumber = getBlockTraceByNumber;
exports.getTransactionTraceByHash = getTransactionTraceByHash;
exports.getTransactionTraceByOffset = getTransactionTraceByOffset;
const fetcher_1 = require("../../utils/fetcher");
// Individual functions for each endpoint
async function getSyncedInterval(params) {
const apiKey = process.env.ONEINCH_API_KEY;
if (!apiKey) {
throw new Error('ONEINCH_API_KEY environment variable is required');
}
const fetcher = new fetcher_1.OneInchFetcher(apiKey);
const response = await fetcher.get(`/traces/v1.0/chain/${params.chain}/synced-interval`);
return response;
}
async function getBlockTraceByNumber(params) {
const apiKey = process.env.ONEINCH_API_KEY;
if (!apiKey) {
throw new Error('ONEINCH_API_KEY environment variable is required');
}
const fetcher = new fetcher_1.OneInchFetcher(apiKey);
const response = await fetcher.get(`/traces/v1.0/chain/${params.chain}/block-trace/${params.blockNumber}`);
return response;
}
async function getTransactionTraceByHash(params) {
const apiKey = process.env.ONEINCH_API_KEY;
if (!apiKey) {
throw new Error('ONEINCH_API_KEY environment variable is required');
}
const fetcher = new fetcher_1.OneInchFetcher(apiKey);
const response = await fetcher.get(`/traces/v1.0/chain/${params.chain}/block-trace/${params.blockNumber}/tx-hash/${params.txHash}`);
return response;
}
async function getTransactionTraceByOffset(params) {
const apiKey = process.env.ONEINCH_API_KEY;
if (!apiKey) {
throw new Error('ONEINCH_API_KEY environment variable is required');
}
const fetcher = new fetcher_1.OneInchFetcher(apiKey);
const response = await fetcher.get(`/traces/v1.0/chain/${params.chain}/block-trace/${params.blockNumber}/offset/${params.offset}`);
return response;
}
// Main tracesAPI function
async function tracesAPI(params) {
try {
// Debug logging to see what parameters are being passed
console.log('🔍 tracesAPI called with params:', JSON.stringify(params, null, 2));
console.log('🔍 params.endpoint:', params.endpoint);
console.log('🔍 params.chain:', params.chain);
// If no parameters provided, default to getSyncedInterval for Ethereum
if (!params.endpoint && !params.chain) {
console.log('🔍 No parameters provided, defaulting to getSyncedInterval for Ethereum');
return await getSyncedInterval({ chain: 1 });
}
// Validate required parameters
if (!params.endpoint) {
throw new Error('endpoint parameter is required. Must be one of: getSyncedInterval, getBlockTraceByNumber, getTransactionTraceByHash, getTransactionTraceByOffset');
}
if (!params.chain) {
throw new Error('chain parameter is required. Use 1 for Ethereum, 137 for Polygon, etc.');
}
switch (params.endpoint) {
case 'getSyncedInterval':
return await getSyncedInterval({ chain: params.chain });
case 'getBlockTraceByNumber':
if (!params.blockNumber) {
throw new Error('blockNumber is required for getBlockTraceByNumber endpoint');
}
return await getBlockTraceByNumber({
chain: params.chain,
blockNumber: params.blockNumber
});
case 'getTransactionTraceByHash':
if (!params.blockNumber || !params.txHash) {
throw new Error('blockNumber and txHash are required for getTransactionTraceByHash endpoint');
}
return await getTransactionTraceByHash({
chain: params.chain,
blockNumber: params.blockNumber,
txHash: params.txHash
});
case 'getTransactionTraceByOffset':
if (!params.blockNumber || params.offset === undefined) {
throw new Error('blockNumber and offset are required for getTransactionTraceByOffset endpoint');
}
return await getTransactionTraceByOffset({
chain: params.chain,
blockNumber: params.blockNumber,
offset: params.offset
});
default:
throw new Error(`Unknown endpoint: ${params.endpoint}. Must be one of: getSyncedInterval, getBlockTraceByNumber, getTransactionTraceByHash, getTransactionTraceByOffset`);
}
}
catch (error) {
throw new Error(`Traces API error: ${error instanceof Error ? error.message : 'Unknown error'}`);
}
}
//# sourceMappingURL=index.js.map