def update_native
      yield @native if block_given?
      @native = Bitcoin::Protocol::Tx.new(@native.to_payload)
      @inputs.each_with_index do |input, i|
        native = @native.inputs[i]
        # Using instance_eval here because I really don't want to expose
        # Input#native=.  As we consume more and more of the native
        # functionality, we can dispense with such ugliness.
        input.instance_eval do
          @native = native
        end
        # TODO: is this re-nativization necessary for outputs, too?
      end
    end
def update_native
      yield @native if block_given?
      @native = Bitcoin::Protocol::Tx.new(@native.to_payload)
      @inputs.each_with_index do |input, i|
        native = @native.inputs[i]
        # Using instance_eval here because I really don't want to expose
        # Input#native=.  As we consume more and more of the native
        # functionality, we can dispense with such ugliness.
        input.instance_eval do
          @native = native
        end
        # TODO: is this re-nativization necessary for outputs, too?
      end
    end
A new Transaction contains no inputs or outputs; these can be added with
 #add_input and #add_output.
 Update the "native" bitcoin-ruby instances for the transaction and
 all its inputs.  Will be removed when we rework the wrapper classes
 to be lazy, rather than eager.