mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
Ensure any call to disable peer has a reason (#321)
* Fix warnings in libp2p * Force a reason when you use the fatalist disable_peer * Print more information * Slightly more concise ref-fu * Tracing for figuring out what's going into genesis * Merge * Fxi test
This commit is contained in:
@@ -592,23 +592,22 @@ impl<T: Trait> primitives::BuildStorage for GenesisConfig<T>
|
||||
{
|
||||
fn build_storage(self) -> ::std::result::Result<runtime_io::TestExternalities, String> {
|
||||
use codec::Encode;
|
||||
use runtime_io::twox_128;
|
||||
|
||||
Ok(map![
|
||||
twox_128(<CandidacyBond<T>>::key()).to_vec() => self.candidacy_bond.encode(),
|
||||
twox_128(<VotingBond<T>>::key()).to_vec() => self.voter_bond.encode(),
|
||||
twox_128(<PresentSlashPerVoter<T>>::key()).to_vec() => self.present_slash_per_voter.encode(),
|
||||
twox_128(<CarryCount<T>>::key()).to_vec() => self.carry_count.encode(),
|
||||
twox_128(<PresentationDuration<T>>::key()).to_vec() => self.presentation_duration.encode(),
|
||||
twox_128(<VotingPeriod<T>>::key()).to_vec() => self.approval_voting_period.encode(),
|
||||
twox_128(<TermDuration<T>>::key()).to_vec() => self.term_duration.encode(),
|
||||
twox_128(<DesiredSeats<T>>::key()).to_vec() => self.desired_seats.encode(),
|
||||
twox_128(<InactiveGracePeriod<T>>::key()).to_vec() => self.inactive_grace_period.encode(),
|
||||
twox_128(<ActiveCouncil<T>>::key()).to_vec() => self.active_council.encode(),
|
||||
Self::hash(<CandidacyBond<T>>::key()).to_vec() => self.candidacy_bond.encode(),
|
||||
Self::hash(<VotingBond<T>>::key()).to_vec() => self.voter_bond.encode(),
|
||||
Self::hash(<PresentSlashPerVoter<T>>::key()).to_vec() => self.present_slash_per_voter.encode(),
|
||||
Self::hash(<CarryCount<T>>::key()).to_vec() => self.carry_count.encode(),
|
||||
Self::hash(<PresentationDuration<T>>::key()).to_vec() => self.presentation_duration.encode(),
|
||||
Self::hash(<VotingPeriod<T>>::key()).to_vec() => self.approval_voting_period.encode(),
|
||||
Self::hash(<TermDuration<T>>::key()).to_vec() => self.term_duration.encode(),
|
||||
Self::hash(<DesiredSeats<T>>::key()).to_vec() => self.desired_seats.encode(),
|
||||
Self::hash(<InactiveGracePeriod<T>>::key()).to_vec() => self.inactive_grace_period.encode(),
|
||||
Self::hash(<ActiveCouncil<T>>::key()).to_vec() => self.active_council.encode(),
|
||||
|
||||
twox_128(<voting::CooloffPeriod<T>>::key()).to_vec() => self.cooloff_period.encode(),
|
||||
twox_128(<voting::VotingPeriod<T>>::key()).to_vec() => self.voting_period.encode(),
|
||||
twox_128(<voting::Proposals<T>>::key()).to_vec() => vec![0u8; 0].encode()
|
||||
Self::hash(<voting::CooloffPeriod<T>>::key()).to_vec() => self.cooloff_period.encode(),
|
||||
Self::hash(<voting::VotingPeriod<T>>::key()).to_vec() => self.voting_period.encode(),
|
||||
Self::hash(<voting::Proposals<T>>::key()).to_vec() => vec![0u8; 0].encode()
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -340,15 +340,14 @@ impl<T: Trait> primitives::BuildStorage for GenesisConfig<T>
|
||||
{
|
||||
fn build_storage(self) -> ::std::result::Result<runtime_io::TestExternalities, String> {
|
||||
use codec::Encode;
|
||||
use runtime_io::twox_128;
|
||||
|
||||
Ok(map![
|
||||
twox_128(<LaunchPeriod<T>>::key()).to_vec() => self.launch_period.encode(),
|
||||
twox_128(<VotingPeriod<T>>::key()).to_vec() => self.voting_period.encode(),
|
||||
twox_128(<MinimumDeposit<T>>::key()).to_vec() => self.minimum_deposit.encode(),
|
||||
twox_128(<ReferendumCount<T>>::key()).to_vec() => (0 as ReferendumIndex).encode(),
|
||||
twox_128(<NextTally<T>>::key()).to_vec() => (0 as ReferendumIndex).encode(),
|
||||
twox_128(<PublicPropCount<T>>::key()).to_vec() => (0 as PropIndex).encode()
|
||||
Self::hash(<LaunchPeriod<T>>::key()).to_vec() => self.launch_period.encode(),
|
||||
Self::hash(<VotingPeriod<T>>::key()).to_vec() => self.voting_period.encode(),
|
||||
Self::hash(<MinimumDeposit<T>>::key()).to_vec() => self.minimum_deposit.encode(),
|
||||
Self::hash(<ReferendumCount<T>>::key()).to_vec() => (0 as ReferendumIndex).encode(),
|
||||
Self::hash(<NextTally<T>>::key()).to_vec() => (0 as ReferendumIndex).encode(),
|
||||
Self::hash(<PublicPropCount<T>>::key()).to_vec() => (0 as PropIndex).encode()
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ substrate-primitives = { path = "../../primitives", default_features = false }
|
||||
substrate-runtime-std = { path = "../../runtime-std", default_features = false }
|
||||
substrate-runtime-io = { path = "../../runtime-io", default_features = false }
|
||||
substrate-runtime-support = { path = "../../runtime-support", default_features = false }
|
||||
log = {version = "0.3", optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
serde_json = "1.0"
|
||||
@@ -23,6 +24,7 @@ std = [
|
||||
"num-traits/std",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"log",
|
||||
"substrate-runtime-std/std",
|
||||
"substrate-runtime-io/std",
|
||||
"substrate-runtime-support/std",
|
||||
|
||||
@@ -26,6 +26,10 @@ extern crate serde;
|
||||
#[macro_use]
|
||||
extern crate serde_derive;
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
|
||||
extern crate num_traits;
|
||||
extern crate integer_sqrt;
|
||||
extern crate substrate_runtime_std as rstd;
|
||||
@@ -43,6 +47,9 @@ use std::collections::HashMap;
|
||||
use rstd::prelude::*;
|
||||
use substrate_primitives::hash::{H256, H512};
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
use substrate_primitives::hexdisplay::ascii_format;
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
pub mod testing;
|
||||
|
||||
@@ -59,6 +66,11 @@ pub type StorageMap = HashMap<Vec<u8>, Vec<u8>>;
|
||||
/// Complex storage builder stuff.
|
||||
#[cfg(feature = "std")]
|
||||
pub trait BuildStorage {
|
||||
fn hash(data: &[u8]) -> [u8; 16] {
|
||||
let r = runtime_io::twox_128(data);
|
||||
trace!(target: "build_storage", "{} <= {}", substrate_primitives::hexdisplay::HexDisplay::from(&r), ascii_format(data));
|
||||
r
|
||||
}
|
||||
fn build_storage(self) -> Result<StorageMap, String>;
|
||||
}
|
||||
|
||||
|
||||
@@ -245,15 +245,14 @@ impl<T: Trait> Default for GenesisConfig<T> {
|
||||
impl<T: Trait> primitives::BuildStorage for GenesisConfig<T>
|
||||
{
|
||||
fn build_storage(self) -> ::std::result::Result<runtime_io::TestExternalities, String> {
|
||||
use runtime_io::twox_128;
|
||||
use codec::Encode;
|
||||
use primitives::traits::As;
|
||||
Ok(map![
|
||||
twox_128(<SessionLength<T>>::key()).to_vec() => self.session_length.encode(),
|
||||
twox_128(<CurrentIndex<T>>::key()).to_vec() => T::BlockNumber::sa(0).encode(),
|
||||
twox_128(<CurrentStart<T>>::key()).to_vec() => T::Moment::zero().encode(),
|
||||
twox_128(<Validators<T>>::key()).to_vec() => self.validators.encode(),
|
||||
twox_128(<BrokenPercentLate<T>>::key()).to_vec() => self.broken_percent_late.encode()
|
||||
Self::hash(<SessionLength<T>>::key()).to_vec() => self.session_length.encode(),
|
||||
Self::hash(<CurrentIndex<T>>::key()).to_vec() => T::BlockNumber::sa(0).encode(),
|
||||
Self::hash(<CurrentStart<T>>::key()).to_vec() => T::Moment::zero().encode(),
|
||||
Self::hash(<Validators<T>>::key()).to_vec() => self.validators.encode(),
|
||||
Self::hash(<BrokenPercentLate<T>>::key()).to_vec() => self.broken_percent_late.encode()
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#![cfg(feature = "std")]
|
||||
|
||||
use rstd::prelude::*;
|
||||
use runtime_io::twox_128;
|
||||
use codec::Encode;
|
||||
use runtime_support::{StorageValue, StorageMap};
|
||||
use primitives::traits::{Zero, As};
|
||||
@@ -127,31 +126,31 @@ impl<T: Trait> primitives::BuildStorage for GenesisConfig<T> {
|
||||
let total_stake: T::Balance = self.balances.iter().fold(Zero::zero(), |acc, &(_, n)| acc + n);
|
||||
|
||||
let mut r: runtime_io::TestExternalities = map![
|
||||
twox_128(<NextEnumSet<T>>::key()).to_vec() => T::AccountIndex::sa(self.balances.len() / ENUM_SET_SIZE).encode(),
|
||||
twox_128(<Intentions<T>>::key()).to_vec() => self.intentions.encode(),
|
||||
twox_128(<SessionsPerEra<T>>::key()).to_vec() => self.sessions_per_era.encode(),
|
||||
twox_128(<ValidatorCount<T>>::key()).to_vec() => self.validator_count.encode(),
|
||||
twox_128(<BondingDuration<T>>::key()).to_vec() => self.bonding_duration.encode(),
|
||||
twox_128(<TransactionBaseFee<T>>::key()).to_vec() => self.transaction_base_fee.encode(),
|
||||
twox_128(<TransactionByteFee<T>>::key()).to_vec() => self.transaction_byte_fee.encode(),
|
||||
twox_128(<TransferFee<T>>::key()).to_vec() => self.transfer_fee.encode(),
|
||||
twox_128(<CreationFee<T>>::key()).to_vec() => self.creation_fee.encode(),
|
||||
twox_128(<ContractFee<T>>::key()).to_vec() => self.contract_fee.encode(),
|
||||
twox_128(<ExistentialDeposit<T>>::key()).to_vec() => self.existential_deposit.encode(),
|
||||
twox_128(<ReclaimRebate<T>>::key()).to_vec() => self.reclaim_rebate.encode(),
|
||||
twox_128(<CurrentEra<T>>::key()).to_vec() => self.current_era.encode(),
|
||||
twox_128(<SessionReward<T>>::key()).to_vec() => self.session_reward.encode(),
|
||||
twox_128(<EarlyEraSlash<T>>::key()).to_vec() => self.early_era_slash.encode(),
|
||||
twox_128(<TotalStake<T>>::key()).to_vec() => total_stake.encode()
|
||||
Self::hash(<NextEnumSet<T>>::key()).to_vec() => T::AccountIndex::sa(self.balances.len() / ENUM_SET_SIZE).encode(),
|
||||
Self::hash(<Intentions<T>>::key()).to_vec() => self.intentions.encode(),
|
||||
Self::hash(<SessionsPerEra<T>>::key()).to_vec() => self.sessions_per_era.encode(),
|
||||
Self::hash(<ValidatorCount<T>>::key()).to_vec() => self.validator_count.encode(),
|
||||
Self::hash(<BondingDuration<T>>::key()).to_vec() => self.bonding_duration.encode(),
|
||||
Self::hash(<TransactionBaseFee<T>>::key()).to_vec() => self.transaction_base_fee.encode(),
|
||||
Self::hash(<TransactionByteFee<T>>::key()).to_vec() => self.transaction_byte_fee.encode(),
|
||||
Self::hash(<TransferFee<T>>::key()).to_vec() => self.transfer_fee.encode(),
|
||||
Self::hash(<CreationFee<T>>::key()).to_vec() => self.creation_fee.encode(),
|
||||
Self::hash(<ContractFee<T>>::key()).to_vec() => self.contract_fee.encode(),
|
||||
Self::hash(<ExistentialDeposit<T>>::key()).to_vec() => self.existential_deposit.encode(),
|
||||
Self::hash(<ReclaimRebate<T>>::key()).to_vec() => self.reclaim_rebate.encode(),
|
||||
Self::hash(<CurrentEra<T>>::key()).to_vec() => self.current_era.encode(),
|
||||
Self::hash(<SessionReward<T>>::key()).to_vec() => self.session_reward.encode(),
|
||||
Self::hash(<EarlyEraSlash<T>>::key()).to_vec() => self.early_era_slash.encode(),
|
||||
Self::hash(<TotalStake<T>>::key()).to_vec() => total_stake.encode()
|
||||
];
|
||||
|
||||
let ids: Vec<_> = self.balances.iter().map(|x| x.0.clone()).collect();
|
||||
for i in 0..(ids.len() + ENUM_SET_SIZE - 1) / ENUM_SET_SIZE {
|
||||
r.insert(twox_128(&<EnumSet<T>>::key_for(T::AccountIndex::sa(i))).to_vec(),
|
||||
r.insert(Self::hash(&<EnumSet<T>>::key_for(T::AccountIndex::sa(i))).to_vec(),
|
||||
ids[i * ENUM_SET_SIZE..ids.len().min((i + 1) * ENUM_SET_SIZE)].to_owned().encode());
|
||||
}
|
||||
for (who, value) in self.balances.into_iter() {
|
||||
r.insert(twox_128(&<FreeBalance<T>>::key_for(who)).to_vec(), value.encode());
|
||||
r.insert(Self::hash(&<FreeBalance<T>>::key_for(who)).to_vec(), value.encode());
|
||||
}
|
||||
Ok(r)
|
||||
}
|
||||
|
||||
@@ -208,15 +208,14 @@ impl<T: Trait> Default for GenesisConfig<T> {
|
||||
impl<T: Trait> primitives::BuildStorage for GenesisConfig<T>
|
||||
{
|
||||
fn build_storage(self) -> Result<runtime_io::TestExternalities, String> {
|
||||
use runtime_io::twox_128;
|
||||
use codec::Encode;
|
||||
|
||||
Ok(map![
|
||||
twox_128(&<BlockHash<T>>::key_for(T::BlockNumber::zero())).to_vec() => [69u8; 32].encode(),
|
||||
twox_128(<Number<T>>::key()).to_vec() => 1u64.encode(),
|
||||
twox_128(<ParentHash<T>>::key()).to_vec() => [69u8; 32].encode(),
|
||||
twox_128(<RandomSeed<T>>::key()).to_vec() => [0u8; 32].encode(),
|
||||
twox_128(<ExtrinsicIndex<T>>::key()).to_vec() => [0u8; 4].encode()
|
||||
Self::hash(&<BlockHash<T>>::key_for(T::BlockNumber::zero())).to_vec() => [69u8; 32].encode(),
|
||||
Self::hash(<Number<T>>::key()).to_vec() => 1u64.encode(),
|
||||
Self::hash(<ParentHash<T>>::key()).to_vec() => [69u8; 32].encode(),
|
||||
Self::hash(<RandomSeed<T>>::key()).to_vec() => [0u8; 32].encode(),
|
||||
Self::hash(<ExtrinsicIndex<T>>::key()).to_vec() => [0u8; 4].encode()
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,11 +127,10 @@ impl<T: Trait> Default for GenesisConfig<T> {
|
||||
impl<T: Trait> runtime_primitives::BuildStorage for GenesisConfig<T>
|
||||
{
|
||||
fn build_storage(self) -> ::std::result::Result<runtime_primitives::StorageMap, String> {
|
||||
use runtime_io::twox_128;
|
||||
use codec::Encode;
|
||||
Ok(map![
|
||||
twox_128(<BlockPeriod<T>>::key()).to_vec() => self.period.encode(),
|
||||
twox_128(<Now<T>>::key()).to_vec() => T::Moment::sa(0).encode()
|
||||
Self::hash(<BlockPeriod<T>>::key()).to_vec() => self.period.encode(),
|
||||
Self::hash(<Now<T>>::key()).to_vec() => T::Moment::sa(0).encode()
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user