diff --git a/crates/anvil/src/eth/backend/db.rs b/crates/anvil/src/eth/backend/db.rs index cf8f1f5c9ae0..6c16f694dac5 100644 --- a/crates/anvil/src/eth/backend/db.rs +++ b/crates/anvil/src/eth/backend/db.rs @@ -112,7 +112,7 @@ pub trait Db: } /// Sets the balance of the given address - fn set_storage_at(&mut self, address: Address, slot: U256, val: U256) -> DatabaseResult<()>; + fn set_storage_at(&mut self, address: Address, slot: B256, val: B256) -> DatabaseResult<()>; /// inserts a blockhash for the given number fn insert_block_hash(&mut self, number: U256, hash: B256); @@ -184,8 +184,8 @@ impl + Send + Sync + Clone + fmt::Debug> D self.insert_account_info(address, account) } - fn set_storage_at(&mut self, address: Address, slot: U256, val: U256) -> DatabaseResult<()> { - self.insert_account_storage(address, slot, val) + fn set_storage_at(&mut self, address: Address, slot: B256, val: B256) -> DatabaseResult<()> { + self.insert_account_storage(address, slot.into(), val.into()) } fn insert_block_hash(&mut self, number: U256, hash: B256) { @@ -356,7 +356,7 @@ pub struct SerializableAccountRecord { pub nonce: u64, pub balance: U256, pub code: Bytes, - pub storage: BTreeMap, + pub storage: BTreeMap, } /// Defines a backwards-compatible enum for transactions. diff --git a/crates/anvil/src/eth/backend/genesis.rs b/crates/anvil/src/eth/backend/genesis.rs index ee459204d0cd..e5e76ff491e8 100644 --- a/crates/anvil/src/eth/backend/genesis.rs +++ b/crates/anvil/src/eth/backend/genesis.rs @@ -49,7 +49,7 @@ impl GenesisConfig { db.insert_account(addr, self.genesis_to_account_info(&acc)); // insert all storage values for (k, v) in storage.unwrap_or_default().iter() { - db.set_storage_at(addr, U256::from_be_bytes(k.0), U256::from_be_bytes(v.0))?; + db.set_storage_at(addr, *k, *v)?; } } } diff --git a/crates/anvil/src/eth/backend/mem/fork_db.rs b/crates/anvil/src/eth/backend/mem/fork_db.rs index a179f50c3b49..bd879f8f4201 100644 --- a/crates/anvil/src/eth/backend/mem/fork_db.rs +++ b/crates/anvil/src/eth/backend/mem/fork_db.rs @@ -22,7 +22,7 @@ impl Db for ForkedDatabase { self.database_mut().insert_account(address, account) } - fn set_storage_at(&mut self, address: Address, slot: U256, val: U256) -> DatabaseResult<()> { + fn set_storage_at(&mut self, address: Address, slot: B256, val: B256) -> DatabaseResult<()> { // this ensures the account is loaded first let _ = Database::basic(self, address)?; self.database_mut().set_storage_at(address, slot, val) @@ -57,7 +57,7 @@ impl Db for ForkedDatabase { nonce: v.info.nonce, balance: v.info.balance, code: code.original_bytes(), - storage: v.storage.into_iter().collect(), + storage: v.storage.into_iter().map(|(k, v)| (k.into(), v.into())).collect(), }, )) }) diff --git a/crates/anvil/src/eth/backend/mem/in_memory_db.rs b/crates/anvil/src/eth/backend/mem/in_memory_db.rs index 059c00f326bf..2abee72ef33c 100644 --- a/crates/anvil/src/eth/backend/mem/in_memory_db.rs +++ b/crates/anvil/src/eth/backend/mem/in_memory_db.rs @@ -24,8 +24,8 @@ impl Db for MemDb { self.inner.insert_account_info(address, account) } - fn set_storage_at(&mut self, address: Address, slot: U256, val: U256) -> DatabaseResult<()> { - self.inner.insert_account_storage(address, slot, val) + fn set_storage_at(&mut self, address: Address, slot: B256, val: B256) -> DatabaseResult<()> { + self.inner.insert_account_storage(address, slot.into(), val.into()) } fn insert_block_hash(&mut self, number: U256, hash: B256) { @@ -56,7 +56,7 @@ impl Db for MemDb { nonce: v.info.nonce, balance: v.info.balance, code: code.original_bytes(), - storage: v.storage.into_iter().collect(), + storage: v.storage.into_iter().map(|(k, v)| (k.into(), v.into())).collect(), }, )) }) @@ -159,7 +159,9 @@ mod tests { nonce: 1234, }, ); - dump_db.set_storage_at(test_addr, U256::from(1234567), U256::from(1)).unwrap(); + dump_db + .set_storage_at(test_addr, U256::from(1234567).into(), U256::from(1).into()) + .unwrap(); // blocks dumping/loading tested in storage.rs let state = dump_db @@ -202,8 +204,8 @@ mod tests { }, ); - db.set_storage_at(test_addr, U256::from(1234567), U256::from(1)).unwrap(); - db.set_storage_at(test_addr, U256::from(1234568), U256::from(2)).unwrap(); + db.set_storage_at(test_addr, U256::from(1234567).into(), U256::from(1).into()).unwrap(); + db.set_storage_at(test_addr, U256::from(1234568).into(), U256::from(2).into()).unwrap(); let mut new_state = SerializableState::default(); @@ -218,7 +220,7 @@ mod tests { ); let mut new_storage = BTreeMap::default(); - new_storage.insert(U256::from(1234568), U256::from(5)); + new_storage.insert(U256::from(1234568).into(), U256::from(5).into()); new_state.accounts.insert( test_addr, diff --git a/crates/anvil/src/eth/backend/mem/mod.rs b/crates/anvil/src/eth/backend/mem/mod.rs index dd10c672fc37..6a0aeadeea9e 100644 --- a/crates/anvil/src/eth/backend/mem/mod.rs +++ b/crates/anvil/src/eth/backend/mem/mod.rs @@ -576,7 +576,7 @@ impl Backend { slot: U256, val: B256, ) -> DatabaseResult<()> { - self.db.write().await.set_storage_at(address, slot, U256::from_be_bytes(val.0)) + self.db.write().await.set_storage_at(address, slot.into(), val) } /// Returns the configured specid @@ -2498,7 +2498,7 @@ impl Backend { self.db.write().await.clear(); for (address, acc) in common_state { for (key, value) in acc.storage { - self.db.write().await.set_storage_at(address, key, value)?; + self.db.write().await.set_storage_at(address, key.into(), value.into())?; } self.db.write().await.insert_account(address, acc.info); }