Bring apopiak/prepare-v6-release to the release for v6 (#741)

* disable permissionless asset creation for Statemint (#669)

* disable permissionless asset creation for Statemint

* Companion for polkadot#3728 (#693)

* Update mock runtime API

* update Polkadot packages

Co-authored-by: joao-paulo-parity <joao-paulo@parity.io>

* Ensure a bad datastream cannot cause problems (#701)

* Allow Queries and Subscriptions (#700)

* Bump syn to 1.0.81 (#707)

* Update Substrate & Polkadot (#709)

* Udpate polkadot substrate (#713)

* fmt with latest nightly

* Bump subwasm version (#716)

* Companion for `dispatch_as` (#715)

* dispatch as companion

* Upstream Statemine Release v5 Changes to Master (#720)

* set substrate deps for pallet-asset-tx-payment

* add DisabledValidatorsThreshold to parachain template

* add DisabledValidatorsThreshold to mock config

* adjust on_disabled type

* remove on_chain_votes function in ParachainHost impl

* remove ScrapedOnChainVotes

* bump polkadot-collator version

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* set spec_versions to 500

* Statemine cannot execute.

* disallow XCM execute on statemint

* remove unnecessary dep on node-primitives

* select parachains-common/std feature when building rococo-runtime with std

* adjust Statemint to the three digit spec_version format

* Add script to generate simple changelogs (#668)

* Update weights from v4 for v5 comparison (#673)

* updates weights

* pallet_unique benchmarks added + weights upstream from v4

* Fix benchmarks after Parachain Template (#677)

* pallet_unique benchmarks added + weights upstream from v4

* benchmarks fix for parachain template

* Weights updates for Statemine v5 (#682)

* pallet_unique benchmarks added + weights upstream from v4

* weights updates for statemine v5

* mention Storage in construct_runtime macro for pallet-xcm (#680)

* Use pallet-xcm for version wrapping (#689)

* use PolkadotXcm for XcmRouter WrapVersion

* use PolkadotXcm for version wrapping

Co-authored-by: Bryan Chen <xlchen1291@gmail.com>

* patch weight for batch_all from rerun

* Runtime version bump to v503 (#694)

* adjust genesis value generation scripts to output entries array + add script to derive encoded call

* add script to generate shell spec from runtime wasm

* Ensure a bad datastream cannot cause problems (#701)

* Ensure a bad datastream cannot cause problems

* update Polkadot (to 0.9.11 169bab55d)

* bump spec versions

* Allow Queries and Subscriptions

* statemint imports

* slight naming changes in script

* add shell genesis data + wasm + chainspec

* adjust generated shell spec with production config values

* update Substrate and Polkadot to master

* swap out bootnodes for statemint shell

* add a script for verifying the shell chain spec

* add sha checksum for head data

* remove verification script

* remove hex wasm file

* update Substrate and Polkadot again and fix compilation

* remove redundant dispatch_as weight

Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Chevdor <chevdor@users.noreply.github.com>
Co-authored-by: Gav Wood <gavin@parity.io>
Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>
Co-authored-by: Bryan Chen <xlchen1291@gmail.com>
Co-authored-by: joepetrowski <joe@parity.io>

* Rework the runtime upgrade test (#727)

* Rework the runtime upgrade test

* Update test/service/tests/runtime_upgrade.rs

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>

* Remove randomness collective flip new (#726)

* randomess collective flip removed

* remove migration for statemint

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>

* adjust XCM unit weights to 1B (#735)

* Align Call Indices between Westmint and Statemint (#731)

* align construct_runtime calls between statemint runtimes

* bump westmint transaction_version

* bump spec_version (#733)

* point back to Polkadot 0.9.12

* adjust code to work with 0.9.12 again

* adjust network test back to polkadot 0.9.12

* Align the Statemint Runtimes  (#736)

* align the different Statemint runtimes so they are more similar in structure

* align Unpaid Execution filter

* revert changes to Unpaid execution filter for Westmint

* Bump spec versions (#742)

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: Chris Sosnin <48099298+slumber@users.noreply.github.com>
Co-authored-by: joao-paulo-parity <joao-paulo@parity.io>
Co-authored-by: Gavin Wood <gavin@parity.io>
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>
Co-authored-by: Bryan Chen <xlchen1291@gmail.com>
Co-authored-by: joepetrowski <joe@parity.io>
This commit is contained in:
Chevdor
2021-11-11 10:10:02 +01:00
committed by GitHub
parent f5926c2f50
commit 054cf81b38
68 changed files with 3681 additions and 1965 deletions
-2
View File
@@ -14,7 +14,6 @@ frame-executive = { git = "https://github.com/paritytech/substrate", default-fea
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
@@ -50,7 +49,6 @@ std = [
"frame-support/std",
"frame-system/std",
"pallet-balances/std",
"pallet-randomness-collective-flip/std",
"pallet-sudo/std",
"pallet-timestamp/std",
"pallet-transaction-payment/std",
-1
View File
@@ -1 +0,0 @@
../runtime/build.rs
-1
View File
@@ -1 +0,0 @@
../runtime/src
+1 -3
View File
@@ -14,7 +14,6 @@ frame-executive = { git = "https://github.com/paritytech/substrate", default-fea
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
@@ -50,7 +49,6 @@ std = [
"frame-support/std",
"frame-system/std",
"pallet-balances/std",
"pallet-randomness-collective-flip/std",
"pallet-sudo/std",
"pallet-timestamp/std",
"pallet-transaction-payment/std",
@@ -67,4 +65,4 @@ std = [
"sp-transaction-pool/std",
"sp-version/std",
]
upgrade = []
increment-spec-version = []
+8 -1
View File
@@ -21,5 +21,12 @@ fn main() {
.with_current_project()
.export_heap_base()
.import_memory()
.build()
.build();
WasmBuilder::new()
.with_current_project()
.enable_feature("increment-spec-version")
.import_memory()
.set_file_name("wasm_binary_spec_version_incremented.rs")
.build();
}
+27 -9
View File
@@ -22,6 +22,12 @@
#[cfg(feature = "std")]
include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
pub mod wasm_spec_version_incremented {
#[cfg(feature = "std")]
include!(concat!(env!("OUT_DIR"), "/wasm_binary_spec_version_incremented.rs"));
}
use frame_support::traits::OnRuntimeUpgrade;
use sp_api::{decl_runtime_apis, impl_runtime_apis};
use sp_core::OpaqueMetadata;
use sp_runtime::{
@@ -59,9 +65,13 @@ impl_opaque_keys! {
pub struct SessionKeys {}
}
/// Some key that we set in genesis and only read in [`TestRuntimeUpgrade`] to ensure that
/// [`OnRuntimeUpgrade`] works as expected.
pub const TEST_RUNTIME_UPGRADE_KEY: &[u8] = b"+test_runtime_upgrade_key+";
// The only difference between the two declarations below is the `spec_version`. With the
// `upgrade` feature enabled `spec_version` should be greater than the one of without the
// `upgrade` feature.
// `increment-spec-version` feature enabled `spec_version` should be greater than the one of without the
// `increment-spec-version` feature.
//
// The duplication here is unfortunate necessity.
//
@@ -70,27 +80,27 @@ impl_opaque_keys! {
// details. Since macro kicks in early, it operates on AST. Thus you cannot use constants.
// Macros are expanded top to bottom, meaning we also cannot use `cfg` here.
#[cfg(feature = "upgrade")]
#[cfg(not(feature = "increment-spec-version"))]
#[sp_version::runtime_version]
pub const VERSION: RuntimeVersion = RuntimeVersion {
spec_name: create_runtime_str!("cumulus-test-parachain"),
impl_name: create_runtime_str!("cumulus-test-parachain"),
authoring_version: 1,
// Read the note above.
spec_version: 4,
spec_version: 1,
impl_version: 1,
apis: RUNTIME_API_VERSIONS,
transaction_version: 1,
};
#[cfg(not(feature = "upgrade"))]
#[cfg(feature = "increment-spec-version")]
#[sp_version::runtime_version]
pub const VERSION: RuntimeVersion = RuntimeVersion {
spec_name: create_runtime_str!("cumulus-test-parachain"),
impl_name: create_runtime_str!("cumulus-test-parachain"),
authoring_version: 1,
// Read the note above.
spec_version: 3,
spec_version: 2,
impl_version: 1,
apis: RUNTIME_API_VERSIONS,
transaction_version: 1,
@@ -235,8 +245,6 @@ impl pallet_transaction_payment::Config for Runtime {
type OperationalFeeMultiplier = OperationalFeeMultiplier;
}
impl pallet_randomness_collective_flip::Config for Runtime {}
impl pallet_sudo::Config for Runtime {
type Call = Call;
type Event = Event;
@@ -270,7 +278,6 @@ construct_runtime! {
Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent},
Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>},
Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>},
RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage},
TransactionPayment: pallet_transaction_payment::{Pallet, Storage},
}
}
@@ -321,10 +328,21 @@ pub type Executive = frame_executive::Executive<
frame_system::ChainContext<Runtime>,
Runtime,
AllPallets,
TestOnRuntimeUpgrade,
>;
/// The payload being signed in transactions.
pub type SignedPayload = generic::SignedPayload<Call, SignedExtra>;
pub struct TestOnRuntimeUpgrade;
impl OnRuntimeUpgrade for TestOnRuntimeUpgrade {
fn on_runtime_upgrade() -> frame_support::weights::Weight {
assert_eq!(sp_io::storage::get(TEST_RUNTIME_UPGRADE_KEY), Some(vec![1, 2, 3, 4]));
1
}
}
decl_runtime_apis! {
pub trait GetLastTimestamp {
/// Returns the last timestamp of a runtime.
+1 -5
View File
@@ -27,6 +27,7 @@ sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch
sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" }
sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
@@ -61,8 +62,3 @@ polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch
# Substrate dependencies
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-maybe-compressed-blob = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
# Cumulus
cumulus-test-runtime-upgrade = { path = "../runtime-upgrade" }
+19 -2
View File
@@ -25,7 +25,24 @@ use sp_core::{sr25519, Pair, Public};
use sp_runtime::traits::{IdentifyAccount, Verify};
/// Specialized `ChainSpec` for the normal parachain runtime.
pub type ChainSpec = sc_service::GenericChainSpec<cumulus_test_runtime::GenesisConfig, Extensions>;
pub type ChainSpec = sc_service::GenericChainSpec<GenesisExt, Extensions>;
/// Extension for the genesis config to add custom keys easily.
#[derive(serde::Serialize, serde::Deserialize)]
pub struct GenesisExt {
/// The runtime genesis config.
runtime_genesis_config: cumulus_test_runtime::GenesisConfig,
}
impl sp_runtime::BuildStorage for GenesisExt {
fn assimilate_storage(&self, storage: &mut sp_core::storage::Storage) -> Result<(), String> {
sp_state_machine::BasicExternalities::execute_with_storage(storage, || {
sp_io::storage::set(cumulus_test_runtime::TEST_RUNTIME_UPGRADE_KEY, &vec![1, 2, 3, 4]);
});
self.runtime_genesis_config.assimilate_storage(storage)
}
}
/// Helper function to generate a crypto pair from seed
pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {
@@ -65,7 +82,7 @@ pub fn get_chain_spec(id: ParaId) -> ChainSpec {
"Local Testnet",
"local_testnet",
ChainType::Local,
move || local_testnet_genesis(),
move || GenesisExt { runtime_genesis_config: local_testnet_genesis() },
vec![],
None,
None,
+3 -9
View File
@@ -73,17 +73,11 @@ async fn test_runtime_upgrade() {
.expect("Runtime version exists");
expected_runtime_version.spec_version += 1;
// Replace the runtime version in the WASM blob to make it look like a new runtime.
let wasm = sp_maybe_compressed_blob::decompress(
cumulus_test_runtime_upgrade::WASM_BINARY.unwrap(),
sp_maybe_compressed_blob::CODE_BLOB_BOMB_LIMIT,
)
.expect("Decompressing the WASM blob works");
let wasm = sp_version::embed::embed_runtime_version(&wasm, expected_runtime_version.clone())
.expect("Embedding the runtime version works");
let wasm = cumulus_test_runtime::wasm_spec_version_incremented::WASM_BINARY
.expect("Wasm binary with incremented spec version should have been built");
// schedule runtime upgrade
charlie.schedule_upgrade(wasm).await.unwrap();
charlie.schedule_upgrade(wasm.into()).await.unwrap();
let mut import_stream = dave.client.import_notification_stream();