(w io.Writer, serflags byte)
| 213 | } |
| 214 | |
| 215 | func (tx *TxData) writeTo(w io.Writer, serflags byte) error { |
| 216 | _, err := w.Write([]byte{serflags}) |
| 217 | if err != nil { |
| 218 | return errors.Wrap(err, "writing serialization flags") |
| 219 | } |
| 220 | |
| 221 | _, err = blockchain.WriteVarint63(w, tx.Version) |
| 222 | if err != nil { |
| 223 | return errors.Wrap(err, "writing transaction version") |
| 224 | } |
| 225 | |
| 226 | // common fields |
| 227 | _, err = blockchain.WriteExtensibleString(w, tx.CommonFieldsSuffix, func(w io.Writer) error { |
| 228 | _, err := blockchain.WriteVarint63(w, tx.MinTime) |
| 229 | if err != nil { |
| 230 | return errors.Wrap(err, "writing transaction min time") |
| 231 | } |
| 232 | _, err = blockchain.WriteVarint63(w, tx.MaxTime) |
| 233 | return errors.Wrap(err, "writing transaction max time") |
| 234 | }) |
| 235 | if err != nil { |
| 236 | return errors.Wrap(err, "writing common fields") |
| 237 | } |
| 238 | |
| 239 | // common witness |
| 240 | _, err = blockchain.WriteExtensibleString(w, tx.CommonWitnessSuffix, tx.writeCommonWitness) |
| 241 | if err != nil { |
| 242 | return errors.Wrap(err, "writing common witness") |
| 243 | } |
| 244 | |
| 245 | _, err = blockchain.WriteVarint31(w, uint64(len(tx.Inputs))) |
| 246 | if err != nil { |
| 247 | return errors.Wrap(err, "writing tx input count") |
| 248 | } |
| 249 | for i, ti := range tx.Inputs { |
| 250 | err = ti.writeTo(w, serflags) |
| 251 | if err != nil { |
| 252 | return errors.Wrapf(err, "writing tx input %d", i) |
| 253 | } |
| 254 | } |
| 255 | |
| 256 | _, err = blockchain.WriteVarint31(w, uint64(len(tx.Outputs))) |
| 257 | if err != nil { |
| 258 | return errors.Wrap(err, "writing tx output count") |
| 259 | } |
| 260 | for i, to := range tx.Outputs { |
| 261 | err = to.writeTo(w, serflags) |
| 262 | if err != nil { |
| 263 | return errors.Wrapf(err, "writing tx output %d", i) |
| 264 | } |
| 265 | } |
| 266 | |
| 267 | return writeRefData(w, tx.ReferenceData, serflags) |
| 268 | } |
| 269 | |
| 270 | // does not write the enclosing extensible string |
| 271 | func (tx *TxData) writeCommonWitness(w io.Writer) error { |
no test coverage detected