docs: def fee(self, value=None, unit='satoshi'):
          """
          Set the miner fee, if unit is not set, assumes value is satoshi.
          If using 'optimal', make sure you have already added all outputs.
          """
          convert = None
          if not value:
              # no fee was specified, use $0.02 as default.
              convert = get_current_price(self.crypto, "usd")
              self.fee_satoshi = int(0.02 / convert * 1e8)
              verbose = "Using default fee of:"
  
          elif value == 'optimal':
              self.fee_satoshi = get_optimal_fee(
                  self.crypto, self.estimate_size(), verbose=self.verbose
              )
              verbose = "Using optimal fee of:"
          else:
              self.fee_satoshi = self.from_unit_to_satoshi(value, unit)
              verbose = "Using manually set fee of:"
  
          if self.verbose:
              if not convert:
                  convert = get_current_price(self.crypto, "usd")
              fee_dollar = convert * self.fee_satoshi / 1e8
              print(verbose + " %s satoshis ($%.2f)" % (self.fee_satoshi, fee_dollar))