This pr refactors gasLimit to gasLimtTransaction and introduces gasLimitEstimate which is used to calculate gasCost for improved arbitrade.