@@ -46,14 +46,32 @@ func ValidateQuoteHash(hash string) error {
4646}
4747
4848func CalculateCallFee (amount * entities.Wei , config PegConfiguration ) * entities.Wei {
49+ var percentage * utils.BigFloat
50+ var fixedFee * entities.Wei
4951 result := new (entities.Wei )
5052
51- percentageFee := calculatePercentageFee (amount , config .GetFeePercentage ())
52- result .Add (percentageFee , config .GetFixedFee ())
53+ if config .GetFeePercentage () != nil {
54+ percentage = config .GetFeePercentage ()
55+ } else {
56+ percentage = utils .NewBigFloat64 (0 )
57+ }
58+
59+ if amount == nil {
60+ amount = entities .NewBigWei (big .NewInt (0 ))
61+ }
62+
63+ if config .GetFixedFee () != nil {
64+ fixedFee = config .GetFixedFee ()
65+ } else {
66+ fixedFee = entities .NewBigWei (big .NewInt (0 ))
67+ }
68+
69+ percentageFee := calculatePercentageFee (amount , percentage )
70+ result .Add (percentageFee , fixedFee )
5371
54- log .Debugf ("Percentage fee: %v%% of %v = %v" , config . GetFeePercentage () , amount , percentageFee )
55- log .Debugf ("Fixed fee: %v" , config . GetFixedFee () )
56- log .Debugf ("Call fee: %v + %v = %v" , percentageFee , config . GetFixedFee () , result )
72+ log .Debugf ("Percentage fee: %v%% of %v = %v" , percentage , amount , percentageFee )
73+ log .Debugf ("Fixed fee: %v" , fixedFee )
74+ log .Debugf ("Call fee: %v + %v = %v" , percentageFee , fixedFee , result )
5775 return result
5876}
5977
0 commit comments