setting initial provider values at construction

This commit is contained in:
Jędrzej Stuczyński
2023-10-26 16:06:56 +01:00
parent 527fc5dfdd
commit 81548eba3f
2 changed files with 17 additions and 8 deletions
@@ -40,20 +40,26 @@ pub struct AllowedAddressesProvider {
}
impl AllowedAddressesProvider {
pub fn new(
pub async fn new(
identity: IdentityKey,
nyxd_endpoints: Vec<Url>,
network_details: Option<NymNetworkDetails>,
) -> Result<Self, ForwardTravelError> {
let network = network_details.unwrap_or(NymNetworkDetails::new_mainnet());
Ok(AllowedAddressesProvider {
let mut provider = AllowedAddressesProvider {
current_epoch: 0,
identity,
client_config: nyxd::Config::try_from_nym_network_details(&network)?,
nyxd_endpoints,
ingress: AllowedPaths::new(),
egress: AllowedPaths::new(),
})
};
// set initial values for ingress/egress
let client = provider.ephemeral_nyxd_client()?;
provider.update_state(client).await?;
Ok(provider)
}
fn ephemeral_nyxd_client(&self) -> Result<QueryHttpRpcNyxdClient, ForwardTravelError> {
+8 -5
View File
@@ -121,7 +121,7 @@ impl MixNode {
Listener::new(listening_address, ingress, shutdown).start(connection_handler);
}
fn start_allowed_addresses_provider(
async fn start_allowed_addresses_provider(
&self,
task_client: TaskClient,
) -> Result<(AllowedIngress, AllowedEgress), MixnodeError> {
@@ -129,7 +129,8 @@ impl MixNode {
let nyxd_endpoints = self.config.mixnode.nyxd_urls.clone();
let network = NymNetworkDetails::new_from_env();
let mut provider = AllowedAddressesProvider::new(identity, nyxd_endpoints, Some(network))?;
let mut provider =
AllowedAddressesProvider::new(identity, nyxd_endpoints, Some(network)).await?;
let filters = (provider.ingress(), provider.egress());
@@ -252,9 +253,11 @@ impl MixNode {
let shutdown = TaskManager::default();
let (ingress, egress) = self.start_allowed_addresses_provider(
shutdown.subscribe().named("AllowedAddressesProvider"),
)?;
let (ingress, egress) = self
.start_allowed_addresses_provider(
shutdown.subscribe().named("AllowedAddressesProvider"),
)
.await?;
let (node_stats_pointer, node_stats_update_sender) = self
.start_node_stats_controller(shutdown.subscribe().named("node_statistics::Controller"));