Coverage Report

Created: 2024-05-16 12:16

/__w/smoldot/smoldot/repo/lib/src/chain_spec/structs.rs
Line
Count
Source (jump to first uncovered line)
1
// Smoldot
2
// Copyright (C) 2019-2022  Parity Technologies (UK) Ltd.
3
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
4
5
// This program is free software: you can redistribute it and/or modify
6
// it under the terms of the GNU General Public License as published by
7
// the Free Software Foundation, either version 3 of the License, or
8
// (at your option) any later version.
9
10
// This program is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
// GNU General Public License for more details.
14
15
// You should have received a copy of the GNU General Public License
16
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18
//! Type definitions that implement the [`serde::Serialize`] and [`serde::Deserialize`] traits and
19
//! that match the chain specs JSON file structure.
20
//!
21
//! The main type is [`ClientSpec`].
22
23
use super::light_sync_state::LightSyncState;
24
25
use alloc::{boxed::Box, collections::BTreeMap, format, string::String, vec::Vec};
26
use fnv::FnvBuildHasher;
27
use hashbrown::{HashMap, HashSet};
28
use serde::{Deserialize, Serialize};
29
30
573
#[derive(Serialize, 
D301
eserialize, Clone, Debug)]
_RINvXs_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss_1__NtBa_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1f_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2G_4read9SliceReadEEBe_
Line
Count
Source
30
62
#[derive(Serialize, Deserialize, Clone, Debug)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2Q_4read9SliceReadEEBf_
_RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2Q_4read9SliceReadEEBf_
Line
Count
Source
30
70
#[derive(Serialize, 
D8
eserialize, Clone, Debug)]
_RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBc_
Line
Count
Source
30
62
#[derive(Serialize, Deserialize, Clone, Debug)]
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss_1__NtBa_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1h_7Visitor9expecting
Unexecuted instantiation: _RNvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss_1__NtB7_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1e_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2R_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2R_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBa_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1g_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2H_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtB7_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1f_7Visitor9expecting
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBa_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1i_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor9visit_strpEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBa_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1g_11deserializepEBe_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_seqpEBf_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_mappEBf_
_RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
30
20
#[derive(Serialize, Deserialize, Clone, Debug)]
_RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2R_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
30
22
#[derive(Serialize, 
D2
eserialize, Clone, Debug)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2R_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
_RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBa_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1g_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2H_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
30
20
#[derive(Serialize, Deserialize, Clone, Debug)]
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2R_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2R_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBa_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1g_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2H_4read9SliceReadEECscDgN54JpMGG_6author
_RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtB8_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
30
190
#[derive(Serialize, Deserialize, Clone, Debug)]
_RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2R_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
30
209
#[derive(Serialize, 
D19
eserialize, Clone, Debug)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBb_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2R_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
_RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss_1__NtBa_10ClientSpecNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1g_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2H_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
30
190
#[derive(Serialize, Deserialize, Clone, Debug)]
31
#[serde(rename_all = "camelCase")]
32
#[serde(deny_unknown_fields)]
33
pub(super) struct ClientSpec {
34
    pub(super) name: String,
35
    pub(super) id: String,
36
    #[serde(default)]
37
    pub(super) chain_type: ChainType,
38
39
    /// Mapping from a block number to a hex-encoded wasm runtime code (normally found in the
40
    /// `:code` storage key).
41
    ///
42
    /// The given runtime code will be used to substitute the on-chain runtime code starting with
43
    /// the given block number until the `spec_version`
44
    /// ([`crate::executor::host::CoreVersionRef::spec_version`]) on chain changes.
45
    #[serde(default, skip_serializing_if = "HashMap::is_empty")]
46
    // TODO: make use of this
47
    pub(super) code_substitutes: HashMap<u64, HexString, fnv::FnvBuildHasher>,
48
    pub(super) boot_nodes: Vec<String>,
49
    #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")]
50
    pub(super) telemetry_endpoints: Option<Vec<(String, u8)>>,
51
    #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")]
52
    pub(super) protocol_id: Option<String>,
53
    #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")]
54
    pub(super) fork_id: Option<String>,
55
    /// The `blockNumberBytes` field is (at the time of writing of this comment) a custom addition
56
    /// to the format of smoldot chain specs compared to Substrate. It is necessary because,
57
    /// contrary to Substrate, smoldot has no way to know the size of the block number field of
58
    /// various data structures. If the field is missing, a value of 4 is assumed.
59
    // TODO: revisit this field in the future to maybe bring compatibility with Substrate
60
    #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")]
61
    pub(super) block_number_bytes: Option<u8>,
62
    pub(super) properties: Option<Box<serde_json::value::RawValue>>,
63
    #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")]
64
    // TODO: make use of this
65
    pub(super) fork_blocks: Option<Vec<(u64, HashHexString)>>,
66
    #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")]
67
    pub(super) bad_blocks: Option<HashSet<HashHexString, FnvBuildHasher>>,
68
    // Unused but for some reason still part of the chain specs.
69
    #[serde(default, skip_serializing)]
70
    #[allow(unused)]
71
    pub(super) consensus_engine: (),
72
    pub(super) genesis: Genesis,
73
    #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")]
74
    pub(super) light_sync_state: Option<LightSyncState>,
75
    // Note that in Substrate/Cumulus this field is only named `relay_chain` and `relayChain` is
76
    // not accepted (as of 2022-06-09). This seems to be an oversight, as there are only two
77
    // fields that use snake_case while the rest uses camelCase. For this reason, smoldot
78
    // supports both.
79
    #[serde(alias = "relay_chain")]
80
    pub(super) relay_chain: Option<String>,
81
    // Same remark concerning the name as `relay_chain`
82
    #[serde(alias = "para_id")]
83
    pub(super) para_id: Option<u32>,
84
}
85
86
48
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
_RINvXs_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss1_1__NtBa_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1e_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2G_4read9SliceReadEEBe_
Line
Count
Source
86
3
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RNvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss1_1__NtB7_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1d_7Visitor9expecting
_RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1e_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBc_
Line
Count
Source
86
3
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1h_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2R_4read9SliceReadEEBf_
_RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1h_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2R_4read9SliceReadEEBf_
Line
Count
Source
86
3
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1e_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1e_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss1_1__NtBa_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1g_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2S_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2S_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBa_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1f_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2H_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtB7_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1e_7Visitor9expecting
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBa_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1h_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor9visit_strpEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBa_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1f_11deserializepEBe_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumpEBf_
_RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
86
2
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2S_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
_RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2S_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
86
2
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
_RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBa_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1f_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2H_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
86
2
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2S_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2S_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBa_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1f_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2H_4read9SliceReadEECscDgN54JpMGG_6author
_RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtB8_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1f_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
86
19
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2S_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
_RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBb_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1i_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2S_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
86
19
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
_RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss1_1__NtBa_9ChainTypeNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1f_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2H_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
86
19
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
87
pub(super) enum ChainType {
88
    Development,
89
    Local,
90
    Live,
91
    Custom(String),
92
}
93
94
impl Default for ChainType {
95
5
    fn default() -> Self {
96
5
        Self::Live
97
5
    }
_RNvXNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structsNtB2_9ChainTypeNtNtCsaYZPK01V26L_4core7default7Default7default
Line
Count
Source
95
5
    fn default() -> Self {
96
5
        Self::Live
97
5
    }
Unexecuted instantiation: _RNvXNtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB2_9ChainTypeNtNtCsaYZPK01V26L_4core7default7Default7default
98
}
99
100
58
#[derive(Debug, Clone, Serialize, Deserialize)]
_RINvXs_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss3_1__NtBa_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1c_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2E_4read9SliceReadEEBe_
Line
Count
Source
100
8
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RNvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss3_1__NtB7_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1b_7Visitor9expecting
_RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1c_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBc_
Line
Count
Source
100
8
#[derive(Debug, Clone, Serialize, Deserialize)]
_RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1f_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2P_4read9SliceReadEEBf_
Line
Count
Source
100
8
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1f_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2P_4read9SliceReadEEBf_
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1c_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1c_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss3_1__NtBa_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1e_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1d_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2Q_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2Q_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBa_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1d_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2F_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtB7_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1c_7Visitor9expecting
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBa_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1f_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1d_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1d_7Visitor9visit_strpEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1d_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBa_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1d_11deserializepEBe_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumpEBf_
_RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1d_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
100
2
#[derive(Debug, Clone, Serialize, Deserialize)]
_RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2Q_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
100
2
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2Q_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
_RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBa_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1d_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2F_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
100
2
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1d_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2Q_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2Q_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBa_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1d_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2F_4read9SliceReadEECscDgN54JpMGG_6author
_RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtB8_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1d_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
100
19
#[derive(Debug, Clone, Serialize, Deserialize)]
_RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de13VariantAccessNtNtB2Q_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
100
19
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBb_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1g_7Visitor10visit_enumINtNtCscu7pqq74Vb8_10serde_json2de17UnitVariantAccessNtNtB2Q_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
_RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss3_1__NtBa_7GenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1d_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB2F_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
100
19
#[derive(Debug, Clone, Serialize, Deserialize)]
101
#[serde(rename_all = "camelCase")]
102
#[serde(deny_unknown_fields)]
103
pub(super) enum Genesis {
104
    Raw(RawGenesis),
105
    StateRootHash(HashHexString),
106
}
107
108
145
#[derive(Debug, Clone, Serialize, 
D87
eserialize)]
_RINvXs_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss5_1__NtBa_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1g_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2H_4read9SliceReadEEBe_
Line
Count
Source
108
16
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2R_4read9SliceReadEEBf_
_RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1j_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2R_4read9SliceReadEEBf_
Line
Count
Source
108
24
#[derive(Debug, Clone, Serialize, 
D8
eserialize)]
_RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBc_
Line
Count
Source
108
16
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss5_1__NtBa_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1i_7Visitor9expecting
Unexecuted instantiation: _RNvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss5_1__NtB7_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1f_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1g_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1h_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2S_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2S_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBa_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1h_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2I_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtB7_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1g_7Visitor9expecting
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBa_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1j_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1h_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1h_7Visitor9visit_strpEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1h_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBa_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1h_11deserializepEBe_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_seqpEBf_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_mappEBf_
_RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1h_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
108
4
#[derive(Debug, Clone, Serialize, Deserialize)]
_RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2S_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
108
6
#[derive(Debug, Clone, Serialize, 
D2
eserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2S_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
_RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBa_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1h_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2I_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
108
4
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1h_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2S_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2S_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBa_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1h_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2I_4read9SliceReadEECscDgN54JpMGG_6author
_RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtB8_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1h_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
108
38
#[derive(Debug, Clone, Serialize, Deserialize)]
_RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2S_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
108
57
#[derive(Debug, Clone, Serialize, 
D19
eserialize)]
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBb_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1k_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2S_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
_RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss5_1__NtBa_10RawGenesisNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1h_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2I_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
108
38
#[derive(Debug, Clone, Serialize, Deserialize)]
109
#[serde(rename_all = "camelCase")]
110
#[serde(deny_unknown_fields)]
111
pub(super) struct RawGenesis {
112
    pub(super) top: BTreeMap<HexString, HexString>,
113
    pub(super) children_default: BTreeMap<HexString, ChildRawStorage>,
114
}
115
116
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
117
pub(super) struct HexString(pub(super) Vec<u8>);
118
119
impl core::borrow::Borrow<[u8]> for HexString {
120
7.32k
    fn borrow(&self) -> &[u8] {
121
7.32k
        &self.0
122
7.32k
    }
_RNvXs_NtNtCsN16ciHI6Qf_7smoldot10chain_spec7structsNtB4_9HexStringINtNtCsaYZPK01V26L_4core6borrow6BorrowShE6borrow
Line
Count
Source
120
1.02k
    fn borrow(&self) -> &[u8] {
121
1.02k
        &self.0
122
1.02k
    }
_RNvXs_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB4_9HexStringINtNtCsaYZPK01V26L_4core6borrow6BorrowShE6borrow
Line
Count
Source
120
6.30k
    fn borrow(&self) -> &[u8] {
121
6.30k
        &self.0
122
6.30k
    }
123
}
124
125
impl serde::Serialize for HexString {
126
0
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
127
0
    where
128
0
        S: serde::Serializer,
129
0
    {
130
0
        format!("0x{}", hex::encode(&self.0[..])).serialize(serializer)
131
0
    }
Unexecuted instantiation: _RINvXs0_NtNtCsN16ciHI6Qf_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializepEBa_
Unexecuted instantiation: _RINvXs0_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeINtNtCscu7pqq74Vb8_10serde_json3ser16MapKeySerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB1U_15PrettyFormatterEEBa_
Unexecuted instantiation: _RINvXs0_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB1V_15PrettyFormatterEEBa_
132
}
133
134
impl<'a> serde::Deserialize<'a> for HexString {
135
25.2k
    fn deserialize<D>(deserializer: D) -> Result<HexString, D::Error>
136
25.2k
    where
137
25.2k
        D: serde::Deserializer<'a>,
138
25.2k
    {
139
25.2k
        let string = String::deserialize(deserializer)
?0
;
140
141
25.2k
        if let Some(hex) = string.strip_prefix("0x") {
142
25.2k
            let bytes = hex::decode(hex).map_err(serde::de::Error::custom)
?0
;
143
25.2k
            return Ok(HexString(bytes));
144
0
        }
145
0
146
0
        Err(serde::de::Error::custom(
147
0
            "hexadecimal string doesn't start with 0x",
148
0
        ))
149
25.2k
    }
_RINvXs1_NtNtCsN16ciHI6Qf_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB20_4read9SliceReadEEBa_
Line
Count
Source
135
11.8k
    fn deserialize<D>(deserializer: D) -> Result<HexString, D::Error>
136
11.8k
    where
137
11.8k
        D: serde::Deserializer<'a>,
138
11.8k
    {
139
11.8k
        let string = String::deserialize(deserializer)
?0
;
140
141
11.8k
        if let Some(hex) = string.strip_prefix("0x") {
142
11.8k
            let bytes = hex::decode(hex).map_err(serde::de::Error::custom)
?0
;
143
11.8k
            return Ok(HexString(bytes));
144
0
        }
145
0
146
0
        Err(serde::de::Error::custom(
147
0
            "hexadecimal string doesn't start with 0x",
148
0
        ))
149
11.8k
    }
_RINvXs1_NtNtCsN16ciHI6Qf_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB21_4read9SliceReadEEBa_
Line
Count
Source
135
11.8k
    fn deserialize<D>(deserializer: D) -> Result<HexString, D::Error>
136
11.8k
    where
137
11.8k
        D: serde::Deserializer<'a>,
138
11.8k
    {
139
11.8k
        let string = String::deserialize(deserializer)
?0
;
140
141
11.8k
        if let Some(hex) = string.strip_prefix("0x") {
142
11.8k
            let bytes = hex::decode(hex).map_err(serde::de::Error::custom)
?0
;
143
11.8k
            return Ok(HexString(bytes));
144
0
        }
145
0
146
0
        Err(serde::de::Error::custom(
147
0
            "hexadecimal string doesn't start with 0x",
148
0
        ))
149
11.8k
    }
Unexecuted instantiation: _RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB21_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB22_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializepEBa_
_RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB21_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
135
70
    fn deserialize<D>(deserializer: D) -> Result<HexString, D::Error>
136
70
    where
137
70
        D: serde::Deserializer<'a>,
138
70
    {
139
70
        let string = String::deserialize(deserializer)
?0
;
140
141
70
        if let Some(hex) = string.strip_prefix("0x") {
142
70
            let bytes = hex::decode(hex).map_err(serde::de::Error::custom)
?0
;
143
70
            return Ok(HexString(bytes));
144
0
        }
145
0
146
0
        Err(serde::de::Error::custom(
147
0
            "hexadecimal string doesn't start with 0x",
148
0
        ))
149
70
    }
_RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB22_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Line
Count
Source
135
70
    fn deserialize<D>(deserializer: D) -> Result<HexString, D::Error>
136
70
    where
137
70
        D: serde::Deserializer<'a>,
138
70
    {
139
70
        let string = String::deserialize(deserializer)
?0
;
140
141
70
        if let Some(hex) = string.strip_prefix("0x") {
142
70
            let bytes = hex::decode(hex).map_err(serde::de::Error::custom)
?0
;
143
70
            return Ok(HexString(bytes));
144
0
        }
145
0
146
0
        Err(serde::de::Error::custom(
147
0
            "hexadecimal string doesn't start with 0x",
148
0
        ))
149
70
    }
Unexecuted instantiation: _RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB21_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB22_4read9SliceReadEECscDgN54JpMGG_6author
_RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB21_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
135
665
    fn deserialize<D>(deserializer: D) -> Result<HexString, D::Error>
136
665
    where
137
665
        D: serde::Deserializer<'a>,
138
665
    {
139
665
        let string = String::deserialize(deserializer)
?0
;
140
141
665
        if let Some(hex) = string.strip_prefix("0x") {
142
665
            let bytes = hex::decode(hex).map_err(serde::de::Error::custom)
?0
;
143
665
            return Ok(HexString(bytes));
144
0
        }
145
0
146
0
        Err(serde::de::Error::custom(
147
0
            "hexadecimal string doesn't start with 0x",
148
0
        ))
149
665
    }
_RINvXs1_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_9HexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB22_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Line
Count
Source
135
665
    fn deserialize<D>(deserializer: D) -> Result<HexString, D::Error>
136
665
    where
137
665
        D: serde::Deserializer<'a>,
138
665
    {
139
665
        let string = String::deserialize(deserializer)
?0
;
140
141
665
        if let Some(hex) = string.strip_prefix("0x") {
142
665
            let bytes = hex::decode(hex).map_err(serde::de::Error::custom)
?0
;
143
665
            return Ok(HexString(bytes));
144
0
        }
145
0
146
0
        Err(serde::de::Error::custom(
147
0
            "hexadecimal string doesn't start with 0x",
148
0
        ))
149
665
    }
150
}
151
152
0
#[derive(Debug, Clone, Serialize, Deserialize)]
Unexecuted instantiation: _RINvXs_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss7_1__NtBa_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1l_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2M_4read9SliceReadEEBe_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1o_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2W_4read9SliceReadEEBf_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1o_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2W_4read9SliceReadEEBf_
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1l_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBc_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss7_1__NtBa_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1n_7Visitor9expecting
Unexecuted instantiation: _RNvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss7_1__NtB7_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1k_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1l_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCsN16ciHI6Qf_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1l_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1m_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2X_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2X_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBa_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1m_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2N_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtB7_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1l_7Visitor9expecting
Unexecuted instantiation: _RNvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBa_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1o_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1m_7Visitor9visit_u64pEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1m_7Visitor9visit_strpEBc_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1m_7Visitor11visit_bytespEBc_
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBa_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1m_11deserializepEBe_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_seqpEBf_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_mappEBf_
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1m_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsiLzmwikkc22_14json_rpc_basic
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2X_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2X_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBa_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1m_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2N_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1m_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2X_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2X_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBa_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1m_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2N_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXNvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtB8_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1m_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorECsibGXYHQB8Ea_25json_rpc_general_requests
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_mapINtNtCscu7pqq74Vb8_10serde_json2de9MapAccessNtNtB2X_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Unexecuted instantiation: _RINvXs0_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBb_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1p_7Visitor9visit_seqINtNtCscu7pqq74Vb8_10serde_json2de9SeqAccessNtNtB2X_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
Unexecuted instantiation: _RINvXs_NvXNvNtNtCseuYC0Zibziv_7smoldot10chain_spec7structss7_1__NtBa_15ChildRawStorageNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1m_11deserializeINtNtCscu7pqq74Vb8_10serde_json2de6MapKeyNtNtB2N_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
153
#[serde(rename_all = "camelCase")]
154
#[serde(deny_unknown_fields)]
155
pub(super) struct ChildRawStorage {
156
    pub(super) child_info: Vec<u8>,
157
    pub(super) child_type: u32,
158
}
159
160
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
161
pub(super) struct HashHexString(pub(super) [u8; 32]);
162
163
impl serde::Serialize for HashHexString {
164
0
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
165
0
    where
166
0
        S: serde::Serializer,
167
0
    {
168
0
        format!("0x{}", hex::encode(&self.0[..])).serialize(serializer)
169
0
    }
Unexecuted instantiation: _RINvXs2_NtNtCsN16ciHI6Qf_7smoldot10chain_spec7structsNtB6_13HashHexStringNtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializepEBa_
Unexecuted instantiation: _RINvXs2_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_13HashHexStringNtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB20_15PrettyFormatterEEBa_
170
}
171
172
impl<'a> serde::Deserialize<'a> for HashHexString {
173
2
    fn deserialize<D>(deserializer: D) -> Result<HashHexString, D::Error>
174
2
    where
175
2
        D: serde::Deserializer<'a>,
176
2
    {
177
2
        let string = String::deserialize(deserializer)
?0
;
178
179
2
        if !string.starts_with("0x") {
180
0
            return Err(serde::de::Error::custom("hash doesn't start with 0x"));
181
2
        }
182
183
2
        let bytes = hex::decode(&string[2..]).map_err(serde::de::Error::custom)
?0
;
184
2
        if bytes.len() != 32 {
185
0
            return Err(serde::de::Error::invalid_length(
186
0
                bytes.len(),
187
0
                &"a 32 bytes hash",
188
0
            ));
189
2
        }
190
2
191
2
        let mut out = [0; 32];
192
2
        out.copy_from_slice(&bytes);
193
2
        Ok(HashHexString(out))
194
2
    }
_RINvXs3_NtNtCsN16ciHI6Qf_7smoldot10chain_spec7structsNtB6_13HashHexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB26_4read9SliceReadEEBa_
Line
Count
Source
173
2
    fn deserialize<D>(deserializer: D) -> Result<HashHexString, D::Error>
174
2
    where
175
2
        D: serde::Deserializer<'a>,
176
2
    {
177
2
        let string = String::deserialize(deserializer)
?0
;
178
179
2
        if !string.starts_with("0x") {
180
0
            return Err(serde::de::Error::custom("hash doesn't start with 0x"));
181
2
        }
182
183
2
        let bytes = hex::decode(&string[2..]).map_err(serde::de::Error::custom)
?0
;
184
2
        if bytes.len() != 32 {
185
0
            return Err(serde::de::Error::invalid_length(
186
0
                bytes.len(),
187
0
                &"a 32 bytes hash",
188
0
            ));
189
2
        }
190
2
191
2
        let mut out = [0; 32];
192
2
        out.copy_from_slice(&bytes);
193
2
        Ok(HashHexString(out))
194
2
    }
Unexecuted instantiation: _RINvXs3_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_13HashHexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB27_4read9SliceReadEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs3_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_13HashHexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializepEBa_
Unexecuted instantiation: _RINvXs3_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_13HashHexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB27_4read9SliceReadEECsiLzmwikkc22_14json_rpc_basic
Unexecuted instantiation: _RINvXs3_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_13HashHexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB27_4read9SliceReadEECscDgN54JpMGG_6author
Unexecuted instantiation: _RINvXs3_NtNtCseuYC0Zibziv_7smoldot10chain_spec7structsNtB6_13HashHexStringNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB27_4read9SliceReadEECsibGXYHQB8Ea_25json_rpc_general_requests
195
}