Golang implemented sidechain for Bytom
修订版 | 967b16af4b2d3bbdcc4ff4b98c6d07ed46a4db36 (tree) |
---|---|
时间 | 2020-10-21 15:59:52 |
作者 | shenao78 <shenao.78@163....> |
Commiter | shenao78 |
opt validate tx fee
@@ -75,7 +75,7 @@ func validateFee(receiveAmounts, priceDiffs []*bc.AssetAmount, feeAmounts map[bc | ||
75 | 75 | for _, receiveAmount := range receiveAmounts { |
76 | 76 | feeAmount := calcMinFeeAmount(receiveAmount.Amount) |
77 | 77 | realFeeAmount := feeAmounts[*receiveAmount.AssetId] |
78 | - if realFeeAmount == feeAmount { | |
78 | + if equalsFeeAmount(realFeeAmount, feeAmount) { | |
79 | 79 | continue |
80 | 80 | } |
81 | 81 |
@@ -89,7 +89,7 @@ func validateFee(receiveAmounts, priceDiffs []*bc.AssetAmount, feeAmounts map[bc | ||
89 | 89 | } |
90 | 90 | } |
91 | 91 | |
92 | - if realFeeAmount != feeAmount { | |
92 | + if !equalsFeeAmount(realFeeAmount, feeAmount) { | |
93 | 93 | return ErrInvalidAmountOfFee |
94 | 94 | } |
95 | 95 | existTaker = true |
@@ -97,6 +97,11 @@ func validateFee(receiveAmounts, priceDiffs []*bc.AssetAmount, feeAmounts map[bc | ||
97 | 97 | return nil |
98 | 98 | } |
99 | 99 | |
100 | +func equalsFeeAmount(realFeeAmount, feeAmount uint64) bool { | |
101 | + var tolerance float64 = 5 | |
102 | + return math.Abs(float64(realFeeAmount)-float64(feeAmount)) < tolerance | |
103 | +} | |
104 | + | |
100 | 105 | func legendValidateFee(receiveAmounts []*bc.AssetAmount, feeAmounts map[bc.AssetID]uint64) error { |
101 | 106 | for _, receiveAmount := range receiveAmounts { |
102 | 107 | realFeeAmount := feeAmounts[*receiveAmount.AssetId] |