@@ -14,10 +14,12 @@ pub trait DbTestExt: Database + DatabaseCommit {
1414 where
1515 F : FnOnce ( & mut AccountInfo ) ,
1616 {
17- let mut info = self . basic ( address) . ok ( ) . flatten ( ) . unwrap_or_default ( ) ;
17+ let original_info = self . basic ( address) . ok ( ) . flatten ( ) . unwrap_or_default ( ) ;
18+ let mut info = original_info. clone ( ) ;
1819 f ( & mut info) ;
1920 let account = Account {
2021 info,
22+ original_info : Box :: new ( original_info) ,
2123 storage : Default :: default ( ) ,
2224 status : AccountStatus :: Touched ,
2325 transaction_id : 0 ,
@@ -54,7 +56,13 @@ pub trait DbTestExt: Database + DatabaseCommit {
5456 let info = self . basic ( address) . ok ( ) . flatten ( ) . unwrap_or_default ( ) ;
5557 let storage =
5658 HashMap :: from_iter ( [ ( slot, EvmStorageSlot :: new_changed ( U256 :: ZERO , value, 0 ) ) ] ) ;
57- let account = Account { info, storage, status : AccountStatus :: Touched , transaction_id : 0 } ;
59+ let account = Account {
60+ info : info. clone ( ) ,
61+ original_info : Box :: new ( info) ,
62+ storage,
63+ status : AccountStatus :: Touched ,
64+ transaction_id : 0 ,
65+ } ;
5866 self . commit ( HashMap :: from_iter ( [ ( address, account) ] ) ) ;
5967 }
6068
@@ -81,10 +89,12 @@ pub trait TryDbTestExt: Database + TryDatabaseCommit {
8189 where
8290 F : FnOnce ( & mut AccountInfo ) ,
8391 {
84- let mut info = self . basic ( address) . ok ( ) . flatten ( ) . unwrap_or_default ( ) ;
92+ let original_info = self . basic ( address) . ok ( ) . flatten ( ) . unwrap_or_default ( ) ;
93+ let mut info = original_info. clone ( ) ;
8594 f ( & mut info) ;
8695 let account = Account {
8796 info,
97+ original_info : Box :: new ( original_info) ,
8898 storage : Default :: default ( ) ,
8999 status : AccountStatus :: Touched ,
90100 transaction_id : 0 ,
@@ -142,7 +152,13 @@ pub trait TryDbTestExt: Database + TryDatabaseCommit {
142152 let info = self . basic ( address) . ok ( ) . flatten ( ) . unwrap_or_default ( ) ;
143153 let storage =
144154 HashMap :: from_iter ( [ ( slot, EvmStorageSlot :: new_changed ( U256 :: ZERO , value, 0 ) ) ] ) ;
145- let account = Account { info, storage, status : AccountStatus :: Touched , transaction_id : 0 } ;
155+ let account = Account {
156+ info : info. clone ( ) ,
157+ original_info : Box :: new ( info) ,
158+ storage,
159+ status : AccountStatus :: Touched ,
160+ transaction_id : 0 ,
161+ } ;
146162 self . try_commit ( HashMap :: from_iter ( [ ( address, account) ] ) )
147163 }
148164
0 commit comments