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