Coverage Report

Created: 2024-05-16 12:16

/__w/smoldot/smoldot/repo/lib/src/database/finalized_serialize/defs.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 to help with serializing/deserializing from/to the local storage.
19
20
use crate::{chain::chain_information, header};
21
22
use alloc::{boxed::Box, vec::Vec};
23
use core::{fmt, num::NonZeroU64};
24
use hashbrown::HashMap;
25
26
/// Error that can happen when deserializing the data.
27
0
#[derive(Debug, derive_more::Display)]
Unexecuted instantiation: _RNvXse_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_16DeserializeErrorNtNtCsaYZPK01V26L_4core3fmt7Display3fmt
Unexecuted instantiation: _RNvXse_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_16DeserializeErrorNtNtCsaYZPK01V26L_4core3fmt7Display3fmt
28
pub(super) enum DeserializeError {
29
    #[display(fmt = "Failed to decode header: {_0}")]
30
    Header(header::Error),
31
    ConsensusAlgorithmsMismatch,
32
    /// Some Babe-related information is missing.
33
    MissingBabeInformation,
34
}
35
36
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss_1__NtB7_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1L_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss_1__NtB8_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss_1__NtB8_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss_1__NtB8_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss_1__NtBa_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1M_11deserializepEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss_1__NtB7_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1M_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss_1__NtB8_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss_1__NtB8_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss_1__NtB8_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss_1__NtBa_26SerializedChainInformationNtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1N_11deserializeQINtNtCscu7pqq74Vb8_10serde_json2de12DeserializerNtNtB3f_4read7StrReadEEBg_
37
#[serde(tag = "version")]
38
pub(super) enum SerializedChainInformation {
39
    #[serde(rename = "1")]
40
    V1(SerializedChainInformationV1),
41
}
42
43
impl SerializedChainInformation {
44
0
    pub(super) fn decode(self, block_number_bytes: usize) -> Result<Decoded, DeserializeError> {
45
0
        Ok(match self {
46
0
            SerializedChainInformation::V1(from) => from.decode(block_number_bytes)?,
47
        })
48
0
    }
Unexecuted instantiation: _RNvMNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB2_26SerializedChainInformation6decode
Unexecuted instantiation: _RNvMNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB2_26SerializedChainInformation6decode
49
}
50
51
pub struct Decoded {
52
    /// Decoded chain information.
53
    pub chain_information: chain_information::ChainInformation,
54
    /// All the keys and values found in the database. `None` if no information was found.
55
    pub storage: Option<HashMap<Vec<u8>, Vec<u8>, fnv::FnvBuildHasher>>,
56
}
57
58
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss0_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1N_9serializepEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss0_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1O_9serializeINtNtCscu7pqq74Vb8_10serde_json3ser18RawValueStrEmitterQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB3e_16CompactFormatterEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss0_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1O_9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechEEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss0_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1O_9serializepEBe_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtB7_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1O_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtBa_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1P_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtBa_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1R_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtBb_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1S_7Visitor9visit_seqpEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtBe_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1V_7Visitor9visit_seqNtB3_17___DeserializeWithB1T_11deserializepEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtBd_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1U_7Visitor9visit_seqpE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtBb_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1S_7Visitor9visit_mappEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss1_1__NtBe_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1V_7Visitor9visit_mapNtB3_17___DeserializeWithB1T_11deserializepEBk_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtBa_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1Q_11deserializeINtNtNtNtB1U_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtB7_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1P_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtB8_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtBa_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1S_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtBe_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1W_7Visitor9visit_seqNtB3_17___DeserializeWithB1U_11deserializeINtNtNtNtB1Y_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtBe_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1W_7Visitor9visit_mapNtB3_17___DeserializeWithB1U_11deserializeINtNtNtNtB1Y_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtBd_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1V_7Visitor9visit_seqQINtNtB1V_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1X_9___private2de7content7ContentENvMse_B5z_INtB5z_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6Q_EE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtBb_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1T_7Visitor9visit_seqQINtNtB1T_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1V_9___private2de7content7ContentENvMse_B5x_INtB5x_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6O_EEBh_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss1_1__NtBb_28SerializedChainInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1T_7Visitor9visit_mapQINtNtB1T_5value15MapDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterTNtNtNtNtB1V_9___private2de7content7ContentB5w_EENCINvB5y_17visit_content_mapB2I_NtNtCscu7pqq74Vb8_10serde_json5error5ErrorE0EB6O_EEBh_
59
#[serde(deny_unknown_fields)]
60
pub(super) struct SerializedChainInformationV1 {
61
    #[serde(
62
        serialize_with = "serialize_bytes",
63
        deserialize_with = "deserialize_bytes"
64
    )]
65
    finalized_block_header: Vec<u8>,
66
    #[serde(default, skip_serializing_if = "Option::is_none")]
67
    aura_slot_duration: Option<NonZeroU64>,
68
    #[serde(default, skip_serializing_if = "Option::is_none")]
69
    aura_finalized_authorities: Option<Vec<SerializedAuraAuthorityV1>>,
70
    #[serde(default, skip_serializing_if = "Option::is_none")]
71
    babe_slots_per_epoch: Option<NonZeroU64>,
72
    #[serde(default, skip_serializing_if = "Option::is_none")]
73
    babe_finalized_block_epoch_information: Option<SerializedBabeEpochInformationV1>,
74
    #[serde(default, skip_serializing_if = "Option::is_none")]
75
    babe_finalized_next_epoch_transition: Option<SerializedBabeEpochInformationV1>,
76
    #[serde(default, skip_serializing_if = "Option::is_none")]
77
    grandpa_after_finalized_block_authorities_set_id: Option<u64>,
78
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
79
    grandpa_finalized_triggered_authorities: Vec<SerializedGrandpaAuthorityV1>,
80
    #[serde(default, skip_serializing_if = "Option::is_none")]
81
    grandpa_finalized_scheduled_change: Option<SerializedFinalizedScheduledChangeV1>,
82
    #[serde(default, skip_serializing_if = "Option::is_none")]
83
    finalized_storage: Option<Vec<SerializedFinalizedStorageEntryV1>>,
84
}
85
86
impl SerializedChainInformationV1 {
87
0
    pub(super) fn new(
88
0
        from: chain_information::ChainInformationRef<'_>,
89
0
        block_number_bytes: usize,
90
0
        finalized_storage: Option<impl Iterator<Item = (impl AsRef<[u8]>, impl AsRef<[u8]>)>>,
91
0
    ) -> Self {
92
0
        SerializedChainInformationV1 {
93
0
            finalized_block_header: from
94
0
                .finalized_block_header
95
0
                .scale_encoding(block_number_bytes)
96
0
                .fold(Vec::new(), |mut a, b| {
97
0
                    a.extend_from_slice(b.as_ref());
98
0
                    a
99
0
                }),
Unexecuted instantiation: _RNCINvMs_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newpppE0Bd_
Unexecuted instantiation: _RNCINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newINtNtCsdZExvAaxgia_5alloc3vec3VechEB1L_INtNtNtNtCsaYZPK01V26L_4core4iter7sources5empty5EmptyTB1L_B1L_EEE0CsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNCINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newpppE0Bd_
100
            aura_slot_duration: if let chain_information::ChainInformationConsensusRef::Aura {
101
0
                slot_duration,
102
                ..
103
0
            } = &from.consensus
104
            {
105
0
                Some(*slot_duration)
106
            } else {
107
0
                None
108
            },
109
            aura_finalized_authorities:
110
                if let chain_information::ChainInformationConsensusRef::Aura {
111
0
                    finalized_authorities_list,
112
                    ..
113
0
                } = &from.consensus
114
                {
115
0
                    Some(finalized_authorities_list.clone().map(Into::into).collect())
116
                } else {
117
0
                    None
118
                },
119
            babe_slots_per_epoch: if let chain_information::ChainInformationConsensusRef::Babe {
120
0
                slots_per_epoch,
121
                ..
122
0
            } = &from.consensus
123
            {
124
0
                Some(*slots_per_epoch)
125
            } else {
126
0
                None
127
            },
128
            babe_finalized_block_epoch_information:
129
                if let chain_information::ChainInformationConsensusRef::Babe {
130
0
                    finalized_block_epoch_information,
131
                    ..
132
0
                } = &from.consensus
133
                {
134
0
                    finalized_block_epoch_information.clone().map(Into::into)
135
                } else {
136
0
                    None
137
                },
138
            babe_finalized_next_epoch_transition:
139
                if let chain_information::ChainInformationConsensusRef::Babe {
140
0
                    finalized_next_epoch_transition,
141
                    ..
142
0
                } = &from.consensus
143
                {
144
0
                    Some(finalized_next_epoch_transition.clone().into())
145
                } else {
146
0
                    None
147
                },
148
0
            grandpa_after_finalized_block_authorities_set_id: match from.finality {
149
0
                chain_information::ChainInformationFinalityRef::Outsourced => None,
150
                chain_information::ChainInformationFinalityRef::Grandpa {
151
0
                    after_finalized_block_authorities_set_id,
152
0
                    ..
153
0
                } => Some(after_finalized_block_authorities_set_id),
154
            },
155
0
            grandpa_finalized_triggered_authorities: match from.finality {
156
0
                chain_information::ChainInformationFinalityRef::Outsourced => Vec::new(),
157
                chain_information::ChainInformationFinalityRef::Grandpa {
158
0
                    finalized_triggered_authorities,
159
0
                    ..
160
0
                } => finalized_triggered_authorities
161
0
                    .iter()
162
0
                    .map(header::GrandpaAuthorityRef::from)
163
0
                    .map(Into::into)
164
0
                    .collect(),
165
            },
166
0
            grandpa_finalized_scheduled_change: match from.finality {
167
0
                chain_information::ChainInformationFinalityRef::Outsourced => None,
168
                chain_information::ChainInformationFinalityRef::Grandpa {
169
0
                    finalized_scheduled_change,
170
0
                    ..
171
0
                } => {
172
0
                    finalized_scheduled_change.map(|(n, l)| SerializedFinalizedScheduledChangeV1 {
173
0
                        trigger_block_height: n,
174
0
                        new_authorities_list: l.iter().map(Into::into).collect(),
175
0
                    })
Unexecuted instantiation: _RNCINvMs_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newpppEs_0Bd_
Unexecuted instantiation: _RNCINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newINtNtCsdZExvAaxgia_5alloc3vec3VechEB1L_INtNtNtNtCsaYZPK01V26L_4core4iter7sources5empty5EmptyTB1L_B1L_EEEs_0CsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNCINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newpppEs_0Bd_
176
                }
177
            },
178
0
            finalized_storage: finalized_storage.map(|storage| {
179
0
                storage
180
0
                    .map(|(k, v)| SerializedFinalizedStorageEntryV1 {
181
0
                        key: k.as_ref().to_vec(),
182
0
                        value: v.as_ref().to_vec(),
183
0
                    })
Unexecuted instantiation: _RNCNCINvMs_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB9_28SerializedChainInformationV13newpppEs0_00Bf_
Unexecuted instantiation: _RNCNCINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB9_28SerializedChainInformationV13newINtNtCsdZExvAaxgia_5alloc3vec3VechEB1N_INtNtNtNtCsaYZPK01V26L_4core4iter7sources5empty5EmptyTB1N_B1N_EEEs0_00CsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNCNCINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB9_28SerializedChainInformationV13newpppEs0_00Bf_
184
0
                    .collect()
185
0
            }),
Unexecuted instantiation: _RNCINvMs_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newpppEs0_0Bd_
Unexecuted instantiation: _RNCINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newINtNtCsdZExvAaxgia_5alloc3vec3VechEB1L_INtNtNtNtCsaYZPK01V26L_4core4iter7sources5empty5EmptyTB1L_B1L_EEEs0_0CsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RNCINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV13newpppEs0_0Bd_
186
0
        }
187
0
    }
Unexecuted instantiation: _RINvMs_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_28SerializedChainInformationV13newpppEBb_
Unexecuted instantiation: _RINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_28SerializedChainInformationV13newINtNtCsdZExvAaxgia_5alloc3vec3VechEB1J_INtNtNtNtCsaYZPK01V26L_4core4iter7sources5empty5EmptyTB1J_B1J_EEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvMs_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_28SerializedChainInformationV13newpppEBb_
188
}
189
190
impl SerializedChainInformationV1 {
191
0
    pub(super) fn decode(self, block_number_bytes: usize) -> Result<Decoded, DeserializeError> {
192
0
        let consensus = match (
193
0
            self.aura_finalized_authorities,
194
0
            self.aura_slot_duration,
195
0
            self.babe_slots_per_epoch,
196
0
            self.babe_finalized_block_epoch_information,
197
0
            self.babe_finalized_next_epoch_transition,
198
        ) {
199
0
            (Some(aura_authorities), Some(slot_duration), None, None, None) => {
200
0
                chain_information::ChainInformationConsensus::Aura {
201
0
                    finalized_authorities_list: aura_authorities
202
0
                        .into_iter()
203
0
                        .map(Into::into)
204
0
                        .collect(),
205
0
                    slot_duration,
206
0
                }
207
            }
208
209
            (
210
                None,
211
                None,
212
0
                babe_slots_per_epoch,
213
0
                babe_finalized_block_epoch_information,
214
0
                babe_finalized_next_epoch_transition,
215
0
            ) => chain_information::ChainInformationConsensus::Babe {
216
0
                slots_per_epoch: babe_slots_per_epoch
217
0
                    .ok_or(DeserializeError::MissingBabeInformation)?,
218
0
                finalized_block_epoch_information: babe_finalized_block_epoch_information
219
0
                    .map(|i| Box::new(i.into())),
Unexecuted instantiation: _RNCNvMs0_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV16decode0Bd_
Unexecuted instantiation: _RNCNvMs0_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV16decode0Bd_
220
0
                finalized_next_epoch_transition: Box::new(
221
0
                    babe_finalized_next_epoch_transition
222
0
                        .map(Into::into)
223
0
                        .ok_or(DeserializeError::MissingBabeInformation)?,
224
                ),
225
            },
226
227
0
            _ => return Err(DeserializeError::ConsensusAlgorithmsMismatch),
228
        };
229
230
0
        let chain_information = chain_information::ChainInformation {
231
            finalized_block_header: Box::new(
232
0
                header::decode(&self.finalized_block_header, block_number_bytes)
233
0
                    .map_err(DeserializeError::Header)?
234
0
                    .into(),
235
0
            ),
236
0
            consensus,
237
0
            finality: if let Some(set_id) = self.grandpa_after_finalized_block_authorities_set_id {
238
0
                chain_information::ChainInformationFinality::Grandpa {
239
0
                    after_finalized_block_authorities_set_id: set_id,
240
0
                    finalized_triggered_authorities: self
241
0
                        .grandpa_finalized_triggered_authorities
242
0
                        .into_iter()
243
0
                        .map(Into::into)
244
0
                        .collect(),
245
0
                    finalized_scheduled_change: self.grandpa_finalized_scheduled_change.map(
246
0
                        |change| {
247
0
                            (
248
0
                                change.trigger_block_height,
249
0
                                change
250
0
                                    .new_authorities_list
251
0
                                    .into_iter()
252
0
                                    .map(Into::into)
253
0
                                    .collect(),
254
0
                            )
255
0
                        },
Unexecuted instantiation: _RNCNvMs0_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV16decodes_0Bd_
Unexecuted instantiation: _RNCNvMs0_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV16decodes_0Bd_
256
0
                    ),
257
0
                }
258
            } else {
259
0
                chain_information::ChainInformationFinality::Outsourced
260
            },
261
        };
262
263
        // We could in principle check the integrity of the storage against the state root hash
264
        // in the header. However, doing so would require obtaining the state version from the
265
        // runtime, which would be very CPU intensive. Checking the integrity of the storage isn't
266
        // a bad idea, but it would be inappropriate to do so in the decoding code.
267
0
        let finalized_storage = self.finalized_storage.map(|storage| {
268
0
            storage
269
0
                .into_iter()
270
0
                .map(|entry| (entry.key, entry.value))
Unexecuted instantiation: _RNCNCNvMs0_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB9_28SerializedChainInformationV16decodes0_00Bf_
Unexecuted instantiation: _RNCNCNvMs0_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB9_28SerializedChainInformationV16decodes0_00Bf_
271
0
                .collect()
272
0
        });
Unexecuted instantiation: _RNCNvMs0_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV16decodes0_0Bd_
Unexecuted instantiation: _RNCNvMs0_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB7_28SerializedChainInformationV16decodes0_0Bd_
273
0
274
0
        Ok(Decoded {
275
0
            chain_information,
276
0
            storage: finalized_storage,
277
0
        })
278
0
    }
Unexecuted instantiation: _RNvMs0_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_28SerializedChainInformationV16decode
Unexecuted instantiation: _RNvMs0_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_28SerializedChainInformationV16decode
279
}
280
281
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss2_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1S_9serializepEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss2_1__NtBa_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB5_s_15___SerializeWithB1U_9serializepEBg_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss2_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1T_9serializeINtNtCscu7pqq74Vb8_10serde_json3ser18RawValueStrEmitterQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB3j_16CompactFormatterEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss2_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1T_9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechEEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss2_1__NtBa_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB5_s_15___SerializeWithB1V_9serializeINtNtCscu7pqq74Vb8_10serde_json3ser18RawValueStrEmitterQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB3n_16CompactFormatterEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss2_1__NtBa_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB5_s_15___SerializeWithB1V_9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechEEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss2_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1T_9serializepEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss2_1__NtBa_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB5_s_15___SerializeWithB1V_9serializepEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtB7_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1T_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1U_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1U_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1U_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBa_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1U_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBa_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1W_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBb_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1X_7Visitor9visit_seqpEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBe_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB20_7Visitor9visit_seqNtB3_17___DeserializeWithB1Y_11deserializepEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBd_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1Z_7Visitor9visit_seqpE0Bj_
Unexecuted instantiation: _RINvXs_NvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBg_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtBb_9___VisitorNtB22_7Visitor9visit_seqNtB5_s_17___DeserializeWithB20_11deserializepEBm_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBd_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1Z_7Visitor9visit_seqpEs_0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBb_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1X_7Visitor9visit_mappEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBe_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB20_7Visitor9visit_mapNtB3_17___DeserializeWithB1Y_11deserializepEBk_
Unexecuted instantiation: _RINvXs_NvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss3_1__NtBg_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtBb_9___VisitorNtB22_7Visitor9visit_mapNtB5_s_17___DeserializeWithB20_11deserializepEBm_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBa_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1V_11deserializeINtNtNtNtB1Z_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtB7_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1U_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1V_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1V_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtB8_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1V_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBa_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1X_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBe_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB21_7Visitor9visit_seqNtB3_17___DeserializeWithB1Z_11deserializeINtNtNtNtB23_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RINvXs_NvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBg_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtBb_9___VisitorNtB23_7Visitor9visit_seqNtB5_s_17___DeserializeWithB21_11deserializeINtNtNtNtB25_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBm_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBe_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB21_7Visitor9visit_mapNtB3_17___DeserializeWithB1Z_11deserializeINtNtNtNtB23_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RINvXs_NvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBg_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtBb_9___VisitorNtB23_7Visitor9visit_mapNtB5_s_17___DeserializeWithB21_11deserializeINtNtNtNtB25_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBm_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBd_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB20_7Visitor9visit_seqQINtNtB20_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB22_9___private2de7content7ContentENvMse_B5E_INtB5E_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6V_EE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBb_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Y_7Visitor9visit_seqQINtNtB1Y_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB20_9___private2de7content7ContentENvMse_B5C_INtB5C_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6T_EEBh_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBd_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB20_7Visitor9visit_seqQINtNtB20_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB22_9___private2de7content7ContentENvMse_B5E_INtB5E_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6V_EEs_0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss3_1__NtBb_33SerializedFinalizedStorageEntryV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Y_7Visitor9visit_mapQINtNtB1Y_5value15MapDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterTNtNtNtNtB20_9___private2de7content7ContentB5B_EENCINvB5D_17visit_content_mapB2N_NtNtCscu7pqq74Vb8_10serde_json5error5ErrorE0EB6T_EEBh_
282
#[serde(deny_unknown_fields)]
283
struct SerializedFinalizedStorageEntryV1 {
284
    #[serde(
285
        serialize_with = "serialize_bytes",
286
        deserialize_with = "deserialize_bytes"
287
    )]
288
    key: Vec<u8>,
289
    #[serde(
290
        serialize_with = "serialize_bytes",
291
        deserialize_with = "deserialize_bytes"
292
    )]
293
    value: Vec<u8>,
294
}
295
296
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss4_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1K_9serializepEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss4_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1L_9serializeINtNtCscu7pqq74Vb8_10serde_json3ser18RawValueStrEmitterQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB3b_16CompactFormatterEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss4_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1L_9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechEEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss4_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1L_9serializepEBe_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtB7_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1L_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtBa_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1M_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtBa_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1O_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtBb_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1P_7Visitor9visit_seqpEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtBe_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1S_7Visitor9visit_seqNtB3_17___DeserializeWithB1Q_11deserializepEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtBd_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1R_7Visitor9visit_seqpE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtBb_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1P_7Visitor9visit_mappEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss5_1__NtBe_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1S_7Visitor9visit_mapNtB3_17___DeserializeWithB1Q_11deserializepEBk_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtBa_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1N_11deserializeINtNtNtNtB1R_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtB7_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1M_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtB8_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtBa_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1P_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtBe_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1T_7Visitor9visit_seqNtB3_17___DeserializeWithB1R_11deserializeINtNtNtNtB1V_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtBe_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1T_7Visitor9visit_mapNtB3_17___DeserializeWithB1R_11deserializeINtNtNtNtB1V_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtBd_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1S_7Visitor9visit_seqQINtNtB1S_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1U_9___private2de7content7ContentENvMse_B5w_INtB5w_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6N_EE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtBb_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Q_7Visitor9visit_seqQINtNtB1Q_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1S_9___private2de7content7ContentENvMse_B5u_INtB5u_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6L_EEBh_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss5_1__NtBb_25SerializedAuraAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Q_7Visitor9visit_mapQINtNtB1Q_5value15MapDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterTNtNtNtNtB1S_9___private2de7content7ContentB5t_EENCINvB5v_17visit_content_mapB2F_NtNtCscu7pqq74Vb8_10serde_json5error5ErrorE0EB6L_EEBh_
297
#[serde(deny_unknown_fields)]
298
struct SerializedAuraAuthorityV1 {
299
    #[serde(
300
        serialize_with = "serialize_bytes",
301
        deserialize_with = "deserialize_hash32"
302
    )]
303
    public_key: [u8; 32],
304
}
305
306
impl<'a> From<header::AuraAuthorityRef<'a>> for SerializedAuraAuthorityV1 {
307
0
    fn from(from: header::AuraAuthorityRef<'a>) -> Self {
308
0
        SerializedAuraAuthorityV1 {
309
0
            public_key: *from.public_key,
310
0
        }
311
0
    }
Unexecuted instantiation: _RNvXs1_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_25SerializedAuraAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header4aura16AuraAuthorityRefE4from
Unexecuted instantiation: _RNvXs1_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_25SerializedAuraAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header4aura16AuraAuthorityRefE4from
312
}
313
314
impl From<SerializedAuraAuthorityV1> for header::AuraAuthority {
315
0
    fn from(from: SerializedAuraAuthorityV1) -> Self {
316
0
        header::AuraAuthority {
317
0
            public_key: from.public_key,
318
0
        }
319
0
    }
Unexecuted instantiation: _RNvXs2_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtNtNtBb_6header4aura13AuraAuthorityINtNtCsaYZPK01V26L_4core7convert4FromNtB5_25SerializedAuraAuthorityV1E4from
Unexecuted instantiation: _RNvXs2_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtNtNtBb_6header4aura13AuraAuthorityINtNtCsaYZPK01V26L_4core7convert4FromNtB5_25SerializedAuraAuthorityV1E4from
320
}
321
322
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss6_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1R_9serializepEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss6_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1S_9serializeINtNtCscu7pqq74Vb8_10serde_json3ser18RawValueStrEmitterQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB3i_16CompactFormatterEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss6_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1S_9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechEEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss6_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1S_9serializepEBe_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtB7_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1S_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1T_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1T_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1T_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtBa_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1T_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtBa_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1V_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtBb_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1W_7Visitor9visit_seqpEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtBe_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1Z_7Visitor9visit_seqNtB3_17___DeserializeWithB1X_11deserializepEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtBd_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1Y_7Visitor9visit_seqpE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtBb_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1W_7Visitor9visit_mappEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss7_1__NtBe_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1Z_7Visitor9visit_mapNtB3_17___DeserializeWithB1X_11deserializepEBk_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtBa_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1U_11deserializeINtNtNtNtB1Y_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtB7_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1T_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1U_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1U_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtB8_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1U_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtBa_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1W_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtBe_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB20_7Visitor9visit_seqNtB3_17___DeserializeWithB1Y_11deserializeINtNtNtNtB22_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtBe_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB20_7Visitor9visit_mapNtB3_17___DeserializeWithB1Y_11deserializeINtNtNtNtB22_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtBb_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1X_7Visitor9visit_seqQINtNtB1X_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1Z_9___private2de7content7ContentENvMse_B5B_INtB5B_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6S_EEBh_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtBd_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1Z_7Visitor9visit_seqQINtNtB1Z_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB21_9___private2de7content7ContentENvMse_B5D_INtB5D_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6U_EE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss7_1__NtBb_32SerializedBabeEpochInformationV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1X_7Visitor9visit_mapQINtNtB1X_5value15MapDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterTNtNtNtNtB1Z_9___private2de7content7ContentB5A_EENCINvB5C_17visit_content_mapB2M_NtNtCscu7pqq74Vb8_10serde_json5error5ErrorE0EB6S_EEBh_
323
#[serde(deny_unknown_fields)]
324
struct SerializedBabeEpochInformationV1 {
325
    epoch_index: u64,
326
    #[serde(default, skip_serializing_if = "Option::is_none")]
327
    start_slot_number: Option<u64>,
328
    authorities: Vec<SerializedBabeAuthorityV1>,
329
    #[serde(
330
        serialize_with = "serialize_bytes",
331
        deserialize_with = "deserialize_hash32"
332
    )]
333
    randomness: [u8; 32],
334
    c: SerializedBabeNextConfigConstantV1,
335
    allowed_slots: SerializedBabeAllowedSlotsV1,
336
}
337
338
impl<'a> From<chain_information::BabeEpochInformationRef<'a>> for SerializedBabeEpochInformationV1 {
339
0
    fn from(from: chain_information::BabeEpochInformationRef<'a>) -> Self {
340
0
        SerializedBabeEpochInformationV1 {
341
0
            epoch_index: from.epoch_index,
342
0
            start_slot_number: from.start_slot_number,
343
0
            authorities: from.authorities.map(Into::into).collect(),
344
0
            randomness: *from.randomness,
345
0
            c: SerializedBabeNextConfigConstantV1 {
346
0
                num: from.c.0,
347
0
                denom: from.c.1,
348
0
            },
349
0
            allowed_slots: from.allowed_slots.into(),
350
0
        }
351
0
    }
Unexecuted instantiation: _RNvXs3_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_32SerializedBabeEpochInformationV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_5chain17chain_information23BabeEpochInformationRefE4from
Unexecuted instantiation: _RNvXs3_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_32SerializedBabeEpochInformationV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_5chain17chain_information23BabeEpochInformationRefE4from
352
}
353
354
impl From<SerializedBabeEpochInformationV1> for chain_information::BabeEpochInformation {
355
0
    fn from(from: SerializedBabeEpochInformationV1) -> Self {
356
0
        chain_information::BabeEpochInformation {
357
0
            epoch_index: from.epoch_index,
358
0
            start_slot_number: from.start_slot_number,
359
0
            authorities: from.authorities.into_iter().map(Into::into).collect(),
360
0
            randomness: from.randomness,
361
0
            c: (from.c.num, from.c.denom),
362
0
            allowed_slots: from.allowed_slots.into(),
363
0
        }
364
0
    }
Unexecuted instantiation: _RNvXs4_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtNtNtBb_5chain17chain_information20BabeEpochInformationINtNtCsaYZPK01V26L_4core7convert4FromNtB5_32SerializedBabeEpochInformationV1E4from
Unexecuted instantiation: _RNvXs4_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtNtNtBb_5chain17chain_information20BabeEpochInformationINtNtCsaYZPK01V26L_4core7convert4FromNtB5_32SerializedBabeEpochInformationV1E4from
365
}
366
367
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss8_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1K_9serializepEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss8_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1L_9serializeINtNtCscu7pqq74Vb8_10serde_json3ser18RawValueStrEmitterQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB3b_16CompactFormatterEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss8_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1L_9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechEEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss8_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1L_9serializepEBe_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtB7_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1L_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1M_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtBa_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1M_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtBa_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1O_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtBb_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1P_7Visitor9visit_seqpEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtBe_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1S_7Visitor9visit_seqNtB3_17___DeserializeWithB1Q_11deserializepEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtBd_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1R_7Visitor9visit_seqpE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtBb_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1P_7Visitor9visit_mappEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defss9_1__NtBe_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1S_7Visitor9visit_mapNtB3_17___DeserializeWithB1Q_11deserializepEBk_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtBa_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1N_11deserializeINtNtNtNtB1R_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtB7_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1M_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtB8_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1N_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtBa_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1P_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtBe_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1T_7Visitor9visit_seqNtB3_17___DeserializeWithB1R_11deserializeINtNtNtNtB1V_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtBe_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1T_7Visitor9visit_mapNtB3_17___DeserializeWithB1R_11deserializeINtNtNtNtB1V_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtBd_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1S_7Visitor9visit_seqQINtNtB1S_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1U_9___private2de7content7ContentENvMse_B5w_INtB5w_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6N_EE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtBb_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Q_7Visitor9visit_seqQINtNtB1Q_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1S_9___private2de7content7ContentENvMse_B5u_INtB5u_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6L_EEBh_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defss9_1__NtBb_25SerializedBabeAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Q_7Visitor9visit_mapQINtNtB1Q_5value15MapDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterTNtNtNtNtB1S_9___private2de7content7ContentB5t_EENCINvB5v_17visit_content_mapB2F_NtNtCscu7pqq74Vb8_10serde_json5error5ErrorE0EB6L_EEBh_
368
#[serde(deny_unknown_fields)]
369
struct SerializedBabeAuthorityV1 {
370
    #[serde(
371
        serialize_with = "serialize_bytes",
372
        deserialize_with = "deserialize_hash32"
373
    )]
374
    public_key: [u8; 32],
375
    weight: u64, // TODO: should be NonZeroU64; requires changing crate::header first
376
}
377
378
impl<'a> From<header::BabeAuthorityRef<'a>> for SerializedBabeAuthorityV1 {
379
0
    fn from(from: header::BabeAuthorityRef<'a>) -> Self {
380
0
        SerializedBabeAuthorityV1 {
381
0
            public_key: *from.public_key,
382
0
            weight: from.weight,
383
0
        }
384
0
    }
Unexecuted instantiation: _RNvXs5_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_25SerializedBabeAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header4babe16BabeAuthorityRefE4from
Unexecuted instantiation: _RNvXs5_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_25SerializedBabeAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header4babe16BabeAuthorityRefE4from
385
}
386
387
impl From<SerializedBabeAuthorityV1> for header::BabeAuthority {
388
0
    fn from(from: SerializedBabeAuthorityV1) -> Self {
389
0
        header::BabeAuthority {
390
0
            public_key: from.public_key,
391
0
            weight: from.weight,
392
0
        }
393
0
    }
Unexecuted instantiation: _RNvXs6_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtNtNtBb_6header4babe13BabeAuthorityINtNtCsaYZPK01V26L_4core7convert4FromNtB5_25SerializedBabeAuthorityV1E4from
Unexecuted instantiation: _RNvXs6_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtNtNtBb_6header4babe13BabeAuthorityINtNtCsaYZPK01V26L_4core7convert4FromNtB5_25SerializedBabeAuthorityV1E4from
394
}
395
396
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssb_1__NtB7_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1U_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssb_1__NtB8_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1V_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssb_1__NtB8_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1V_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssb_1__NtB8_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1V_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssb_1__NtBa_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1V_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssb_1__NtBa_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1X_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssb_1__NtBb_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Y_7Visitor9visit_seqpEBh_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssb_1__NtBb_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Y_7Visitor9visit_mappEBh_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssb_1__NtBa_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1W_11deserializeINtNtNtNtB20_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssb_1__NtB7_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1V_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssb_1__NtB8_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1W_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssb_1__NtBa_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1Y_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssb_1__NtBb_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Z_7Visitor9visit_seqQINtNtB1Z_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB21_9___private2de7content7ContentENvMse_B5D_INtB5D_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6U_EEBh_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssb_1__NtBb_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1Z_7Visitor9visit_mapQINtNtB1Z_5value15MapDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterTNtNtNtNtB21_9___private2de7content7ContentB5C_EENCINvB5E_17visit_content_mapB2O_NtNtCscu7pqq74Vb8_10serde_json5error5ErrorE0EB6U_EEBh_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssb_1__NtB8_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1W_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssb_1__NtB8_34SerializedBabeNextConfigConstantV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1W_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
397
struct SerializedBabeNextConfigConstantV1 {
398
    num: u64,
399
    denom: u64,
400
}
401
402
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssd_1__NtB7_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1O_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssd_1__NtB8_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssd_1__NtB8_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssd_1__NtB8_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssd_1__NtBa_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1P_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssd_1__NtBa_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1R_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssd_1__NtBb_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1S_7Visitor10visit_enumpEBh_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssd_1__NtB7_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1P_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssd_1__NtB8_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssd_1__NtB8_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssd_1__NtB8_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssd_1__NtBa_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1S_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssd_1__NtBb_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1T_7Visitor10visit_enumINtNtNtNtB1V_9___private2de7content16EnumDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBh_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssd_1__NtBa_28SerializedBabeAllowedSlotsV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1Q_11deserializeINtNtNtNtB1U_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
403
enum SerializedBabeAllowedSlotsV1 {
404
    #[serde(rename = "primary")]
405
    OnlyPrimary,
406
    #[serde(rename = "primary-and-secondary-plain")]
407
    PrimaryAndSecondaryPlain,
408
    #[serde(rename = "primary-and-secondary-vrf")]
409
    PrimaryAndSecondaryVrf,
410
}
411
412
impl From<header::BabeAllowedSlots> for SerializedBabeAllowedSlotsV1 {
413
0
    fn from(from: header::BabeAllowedSlots) -> Self {
414
0
        match from {
415
0
            header::BabeAllowedSlots::PrimarySlots => SerializedBabeAllowedSlotsV1::OnlyPrimary,
416
            header::BabeAllowedSlots::PrimaryAndSecondaryPlainSlots => {
417
0
                SerializedBabeAllowedSlotsV1::PrimaryAndSecondaryPlain
418
            }
419
            header::BabeAllowedSlots::PrimaryAndSecondaryVrfSlots => {
420
0
                SerializedBabeAllowedSlotsV1::PrimaryAndSecondaryVrf
421
            }
422
        }
423
0
    }
Unexecuted instantiation: _RNvXs7_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_28SerializedBabeAllowedSlotsV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header4babe16BabeAllowedSlotsE4from
Unexecuted instantiation: _RNvXs7_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_28SerializedBabeAllowedSlotsV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header4babe16BabeAllowedSlotsE4from
424
}
425
426
impl From<SerializedBabeAllowedSlotsV1> for header::BabeAllowedSlots {
427
0
    fn from(from: SerializedBabeAllowedSlotsV1) -> Self {
428
0
        match from {
429
0
            SerializedBabeAllowedSlotsV1::OnlyPrimary => header::BabeAllowedSlots::PrimarySlots,
430
            SerializedBabeAllowedSlotsV1::PrimaryAndSecondaryPlain => {
431
0
                header::BabeAllowedSlots::PrimaryAndSecondaryPlainSlots
432
            }
433
            SerializedBabeAllowedSlotsV1::PrimaryAndSecondaryVrf => {
434
0
                header::BabeAllowedSlots::PrimaryAndSecondaryVrfSlots
435
            }
436
        }
437
0
    }
Unexecuted instantiation: _RNvXs8_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtNtNtBb_6header4babe16BabeAllowedSlotsINtNtCsaYZPK01V26L_4core7convert4FromNtB5_28SerializedBabeAllowedSlotsV1E4from
Unexecuted instantiation: _RNvXs8_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtNtNtBb_6header4babe16BabeAllowedSlotsINtNtCsaYZPK01V26L_4core7convert4FromNtB5_28SerializedBabeAllowedSlotsV1E4from
438
}
439
440
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssf_1__NtB7_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1W_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssf_1__NtB8_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1X_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssf_1__NtB8_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1X_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssf_1__NtB8_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1X_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssf_1__NtBa_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1X_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssf_1__NtBa_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1Z_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssf_1__NtBb_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB20_7Visitor9visit_seqpEBh_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssf_1__NtBb_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB20_7Visitor9visit_mappEBh_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssf_1__NtBa_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1Y_11deserializeINtNtNtNtB22_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssf_1__NtB7_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1X_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssf_1__NtB8_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Y_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssf_1__NtB8_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Y_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssf_1__NtB8_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Y_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssf_1__NtBa_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB20_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssf_1__NtBb_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB21_7Visitor9visit_seqQINtNtB21_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB23_9___private2de7content7ContentENvMse_B5F_INtB5F_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6W_EEBh_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssf_1__NtBb_36SerializedFinalizedScheduledChangeV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB21_7Visitor9visit_mapQINtNtB21_5value15MapDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterTNtNtNtNtB23_9___private2de7content7ContentB5E_EENCINvB5G_17visit_content_mapB2Q_NtNtCscu7pqq74Vb8_10serde_json5error5ErrorE0EB6W_EEBh_
441
#[serde(deny_unknown_fields)]
442
struct SerializedFinalizedScheduledChangeV1 {
443
    trigger_block_height: u64,
444
    new_authorities_list: Vec<SerializedGrandpaAuthorityV1>,
445
}
446
447
0
#[derive(Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssg_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1N_9serializepEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssg_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1O_9serializeINtNtCscu7pqq74Vb8_10serde_json3ser18RawValueStrEmitterQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB3e_16CompactFormatterEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssg_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1O_9serializeQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechEEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssg_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde3ser9Serialize9serializeNtB3_15___SerializeWithB1O_9serializepEBe_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtB7_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1O_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor9visit_u64pEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor9visit_strpEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1P_7Visitor11visit_bytespEBe_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtBa_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1P_11deserializepEBg_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtBa_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1R_7Visitor9expecting
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtBb_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1S_7Visitor9visit_seqpEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtBe_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1V_7Visitor9visit_seqNtB3_17___DeserializeWithB1T_11deserializepEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtBd_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1U_7Visitor9visit_seqpE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtBb_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1S_7Visitor9visit_mappEBh_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defssh_1__NtBe_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1V_7Visitor9visit_mapNtB3_17___DeserializeWithB1T_11deserializepEBk_
Unexecuted instantiation: _RINvXs_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtBa_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_7___FieldB1Q_11deserializeINtNtNtNtB1U_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBg_
Unexecuted instantiation: _RNvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtB7_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB2_14___FieldVisitorNtB1P_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor9visit_u64NtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor9visit_strNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RINvXNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtB8_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB3_14___FieldVisitorNtB1Q_7Visitor11visit_bytesNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEBe_
Unexecuted instantiation: _RNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtBa_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB5_9___VisitorNtB1S_7Visitor9expecting
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtBe_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1W_7Visitor9visit_seqNtB3_17___DeserializeWithB1U_11deserializeINtNtNtNtB1Y_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RINvXNvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtBe_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB9_9___VisitorNtB1W_7Visitor9visit_mapNtB3_17___DeserializeWithB1U_11deserializeINtNtNtNtB1Y_9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEBk_
Unexecuted instantiation: _RNCINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtBd_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB8_9___VisitorNtB1V_7Visitor9visit_seqQINtNtB1V_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1X_9___private2de7content7ContentENvMse_B5z_INtB5z_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6Q_EE0Bj_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtBb_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1T_7Visitor9visit_seqQINtNtB1T_5value15SeqDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterNtNtNtNtB1V_9___private2de7content7ContentENvMse_B5x_INtB5x_19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorE3newEB6O_EEBh_
Unexecuted instantiation: _RINvXs0_NvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defssh_1__NtBb_28SerializedGrandpaAuthorityV1NtNtCsf0yC2YK6bpM_5serde2de11Deserialize11deserializeNtB6_9___VisitorNtB1T_7Visitor9visit_mapQINtNtB1T_5value15MapDeserializerINtNtNtNtCsaYZPK01V26L_4core4iter8adapters3map3MapINtNtNtCsdZExvAaxgia_5alloc3vec9into_iter8IntoIterTNtNtNtNtB1V_9___private2de7content7ContentB5w_EENCINvB5y_17visit_content_mapB2I_NtNtCscu7pqq74Vb8_10serde_json5error5ErrorE0EB6O_EEBh_
448
#[serde(deny_unknown_fields)]
449
struct SerializedGrandpaAuthorityV1 {
450
    #[serde(
451
        serialize_with = "serialize_bytes",
452
        deserialize_with = "deserialize_hash32"
453
    )]
454
    public_key: [u8; 32],
455
    weight: NonZeroU64,
456
}
457
458
impl<'a> From<header::GrandpaAuthorityRef<'a>> for SerializedGrandpaAuthorityV1 {
459
0
    fn from(from: header::GrandpaAuthorityRef<'a>) -> Self {
460
0
        SerializedGrandpaAuthorityV1 {
461
0
            public_key: *from.public_key,
462
0
            weight: from.weight,
463
0
        }
464
0
    }
Unexecuted instantiation: _RNvXs9_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_28SerializedGrandpaAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header7grandpa19GrandpaAuthorityRefE4from
Unexecuted instantiation: _RNvXs9_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_28SerializedGrandpaAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header7grandpa19GrandpaAuthorityRefE4from
465
}
466
467
impl<'a> From<&'a header::GrandpaAuthority> for SerializedGrandpaAuthorityV1 {
468
0
    fn from(from: &'a header::GrandpaAuthority) -> Self {
469
0
        SerializedGrandpaAuthorityV1 {
470
0
            public_key: from.public_key,
471
0
            weight: from.weight,
472
0
        }
473
0
    }
Unexecuted instantiation: _RNvXsa_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_28SerializedGrandpaAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromRNtNtNtBb_6header7grandpa16GrandpaAuthorityE4from
Unexecuted instantiation: _RNvXsa_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_28SerializedGrandpaAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromRNtNtNtBb_6header7grandpa16GrandpaAuthorityE4from
474
}
475
476
impl From<header::GrandpaAuthority> for SerializedGrandpaAuthorityV1 {
477
0
    fn from(from: header::GrandpaAuthority) -> Self {
478
0
        SerializedGrandpaAuthorityV1 {
479
0
            public_key: from.public_key,
480
0
            weight: from.weight,
481
0
        }
482
0
    }
Unexecuted instantiation: _RNvXsb_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtB5_28SerializedGrandpaAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header7grandpa16GrandpaAuthorityE4from
Unexecuted instantiation: _RNvXsb_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtB5_28SerializedGrandpaAuthorityV1INtNtCsaYZPK01V26L_4core7convert4FromNtNtNtBb_6header7grandpa16GrandpaAuthorityE4from
483
}
484
485
impl From<SerializedGrandpaAuthorityV1> for header::GrandpaAuthority {
486
0
    fn from(from: SerializedGrandpaAuthorityV1) -> Self {
487
0
        header::GrandpaAuthority {
488
0
            public_key: from.public_key,
489
0
            weight: from.weight,
490
0
        }
491
0
    }
Unexecuted instantiation: _RNvXsc_NtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defsNtNtNtBb_6header7grandpa16GrandpaAuthorityINtNtCsaYZPK01V26L_4core7convert4FromNtB5_28SerializedGrandpaAuthorityV1E4from
Unexecuted instantiation: _RNvXsc_NtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defsNtNtNtBb_6header7grandpa16GrandpaAuthorityINtNtCsaYZPK01V26L_4core7convert4FromNtB5_28SerializedGrandpaAuthorityV1E4from
492
}
493
494
0
fn serialize_bytes<S: serde::Serializer>(data: &[u8], serializer: S) -> Result<S::Ok, S::Error> {
495
0
    struct Writer<'a>(&'a [u8]);
496
0
    impl<'a> fmt::Display for Writer<'a> {
497
0
        fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
498
0
            for byte in self.0 {
499
0
                write!(f, "{byte:02x}")?;
500
0
            }
501
0
            Ok(())
502
0
        }
Unexecuted instantiation: _RNvXNvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defs15serialize_bytesNtB2_6WriterNtNtCsaYZPK01V26L_4core3fmt7Display3fmt
Unexecuted instantiation: _RNvXNvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defs15serialize_bytesNtB2_6WriterNtNtCsaYZPK01V26L_4core3fmt7Display3fmt
503
0
    }
504
0
505
0
    serializer.collect_str(&Writer(data))
506
0
}
Unexecuted instantiation: _RINvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defs15serialize_bytespEB8_
Unexecuted instantiation: _RINvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defs15serialize_bytesINtNtCscu7pqq74Vb8_10serde_json3ser18RawValueStrEmitterQINtNtCsdZExvAaxgia_5alloc3vec3VechENtB1n_16CompactFormatterEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defs15serialize_bytesQINtNtCscu7pqq74Vb8_10serde_json3ser10SerializerQINtNtCsdZExvAaxgia_5alloc3vec3VechEEECsDDUKWWCHAU_18smoldot_light_wasm
Unexecuted instantiation: _RINvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defs15serialize_bytespEB8_
507
508
0
fn deserialize_bytes<'de, D: serde::Deserializer<'de>>(
509
0
    deserializer: D,
510
0
) -> Result<Vec<u8>, D::Error> {
511
0
    let string = <&str as serde::Deserialize>::deserialize(deserializer)?;
512
0
    hex::decode(string).map_err(serde::de::Error::custom)
513
0
}
Unexecuted instantiation: _RINvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defs17deserialize_bytespEB8_
Unexecuted instantiation: _RINvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defs17deserialize_bytesINtNtNtNtCsf0yC2YK6bpM_5serde9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEB8_
514
515
0
fn deserialize_hash32<'de, D: serde::Deserializer<'de>>(
516
0
    deserializer: D,
517
0
) -> Result<[u8; 32], D::Error> {
518
0
    let string = <&str as serde::Deserialize>::deserialize(deserializer)?;
519
0
    if string.len() > 64 {
520
0
        return Err(serde::de::Error::custom("invalid hash length"));
521
0
    }
522
0
523
0
    let mut out = [0u8; 32];
524
0
    hex::decode_to_slice(string, &mut out[(32 - string.len() / 2)..])
525
0
        .map_err(serde::de::Error::custom)?;
526
0
    Ok(out)
527
0
}
Unexecuted instantiation: _RINvNtNtNtCsN16ciHI6Qf_7smoldot8database19finalized_serialize4defs18deserialize_hash32pEB8_
Unexecuted instantiation: _RINvNtNtNtCseuYC0Zibziv_7smoldot8database19finalized_serialize4defs18deserialize_hash32INtNtNtNtCsf0yC2YK6bpM_5serde9___private2de7content19ContentDeserializerNtNtCscu7pqq74Vb8_10serde_json5error5ErrorEEB8_