diff --git a/backend/Cargo.lock b/backend/Cargo.lock index bfb5c24..36ffa80 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -1693,6 +1693,7 @@ dependencies = [ "clap", "ctor", "fnv", + "hex", "log", "num-traits", "parking_lot", diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 6a1c8c1..739d66b 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -13,6 +13,7 @@ actix-http = "3.0.0-beta.4" bytes = "1.0.1" chrono = { version = "0.4", features = ["serde"] } fnv = "1.0.7" +hex = "0.4.3" serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0", features = ["raw_value"] } primitive-types = { version = "0.9.0", features = ["serde"] } diff --git a/backend/src/aggregator.rs b/backend/src/aggregator.rs index 205899d..e34a9ba 100644 --- a/backend/src/aggregator.rs +++ b/backend/src/aggregator.rs @@ -1,29 +1,32 @@ -use std::collections::{HashMap, HashSet}; use actix::prelude::*; -use actix_web_actors::ws::{CloseReason, CloseCode}; +use actix_web_actors::ws::{CloseCode, CloseReason}; use ctor::ctor; +use std::collections::{HashMap, HashSet}; -use crate::node::connector::{Mute, NodeConnector}; -use crate::feed::connector::{FeedConnector, Connected, FeedId}; -use crate::util::DenseMap; +use crate::chain::{self, Chain, ChainId, GetNodeNetworkState, Label}; +use crate::feed::connector::{Connected, FeedConnector, FeedId}; use crate::feed::{self, FeedMessageSerializer}; -use crate::chain::{self, Chain, ChainId, Label, GetNodeNetworkState}; +use crate::node::connector::{Mute, NodeConnector}; use crate::types::{ConnId, NodeDetails, NodeId}; +use crate::util::{DenseMap, Hash}; pub struct Aggregator { + genesis_hashes: HashMap, labels: HashMap, - networks: HashMap, chains: DenseMap, feeds: DenseMap>, serializer: FeedMessageSerializer, /// Denylist for networks we do not want to allow connecting. - denylist: HashSet + denylist: HashSet, } pub struct ChainEntry { + /// Address to the `Chain` agent addr: Addr, + /// Genesis [`Hash`] of the chain + genesis_hash: Hash, + /// String name of the chain label: Label, - network_id: Option