mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 04:07:57 +00:00
Avoid serializing into json::Value (#313)
This commit is contained in:
committed by
Gav Wood
parent
58c84d49da
commit
0665cfa9fc
@@ -114,6 +114,14 @@ impl ChainSpec {
|
||||
|
||||
/// Dump to json string.
|
||||
pub fn to_json(self, raw: bool) -> Result<String, String> {
|
||||
#[derive(Serialize, Deserialize)]
|
||||
struct Container {
|
||||
#[serde(flatten)]
|
||||
spec: ChainSpecFile,
|
||||
#[serde(flatten)]
|
||||
genesis: Genesis,
|
||||
|
||||
};
|
||||
let genesis = match (raw, self.genesis.resolve()?) {
|
||||
(true, Genesis::Runtime(g)) => {
|
||||
let storage = g.build_storage()?.into_iter()
|
||||
@@ -124,11 +132,10 @@ impl ChainSpec {
|
||||
},
|
||||
(_, genesis) => genesis,
|
||||
};
|
||||
let mut spec = json::to_value(self.spec).map_err(|e| format!("Error generating spec json: {}", e))?;
|
||||
{
|
||||
let map = spec.as_object_mut().expect("spec is an object");
|
||||
map.insert("genesis".to_owned(), json::to_value(genesis).map_err(|e| format!("Error generating genesis json: {}", e))?);
|
||||
}
|
||||
let spec = Container {
|
||||
spec: self.spec,
|
||||
genesis,
|
||||
};
|
||||
json::to_string_pretty(&spec).map_err(|e| format!("Error generating spec json: {}", e))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user