Unverified Commit 185384a8 authored by Nikolay Volf's avatar Nikolay Volf Committed by GitHub
Browse files

Update to latest substrate master (#853)



* try to update

* latest updates

* final fixes

* Fix claim w/ vesting logic

* Make claim tests a bit better
Co-authored-by: Shawn Tabrizi's avatarShawn Tabrizi <shawntabrizi@gmail.com>
parent 4e4a9778
Pipeline #79684 passed with stages
in 23 minutes and 15 seconds
...@@ -32,13 +32,12 @@ use runtime_common::{attestations, claims, parachains, registrar, slots, ...@@ -32,13 +32,12 @@ use runtime_common::{attestations, claims, parachains, registrar, slots,
NegativeImbalance, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio, NegativeImbalance, BlockHashCount, MaximumBlockWeight, AvailableBlockRatio,
MaximumBlockLength, MaximumBlockLength,
}; };
use sp_runtime::{ use sp_runtime::{
create_runtime_str, generic, impl_opaque_keys, create_runtime_str, generic, impl_opaque_keys,
ApplyExtrinsicResult, Percent, Permill, Perbill, RuntimeDebug, ApplyExtrinsicResult, Percent, Permill, Perbill, RuntimeDebug,
transaction_validity::{TransactionValidity, InvalidTransaction, TransactionValidityError}, transaction_validity::{TransactionValidity, InvalidTransaction, TransactionValidityError},
curve::PiecewiseLinear, curve::PiecewiseLinear,
traits::{BlakeTwo256, Block as BlockT, StaticLookup, SignedExtension, OpaqueKeys, ConvertInto}, traits::{BlakeTwo256, Block as BlockT, SignedExtension, OpaqueKeys, ConvertInto, IdentityLookup},
}; };
use version::RuntimeVersion; use version::RuntimeVersion;
use grandpa::{AuthorityId as GrandpaId, fg_primitives}; use grandpa::{AuthorityId as GrandpaId, fg_primitives};
...@@ -77,8 +76,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { ...@@ -77,8 +76,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
spec_name: create_runtime_str!("kusama"), spec_name: create_runtime_str!("kusama"),
impl_name: create_runtime_str!("parity-kusama"), impl_name: create_runtime_str!("parity-kusama"),
authoring_version: 2, authoring_version: 2,
spec_version: 1048, spec_version: 1049,
impl_version: 0, impl_version: 1,
apis: RUNTIME_API_VERSIONS, apis: RUNTIME_API_VERSIONS,
}; };
...@@ -127,7 +126,7 @@ impl system::Trait for Runtime { ...@@ -127,7 +126,7 @@ impl system::Trait for Runtime {
type Hash = Hash; type Hash = Hash;
type Hashing = BlakeTwo256; type Hashing = BlakeTwo256;
type AccountId = AccountId; type AccountId = AccountId;
type Lookup = Indices; type Lookup = IdentityLookup<Self::AccountId>;
type Header = generic::Header<BlockNumber, BlakeTwo256>; type Header = generic::Header<BlockNumber, BlakeTwo256>;
type Event = Event; type Event = Event;
type BlockHashCount = BlockHashCount; type BlockHashCount = BlockHashCount;
...@@ -136,6 +135,9 @@ impl system::Trait for Runtime { ...@@ -136,6 +135,9 @@ impl system::Trait for Runtime {
type AvailableBlockRatio = AvailableBlockRatio; type AvailableBlockRatio = AvailableBlockRatio;
type Version = Version; type Version = Version;
type ModuleToIndex = ModuleToIndex; type ModuleToIndex = ModuleToIndex;
type AccountData = balances::AccountData<Balance>;
type OnNewAccount = ();
type OnReapAccount = (Balances, Staking, Session, Recovery, Democracy);
} }
parameter_types! { parameter_types! {
...@@ -157,14 +159,13 @@ parameter_types! { ...@@ -157,14 +159,13 @@ parameter_types! {
impl indices::Trait for Runtime { impl indices::Trait for Runtime {
type AccountIndex = AccountIndex; type AccountIndex = AccountIndex;
type Currency = Balances;
type Deposit = IndexDeposit;
type Event = Event; type Event = Event;
type IsDeadAccount = Balances;
type ResolveHint = indices::SimpleResolveHint<Self::AccountId, Self::AccountIndex>;
} }
parameter_types! { parameter_types! {
pub const ExistentialDeposit: Balance = 1 * CENTS; pub const ExistentialDeposit: Balance = 1 * CENTS;
pub const CreationFee: Balance = 1 * CENTS;
} }
/// Splits fees 80/20 between treasury and block author. /// Splits fees 80/20 between treasury and block author.
...@@ -180,10 +181,7 @@ impl balances::Trait for Runtime { ...@@ -180,10 +181,7 @@ impl balances::Trait for Runtime {
type DustRemoval = (); type DustRemoval = ();
type Event = Event; type Event = Event;
type ExistentialDeposit = ExistentialDeposit; type ExistentialDeposit = ExistentialDeposit;
type OnReapAccount = (Staking, Session, Democracy); type AccountStore = System;
type OnNewAccount = ();
type TransferPayment = ();
type CreationFee = CreationFee;
} }
parameter_types! { parameter_types! {
...@@ -625,7 +623,7 @@ construct_runtime! { ...@@ -625,7 +623,7 @@ construct_runtime! {
// Consensus support. // Consensus support.
Authorship: authorship::{Module, Call, Storage}, Authorship: authorship::{Module, Call, Storage},
Staking: staking, Staking: staking::{Module, Call, Storage, Config<T>, Event<T>},
Offences: offences::{Module, Call, Storage, Event}, Offences: offences::{Module, Call, Storage, Event},
Session: session::{Module, Call, Storage, Event, Config<T>}, Session: session::{Module, Call, Storage, Event, Config<T>},
FinalityTracker: finality_tracker::{Module, Call, Inherent}, FinalityTracker: finality_tracker::{Module, Call, Inherent},
...@@ -669,7 +667,7 @@ construct_runtime! { ...@@ -669,7 +667,7 @@ construct_runtime! {
} }
/// The address format for describing accounts. /// The address format for describing accounts.
pub type Address = <Indices as StaticLookup>::Source; pub type Address = AccountId;
/// Block header type as expected by this runtime. /// Block header type as expected by this runtime.
pub type Header = generic::Header<BlockNumber, BlakeTwo256>; pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
/// Block type as expected by this runtime. /// Block type as expected by this runtime.
...@@ -722,6 +720,10 @@ sp_api::impl_runtime_apis! { ...@@ -722,6 +720,10 @@ sp_api::impl_runtime_apis! {
Executive::apply_extrinsic(extrinsic) Executive::apply_extrinsic(extrinsic)
} }
fn apply_trusted_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {
Executive::apply_extrinsic(extrinsic)
}
fn finalize_block() -> <Block as BlockT>::Header { fn finalize_block() -> <Block as BlockT>::Header {
Executive::finalize_block() Executive::finalize_block()
} }
...@@ -807,6 +809,10 @@ sp_api::impl_runtime_apis! { ...@@ -807,6 +809,10 @@ sp_api::impl_runtime_apis! {
secondary_slots: true, secondary_slots: true,
} }
} }
fn current_epoch_start() -> babe_primitives::SlotNumber {
Babe::current_epoch_start()
}
} }
impl authority_discovery_primitives::AuthorityDiscoveryApi<Block> for Runtime { impl authority_discovery_primitives::AuthorityDiscoveryApi<Block> for Runtime {
......
[package] [package]
name = "polkadot-runtime" name = "polkadot-runtime"
version = "0.7.20" version = "0.7.21"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018" edition = "2018"
build = "build.rs" build = "build.rs"
...@@ -48,7 +48,7 @@ offences = { package = "pallet-offences", git = "https://github.com/paritytech/s ...@@ -48,7 +48,7 @@ offences = { package = "pallet-offences", git = "https://github.com/paritytech/s
randomness-collective-flip = { package = "pallet-randomness-collective-flip", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false } randomness-collective-flip = { package = "pallet-randomness-collective-flip", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false }
session = { package = "pallet-session", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false } session = { package = "pallet-session", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false }
frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false } frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false }
staking = { package = "pallet-staking", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false, features = ["migrate"] } staking = { package = "pallet-staking", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false }
pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "polkadot-master" } pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "polkadot-master" }
system = { package = "frame-system", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false } system = { package = "frame-system", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false }
system_rpc_runtime_api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false } system_rpc_runtime_api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", branch = "polkadot-master", default-features = false }
......
...@@ -38,7 +38,10 @@ use sp_runtime::{ ...@@ -38,7 +38,10 @@ use sp_runtime::{
ApplyExtrinsicResult, Percent, Permill, Perbill, RuntimeDebug, ApplyExtrinsicResult, Percent, Permill, Perbill, RuntimeDebug,
transaction_validity::{TransactionValidity, InvalidTransaction, TransactionValidityError}, transaction_validity::{TransactionValidity, InvalidTransaction, TransactionValidityError},
curve::PiecewiseLinear, curve::PiecewiseLinear,
traits::{BlakeTwo256, Block as BlockT, StaticLookup, SignedExtension, OpaqueKeys, ConvertInto}, traits::{
BlakeTwo256, Block as BlockT, SignedExtension, OpaqueKeys, ConvertInto,
IdentityLookup
},
}; };
use version::RuntimeVersion; use version::RuntimeVersion;
use grandpa::{AuthorityId as GrandpaId, fg_primitives}; use grandpa::{AuthorityId as GrandpaId, fg_primitives};
...@@ -78,7 +81,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { ...@@ -78,7 +81,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
spec_name: create_runtime_str!("polkadot"), spec_name: create_runtime_str!("polkadot"),
impl_name: create_runtime_str!("parity-polkadot"), impl_name: create_runtime_str!("parity-polkadot"),
authoring_version: 2, authoring_version: 2,
spec_version: 1003, spec_version: 1004,
impl_version: 0, impl_version: 0,
apis: RUNTIME_API_VERSIONS, apis: RUNTIME_API_VERSIONS,
}; };
...@@ -131,7 +134,7 @@ impl system::Trait for Runtime { ...@@ -131,7 +134,7 @@ impl system::Trait for Runtime {
type Hash = Hash; type Hash = Hash;
type Hashing = BlakeTwo256; type Hashing = BlakeTwo256;
type AccountId = AccountId; type AccountId = AccountId;
type Lookup = Indices; type Lookup = IdentityLookup<AccountId>;
type Header = generic::Header<BlockNumber, BlakeTwo256>; type Header = generic::Header<BlockNumber, BlakeTwo256>;
type Event = Event; type Event = Event;
type BlockHashCount = BlockHashCount; type BlockHashCount = BlockHashCount;
...@@ -140,6 +143,9 @@ impl system::Trait for Runtime { ...@@ -140,6 +143,9 @@ impl system::Trait for Runtime {
type AvailableBlockRatio = AvailableBlockRatio; type AvailableBlockRatio = AvailableBlockRatio;
type Version = Version; type Version = Version;
type ModuleToIndex = ModuleToIndex; type ModuleToIndex = ModuleToIndex;
type AccountData = balances::AccountData<Balance>;
type OnNewAccount = ();
type OnReapAccount = (Balances, Staking, Session, Democracy);
} }
parameter_types! { parameter_types! {
...@@ -161,14 +167,13 @@ parameter_types! { ...@@ -161,14 +167,13 @@ parameter_types! {
impl indices::Trait for Runtime { impl indices::Trait for Runtime {
type AccountIndex = AccountIndex; type AccountIndex = AccountIndex;
type Currency = Balances;
type Deposit = IndexDeposit;
type Event = Event; type Event = Event;
type IsDeadAccount = Balances;
type ResolveHint = indices::SimpleResolveHint<Self::AccountId, Self::AccountIndex>;
} }
parameter_types! { parameter_types! {
pub const ExistentialDeposit: Balance = 100 * CENTS; pub const ExistentialDeposit: Balance = 100 * CENTS;
pub const CreationFee: Balance = 1 * CENTS;
} }
/// Splits fees 80/20 between treasury and block author. /// Splits fees 80/20 between treasury and block author.
...@@ -184,10 +189,7 @@ impl balances::Trait for Runtime { ...@@ -184,10 +189,7 @@ impl balances::Trait for Runtime {
type Event = Event; type Event = Event;
type DustRemoval = (); type DustRemoval = ();
type ExistentialDeposit = ExistentialDeposit; type ExistentialDeposit = ExistentialDeposit;
type OnReapAccount = (Staking, Session, Democracy); type AccountStore = System;
type OnNewAccount = ();
type TransferPayment = ();
type CreationFee = CreationFee;
} }
parameter_types! { parameter_types! {
...@@ -529,7 +531,7 @@ impl vesting::Trait for Runtime { ...@@ -529,7 +531,7 @@ impl vesting::Trait for Runtime {
impl sudo::Trait for Runtime { impl sudo::Trait for Runtime {
type Event = Event; type Event = Event;
type Proposal = Call; type Call = Call;
} }
construct_runtime! { construct_runtime! {
...@@ -546,13 +548,13 @@ construct_runtime! { ...@@ -546,13 +548,13 @@ construct_runtime! {
Babe: babe::{Module, Call, Storage, Config, Inherent(Timestamp)}, Babe: babe::{Module, Call, Storage, Config, Inherent(Timestamp)},
Timestamp: timestamp::{Module, Call, Storage, Inherent}, Timestamp: timestamp::{Module, Call, Storage, Inherent},
Indices: indices, Indices: indices::{Module, Call, Storage, Config<T>, Event<T>},
Balances: balances::{Module, Call, Storage, Config<T>, Event<T>}, Balances: balances::{Module, Call, Storage, Config<T>, Event<T>},
TransactionPayment: transaction_payment::{Module, Storage}, TransactionPayment: transaction_payment::{Module, Storage},
// Consensus support. // Consensus support.
Authorship: authorship::{Module, Call, Storage}, Authorship: authorship::{Module, Call, Storage},
Staking: staking::{default}, Staking: staking::{Module, Call, Storage, Config<T>, Event<T>},
Offences: offences::{Module, Call, Storage, Event}, Offences: offences::{Module, Call, Storage, Event},
Session: session::{Module, Call, Storage, Event, Config<T>}, Session: session::{Module, Call, Storage, Event, Config<T>},
FinalityTracker: finality_tracker::{Module, Call, Inherent}, FinalityTracker: finality_tracker::{Module, Call, Inherent},
...@@ -581,12 +583,12 @@ construct_runtime! { ...@@ -581,12 +583,12 @@ construct_runtime! {
Vesting: vesting::{Module, Call, Storage, Event<T>, Config<T>}, Vesting: vesting::{Module, Call, Storage, Event<T>, Config<T>},
// Sudo. Last module. Usable initially, but removed once governance enabled. // Sudo. Last module. Usable initially, but removed once governance enabled.
Sudo: sudo, Sudo: sudo::{Module, Call, Storage, Config<T>, Event<T>},
} }
} }
/// The address format for describing accounts. /// The address format for describing accounts.
pub type Address = <Indices as StaticLookup>::Source; pub type Address = AccountId;
/// Block header type as expected by this runtime. /// Block header type as expected by this runtime.
pub type Header = generic::Header<BlockNumber, BlakeTwo256>; pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
/// Block type as expected by this runtime. /// Block type as expected by this runtime.
...@@ -640,6 +642,10 @@ sp_api::impl_runtime_apis! { ...@@ -640,6 +642,10 @@ sp_api::impl_runtime_apis! {
Executive::apply_extrinsic(extrinsic) Executive::apply_extrinsic(extrinsic)
} }
fn apply_trusted_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {
Executive::apply_extrinsic(extrinsic)
}
fn finalize_block() -> <Block as BlockT>::Header { fn finalize_block() -> <Block as BlockT>::Header {
Executive::finalize_block() Executive::finalize_block()
} }
...@@ -725,6 +731,10 @@ sp_api::impl_runtime_apis! { ...@@ -725,6 +731,10 @@ sp_api::impl_runtime_apis! {
secondary_slots: true, secondary_slots: true,
} }
} }
fn current_epoch_start() -> babe_primitives::SlotNumber {
Babe::current_epoch_start()
}
} }
impl authority_discovery_primitives::AuthorityDiscoveryApi<Block> for Runtime { impl authority_discovery_primitives::AuthorityDiscoveryApi<Block> for Runtime {
......
[package] [package]
name = "polkadot-service" name = "polkadot-service"
version = "0.7.20" version = "0.7.21"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018" edition = "2018"
......
...@@ -171,9 +171,7 @@ fn staging_testnet_config_genesis() -> polkadot::GenesisConfig { ...@@ -171,9 +171,7 @@ fn staging_testnet_config_genesis() -> polkadot::GenesisConfig {
.collect(), .collect(),
}), }),
indices: Some(polkadot::IndicesConfig { indices: Some(polkadot::IndicesConfig {
ids: endowed_accounts.iter().cloned() indices: vec![],
.chain(initial_authorities.iter().map(|x| x.0.clone()))
.collect::<Vec<_>>(),
}), }),
session: Some(polkadot::SessionConfig { session: Some(polkadot::SessionConfig {
keys: initial_authorities.iter().map(|x| ( keys: initial_authorities.iter().map(|x| (
...@@ -313,7 +311,7 @@ pub fn testnet_genesis( ...@@ -313,7 +311,7 @@ pub fn testnet_genesis(
changes_trie_config: Default::default(), changes_trie_config: Default::default(),
}), }),
indices: Some(polkadot::IndicesConfig { indices: Some(polkadot::IndicesConfig {
ids: endowed_accounts.clone(), indices: vec![],
}), }),
balances: Some(polkadot::BalancesConfig { balances: Some(polkadot::BalancesConfig {
balances: endowed_accounts.iter().map(|k| (k.clone(), ENDOWMENT)).collect(), balances: endowed_accounts.iter().map(|k| (k.clone(), ENDOWMENT)).collect(),
......
...@@ -177,9 +177,8 @@ macro_rules! new_full_start { ...@@ -177,9 +177,8 @@ macro_rules! new_full_start {
import_setup = Some((block_import, grandpa_link, babe_link)); import_setup = Some((block_import, grandpa_link, babe_link));
Ok(import_queue) Ok(import_queue)
})? })?
.with_rpc_extensions(|client, pool, _backend, _fetcher, _remote_blockchain| .with_rpc_extensions(|builder| -> Result<polkadot_rpc::RpcExtension, _> {
-> Result<polkadot_rpc::RpcExtension, _> { Ok(polkadot_rpc::create_full(builder.client().clone(), builder.pool()))
Ok(polkadot_rpc::create_full(client, pool))
})?; })?;
(builder, import_setup, inherent_data_providers) (builder, import_setup, inherent_data_providers)
...@@ -479,7 +478,6 @@ pub fn new_full<Runtime, Dispatch, Extrinsic>( ...@@ -479,7 +478,6 @@ pub fn new_full<Runtime, Dispatch, Extrinsic>(
on_exit: service.on_exit(), on_exit: service.on_exit(),
telemetry_on_connect: Some(service.telemetry_on_connect_stream()), telemetry_on_connect: Some(service.telemetry_on_connect_stream()),
voting_rule: grandpa::VotingRulesBuilder::default().build(), voting_rule: grandpa::VotingRulesBuilder::default().build(),
executor: service.spawn_task_handle(),
}; };
service.spawn_essential_task( service.spawn_essential_task(
...@@ -626,13 +624,14 @@ where ...@@ -626,13 +624,14 @@ where
.with_finality_proof_provider(|client, backend| .with_finality_proof_provider(|client, backend|
Ok(Arc::new(GrandpaFinalityProofProvider::new(backend, client)) as _) Ok(Arc::new(GrandpaFinalityProofProvider::new(backend, client)) as _)
)? )?
.with_rpc_extensions(|client, pool, _backend, fetcher, remote_blockchain| .with_rpc_extensions(|builder|
-> Result<polkadot_rpc::RpcExtension, _> { -> Result<polkadot_rpc::RpcExtension, _> {
let fetcher = fetcher let fetcher = builder.fetcher()
.ok_or_else(|| "Trying to start node RPC without active fetcher")?; .ok_or_else(|| "Trying to start node RPC without active fetcher")?;
let remote_blockchain = remote_blockchain let remote_blockchain = builder.remote_backend()
.ok_or_else(|| "Trying to start node RPC without active remote blockchain")?; .ok_or_else(|| "Trying to start node RPC without active remote blockchain")?;
Ok(polkadot_rpc::create_light(client, remote_blockchain, fetcher, pool))
Ok(polkadot_rpc::create_light(builder.client().clone(), remote_blockchain, fetcher, builder.pool()))
})? })?
.build() .build()
} }
[package] [package]
name = "polkadot-statement-table" name = "polkadot-statement-table"
version = "0.7.20" version = "0.7.21"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018" edition = "2018"
......
[package] [package]
name = "adder" name = "adder"
version = "0.7.20" version = "0.7.21"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
description = "Test parachain which adds to a number as its state transition" description = "Test parachain which adds to a number as its state transition"
edition = "2018" edition = "2018"
......
[package] [package]
name = "halt" name = "halt"
version = "0.7.20" version = "0.7.21"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
description = "Test parachain which executes forever" description = "Test parachain which executes forever"
edition = "2018" edition = "2018"
......
[package] [package]
name = "polkadot-validation" name = "polkadot-validation"
version = "0.7.20" version = "0.7.21"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018" edition = "2018"
......
...@@ -306,7 +306,7 @@ impl<Client, TxPool, Backend> CreateProposalData<Client, TxPool, Backend> where ...@@ -306,7 +306,7 @@ impl<Client, TxPool, Backend> CreateProposalData<Client, TxPool, Backend> where
break; break;
} }
match block_builder.push(ready.data().clone()) { match block_builder.push_trusted(ready.data().clone()) {
Ok(()) => { Ok(()) => {
debug!("[{:?}] Pushed to the block.", ready.hash()); debug!("[{:?}] Pushed to the block.", ready.hash());
pending_size += encoded_size; pending_size += encoded_size;
......
Supports Markdown
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