lending-apy-fetcher-ts
Version:
TypeScript library for fetching APYs from DeFi lending protocols
78 lines • 4.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AaveOptimismProtocol = exports.AaveArbitrumProtocol = exports.AavePolygonProtocol = exports.AaveEthProtocol = exports.OPTIMISM = exports.ARBITRUM = exports.POLYGON = exports.ETHEREUM = exports.AuthenticationError = exports.ValidationError = exports.NetworkError = exports.ApyFetcherError = exports.ApyFetcher = void 0;
exports.initializeEnvironment = initializeEnvironment;
exports.getApys = getApys;
exports.getApysWithResults = getApysWithResults;
exports.getBestApyForToken = getBestApyForToken;
// Initialize environment variables (loads .env file)
function initializeEnvironment() {
try {
require('dotenv').config();
}
catch (error) {
// dotenv is not installed, continue without it
}
}
// Auto-initialize on import
initializeEnvironment();
// Main exports
var fetcher_1 = require("./fetcher");
Object.defineProperty(exports, "ApyFetcher", { enumerable: true, get: function () { return fetcher_1.ApyFetcher; } });
// Errors
var types_1 = require("./types");
Object.defineProperty(exports, "ApyFetcherError", { enumerable: true, get: function () { return types_1.ApyFetcherError; } });
Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return types_1.NetworkError; } });
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return types_1.ValidationError; } });
Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return types_1.AuthenticationError; } });
// Protocols
var protocols_1 = require("./protocols");
Object.defineProperty(exports, "ETHEREUM", { enumerable: true, get: function () { return protocols_1.ETHEREUM; } });
Object.defineProperty(exports, "POLYGON", { enumerable: true, get: function () { return protocols_1.POLYGON; } });
Object.defineProperty(exports, "ARBITRUM", { enumerable: true, get: function () { return protocols_1.ARBITRUM; } });
Object.defineProperty(exports, "OPTIMISM", { enumerable: true, get: function () { return protocols_1.OPTIMISM; } });
// Protocols
// export { KaminoProtocol } from './protocols/kamino';
var aave_eth_1 = require("./protocols/aave-eth");
Object.defineProperty(exports, "AaveEthProtocol", { enumerable: true, get: function () { return aave_eth_1.AaveEthProtocol; } });
var aave_polygon_1 = require("./protocols/aave-polygon");
Object.defineProperty(exports, "AavePolygonProtocol", { enumerable: true, get: function () { return aave_polygon_1.AavePolygonProtocol; } });
var aave_arbitrum_1 = require("./protocols/aave-arbitrum");
Object.defineProperty(exports, "AaveArbitrumProtocol", { enumerable: true, get: function () { return aave_arbitrum_1.AaveArbitrumProtocol; } });
var aave_optimism_1 = require("./protocols/aave-optimism");
Object.defineProperty(exports, "AaveOptimismProtocol", { enumerable: true, get: function () { return aave_optimism_1.AaveOptimismProtocol; } });
// Convenience function
const fetcher_2 = require("./fetcher");
// import { AppConfig } from './config';
/**
* Simple convenience function to fetch APYs from all protocols
* @param config Optional configuration, defaults to environment-based config
* @param gracefulDegradation Continue with other protocols if one fails (default: true)
* @returns Promise<ApyData[]> Array of APY data from all protocols
*/
async function getApys(protocols, gracefulDegradation = true) {
const fetcher = new fetcher_2.ApyFetcher(protocols);
return await fetcher.fetchApys(gracefulDegradation);
}
/**
* Get APYs with detailed results per protocol
* @param config Optional configuration, defaults to environment-based config
* @param gracefulDegradation Continue with other protocols if one fails (default: true)
* @returns Promise<ApyResult[]> Array of results with success/error status per protocol
*/
async function getApysWithResults(protocols, gracefulDegradation = true) {
const fetcher = new fetcher_2.ApyFetcher(protocols);
return await fetcher.fetchApysWithResults(gracefulDegradation);
}
/**
* Get the best APY for a specific token across all protocols
* @param tokenSymbol Token symbol to search for (e.g., 'USDC', 'WETH')
* @param config Optional configuration, defaults to environment-based config
* @param gracefulDegradation Continue with other protocols if one fails (default: true)
* @returns Promise<BestApyResult | null> Best APY result or null if token not found
*/
async function getBestApyForToken(protocols, tokenSymbol, gracefulDegradation = true) {
const fetcher = new fetcher_2.ApyFetcher(protocols);
return await fetcher.getBestApyForToken(tokenSymbol, gracefulDegradation);
}
//# sourceMappingURL=index.js.map