polkadot_collator_protocol/validator_side_experimental/state.rs
1// Copyright (C) Parity Technologies (UK) Ltd.
2// This file is part of Polkadot.
3
4// Polkadot is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8
9// Polkadot is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13
14// You should have received a copy of the GNU General Public License
15// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
16
17use crate::validator_side_experimental::{peer_manager::Backend, Metrics, PeerManager};
18use sp_keystore::KeystorePtr;
19
20/// All state relevant for the validator side of the protocol lives here.
21pub struct State<B> {
22 peer_manager: PeerManager<B>,
23 keystore: KeystorePtr,
24 metrics: Metrics,
25}
26
27impl<B: Backend> State<B> {
28 /// Instantiate a new subsystem `State`.
29 pub fn new(peer_manager: PeerManager<B>, keystore: KeystorePtr, metrics: Metrics) -> Self {
30 Self { peer_manager, keystore, metrics }
31 }
32}