e.WitnessArguments = args
case *bc.Spend:
e.WitnessArguments = args
+ case *bc.VetoInput:
+ e.WitnessArguments = args
}
}
if _, err = io.ReadFull(r, serflags[:]); err != nil {
return errors.Wrap(err, "reading serialization flags")
}
+
if serflags[0] != serRequired {
return fmt.Errorf("unsupported serflags %#x", serflags[0])
}
if tx.Version, err = blockchain.ReadVarint63(r); err != nil {
return errors.Wrap(err, "reading transaction version")
}
+
if tx.TimeRange, err = blockchain.ReadVarint63(r); err != nil {
return err
}
if err = ti.readFrom(r); err != nil {
return errors.Wrapf(err, "reading input %d", len(tx.Inputs))
}
+
tx.Inputs = append(tx.Inputs, ti)
}
if err = to.readFrom(r); err != nil {
return errors.Wrapf(err, "reading output %d", len(tx.Outputs))
}
+
tx.Outputs = append(tx.Outputs, to)
}
+
tx.SerializedSize = uint64(startSerializedSize - r.Len())
return nil
}
if err := tx.writeTo(ew, serRequired); err != nil {
return 0, err
}
+
return ew.Written(), ew.Err()
}
if _, err := w.Write([]byte{serflags}); err != nil {
return errors.Wrap(err, "writing serialization flags")
}
+
if _, err := blockchain.WriteVarint63(w, tx.Version); err != nil {
return errors.Wrap(err, "writing transaction version")
}
+
if _, err := blockchain.WriteVarint63(w, tx.TimeRange); err != nil {
return errors.Wrap(err, "writing transaction maxtime")
}
}
return nil
}
-