UNPKG

1inch-agent-kit

Version:

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

77 lines 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSupportedChains = getSupportedChains; exports.getNftsByAddress = getNftsByAddress; exports.getNftById = getNftById; exports.nftAPI = nftAPI; const fetcher_1 = require("../../utils/fetcher"); // Individual endpoint functions async function getSupportedChains() { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const response = await fetcher.get('/nft/v2/supportedchains'); return response; } async function getNftsByAddress(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); queryParams.append('chainIds', params.chainIds.join(',')); queryParams.append('address', params.address); if (params.limit) queryParams.append('limit', params.limit.toString()); if (params.offset) queryParams.append('offset', params.offset.toString()); if (params.openseaNextToken) queryParams.append('openseaNextToken', params.openseaNextToken); const url = `/nft/v2/byaddress?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } async function getNftById(params) { const fetcher = new fetcher_1.OneInchFetcher(process.env.ONEINCH_API_KEY || ''); const queryParams = new URLSearchParams(); queryParams.append('chainId', params.chainId.toString()); queryParams.append('contract', params.contract); queryParams.append('id', params.id); queryParams.append('provider', params.provider); const url = `/nft/v2/contract?${queryParams.toString()}`; const response = await fetcher.get(url); return response; } /** * Main nftAPI function that handles all NFT operations */ async function nftAPI(params) { try { switch (params.endpoint) { case 'getSupportedChains': return await getSupportedChains(); case 'getNftsByAddress': if (!params.chainIds || !params.address) { throw new Error('chainIds and address are required for getNftsByAddress'); } return await getNftsByAddress({ chainIds: params.chainIds, address: params.address, limit: params.limit, offset: params.offset, openseaNextToken: params.openseaNextToken }); case 'getNftById': if (!params.chainId || !params.contract || !params.id || !params.provider) { throw new Error('chainId, contract, id, and provider are required for getNftById'); } return await getNftById({ chainId: params.chainId, contract: params.contract, id: params.id, provider: params.provider }); default: throw new Error(`Unknown endpoint: ${params.endpoint}`); } } catch (error) { throw new Error(`NFT API error: ${error instanceof Error ? error.message : 'Unknown error'}`); } } //# sourceMappingURL=index.js.map