Skip to content

Commit 00a0466

Browse files
committed
Fix for validateCoreMintClientExchangeData
1 parent 7624819 commit 00a0466

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

pkg/code/currency/validation.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ func ValidateClientExchangeData(ctx context.Context, data code_data.Provider, pr
3636
func validateCoreMintClientExchangeData(ctx context.Context, data code_data.Provider, proto *transactionpb.ExchangeData) (bool, string, error) {
3737
latestExchangeRateTime := GetLatestExchangeRateTime()
3838

39+
coreMintQuarksPerUnit := common.GetMintQuarksPerUnit(common.CoreMintAccount)
40+
3941
clientRate := big.NewFloat(proto.ExchangeRate).SetPrec(defaultPrecision)
4042
clientNativeAmount := big.NewFloat(proto.NativeAmount).SetPrec(defaultPrecision)
4143
clientQuarks := big.NewFloat(float64(proto.Quarks)).SetPrec(defaultPrecision)
@@ -52,8 +54,8 @@ func validateCoreMintClientExchangeData(ctx context.Context, data code_data.Prov
5254
nativeAmountLowerBound = nativeAmountErrorThreshold
5355
}
5456
nativeAmountUpperBound := new(big.Float).Add(clientNativeAmount, nativeAmountErrorThreshold)
55-
quarksLowerBound := new(big.Float).Quo(nativeAmountLowerBound, clientRate)
56-
quarksUpperBound := new(big.Float).Quo(nativeAmountUpperBound, clientRate)
57+
quarksLowerBound := new(big.Float).Mul(new(big.Float).Quo(nativeAmountLowerBound, clientRate), big.NewFloat(float64(coreMintQuarksPerUnit)))
58+
quarksUpperBound := new(big.Float).Mul(new(big.Float).Quo(nativeAmountUpperBound, clientRate), big.NewFloat(float64(coreMintQuarksPerUnit)))
5759

5860
log := logrus.StandardLogger().WithFields(logrus.Fields{
5961
"currency": proto.Currency,
@@ -63,8 +65,8 @@ func validateCoreMintClientExchangeData(ctx context.Context, data code_data.Prov
6365
"min_transfer_value": minTransferValue,
6466
"native_amount_lower_bound": nativeAmountLowerBound,
6567
"native_amount_upper_bound": nativeAmountUpperBound,
66-
"quarks_lower_bound": nativeAmountLowerBound,
67-
"quarks_upper_bound": nativeAmountUpperBound,
68+
"quarks_lower_bound": quarksLowerBound,
69+
"quarks_upper_bound": quarksUpperBound,
6870
})
6971

7072
if clientNativeAmount.Cmp(nativeAmountErrorThreshold) < 0 {
@@ -91,6 +93,8 @@ func validateCoreMintClientExchangeData(ctx context.Context, data code_data.Prov
9193
isClientRateValid = true
9294
break
9395
}
96+
97+
log.WithField("rate", actualRate).Info("exchange rate doesn't match")
9498
}
9599

96100
if !isClientRateValid {

0 commit comments

Comments
 (0)