func (this *TxIn) ReadFrom(r io.Reader) (int64, error) { var err error var dr dataio.DataReader dr.Init(r) err = dr.ReadFull(this.Previous.Hash[:]) if err != nil { return dr.Count(), err } this.Previous.Index, err = dr.ReadUint32() if err != nil { return dr.Count(), err } this.Script, err = dr.ReadVarBytes() if err != nil { return dr.Count(), err } this.Sequence, err = dr.ReadUint32() if err != nil { return dr.Count(), err } return dr.Count(), nil }
func (this *Tx) ReadFrom(r io.Reader) (int64, error) { var err error var dr dataio.DataReader dr.Init(r) this.Version, err = dr.ReadUint32() if err != nil { return dr.Count(), err } if this.Version > 2 { return 0, UnsupportedTxVersionError(this.Version) } inputCount, err := dr.ReadVarInt() if err != nil { return dr.Count(), err } this.Inputs = make([]TxIn, inputCount) for txInNum := uint64(0); txInNum < inputCount; txInNum++ { err = dr.ReadReaderFrom(&this.Inputs[txInNum]) if err != nil { return dr.Count(), err } } outputCount, err := dr.ReadVarInt() if err != nil { return dr.Count(), err } this.Outputs = make([]TxOut, outputCount) for txOutNum := uint64(0); txOutNum < outputCount; txOutNum++ { err = dr.ReadReaderFrom(&this.Outputs[txOutNum]) if err != nil { return dr.Count(), err } } this.LockTime, err = dr.ReadUint32() if err != nil { return dr.Count(), err } return dr.Count(), nil }