diff --git a/tokens/usecase/tokens_usecase.go b/tokens/usecase/tokens_usecase.go index 8c3803fd..2d790905 100644 --- a/tokens/usecase/tokens_usecase.go +++ b/tokens/usecase/tokens_usecase.go @@ -213,15 +213,18 @@ func (t *tokensUseCase) GetPrices(ctx context.Context, baseDenoms []string, quot // Returns error if base denom is not found in the token metadata. // Sets the price to zero in case of failing to compute the price between base and quote but these being valid tokens. func (t *tokensUseCase) getPricesForBaseDenom(ctx context.Context, pricingStrategy domain.PricingStrategy, baseDenom string, quoteDenoms []string) (map[string]any, error) { + + byQuoteDenomForGivenBaseResult := make(map[string]any, len(quoteDenoms)) // Validate base denom is a valid denom - // This will error if denom is unlisted. + // Return zeroes for all quotes if base denom is not found _, err := t.GetMetadataByChainDenom(ctx, baseDenom) if err != nil { - return nil, err + for _, quoteDenom := range quoteDenoms { + byQuoteDenomForGivenBaseResult[quoteDenom] = osmomath.ZeroBigDec() + } + return byQuoteDenomForGivenBaseResult, err } - byQuoteDenomForGivenBaseResult := make(map[string]any, len(quoteDenoms)) - // Create a channel to communicate the results resultsChan := make(chan priceResult, len(quoteDenoms))