diff --git a/api/api.go b/api/api.go index c4c9fe4..528b435 100644 --- a/api/api.go +++ b/api/api.go @@ -71,6 +71,7 @@ func (h *Handler) getRate(c *gin.Context) { gp, err := h.consensus.FilterLocalGasPriceData(h.gasPriceStore, toDomain.Name) if err != nil { + h.log.Errorf("get gasprice process failed: %v", err) ginErrorReturn(c, http.StatusInternalServerError, newReturnErrorResp(&oracleErrors.InternalServerError, err)) return } @@ -81,6 +82,7 @@ func (h *Handler) getRate(c *gin.Context) { toDomain.BaseCurrencySymbol, fromDomain.BaseCurrencySymbol) if err != nil { + h.log.Errorf("calculate ber process failed: %v", err) ginErrorReturn(c, http.StatusInternalServerError, newReturnErrorResp(&oracleErrors.InternalServerError, err)) return } @@ -88,6 +90,7 @@ func (h *Handler) getRate(c *gin.Context) { ter, err := h.calculateTokenRate(resource, ber, fromDomain, toDomain) if err != nil { + h.log.Errorf("calculate ter process failed: %v", err) ginErrorReturn(c, http.StatusInternalServerError, newReturnErrorResp(&oracleErrors.InternalServerError, err)) return } @@ -108,6 +111,7 @@ func (h *Handler) getRate(c *gin.Context) { } rate.Signature, err = signature.RateSignature(h.conf, rate, h.identity, fromDomain.ID, resource.ID) if err != nil { + h.log.Errorf("signature process failed: %v", err) ginErrorReturn(c, http.StatusInternalServerError, newReturnErrorResp(&oracleErrors.InternalServerError, err)) return } diff --git a/consensus/strategy/average.go b/consensus/strategy/average.go index e0c36c8..978955b 100644 --- a/consensus/strategy/average.go +++ b/consensus/strategy/average.go @@ -8,6 +8,7 @@ import ( "fmt" "math" "strconv" + "time" "github.com/ChainSafe/sygma-fee-oracle/store" "github.com/ChainSafe/sygma-fee-oracle/types" @@ -61,6 +62,15 @@ func (a *Average) GasPrice(store *store.GasPriceStore, domainName string) (*type } func (a *Average) ConversionRate(store *store.ConversionRateStore, base, foreign string) (*types.ConversionRate, error) { + if base == foreign { + return &types.ConversionRate{ + Base: base, + Foreign: foreign, + Rate: 1, + Time: time.Now().Unix(), + }, nil + } + re, err := store.GetConversionRatesByCurrencyPair(base, foreign) if err != nil { return nil, err