You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
immature_transactions() returns Vec<Transaction> but every caller only uses .txid(), .len(), or .is_empty(). The spent_outpoints rebuild on deserialization iterates record.transaction.input — with input_details available, it can use those instead.
immature_transactions() returns HashSet<Txid> instead of Vec<Transaction>
All callers updated (dash-spv tests, key-wallet tests, wallet_checker tests)
spent_outpoints rebuild on deserialization uses record.input_details (OutPoint from transaction.input[detail.index].previous_output) instead of iterating all tx inputs
immature_transactions() in wallet_info_interface.rs finds immature coinbase UTXOs and collects their txids — the Transaction was never needed
spent_outpoints rebuild in managed_account/mod.rs deserialization: currently record.transaction.input.iter().map(|i| i.previous_output) — change to record.input_details.iter().map(|d| record.transaction.input[d.index].previous_output)
Context
immature_transactions()returnsVec<Transaction>but every caller only uses.txid(),.len(), or.is_empty(). Thespent_outpointsrebuild on deserialization iteratesrecord.transaction.input— withinput_detailsavailable, it can use those instead.Parent: #68
Acceptance Criteria
immature_transactions()returnsHashSet<Txid>instead ofVec<Transaction>spent_outpointsrebuild on deserialization usesrecord.input_details(OutPoint fromtransaction.input[detail.index].previous_output) instead of iterating all tx inputscargo clippycleanNotes
InputDetail,OutputDetail,TransactionDirectiontoTransactionRecord#69 (input_detailsmust exist inTransactionRecord)immature_transactions()inwallet_info_interface.rsfinds immature coinbase UTXOs and collects their txids — the Transaction was never neededspent_outpointsrebuild inmanaged_account/mod.rsdeserialization: currentlyrecord.transaction.input.iter().map(|i| i.previous_output)— change torecord.input_details.iter().map(|d| record.transaction.input[d.index].previous_output)key-wallet/src/wallet/managed_wallet_info/wallet_info_interface.rs,key-wallet/src/managed_account/mod.rs,dash-spv/tests/dashd_sync/setup.rs,key-wallet/tests/spv_integration_tests.rs