コード例 #1
0
ファイル: tx.go プロジェクト: spearson78/guardian
func (this *Tx) WriteTo(w io.Writer) (int64, error) {
	if this.Version > 2 {
		return 0, UnsupportedTxVersionError(this.Version)
	}

	var dw dataio.DataWriter
	dw.Init(w)

	err := dw.WriteUint32(this.Version)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteVarInt(uint64(len(this.Inputs)))
	if err != nil {
		return dw.Count(), err
	}

	for i, _ := range this.Inputs {
		err := dw.WriteWriterTo(&this.Inputs[i])
		if err != nil {
			return dw.Count(), err
		}
	}

	err = dw.WriteVarInt(uint64(len(this.Outputs)))
	if err != nil {
		return dw.Count(), err
	}

	for i, _ := range this.Outputs {
		err := dw.WriteWriterTo(&this.Outputs[i])
		if err != nil {
			return dw.Count(), err
		}
	}

	err = dw.WriteUint32(this.LockTime)
	if err != nil {
		return dw.Count(), err
	}

	return dw.Count(), nil
}
コード例 #2
0
ファイル: networkaddress.go プロジェクト: spearson78/guardian
func (this *NetworkAddress) WriteTo(w io.Writer) (int64, error) {

	var dw dataio.DataWriter
	dw.Init(w)

	err := dw.WriteTime32(this.Time)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteWriterTo(&this.VersionNetworkAddress)
	if err != nil {
		return dw.Count(), err
	}

	return dw.Count(), nil
}
コード例 #3
0
ファイル: networkaddress.go プロジェクト: spearson78/guardian
func (this *VersionNetworkAddress) WriteTo(w io.Writer) (int64, error) {

	var dw dataio.DataWriter
	dw.Init(w)

	err := dw.WriteUint64(this.Services)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteTCPAddr(&this.Address)
	if err != nil {
		return dw.Count(), err
	}

	return dw.Count(), nil
}
コード例 #4
0
ファイル: txin.go プロジェクト: spearson78/guardian
func (this *TxIn) WriteTo(w io.Writer) (int64, error) {
	var dw dataio.DataWriter
	dw.Init(w)

	err := dw.Write(this.Previous.Hash[:])
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteUint32(this.Previous.Index)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteVarBytes(this.Script)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteUint32(this.Sequence)
	if err != nil {
		return dw.Count(), err
	}

	return dw.Count(), nil
}
コード例 #5
0
ファイル: version.go プロジェクト: spearson78/guardian
func (this *Version) WriteTo(w io.Writer) (int64, error) {

	var dw dataio.DataWriter
	dw.Init(w)

	err := dw.WriteInt32(this.Version)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteUint64(this.Services)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteTime64(this.Time)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteWriterTo(&this.Receive)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteWriterTo(&this.From)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteUint64(this.Nonce)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteVarString(this.UserAgent)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteInt32(this.StartHeight)
	if err != nil {
		return dw.Count(), err
	}

	return dw.Count(), nil

}
コード例 #6
0
ファイル: txout.go プロジェクト: spearson78/guardian
func (this *TxOut) WriteTo(w io.Writer) (int64, error) {
	var dw dataio.DataWriter
	dw.Init(w)

	err := dw.WriteInt64(this.Value)
	if err != nil {
		return dw.Count(), err
	}

	err = dw.WriteVarBytes(this.Script)
	if err != nil {
		return dw.Count(), err
	}

	return dw.Count(), nil
}