@@ -73,6 +73,7 @@ pub mod store;
7373use {
7474 self :: {
7575 config:: Config ,
76+ metrics:: PROMETHEUS_REGISTRY ,
7677 pythd:: {
7778 adapter:: notifier,
7879 api:: rpc,
@@ -118,26 +119,29 @@ impl Agent {
118119 // Create the channels
119120 // TODO: make all components listen to shutdown signal
120121 let ( shutdown_tx, _) = broadcast:: channel ( self . config . channel_capacities . shutdown ) ;
121- let ( primary_oracle_updates_tx, primary_oracle_updates_rx) =
122- mpsc:: channel ( self . config . channel_capacities . primary_oracle_updates ) ;
123- let ( secondary_oracle_updates_tx, secondary_oracle_updates_rx) =
124- mpsc:: channel ( self . config . channel_capacities . secondary_oracle_updates ) ;
125- let ( global_store_lookup_tx, global_store_lookup_rx) =
126- mpsc:: channel ( self . config . channel_capacities . global_store_lookup ) ;
127122 let ( local_store_tx, local_store_rx) =
128123 mpsc:: channel ( self . config . channel_capacities . local_store ) ;
129124 let ( primary_keypair_loader_tx, primary_keypair_loader_rx) = mpsc:: channel ( 10 ) ;
130125 let ( secondary_keypair_loader_tx, secondary_keypair_loader_rx) = mpsc:: channel ( 10 ) ;
131126
127+ let mut registry = PROMETHEUS_REGISTRY . lock ( ) . await ;
128+
129+ // Create the Pythd Adapter.
130+ let adapter = Arc :: new ( pythd:: adapter:: Adapter :: new (
131+ self . config . pythd_adapter . clone ( ) ,
132+ local_store_tx. clone ( ) ,
133+ logger. clone ( ) ,
134+ & mut registry,
135+ ) ) ;
136+
132137 // Spawn the primary network
133138 jhs. extend ( network:: spawn_network (
134139 self . config . primary_network . clone ( ) ,
135140 network:: Network :: Primary ,
136141 local_store_tx. clone ( ) ,
137- global_store_lookup_tx. clone ( ) ,
138- primary_oracle_updates_tx,
139142 primary_keypair_loader_tx,
140143 logger. new ( o ! ( "primary" => true ) ) ,
144+ adapter. clone ( ) ,
141145 ) ?) ;
142146
143147 // Spawn the secondary network, if needed
@@ -146,53 +150,35 @@ impl Agent {
146150 config. clone ( ) ,
147151 network:: Network :: Secondary ,
148152 local_store_tx. clone ( ) ,
149- global_store_lookup_tx. clone ( ) ,
150- secondary_oracle_updates_tx,
151153 secondary_keypair_loader_tx,
152154 logger. new ( o ! ( "primary" => false ) ) ,
155+ adapter. clone ( ) ,
153156 ) ?) ;
154157 }
155158
156- // Create the Pythd Adapter.
157- let adapter = Arc :: new ( pythd:: adapter:: Adapter :: new (
158- self . config . pythd_adapter . clone ( ) ,
159- global_store_lookup_tx. clone ( ) ,
160- local_store_tx. clone ( ) ,
161- logger. clone ( ) ,
162- ) ) ;
163-
164159 // Create the Notifier task for the Pythd RPC.
165160 jhs. push ( tokio:: spawn ( notifier (
166161 adapter. clone ( ) ,
167162 shutdown_tx. subscribe ( ) ,
168163 ) ) ) ;
169164
170- // Spawn the Global Store
171- jhs. push ( store:: global:: spawn_store (
172- global_store_lookup_rx,
173- primary_oracle_updates_rx,
174- secondary_oracle_updates_rx,
175- adapter. clone ( ) ,
176- logger. clone ( ) ,
177- ) ) ;
178-
179165 // Spawn the Local Store
180166 jhs. push ( store:: local:: spawn_store ( local_store_rx, logger. clone ( ) ) ) ;
181167
182168 // Spawn the Pythd API Server
183169 jhs. push ( tokio:: spawn ( rpc:: run (
184170 self . config . pythd_api_server . clone ( ) ,
185171 logger. clone ( ) ,
186- adapter,
172+ adapter. clone ( ) ,
187173 shutdown_tx. subscribe ( ) ,
188174 ) ) ) ;
189175
190176 // Spawn the metrics server
191177 jhs. push ( tokio:: spawn ( metrics:: MetricsServer :: spawn (
192178 self . config . metrics_server . bind_address ,
193179 local_store_tx,
194- global_store_lookup_tx,
195180 logger. clone ( ) ,
181+ adapter,
196182 ) ) ) ;
197183
198184 // Spawn the remote keypair loader endpoint for both networks
0 commit comments