[wallet] Build output lookup inside complete transaction

To avoid the caller having to do it.
This commit is contained in:
LLFourn 2020-11-17 12:37:53 +11:00
parent fcc408f346
commit 35579cb216
No known key found for this signature in database
GPG Key ID: A27093B54DA11F65

View File

@ -484,11 +484,7 @@ where
builder.ordering.sort_tx(&mut tx); builder.ordering.sort_tx(&mut tx);
let txid = tx.txid(); let txid = tx.txid();
let lookup_output = selected let psbt = self.complete_transaction(tx, selected, builder)?;
.into_iter()
.map(|utxo| (utxo.outpoint, utxo))
.collect();
let psbt = self.complete_transaction(tx, lookup_output, builder)?;
let transaction_details = TransactionDetails { let transaction_details = TransactionDetails {
transaction: None, transaction: None,
@ -771,14 +767,10 @@ where
// TODO: check that we are not replacing more than 100 txs from mempool // TODO: check that we are not replacing more than 100 txs from mempool
details.txid = tx.txid(); details.txid = tx.txid();
let lookup_output = selected
.into_iter()
.map(|utxo| (utxo.outpoint, utxo))
.collect();
details.fees = fee_amount; details.fees = fee_amount;
details.timestamp = time::get_timestamp(); details.timestamp = time::get_timestamp();
let psbt = self.complete_transaction(tx, lookup_output, builder)?; let psbt = self.complete_transaction(tx, selected, builder)?;
Ok((psbt, details)) Ok((psbt, details))
} }
@ -1131,10 +1123,14 @@ where
>( >(
&self, &self,
tx: Transaction, tx: Transaction,
lookup_output: HashMap<OutPoint, UTXO>, selected: Vec<UTXO>,
builder: TxBuilder<D, Cs, Ctx>, builder: TxBuilder<D, Cs, Ctx>,
) -> Result<PSBT, Error> { ) -> Result<PSBT, Error> {
let mut psbt = PSBT::from_unsigned_tx(tx)?; let mut psbt = PSBT::from_unsigned_tx(tx)?;
let lookup_output = selected
.into_iter()
.map(|utxo| (utxo.outpoint, utxo))
.collect::<HashMap<_, _>>();
// add metadata for the inputs // add metadata for the inputs
for (psbt_input, input) in psbt for (psbt_input, input) in psbt