signInputs function
Implementation
List<Input> signInputs({
required Map<ElectrumOutput, Input> inputs,
required HDWalletPath walletPath,
required UTXONetworkType networkType,
required RawTransaction tx,
required Uint8List seed,
}) {
final signedInputs = <Input>[];
for (var i = 0; i < inputs.length; i++) {
final entry = inputs.entries.elementAt(i);
final input = entry.value;
final output = entry.key;
var bip32Node = output.node.bip32Node;
if (bip32Node == null || bip32Node.isNeutered()) {
if (output.belongsToUs) {
bip32Node = deriveChildNodeFromPath(
seed: seed,
childDerivationPath: output.node.derivationPath,
networkType: networkType,
walletPath: walletPath,
);
} else
throw SendFailure("Can't sign input without node: $output $input");
}
if (tx is BTCRawTransaction && output.scriptPubKey.isSegwit) {
final witnessSript = createScriptWitness(
tx: tx,
i: i,
output: output,
networkType: networkType,
node: bip32Node,
);
signedInputs.add(input.addScript(wittnessScript: witnessSript));
continue;
}
final scriptSig = createScriptSignature(
tx: tx,
i: i,
output: output,
walletPurpose: walletPath.purpose,
networkType: networkType,
node: bip32Node,
);
signedInputs.add(input.addScript(scriptSig: scriptSig));
}
return signedInputs;
}