def send_bitcoin(output: nil, amount: nil, script: nil, address: nil)
      if !output
        raise ArgumentError, "Either `script` or `address` must be specified" if !script && !address
        raise ArgumentError, "Amount must be specified (>= 0)" if (!amount || amount < 0)
        script ||= address.public_address.script if address
        output = TransactionOutput.new(value: amount, script: script)
      end
      self.bitcoin_outputs << output
    end
def send_bitcoin(output: nil, amount: nil, script: nil, address: nil)
      if !output
        raise ArgumentError, "Either `script` or `address` must be specified" if !script && !address
        raise ArgumentError, "Amount must be specified (>= 0)" if (!amount || amount < 0)
        script ||= address.public_address.script if address
        output = TransactionOutput.new(value: amount, script: script)
      end
      self.bitcoin_outputs << output
    end
Adds a normal payment output. Typically used for transfer