The blockchain client skips calling debitGasFees if the fee is zero, this is to support estimating gas (gas is not charged for the credit or debit gas fees calls since they are covered by an increased intrinsic cost). However the blockchain client does not skip calling credit gas fees if the fee is zero, in fact this check is currently performed in the contract .
We should be consistent about where this functionality is skipped, or whether it is skipped at all.
The blockchain client skips calling debitGasFees if the fee is zero, this is to support estimating gas (gas is not charged for the credit or debit gas fees calls since they are covered by an increased intrinsic cost). However the blockchain client does not skip calling credit gas fees if the fee is zero, in fact this check is currently performed in the contract .
We should be consistent about where this functionality is skipped, or whether it is skipped at all.
Given that we just added a flag to allow explicit skipping of credit and debit calls. It seems sensible to remove all other logic to skip.