Skip to content
Snippets Groups Projects
Commit bcb355f4 authored by Jim Posen's avatar Jim Posen
Browse files

Correctly serialize code in chain spec as hex.

Due to a bug, the runtime code was previously serialized as a JSON
array of numbers, pretty printed one byte per line.
parent ac78c908
Branches
Tags
No related merge requests found
......@@ -23,9 +23,9 @@ use quote::quote;
use super::super::{DeclStorageDefExt, StorageLineTypeDef};
pub struct GenesisConfigFieldDef {
pub doc: Vec<syn::Meta>,
pub name: syn::Ident,
pub typ: syn::Type,
pub attrs: Vec<syn::Meta>,
pub default: TokenStream,
}
......@@ -114,17 +114,16 @@ impl GenesisConfigDef {
.unwrap_or_else(|| quote!( Default::default() ));
config_field_defs.push(GenesisConfigFieldDef {
doc: line.doc_attrs.clone(),
name: config_field,
typ,
attrs: line.doc_attrs.clone(),
default,
});
}
for line in &def.extra_genesis_config_lines {
let doc = line.attrs.iter()
.filter_map(|a| a.parse_meta().ok())
.filter(|m| m.name() == "doc")
let attrs = line.attrs.iter()
.map(|a| a.parse_meta().expect("attribute cannot be parsed"))
.collect();
let default = line.default.as_ref().map(|e| quote!( #e ))
......@@ -132,9 +131,9 @@ impl GenesisConfigDef {
config_field_defs.push(GenesisConfigFieldDef {
doc,
name: line.name.clone(),
typ: line.typ.clone(),
attrs,
default,
});
}
......
......@@ -33,13 +33,13 @@ fn decl_genesis_config_and_impl_default(
genesis_config: &GenesisConfigDef,
) -> TokenStream {
let config_fields = genesis_config.fields.iter().map(|field| {
let (name, typ, doc) = (&field.name, &field.typ, &field.doc);
quote!( #( #[ #doc] )* pub #name: #typ, )
let (name, typ, attrs) = (&field.name, &field.typ, &field.attrs);
quote!( #( #[ #attrs] )* pub #name: #typ, )
});
let config_field_defaults = genesis_config.fields.iter().map(|field| {
let (name, default, doc) = (&field.name, &field.default, &field.doc);
quote!( #( #[ #doc] )* #name: #default, )
let (name, default) = (&field.name, &field.default);
quote!( #name: #default, )
});
let serde_bug_bound = if !genesis_config.fields.is_empty() {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment