1inch-agent-kit
Version:
AI Agent Kit for 1inch - Connect any LLM to 1inch DeFi protocols
226 lines • 9.98 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.submitOrder = submitOrder;
exports.getOrdersByAddress = getOrdersByAddress;
exports.getOrderByHash = getOrderByHash;
exports.getAllOrders = getAllOrders;
exports.getOrdersCount = getOrdersCount;
exports.getOrderEvents = getOrderEvents;
exports.getAllEvents = getAllEvents;
exports.hasActiveOrdersWithPermit = hasActiveOrdersWithPermit;
exports.getUniqueActivePairs = getUniqueActivePairs;
exports.getFeeInfo = getFeeInfo;
exports.orderbookAPI = orderbookAPI;
const fetcher_1 = require("../../utils/fetcher");
// Individual endpoint functions
async function submitOrder(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const response = await fetcher.post(`/orderbook/v4.0/${params.chain}`, {
orderHash: params.orderHash,
signature: params.signature,
data: params.data
});
return response;
}
async function getOrdersByAddress(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const queryParams = new URLSearchParams();
if (params.page)
queryParams.append('page', params.page.toString());
if (params.limit)
queryParams.append('limit', params.limit.toString());
if (params.statuses)
queryParams.append('statuses', params.statuses);
if (params.sortBy)
queryParams.append('sortBy', params.sortBy);
if (params.takerAsset)
queryParams.append('takerAsset', params.takerAsset);
if (params.makerAsset)
queryParams.append('makerAsset', params.makerAsset);
const url = `/orderbook/v4.0/${params.chain}/address/${params.address}${queryParams.toString() ? '?' + queryParams.toString() : ''}`;
const response = await fetcher.get(url);
return response;
}
async function getOrderByHash(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const response = await fetcher.get(`/orderbook/v4.0/${params.chain}/order/${params.orderHash}`);
return response;
}
async function getAllOrders(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const queryParams = new URLSearchParams();
if (params.page)
queryParams.append('page', params.page.toString());
if (params.limit)
queryParams.append('limit', params.limit.toString());
if (params.statuses)
queryParams.append('statuses', params.statuses);
if (params.sortBy)
queryParams.append('sortBy', params.sortBy);
if (params.takerAsset)
queryParams.append('takerAsset', params.takerAsset);
if (params.makerAsset)
queryParams.append('makerAsset', params.makerAsset);
const url = `/orderbook/v4.0/${params.chain}/all${queryParams.toString() ? '?' + queryParams.toString() : ''}`;
const response = await fetcher.get(url);
return response;
}
async function getOrdersCount(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const queryParams = new URLSearchParams();
if (params.statuses)
queryParams.append('statuses', params.statuses);
if (params.takerAsset)
queryParams.append('takerAsset', params.takerAsset);
if (params.makerAsset)
queryParams.append('makerAsset', params.makerAsset);
const url = `/orderbook/v4.0/${params.chain}/count${queryParams.toString() ? '?' + queryParams.toString() : ''}`;
const response = await fetcher.get(url);
return response;
}
async function getOrderEvents(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const response = await fetcher.get(`/orderbook/v4.0/${params.chain}/events/${params.orderHash}`);
return response;
}
async function getAllEvents(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const queryParams = new URLSearchParams();
if (params.limit)
queryParams.append('limit', params.limit.toString());
const url = `/orderbook/v4.0/${params.chain}/events${queryParams.toString() ? '?' + queryParams.toString() : ''}`;
const response = await fetcher.get(url);
return response;
}
async function hasActiveOrdersWithPermit(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const response = await fetcher.get(`/orderbook/v4.0/${params.chain}/has-active-orders-with-permit/${params.walletAddress}/${params.token}`);
return response;
}
async function getUniqueActivePairs(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const queryParams = new URLSearchParams();
if (params.page)
queryParams.append('page', params.page.toString());
if (params.limit)
queryParams.append('limit', params.limit.toString());
const url = `/orderbook/v4.0/${params.chain}/unique-active-pairs${queryParams.toString() ? '?' + queryParams.toString() : ''}`;
const response = await fetcher.get(url);
return response;
}
async function getFeeInfo(params) {
const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || '');
const queryParams = new URLSearchParams();
queryParams.append('makerAsset', params.makerAsset);
queryParams.append('takerAsset', params.takerAsset);
if (params.makerAmount)
queryParams.append('makerAmount', params.makerAmount);
if (params.takerAmount)
queryParams.append('takerAmount', params.takerAmount);
const url = `/orderbook/v4.0/${params.chain}/fee-info?${queryParams.toString()}`;
const response = await fetcher.get(url);
return response;
}
/**
* Main orderbookAPI function that handles all Orderbook operations
*/
async function orderbookAPI(params) {
try {
switch (params.endpoint) {
case 'submitOrder':
if (!params.orderHash || !params.signature || !params.data) {
throw new Error('orderHash, signature, and data are required for submitOrder');
}
return await submitOrder({
chain: params.chain,
orderHash: params.orderHash,
signature: params.signature,
data: params.data
});
case 'getOrdersByAddress':
if (!params.address) {
throw new Error('address is required for getOrdersByAddress');
}
return await getOrdersByAddress({
chain: params.chain,
address: params.address,
page: params.page,
limit: params.limit,
statuses: params.statuses,
sortBy: params.sortBy,
takerAsset: params.takerAsset,
makerAsset: params.makerAsset
});
case 'getOrderByHash':
if (!params.orderHashParam) {
throw new Error('orderHash is required for getOrderByHash');
}
return await getOrderByHash({
chain: params.chain,
orderHash: params.orderHashParam
});
case 'getAllOrders':
return await getAllOrders({
chain: params.chain,
page: params.page,
limit: params.limit,
statuses: params.statuses,
sortBy: params.sortBy,
takerAsset: params.takerAsset,
makerAsset: params.makerAsset
});
case 'getOrdersCount':
return await getOrdersCount({
chain: params.chain,
statuses: params.statuses,
takerAsset: params.takerAsset,
makerAsset: params.makerAsset
});
case 'getOrderEvents':
if (!params.orderHashParam) {
throw new Error('orderHash is required for getOrderEvents');
}
return await getOrderEvents({
chain: params.chain,
orderHash: params.orderHashParam
});
case 'getAllEvents':
return await getAllEvents({
chain: params.chain,
limit: params.limit
});
case 'hasActiveOrdersWithPermit':
if (!params.walletAddress || !params.token) {
throw new Error('walletAddress and token are required for hasActiveOrdersWithPermit');
}
return await hasActiveOrdersWithPermit({
chain: params.chain,
walletAddress: params.walletAddress,
token: params.token
});
case 'getUniqueActivePairs':
return await getUniqueActivePairs({
chain: params.chain,
page: params.page,
limit: params.limit
});
case 'getFeeInfo':
if (!params.makerAsset || !params.takerAsset) {
throw new Error('makerAsset and takerAsset are required for getFeeInfo');
}
return await getFeeInfo({
chain: params.chain,
makerAsset: params.makerAsset,
takerAsset: params.takerAsset,
makerAmount: params.makerAmount,
takerAmount: params.takerAmount
});
default:
throw new Error(`Unknown endpoint: ${params.endpoint}`);
}
}
catch (error) {
throw new Error(`Orderbook API error: ${error instanceof Error ? error.message : 'Unknown error'}`);
}
}
//# sourceMappingURL=index.js.map