Skip to content

Commit c11c191

Browse files
authored
fix(price-feeder): add minimum candle volume (#1634)
1 parent dfa05ca commit c11c191

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

price-feeder/oracle/util.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ import (
99
"github.com/umee-network/umee/price-feeder/oracle/provider"
1010
)
1111

12-
var minimumTimeWeight = sdk.MustNewDecFromStr("0.2")
12+
var (
13+
minimumTimeWeight = sdk.MustNewDecFromStr("0.2000")
14+
minimumCandleVolume = sdk.MustNewDecFromStr("0.0001")
15+
)
1316

1417
const (
1518
// tvwapCandlePeriod represents the time period we use for tvwap in minutes
@@ -110,6 +113,11 @@ func ComputeTVWAP(prices provider.AggregatedProviderCandles) (map[string]sdk.Dec
110113
if timePeriod < candle.TimeStamp {
111114
// timeDiff = now - candle.TimeStamp
112115
timeDiff := sdk.NewDec(now - candle.TimeStamp)
116+
// set minimum candle volume for low-trading assets
117+
if candle.Volume.Equal(sdk.ZeroDec()) {
118+
candle.Volume = minimumCandleVolume
119+
}
120+
113121
// volume = candle.Volume * (weightUnit * (period - timeDiff) + minimumTimeWeight)
114122
volume := candle.Volume.Mul(
115123
weightUnit.Mul(period.Sub(timeDiff).Add(minimumTimeWeight)),

0 commit comments

Comments
 (0)