@@ -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