write method

  1. @override
void write(
  1. Writer writer
)
override

Override to write data into writer

Implementation

@override
void write(Writer writer) {

  final thisIn = tx.inputs[inputN];

  final hashPrevouts = !hashType.anyOneCanPay
    ? hashes.prevouts.doubleHash
    : hashZero;

  final hashSequences
    = !hashType.anyOneCanPay && !hashType.single && !hashType.none
    ? hashes.sequences.doubleHash
    : hashZero;

  final hashOutputs = !hashType.single && !hashType.none
    ? hashes.outputs.doubleHash
    : hashType.single && inputN < tx.outputs.length
      ? sha256DoubleHash(tx.outputs[inputN].toBytes())
      : hashZero;

  writer.writeUInt32(tx.version);
  writer.writeSlice(hashPrevouts);
  writer.writeSlice(hashSequences);
  thisIn.prevOut.write(writer);
  writer.writeVarSlice(scriptCode.compiled);
  writer.writeUInt64(value);
  writer.writeUInt32(thisIn.sequence);
  writer.writeSlice(hashOutputs);
  writer.writeUInt32(tx.locktime);
  writer.writeUInt32(hashType.value);

}