addInput method
void
addInput({
- required Outpoint outpoint,
- Uint8List? witnessUtxoScript,
- BigInt? witnessUtxoValue,
- Tx? nonWitnessUtxo,
- int sequence = 0xffffffff,
override
Implementation
@override
void addInput({
required Outpoint outpoint,
Uint8List? witnessUtxoScript,
BigInt? witnessUtxoValue,
Tx? nonWitnessUtxo,
int sequence = 0xffffffff,
}) {
_ensureSections();
final oldInputCount = inputCount;
final newInput = RawInput(prevOut: outpoint, sequence: sequence);
final inputs = _unsignedTx?.inputs ?? [];
final outputs = _unsignedTx?.outputs ?? [];
_unsignedTx = Tx(
version: _unsignedTx?.version ?? Tx.currentVersion,
inputs: [...inputs, newInput],
outputs: outputs,
locktime: _unsignedTx?.locktime ?? 0,
);
final inputKvs = <PsbtKeyValue>[];
if (nonWitnessUtxo != null) {
inputKvs.add(PsbtKeyValue(
key: Uint8List.fromList([PsbtInputEntry.nonWitnessUtxo.keyType]),
value: nonWitnessUtxo.toBytes(),
));
}
if (witnessUtxoScript != null && witnessUtxoValue != null) {
final out = TxOutput(value: witnessUtxoValue, scriptPubKey: witnessUtxoScript);
inputKvs.add(PsbtKeyValue(
key: Uint8List.fromList([PsbtInputEntry.witnessUtxo.keyType]),
value: out.toBytes(),
));
}
final insertIndex = 1 + oldInputCount;
_sections.insert(insertIndex, inputKvs);
}