Skip to content

Commit

Permalink
Upgrade to substrate 2.0.0 (#173)
Browse files Browse the repository at this point in the history
* Upgrade to substrate 2.0.0

* WIP implement Subcommand manually (see paritytech/substrate#6894 (comment))

* Add pallet-staking/std to the std feature

* Sort out the subcommand impl

* Sort out the module index (ty @ascjones)
Sort out the RefCount type (ty @dvc94ch)
Random tweaks to make test-node more similar to the vanilla node-template

* obey the fmt

* cleanup

* more cleanup
  • Loading branch information
dvdplm authored Sep 24, 2020
1 parent 56bd633 commit 8e2a4f0
Show file tree
Hide file tree
Showing 14 changed files with 114 additions and 102 deletions.
40 changes: 20 additions & 20 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,33 +34,33 @@ serde_json = "1.0.57"
url = "2.1.1"
codec = { package = "parity-scale-codec", version = "1.3.5", default-features = false, features = ["derive", "full"] }

frame-metadata = { version = "11.0.0-rc6", package = "frame-metadata" }
frame-support = { version = "2.0.0-rc6", package = "frame-support" }
sp-runtime = { version = "2.0.0-rc6", package = "sp-runtime" }
sp-version = { version = "2.0.0-rc6", package = "sp-version" }
pallet-indices = { version = "2.0.0-rc6", package = "pallet-indices" }
frame-metadata = { version = "12", package = "frame-metadata" }
frame-support = { version = "2.0.0", package = "frame-support" }
sp-runtime = { version = "2.0.0", package = "sp-runtime" }
sp-version = { version = "2.0.0", package = "sp-version" }
pallet-indices = { version = "2.0.0", package = "pallet-indices" }
hex = "0.4.2"
sp-std = "2.0.0-rc6"
application-crypto = { version = "2.0.0-rc6", package = "sp-application-crypto" }
sp-finality-grandpa = "2.0.0-rc6"
sp-consensus-babe = "0.8.0-rc6"
pallet-im-online = "2.0.0-rc6"
sp-authority-discovery = "2.0.0-rc6"
pallet-staking = "2.0.0-rc6"
sp-std = "2.0.0"
application-crypto = { version = "2.0.0", package = "sp-application-crypto" }
sp-finality-grandpa = "2.0.0"
sp-consensus-babe = "0.8.0"
pallet-im-online = "2.0.0"
sp-authority-discovery = "2.0.0"
pallet-staking = "2.0.0"

sp-rpc = { version = "2.0.0-rc6", package = "sp-rpc" }
sp-core = { version = "2.0.0-rc6", package = "sp-core" }
sc-rpc-api = { version = "0.8.0-rc6", package = "sc-rpc-api" }
sp-transaction-pool = { version = "2.0.0-rc6", package = "sp-transaction-pool" }
sp-rpc = { version = "2.0.0", package = "sp-rpc" }
sp-core = { version = "2.0.0", package = "sp-core" }
sc-rpc-api = { version = "0.8.0", package = "sc-rpc-api" }
sp-transaction-pool = { version = "2.0.0", package = "sp-transaction-pool" }
substrate-subxt-client = { version = "0.4.0", path = "client", optional = true }
substrate-subxt-proc-macro = { version = "0.12.0", path = "proc-macro" }

[dev-dependencies]
async-std = { version = "1.6.3", features = ["attributes"] }
async-std = { version = "1.6.4", features = ["attributes"] }
env_logger = "0.7.1"
frame-system = { version = "2.0.0-rc6", package = "frame-system" }
pallet-balances = { version = "2.0.0-rc6", package = "pallet-balances" }
sp-keyring = { version = "2.0.0-rc6", package = "sp-keyring" }
frame-system = { version = "2.0.0", package = "frame-system" }
pallet-balances = { version = "2.0.0", package = "pallet-balances" }
sp-keyring = { version = "2.0.0", package = "sp-keyring" }
substrate-subxt-client = { version = "0.4.0", path = "client" }
tempdir = "0.3.7"
test-node = { path = "test-node" }
Expand Down
10 changes: 5 additions & 5 deletions client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ description = "Embed a substrate node into your subxt application."
keywords = ["parity", "substrate", "blockchain"]

[dependencies]
async-std = "1.6.3"
async-std = "1.6.4"
futures = { version = "0.3.5", features = ["compat"] }
futures01 = { package = "futures", version = "0.1.29" }
jsonrpsee = "0.1.0"
log = "0.4.11"
sc-network = { version = "0.8.0-rc6", default-features = false }
sc-service = { version = "0.8.0-rc6", default-features = false }
sc-network = { version = "0.8.0", default-features = false }
sc-service = { version = "0.8.0", default-features = false }
serde_json = "1.0.57"
sp-keyring = "2.0.0-rc6"
sp-keyring = "2.0.0"
thiserror = "1.0.20"

[dev-dependencies]
async-std = { version = "1.6.3", features = ["attributes"] }
async-std = { version = "1.6.4", features = ["attributes"] }
env_logger = "0.7.1"
substrate-subxt = { path = ".." }
tempdir = "0.3.7"
Expand Down
6 changes: 3 additions & 3 deletions proc-macro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ syn = "1.0.38"
synstructure = "0.12.4"

[dev-dependencies]
async-std = { version = "1.6.3", features = ["attributes"] }
codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
async-std = { version = "1.6.4", features = ["attributes"] }
codec = { package = "parity-scale-codec", version = "1.3.5", features = ["derive"] }
env_logger = "0.7.1"
pretty_assertions = "0.6.1"
sp-keyring = "2.0.0-rc6"
sp-keyring = "2.0.0"
substrate-subxt = { path = ".." }
trybuild = "1.0.32"

Expand Down
2 changes: 1 addition & 1 deletion src/frame/balances.rs
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ mod tests {
let event = client
.transfer_and_watch(&alice, &bob.account_id(), 10_000)
.await
.unwrap()
.expect("sending an xt works")
.transfer()
.unwrap()
.unwrap();
Expand Down
1 change: 1 addition & 0 deletions src/frame/contracts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ pub struct InstantiatedEvent<T: Contracts> {
}

#[cfg(test)]
#[cfg(feature = "integration-tests")]
mod tests {
use sp_keyring::AccountKeyring;

Expand Down
4 changes: 2 additions & 2 deletions src/frame/staking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ pub struct ErasRewardPointsStore<T: Staking> {
#[derive(Clone, Encode, Decode, Debug, Call)]
pub struct SetPayeeCall<T: Staking> {
/// The payee
pub payee: RewardDestination,
pub payee: RewardDestination<T::AccountId>,
/// Marker for the runtime
pub _runtime: PhantomData<T>,
}
Expand Down Expand Up @@ -99,7 +99,7 @@ pub struct LedgerStore<T: Staking> {
/// Where the reward payment should be made. Keyed by stash.
#[derive(Encode, Copy, Clone, Debug, Hash, PartialEq, Eq, Ord, PartialOrd, Store)]
pub struct PayeeStore<T: Staking> {
#[store(returns = RewardDestination)]
#[store(returns = RewardDestination<T::AccountId>)]
/// Tٗhe stash account
pub stash: T::AccountId,
}
Expand Down
2 changes: 1 addition & 1 deletion src/frame/system.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ pub trait System {
}

/// Type used to encode the number of references an account has.
pub type RefCount = u8;
pub type RefCount = u32;

/// Information of an account.
#[derive(Clone, Debug, Eq, PartialEq, Default, Decode, Encode)]
Expand Down
10 changes: 6 additions & 4 deletions src/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ impl Metadata {

#[derive(Clone, Debug)]
pub struct ModuleMetadata {
index: u8,
name: String,
storage: HashMap<String, StorageMetadata>,
// constants
Expand Down Expand Up @@ -482,7 +483,7 @@ impl TryFrom<RuntimeMetadataPrefixed> for Metadata {
return Err(ConversionError::InvalidPrefix.into())
}
let meta = match metadata.1 {
RuntimeMetadata::V11(meta) => meta,
RuntimeMetadata::V12(meta) => meta,
_ => return Err(ConversionError::InvalidVersion.into()),
};
let mut modules = HashMap::new();
Expand All @@ -509,6 +510,7 @@ impl TryFrom<RuntimeMetadataPrefixed> for Metadata {
modules.insert(
module_name.clone(),
ModuleMetadata {
index: module.index,
name: module_name.clone(),
storage: storage_map,
},
Expand All @@ -523,7 +525,7 @@ impl TryFrom<RuntimeMetadataPrefixed> for Metadata {
modules_with_calls.insert(
module_name.clone(),
ModuleWithCalls {
index: modules_with_calls.len() as u8,
index: module.index,
calls: call_map,
},
);
Expand All @@ -536,7 +538,7 @@ impl TryFrom<RuntimeMetadataPrefixed> for Metadata {
modules_with_events.insert(
module_name.clone(),
ModuleWithEvents {
index: modules_with_events.len() as u8,
index: module.index,
name: module_name.clone(),
events: event_map,
},
Expand All @@ -549,7 +551,7 @@ impl TryFrom<RuntimeMetadataPrefixed> for Metadata {
modules_with_errors.insert(
module_name.clone(),
ModuleWithErrors {
index: modules_with_errors.len() as u8,
index: module.index,
name: module_name.clone(),
errors: error_map,
},
Expand Down
38 changes: 19 additions & 19 deletions test-node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,28 @@ targets = ["x86_64-unknown-linux-gnu"]
[dependencies]
futures = "0.3.5"
log = "0.4.11"
structopt = "0.3.16"
structopt = "0.3.17"
parking_lot = "0.11.0"

sc-cli = { version = "0.8.0-rc6", features = ["wasmtime"] }
sp-core = "2.0.0-rc6"
sc-executor = { version = "0.8.0-rc6", features = ["wasmtime"] }
sc-service = { version = "0.8.0-rc6", features = ["wasmtime"] }
sp-inherents = "2.0.0-rc6"
sc-transaction-pool = "2.0.0-rc6"
sp-transaction-pool = "2.0.0-rc6"
sc-network = "0.8.0-rc6"
sc-consensus-aura = "0.8.0-rc6"
sp-consensus-aura = "0.8.0-rc6"
sp-consensus = "0.8.0-rc6"
sc-consensus = "0.8.0-rc6"
sc-finality-grandpa = "0.8.0-rc6"
sp-finality-grandpa = "2.0.0-rc6"
sc-client-api = "2.0.0-rc6"
sp-runtime = "2.0.0-rc6"
sc-basic-authorship = "0.8.0-rc6"
sc-cli = { version = "0.8.0", features = ["wasmtime"] }
sp-core = "2.0.0"
sc-executor = { version = "0.8.0", features = ["wasmtime"] }
sc-service = { version = "0.8.0", features = ["wasmtime"] }
sp-inherents = "2.0.0"
sc-transaction-pool = "2.0.0"
sp-transaction-pool = "2.0.0"
sc-network = "0.8.0"
sc-consensus-aura = "0.8.0"
sp-consensus-aura = "0.8.0"
sp-consensus = "0.8.0"
sc-consensus = "0.8.0"
sc-finality-grandpa = "0.8.0"
sp-finality-grandpa = "2.0.0"
sc-client-api = "2.0.0"
sp-runtime = "2.0.0"
sc-basic-authorship = "0.8.0"

test-node-runtime = { path = "runtime" }

[build-dependencies]
substrate-build-script-utils = "2.0.0-rc6"
substrate-build-script-utils = "2.0.0"
51 changes: 26 additions & 25 deletions test-node/runtime/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,32 @@ repository = "https://github.com/paritytech/substrate/"
targets = ["x86_64-unknown-linux-gnu"]

[dependencies]
codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
codec = { package = "parity-scale-codec", version = "1.3.5", default-features = false, features = ["derive"] }

frame-executive = { version = "2.0.0-rc6", default-features = false }
frame-support = { version = "2.0.0-rc6", default-features = false }
frame-system = { version = "2.0.0-rc6", default-features = false }
pallet-aura = { version = "2.0.0-rc6", default-features = false }
pallet-balances = { version = "2.0.0-rc6", default-features = false }
pallet-grandpa = { version = "2.0.0-rc6", default-features = false }
pallet-randomness-collective-flip = { version = "2.0.0-rc6", default-features = false }
pallet-staking = { version = "2.0.0-rc6", default-features = false }
pallet-sudo = { version = "2.0.0-rc6", default-features = false }
pallet-timestamp = { version = "2.0.0-rc6", default-features = false }
pallet-transaction-payment = { version = "2.0.0-rc6", default-features = false }
serde = { version = "1.0.115", optional = true, features = ["derive"] }
sp-api = { version = "2.0.0-rc6", default-features = false }
sp-block-builder = { version = "2.0.0-rc6", default-features = false }
sp-consensus-aura = { version = "0.8.0-rc6", default-features = false }
sp-core = { version = "2.0.0-rc6", default-features = false }
sp-inherents = { version = "2.0.0-rc6", default-features = false }
sp-io = { version = "2.0.0-rc6", default-features = false }
sp-offchain = { version = "2.0.0-rc6", default-features = false }
sp-runtime = { version = "2.0.0-rc6", default-features = false }
sp-session = { version = "2.0.0-rc6", default-features = false }
sp-std = { version = "2.0.0-rc6", default-features = false }
sp-transaction-pool = { version = "2.0.0-rc6", default-features = false }
sp-version = { version = "2.0.0-rc6", default-features = false }
frame-executive = { version = "2.0.0", default-features = false }
frame-support = { version = "2.0.0", default-features = false }
frame-system = { version = "2.0.0", default-features = false }
pallet-aura = { version = "2.0.0", default-features = false }
pallet-balances = { version = "2.0.0", default-features = false }
pallet-grandpa = { version = "2.0.0", default-features = false }
pallet-randomness-collective-flip = { version = "2.0.0", default-features = false }
pallet-staking = { version = "2.0.0", default-features = false }
pallet-sudo = { version = "2.0.0", default-features = false }
pallet-timestamp = { version = "2.0.0", default-features = false }
pallet-transaction-payment = { version = "2.0.0", default-features = false }
serde = { version = "1.0.116", optional = true, features = ["derive"] }
sp-api = { version = "2.0.0", default-features = false }
sp-block-builder = { version = "2.0.0", default-features = false }
sp-consensus-aura = { version = "0.8.0", default-features = false }
sp-core = { version = "2.0.0", default-features = false }
sp-inherents = { version = "2.0.0", default-features = false }
sp-io = { version = "2.0.0", default-features = false }
sp-offchain = { version = "2.0.0", default-features = false }
sp-runtime = { version = "2.0.0", default-features = false }
sp-session = { version = "2.0.0", default-features = false }
sp-std = { version = "2.0.0", default-features = false }
sp-transaction-pool = { version = "2.0.0", default-features = false }
sp-version = { version = "2.0.0", default-features = false }

[build-dependencies]
substrate-wasm-builder-runner = "1.0.6"
Expand All @@ -52,6 +52,7 @@ std = [
"pallet-balances/std",
"pallet-grandpa/std",
"pallet-randomness-collective-flip/std",
"pallet-staking/std",
"pallet-sudo/std",
"pallet-timestamp/std",
"pallet-transaction-payment/std",
Expand Down
14 changes: 8 additions & 6 deletions test-node/runtime/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -169,14 +169,16 @@ pub fn native_version() -> NativeVersion {
}
}

const AVERAGE_ON_INITIALIZE_WEIGHT: Perbill = Perbill::from_percent(10);
parameter_types! {
pub const BlockHashCount: BlockNumber = 2400;
/// We allow for 2 seconds of compute with a 6 second average block time.
pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND;
pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
/// Assume 10% of weight for average on_initialize calls.
pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get()
.saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get();
pub MaximumExtrinsicWeight: Weight =
AvailableBlockRatio::get().saturating_sub(AVERAGE_ON_INITIALIZE_WEIGHT)
* MaximumBlockWeight::get();
pub const MaximumBlockLength: u32 = 5 * 1024 * 1024;
pub const Version: RuntimeVersion = VERSION;
}
Expand Down Expand Up @@ -226,10 +228,6 @@ impl frame_system::Trait for Runtime {
type AvailableBlockRatio = AvailableBlockRatio;
/// Version of the runtime.
type Version = Version;
/// Converts a module to the index of the module in `construct_runtime!`.
///
/// This type is being generated by `construct_runtime!`.
type ModuleToIndex = ModuleToIndex;
/// What to do if a new account is created.
type OnNewAccount = ();
/// What to do if an account is fully reaped from the system.
Expand All @@ -238,6 +236,8 @@ impl frame_system::Trait for Runtime {
type AccountData = pallet_balances::AccountData<Balance>;
/// Weight information for the extrinsics of this pallet.
type SystemWeightInfo = ();
/// Provides information about the pallet setup in the runtime.
type PalletInfo = PalletInfo;
}

impl pallet_aura::Trait for Runtime {
Expand All @@ -259,6 +259,7 @@ impl pallet_grandpa::Trait for Runtime {
)>>::IdentificationTuple;

type HandleEquivocation = ();
type WeightInfo = ();
}

parameter_types! {
Expand Down Expand Up @@ -286,6 +287,7 @@ impl pallet_balances::Trait for Runtime {
type ExistentialDeposit = ExistentialDeposit;
type AccountStore = System;
type WeightInfo = ();
type MaxLocks = ();
}

parameter_types! {
Expand Down
2 changes: 1 addition & 1 deletion test-node/src/chain_spec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ pub fn development_config() -> Result<ChainSpec, String> {
// Properties
None,
// Extensions
None,
Default::default(),
))
}

Expand Down
11 changes: 10 additions & 1 deletion test-node/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,20 @@
// along with substrate-subxt. If not, see <http://www.gnu.org/licenses/>.

use sc_cli::{
BuildSpecCmd,
PurgeChainCmd,
RunCmd,
Subcommand,
};
use structopt::StructOpt;

#[derive(Debug, StructOpt)]
pub enum Subcommand {
/// Build a spec.json file, outputs to stdout.
BuildSpec(BuildSpecCmd),
/// Remove the whole chain data.
PurgeChain(PurgeChainCmd),
}

#[derive(Debug, StructOpt)]
pub struct Cli {
#[structopt(subcommand)]
Expand Down
Loading

0 comments on commit 8e2a4f0

Please sign in to comment.