Skip to content

Commit fa33eff

Browse files
committed
wip
1 parent 1e3cf74 commit fa33eff

File tree

3 files changed

+9
-19
lines changed

3 files changed

+9
-19
lines changed

crates/pool/pool-api/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ pub enum PoolError {
3030
pub type PoolResult<T> = Result<T, PoolError>;
3131

3232
/// Represents a complete transaction pool.
33-
pub trait TransactionPool {
33+
pub trait TransactionPool: Send + Sync + 'static {
3434
/// The pool's transaction type.
3535
type Transaction: PoolTransaction;
3636

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

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use katana_primitives::Felt;
1717
use katana_provider::api::block::{BlockHashProvider, BlockIdReader, BlockNumberProvider};
1818
use katana_provider::api::contract::ContractClassProvider;
1919
use katana_provider::api::env::BlockEnvProvider;
20+
use katana_provider::api::pending::PendingBlockProvider;
2021
use katana_provider::api::state::{StateFactoryProvider, StateProvider, StateRootProvider};
2122
use katana_provider::api::transaction::{
2223
ReceiptProvider, TransactionProvider, TransactionStatusProvider, TransactionsProviderExt,
@@ -79,8 +80,9 @@ pub struct StarknetApi<P: TransactionPool> {
7980

8081
#[derive(Debug)]
8182
struct StarknetApiInner<P: TransactionPool> {
82-
pool: P,
8383
chain_spec: Arc<ChainSpec>,
84+
pool: P,
85+
pending_provider: Arc<dyn PendingBlockProvider>,
8486
storage: BlockchainProvider<Box<dyn Database>>,
8587
forked_client: Option<ForkedClient>,
8688
task_spawner: TaskSpawner,
@@ -110,10 +112,7 @@ impl<P: TransactionPool> StarknetApi<P> {
110112
}
111113
}
112114

113-
impl<P> StarknetApi<P>
114-
where
115-
P: TransactionPool + Send + Sync + 'static,
116-
{
115+
impl<P: TransactionPool> StarknetApi<P> {
117116
pub fn new(
118117
chain_spec: Arc<ChainSpec>,
119118
storage: BlockchainProvider<Box<dyn Database>>,
@@ -1027,10 +1026,7 @@ where
10271026
// `StarknetApiExt` Implementations
10281027
/////////////////////////////////////////////////////
10291028

1030-
impl<P> StarknetApi<P>
1031-
where
1032-
P: TransactionPool + Send + Sync + 'static,
1033-
{
1029+
impl<P: TransactionPool> StarknetApi<P> {
10341030
async fn blocks(&self, request: GetBlocksRequest) -> StarknetApiResult<GetBlocksResponse> {
10351031
self.on_io_blocking_task(move |this| {
10361032
let provider = &this.inner.storage;
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,21 @@
11
use katana_primitives::block::PartialHeader;
22
use katana_primitives::env::BlockEnv;
33
use katana_primitives::receipt::Receipt;
4+
use katana_primitives::state::StateUpdates;
45
use katana_primitives::transaction::{TxHash, TxWithHash};
56

67
use crate::state::StateProvider;
78
use crate::ProviderResult;
89

910
#[auto_impl::auto_impl(&, Box, Arc)]
10-
pub trait PendingDataProvider: Send + Sync {
11-
fn state(&self) -> ProviderResult<Option<Box<dyn StateProvider>>>;
12-
13-
// returns block header, transactions, and receipts
11+
pub trait PendingBlockProvider: Send + Sync {
1412
fn block_header(&self) -> ProviderResult<Option<PartialHeader>>;
1513

1614
fn block_env(&self) -> ProviderResult<Option<BlockEnv>>;
1715

18-
fn block_transaction_count(&self) -> ProviderResult<Option<u64>>;
19-
20-
fn transaction_by_block_id_and_index(&self) -> ProviderResult<Option<TxWithHash>>;
21-
2216
fn transaction(&self, hash: TxHash) -> ProviderResult<Option<TxWithHash>>;
2317

2418
fn receipt(&self, hash: TxHash) -> ProviderResult<Option<Receipt>>;
2519

26-
fn state_update(&self) -> ProviderResult<Option<()>>;
20+
fn state_update(&self) -> ProviderResult<Option<StateUpdates>>;
2721
}

0 commit comments

Comments
 (0)