1
// Copyright 2019-2025 PureStake Inc.
2
// This file is part of Moonbeam.
3

            
4
// Moonbeam 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
// Moonbeam 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 Moonbeam.  If not, see <http://www.gnu.org/licenses/>.
16

            
17
#![allow(clippy::todo)]
18

            
19
/// Fake specifications, only a workaround to compile with runtime optional features.
20
/// It's a zero variant enum to ensure at compile time that we never instantiate this type.
21
pub enum FakeSpec {}
22

            
23
impl FakeSpec {
24
	/// Parse json file into a `ChainSpec`
25
	pub fn from_json_file(_path: std::path::PathBuf) -> Result<Self, String> {
26
		unimplemented!()
27
	}
28
}
29

            
30
impl sp_runtime::BuildStorage for FakeSpec {
31
	fn assimilate_storage(&self, _storage: &mut sp_core::storage::Storage) -> Result<(), String> {
32
		todo!()
33
	}
34
}
35

            
36
impl sc_service::ChainSpec for FakeSpec {
37
	fn name(&self) -> &str {
38
		todo!()
39
	}
40

            
41
	fn id(&self) -> &str {
42
		todo!()
43
	}
44

            
45
	fn chain_type(&self) -> sc_chain_spec::ChainType {
46
		todo!()
47
	}
48

            
49
	fn boot_nodes(&self) -> &[sc_network::config::MultiaddrWithPeerId] {
50
		todo!()
51
	}
52

            
53
	fn telemetry_endpoints(&self) -> &Option<sc_telemetry::TelemetryEndpoints> {
54
		todo!()
55
	}
56

            
57
	fn protocol_id(&self) -> Option<&str> {
58
		todo!()
59
	}
60

            
61
	fn fork_id(&self) -> Option<&str> {
62
		todo!()
63
	}
64

            
65
	fn properties(&self) -> sc_chain_spec::Properties {
66
		todo!()
67
	}
68

            
69
	fn extensions(&self) -> &dyn sc_chain_spec::GetExtension {
70
		todo!()
71
	}
72

            
73
	fn extensions_mut(&mut self) -> &mut dyn sc_chain_spec::GetExtension {
74
		todo!()
75
	}
76

            
77
	fn add_boot_node(&mut self, _addr: sc_network::config::MultiaddrWithPeerId) {
78
		todo!()
79
	}
80

            
81
	fn as_json(&self, _raw: bool) -> Result<String, String> {
82
		todo!()
83
	}
84

            
85
	fn as_storage_builder(&self) -> &dyn sp_runtime::BuildStorage {
86
		todo!()
87
	}
88

            
89
	fn cloned_box(&self) -> Box<dyn polkadot_service::ChainSpec> {
90
		todo!()
91
	}
92

            
93
	fn set_storage(&mut self, _storage: sp_runtime::Storage) {
94
		todo!()
95
	}
96

            
97
	fn code_substitutes(&self) -> std::collections::BTreeMap<String, Vec<u8>> {
98
		todo!()
99
	}
100
}