From 6a5d256ebefee654f51c6b5c4789c4be7117e720 Mon Sep 17 00:00:00 2001 From: CounterFire2023 <136581895+CounterFire2023@users.noreply.github.com> Date: Wed, 19 Jul 2023 15:11:21 +0800 Subject: [PATCH] =?UTF-8?q?eth=E4=BB=B7=E6=A0=BC=E4=BB=8Ecryptocompare?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/price.svr.ts | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/service/price.svr.ts b/src/service/price.svr.ts index 6a57766..a621fe7 100644 --- a/src/service/price.svr.ts +++ b/src/service/price.svr.ts @@ -8,12 +8,11 @@ import logger from 'logger/logger' export class PriceSvr { private priceMap: Map = new Map() - public async queryEthPrice(eth: string) { - const usd = 'USD' + public async queryEthPrice(eth: string, fiat: string = 'USD') { const apiKey = process.env.CRYPTOCOMPARE_API_KEY - const url = `https://min-api.cryptocompare.com/data/price?fsym=${eth}&tsyms=${usd}&api_key=${apiKey}` + const url = `https://min-api.cryptocompare.com/data/price?fsym=${eth}&tsyms=${fiat}&api_key=${apiKey}` let priceData = await axios.get(url).then(res => res.data) - let price = priceData[usd] + '' + let price = priceData[fiat] + '' return price } @@ -32,18 +31,20 @@ export class PriceSvr { let { crypto, network, fiat } = data let key = `${crypto}_${network}_${fiat}` try { - let priceData = await queryPrice(data) - if (priceData.success && priceData.data) { - this.priceMap.set(key, priceData.data.cryptoPrice + '') - } else if (crypto.toLowerCase() === 'eth') { - let price = await this.queryEthPrice(crypto) + if (crypto.toLowerCase() === 'eth') { + let price = await this.queryEthPrice(crypto, fiat) this.priceMap.set(key, price + '') + } else { + let priceData = await queryPrice(data) + if (priceData.success && priceData.data) { + this.priceMap.set(key, priceData.data.cryptoPrice + '') + } } } catch (e) { - logger.debug('update eth price with alchemy error: ' + e.message || e) + logger.debug('update eth price with error: ' + e.message || e) if (crypto.toLowerCase() === 'eth') { try { - let price = await this.queryEthPrice(crypto) + let price = await this.queryEthPrice(crypto, fiat) this.priceMap.set(key, price + '') } catch (e) { logger.debug('update eth price with cryptocompare error: ' + e.message || e)