code: def patched_web3_eth_estimate_gas(self, transaction, block_identifier=None):
      
      if 'from' not in transaction and is_checksum_address(self.defaultAccount):
          transaction = assoc(transaction, 'from', self.defaultAccount)
  
      if block_identifier is None:
          params = [transaction]
      else:
          params = [transaction, block_identifier]
  
      try:
          result = self.web3.manager.request_blocking(
              'eth_estimateGas',
              params,
          )
      except ValueError as e:
          if check_value_error_for_parity(e, ParityCallType.ESTIMATE_GAS):
              result = None
          else:
              # else the error is not denoting estimate gas failure and is something else
              raise e
  
      return result
docs: Temporary workaround until next web3.py release (5.X.X)
  
      Current master of web3.py has this implementation already:
      https://github.com/ethereum/web3.py/blob/2a67ea9f0ab40bb80af2b803dce742d6cad5943e/web3/eth.py#L311