Skip to content

Commit 83390a4

Browse files
committed
Simplify flashblocks provider wiring
1 parent 788330e commit 83390a4

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

crates/test-utils/src/node.rs

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ struct FlashblocksNodeExtensionsInner {
8888
sender: mpsc::Sender<(Flashblock, oneshot::Sender<()>)>,
8989
receiver: Arc<Mutex<Option<mpsc::Receiver<(Flashblock, oneshot::Sender<()>)>>>>,
9090
fb_cell: Arc<OnceCell<Arc<LocalFlashblocksState>>>,
91-
provider_cell: Arc<OnceCell<LocalNodeProvider>>,
9291
process_canonical: bool,
9392
}
9493

@@ -99,28 +98,24 @@ impl FlashblocksNodeExtensions {
9998
sender,
10099
receiver: Arc::new(Mutex::new(Some(receiver))),
101100
fb_cell: Arc::new(OnceCell::new()),
102-
provider_cell: Arc::new(OnceCell::new()),
103101
process_canonical,
104102
};
105103
Self { inner: Arc::new(inner) }
106104
}
107105

108106
fn apply(&self, builder: OpBuilder) -> OpBuilder {
109107
let fb_cell = self.inner.fb_cell.clone();
110-
let provider_cell = self.inner.provider_cell.clone();
111108
let receiver = self.inner.receiver.clone();
112109
let process_canonical = self.inner.process_canonical;
113110

114111
let fb_cell_for_exex = fb_cell.clone();
115-
let provider_cell_for_exex = provider_cell.clone();
116112

117113
builder
118114
.install_exex("flashblocks-canon", move |mut ctx| {
119115
let fb_cell = fb_cell_for_exex.clone();
120-
let provider_cell = provider_cell_for_exex.clone();
121116
let process_canonical = process_canonical;
122117
async move {
123-
let provider = provider_cell.get_or_init(|| ctx.provider().clone()).clone();
118+
let provider = ctx.provider().clone();
124119
let fb = init_flashblocks_state(&fb_cell, &provider);
125120
Ok(async move {
126121
while let Some(note) = ctx.notifications.try_next().await? {
@@ -143,20 +138,16 @@ impl FlashblocksNodeExtensions {
143138
})
144139
.extend_rpc_modules(move |ctx| {
145140
let fb_cell = fb_cell.clone();
146-
let provider_cell = provider_cell.clone();
147-
let provider = provider_cell.get_or_init(|| ctx.provider().clone()).clone();
141+
let provider = ctx.provider().clone();
148142
let fb = init_flashblocks_state(&fb_cell, &provider);
149143

150-
let provider_for_task = provider.clone();
151144
let mut canon_stream = tokio_stream::wrappers::BroadcastStream::new(
152145
ctx.provider().subscribe_to_canonical_state(),
153146
);
154147
tokio::spawn(async move {
155148
use tokio_stream::StreamExt;
156149
while let Some(Ok(notification)) = canon_stream.next().await {
157-
provider_for_task
158-
.canonical_in_memory_state()
159-
.notify_canon_state(notification);
150+
provider.canonical_in_memory_state().notify_canon_state(notification);
160151
}
161152
});
162153
let api_ext = EthApiExt::new(

0 commit comments

Comments
 (0)