@@ -189,13 +189,15 @@ impl Mollusk {
189189
190190 let resulting_accounts: Vec < ( Pubkey , AccountSharedData ) > = accounts
191191 . iter ( )
192- . filter_map ( |( pubkey, _ ) | {
192+ . map ( |( pubkey, account ) | {
193193 transaction_context
194194 . find_index_of_account ( pubkey)
195195 . map ( |index| {
196- let account = transaction_context. get_account_at_index ( index) . unwrap ( ) ;
197- ( * pubkey, account. take ( ) )
196+ let resulting_account =
197+ transaction_context. get_account_at_index ( index) . unwrap ( ) ;
198+ ( * pubkey, resulting_account. take ( ) )
198199 } )
200+ . unwrap_or ( ( * pubkey, account. clone ( ) ) )
199201 } )
200202 . collect ( ) ;
201203
@@ -234,17 +236,8 @@ impl Mollusk {
234236 result. compute_units_consumed += this_result. compute_units_consumed ;
235237 result. execution_time += this_result. execution_time ;
236238 result. program_result = this_result. program_result ;
237- for resulting_account in this_result. resulting_accounts . into_iter ( ) {
238- if let Some ( pos) = result
239- . resulting_accounts
240- . iter ( )
241- . position ( |( key, _) | key == & resulting_account. 0 )
242- {
243- result. resulting_accounts [ pos] . 1 = resulting_account. 1 ;
244- } else {
245- result. resulting_accounts . push ( resulting_account) ;
246- }
247- }
239+ result. raw_result = this_result. raw_result ;
240+ result. resulting_accounts = this_result. resulting_accounts ;
248241
249242 if result. program_result . is_err ( ) {
250243 break ;
0 commit comments