docs: def onchain_exchange(self, withdraw_crypto, withdraw_address, value, unit='satoshi'):
          """
          This method is like `add_output` but it sends to another
          """
          self.onchain_rate = get_onchain_exchange_rates(
              self.crypto, withdraw_crypto, best=True, verbose=self.verbose
          )
          exchange_rate = float(self.onchain_rate['rate'])
          result = self.onchain_rate['service'].get_onchain_exchange_address(
              self.crypto, withdraw_crypto, withdraw_address
          )
  
          address = result['deposit']
  
          value_satoshi = self.from_unit_to_satoshi(value, unit)
  
          if self.verbose:
              print("Adding output of: %s satoshi (%.8f) via onchain exchange, converting to %s %s" % (
                  value_satoshi, (value_satoshi / 1e8),
                  exchange_rate * value_satoshi / 1e8, withdraw_crypto.upper()
              ))
  
          self.outs.append({
              'address': address,
              'value': value_satoshi
          })