diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs index 1d2e30c46cdf9174fd4c582b9daa1e48c16c323b..7f49e07747315a0785492b266a9fb467bf3a3d3d 100644 --- a/node/src/chain_spec/gdev.rs +++ b/node/src/chain_spec/gdev.rs @@ -15,6 +15,7 @@ // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>. use super::*; +use crate::chain_spec::gen_genesis_data::{genesis_data_to_indexer_export, GenesisIndexerExport}; use common_runtime::constants::*; use common_runtime::entities::IdtyData; use common_runtime::*; @@ -29,6 +30,7 @@ use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_consensus_babe::AuthorityId as BabeId; use sp_core::{sr25519, Encode}; use sp_finality_grandpa::AuthorityId as GrandpaId; +use std::fs; pub type AuthorityKeys = ( AccountId, @@ -284,6 +286,15 @@ fn genesis_data_to_gdev_genesis_conf( genesis_data: super::gen_genesis_data::GenesisData<GenesisParameters, SessionKeys>, wasm_binary: &[u8], ) -> gdev_runtime::GenesisConfig { + if let Ok(path) = std::env::var("DUNITER_GENESIS_EXPORT") { + let export: GenesisIndexerExport = genesis_data_to_indexer_export(&genesis_data); + fs::write( + &path, + serde_json::to_string(&export).expect("should be serializable"), + ) + .expect(format!("Could not export genesis data to {}", &path).as_str()); + } + let super::gen_genesis_data::GenesisData { accounts, certs_by_receiver, diff --git a/node/src/chain_spec/gen_genesis_data.rs b/node/src/chain_spec/gen_genesis_data.rs index a1f549db6bb1b373ca82fcf516f9171075e33306..e25f2c9fcf6146e69625a39151deae5bfbf2e148 100644 --- a/node/src/chain_spec/gen_genesis_data.rs +++ b/node/src/chain_spec/gen_genesis_data.rs @@ -698,3 +698,13 @@ fn to_bn(genesis_timestamp: u64, timestamp: u64) -> u32 { fn validate_idty_name(name: &str) -> bool { name.len() <= 64 } + +pub fn genesis_data_to_indexer_export<P: Default + DeserializeOwned, SK: Decode>( + genesis_data: &GenesisData<P, SK>, +) -> GenesisIndexerExport { + GenesisIndexerExport { + first_ud: genesis_data.first_ud, + first_ud_reeval: genesis_data.first_ud_reeval, + ud: genesis_data.ud, + } +}