finalize method

  1. @override
Tx finalize()
override

Implementation

@override
Tx finalize() {
  final tx = _unsignedTx;
  if (tx == null) {
    throw StateError('No unsigned transaction to finalize');
  }

  final newInputs = <TxInput>[];
  for (var i = 0; i < tx.inputs.length; i++) {
    final inputSection = getInputSection(i);
    Uint8List? finalScriptSig;
    for (final kv in inputSection) {
      if (kv.key.isNotEmpty &&
          kv.key[0] == PsbtInputEntry.finalScriptSig.keyType) {
        finalScriptSig = kv.value;
        break;
      }
    }
    final prevOut = tx.inputs[i].prevOut;
    final seq = tx.inputs[i].sequence;
    newInputs.add(RawInput(
      prevOut: prevOut,
      scriptSig: finalScriptSig,
      sequence: seq,
    ));
  }

  return Tx(
    version: tx.version,
    inputs: newInputs,
    outputs: tx.outputs,
    locktime: tx.locktime,
  );
}