Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • nodes/rust/duniter-v2s
  • llaq/lc-core-substrate
  • pini-gh/duniter-v2s
  • vincentux/duniter-v2s
  • mildred/duniter-v2s
  • d0p1/duniter-v2s
  • bgallois/duniter-v2s
  • Nicolas80/duniter-v2s
8 results
Show changes
Commits on Source (4)
......@@ -18,7 +18,7 @@ services:
DUNITER_CHAIN_NAME: "dev"
#DUNITER_DISABLE_PROMETHEUS: "false"
volumes:
- data:/var/lib/lc-core
- data:/var/lib/duniter
volumes:
data:
......@@ -21,6 +21,8 @@ use std::collections::BTreeMap;
type MembershipData = sp_membership::MembershipData<u32>;
const EXISTENTIAL_DEPOSIT: u64 = 100;
#[derive(Clone)]
pub struct GenesisData<Parameters: DeserializeOwned, SessionKeys: Decode> {
pub accounts: BTreeMap<AccountId, GenesisAccountData<u64>>,
......@@ -57,6 +59,8 @@ struct GenesisConfig<Parameters> {
#[serde(rename = "smiths")]
smith_identities: BTreeMap<String, SmithData>,
sudo_key: Option<AccountId>,
#[serde(default)]
wallets: BTreeMap<AccountId, u64>,
}
#[derive(Clone, Deserialize, Serialize)]
......@@ -133,6 +137,7 @@ where
parameters,
identities,
smith_identities,
wallets,
} = genesis_config;
// MONEY AND WOT //
......@@ -145,13 +150,31 @@ where
let mut memberships = BTreeMap::new();
//let mut total_dust = 0;
let mut ud_accounts = BTreeMap::new();
// SIMPLE WALLETS //
let mut wallet_index: u32 = 0;
for (pubkey, balance) in wallets {
wallet_index += 1;
accounts.insert(
pubkey.clone(),
GenesisAccountData {
random_id: H256(blake2_256(&(wallet_index, &pubkey).encode())),
balance,
is_identity: false,
},
);
}
// IDENTITIES //
for (idty_name, identity) in &identities {
if !validate_idty_name(idty_name) {
return Err(format!("Identity name '{}' is invalid", &idty_name));
}
// Money
let balance = if identity.balance >= 100 {
let balance = if identity.balance >= EXISTENTIAL_DEPOSIT {
identity.balance
} else {
//total_dust += identity.balance;
......@@ -221,6 +244,13 @@ where
.get(&idty_name)
.ok_or(format!("Identity '{}' not exist", &idty_name))?;
if identity.balance < EXISTENTIAL_DEPOSIT {
return Err(format!(
"Identity '{}' have balance '{}' < EXISTENTIAL_DEPOSIT",
idty_name, identity.balance,
));
}
// Initial authorities
initial_authorities.insert(*idty_index, (identity.pubkey.clone(), smith_data.authority));
......
......@@ -59,7 +59,7 @@ impl SubstrateCli for Cli {
#[cfg(feature = "gdev")]
"dev" => Box::new(chain_spec::gdev::development_chain_spec()?),
#[cfg(feature = "gdev")]
"local" => Box::new(chain_spec::gdev::local_testnet_config(1, 3, 4)?),
"local" | "gdev_local" => Box::new(chain_spec::gdev::local_testnet_config(1, 3, 4)?),
#[cfg(feature = "gdev")]
"local2" => Box::new(chain_spec::gdev::local_testnet_config(2, 3, 4)?),
#[cfg(feature = "gdev")]
......