Skip to content

Commit 8b009f3

Browse files
committed
Fixing failing tests
1 parent 30e11b2 commit 8b009f3

File tree

5 files changed

+15
-10
lines changed

5 files changed

+15
-10
lines changed

cmd/ef_tests/state_v2/src/modules/result_check.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ pub fn check_accounts_state(
272272
H256::from(k.to_big_endian()),
273273
LevmStorageSlot {
274274
current_value: *v,
275-
previous_value: *v,
275+
previous_value: None,
276276
},
277277
)
278278
})

crates/vm/levm/runner/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ fn compare_initial_and_current_accounts(
246246
}
247247

248248
for (slot, value) in &acc.storage {
249-
let prev_value = value.previous_value;
249+
let prev_value = value.previous_value.unwrap_or(U256::default());
250250
let current_value = value.current_value;
251251
if prev_value != current_value {
252252
info!(

crates/vm/levm/src/account.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ pub struct LevmAccount {
2525
#[derive(Clone, Copy, Default, Debug, PartialEq, Eq, Serialize, Deserialize)]
2626
pub struct LevmStorageSlot {
2727
pub current_value: U256,
28-
pub previous_value: U256,
28+
pub previous_value: Option<U256>,
2929
}
3030

3131
impl From<AccountInfo> for LevmAccount {
@@ -48,7 +48,7 @@ impl From<GenesisAccount> for LevmAccount {
4848
H256::from(key.to_big_endian()),
4949
LevmStorageSlot {
5050
current_value: value,
51-
previous_value: value,
51+
previous_value: None,
5252
},
5353
)
5454
})

crates/vm/levm/src/db/gen_db.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ impl GeneralizedDatabase {
132132
Some(account) => {
133133
let storage_value = LevmStorageSlot {
134134
current_value: value,
135-
previous_value: value,
135+
previous_value: None,
136136
};
137137
account.storage.insert(key, storage_value);
138138
}
@@ -377,7 +377,13 @@ impl<'a> VM<'a> {
377377
address: Address,
378378
key: H256,
379379
) -> Result<U256, InternalError> {
380-
Ok(self.get_storage_slot(address, key)?.current_value)
380+
let mut storage_slot = self.get_storage_slot(address, key)?;
381+
if let Some(original_value) = storage_slot.previous_value {
382+
return Ok(original_value);
383+
}
384+
let current_value = storage_slot.current_value;
385+
storage_slot.previous_value = Some(current_value);
386+
Ok(current_value)
381387
}
382388

383389
/// Accesses to an account's storage slot and returns the value in it.
@@ -431,7 +437,7 @@ impl<'a> VM<'a> {
431437

432438
let storage_slot = LevmStorageSlot {
433439
current_value,
434-
previous_value: current_value,
440+
previous_value: None,
435441
};
436442

437443
let account = self.get_account_mut(address)?;
@@ -452,7 +458,6 @@ impl<'a> VM<'a> {
452458

453459
let mut storage_slot = self.get_storage_slot(address, key)?;
454460
storage_slot.current_value = new_value;
455-
storage_slot.previous_value = current_value;
456461

457462
Ok(())
458463
}

crates/vm/levm/src/utils.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ pub fn restore_cache_state(
185185
for (key, value) in storage {
186186
let storage_value = LevmStorageSlot {
187187
current_value: value,
188-
previous_value: value,
188+
previous_value: None,
189189
};
190190
account.storage.insert(key, storage_value);
191191
}
@@ -683,7 +683,7 @@ pub fn account_to_levm_account(account: Account) -> (LevmAccount, Bytes) {
683683
.map(|(key, value)| {
684684
let storage_value = LevmStorageSlot {
685685
current_value: value,
686-
previous_value: value,
686+
previous_value: None,
687687
};
688688
(key, storage_value)
689689
})

0 commit comments

Comments
 (0)