code: def check_for_insufficient_eth(
              self,
              transaction_name: str,
              transaction_executed: bool,
              required_gas: int,
              block_identifier: BlockSpecification,
      ):
          
          if transaction_executed:
              return
  
          our_address = to_checksum_address(self.address)
          balance = self.web3.eth.getBalance(our_address, block_identifier)
          required_balance = required_gas * self.gas_price()
          if balance < required_balance:
              msg = f'Failed to execute {transaction_name} due to insufficient ETH'
              log.critical(msg, required_wei=required_balance, actual_wei=balance)
              raise InsufficientFunds(msg)
docs: After estimate gas failure checks if our address has enough balance.
  
          If the account did not have enough ETH balance to execute the,
          transaction then it raises an `InsufficientFunds` error