Skip to content

Commit 9a3ebe4

Browse files
committed
integrate pending provider
1 parent e0cf602 commit 9a3ebe4

File tree

5 files changed

+38
-15
lines changed

5 files changed

+38
-15
lines changed

crates/node/src/full/pending/provider.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ impl<P: StateFactoryProvider + Debug> PendingBlockProvider for PreconfStateFacto
2626
number: 0,
2727
parent_hash: Felt::ZERO,
2828
},
29-
body: preconf_block
29+
transactions: preconf_block
3030
.transactions
3131
.clone()
3232
.into_iter()

crates/oracle/gas/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub use sampled::{SampledPriceOracle, Sampler};
1717

1818
use crate::sampled::starknet::{StarknetGatewaySampler, StarknetJsonRpcSampler};
1919

20-
#[derive(Debug)]
20+
#[derive(Debug, Clone)]
2121
pub enum GasPriceOracle {
2222
Fixed(fixed::FixedPriceOracle),
2323
Sampled(sampled::SampledPriceOracle<Box<dyn Sampler + 'static>>),

crates/oracle/gas/src/sampled/mod.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,17 @@ pub trait Sampler: Debug + Send + Sync {
2323
fn sample(&self) -> BoxFuture<'_, anyhow::Result<SampledPrices>>;
2424
}
2525

26-
#[derive(Debug, Clone)]
26+
#[derive(Debug)]
2727
pub struct SampledPriceOracle<S: Sampler> {
2828
inner: Arc<SampledPriceOracleInner<S>>,
2929
}
3030

31+
impl<S: Sampler> Clone for SampledPriceOracle<S> {
32+
fn clone(&self) -> Self {
33+
Self { inner: self.inner.clone() }
34+
}
35+
}
36+
3137
#[derive(Debug)]
3238
struct SampledPriceOracleInner<S> {
3339
samples: Mutex<Samples>,

crates/primitives/src/block.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use starknet::macros::short_string;
88

99
use crate::contract::ContractAddress;
1010
use crate::da::L1DataAvailabilityMode;
11+
use crate::receipt::Receipt;
1112
use crate::transaction::{ExecutableTxWithHash, TxHash, TxWithHash};
1213
use crate::version::StarknetVersion;
1314
use crate::Felt;
@@ -121,7 +122,8 @@ pub struct PartialHeader {
121122
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
122123
pub struct PendingBlock {
123124
pub header: PartialHeader,
124-
pub body: Vec<TxWithHash>,
125+
pub transactions: Vec<TxWithHash>,
126+
pub receipts: Vec<Receipt>,
125127
}
126128

127129
#[derive(Debug, Copy, Clone, PartialEq, Eq)]

crates/rpc/rpc/src/starknet/mod.rs

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,14 @@ use katana_rpc_types::trie::{
4848
ClassesProof, ContractLeafData, ContractStorageKeys, ContractStorageProofs, ContractsProof,
4949
GetStorageProofResponse, GlobalRoots, Nodes,
5050
};
51-
use katana_rpc_types::{FeeEstimate, TxStatus};
51+
use katana_rpc_types::{
52+
FeeEstimate, PreConfirmedBlockWithReceipts, PreConfirmedBlockWithTxs, TxStatus,
53+
};
5254
use katana_rpc_types_builder::{BlockBuilder, ReceiptBuilder};
5355
use katana_tasks::{Result as TaskResult, TaskSpawner};
5456

5557
use crate::permit::Permits;
58+
use crate::starknet::pending::PendingBlockProvider2;
5659
use crate::utils::events::{Cursor, EventBlockId};
5760
use crate::{utils, DEFAULT_ESTIMATE_FEE_MAX_CONCURRENT_REQUESTS};
5861

@@ -341,7 +344,13 @@ where
341344
else {
342345
let num = provider.latest_number()?;
343346
let mut env = provider.block_env_at(num.into())?.expect("missing block env");
344-
self.inner.backend.update_block_env(&mut env);
347+
348+
env.number += 1;
349+
env.timestamp = get_current_timestamp().as_secs() as u64;
350+
env.l2_gas_prices = self.inner.gas_oracle.l2_gas_prices();
351+
env.l1_gas_prices = self.inner.gas_oracle.l1_gas_prices();
352+
env.l1_data_gas_prices = self.inner.gas_oracle.l1_data_gas_prices();
353+
345354
Some(env)
346355
}
347356
}
@@ -680,9 +689,11 @@ where
680689
.build()?
681690
.map(MaybePreConfirmedBlock::Confirmed);
682691

683-
StarknetApiResult::Ok(block)
684-
} else {
685-
StarknetApiResult::Ok(None)
692+
StarknetApiResult::Ok(block)
693+
} else {
694+
StarknetApiResult::Ok(None)
695+
}
696+
}
686697
}
687698
})
688699
.await??;
@@ -717,9 +728,11 @@ where
717728
.build_with_receipts()?
718729
.map(GetBlockWithReceiptsResponse::Block);
719730

720-
StarknetApiResult::Ok(block)
721-
} else {
722-
StarknetApiResult::Ok(None)
731+
StarknetApiResult::Ok(block)
732+
} else {
733+
StarknetApiResult::Ok(None)
734+
}
735+
}
723736
}
724737
})
725738
.await??;
@@ -754,9 +767,11 @@ where
754767
.build_with_tx_hash()?
755768
.map(GetBlockWithTxHashesResponse::Block);
756769

757-
StarknetApiResult::Ok(block)
758-
} else {
759-
StarknetApiResult::Ok(None)
770+
StarknetApiResult::Ok(block)
771+
} else {
772+
StarknetApiResult::Ok(None)
773+
}
774+
}
760775
}
761776
})
762777
.await??;

0 commit comments

Comments
 (0)