getInputAddresses method
Implementation
List<String> getInputAddresses({bool isTestnet = false, String chain = 'btc'}) {
List<String> inputAddresses = [];
for (int i = 0; i < inputs.length; i++) {
PsbtInput input = inputs[i];
if (input.witnessUtxo != null) {
// witnessUtxo (PSBT key type 01)
inputAddresses.add(input.witnessUtxo!.getAddress(isTestnet: isTestnet, chain: chain));
} else if (input.previousTransaction != null) {
// nonWitnessUtxo (PSBT key type 00)
Transaction prevTx = input.previousTransaction!;
int outputIndex = unsignedTransaction!.inputs[i].index;
if (outputIndex < prevTx.outputs.length) {
inputAddresses.add(prevTx.outputs[outputIndex].getAddress(isTestnet: isTestnet, chain: chain));
} else {
throw Exception(
'Invalid output index $outputIndex in previous transaction');
}
} else {
throw Exception('No UTXO information found for input $i');
}
}
return inputAddresses;
}