Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions app/src/main/resources/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -132,13 +132,15 @@ explorer {
market-chart-days = 365
market-chart-days = ${?EXPLORER_MARKET_CHART_DAYS}

prices-expiration-time = 5 minutes
prices-expiration-time = ${?EXPLORER_MARKET_PRICES_EXPIRATION_TIME}
mobula-prices-expiration-time = 10 minutes
mobula-prices-expiration-time = ${?EXPLORER_MARKET_MOBULA_PRICES_EXPIRATION_TIME}
coingecko-prices-expiration-time = 5 minutes
coingecko-prices-expiration-time = ${?EXPLORER_MARKET_COINGECKO_PRICES_EXPIRATION_TIME}
rates-expiration-time = 5 minutes
rates-expiration-time = ${?EXPLORER_MARKET_RATES_EXPIRATION_TIME}
price-charts-expiration-time = 30 minutes
price-charts-expiration-time = ${?EXPLORER_MARKET_PRICE_CHARTS_EXPIRATION_TIME}
token-list-expiration-time = 12 hours
token-list-expiration-time = 24 hours
token-list-expiration-time = ${?EXPLORER_MARKET_TOKEN_LIST_EXPIRATION_TIME}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,8 @@ object ExplorerConfig {
mobulaApiKey: Option[ApiKey],
mobulaMaxTokensPerRequest: Int,
marketChartDays: Int,
pricesExpirationTime: FiniteDuration,
mobulaPricesExpirationTime: FiniteDuration,
coingeckoPricesExpirationTime: FiniteDuration,
ratesExpirationTime: FiniteDuration,
priceChartsExpirationTime: FiniteDuration,
tokenListExpirationTime: FiniteDuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,11 @@ object MarketService extends StrictLogging {
private val baseCurrency: String = "usd"

// scalastyle:off magic.number
val pricesExpirationTime: FiniteDuration = marketConfig.pricesExpirationTime
val ratesExpirationTime: FiniteDuration = marketConfig.ratesExpirationTime
val priceChartsExpirationTime: FiniteDuration = marketConfig.priceChartsExpirationTime
val tokenListExpirationTime: FiniteDuration = marketConfig.tokenListExpirationTime
val mobulaPricesExpirationTime: FiniteDuration = marketConfig.mobulaPricesExpirationTime
val coingeckoPricesExpirationTime: FiniteDuration = marketConfig.coingeckoPricesExpirationTime
val ratesExpirationTime: FiniteDuration = marketConfig.ratesExpirationTime
val priceChartsExpirationTime: FiniteDuration = marketConfig.priceChartsExpirationTime
val tokenListExpirationTime: FiniteDuration = marketConfig.tokenListExpirationTime

/*
* Coingecko rate limit is 15 queries per minutes
Expand Down Expand Up @@ -113,14 +114,14 @@ object MarketService extends StrictLogging {
: AsyncReloadingCache[Either[String, ArraySeq[MobulaPrice]]] =
AsyncReloadingCache[Either[String, ArraySeq[MobulaPrice]]](
Left("Price data not fetched for Mobula"),
pricesExpirationTime
mobulaPricesExpirationTime
)(_ => getMobulaPricesRemote(0))

private val coingeckoPricesCache
: AsyncReloadingCache[Either[String, ArraySeq[CoingeckoPrice]]] =
AsyncReloadingCache[Either[String, ArraySeq[CoingeckoPrice]]](
Left("Price data not fetched for Coingecko"),
pricesExpirationTime
coingeckoPricesExpirationTime
)(_ => getCoingeckoPricesRemote(0))

private val ratesCache: AsyncReloadingCache[Either[String, ArraySeq[ExchangeRate]]] =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,8 @@ class MarketServiceSpec extends AlephiumFutureSpec {
Some(apiKey),
mobulaMaxTokensPerRequest = 50,
marketChartDays = 366,
pricesExpirationTime = FiniteDuration(1, "minutes"),
mobulaPricesExpirationTime = FiniteDuration(1, "minutes"),
coingeckoPricesExpirationTime = FiniteDuration(1, "minutes"),
ratesExpirationTime = FiniteDuration(1, "minutes"),
priceChartsExpirationTime = FiniteDuration(1, "minutes"),
tokenListExpirationTime = FiniteDuration(1, "minutes")
Expand Down