git.delta.rocks / unique-network / refs/commits / 9667dc5f64e7

difftreelog

feat(CollatorSelection) inclusion + migration + genesis

Fahrrader2022-03-30parent: #997ec5a.patch.diff
in: master

10 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -108,9 +108,9 @@
 
 [[package]]
 name = "anyhow"
-version = "1.0.61"
+version = "1.0.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "508b352bb5c066aac251f6daf6b36eccd03e8a88e8081cd44959ea277a3af9a8"
+checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305"
 
 [[package]]
 name = "approx"
@@ -213,10 +213,11 @@
 
 [[package]]
 name = "async-io"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07"
+checksum = "0ab006897723d9352f63e2b13047177c3982d8d79709d713ce7747a8f19fd1b0"
 dependencies = [
+ "autocfg",
  "concurrent-queue",
  "futures-lite",
  "libc",
@@ -241,11 +242,12 @@
 
 [[package]]
 name = "async-process"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c"
+checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c"
 dependencies = [
  "async-io",
+ "autocfg",
  "blocking",
  "cfg-if 1.0.0",
  "event-listener",
@@ -717,9 +719,9 @@
 
 [[package]]
 name = "bumpalo"
-version = "3.10.0"
+version = "3.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
+checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d"
 
 [[package]]
 name = "byte-slice-cast"
@@ -1045,9 +1047,9 @@
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.2"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
+checksum = "dc948ebb96241bb40ab73effeb80d9f93afaad49359d159a5e61be51619fe813"
 dependencies = [
  "libc",
 ]
@@ -2021,9 +2023,9 @@
 
 [[package]]
 name = "either"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
 
 [[package]]
 name = "elliptic-curve"
@@ -2345,7 +2347,7 @@
 [[package]]
 name = "fc-consensus"
 version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "async-trait",
  "fc-db",
@@ -2364,7 +2366,7 @@
 [[package]]
 name = "fc-db"
 version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "fp-storage",
  "kvdb-rocksdb",
@@ -2380,7 +2382,7 @@
 [[package]]
 name = "fc-mapping-sync"
 version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "fc-db",
  "fp-consensus",
@@ -2397,7 +2399,7 @@
 [[package]]
 name = "fc-rpc"
 version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "ethereum",
  "ethereum-types",
@@ -2437,7 +2439,7 @@
 [[package]]
 name = "fc-rpc-core"
 version = "1.1.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "ethereum",
  "ethereum-types",
@@ -2578,7 +2580,7 @@
 [[package]]
 name = "fp-consensus"
 version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "ethereum",
  "parity-scale-codec 3.1.5",
@@ -2590,7 +2592,7 @@
 [[package]]
 name = "fp-evm"
 version = "3.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "evm",
  "frame-support",
@@ -2604,7 +2606,7 @@
 [[package]]
 name = "fp-evm-mapping"
 version = "0.1.0"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "frame-support",
  "sp-core",
@@ -2613,7 +2615,7 @@
 [[package]]
 name = "fp-rpc"
 version = "3.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "ethereum",
  "ethereum-types",
@@ -2630,7 +2632,7 @@
 [[package]]
 name = "fp-self-contained"
 version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "ethereum",
  "frame-support",
@@ -2646,7 +2648,7 @@
 [[package]]
 name = "fp-storage"
 version = "2.0.0"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "parity-scale-codec 3.1.5",
 ]
@@ -2897,9 +2899,9 @@
 
 [[package]]
 name = "fs-err"
-version = "2.7.0"
+version = "2.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bd79fa345a495d3ae89fb7165fec01c0e72f41821d642dda363a1e97975652e"
+checksum = "64db3e262960f0662f43a6366788d5f10f7f244b8f7d7d987f560baf5ded5c50"
 
 [[package]]
 name = "fs-swap"
@@ -3197,9 +3199,9 @@
 
 [[package]]
 name = "h2"
-version = "0.3.13"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
+checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be"
 dependencies = [
  "bytes",
  "fnv",
@@ -3417,9 +3419,9 @@
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35"
+checksum = "ad2bfd338099682614d3ee3fe0cd72e0b6a41ca6a87f6a74a3bd593c91650501"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -3554,9 +3556,9 @@
 
 [[package]]
 name = "io-lifetimes"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24c3f4eff5495aee4c0399d7b6a0dc2b6e81be84242ffbfcf253ebacccc1d0cb"
+checksum = "1ea37f355c05dde75b84bba2d767906ad522e97cd9e2eef2be7a4ab7fb442c06"
 
 [[package]]
 name = "ip_network"
@@ -3936,9 +3938,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.131"
+version = "0.2.132"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04c3b4822ccebfa39c02fc03d1534441b22ead323fa0f48bb7ddd8e6ba076a40"
+checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
 
 [[package]]
 name = "libloading"
@@ -5160,9 +5162,9 @@
 
 [[package]]
 name = "once_cell"
-version = "1.13.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e"
 
 [[package]]
 name = "opal-runtime"
@@ -5192,8 +5194,10 @@
  "log",
  "orml-vesting",
  "pallet-aura",
+ "pallet-authorship",
  "pallet-balances",
  "pallet-base-fee",
+ "pallet-collator-selection",
  "pallet-common",
  "pallet-configuration",
  "pallet-ethereum",
@@ -5209,6 +5213,7 @@
  "pallet-refungible",
  "pallet-rmrk-core",
  "pallet-rmrk-equip",
+ "pallet-session",
  "pallet-structure",
  "pallet-sudo",
  "pallet-template-transaction-payment",
@@ -5445,7 +5450,7 @@
 [[package]]
 name = "pallet-base-fee"
 version = "1.0.0"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "fp-evm",
  "frame-support",
@@ -5534,6 +5539,26 @@
 ]
 
 [[package]]
+name = "pallet-collator-selection"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-authorship",
+ "pallet-session",
+ "parity-scale-codec 3.1.5",
+ "rand 0.8.5",
+ "scale-info",
+ "serde",
+ "sp-runtime",
+ "sp-staking",
+ "sp-std",
+]
+
+[[package]]
 name = "pallet-collective"
 version = "4.0.0-dev"
 source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05"
@@ -5660,7 +5685,7 @@
 [[package]]
 name = "pallet-ethereum"
 version = "4.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "ethereum",
  "ethereum-types",
@@ -5689,7 +5714,7 @@
 [[package]]
 name = "pallet-evm"
 version = "6.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#64915c0986fcf2bbe942794b838c0cf359c93c21"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.27#69945f20e8dc06ab9e0dd636848a8db6a408c71c"
 dependencies = [
  "evm",
  "fp-evm",
@@ -6806,9 +6831,9 @@
 
 [[package]]
 name = "pest"
-version = "2.2.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69486e2b8c2d2aeb9762db7b4e00b0331156393555cff467f4163ff06821eef8"
+checksum = "4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4"
 dependencies = [
  "thiserror",
  "ucd-trie",
@@ -6816,9 +6841,9 @@
 
 [[package]]
 name = "pest_derive"
-version = "2.2.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b13570633aff33c6d22ce47dd566b10a3b9122c2fe9d8e7501895905be532b91"
+checksum = "905708f7f674518498c1f8d644481440f476d39ca6ecae83319bba7c6c12da91"
 dependencies = [
  "pest",
  "pest_generator",
@@ -6826,9 +6851,9 @@
 
 [[package]]
 name = "pest_generator"
-version = "2.2.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3c567e5702efdc79fb18859ea74c3eb36e14c43da7b8c1f098a4ed6514ec7a0"
+checksum = "5803d8284a629cc999094ecd630f55e91b561a1d1ba75e233b00ae13b91a69ad"
 dependencies = [
  "pest",
  "pest_meta",
@@ -6839,9 +6864,9 @@
 
 [[package]]
 name = "pest_meta"
-version = "2.2.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eb32be5ee3bbdafa8c7a18b0a8a8d962b66cfa2ceee4037f49267a50ee821fe"
+checksum = "1538eb784f07615c6d9a8ab061089c6c54a344c5b4301db51990ca1c241e8c04"
 dependencies = [
  "once_cell",
  "pest",
@@ -8142,10 +8167,11 @@
 
 [[package]]
 name = "polling"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
+checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011"
 dependencies = [
+ "autocfg",
  "cfg-if 1.0.0",
  "libc",
  "log",
@@ -8397,8 +8423,10 @@
  "log",
  "orml-vesting",
  "pallet-aura",
+ "pallet-authorship",
  "pallet-balances",
  "pallet-base-fee",
+ "pallet-collator-selection",
  "pallet-common",
  "pallet-configuration",
  "pallet-ethereum",
@@ -8414,6 +8442,7 @@
  "pallet-refungible",
  "pallet-rmrk-core",
  "pallet-rmrk-equip",
+ "pallet-session",
  "pallet-structure",
  "pallet-sudo",
  "pallet-template-transaction-payment",
@@ -9004,13 +9033,13 @@
 
 [[package]]
 name = "rustix"
-version = "0.35.7"
+version = "0.35.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d51cc38aa10f6bbb377ed28197aa052aa4e2b762c22be9d3153d01822587e787"
+checksum = "72c825b8aa8010eb9ee99b75f05e10180b9278d161583034d7574c9d617aeada"
 dependencies = [
  "bitflags",
  "errno",
- "io-lifetimes 0.7.2",
+ "io-lifetimes 0.7.3",
  "libc",
  "linux-raw-sys 0.0.46",
  "windows-sys",
@@ -9567,7 +9596,7 @@
  "once_cell",
  "parity-scale-codec 3.1.5",
  "parity-wasm 0.42.2",
- "rustix 0.35.7",
+ "rustix 0.35.9",
  "sc-allocator",
  "sc-executor-common",
  "sp-runtime-interface",
@@ -10260,9 +10289,9 @@
 
 [[package]]
 name = "security-framework"
-version = "2.6.1"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc"
+checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c"
 dependencies = [
  "bitflags",
  "core-foundation",
@@ -10316,18 +10345,18 @@
 
 [[package]]
 name = "serde"
-version = "1.0.143"
+version = "1.0.144"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553"
+checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.143"
+version = "1.0.144"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391"
+checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -10336,9 +10365,9 @@
 
 [[package]]
 name = "serde_json"
-version = "1.0.83"
+version = "1.0.85"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7"
+checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44"
 dependencies = [
  "itoa 1.0.3",
  "ryu",
@@ -11306,9 +11335,9 @@
 
 [[package]]
 name = "ss58-registry"
-version = "1.25.0"
+version = "1.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a039906277e0d8db996cd9d1ef19278c10209d994ecfc1025ced16342873a17c"
+checksum = "1c8a1e645fa0bd3e81a90e592a677f7ada3182ac338c4a71cd9ec0ba911f6abb"
 dependencies = [
  "Inflector",
  "num-format",
@@ -12386,8 +12415,10 @@
  "log",
  "orml-vesting",
  "pallet-aura",
+ "pallet-authorship",
  "pallet-balances",
  "pallet-base-fee",
+ "pallet-collator-selection",
  "pallet-common",
  "pallet-configuration",
  "pallet-ethereum",
@@ -12403,6 +12434,7 @@
  "pallet-refungible",
  "pallet-rmrk-core",
  "pallet-rmrk-equip",
+ "pallet-session",
  "pallet-structure",
  "pallet-sudo",
  "pallet-template-transaction-payment",
@@ -12473,7 +12505,7 @@
 
 [[package]]
 name = "up-common"
-version = "0.9.25"
+version = "0.9.27"
 dependencies = [
  "fp-rpc",
  "frame-support",
modifiednode/cli/src/chain_spec.rsdiffbeforeafterboth
--- a/node/cli/src/chain_spec.rs
+++ b/node/cli/src/chain_spec.rs
@@ -24,6 +24,7 @@
 use serde_json::map::Map;
 
 use up_common::types::opaque::*;
+use up_common::constants::EXISTENTIAL_DEPOSIT;
 
 #[cfg(feature = "unique-runtime")]
 pub use unique_runtime as default_runtime;
@@ -146,7 +147,7 @@
 	(
 		$runtime:path,
 		$root_key:expr,
-		$initial_authorities:expr,
+		$initial_invulnerables:expr,
 		$endowed_accounts:expr,
 		$id:expr
 	) => {{
@@ -175,9 +176,31 @@
 				parachain_id: $id.into(),
 			},
 			parachain_system: Default::default(),
-			aura: AuraConfig {
-				authorities: $initial_authorities,
+			collator_selection: CollatorSelectionConfig {
+				invulnerables: $initial_invulnerables
+					.iter()
+					.cloned()
+					.map(|(acc, _)| acc)
+					.collect(),
+				candidacy_bond: EXISTENTIAL_DEPOSIT * 16,
+				..Default::default()
+			},
+			session: SessionConfig {
+				keys: $initial_invulnerables
+					.into_iter()
+					.map(|(acc, aura)| {
+						(
+							acc.clone(),          // account id
+							acc,                  // validator id
+							SessionKeys { aura }, // session keys
+						)
+					})
+					.collect(),
 			},
+			aura: Default::default(),
+			/*aura: AuraConfig {
+				authorities: $initial_authorities,
+			},*/
 			aura_ext: Default::default(),
 			evm: EVMConfig {
 				accounts: BTreeMap::new(),
@@ -217,8 +240,14 @@
 				// Sudo account
 				get_account_id_from_seed::<sr25519::Public>("Alice"),
 				vec![
-					get_from_seed::<AuraId>("Alice"),
-					get_from_seed::<AuraId>("Bob"),
+					(
+						get_account_id_from_seed::<sr25519::Public>("Alice"),
+						get_from_seed::<AuraId>("Alice"),
+					),
+					(
+						get_account_id_from_seed::<sr25519::Public>("Bob"),
+						get_from_seed::<AuraId>("Bob"),
+					),
 				],
 				// Pre-funded accounts
 				vec![
@@ -285,8 +314,14 @@
 				// Sudo account
 				get_account_id_from_seed::<sr25519::Public>("Alice"),
 				vec![
-					get_from_seed::<AuraId>("Alice"),
-					get_from_seed::<AuraId>("Bob"),
+					(
+						get_account_id_from_seed::<sr25519::Public>("Alice"),
+						get_from_seed::<AuraId>("Alice"),
+					),
+					(
+						get_account_id_from_seed::<sr25519::Public>("Bob"),
+						get_from_seed::<AuraId>("Bob"),
+					),
 				],
 				// Pre-funded accounts
 				vec![
modifiedprimitives/common/src/constants.rsdiffbeforeafterboth
--- a/primitives/common/src/constants.rs
+++ b/primitives/common/src/constants.rs
@@ -35,6 +35,8 @@
 pub const CENTIUNIQUE: Balance = 10 * MILLIUNIQUE;
 pub const UNIQUE: Balance = 100 * CENTIUNIQUE;
 
+pub const EXISTENTIAL_DEPOSIT: u128 = 0;
+
 // Targeting 0.1 UNQ per transfer
 pub const WEIGHT_TO_FEE_COEFF: u32 = /*<weight2fee>*/207_163_598/*</weight2fee>*/;
 
modifiedruntime/common/config/substrate.rsdiffbeforeafterboth
--- a/runtime/common/config/substrate.rs
+++ b/runtime/common/config/substrate.rs
@@ -33,8 +33,9 @@
 };
 use crate::{
 	runtime_common::DealWithFees, Runtime, Event, Call, Origin, PalletInfo, System, Balances,
-	Treasury, SS58Prefix, Version,
+	Treasury, SS58Prefix, Aura, Session, SessionKeys, CollatorSelection, Version,
 };
+use xcm::v1::BodyId;
 use up_common::{types::*, constants::*};
 
 parameter_types! {
@@ -128,7 +129,7 @@
 
 parameter_types! {
 	// pub const ExistentialDeposit: u128 = 500;
-	pub const ExistentialDeposit: u128 = 0;
+	pub const ExistentialDeposit: u128 = EXISTENTIAL_DEPOSIT;
 	pub const MaxLocks: u32 = 50;
 	pub const MaxReserves: u32 = 50;
 }
@@ -215,3 +216,62 @@
 	type DisabledValidators = ();
 	type MaxAuthorities = MaxAuthorities;
 }
+
+parameter_types! {
+	pub const Period: u32 = 6 * HOURS;
+	pub const Offset: u32 = 0;
+	//pub const MaxAuthorities: u32 = 100_000;
+}
+
+impl pallet_session::Config for Runtime {
+	type Event = Event;
+	type ValidatorId = <Self as frame_system::Config>::AccountId;
+	// we don't have stash and controller, thus we don't need the convert as well.
+	type ValidatorIdOf = pallet_collator_selection::IdentityCollator;
+	type ShouldEndSession = pallet_session::PeriodicSessions<Period, Offset>;
+	type NextSessionRotation = pallet_session::PeriodicSessions<Period, Offset>;
+	type SessionManager = CollatorSelection;
+	// Essentially just Aura, but lets be pedantic.
+	type SessionHandler = <SessionKeys as sp_runtime::traits::OpaqueKeys>::KeyTypeIdProviders;
+	type Keys = SessionKeys;
+	type WeightInfo = ();
+}
+
+parameter_types! {
+	pub const UncleGenerations: u32 = 0;
+}
+
+impl pallet_authorship::Config for Runtime {
+	type FindAuthor = pallet_session::FindAccountFromAuthorIndex<Self, Aura>;
+	type UncleGenerations = UncleGenerations;
+	type FilterUncle = ();
+	type EventHandler = (CollatorSelection,);
+}
+
+parameter_types! {
+	pub const PotId: PalletId = PalletId(*b"PotStake");
+	pub const MaxCandidates: u32 = 1000;
+	pub const MinCandidates: u32 = 5;
+	pub const SessionLength: BlockNumber = 6 * HOURS;
+	pub const MaxInvulnerables: u32 = 100;
+	pub const ExecutiveBody: BodyId = BodyId::Executive;
+}
+
+// We allow root only to execute privileged collator selection operations.
+pub type CollatorSelectionUpdateOrigin = EnsureRoot<AccountId>;
+
+impl pallet_collator_selection::Config for Runtime {
+	type Event = Event;
+	type Currency = Balances;
+	type UpdateOrigin = CollatorSelectionUpdateOrigin;
+	type PotId = PotId;
+	type MaxCandidates = MaxCandidates;
+	type MinCandidates = MinCandidates;
+	type MaxInvulnerables = MaxInvulnerables;
+	// should be a multiple of session or things will get inconsistent
+	type KickThreshold = Period;
+	type ValidatorId = <Self as frame_system::Config>::AccountId;
+	type ValidatorIdOf = pallet_collator_selection::IdentityCollator;
+	type ValidatorRegistration = Session;
+	type WeightInfo = ();
+}
modifiedruntime/common/construct_runtime/mod.rsdiffbeforeafterboth
--- a/runtime/common/construct_runtime/mod.rs
+++ b/runtime/common/construct_runtime/mod.rs
@@ -32,8 +32,11 @@
                 ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,
                 ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,
 
-                Aura: pallet_aura::{Pallet, Config<T>} = 22,
-                AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23,
+                Authorship: pallet_authorship::{Pallet, Call, Storage} = 22,
+                CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event<T>, Config<T>} = 23,
+                Session: pallet_session::{Pallet, Call, Storage, Event, Config<T>} = 24,
+                Aura: pallet_aura::{Pallet, Config<T>} = 25,
+                AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 26,
 
                 Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,
                 RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 31,
modifiedruntime/common/mod.rsdiffbeforeafterboth
--- a/runtime/common/mod.rs
+++ b/runtime/common/mod.rs
@@ -25,7 +25,10 @@
 pub mod weights;
 
 use sp_core::H160;
-use frame_support::traits::{Currency, OnUnbalanced, Imbalance};
+use frame_support::{
+	traits::{Currency, OnUnbalanced, Imbalance},
+	weights::Weight,
+};
 use sp_runtime::{
 	generic,
 	traits::{BlakeTwo256, BlockNumberProvider},
@@ -103,6 +106,7 @@
 	frame_system::ChainContext<Runtime>,
 	Runtime,
 	AllPalletsReversedWithSystemFirst,
+	AuraToCollatorSelection,
 >;
 
 type NegativeImbalance = <Balances as Currency<AccountId>>::NegativeImbalance;
@@ -165,3 +169,158 @@
 	/// Transfer tokens to the given account from the Parachain account.
 	TransferToken(XAccountId, XBalance),
 }
+
+pub struct AuraToCollatorSelection;
+impl frame_support::traits::OnRuntimeUpgrade for AuraToCollatorSelection {
+	fn on_runtime_upgrade() -> Weight {
+		use frame_support::{BoundedVec, storage::migration};
+		use sp_runtime::{
+			traits::{OpaqueKeys, Saturating},
+			RuntimeAppPublic,
+		};
+		use pallet_session::SessionManager;
+		use up_common::constants::EXISTENTIAL_DEPOSIT;
+		use crate::config::substrate::MaxInvulnerables;
+
+		let mut weight = <Runtime as frame_system::Config>::DbWeight::get().reads(1);
+
+		let version =
+			migration::get_storage_value::<()>(b"AuraToCollatorSelection", b"StorageVersion", &[]);
+
+		let should_upgrade = match version {
+			None => true,
+			Some(_) => false,
+		};
+
+		if should_upgrade {
+			log::info!(
+				target: "runtime::aura_to_collator_selection",
+				"Running migration of Aura authorities to Collator Selection invulnerables"
+			);
+
+			let invulnerables = pallet_aura::Pallet::<Runtime>::authorities()
+				.iter()
+				.cloned()
+				.filter_map(|authority_id| {
+					weight.saturating_accrue(<Runtime as frame_system::Config>::DbWeight::get().reads_writes(1, 1));
+					let vec = authority_id.clone().to_raw_vec();
+					let slice = vec.as_slice();
+					let array: Option<[u8; 32]> = match slice.try_into() {
+						Ok(a) => Some(a),
+						Err(_) => {
+							log::error!("Failed to convert an Aura authority to a Collator Selection invulnerable: {:?}", authority_id);
+							None
+						},
+					};
+					array.map(|a| (AccountId::from(a), authority_id))
+				})
+				.collect::<Vec<_>>();
+
+			let bounded_invulnerables = BoundedVec::<_, MaxInvulnerables>::try_from(
+				invulnerables
+					.iter()
+					.cloned()
+					.map(|(acc, _)| acc)
+					.collect::<Vec<_>>(),
+			)
+			.expect("Existing collators/invulnerables are more than MaxInvulnerables");
+			
+			<pallet_collator_selection::Invulnerables<Runtime>>::put(bounded_invulnerables);
+			<pallet_collator_selection::DesiredCandidates<Runtime>>::put(0);
+			<pallet_collator_selection::CandidacyBond<Runtime>>::put(EXISTENTIAL_DEPOSIT * 16);
+
+			let keys = invulnerables
+				.into_iter()
+				.map(|(acc, aura)| {
+					(
+						acc.clone(),                        // account id
+						acc,                                // validator id
+						SessionKeys { aura: aura.clone() }, // session keys
+					)
+				})
+				.collect::<Vec<_>>();
+
+			for (account, val, keys) in keys.iter().cloned() {
+				for id in <Runtime as pallet_session::Config>::Keys::key_ids() {
+					<pallet_session::KeyOwner<Runtime>>::insert((*id, keys.get_raw(*id)), &val)
+				}
+				<pallet_session::NextKeys<Runtime>>::insert(&val, &keys);
+				// todo exercise caution, the following is taken from genesis
+				if frame_system::Pallet::<Runtime>::inc_consumers_without_limit(&account).is_err() {
+					log::warn!(
+						"We have entered an error with incrementing consumers without limit"
+					);
+					// This will leak a provider reference, however it only happens once (at
+					// genesis) so it's really not a big deal and we assume that the user wants to
+					// do this since it's the only way a non-endowed account can contain a session
+					// key.
+					frame_system::Pallet::<Runtime>::inc_providers(&account);
+				}
+			}
+
+			let initial_validators_0 =
+				<Runtime as pallet_session::Config>::SessionManager::new_session(0).unwrap_or_else(
+					|| {
+						frame_support::print(
+							"No initial validator provided by `SessionManager`, use \
+						session config keys to generate initial validator set.",
+						);
+						keys.iter().map(|x| x.1.clone()).collect()
+					},
+				);
+			/*assert!(
+				!initial_validators_0.is_empty(),
+				"Empty validator set for session 0 in (pseudo) genesis block!"
+			);*/
+
+			let initial_validators_1 =
+				<Runtime as pallet_session::Config>::SessionManager::new_session(1)
+					.unwrap_or_else(|| initial_validators_0.clone());
+			/*assert!(
+				!initial_validators_1.is_empty(),
+				"Empty validator set for session 1 in (pseudo) genesis block!"
+			);*/
+
+			let queued_keys: Vec<_> = initial_validators_1
+				.iter()
+				.cloned()
+				.map(|v| {
+					(
+						v.clone(),
+						<pallet_session::NextKeys<Runtime>>::get(&v)
+							.expect("Validator in session 1 missing keys!"),
+					)
+				})
+				.collect();
+
+			// Tell everyone about the genesis session keys -- Aura must've already initialized it
+			//<Runtime as pallet_session::Config>::SessionHandler::on_genesis_session::<<Runtime as pallet_session::Config>::Keys>(&queued_keys);
+
+			<pallet_session::Validators<Runtime>>::put(initial_validators_0);
+			<pallet_session::QueuedKeys<Runtime>>::put(queued_keys);
+
+			<Runtime as pallet_session::Config>::SessionManager::start_session(0);
+
+			log::info!(
+				target: "runtime::aura_to_collator_selection",
+				"Migration of Aura authorities to Collator Selection invulnerables is complete."
+			);
+
+			migration::put_storage_value::<()>(
+				b"AuraToCollatorSelection",
+				b"StorageVersion",
+				&[],
+				(),
+			);
+
+			weight += <Runtime as frame_system::Config>::DbWeight::get().writes(1)
+		} else {
+			log::info!(
+				target: "runtime::aura_to_collator_selection",
+				"The storage migration has already been flagged as complete. No migration needs to be done.",
+			);
+		}
+
+		weight
+	}
+}
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -27,6 +27,7 @@
     'pallet-evm-migration/runtime-benchmarks',
     'pallet-evm-coder-substrate/runtime-benchmarks',
     'pallet-balances/runtime-benchmarks',
+	"pallet-collator-selection/runtime-benchmarks",
     'pallet-timestamp/runtime-benchmarks',
     'pallet-common/runtime-benchmarks',
     'pallet-structure/runtime-benchmarks',
@@ -66,6 +67,9 @@
     # 'pallet-contracts-primitives/std',
     # 'pallet-contracts-rpc-runtime-api/std',
     # 'pallet-contract-helpers/std',
+	"pallet-authorship/std",
+	'pallet-collator-selection/std',
+	"pallet-session/std",
     'pallet-randomness-collective-flip/std',
     'pallet-sudo/std',
     'pallet-timestamp/std',
@@ -190,6 +194,21 @@
 git = "https://github.com/paritytech/substrate"
 branch = "polkadot-v0.9.27"
 
+[dependencies.pallet-collator-selection]
+default-features = false
+git = 'https://github.com/paritytech/cumulus'
+branch = 'polkadot-v0.9.27'
+
+[dependencies.pallet-authorship]
+default-features = false
+git = 'https://github.com/paritytech/substrate'
+branch = 'polkadot-v0.9.27'
+
+[dependencies.pallet-session]
+default-features = false
+git = 'https://github.com/paritytech/substrate'
+branch = 'polkadot-v0.9.27'
+
 [dependencies.pallet-balances]
 default-features = false
 git = "https://github.com/paritytech/substrate"
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -27,6 +27,7 @@
     'pallet-evm-migration/runtime-benchmarks',
     'pallet-evm-coder-substrate/runtime-benchmarks',
     'pallet-balances/runtime-benchmarks',
+	"pallet-collator-selection/runtime-benchmarks",
     'pallet-timestamp/runtime-benchmarks',
     'pallet-common/runtime-benchmarks',
     'pallet-structure/runtime-benchmarks',
@@ -66,6 +67,9 @@
     # 'pallet-contracts-primitives/std',
     # 'pallet-contracts-rpc-runtime-api/std',
     # 'pallet-contract-helpers/std',
+	"pallet-authorship/std",
+	'pallet-collator-selection/std',
+	"pallet-session/std",
     'pallet-randomness-collective-flip/std',
     'pallet-sudo/std',
     'pallet-timestamp/std',
@@ -187,6 +191,21 @@
 git = "https://github.com/paritytech/substrate"
 branch = "polkadot-v0.9.27"
 
+[dependencies.pallet-collator-selection]
+default-features = false
+git = 'https://github.com/paritytech/cumulus'
+branch = 'polkadot-v0.9.27'
+
+[dependencies.pallet-authorship]
+default-features = false
+git = 'https://github.com/paritytech/substrate'
+branch = 'polkadot-v0.9.27'
+
+[dependencies.pallet-session]
+default-features = false
+git = 'https://github.com/paritytech/substrate'
+branch = 'polkadot-v0.9.27'
+
 [dependencies.pallet-balances]
 default-features = false
 git = "https://github.com/paritytech/substrate"
modifiedruntime/tests/src/lib.rsdiffbeforeafterboth
--- a/runtime/tests/src/lib.rs
+++ b/runtime/tests/src/lib.rs
@@ -189,6 +189,9 @@
 	fn conv_eq(&self, other: &Self) -> bool {
 		self.as_sub() == other.as_sub()
 	}
+	fn is_canonical_substrate(&self) -> bool {
+		todo!()
+	}
 }
 
 impl Default for TestCrossAccountId {
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
before · runtime/unique/Cargo.toml
1################################################################################2# Package34[package]5authors = ['Unique Network <support@uniquenetwork.io>']6build = 'build.rs'7description = 'Unique Runtime'8edition = '2021'9homepage = 'https://unique.network'10license = 'GPLv3'11name = 'unique-runtime'12repository = 'https://github.com/UniqueNetwork/unique-chain'13version = '0.9.27'1415[package.metadata.docs.rs]16targets = ['x86_64-unknown-linux-gnu']1718[features]19default = ['std', 'unique-runtime']20runtime-benchmarks = [21    'hex-literal',22    'frame-benchmarking',23    'frame-support/runtime-benchmarks',24    'frame-system-benchmarking',25    'frame-system/runtime-benchmarks',26    'pallet-ethereum/runtime-benchmarks',27    'pallet-evm-migration/runtime-benchmarks',28    'pallet-evm-coder-substrate/runtime-benchmarks',29    'pallet-balances/runtime-benchmarks',30    'pallet-timestamp/runtime-benchmarks',31    'pallet-common/runtime-benchmarks',32    'pallet-structure/runtime-benchmarks',33    'pallet-fungible/runtime-benchmarks',34    'pallet-refungible/runtime-benchmarks',35    'pallet-nonfungible/runtime-benchmarks',36    'pallet-proxy-rmrk-core/runtime-benchmarks',37    'pallet-proxy-rmrk-equip/runtime-benchmarks',38    'pallet-unique/runtime-benchmarks',39    'pallet-inflation/runtime-benchmarks',40    'pallet-unique-scheduler/runtime-benchmarks',41    'pallet-xcm/runtime-benchmarks',42    'sp-runtime/runtime-benchmarks',43    'xcm-builder/runtime-benchmarks',44    'up-data-structs/runtime-benchmarks',45]46try-runtime = [47    'frame-try-runtime',48    'frame-executive/try-runtime',49    'frame-system/try-runtime',50]51std = [52    'codec/std',53    'cumulus-pallet-aura-ext/std',54    'cumulus-pallet-parachain-system/std',55    'cumulus-pallet-xcm/std',56    'cumulus-pallet-xcmp-queue/std',57    'cumulus-primitives-core/std',58    'cumulus-primitives-utility/std',59    'frame-try-runtime/std',60    'frame-executive/std',61    'frame-support/std',62    'frame-system/std',63    'frame-system-rpc-runtime-api/std',64    'pallet-aura/std',65    'pallet-balances/std',66    # 'pallet-contracts/std',67    # 'pallet-contracts-primitives/std',68    # 'pallet-contracts-rpc-runtime-api/std',69    # 'pallet-contract-helpers/std',70    'pallet-randomness-collective-flip/std',71    'pallet-sudo/std',72    'pallet-timestamp/std',73    'pallet-transaction-payment/std',74    'pallet-transaction-payment-rpc-runtime-api/std',75    'pallet-treasury/std',76    # 'pallet-vesting/std',77    'pallet-evm/std',78    'pallet-evm-migration/std',79    'pallet-evm-contract-helpers/std',80    'pallet-evm-transaction-payment/std',81    'pallet-evm-coder-substrate/std',82    'pallet-ethereum/std',83    'pallet-base-fee/std',84    'fp-rpc/std',85    'up-rpc/std',86    'fp-evm-mapping/std',87    'fp-self-contained/std',88    'parachain-info/std',89    'serde',90    'pallet-inflation/std',91    'pallet-configuration/std',92    'pallet-common/std',93    'pallet-structure/std',94    'pallet-fungible/std',95    'pallet-refungible/std',96    'pallet-nonfungible/std',97    'pallet-proxy-rmrk-core/std',98    'pallet-proxy-rmrk-equip/std',99    'pallet-unique/std',100    'pallet-unique-scheduler/std',101    'pallet-charge-transaction/std',102    'up-data-structs/std',103    'sp-api/std',104    'sp-block-builder/std',105    "sp-consensus-aura/std",106    'sp-core/std',107    'sp-inherents/std',108    'sp-io/std',109    'sp-offchain/std',110    'sp-runtime/std',111    'sp-session/std',112    'sp-std/std',113    'sp-transaction-pool/std',114    'sp-version/std',115    'xcm/std',116    'xcm-builder/std',117    'xcm-executor/std',118    'up-common/std',119120    "orml-vesting/std",121]122limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']123unique-runtime = []124125refungible = []126scheduler = []127rmrk = []128129################################################################################130# Substrate Dependencies131132[dependencies.codec]133default-features = false134features = ['derive']135package = 'parity-scale-codec'136version = '3.1.2'137138[dependencies.frame-benchmarking]139default-features = false140git = "https://github.com/paritytech/substrate"141optional = true142branch = "polkadot-v0.9.27"143144[dependencies.frame-try-runtime]145default-features = false146git = "https://github.com/paritytech/substrate"147optional = true148branch = "polkadot-v0.9.27"149150[dependencies.frame-executive]151default-features = false152git = "https://github.com/paritytech/substrate"153branch = "polkadot-v0.9.27"154155[dependencies.frame-support]156default-features = false157git = "https://github.com/paritytech/substrate"158branch = "polkadot-v0.9.27"159160[dependencies.frame-system]161default-features = false162git = "https://github.com/paritytech/substrate"163branch = "polkadot-v0.9.27"164165[dependencies.frame-system-benchmarking]166default-features = false167git = "https://github.com/paritytech/substrate"168optional = true169branch = "polkadot-v0.9.27"170171[dependencies.frame-system-rpc-runtime-api]172default-features = false173git = "https://github.com/paritytech/substrate"174branch = "polkadot-v0.9.27"175176[dependencies.hex-literal]177optional = true178version = '0.3.3'179180[dependencies.serde]181default-features = false182features = ['derive']183optional = true184version = '1.0.130'185186[dependencies.pallet-aura]187default-features = false188git = "https://github.com/paritytech/substrate"189branch = "polkadot-v0.9.27"190191[dependencies.pallet-balances]192default-features = false193git = "https://github.com/paritytech/substrate"194branch = "polkadot-v0.9.27"195196# Contracts specific packages197# [dependencies.pallet-contracts]198# git = 'https://github.com/paritytech/substrate'199# default-features = false200# branch = 'master'201# version = '4.0.0-dev'202203# [dependencies.pallet-contracts-primitives]204# git = 'https://github.com/paritytech/substrate'205# default-features = false206# branch = 'master'207# version = '4.0.0-dev'208209# [dependencies.pallet-contracts-rpc-runtime-api]210# git = 'https://github.com/paritytech/substrate'211# default-features = false212# branch = 'master'213# version = '4.0.0-dev'214215[dependencies.pallet-randomness-collective-flip]216default-features = false217git = "https://github.com/paritytech/substrate"218branch = "polkadot-v0.9.27"219220[dependencies.pallet-sudo]221default-features = false222git = "https://github.com/paritytech/substrate"223branch = "polkadot-v0.9.27"224225[dependencies.pallet-timestamp]226default-features = false227git = "https://github.com/paritytech/substrate"228branch = "polkadot-v0.9.27"229230[dependencies.pallet-transaction-payment]231default-features = false232git = "https://github.com/paritytech/substrate"233branch = "polkadot-v0.9.27"234235[dependencies.pallet-transaction-payment-rpc-runtime-api]236default-features = false237git = "https://github.com/paritytech/substrate"238branch = "polkadot-v0.9.27"239240[dependencies.pallet-treasury]241default-features = false242git = "https://github.com/paritytech/substrate"243branch = "polkadot-v0.9.27"244245# [dependencies.pallet-vesting]246# default-features = false247# git = 'https://github.com/paritytech/substrate'248# branch = 'master'249250[dependencies.sp-arithmetic]251default-features = false252git = "https://github.com/paritytech/substrate"253branch = "polkadot-v0.9.27"254255[dependencies.sp-api]256default-features = false257git = "https://github.com/paritytech/substrate"258branch = "polkadot-v0.9.27"259260[dependencies.sp-block-builder]261default-features = false262git = "https://github.com/paritytech/substrate"263branch = "polkadot-v0.9.27"264265[dependencies.sp-core]266default-features = false267git = "https://github.com/paritytech/substrate"268branch = "polkadot-v0.9.27"269270[dependencies.sp-consensus-aura]271default-features = false272git = "https://github.com/paritytech/substrate"273branch = "polkadot-v0.9.27"274275[dependencies.sp-inherents]276default-features = false277git = "https://github.com/paritytech/substrate"278branch = "polkadot-v0.9.27"279280[dependencies.sp-io]281default-features = false282git = "https://github.com/paritytech/substrate"283branch = "polkadot-v0.9.27"284285[dependencies.sp-offchain]286default-features = false287git = "https://github.com/paritytech/substrate"288branch = "polkadot-v0.9.27"289290[dependencies.sp-runtime]291default-features = false292git = "https://github.com/paritytech/substrate"293branch = "polkadot-v0.9.27"294295[dependencies.sp-session]296default-features = false297git = "https://github.com/paritytech/substrate"298branch = "polkadot-v0.9.27"299300[dependencies.sp-std]301default-features = false302git = "https://github.com/paritytech/substrate"303branch = "polkadot-v0.9.27"304305[dependencies.sp-transaction-pool]306default-features = false307git = "https://github.com/paritytech/substrate"308branch = "polkadot-v0.9.27"309310[dependencies.sp-version]311default-features = false312git = "https://github.com/paritytech/substrate"313branch = "polkadot-v0.9.27"314315[dependencies.smallvec]316version = '1.6.1'317318################################################################################319# Cumulus dependencies320321[dependencies.parachain-info]322default-features = false323git = "https://github.com/paritytech/cumulus"324branch = "polkadot-v0.9.27"325326[dependencies.cumulus-pallet-aura-ext]327git = "https://github.com/paritytech/cumulus"328branch = "polkadot-v0.9.27"329default-features = false330331[dependencies.cumulus-pallet-parachain-system]332git = "https://github.com/paritytech/cumulus"333branch = "polkadot-v0.9.27"334default-features = false335336[dependencies.cumulus-primitives-core]337git = "https://github.com/paritytech/cumulus"338branch = "polkadot-v0.9.27"339default-features = false340341[dependencies.cumulus-pallet-xcm]342git = "https://github.com/paritytech/cumulus"343branch = "polkadot-v0.9.27"344default-features = false345346[dependencies.cumulus-pallet-dmp-queue]347git = "https://github.com/paritytech/cumulus"348branch = "polkadot-v0.9.27"349default-features = false350351[dependencies.cumulus-pallet-xcmp-queue]352git = "https://github.com/paritytech/cumulus"353branch = "polkadot-v0.9.27"354default-features = false355356[dependencies.cumulus-primitives-utility]357git = "https://github.com/paritytech/cumulus"358branch = "polkadot-v0.9.27"359default-features = false360361[dependencies.cumulus-primitives-timestamp]362git = "https://github.com/paritytech/cumulus"363branch = "polkadot-v0.9.27"364default-features = false365366################################################################################367# Polkadot dependencies368369[dependencies.polkadot-parachain]370git = "https://github.com/paritytech/polkadot"371branch = "release-v0.9.27"372default-features = false373374[dependencies.xcm]375git = "https://github.com/paritytech/polkadot"376branch = "release-v0.9.27"377default-features = false378379[dependencies.xcm-builder]380git = "https://github.com/paritytech/polkadot"381branch = "release-v0.9.27"382default-features = false383384[dependencies.xcm-executor]385git = "https://github.com/paritytech/polkadot"386branch = "release-v0.9.27"387default-features = false388389[dependencies.pallet-xcm]390git = "https://github.com/paritytech/polkadot"391branch = "release-v0.9.27"392default-features = false393394[dependencies.orml-vesting]395git = "https://github.com/open-web3-stack/open-runtime-module-library"396branch = "polkadot-v0.9.27"397version = "0.4.1-dev"398default-features = false399400################################################################################401# local dependencies402403[dependencies]404log = { version = "0.4.16", default-features = false }405up-common = { path = "../../primitives/common", default-features = false }406scale-info = { version = "2.0.1", default-features = false, features = [407    "derive",408] }409derivative = "2.2.0"410pallet-unique = { path = '../../pallets/unique', default-features = false }411up-rpc = { path = "../../primitives/rpc", default-features = false }412rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }413pallet-inflation = { path = '../../pallets/inflation', default-features = false }414up-data-structs = { path = '../../primitives/data-structs', default-features = false }415pallet-configuration = { default-features = false, path = "../../pallets/configuration" }416pallet-common = { default-features = false, path = "../../pallets/common" }417pallet-structure = { default-features = false, path = "../../pallets/structure" }418pallet-fungible = { default-features = false, path = "../../pallets/fungible" }419pallet-refungible = { default-features = false, path = "../../pallets/refungible" }420pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }421pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }422pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }423pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }424# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }425pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.27", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }426pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }427pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }428pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }429pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }430pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }431pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }432pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }433fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }434fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }435fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }436evm-coder = { default-features = false, path = '../../crates/evm-coder' }437up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.27' }438439################################################################################440# Build Dependencies441442[build-dependencies.substrate-wasm-builder]443git = "https://github.com/paritytech/substrate"444branch = "polkadot-v0.9.27"
after · runtime/unique/Cargo.toml
1################################################################################2# Package34[package]5authors = ['Unique Network <support@uniquenetwork.io>']6build = 'build.rs'7description = 'Unique Runtime'8edition = '2021'9homepage = 'https://unique.network'10license = 'GPLv3'11name = 'unique-runtime'12repository = 'https://github.com/UniqueNetwork/unique-chain'13version = '0.9.27'1415[package.metadata.docs.rs]16targets = ['x86_64-unknown-linux-gnu']1718[features]19default = ['std', 'unique-runtime']20runtime-benchmarks = [21    'hex-literal',22    'frame-benchmarking',23    'frame-support/runtime-benchmarks',24    'frame-system-benchmarking',25    'frame-system/runtime-benchmarks',26    'pallet-ethereum/runtime-benchmarks',27    'pallet-evm-migration/runtime-benchmarks',28    'pallet-evm-coder-substrate/runtime-benchmarks',29    'pallet-balances/runtime-benchmarks',30	"pallet-collator-selection/runtime-benchmarks",31    'pallet-timestamp/runtime-benchmarks',32    'pallet-common/runtime-benchmarks',33    'pallet-structure/runtime-benchmarks',34    'pallet-fungible/runtime-benchmarks',35    'pallet-refungible/runtime-benchmarks',36    'pallet-nonfungible/runtime-benchmarks',37    'pallet-proxy-rmrk-core/runtime-benchmarks',38    'pallet-proxy-rmrk-equip/runtime-benchmarks',39    'pallet-unique/runtime-benchmarks',40    'pallet-inflation/runtime-benchmarks',41    'pallet-unique-scheduler/runtime-benchmarks',42    'pallet-xcm/runtime-benchmarks',43    'sp-runtime/runtime-benchmarks',44    'xcm-builder/runtime-benchmarks',45    'up-data-structs/runtime-benchmarks',46]47try-runtime = [48    'frame-try-runtime',49    'frame-executive/try-runtime',50    'frame-system/try-runtime',51]52std = [53    'codec/std',54    'cumulus-pallet-aura-ext/std',55    'cumulus-pallet-parachain-system/std',56    'cumulus-pallet-xcm/std',57    'cumulus-pallet-xcmp-queue/std',58    'cumulus-primitives-core/std',59    'cumulus-primitives-utility/std',60    'frame-try-runtime/std',61    'frame-executive/std',62    'frame-support/std',63    'frame-system/std',64    'frame-system-rpc-runtime-api/std',65    'pallet-aura/std',66    'pallet-balances/std',67    # 'pallet-contracts/std',68    # 'pallet-contracts-primitives/std',69    # 'pallet-contracts-rpc-runtime-api/std',70    # 'pallet-contract-helpers/std',71	"pallet-authorship/std",72	'pallet-collator-selection/std',73	"pallet-session/std",74    'pallet-randomness-collective-flip/std',75    'pallet-sudo/std',76    'pallet-timestamp/std',77    'pallet-transaction-payment/std',78    'pallet-transaction-payment-rpc-runtime-api/std',79    'pallet-treasury/std',80    # 'pallet-vesting/std',81    'pallet-evm/std',82    'pallet-evm-migration/std',83    'pallet-evm-contract-helpers/std',84    'pallet-evm-transaction-payment/std',85    'pallet-evm-coder-substrate/std',86    'pallet-ethereum/std',87    'pallet-base-fee/std',88    'fp-rpc/std',89    'up-rpc/std',90    'fp-evm-mapping/std',91    'fp-self-contained/std',92    'parachain-info/std',93    'serde',94    'pallet-inflation/std',95    'pallet-configuration/std',96    'pallet-common/std',97    'pallet-structure/std',98    'pallet-fungible/std',99    'pallet-refungible/std',100    'pallet-nonfungible/std',101    'pallet-proxy-rmrk-core/std',102    'pallet-proxy-rmrk-equip/std',103    'pallet-unique/std',104    'pallet-unique-scheduler/std',105    'pallet-charge-transaction/std',106    'up-data-structs/std',107    'sp-api/std',108    'sp-block-builder/std',109    "sp-consensus-aura/std",110    'sp-core/std',111    'sp-inherents/std',112    'sp-io/std',113    'sp-offchain/std',114    'sp-runtime/std',115    'sp-session/std',116    'sp-std/std',117    'sp-transaction-pool/std',118    'sp-version/std',119    'xcm/std',120    'xcm-builder/std',121    'xcm-executor/std',122    'up-common/std',123124    "orml-vesting/std",125]126limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']127unique-runtime = []128129refungible = []130scheduler = []131rmrk = []132133################################################################################134# Substrate Dependencies135136[dependencies.codec]137default-features = false138features = ['derive']139package = 'parity-scale-codec'140version = '3.1.2'141142[dependencies.frame-benchmarking]143default-features = false144git = "https://github.com/paritytech/substrate"145optional = true146branch = "polkadot-v0.9.27"147148[dependencies.frame-try-runtime]149default-features = false150git = "https://github.com/paritytech/substrate"151optional = true152branch = "polkadot-v0.9.27"153154[dependencies.frame-executive]155default-features = false156git = "https://github.com/paritytech/substrate"157branch = "polkadot-v0.9.27"158159[dependencies.frame-support]160default-features = false161git = "https://github.com/paritytech/substrate"162branch = "polkadot-v0.9.27"163164[dependencies.frame-system]165default-features = false166git = "https://github.com/paritytech/substrate"167branch = "polkadot-v0.9.27"168169[dependencies.frame-system-benchmarking]170default-features = false171git = "https://github.com/paritytech/substrate"172optional = true173branch = "polkadot-v0.9.27"174175[dependencies.frame-system-rpc-runtime-api]176default-features = false177git = "https://github.com/paritytech/substrate"178branch = "polkadot-v0.9.27"179180[dependencies.hex-literal]181optional = true182version = '0.3.3'183184[dependencies.serde]185default-features = false186features = ['derive']187optional = true188version = '1.0.130'189190[dependencies.pallet-aura]191default-features = false192git = "https://github.com/paritytech/substrate"193branch = "polkadot-v0.9.27"194195[dependencies.pallet-collator-selection]196default-features = false197git = 'https://github.com/paritytech/cumulus'198branch = 'polkadot-v0.9.27'199200[dependencies.pallet-authorship]201default-features = false202git = 'https://github.com/paritytech/substrate'203branch = 'polkadot-v0.9.27'204205[dependencies.pallet-session]206default-features = false207git = 'https://github.com/paritytech/substrate'208branch = 'polkadot-v0.9.27'209210[dependencies.pallet-balances]211default-features = false212git = "https://github.com/paritytech/substrate"213branch = "polkadot-v0.9.27"214215# Contracts specific packages216# [dependencies.pallet-contracts]217# git = 'https://github.com/paritytech/substrate'218# default-features = false219# branch = 'master'220# version = '4.0.0-dev'221222# [dependencies.pallet-contracts-primitives]223# git = 'https://github.com/paritytech/substrate'224# default-features = false225# branch = 'master'226# version = '4.0.0-dev'227228# [dependencies.pallet-contracts-rpc-runtime-api]229# git = 'https://github.com/paritytech/substrate'230# default-features = false231# branch = 'master'232# version = '4.0.0-dev'233234[dependencies.pallet-randomness-collective-flip]235default-features = false236git = "https://github.com/paritytech/substrate"237branch = "polkadot-v0.9.27"238239[dependencies.pallet-sudo]240default-features = false241git = "https://github.com/paritytech/substrate"242branch = "polkadot-v0.9.27"243244[dependencies.pallet-timestamp]245default-features = false246git = "https://github.com/paritytech/substrate"247branch = "polkadot-v0.9.27"248249[dependencies.pallet-transaction-payment]250default-features = false251git = "https://github.com/paritytech/substrate"252branch = "polkadot-v0.9.27"253254[dependencies.pallet-transaction-payment-rpc-runtime-api]255default-features = false256git = "https://github.com/paritytech/substrate"257branch = "polkadot-v0.9.27"258259[dependencies.pallet-treasury]260default-features = false261git = "https://github.com/paritytech/substrate"262branch = "polkadot-v0.9.27"263264# [dependencies.pallet-vesting]265# default-features = false266# git = 'https://github.com/paritytech/substrate'267# branch = 'master'268269[dependencies.sp-arithmetic]270default-features = false271git = "https://github.com/paritytech/substrate"272branch = "polkadot-v0.9.27"273274[dependencies.sp-api]275default-features = false276git = "https://github.com/paritytech/substrate"277branch = "polkadot-v0.9.27"278279[dependencies.sp-block-builder]280default-features = false281git = "https://github.com/paritytech/substrate"282branch = "polkadot-v0.9.27"283284[dependencies.sp-core]285default-features = false286git = "https://github.com/paritytech/substrate"287branch = "polkadot-v0.9.27"288289[dependencies.sp-consensus-aura]290default-features = false291git = "https://github.com/paritytech/substrate"292branch = "polkadot-v0.9.27"293294[dependencies.sp-inherents]295default-features = false296git = "https://github.com/paritytech/substrate"297branch = "polkadot-v0.9.27"298299[dependencies.sp-io]300default-features = false301git = "https://github.com/paritytech/substrate"302branch = "polkadot-v0.9.27"303304[dependencies.sp-offchain]305default-features = false306git = "https://github.com/paritytech/substrate"307branch = "polkadot-v0.9.27"308309[dependencies.sp-runtime]310default-features = false311git = "https://github.com/paritytech/substrate"312branch = "polkadot-v0.9.27"313314[dependencies.sp-session]315default-features = false316git = "https://github.com/paritytech/substrate"317branch = "polkadot-v0.9.27"318319[dependencies.sp-std]320default-features = false321git = "https://github.com/paritytech/substrate"322branch = "polkadot-v0.9.27"323324[dependencies.sp-transaction-pool]325default-features = false326git = "https://github.com/paritytech/substrate"327branch = "polkadot-v0.9.27"328329[dependencies.sp-version]330default-features = false331git = "https://github.com/paritytech/substrate"332branch = "polkadot-v0.9.27"333334[dependencies.smallvec]335version = '1.6.1'336337################################################################################338# Cumulus dependencies339340[dependencies.parachain-info]341default-features = false342git = "https://github.com/paritytech/cumulus"343branch = "polkadot-v0.9.27"344345[dependencies.cumulus-pallet-aura-ext]346git = "https://github.com/paritytech/cumulus"347branch = "polkadot-v0.9.27"348default-features = false349350[dependencies.cumulus-pallet-parachain-system]351git = "https://github.com/paritytech/cumulus"352branch = "polkadot-v0.9.27"353default-features = false354355[dependencies.cumulus-primitives-core]356git = "https://github.com/paritytech/cumulus"357branch = "polkadot-v0.9.27"358default-features = false359360[dependencies.cumulus-pallet-xcm]361git = "https://github.com/paritytech/cumulus"362branch = "polkadot-v0.9.27"363default-features = false364365[dependencies.cumulus-pallet-dmp-queue]366git = "https://github.com/paritytech/cumulus"367branch = "polkadot-v0.9.27"368default-features = false369370[dependencies.cumulus-pallet-xcmp-queue]371git = "https://github.com/paritytech/cumulus"372branch = "polkadot-v0.9.27"373default-features = false374375[dependencies.cumulus-primitives-utility]376git = "https://github.com/paritytech/cumulus"377branch = "polkadot-v0.9.27"378default-features = false379380[dependencies.cumulus-primitives-timestamp]381git = "https://github.com/paritytech/cumulus"382branch = "polkadot-v0.9.27"383default-features = false384385################################################################################386# Polkadot dependencies387388[dependencies.polkadot-parachain]389git = "https://github.com/paritytech/polkadot"390branch = "release-v0.9.27"391default-features = false392393[dependencies.xcm]394git = "https://github.com/paritytech/polkadot"395branch = "release-v0.9.27"396default-features = false397398[dependencies.xcm-builder]399git = "https://github.com/paritytech/polkadot"400branch = "release-v0.9.27"401default-features = false402403[dependencies.xcm-executor]404git = "https://github.com/paritytech/polkadot"405branch = "release-v0.9.27"406default-features = false407408[dependencies.pallet-xcm]409git = "https://github.com/paritytech/polkadot"410branch = "release-v0.9.27"411default-features = false412413[dependencies.orml-vesting]414git = "https://github.com/open-web3-stack/open-runtime-module-library"415branch = "polkadot-v0.9.27"416version = "0.4.1-dev"417default-features = false418419################################################################################420# local dependencies421422[dependencies]423log = { version = "0.4.16", default-features = false }424up-common = { path = "../../primitives/common", default-features = false }425scale-info = { version = "2.0.1", default-features = false, features = [426    "derive",427] }428derivative = "2.2.0"429pallet-unique = { path = '../../pallets/unique', default-features = false }430up-rpc = { path = "../../primitives/rpc", default-features = false }431rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }432pallet-inflation = { path = '../../pallets/inflation', default-features = false }433up-data-structs = { path = '../../primitives/data-structs', default-features = false }434pallet-configuration = { default-features = false, path = "../../pallets/configuration" }435pallet-common = { default-features = false, path = "../../pallets/common" }436pallet-structure = { default-features = false, path = "../../pallets/structure" }437pallet-fungible = { default-features = false, path = "../../pallets/fungible" }438pallet-refungible = { default-features = false, path = "../../pallets/refungible" }439pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }440pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }441pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }442pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }443# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }444pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.27", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }445pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }446pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }447pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }448pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }449pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }450pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }451pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }452fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }453fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }454fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }455evm-coder = { default-features = false, path = '../../crates/evm-coder' }456up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.27' }457458################################################################################459# Build Dependencies460461[build-dependencies.substrate-wasm-builder]462git = "https://github.com/paritytech/substrate"463branch = "polkadot-v0.9.27"