@@ -1690,15 +1690,19 @@ impl Wallet {
1690
1690
. ok_or ( BuildFeeBumpError :: UnknownUtxo ( txin. previous_output ) )
1691
1691
// Get chain position
1692
1692
. and_then ( |prev_tx| {
1693
- chain_positions
1693
+ let chain_position = chain_positions
1694
1694
. get ( & txin. previous_output . txid )
1695
1695
. cloned ( )
1696
- . ok_or ( BuildFeeBumpError :: UnknownUtxo ( txin. previous_output ) )
1697
- . map ( |chain_position| ( prev_tx, chain_position) )
1696
+ . ok_or ( BuildFeeBumpError :: UnknownUtxo ( txin. previous_output ) ) ?;
1697
+ let prev_txout = prev_tx
1698
+ . output
1699
+ . get ( txin. previous_output . vout as usize )
1700
+ . ok_or ( BuildFeeBumpError :: InvalidOutputIndex ( txin. previous_output ) )
1701
+ . cloned ( ) ?;
1702
+ Ok ( ( prev_tx, prev_txout, chain_position) )
1698
1703
} )
1699
- . map ( |( prev_tx, chain_position) | {
1700
- let txout = prev_tx. output [ txin. previous_output . vout as usize ] . clone ( ) ;
1701
- match txout_index. index_of_spk ( txout. script_pubkey . clone ( ) ) {
1704
+ . map ( |( prev_tx, prev_txout, chain_position) | {
1705
+ match txout_index. index_of_spk ( prev_txout. script_pubkey . clone ( ) ) {
1702
1706
Some ( & ( keychain, derivation_index) ) => (
1703
1707
txin. previous_output ,
1704
1708
WeightedUtxo {
@@ -1708,7 +1712,7 @@ impl Wallet {
1708
1712
. unwrap ( ) ,
1709
1713
utxo : Utxo :: Local ( LocalOutput {
1710
1714
outpoint : txin. previous_output ,
1711
- txout : txout . clone ( ) ,
1715
+ txout : prev_txout . clone ( ) ,
1712
1716
keychain,
1713
1717
is_spent : true ,
1714
1718
derivation_index,
@@ -1729,10 +1733,10 @@ impl Wallet {
1729
1733
outpoint : txin. previous_output ,
1730
1734
sequence : txin. sequence ,
1731
1735
psbt_input : Box :: new ( psbt:: Input {
1732
- witness_utxo : txout
1736
+ witness_utxo : prev_txout
1733
1737
. script_pubkey
1734
1738
. witness_version ( )
1735
- . map ( |_| txout . clone ( ) ) ,
1739
+ . map ( |_| prev_txout . clone ( ) ) ,
1736
1740
non_witness_utxo : Some ( prev_tx. as_ref ( ) . clone ( ) ) ,
1737
1741
..Default :: default ( )
1738
1742
} ) ,
0 commit comments