UNPKG

1inch-agent-kit

Version:

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

226 lines 9.98 kB
"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