Removed CryptoCompare + Added background thread for price fetching.

This commit is contained in:
gerlofvanek
2025-10-15 12:13:08 +02:00
parent 4c1c5cd1a6
commit de501f4bb5
10 changed files with 302 additions and 289 deletions

View File

@@ -9,8 +9,7 @@ const ApiManager = (function() {
requestTimeout: 60000,
retryDelays: [5000, 15000, 30000],
rateLimits: {
coingecko: { requestsPerMinute: 50, minInterval: 1200 },
cryptocompare: { requestsPerMinute: 30, minInterval: 2000 }
coingecko: { requestsPerMinute: 50, minInterval: 1200 }
}
};
}

View File

@@ -35,20 +35,13 @@ const ConfigManager = (function() {
},
itemsPerPage: 50,
apiEndpoints: {
cryptoCompare: 'https://min-api.cryptocompare.com/data/pricemultifull',
coinGecko: 'https://api.coingecko.com/api/v3',
cryptoCompareHistorical: 'https://min-api.cryptocompare.com/data/v2/histoday',
cryptoCompareHourly: 'https://min-api.cryptocompare.com/data/v2/histohour',
volumeEndpoint: 'https://api.coingecko.com/api/v3/simple/price'
},
rateLimits: {
coingecko: {
requestsPerMinute: 50,
minInterval: 1200
},
cryptocompare: {
requestsPerMinute: 30,
minInterval: 2000
}
},
retryDelays: [5000, 15000, 30000],
@@ -99,12 +92,10 @@ const ConfigManager = (function() {
if (typeof window.getAPIKeys === 'function') {
const apiKeys = window.getAPIKeys();
return {
cryptoCompare: apiKeys.cryptoCompare || '',
coinGecko: apiKeys.coinGecko || ''
};
}
return {
cryptoCompare: '',
coinGecko: ''
};
},

View File

@@ -11,8 +11,7 @@ const WalletManager = (function() {
defaultTTL: 300,
priceSource: {
primary: 'coingecko.com',
fallback: 'cryptocompare.com',
enabledSources: ['coingecko.com', 'cryptocompare.com']
enabledSources: ['coingecko.com']
}
};

View File

@@ -24,7 +24,6 @@ const api = {
}
const volumeData = await Api.fetchVolumeData({
cryptoCompare: apiKeys.cryptoCompare,
coinGecko: apiKeys.coinGecko
});
@@ -109,10 +108,7 @@ const api = {
const historicalData = await Api.fetchHistoricalData(
coinSymbols,
window.config.currentResolution,
{
cryptoCompare: window.config.getAPIKeys().cryptoCompare
}
window.config.currentResolution
);
Object.keys(historicalData).forEach(coin => {
@@ -146,8 +142,7 @@ const api = {
const rateLimiter = {
lastRequestTime: {},
minRequestInterval: {
coingecko: window.config.rateLimits.coingecko.minInterval,
cryptocompare: window.config.rateLimits.cryptocompare.minInterval
coingecko: window.config.rateLimits.coingecko.minInterval
},
requestQueue: {},
retryDelays: window.config.retryDelays,