Skip to main content

avalanche_types/subnet/rpc/
context.rs

1//! Snow Context.
2use crate::{
3    ids::node::Id as NodeId,
4    ids::Id,
5    proto::pb::{
6        aliasreader::alias_reader_client::AliasReaderClient,
7        keystore::keystore_client::KeystoreClient,
8        sharedmemory::shared_memory_client::SharedMemoryClient,
9    },
10};
11use tonic::transport::Channel;
12
13use super::snow::validators;
14
15/// ref. <https://pkg.go.dev/github.com/ava-labs/avalanchego/snow#Context>
16#[derive(Debug, Clone)]
17pub struct Context<S: validators::State> {
18    pub network_id: u32,
19    pub subnet_id: Id,
20    pub chain_id: Id,
21    pub node_id: NodeId,
22    pub x_chain_id: Id,
23    pub c_chain_id: Id,
24    pub avax_asset_id: Id,
25    pub keystore: KeystoreClient<Channel>,
26    pub shared_memory: SharedMemoryClient<Channel>,
27    pub bc_lookup: AliasReaderClient<Channel>,
28    pub chain_data_dir: String,
29    pub validator_state: S,
30    // TODO metrics
31}