UNPKG

@agentek/tools

Version:

Blockchain tools for AI agents

77 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.chainIdMap = void 0; exports.formatUSD = formatUSD; exports.assessRisk = assessRisk; exports.getChainName = getChainName; exports.calculateProjectedEarnings = calculateProjectedEarnings; exports.getProjectFilter = getProjectFilter; const constants_js_1 = require("../constants.js"); // Helper function to format USD values function formatUSD(value) { return `$${value.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2, })}`; } // Risk assessment function function assessRisk(apy) { if (apy > constants_js_1.RISK_THRESHOLDS.medium) return 'high'; if (apy > constants_js_1.RISK_THRESHOLDS.low) return 'medium'; return 'low'; } // Helper function to get chain name function getChainName(chainId) { const chainMap = { 1: 'Ethereum', 10: 'Optimism', 137: 'Polygon', 42161: 'Arbitrum', 8453: 'Base', 43114: 'Avalanche', 56: 'BSC', 250: 'Fantom', 100: 'Gnosis', 1399811149: 'Solana', 1101: 'Polygon zkEVM', 324: 'zkSync Era', }; return chainMap[chainId] || `Chain ${chainId}`; } // Helper function to calculate projected earnings function calculateProjectedEarnings(amount, apy, days) { // Convert APY to daily rate const dailyRate = (1 + apy / 100) ** (1 / 365) - 1; // Compound interest formula return amount * ((1 + dailyRate) ** days - 1); } // Chain ID mapping for DefiLlama exports.chainIdMap = { 'Ethereum': 1, 'Optimism': 10, 'Polygon': 137, 'Arbitrum': 42161, 'Base': 8453, 'Avalanche': 43114, 'BSC': 56, 'Fantom': 250, 'Gnosis': 100, 'Solana': 1399811149, 'Polygon zkEVM': 1101, 'zkSync Era': 324, }; // Get protocol project filter for DefiLlama function getProjectFilter(protocol) { const projectMap = { 'Aave': 'aave', 'Compound': 'compound', 'Morpho': 'morpho', 'SparkLend': 'spark', 'Lido': 'lido', 'RocketPool': 'rocket-pool', }; return projectMap[protocol] || null; } //# sourceMappingURL=helpers.js.map