Skip to content

Commit d8ec836

Browse files
committed
wip
1 parent f15d6d7 commit d8ec836

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

crates/storage/provider/provider/src/providers/db/state.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ impl<Tx: DbTxMut> ContractClassWriter for DbProvider<Tx> {
8686

8787
impl<Tx: DbTx> StateFactoryProvider for DbProvider<Tx> {
8888
fn latest(&self) -> ProviderResult<Box<dyn StateProvider>> {
89-
Ok(Box::new(LatestStateProvider(self.0.clone())))
89+
Ok(Box::new(LatestStateProvider(self.clone())))
9090
}
9191

9292
fn historical(
@@ -115,7 +115,7 @@ impl<Tx: DbTx> StateFactoryProvider for DbProvider<Tx> {
115115

116116
/// A state provider that provides the latest states from the database.
117117
#[derive(Debug)]
118-
pub(crate) struct LatestStateProvider<Tx: DbTx>(pub(crate) Tx);
118+
pub(crate) struct LatestStateProvider<Tx: DbTx>(pub(crate) DbProvider<Tx>);
119119

120120
impl<Tx: DbTx> ContractClassProvider for LatestStateProvider<Tx> {
121121
fn class(&self, hash: ClassHash) -> ProviderResult<Option<ContractClass>> {
@@ -161,7 +161,7 @@ impl<Tx: DbTx> StateProvider for LatestStateProvider<Tx> {
161161

162162
impl<Tx: DbTx> StateProofProvider for LatestStateProvider<Tx> {
163163
fn class_multiproof(&self, classes: Vec<ClassHash>) -> ProviderResult<katana_trie::MultiProof> {
164-
let mut trie = TrieDbFactory::new(&self.0).latest().classes_trie();
164+
let mut trie = TrieDbFactory::new(self.0.tx()).latest().classes_trie();
165165
let proofs = trie.multiproof(classes);
166166
Ok(proofs)
167167
}
@@ -170,7 +170,7 @@ impl<Tx: DbTx> StateProofProvider for LatestStateProvider<Tx> {
170170
&self,
171171
addresses: Vec<ContractAddress>,
172172
) -> ProviderResult<katana_trie::MultiProof> {
173-
let mut trie = TrieDbFactory::new(&self.0).latest().contracts_trie();
173+
let mut trie = TrieDbFactory::new(self.0.tx()).latest().contracts_trie();
174174
let proofs = trie.multiproof(addresses);
175175
Ok(proofs)
176176
}
@@ -180,25 +180,25 @@ impl<Tx: DbTx> StateProofProvider for LatestStateProvider<Tx> {
180180
address: ContractAddress,
181181
storage_keys: Vec<StorageKey>,
182182
) -> ProviderResult<katana_trie::MultiProof> {
183-
let mut trie = TrieDbFactory::new(&self.0).latest().storages_trie(address);
183+
let mut trie = TrieDbFactory::new(self.0.tx()).latest().storages_trie(address);
184184
let proofs = trie.multiproof(storage_keys);
185185
Ok(proofs)
186186
}
187187
}
188188

189189
impl<Tx: DbTx> StateRootProvider for LatestStateProvider<Tx> {
190190
fn classes_root(&self) -> ProviderResult<Felt> {
191-
let trie = TrieDbFactory::new(&self.0).latest().classes_trie();
191+
let trie = TrieDbFactory::new(self.0.tx()).latest().classes_trie();
192192
Ok(trie.root())
193193
}
194194

195195
fn contracts_root(&self) -> ProviderResult<Felt> {
196-
let trie = TrieDbFactory::new(&self.0).latest().contracts_trie();
196+
let trie = TrieDbFactory::new(self.0.tx()).latest().contracts_trie();
197197
Ok(trie.root())
198198
}
199199

200200
fn storage_root(&self, contract: ContractAddress) -> ProviderResult<Option<Felt>> {
201-
let trie = TrieDbFactory::new(&self.0).latest().storages_trie(contract);
201+
let trie = TrieDbFactory::new(self.0.tx()).latest().storages_trie(contract);
202202
Ok(Some(trie.root()))
203203
}
204204
}

crates/storage/provider/provider/src/providers/fork/state.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use crate::ProviderResult;
2323

2424
impl<Tx1: DbTx, Tx2: DbTxMut> StateFactoryProvider for ForkedProvider<Tx1, Tx2> {
2525
fn latest(&self) -> ProviderResult<Box<dyn StateProvider>> {
26-
let local_provider = db::state::LatestStateProvider(self.local_db.tx().clone());
26+
let local_provider = db::state::LatestStateProvider(self.local_db.clone());
2727
let fork_provider = self.fork_db.clone();
2828
Ok(Box::new(LatestStateProvider { local_provider, fork_provider }))
2929
}
@@ -178,7 +178,7 @@ impl<Tx1: DbTx, Tx2: DbTxMut> StateProvider for LatestStateProvider<Tx1, Tx2> {
178178
impl<Tx1: DbTx, Tx2: DbTxMut> StateProofProvider for LatestStateProvider<Tx1, Tx2> {
179179
fn class_multiproof(&self, classes: Vec<ClassHash>) -> ProviderResult<katana_trie::MultiProof> {
180180
let fork_point = self.fork_provider.block_id;
181-
let latest_block_number = match self.local_provider.latest_number() {
181+
let latest_block_number = match self.local_provider.0.latest_number() {
182182
Ok(num) => num,
183183
// return the fork block number if local db return this error. this can only happen whne
184184
// the ForkedProvider is constructed without inserting any locally produced
@@ -202,7 +202,7 @@ impl<Tx1: DbTx, Tx2: DbTxMut> StateProofProvider for LatestStateProvider<Tx1, Tx
202202
addresses: Vec<ContractAddress>,
203203
) -> ProviderResult<katana_trie::MultiProof> {
204204
let fork_point = self.fork_provider.block_id;
205-
let latest_block_number = match self.local_provider.latest_number() {
205+
let latest_block_number = match self.local_provider.0.latest_number() {
206206
Ok(num) => num,
207207
// return the fork block number if local db return this error. this can only happen whne
208208
// the ForkedProvider is constructed without inserting any locally produced
@@ -227,7 +227,7 @@ impl<Tx1: DbTx, Tx2: DbTxMut> StateProofProvider for LatestStateProvider<Tx1, Tx
227227
storage_keys: Vec<StorageKey>,
228228
) -> ProviderResult<katana_trie::MultiProof> {
229229
let fork_point = self.fork_provider.block_id;
230-
let latest_block_number = match self.local_provider.latest_number() {
230+
let latest_block_number = match self.local_provider.0.latest_number() {
231231
Ok(num) => num,
232232
// return the fork block number if local db return this error. this can only happen whne
233233
// the ForkedProvider is constructed without inserting any locally produced
@@ -253,7 +253,7 @@ impl<Tx1: DbTx, Tx2: DbTxMut> StateProofProvider for LatestStateProvider<Tx1, Tx
253253
impl<Tx1: DbTx, Tx2: DbTxMut> StateRootProvider for LatestStateProvider<Tx1, Tx2> {
254254
fn classes_root(&self) -> ProviderResult<Felt> {
255255
let fork_point = self.fork_provider.block_id;
256-
let latest_block_number = match self.local_provider.latest_number() {
256+
let latest_block_number = match self.local_provider.0.latest_number() {
257257
Ok(num) => num,
258258
// return the fork block number if local db return this error. this can only happen whne
259259
// the ForkedProvider is constructed without inserting any locally produced
@@ -274,7 +274,7 @@ impl<Tx1: DbTx, Tx2: DbTxMut> StateRootProvider for LatestStateProvider<Tx1, Tx2
274274

275275
fn contracts_root(&self) -> ProviderResult<Felt> {
276276
let fork_point = self.fork_provider.block_id;
277-
let latest_block_number = match self.local_provider.latest_number() {
277+
let latest_block_number = match self.local_provider.0.latest_number() {
278278
Ok(num) => num,
279279
// return the fork block number if local db return this error. this can only happen whne
280280
// the ForkedProvider is constructed without inserting any locally produced
@@ -295,7 +295,7 @@ impl<Tx1: DbTx, Tx2: DbTxMut> StateRootProvider for LatestStateProvider<Tx1, Tx2
295295

296296
fn storage_root(&self, contract: ContractAddress) -> ProviderResult<Option<Felt>> {
297297
let fork_point = self.fork_provider.block_id;
298-
let latest_block_number = match self.local_provider.latest_number() {
298+
let latest_block_number = match self.local_provider.0.latest_number() {
299299
Ok(num) => num,
300300
// return the fork block number if local db return this error. this can only happen whne
301301
// the ForkedProvider is constructed without inserting any locally produced

0 commit comments

Comments
 (0)