TxIn.deserialize constructor

TxIn.deserialize(
  1. Uint8List data,
  2. int offset
)

Deserialize transaction input

Implementation

factory TxIn.deserialize(Uint8List data, int offset) {
  int pos = offset;

  // Previous outpoint hash (32 bytes)
  final prevHash = Hash.fromBytes(data.sublist(pos, pos + 32));
  pos += 32;

  // Previous outpoint index (4 bytes)
  final prevIndex = _bytesToUint32(data, pos);
  pos += 4;

  // Signature script length
  final buffer = ByteData.sublistView(data);
  final scriptLen = VarInt.read(buffer, pos);
  pos += VarInt.size(scriptLen);

  // Signature script
  final sigScript = data.sublist(pos, pos + scriptLen);
  pos += scriptLen;

  // Sequence (4 bytes)
  final sequence = _bytesToUint32(data, pos);

  return TxIn(
    previousOutPointHash: prevHash,
    previousOutPointIndex: prevIndex,
    signatureScript: sigScript,
    sequence: sequence,
  );
}