@@ -117,90 +117,97 @@ where
117117 let slot1 = U256 :: from ( 1 ) ;
118118 let slot2 = U256 :: from ( 2 ) ;
119119
120- // Phase 1: Write storage change sets for blocks 1-3
120+ // Phase 1: Write storage change sets for blocks 1001-1003
121+ // (distinct from blocks 1-5 used by test_update_history_indices_account;
122+ // update_history_indices scans the shared change-set table, so each test
123+ // that calls it must operate in a non-overlapping block window)
121124 {
122125 let writer = hot_kv. writer ( ) . unwrap ( ) ;
123126
124- // Block 1 : addr1.slot1 changed
125- writer. write_storage_prestate ( 1 , addr1, & slot1, & U256 :: ZERO ) . unwrap ( ) ;
127+ // Block 1001 : addr1.slot1 changed
128+ writer. write_storage_prestate ( 1001 , addr1, & slot1, & U256 :: ZERO ) . unwrap ( ) ;
126129
127- // Block 2 : addr1.slot1 and addr1.slot2 changed
128- writer. write_storage_prestate ( 2 , addr1, & slot1, & U256 :: from ( 100 ) ) . unwrap ( ) ;
129- writer. write_storage_prestate ( 2 , addr1, & slot2, & U256 :: ZERO ) . unwrap ( ) ;
130+ // Block 1002 : addr1.slot1 and addr1.slot2 changed
131+ writer. write_storage_prestate ( 1002 , addr1, & slot1, & U256 :: from ( 100 ) ) . unwrap ( ) ;
132+ writer. write_storage_prestate ( 1002 , addr1, & slot2, & U256 :: ZERO ) . unwrap ( ) ;
130133
131- // Block 3 : addr1.slot2 changed
132- writer. write_storage_prestate ( 3 , addr1, & slot2, & U256 :: from ( 200 ) ) . unwrap ( ) ;
134+ // Block 1003 : addr1.slot2 changed
135+ writer. write_storage_prestate ( 1003 , addr1, & slot2, & U256 :: from ( 200 ) ) . unwrap ( ) ;
133136
134137 writer. commit ( ) . unwrap ( ) ;
135138 }
136139
137- // Phase 2: Run update_history_indices for blocks 1-3
140+ // Phase 2: Run update_history_indices for blocks 1001-1003
138141 {
139142 let writer = hot_kv. writer ( ) . unwrap ( ) ;
140- writer. update_history_indices ( 1 ..=3 ) . unwrap ( ) ;
143+ writer. update_history_indices ( 1001 ..=1003 ) . unwrap ( ) ;
141144 writer. commit ( ) . unwrap ( ) ;
142145 }
143146
144147 // Phase 3: Verify storage history was created correctly
145148 {
146149 let reader = hot_kv. reader ( ) . unwrap ( ) ;
147150
148- // addr1.slot1 should have history at blocks 1, 2
151+ // addr1.slot1 should have history at blocks 1001, 1002
149152 let history1 = reader
150153 . blocks_changed_storage ( & addr1, & slot1)
151154 . unwrap ( )
152155 . expect ( "addr1.slot1 should have history" ) ;
153156 let blocks1: Vec < u64 > = history1. iter ( ) . collect ( ) ;
154- assert_eq ! ( blocks1, vec![ 1 , 2 ] , "addr1.slot1 history mismatch" ) ;
157+ assert_eq ! ( blocks1, vec![ 1001 , 1002 ] , "addr1.slot1 history mismatch" ) ;
155158
156- // addr1.slot2 should have history at blocks 2, 3
159+ // addr1.slot2 should have history at blocks 1002, 1003
157160 let history2 = reader
158161 . blocks_changed_storage ( & addr1, & slot2)
159162 . unwrap ( )
160163 . expect ( "addr1.slot2 should have history" ) ;
161164 let blocks2: Vec < u64 > = history2. iter ( ) . collect ( ) ;
162- assert_eq ! ( blocks2, vec![ 2 , 3 ] , "addr1.slot2 history mismatch" ) ;
165+ assert_eq ! ( blocks2, vec![ 1002 , 1003 ] , "addr1.slot2 history mismatch" ) ;
163166 }
164167
165- // Phase 4: Write more change sets for blocks 4-5
168+ // Phase 4: Write more change sets for blocks 1004-1005
166169 {
167170 let writer = hot_kv. writer ( ) . unwrap ( ) ;
168171
169- // Block 4 : addr1.slot1 changed
170- writer. write_storage_prestate ( 4 , addr1, & slot1, & U256 :: from ( 300 ) ) . unwrap ( ) ;
172+ // Block 1004 : addr1.slot1 changed
173+ writer. write_storage_prestate ( 1004 , addr1, & slot1, & U256 :: from ( 300 ) ) . unwrap ( ) ;
171174
172- // Block 5 : addr1.slot1 changed again
173- writer. write_storage_prestate ( 5 , addr1, & slot1, & U256 :: from ( 400 ) ) . unwrap ( ) ;
175+ // Block 1005 : addr1.slot1 changed again
176+ writer. write_storage_prestate ( 1005 , addr1, & slot1, & U256 :: from ( 400 ) ) . unwrap ( ) ;
174177
175178 writer. commit ( ) . unwrap ( ) ;
176179 }
177180
178- // Phase 5: Run update_history_indices for blocks 4-5
181+ // Phase 5: Run update_history_indices for blocks 1004-1005
179182 {
180183 let writer = hot_kv. writer ( ) . unwrap ( ) ;
181- writer. update_history_indices ( 4 ..=5 ) . unwrap ( ) ;
184+ writer. update_history_indices ( 1004 ..=1005 ) . unwrap ( ) ;
182185 writer. commit ( ) . unwrap ( ) ;
183186 }
184187
185188 // Phase 6: Verify history was appended correctly
186189 {
187190 let reader = hot_kv. reader ( ) . unwrap ( ) ;
188191
189- // addr1.slot1 should now have history at blocks 1, 2, 4, 5
192+ // addr1.slot1 should now have history at blocks 1001, 1002, 1004, 1005
190193 let history1 = reader
191194 . blocks_changed_storage ( & addr1, & slot1)
192195 . unwrap ( )
193196 . expect ( "addr1.slot1 should have history" ) ;
194197 let blocks1: Vec < u64 > = history1. iter ( ) . collect ( ) ;
195- assert_eq ! ( blocks1, vec![ 1 , 2 , 4 , 5 ] , "addr1.slot1 history mismatch after append" ) ;
198+ assert_eq ! (
199+ blocks1,
200+ vec![ 1001 , 1002 , 1004 , 1005 ] ,
201+ "addr1.slot1 history mismatch after append"
202+ ) ;
196203
197- // addr1.slot2 should still have history at blocks 2, 3 (unchanged)
204+ // addr1.slot2 should still have history at blocks 1002, 1003 (unchanged)
198205 let history2 = reader
199206 . blocks_changed_storage ( & addr1, & slot2)
200207 . unwrap ( )
201208 . expect ( "addr1.slot2 should have history" ) ;
202209 let blocks2: Vec < u64 > = history2. iter ( ) . collect ( ) ;
203- assert_eq ! ( blocks2, vec![ 2 , 3 ] , "addr1.slot2 history should be unchanged" ) ;
210+ assert_eq ! ( blocks2, vec![ 1002 , 1003 ] , "addr1.slot2 history should be unchanged" ) ;
204211 }
205212}
206213
0 commit comments