@@ -158,22 +158,38 @@ func (dfd DeductFeeDecorator) handleZeroFees(ctx sdk.Context, deductFeesFromAcc
158158 return sdkerrors .ErrInvalidRequest .Wrapf ("contract %s is not registered for fee pay" , cw .GetContract ())
159159 }
160160
161- // TODO: instead of hardcoding payment, GetGas() * globalFeeParam.GetParams(ctx).MinimumGasPrices of ujuno or ujunox (app.GetDenom() func).
162- // feeTx := tx.(sdk.FeeTx)
163- // gas := feeTx.GetGas()
161+ // Get the fee price in the chain denom
162+ var feePrice sdk.DecCoin
163+ for _ , c := range dfd .globalfeeKeeper .GetParams (ctx ).MinimumGasPrices {
164+ if c .Denom == dfd .bondDenom {
165+ feePrice = c
166+ }
167+ }
168+
169+ ctx .Logger ().Error ("HandleZeroFees" , "FeePrice" , feePrice )
170+
171+ // Get the tx gas
172+ feeTx := tx .(sdk.FeeTx )
173+ gas := sdkmath .LegacyNewDec (int64 (feeTx .GetGas ()))
174+
175+ ctx .Logger ().Error ("HandleZeroFees" , "Gas" , gas )
176+
177+ requiredFee := feePrice .Amount .Mul (gas ).Ceil ().RoundInt ()
178+
179+ ctx .Logger ().Error ("HandleZeroFees" , "RequiredFee" , requiredFee )
164180
165- payment := sdk .NewCoins (sdk .NewCoin ("ujuno" , sdk .NewDec (500_000 ).RoundInt ()))
181+ // Create an array of coins, storing the required fee
182+ payment := sdk .NewCoins (sdk .NewCoin (feePrice .Denom , requiredFee ))
166183
167184 ctx .Logger ().Error ("HandleZeroFees" , "Payment" , payment )
168185
169- // keeper.SendCoinsFromModuleToAccount(ctx, "feeprepay", deductFeesFromAcc.GetAddress(), payment)
186+ // Cover the fees of the transaction, send from FeePay Module to FeeCollector Module
170187 err := dfd .bankKeeper .SendCoinsFromModuleToModule (ctx , feepaytypes .ModuleName , types .FeeCollectorName , payment )
171188
172- // Handle error
189+ // Throw transfer errors
173190 if err != nil {
174191 ctx .Logger ().Error ("HandleZeroFees" , "Error transfering funds from module to module" , err )
175192 return sdkerrors .ErrInsufficientFunds .Wrapf ("error transfering funds from module to module: %s" , err )
176- // return nil
177193 }
178194
179195 ctx .Logger ().Error ("HandleZeroFees" , "Ending" , true )
0 commit comments