git.delta.rocks / unique-network / refs/commits / 55625a7f9472

difftreelog

Stable build: 2.0.0-alpha.6, no smart contracts and last changes removed

Greg Zaitsev2020-07-08parent: #e133193.patch.diff
in: master

13 files changed

modified.dockerignorediffbeforeafterboth
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,2 +1,6 @@
+.git/
+.github/
+doc/
 target/
-chain-data/
\ No newline at end of file
+chain-data/
+smart_contract/
\ No newline at end of file
modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -906,16 +906,16 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4f2fc91a6a976ce87b105722d8d9cdc44d4cb03ad24493d34cbfb64bbaacb7ee"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "linregress",
  "parity-scale-codec",
  "paste",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-io",
+ "sp-runtime",
+ "sp-runtime-interface",
+ "sp-std",
 ]
 
 [[package]]
@@ -924,23 +924,12 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2941cd59682f596645d54b0e84c02e98f9be53a346841c720ead60cdbadb3463"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "parity-scale-codec",
  "serde",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "frame-metadata"
-version = "11.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "parity-scale-codec",
- "serde",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -951,32 +940,8 @@
 dependencies = [
  "parity-scale-codec",
  "serde",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "frame-support"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "bitmask",
- "frame-metadata 11.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "frame-support-procedural 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "impl-trait-for-tuples",
- "log",
- "once_cell",
- "parity-scale-codec",
- "paste",
- "serde",
- "sp-arithmetic 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-inherents 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-io 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-runtime 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-state-machine 0.8.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "tracing",
+ "sp-core",
+ "sp-std",
 ]
 
 [[package]]
@@ -986,33 +951,22 @@
 checksum = "a4058dce75ae1d45b469a8cbbe0c9dc3083e5546936b60e4647e73584e0f7ba7"
 dependencies = [
  "bitmask",
- "frame-metadata 11.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-support-procedural 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-metadata",
+ "frame-support-procedural",
  "impl-trait-for-tuples",
  "log",
  "once_cell",
  "parity-scale-codec",
  "paste",
  "serde",
- "sp-arithmetic 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
  "tracing",
-]
-
-[[package]]
-name = "frame-support-procedural"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "frame-support-procedural-tools 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "proc-macro2",
- "quote 1.0.3",
- "syn 1.0.17",
 ]
 
 [[package]]
@@ -1021,19 +975,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eefa7eb42406f732f87f8331aaaa787a65abe0f5f681a59fac1737ba4e81d89e"
 dependencies = [
- "frame-support-procedural-tools 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2",
- "quote 1.0.3",
- "syn 1.0.17",
-]
-
-[[package]]
-name = "frame-support-procedural-tools"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "frame-support-procedural-tools-derive 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "proc-macro-crate",
+ "frame-support-procedural-tools",
  "proc-macro2",
  "quote 1.0.3",
  "syn 1.0.17",
@@ -1045,18 +987,8 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0d0fce760be3b164dd44ba5826f6a504c485020f6813604d4c73b42b50797d71"
 dependencies = [
- "frame-support-procedural-tools-derive 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support-procedural-tools-derive",
  "proc-macro-crate",
- "proc-macro2",
- "quote 1.0.3",
- "syn 1.0.17",
-]
-
-[[package]]
-name = "frame-support-procedural-tools-derive"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
  "proc-macro2",
  "quote 1.0.3",
  "syn 1.0.17",
@@ -1076,34 +1008,18 @@
 [[package]]
 name = "frame-system"
 version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "frame-support 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "impl-trait-for-tuples",
- "parity-scale-codec",
- "serde",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-io 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-runtime 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-version 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
-]
-
-[[package]]
-name = "frame-system"
-version = "2.0.0-alpha.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f9c97e7168ca4cd7b2358ca30da4c5aba4a2b9b5eef45df67ca85b3dd59069a5"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
  "impl-trait-for-tuples",
  "parity-scale-codec",
  "serde",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "sp-version",
 ]
 
 [[package]]
@@ -2614,10 +2530,10 @@
  "sc-transaction-pool",
  "sp-consensus",
  "sp-consensus-aura",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
  "sp-finality-grandpa",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-inherents",
+ "sp-runtime",
  "sp-transaction-pool",
  "structopt",
  "substrate-build-script-utils",
@@ -2628,13 +2544,10 @@
 version = "2.0.0-alpha.6"
 dependencies = [
  "frame-executive",
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "pallet-aura",
  "pallet-balances",
- "pallet-contracts",
- "pallet-contracts-primitives",
- "pallet-contracts-rpc-runtime-api",
  "pallet-grandpa",
  "pallet-nft",
  "pallet-randomness-collective-flip",
@@ -2643,18 +2556,18 @@
  "pallet-transaction-payment",
  "parity-scale-codec",
  "serde",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
  "sp-block-builder",
  "sp-consensus-aura",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
  "sp-offchain",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
  "sp-session",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-std",
  "sp-transaction-pool",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-version",
  "substrate-wasm-builder-runner",
 ]
 
@@ -2820,19 +2733,19 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9757d44df3ff0372ea313703736e69ba361b158a58b7c9677b54be11a777da81"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "pallet-session",
  "pallet-timestamp",
  "parity-scale-codec",
  "serde",
- "sp-application-crypto 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-application-crypto",
  "sp-consensus-aura",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
  "sp-timestamp",
 ]
 
@@ -2843,55 +2756,13 @@
 checksum = "b9ef08001886d3747220630337f7afbb8f1d7cbfacaa3a8a13317e1cb3e8e366"
 dependencies = [
  "frame-benchmarking",
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "parity-scale-codec",
- "serde",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "pallet-contracts"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "frame-support 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "frame-system 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "pallet-contracts-primitives",
+ "frame-support",
+ "frame-system",
  "parity-scale-codec",
- "parity-wasm",
- "pwasm-utils",
  "serde",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-io 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-runtime 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-sandbox",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "wasmi-validation",
-]
-
-[[package]]
-name = "pallet-contracts-primitives"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "parity-scale-codec",
- "sp-runtime 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
-]
-
-[[package]]
-name = "pallet-contracts-rpc-runtime-api"
-version = "0.8.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "pallet-contracts-primitives",
- "parity-scale-codec",
- "sp-api 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-runtime 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -2900,15 +2771,15 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09d89d58fe723cc05bdfc5f237a51e275bf58dcafb493ad68211c27ecd8f1afd"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "impl-trait-for-tuples",
  "parity-scale-codec",
  "serde",
  "sp-finality-tracker",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -2917,30 +2788,30 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6ed9f0fe5149552a1f1f26f4ed8999d692e0e209c54314c4f28a9bd8a1a1161d"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "pallet-finality-tracker",
  "pallet-session",
  "parity-scale-codec",
  "serde",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
  "sp-finality-grandpa",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
  "sp-staking",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-std",
 ]
 
 [[package]]
 name = "pallet-nft"
 version = "2.0.0-alpha.6"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "parity-scale-codec",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -2949,12 +2820,12 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1139a9bf489b947a677574ee8ade27c7b710ce25a07f1630b80c20af8f682f91"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "parity-scale-codec",
  "safe-mix",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -2963,17 +2834,17 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fdeb41738a79d3247b2a7fd9ce8ae5a7d9e92ca2de198e006f891240c8dcacc"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "impl-trait-for-tuples",
  "pallet-timestamp",
  "parity-scale-codec",
  "serde",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-io",
+ "sp-runtime",
  "sp-staking",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-trie 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-std",
+ "sp-trie",
 ]
 
 [[package]]
@@ -2982,13 +2853,13 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70b15e01796c9d2791cbd9ae2d7c9b59c8eccc3682afbb1189f6ebe7b07f4d71"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "parity-scale-codec",
  "serde",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -2998,14 +2869,14 @@
 checksum = "4d9de9af5f5ed3377a6108eed436791bfe18bc3e4e2e416854d0074d31b1be00"
 dependencies = [
  "frame-benchmarking",
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "impl-trait-for-tuples",
  "parity-scale-codec",
  "serde",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-std",
  "sp-timestamp",
 ]
 
@@ -3015,12 +2886,12 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "54768f5959e0bef53218b91f289d6807c0786d93fb90a3c7e39ab7ff9f018f23"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "frame-system 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
+ "frame-system",
  "pallet-transaction-payment-rpc-runtime-api",
  "parity-scale-codec",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -3029,12 +2900,12 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7323ef565470b51bb79fc65d3c3a1bff0ecb317485acc66a64406309c25f1b77"
 dependencies = [
- "frame-support 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "frame-support",
  "parity-scale-codec",
  "serde",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -3468,17 +3339,6 @@
 version = "2.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485"
-
-[[package]]
-name = "pwasm-utils"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f7a12f176deee919f4ba55326ee17491c8b707d0987aed822682c821b660192"
-dependencies = [
- "byteorder",
- "log",
- "parity-wasm",
-]
 
 [[package]]
 name = "quick-error"
@@ -3914,12 +3774,12 @@
  "sc-block-builder",
  "sc-client-api",
  "sc-telemetry",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
  "sp-blockchain",
  "sp-consensus",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-inherents",
+ "sp-runtime",
  "sp-transaction-pool",
  "tokio-executor 0.2.0-alpha.6",
 ]
@@ -3932,13 +3792,13 @@
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
  "sp-block-builder",
  "sp-blockchain",
  "sp-consensus",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime",
+ "sp-state-machine",
 ]
 
 [[package]]
@@ -3954,8 +3814,8 @@
  "serde",
  "serde_json",
  "sp-chain-spec",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime",
 ]
 
 [[package]]
@@ -4000,13 +3860,13 @@
  "sc-tracing",
  "serde_json",
  "sp-blockchain",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
  "sp-keyring",
- "sp-panic-handler 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-panic-handler",
+ "sp-runtime",
+ "sp-state-machine",
  "sp-utils",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-version",
  "structopt",
  "substrate-prometheus-endpoint",
  "time",
@@ -4032,19 +3892,19 @@
  "sc-client-api",
  "sc-executor",
  "sc-telemetry",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
  "sp-blockchain",
  "sp-consensus",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-externalities 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-externalities",
+ "sp-inherents",
  "sp-keyring",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-trie 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-trie",
  "sp-utils",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-version",
  "substrate-prometheus-endpoint",
  "tracing",
 ]
@@ -4067,21 +3927,21 @@
  "parking_lot 0.10.2",
  "sc-executor",
  "sc-telemetry",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
  "sp-blockchain",
  "sp-consensus",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-externalities 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-externalities",
+ "sp-inherents",
  "sp-keyring",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-storage 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-storage",
  "sp-transaction-pool",
- "sp-trie 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-trie",
  "sp-utils",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-version",
 ]
 
 [[package]]
@@ -4105,10 +3965,10 @@
  "sc-state-db",
  "sp-blockchain",
  "sp-consensus",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-trie 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-trie",
  "substrate-prometheus-endpoint",
 ]
 
@@ -4130,18 +3990,18 @@
  "sc-consensus-slots",
  "sc-keystore",
  "sc-telemetry",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-application-crypto 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-application-crypto",
  "sp-block-builder",
  "sp-blockchain",
  "sp-consensus",
  "sp-consensus-aura",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-runtime",
  "sp-timestamp",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-version",
 ]
 
 [[package]]
@@ -4157,13 +4017,13 @@
  "parking_lot 0.10.2",
  "sc-client-api",
  "sc-telemetry",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
  "sp-blockchain",
  "sp-consensus",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-state-machine",
 ]
 
 [[package]]
@@ -4181,15 +4041,15 @@
  "parking_lot 0.10.2",
  "sc-executor-common",
  "sc-executor-wasmi",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-externalities 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-panic-handler 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-externalities",
+ "sp-io",
+ "sp-panic-handler",
+ "sp-runtime-interface",
  "sp-serializer",
- "sp-trie 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-wasm-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-trie",
+ "sp-version",
+ "sp-wasm-interface",
  "wasmi",
 ]
 
@@ -4204,10 +4064,10 @@
  "parity-scale-codec",
  "parity-wasm",
  "sp-allocator",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime-interface",
  "sp-serializer",
- "sp-wasm-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-wasm-interface",
  "wasmi",
 ]
 
@@ -4221,9 +4081,9 @@
  "parity-scale-codec",
  "sc-executor-common",
  "sp-allocator",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-wasm-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime-interface",
+ "sp-wasm-interface",
  "wasmi",
 ]
 
@@ -4251,15 +4111,15 @@
  "sc-network-gossip",
  "sc-telemetry",
  "serde_json",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-arithmetic 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-arithmetic",
  "sp-blockchain",
  "sp-consensus",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
  "sp-finality-grandpa",
  "sp-finality-tracker",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-inherents",
+ "sp-runtime",
  "sp-utils",
  "substrate-prometheus-endpoint",
 ]
@@ -4278,7 +4138,7 @@
  "sc-network",
  "sc-service",
  "sp-blockchain",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
  "wasm-timer",
 ]
 
@@ -4293,8 +4153,8 @@
  "parking_lot 0.10.2",
  "rand 0.7.3",
  "serde_json",
- "sp-application-crypto 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-application-crypto",
+ "sp-core",
  "subtle 2.2.2",
 ]
 
@@ -4336,12 +4196,12 @@
  "slog",
  "slog_derive",
  "smallvec 0.6.13",
- "sp-arithmetic 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-arithmetic",
  "sp-blockchain",
  "sp-consensus",
  "sp-consensus-babe",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime",
  "sp-utils",
  "substrate-prometheus-endpoint",
  "thiserror",
@@ -4363,7 +4223,7 @@
  "log",
  "lru",
  "sc-network",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
  "sp-utils",
  "wasm-timer",
 ]
@@ -4388,10 +4248,10 @@
  "sc-client-api",
  "sc-keystore",
  "sc-network",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-core",
  "sp-offchain",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
  "sp-utils",
  "threadpool",
 ]
@@ -4430,18 +4290,18 @@
  "sc-keystore",
  "sc-rpc-api",
  "serde_json",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
  "sp-blockchain",
  "sp-chain-spec",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
  "sp-offchain",
  "sp-rpc",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
  "sp-session",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-state-machine",
  "sp-transaction-pool",
  "sp-utils",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-version",
 ]
 
 [[package]]
@@ -4462,11 +4322,11 @@
  "serde",
  "serde_json",
  "sp-chain-spec",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
  "sp-rpc",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
  "sp-transaction-pool",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-version",
 ]
 
 [[package]]
@@ -4482,7 +4342,7 @@
  "log",
  "serde",
  "serde_json",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
 ]
 
 [[package]]
@@ -4521,13 +4381,13 @@
  "serde",
  "serde_json",
  "slog",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-application-crypto 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-application-crypto",
  "sp-blockchain",
  "sp-consensus",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
  "sp-session",
  "sp-transaction-pool",
  "sp-utils",
@@ -4549,7 +4409,7 @@
  "parity-util-mem-derive",
  "parking_lot 0.10.2",
  "sc-client-api",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
 ]
 
 [[package]]
@@ -4605,8 +4465,8 @@
  "parking_lot 0.10.2",
  "serde",
  "sp-blockchain",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime",
  "sp-transaction-pool",
  "sp-utils",
  "wasm-timer",
@@ -4628,10 +4488,10 @@
  "parking_lot 0.10.2",
  "sc-client-api",
  "sc-transaction-graph",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
  "sp-blockchain",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime",
  "sp-transaction-pool",
  "sp-utils",
  "wasm-timer",
@@ -4936,24 +4796,9 @@
 dependencies = [
  "derive_more",
  "log",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-wasm-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-api"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "hash-db",
- "parity-scale-codec",
- "sp-api-proc-macro 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-runtime 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-state-machine 0.8.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-version 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
+ "sp-core",
+ "sp-std",
+ "sp-wasm-interface",
 ]
 
 [[package]]
@@ -4964,24 +4809,12 @@
 dependencies = [
  "hash-db",
  "parity-scale-codec",
- "sp-api-proc-macro 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-api-proc-macro"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "blake2-rfc",
- "proc-macro-crate",
- "proc-macro2",
- "quote 1.0.3",
- "syn 1.0.17",
+ "sp-api-proc-macro",
+ "sp-core",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-version",
 ]
 
 [[package]]
@@ -4995,18 +4828,6 @@
  "proc-macro2",
  "quote 1.0.3",
  "syn 1.0.17",
-]
-
-[[package]]
-name = "sp-application-crypto"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "parity-scale-codec",
- "serde",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-io 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
 ]
 
 [[package]]
@@ -5017,23 +4838,9 @@
 dependencies = [
  "parity-scale-codec",
  "serde",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-arithmetic"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "integer-sqrt",
- "num-traits 0.2.11",
- "parity-scale-codec",
- "primitive-types",
- "serde",
- "sp-debug-derive 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
+ "sp-core",
+ "sp-io",
+ "sp-std",
 ]
 
 [[package]]
@@ -5047,8 +4854,8 @@
  "parity-scale-codec",
  "primitive-types",
  "serde",
- "sp-debug-derive 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-debug-derive",
+ "sp-std",
 ]
 
 [[package]]
@@ -5058,10 +4865,10 @@
 checksum = "70049c389c66c4c9207149e2579ce6d752788dee8c596fbda76059f2ddde968f"
 dependencies = [
  "parity-scale-codec",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -5077,8 +4884,8 @@
  "parking_lot 0.10.2",
  "sp-block-builder",
  "sp-consensus",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-runtime",
+ "sp-state-machine",
 ]
 
 [[package]]
@@ -5106,13 +4913,13 @@
  "parity-scale-codec",
  "parking_lot 0.10.2",
  "serde",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
  "sp-utils",
- "sp-version 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-version",
 ]
 
 [[package]]
@@ -5122,11 +4929,11 @@
 checksum = "0a5ffbc4aca29fe7a0f0c419445e34758210dba6418eeb101d60c1e15b27797a"
 dependencies = [
  "parity-scale-codec",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-application-crypto 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-std",
  "sp-timestamp",
 ]
 
@@ -5137,13 +4944,13 @@
 checksum = "ac6108fbecddd95ce8151f09e8ecb0941b3eddcfeefb4c996f27a8a8b4827abd"
 dependencies = [
  "parity-scale-codec",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-application-crypto 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-application-crypto",
  "sp-consensus",
  "sp-consensus-vrf",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-std",
  "sp-timestamp",
 ]
 
@@ -5152,52 +4959,12 @@
 version = "0.8.0-alpha.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6ba3eef8ab960eb88307f1c4eda1c36dfd95dc933bd6a277d2e26a503a6e5a71"
-dependencies = [
- "parity-scale-codec",
- "schnorrkel",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-core"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
 dependencies = [
- "base58",
- "blake2-rfc",
- "byteorder",
- "ed25519-dalek",
- "futures 0.3.4",
- "hash-db",
- "hash256-std-hasher",
- "hex",
- "impl-serde 0.3.0",
- "lazy_static",
- "libsecp256k1",
- "log",
- "num-traits 0.2.11",
  "parity-scale-codec",
- "parity-util-mem",
- "parking_lot 0.10.2",
- "primitive-types",
- "rand 0.7.3",
- "regex",
  "schnorrkel",
- "serde",
- "sha2",
- "sp-debug-derive 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-externalities 0.8.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-runtime-interface 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-storage 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "substrate-bip39",
- "tiny-bip39",
- "tiny-keccak",
- "twox-hash",
- "wasmi",
- "zeroize",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -5228,11 +4995,11 @@
  "schnorrkel",
  "serde",
  "sha2",
- "sp-debug-derive 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-externalities 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-storage 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-debug-derive",
+ "sp-externalities",
+ "sp-runtime-interface",
+ "sp-std",
+ "sp-storage",
  "substrate-bip39",
  "tiny-bip39",
  "tiny-keccak",
@@ -5244,16 +5011,6 @@
 [[package]]
 name = "sp-debug-derive"
 version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "proc-macro2",
- "quote 1.0.3",
- "syn 1.0.17",
-]
-
-[[package]]
-name = "sp-debug-derive"
-version = "2.0.0-alpha.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "df968a922a9d3b3f65d37e91e30904876efce88d017d4448c4babc990a738134"
 dependencies = [
@@ -5265,22 +5022,12 @@
 [[package]]
 name = "sp-externalities"
 version = "0.8.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "environmental",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-storage 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
-]
-
-[[package]]
-name = "sp-externalities"
-version = "0.8.0-alpha.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b06b8ac80a03205205426ae9ef3200133a8ffab4f4f0eeecd3b858034f9e5b02"
 dependencies = [
  "environmental",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-storage 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-std",
+ "sp-storage",
 ]
 
 [[package]]
@@ -5291,10 +5038,10 @@
 dependencies = [
  "parity-scale-codec",
  "serde",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-application-crypto 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -5304,20 +5051,8 @@
 checksum = "a5f718fb1e75fd137b01b539a200cf5e3cd1e0f1d21dc55a03341d7e25c81624"
 dependencies = [
  "parity-scale-codec",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-inherents"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "derive_more",
- "parity-scale-codec",
- "parking_lot 0.10.2",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
+ "sp-inherents",
+ "sp-std",
 ]
 
 [[package]]
@@ -5329,26 +5064,8 @@
  "derive_more",
  "parity-scale-codec",
  "parking_lot 0.10.2",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-io"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "hash-db",
- "libsecp256k1",
- "log",
- "parity-scale-codec",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-externalities 0.8.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-runtime-interface 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-state-machine 0.8.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-trie 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-wasm-interface 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
+ "sp-core",
+ "sp-std",
 ]
 
 [[package]]
@@ -5361,13 +5078,13 @@
  "libsecp256k1",
  "log",
  "parity-scale-codec",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-externalities 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-state-machine 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-trie 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-wasm-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-externalities",
+ "sp-runtime-interface",
+ "sp-state-machine",
+ "sp-std",
+ "sp-trie",
+ "sp-wasm-interface",
 ]
 
 [[package]]
@@ -5377,8 +5094,8 @@
 checksum = "9f71e65eb13d8a4d320d3785558ac8fc12f8b2bdbfc5268c0e8a5a143d68686e"
 dependencies = [
  "lazy_static",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-runtime",
  "strum",
 ]
 
@@ -5388,17 +5105,8 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6dfc02ea51f7abe7e8999658a8a41693426f14e66cff6cc5af989888289ad0fc"
 dependencies = [
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-panic-handler"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "backtrace",
- "log",
+ "sp-api",
+ "sp-runtime",
 ]
 
 [[package]]
@@ -5418,28 +5126,7 @@
 checksum = "9d29a58ef51317f96eec408b40c604ccfe8c7c3b9ecc2636e2a9c84a79fae53a"
 dependencies = [
  "serde",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-runtime"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "hash256-std-hasher",
- "impl-trait-for-tuples",
- "log",
- "parity-scale-codec",
- "parity-util-mem",
- "paste",
- "rand 0.7.3",
- "serde",
- "sp-application-crypto 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-arithmetic 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-inherents 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-io 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
+ "sp-core",
 ]
 
 [[package]]
@@ -5456,26 +5143,12 @@
  "paste",
  "rand 0.7.3",
  "serde",
- "sp-application-crypto 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-arithmetic 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-io 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-runtime-interface"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "parity-scale-codec",
- "primitive-types",
- "sp-externalities 0.8.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-runtime-interface-proc-macro 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-wasm-interface 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "static_assertions",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-std",
 ]
 
 [[package]]
@@ -5486,28 +5159,16 @@
 dependencies = [
  "parity-scale-codec",
  "primitive-types",
- "sp-externalities 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime-interface-proc-macro 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-wasm-interface 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-externalities",
+ "sp-runtime-interface-proc-macro",
+ "sp-std",
+ "sp-wasm-interface",
  "static_assertions",
 ]
 
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "Inflector",
- "proc-macro-crate",
- "proc-macro2",
- "quote 1.0.3",
- "syn 1.0.17",
-]
-
-[[package]]
-name = "sp-runtime-interface-proc-macro"
-version = "2.0.0-alpha.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "609529717f6c9cdd5bb6329c4ca9ddb1d36f698bd1f5dd2bdf0e94c064d7cc5b"
 dependencies = [
@@ -5516,19 +5177,6 @@
  "proc-macro2",
  "quote 1.0.3",
  "syn 1.0.17",
-]
-
-[[package]]
-name = "sp-sandbox"
-version = "0.8.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "parity-scale-codec",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-io 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-wasm-interface 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "wasmi",
 ]
 
 [[package]]
@@ -5547,10 +5195,10 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6fca3ff8ddd14c5928536483d4b393bb795d55dcb5b576b1dceb3f5829216c76"
 dependencies = [
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -5560,27 +5208,8 @@
 checksum = "61d7105e78848b8a8f6af3539a0cf7d9627b78a8776f61f43769da6406937ea9"
 dependencies = [
  "parity-scale-codec",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-state-machine"
-version = "0.8.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "hash-db",
- "log",
- "num-traits 0.2.11",
- "parity-scale-codec",
- "parking_lot 0.10.2",
- "rand 0.7.3",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-externalities 0.8.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-panic-handler 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-trie 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "trie-db",
- "trie-root",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -5595,10 +5224,10 @@
  "parity-scale-codec",
  "parking_lot 0.10.2",
  "rand 0.7.3",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-externalities 0.8.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-panic-handler 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-trie 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-externalities",
+ "sp-panic-handler",
+ "sp-trie",
  "trie-db",
  "trie-root",
 ]
@@ -5606,24 +5235,8 @@
 [[package]]
 name = "sp-std"
 version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-
-[[package]]
-name = "sp-std"
-version = "2.0.0-alpha.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eca806523d5df8082c89da042e31292f0c8f6e6ad9c3cfc312edfffde6a08490"
-
-[[package]]
-name = "sp-storage"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "impl-serde 0.2.3",
- "serde",
- "sp-debug-derive 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
-]
 
 [[package]]
 name = "sp-storage"
@@ -5633,8 +5246,8 @@
 dependencies = [
  "impl-serde 0.2.3",
  "serde",
- "sp-debug-derive 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-debug-derive",
+ "sp-std",
 ]
 
 [[package]]
@@ -5645,10 +5258,10 @@
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-inherents 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-std",
  "wasm-timer",
 ]
 
@@ -5663,36 +5276,22 @@
  "log",
  "parity-scale-codec",
  "serde",
- "sp-api 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-api",
+ "sp-runtime",
  "sp-utils",
 ]
 
 [[package]]
 name = "sp-trie"
 version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "hash-db",
- "memory-db",
- "parity-scale-codec",
- "sp-core 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "trie-db",
- "trie-root",
-]
-
-[[package]]
-name = "sp-trie"
-version = "2.0.0-alpha.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4194817027eb92525e9279ec651160d709340d74b707f7648654c8eb2a626be3"
 dependencies = [
  "hash-db",
  "memory-db",
  "parity-scale-codec",
- "sp-core 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-core",
+ "sp-std",
  "trie-db",
  "trie-root",
 ]
@@ -5707,18 +5306,6 @@
  "futures-core",
  "lazy_static",
  "prometheus",
-]
-
-[[package]]
-name = "sp-version"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "impl-serde 0.2.3",
- "parity-scale-codec",
- "serde",
- "sp-runtime 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
 ]
 
 [[package]]
@@ -5730,19 +5317,8 @@
  "impl-serde 0.2.3",
  "parity-scale-codec",
  "serde",
- "sp-runtime 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "sp-wasm-interface"
-version = "2.0.0-alpha.6"
-source = "git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6#67f354f57e738fa575775f7fa0fb903e8972182b"
-dependencies = [
- "impl-trait-for-tuples",
- "parity-scale-codec",
- "sp-std 2.0.0-alpha.6 (git+https://github.com/paritytech/substrate.git?tag=v2.0.0-alpha.6)",
- "wasmi",
+ "sp-runtime",
+ "sp-std",
 ]
 
 [[package]]
@@ -5753,7 +5329,7 @@
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
- "sp-std 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sp-std",
  "wasmi",
 ]
 
modifiedDockerfilediffbeforeafterboth
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,7 +3,7 @@
 FROM phusion/baseimage:0.10.2 as builder
 LABEL maintainer="gz@usetech.com"
 
-ENV WASM_TOOLCHAIN=nightly
+ENV WASM_TOOLCHAIN=nightly-2020-05-01
 
 ARG PROFILE=release
 
@@ -19,9 +19,10 @@
 
 RUN curl https://sh.rustup.rs -sSf | sh -s -- -y && \
 	export PATH="$PATH:$HOME/.cargo/bin" && \
+	rustup toolchain uninstall $(rustup toolchain list) && \
+	rustup default 1.44.0 && \
 	rustup toolchain install $WASM_TOOLCHAIN && \
 	rustup target add wasm32-unknown-unknown --toolchain $WASM_TOOLCHAIN && \
-	rustup default stable && \
     rustup target list --installed && \
     rustup show && \
 	cargo build "--$PROFILE" 
modifiedREADME.mddiffbeforeafterboth
88
9## Building9## Building
1010
11Install Rust:11Building NFT chain requires special versions of Rust and toolchain. We don't use the most recent versions of everything so that we can keep the builds stable.
1212
131. Install Rust:
14
13```bash15```bash
14curl https://sh.rustup.rs -sSf | sh16curl https://sh.rustup.rs -sSf | sh
15rustup default nightly
16sudo apt-get install libssl-dev pkg-config libclang-dev clang17sudo apt-get install libssl-dev pkg-config libclang-dev clang
17
18```18```
1919
20Install required tools:202. Remove all installed toolchains with `rustup toolchain list` and `rustup toolchain uninstall <toolchain>`.
2121
223. Install Rust Toolchain 1.44.0:
23
22```bash24```bash
23./scripts/init.sh25rustup install 1.44.0
24```26```
2527
26Build the WebAssembly binary:284. Make it default (actual toochain version may be different, so do a `rustup toolchain list` first)
29```bash
30rustup toolchain list
31rustup default 1.44.0-x86_64-unknown-linux-gnu
32```
2733
345. Install nightly toolchain and add wasm target for it:
35
28```bash36```bash
29./scripts/build.sh37rustup toolchain install nightly-2020-05-01
38rustup target add wasm32-unknown-unknown --toolchain nightly-2020-05-01-x86_64-unknown-linux-gnu
30```39```
31
32Build all native code:
3340
416. Build:
34```bash42```bash
35cargo build --release43cargo build
36```44```
3745
38## Run46## Run
modifiednode/Cargo.tomldiffbeforeafterboth
--- a/node/Cargo.toml
+++ b/node/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ['Anonymous']
 build = 'build.rs'
-description = 'Substrate Node template'
+description = 'Substrate Node nft'
 edition = '2018'
 homepage = 'https://substrate.dev'
 license = 'Unlicense'
@@ -71,7 +71,6 @@
 
 [dependencies.sp-transaction-pool]
 version = '2.0.0-alpha.6'
-
 [build-dependencies.substrate-build-script-utils]
 version = '2.0.0-alpha.6'
 
modifiednode/src/chain_spec.rsdiffbeforeafterboth
--- a/node/src/chain_spec.rs
+++ b/node/src/chain_spec.rs
@@ -8,8 +8,6 @@
 use sp_runtime::traits::{Verify, IdentifyAccount};
 use sc_service::ChainType;
 
-use nft_runtime::{ContractsConfig, ContractsSchedule};
-
 // Note this is the URL for the telemetry server
 //const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/";
 
@@ -113,12 +111,6 @@
 		balances: Some(BalancesConfig {
 			balances: endowed_accounts.iter().cloned().map(|k|(k, 1 << 60)).collect(),
 		}),
-		contracts: Some(ContractsConfig {
-            current_schedule: ContractsSchedule {
-              //      enable_println,
-                    ..Default::default()
-            },
-        }),
 		aura: Some(AuraConfig {
 			authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(),
 		}),
modifiednode/src/service.rsdiffbeforeafterboth
--- a/node/src/service.rs
+++ b/node/src/service.rs
@@ -30,7 +30,7 @@
 		let inherent_data_providers = sp_inherents::InherentDataProviders::new();
 
 		let builder = sc_service::ServiceBuilder::new_full::<
-		nft_runtime::opaque::Block, nft_runtime::RuntimeApi, crate::service::Executor
+			nft_runtime::opaque::Block, nft_runtime::RuntimeApi, crate::service::Executor
 		>($config)?
 			.with_select_chain(|_config, backend| {
 				Ok(sc_client::LongestChain::new(backend.clone()))
modifiedpallets/nft/Cargo.tomldiffbeforeafterboth
--- a/pallets/nft/Cargo.toml
+++ b/pallets/nft/Cargo.toml
@@ -1,11 +1,11 @@
 [package]
-authors = ['https://usetech.com/blockchain']
-description = 'NFT pallet'
+authors = ['Anonymous']
+description = 'FRAME pallet nft'
 edition = '2018'
-homepage = 'https://usetech.com/blockchain'
+homepage = 'https://substrate.dev'
 license = 'Unlicense'
 name = 'pallet-nft'
-repository = 'https://github.com/usetech-llc/nft_parachain/'
+repository = 'https://github.com/paritytech/substrate/'
 version = '2.0.0-alpha.6'
 
 [package.metadata.docs.rs]
@@ -32,7 +32,6 @@
 [dependencies.frame-system]
 default-features = false
 version = '2.0.0-alpha.6'
-
 [dev-dependencies.sp-core]
 default-features = false
 version = '2.0.0-alpha.6'
@@ -41,6 +40,8 @@
 default-features = false
 version = '2.0.0-alpha.6'
 
+
+
 [features]
 default = ['std']
 std = [
modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -1,5 +1,6 @@
 #![cfg_attr(not(feature = "std"), no_std)]
 
+use codec::{Decode, Encode};
 /// A FRAME pallet template with necessary imports
 
 /// Feel free to remove or edit this file as needed.
@@ -8,10 +9,7 @@
 
 /// For more guidance on Substrate FRAME, see the example pallet
 /// https://github.com/paritytech/substrate/blob/master/frame/example/src/lib.rs
-
-use codec::{Decode, Encode};
-
-use frame_support::{decl_module, decl_storage, decl_event, decl_error, dispatch::DispatchResult, ensure};
+use frame_support::{decl_event, decl_module, decl_storage, dispatch::DispatchResult, ensure};
 use frame_system::{self as system, ensure_signed};
 use sp_runtime::sp_std::prelude::Vec;
 
@@ -26,9 +24,6 @@
 pub struct CollectionType<AccountId> {
     pub owner: AccountId,
     pub next_item_id: u64,
-    pub name: Vec<u16>, // 64 include null escape char
-    pub description: Vec<u16>, // 256 include null escape char
-    pub token_prefix: Vec<u8>, // 16 include null escape char
     pub custom_data_size: u32,
 }
 
@@ -49,32 +44,35 @@
 
 /// The pallet's configuration trait.
 pub trait Trait: system::Trait {
-	// Add other types and constants required to configure this pallet.
+    // Add other types and constants required to configure this pallet.
 
-	/// The overarching event type.
-	type Event: From<Event<Self>> + Into<<Self as system::Trait>::Event>;
+    /// The overarching event type.
+    type Event: From<Event<Self>> + Into<<Self as system::Trait>::Event>;
 }
 
 // This pallet's storage items.
 decl_storage! {
-	// It is important to update your storage name so that your pallet's
-	// storage items are isolated from other pallets.
+    // It is important to update your storage name so that your pallet's
+    // storage items are isolated from other pallets.
     trait Store for Module<T: Trait> as Nft {
 
         /// Next available collection ID
         pub NextCollectionID get(fn next_collection_id): u64;
-        pub Collection get(fn collection): map hasher(identity) u64 => CollectionType<T::AccountId>;
-        pub AdminList get(fn admin_list_collection): map hasher(identity) u64 => Vec<T::AccountId>;
 
+        pub Collection get(collection): map hasher(identity) u64 => CollectionType<T::AccountId>;
+        //pub Collection get(collection): map hasher(identity) u64 => CollectionType<T::AccountId>;
+
+        pub AdminList get(admin_list_collection): map hasher(identity) u64 => Vec<T::AccountId>;
+
         /// Balance owner per collection map
-        pub Balance get(fn balance_count): map hasher(blake2_128_concat) (u64, T::AccountId) => u64;
-        pub ApprovedList get(fn approved): map hasher(blake2_128_concat) (u64, u64) => Vec<T::AccountId>;
+        pub Balance get(balance_count): map hasher(blake2_128_concat) (u64, T::AccountId) => u64;
+        pub ApprovedList get(approved): map hasher(blake2_128_concat) (u64, u64) => Vec<T::AccountId>;
 
-        pub ItemList get(fn item_id): map hasher(blake2_128_concat) (u64, u64) => NftItemType<T::AccountId>;
-        pub ItemListIndex get(fn item_index): map hasher(blake2_128_concat) u64 => u64;
+        pub ItemList get(item_id): map hasher(blake2_128_concat) (u64, u64) => NftItemType<T::AccountId>;
+        // pub ItemList get(item_id): map hasher(blake2_128_concat) (u64, u64) => NftItemType<T::AccountId>;
 
-        pub AddressTokens get(fn address_tokens): map hasher(blake2_128_concat) (u64, T::AccountId) => Vec<u64>;
-
+        pub ItemListIndex get(item_index): map hasher(blake2_128_concat) u64 => u64;
+        // pub ItemListIndex get(item_index): map hasher(blake2_128_concat) u64 => u64;
     }
 }
 
@@ -84,21 +82,9 @@
     where
         AccountId = <T as system::Trait>::AccountId,
     {
-        Created(u64, AccountId),
-        ItemCreated(u64),
-        ItemDestroyed(u64, u64),
+        Created(u32, AccountId),
     }
 );
-
-// The pallet's errors
-decl_error! {
-	pub enum Error for Module<T: Trait> {
-		/// Value was None
-		NoneValue,
-		/// Value reached maximum and cannot be incremented further
-		StorageOverflow,
-	}
-}
 
 // The pallet's dispatchable functions.
 decl_module! {
@@ -109,6 +95,10 @@
         // this is needed only if you are using events in your pallet
         fn deposit_event() = default;
 
+        // Initializing events
+        // this is needed only if you are using events in your module
+        // fn deposit_event<T>() = default;
+
         // Create collection of NFT with given parameters
         //
         // @param customDataSz size of custom data in each collection item
@@ -118,43 +108,19 @@
         //
         // @param customDataSz size of custom data in each collection item
         // returns collection ID
-        // TODO: later versions use "#[weight = 0]"
         #[weight = frame_support::weights::SimpleDispatchInfo::default()]
-        pub fn create_collection(   origin, 
-                                    collection_name: Vec<u16>, 
-                                    collection_description: Vec<u16>, 
-                                    token_prefix: Vec<u8>, 
-                                    custom_data_sz: u32) -> DispatchResult {
-
+        pub fn create_collection(origin, custom_data_sz: u32) -> DispatchResult {
             // Anyone can create a collection
             let who = ensure_signed(origin)?;
-
-            // check params 
-            let mut name = collection_name.to_vec();
-            name.push(0);
-            ensure!(name.len() <= 64, "Collection name can not be longer than 63 char");
-
-            let mut description = collection_description.to_vec();
-            description.push(0);
-            ensure!(name.len() <= 256, "Collection description can not be longer than 255 char");
-
-            let mut prefix = token_prefix.to_vec();
-            prefix.push(0);
-            ensure!(prefix.len() <= 16, "Token prefix can not be longer than 15 char");
 
             // Generate next collection ID
-            let next_id = NextCollectionID::get()
-                .checked_add(1)
-                .expect("collection id error");
+            let next_id = NextCollectionID::get();
 
             NextCollectionID::put(next_id);
 
             // Create new collection
             let new_collection = CollectionType {
-                owner: who.clone(),
-                name: name,
-                description: description,
-                token_prefix: prefix,
+                owner: who,
                 next_item_id: next_id,
                 custom_data_size: custom_data_sz,
             };
@@ -162,9 +128,6 @@
             // Add new collection to map
             <Collection<T>>::insert(next_id, new_collection);
 
-            // call event
-            Self::deposit_event(RawEvent::Created(next_id, who.clone()));
-
             Ok(())
         }
 
@@ -283,20 +246,11 @@
                 owner: sender,
                 data: properties,
             };
-
 
-            let current_index = <ItemListIndex>::get(collection_id)
-                .checked_add(1)
-                .expect("Item list index id error");
-
-            Self::add_token_index(collection_id, current_index, new_item.owner.clone())?;
-
+            let current_index = <ItemListIndex>::get(collection_id);
             <ItemListIndex>::insert(collection_id, current_index);
             <ItemList<T>>::insert((collection_id, current_index), new_item);
 
-            // call event
-            Self::deposit_event(RawEvent::ItemCreated(collection_id));
-
             Ok(())
         }
 
@@ -324,16 +278,11 @@
                 }
             }
             <ItemList<T>>::remove((collection_id, item_id));
-
-            Self::remove_token_index(collection_id, item_id, item.owner.clone())?;
 
             // update balance
             let new_balance = <Balance<T>>::get((collection_id, item.owner.clone())) - 1;
             <Balance<T>>::insert((collection_id, item.owner.clone()), new_balance);
 
-            // call event
-            Self::deposit_event(RawEvent::ItemDestroyed(collection_id, item_id));
-
             Ok(())
         }
 
@@ -370,13 +319,9 @@
             <Balance<T>>::insert((collection_id, new_owner.clone()), balance_new_owner);
 
             // change owner
-            let old_owner = item.owner.clone();
-            item.owner = new_owner.clone();
+            item.owner = new_owner;
             <ItemList<T>>::insert((collection_id, item_id), item);
 
-            // update index collection
-            Self::move_token_index(collection_id, item_id, old_owner, new_owner.clone())?;
-
             // reset approved list
             let itm: Vec<T::AccountId> = Vec::new();
             <ApprovedList<T>>::insert((collection_id, item_id), itm);
@@ -454,56 +399,5 @@
 
             Ok(())
         }
-    }
-}
-
-impl<T: Trait> Module<T> {
-    fn add_token_index(collection_id: u64, item_index: u64, owner: T::AccountId) -> DispatchResult {
-        
-        let list_exists = <AddressTokens<T>>::contains_key((collection_id, owner.clone()));
-        if list_exists {
-
-            let mut list = <AddressTokens<T>>::get((collection_id, owner.clone()));
-            let item_contains = list.contains(&item_index.clone());
-
-            if !item_contains {
-                list.push(item_index.clone());
-            }
-
-            <AddressTokens<T>>::insert((collection_id, owner.clone()), list);
-
-        } else {
-
-            let mut itm = Vec::new();
-            itm.push(item_index.clone());
-            <AddressTokens<T>>::insert((collection_id, owner), itm);
-        }
-
-        Ok(())
-    }
-
-    fn remove_token_index(collection_id: u64, item_index: u64, owner: T::AccountId) -> DispatchResult {
-        
-        let list_exists = <AddressTokens<T>>::contains_key((collection_id, owner.clone()));
-        if list_exists {
-
-            let mut list = <AddressTokens<T>>::get((collection_id, owner.clone()));
-            let item_contains = list.contains(&item_index.clone());
-
-            if item_contains {
-                list.retain(|&item| item != item_index);
-                <AddressTokens<T>>::insert((collection_id, owner), list);
-            }
-        }
-
-        Ok(())
-    }
-
-    fn move_token_index(collection_id: u64, item_index: u64, old_owner: T::AccountId, new_owner: T::AccountId) -> DispatchResult {
-        
-        Self::remove_token_index(collection_id, item_index, old_owner)?;
-        Self::add_token_index(collection_id, item_index, new_owner)?;
-        
-        Ok(())
     }
 }
modifiedpallets/nft/src/mock.rsdiffbeforeafterboth
--- a/pallets/nft/src/mock.rs
+++ b/pallets/nft/src/mock.rs
@@ -1,12 +1,7 @@
 // Creating mock runtime here
 
 use crate::{Module, Trait};
-use frame_support::{
-    impl_outer_origin, parameter_types, 
-    weights::{ 
-        Weight,
-        constants::{ BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND },
-    }};
+use frame_support::{impl_outer_origin, parameter_types, weights::Weight};
 use frame_system as system;
 use sp_core::H256;
 use sp_runtime::{
@@ -16,8 +11,7 @@
 };
 
 impl_outer_origin! {
-	pub enum Origin for Test {
-	}
+    pub enum Origin for Test {}
 }
 
 // For testing the pallet, we construct most of a mock runtime. This means
@@ -26,50 +20,42 @@
 #[derive(Clone, Eq, PartialEq)]
 pub struct Test;
 parameter_types! {
-	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: Weight = 1024;
-	pub const MaximumBlockLength: u32 = 2 * 1024;
-	pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
-    pub const MaximumExtrinsicWeight: Weight = 10 * WEIGHT_PER_SECOND;
+    pub const BlockHashCount: u64 = 250;
+    pub const MaximumBlockWeight: Weight = 1024;
+    pub const MaximumBlockLength: u32 = 2 * 1024;
+    pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
 }
-
 impl system::Trait for Test {
-	type Origin = Origin;
-	type Call = ();
-	type Index = u64;
-	type BlockNumber = u64;
-    type BaseCallFilter = ();
-    type DbWeight = RocksDbWeight;
-    type BlockExecutionWeight = BlockExecutionWeight;
-	type Hash = H256;
-	type Hashing = BlakeTwo256;
-	type AccountId = u64;
-	type Lookup = IdentityLookup<Self::AccountId>;
-	type Header = Header;
-	type Event = ();
-	type BlockHashCount = BlockHashCount;
-    type ExtrinsicBaseWeight = ExtrinsicBaseWeight;
-	type MaximumBlockWeight = MaximumBlockWeight;
-	type MaximumBlockLength = MaximumBlockLength;
-	type AvailableBlockRatio = AvailableBlockRatio;
-	type Version = ();
-	type ModuleToIndex = ();
-	type AccountData = ();
-	type OnNewAccount = ();
-	type OnKilledAccount = ();
+    type Origin = Origin;
+    type Call = ();
+    type Index = u64;
+    type BlockNumber = u64;
+    type Hash = H256;
+    type Hashing = BlakeTwo256;
+    type AccountId = u64;
+    type Lookup = IdentityLookup<Self::AccountId>;
+    type Header = Header;
+    type Event = ();
+    type BlockHashCount = BlockHashCount;
+    type MaximumBlockWeight = MaximumBlockWeight;
+    type MaximumBlockLength = MaximumBlockLength;
+    type AvailableBlockRatio = AvailableBlockRatio;
+    type Version = ();
+    type ModuleToIndex = ();
+    type AccountData = ();
+    type OnNewAccount = ();
+    type OnKilledAccount = ();
 }
-
 impl Trait for Test {
-	type Event = ();
+    type Event = ();
 }
-
 pub type TemplateModule = Module<Test>;
 
 // This function basically just builds a genesis storage key/value store according to
 // our desired mockup.
 pub fn new_test_ext() -> sp_io::TestExternalities {
-	system::GenesisConfig::default()
-		.build_storage::<Test>()
-		.unwrap()
-		.into()
+    system::GenesisConfig::default()
+        .build_storage::<Test>()
+        .unwrap()
+        .into()
 }
modifiedpallets/nft/src/tests.rsdiffbeforeafterboth
--- a/pallets/nft/src/tests.rs
+++ b/pallets/nft/src/tests.rs
@@ -1,19 +1,13 @@
 // Tests to be written here
-
-use crate::{Error, mock::*};
-use frame_support::{assert_ok, assert_noop};
+use crate::mock::*;
+use frame_support::{assert_noop, assert_ok};
 
 #[test]
 fn create_collection_test() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
         assert_eq!(TemplateModule::collection(1).owner, 1);
     });
 }
@@ -21,15 +15,10 @@
 #[test]
 fn change_collection_owner() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
         assert_ok!(TemplateModule::change_collection_owner(
             origin1.clone(),
             1,
@@ -42,14 +31,10 @@
 #[test]
 fn destroy_collection() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
         let size = 1024;
         let origin1 = Origin::signed(1);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
         assert_ok!(TemplateModule::destroy_collection(origin1.clone(), 1));
     });
 }
@@ -57,16 +42,11 @@
 #[test]
 fn create_item() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
         assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));
         assert_ok!(TemplateModule::create_item(
             origin2.clone(),
@@ -82,16 +62,11 @@
 #[test]
 fn burn_item() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
         assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));
         assert_ok!(TemplateModule::create_item(
             origin2.clone(),
@@ -116,19 +91,14 @@
 #[test]
 fn add_collection_admin() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
         let origin3 = Origin::signed(3);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin2.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin3.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
 
         assert_eq!(TemplateModule::collection(1).owner, 1);
         assert_eq!(TemplateModule::collection(2).owner, 2);
@@ -146,19 +116,14 @@
 #[test]
 fn remove_collection_admin() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
         let origin3 = Origin::signed(3);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin2.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin3.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
 
         assert_eq!(TemplateModule::collection(1).owner, 1);
         assert_eq!(TemplateModule::collection(2).owner, 2);
@@ -184,19 +149,14 @@
 #[test]
 fn balance_of() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
         let origin3 = Origin::signed(3);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin2.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin3.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
 
         assert_eq!(TemplateModule::collection(1).owner, 1);
         assert_eq!(TemplateModule::collection(2).owner, 2);
@@ -221,19 +181,14 @@
 #[test]
 fn transfer() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
         let origin3 = Origin::signed(3);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin2.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin3.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
 
         assert_eq!(TemplateModule::collection(1).owner, 1);
         assert_eq!(TemplateModule::collection(2).owner, 2);
@@ -259,19 +214,14 @@
 #[test]
 fn approve() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
         let origin3 = Origin::signed(3);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin2.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin3.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
 
         assert_eq!(TemplateModule::collection(1).owner, 1);
         assert_eq!(TemplateModule::collection(2).owner, 2);
@@ -293,19 +243,14 @@
 #[test]
 fn get_approved() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
         let origin3 = Origin::signed(3);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin2.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin3.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
 
         assert_eq!(TemplateModule::collection(1).owner, 1);
         assert_eq!(TemplateModule::collection(2).owner, 2);
@@ -327,19 +272,14 @@
 #[test]
 fn transfer_from() {
     new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
         let size = 1024;
         let origin1 = Origin::signed(1);
         let origin2 = Origin::signed(2);
         let origin3 = Origin::signed(3);
 
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin2.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin3.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
 
         assert_eq!(TemplateModule::collection(1).owner, 1);
         assert_eq!(TemplateModule::collection(2).owner, 2);
@@ -357,55 +297,3 @@
         assert_ok!(TemplateModule::transfer_from(origin1.clone(), 1, 1, 2));
     });
 }
-
-#[test]
-fn index_list() {
-    new_test_ext().execute_with(|| {
-
-        let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
-        let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();
-        let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();
-
-        let size = 1024;
-        let origin1 = Origin::signed(1);
-        let origin2 = Origin::signed(2);
-        let origin3 = Origin::signed(3);
-
-        assert_ok!(TemplateModule::create_collection(origin1.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin2.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-        assert_ok!(TemplateModule::create_collection(origin3.clone(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), size));
-
-        assert_eq!(TemplateModule::collection(1).owner, 1);
-        assert_eq!(TemplateModule::collection(2).owner, 2);
-        assert_eq!(TemplateModule::collection(3).owner, 3);
-
-        // create items
-        assert_ok!(TemplateModule::create_item(
-            origin1.clone(),
-            1,
-            [1, 1, 1].to_vec()
-        ));
-
-        assert_ok!(TemplateModule::create_item(
-            origin1.clone(),
-            1,
-            [1, 1, 2].to_vec()
-        ));
-
-        assert_ok!(TemplateModule::create_item(
-            origin1.clone(),
-            1,
-            [1, 2, 3].to_vec()
-        ));
-
-        assert_eq!(TemplateModule::address_tokens((1, 1)).len(), 3);
-
-        // burn one
-        assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 2));
-        assert_eq!(TemplateModule::address_tokens((1, 1)).len(), 2);
-
-        // burn another one
-        assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 3));
-        assert_eq!(TemplateModule::address_tokens((1, 1))[0], 1);
-    });
-}
\ No newline at end of file
modifiedruntime/Cargo.tomldiffbeforeafterboth
--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -1,36 +1,3 @@
-[features]
-default = ['std']
-std = [
-    'aura/std',
-    'balances/std',
-    'codec/std',
-    'contracts/std',
-    'contracts-primitives/std',
-    'contracts-rpc-runtime-api/std',
-    'frame-executive/std',
-    'frame-support/std',
-    'grandpa/std',
-    'randomness-collective-flip/std',
-    'serde',
-    'sp-api/std',
-    'sp-block-builder/std',
-    'sp-consensus-aura/std',
-    'sp-core/std',
-    'sp-inherents/std',
-    'sp-io/std',
-    'sp-offchain/std',
-    'sp-runtime/std',
-    'sp-session/std',
-    'sp-std/std',
-    'sp-transaction-pool/std',
-    'sp-version/std',
-    'sudo/std',
-    'system/std',
-    'timestamp/std',
-    'transaction-payment/std',
-    'nft/std',
-]
-
 [dependencies.aura]
 default-features = false
 package = 'pallet-aura'
@@ -46,27 +13,6 @@
 features = ['derive']
 package = 'parity-scale-codec'
 version = '1.3.0'
-
-[dependencies.contracts]
-git = 'https://github.com/paritytech/substrate.git'
-default-features = false
-package = 'pallet-contracts'
-tag = 'v2.0.0-alpha.6'
-version = '2.0.0-alpha.6'
-
-[dependencies.contracts-primitives]
-git = 'https://github.com/paritytech/substrate.git'
-default-features = false
-package = 'pallet-contracts-primitives'
-tag = 'v2.0.0-alpha.6'
-version = '2.0.0-alpha.6'
-
-[dependencies.contracts-rpc-runtime-api]
-git = 'https://github.com/paritytech/substrate.git'
-default-features = false
-package = 'pallet-contracts-rpc-runtime-api'
-tag = 'v2.0.0-alpha.6'
-version = '0.8.0-alpha.6'
 
 [dependencies.frame-executive]
 default-features = false
@@ -165,18 +111,48 @@
 package = 'pallet-transaction-payment'
 version = '2.0.0-alpha.6'
 
+[build-dependencies.wasm-builder-runner]
+package = 'substrate-wasm-builder-runner'
+version = '1.0.5'
+
 [package]
-authors = ['UseTech']
+authors = ['Anonymous']
 edition = '2018'
-homepage = 'https://usetech.com/blockchain'
+homepage = 'https://substrate.dev'
 license = 'Unlicense'
 name = 'nft-runtime'
-repository = 'https://github.com/usetech-llc/nft_parachain/'
+repository = 'https://github.com/paritytech/substrate/'
 version = '2.0.0-alpha.6'
 
 [package.metadata.docs.rs]
 targets = ['x86_64-unknown-linux-gnu']
 
-[build-dependencies.wasm-builder-runner]
-package = 'substrate-wasm-builder-runner'
-version = '1.0.5'
+[features]
+default = ['std']
+std = [
+    'aura/std',
+    'balances/std',
+    'codec/std',
+    'frame-executive/std',
+    'frame-support/std',
+    'grandpa/std',
+    'randomness-collective-flip/std',
+    'serde',
+    'sp-api/std',
+    'sp-block-builder/std',
+    'sp-consensus-aura/std',
+    'sp-core/std',
+    'sp-inherents/std',
+    'sp-io/std',
+    'sp-offchain/std',
+    'sp-runtime/std',
+    'sp-session/std',
+    'sp-std/std',
+    'sp-transaction-pool/std',
+    'sp-version/std',
+    'sudo/std',
+    'system/std',
+    'timestamp/std',
+    'transaction-payment/std',
+    'nft/std',
+]
modifiedruntime/src/lib.rsdiffbeforeafterboth
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -2,41 +2,39 @@
 
 #![cfg_attr(not(feature = "std"), no_std)]
 // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.
-#![recursion_limit="256"]
+#![recursion_limit = "256"]
 
 // Make the WASM binary available.
 #[cfg(feature = "std")]
 include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
 
-use sp_std::prelude::*;
+use grandpa::fg_primitives;
+use grandpa::AuthorityList as GrandpaAuthorityList;
+use sp_api::impl_runtime_apis;
+use sp_consensus_aura::sr25519::AuthorityId as AuraId;
 use sp_core::OpaqueMetadata;
+use sp_runtime::traits::{
+    BlakeTwo256, Block as BlockT, ConvertInto, IdentifyAccount, IdentityLookup, Verify,
+};
 use sp_runtime::{
-	ApplyExtrinsicResult, generic, create_runtime_str, impl_opaque_keys, MultiSignature,
-	transaction_validity::{TransactionValidity, TransactionSource},
+    create_runtime_str, generic, impl_opaque_keys,
+    transaction_validity::{TransactionSource, TransactionValidity},
+    ApplyExtrinsicResult, MultiSignature,
 };
-use sp_runtime::traits::{
-	BlakeTwo256, Block as BlockT, IdentityLookup, Verify, ConvertInto, IdentifyAccount
-};
-use sp_api::impl_runtime_apis;
-use sp_consensus_aura::sr25519::AuthorityId as AuraId;
-use grandpa::AuthorityList as GrandpaAuthorityList;
-use grandpa::fg_primitives;
-use sp_version::RuntimeVersion;
+use sp_std::prelude::*;
 #[cfg(feature = "std")]
 use sp_version::NativeVersion;
-use contracts_rpc_runtime_api::ContractExecResult;
+use sp_version::RuntimeVersion;
 
 // A few exports that help ease life for downstream crates.
-#[cfg(any(feature = "std", test))]
-pub use sp_runtime::BuildStorage;
-pub use timestamp::Call as TimestampCall;
-// pub use staking::Call as StakingCall;
 pub use balances::Call as BalancesCall;
-pub use sp_runtime::{Permill, Perbill};
-pub use contracts::Schedule as ContractsSchedule;
 pub use frame_support::{
     construct_runtime, parameter_types, traits::Randomness, weights::Weight, StorageValue,
 };
+#[cfg(any(feature = "std", test))]
+pub use sp_runtime::BuildStorage;
+pub use sp_runtime::{Perbill, Permill};
+pub use timestamp::Call as TimestampCall;
 
 /// Importing a template pallet
 pub use nft;
@@ -67,43 +65,38 @@
 /// Digest item type.
 pub type DigestItem = generic::DigestItem<Hash>;
 
-pub const MILLICENTS: Balance = 1_000_000_000;
-pub const CENTS: Balance = 1_000 * MILLICENTS;
-pub const DOLLARS: Balance = 100 * CENTS;
-
 /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know
 /// the specifics of the runtime. They can then be made to be agnostic over specific formats
 /// of data like extrinsics, allowing for them to continue syncing the network through upgrades
 /// to even the core data structures.
 pub mod opaque {
-	use super::*;
+    use super::*;
 
-	pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic;
+    pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic;
 
-	/// Opaque block header type.
-	pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
-	/// Opaque block type.
-	pub type Block = generic::Block<Header, UncheckedExtrinsic>;
-	/// Opaque block identifier type.
-	pub type BlockId = generic::BlockId<Block>;
+    /// Opaque block header type.
+    pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
+    /// Opaque block type.
+    pub type Block = generic::Block<Header, UncheckedExtrinsic>;
+    /// Opaque block identifier type.
+    pub type BlockId = generic::BlockId<Block>;
 
-	impl_opaque_keys! {
-		pub struct SessionKeys {
-			pub aura: Aura,
-			pub grandpa: Grandpa,
-		}
-	}
+    impl_opaque_keys! {
+        pub struct SessionKeys {
+            pub aura: Aura,
+            pub grandpa: Grandpa,
+        }
+    }
 }
 
 /// This runtime version.
 pub const VERSION: RuntimeVersion = RuntimeVersion {
     spec_name: create_runtime_str!("nft"),
     impl_name: create_runtime_str!("nft"),
-	authoring_version: 1,
-	spec_version: 1,
-	impl_version: 1,
-	apis: RUNTIME_API_VERSIONS,
-	transaction_version: 1,
+    authoring_version: 1,
+    spec_version: 1,
+    impl_version: 1,
+    apis: RUNTIME_API_VERSIONS,
 };
 
 pub const MILLISECS_PER_BLOCK: u64 = 6000;
@@ -118,162 +111,137 @@
 /// The version information used to identify this runtime when compiled natively.
 #[cfg(feature = "std")]
 pub fn native_version() -> NativeVersion {
-	NativeVersion {
-		runtime_version: VERSION,
-		can_author_with: Default::default(),
-	}
+    NativeVersion {
+        runtime_version: VERSION,
+        can_author_with: Default::default(),
+    }
 }
 
 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 BlockHashCount: BlockNumber = 250;
     pub const MaximumBlockWeight: Weight = 1_000_000_000;
-	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 const MaximumBlockLength: u32 = 5 * 1024 * 1024;
-	pub const Version: RuntimeVersion = VERSION;
+    pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
+    pub const MaximumBlockLength: u32 = 5 * 1024 * 1024;
+    pub const Version: RuntimeVersion = VERSION;
 }
 
 impl system::Trait for Runtime {
-	/// The identifier used to distinguish between accounts.
-	type AccountId = AccountId;
-	/// The aggregated dispatch type that is available for extrinsics.
-	type Call = Call;
-	/// The lookup mechanism to get account ID from whatever is passed in dispatchers.
-	type Lookup = IdentityLookup<AccountId>;
-	/// The index type for storing how many extrinsics an account has signed.
-	type Index = Index;
-	/// The index type for blocks.
-	type BlockNumber = BlockNumber;
-	/// The type for hashing blocks and tries.
-	type Hash = Hash;
-	/// The hashing algorithm used.
-	type Hashing = BlakeTwo256;
-	/// The header type.
-	type Header = generic::Header<BlockNumber, BlakeTwo256>;
-	/// The ubiquitous event type.
-	type Event = Event;
-	/// The ubiquitous origin type.
-	type Origin = Origin;
-	/// Maximum number of block number to block hash mappings to keep (oldest pruned first).
-	type BlockHashCount = BlockHashCount;
-	/// Maximum weight of each block.
-	type MaximumBlockWeight = MaximumBlockWeight;
-	/// Maximum size of all encoded transactions (in bytes) that are allowed in one block.
-	type MaximumBlockLength = MaximumBlockLength;
-	/// Portion of the block weight that is available to all normal transactions.
-	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.
-	type OnKilledAccount = ();
-	/// The data to be stored in an account.
-	type AccountData = balances::AccountData<Balance>;
+    /// The identifier used to distinguish between accounts.
+    type AccountId = AccountId;
+    /// The aggregated dispatch type that is available for extrinsics.
+    type Call = Call;
+    /// The lookup mechanism to get account ID from whatever is passed in dispatchers.
+    type Lookup = IdentityLookup<AccountId>;
+    /// The index type for storing how many extrinsics an account has signed.
+    type Index = Index;
+    /// The index type for blocks.
+    type BlockNumber = BlockNumber;
+    /// The type for hashing blocks and tries.
+    type Hash = Hash;
+    /// The hashing algorithm used.
+    type Hashing = BlakeTwo256;
+    /// The header type.
+    type Header = generic::Header<BlockNumber, BlakeTwo256>;
+    /// The ubiquitous event type.
+    type Event = Event;
+    /// The ubiquitous origin type.
+    type Origin = Origin;
+    /// Maximum number of block number to block hash mappings to keep (oldest pruned first).
+    type BlockHashCount = BlockHashCount;
+    /// Maximum weight of each block.
+    type MaximumBlockWeight = MaximumBlockWeight;
+    /// Maximum size of all encoded transactions (in bytes) that are allowed in one block.
+    type MaximumBlockLength = MaximumBlockLength;
+    /// Portion of the block weight that is available to all normal transactions.
+    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.
+    type OnKilledAccount = ();
+    /// The data to be stored in an account.
+    type AccountData = balances::AccountData<Balance>;
 }
 
 impl aura::Trait for Runtime {
-	type AuthorityId = AuraId;
+    type AuthorityId = AuraId;
 }
 
 impl grandpa::Trait for Runtime {
-	type Event = Event;
+    type Event = Event;
 }
 
 parameter_types! {
-	pub const MinimumPeriod: u64 = SLOT_DURATION / 2;
+    pub const MinimumPeriod: u64 = SLOT_DURATION / 2;
 }
 
 impl timestamp::Trait for Runtime {
-	/// A timestamp: milliseconds since the unix epoch.
-	type Moment = u64;
-	type OnTimestampSet = Aura;
-	type MinimumPeriod = MinimumPeriod;
-}
-
-impl contracts::Trait for Runtime {
-    type Time = Timestamp;
-    type Randomness = RandomnessCollectiveFlip;
-    type Currency = Balances;
-    type Event = Event;
-    type DetermineContractAddress = contracts::SimpleAddressDeterminer<Runtime>;
-    type TrieIdGenerator = contracts::TrieIdFromParentCounter<Runtime>;
-    type RentPayment = ();
-    type SignedClaimHandicap = contracts::DefaultSignedClaimHandicap;
-    // type TombstoneDeposit = TombstoneDeposit;
-    type StorageSizeOffset = contracts::DefaultStorageSizeOffset;
-    // type RentByteFee = RentByteFee;
-    // type RentDepositOffset = RentDepositOffset;
-    // type SurchargeReward = SurchargeReward;
-    type MaxDepth = contracts::DefaultMaxDepth;
-    type MaxValueSize = contracts::DefaultMaxValueSize;
-    // type WeightPrice = transaction_payment::Module<Self>;
+    /// A timestamp: milliseconds since the unix epoch.
+    type Moment = u64;
+    type OnTimestampSet = Aura;
+    type MinimumPeriod = MinimumPeriod;
 }
 
 parameter_types! {
-	pub const ExistentialDeposit: u128 = 500;
+    pub const ExistentialDeposit: u128 = 500;
 }
 
 impl balances::Trait for Runtime {
-	/// The type for recording an account's balance.
-	type Balance = Balance;
-	/// The ubiquitous event type.
-	type Event = Event;
-	type DustRemoval = ();
-	type ExistentialDeposit = ExistentialDeposit;
-	type AccountStore = System;
+    /// The type for recording an account's balance.
+    type Balance = Balance;
+    /// The ubiquitous event type.
+    type Event = Event;
+    type DustRemoval = ();
+    type ExistentialDeposit = ExistentialDeposit;
+    type AccountStore = System;
 }
 
 parameter_types! {
-	pub const TransactionBaseFee: Balance = 0;
-	pub const TransactionByteFee: Balance = 1;
+    pub const TransactionBaseFee: Balance = 0;
+    pub const TransactionByteFee: Balance = 1;
 }
 
 impl transaction_payment::Trait for Runtime {
-	type Currency = balances::Module<Runtime>;
-	type OnTransactionPayment = ();
-	type TransactionBaseFee = TransactionBaseFee;
-	type TransactionByteFee = TransactionByteFee;
-	type WeightToFee = ConvertInto;
-	type FeeMultiplierUpdate = ();
+    type Currency = balances::Module<Runtime>;
+    type OnTransactionPayment = ();
+    type TransactionBaseFee = TransactionBaseFee;
+    type TransactionByteFee = TransactionByteFee;
+    type WeightToFee = ConvertInto;
+    type FeeMultiplierUpdate = ();
 }
 
 impl sudo::Trait for Runtime {
-	type Event = Event;
-	type Call = Call;
+    type Event = Event;
+    type Call = Call;
 }
 
 /// Used for the module template in `./template.rs`
 impl nft::Trait for Runtime {
-	type Event = Event;
+    type Event = Event;
 }
 
 construct_runtime!(
-	pub enum Runtime where
-		Block = Block,
-		NodeBlock = opaque::Block,
-		UncheckedExtrinsic = UncheckedExtrinsic
-	{
-		System: system::{Module, Call, Config, Storage, Event<T>},
-		RandomnessCollectiveFlip: randomness_collective_flip::{Module, Call, Storage},
-		Contracts: contracts::{Module, Call, Config, Storage, Event<T>},
-		Timestamp: timestamp::{Module, Call, Storage, Inherent},
-		Aura: aura::{Module, Config<T>, Inherent(Timestamp)},
-		Grandpa: grandpa::{Module, Call, Storage, Config, Event},
-		Balances: balances::{Module, Call, Storage, Config<T>, Event<T>},
-		TransactionPayment: transaction_payment::{Module, Storage},
-		Sudo: sudo::{Module, Call, Config<T>, Storage, Event<T>},
-		// Used for the module template in `./template.rs`
-		Nft: nft::{Module, Call, Storage, Event<T>},
-	}
+    pub enum Runtime where
+        Block = Block,
+        NodeBlock = opaque::Block,
+        UncheckedExtrinsic = UncheckedExtrinsic
+    {
+        System: system::{Module, Call, Config, Storage, Event<T>},
+        RandomnessCollectiveFlip: randomness_collective_flip::{Module, Call, Storage},
+        Timestamp: timestamp::{Module, Call, Storage, Inherent},
+        Aura: aura::{Module, Config<T>, Inherent(Timestamp)},
+        Grandpa: grandpa::{Module, Call, Storage, Config, Event},
+        Balances: balances::{Module, Call, Storage, Config<T>, Event<T>},
+        TransactionPayment: transaction_payment::{Module, Storage},
+        Sudo: sudo::{Module, Call, Config<T>, Storage, Event<T>},
+        // Used for the module template in `./template.rs`
+        Nft: nft::{Module, Call, Storage, Event<T>},
+    }
 );
 
 /// The address format for describing accounts.
@@ -288,142 +256,107 @@
 pub type BlockId = generic::BlockId<Block>;
 /// The SignedExtension to the basic transaction logic.
 pub type SignedExtra = (
-	system::CheckVersion<Runtime>,
-	system::CheckGenesis<Runtime>,
-	system::CheckEra<Runtime>,
-	system::CheckNonce<Runtime>,
-	system::CheckWeight<Runtime>,
-	transaction_payment::ChargeTransactionPayment<Runtime>
+    system::CheckVersion<Runtime>,
+    system::CheckGenesis<Runtime>,
+    system::CheckEra<Runtime>,
+    system::CheckNonce<Runtime>,
+    system::CheckWeight<Runtime>,
+    transaction_payment::ChargeTransactionPayment<Runtime>,
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, Call, Signature, SignedExtra>;
 /// Extrinsic type that has already been checked.
 pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, Call, SignedExtra>;
 /// Executive: handles dispatch to the various modules.
-pub type Executive = frame_executive::Executive<Runtime, Block, system::ChainContext<Runtime>, Runtime, AllModules>;
+pub type Executive =
+    frame_executive::Executive<Runtime, Block, system::ChainContext<Runtime>, Runtime, AllModules>;
 
 impl_runtime_apis! {
-	impl sp_api::Core<Block> for Runtime {
-		fn version() -> RuntimeVersion {
-			VERSION
-		}
+    impl sp_api::Core<Block> for Runtime {
+        fn version() -> RuntimeVersion {
+            VERSION
+        }
 
-		fn execute_block(block: Block) {
-			Executive::execute_block(block)
-		}
+        fn execute_block(block: Block) {
+            Executive::execute_block(block)
+        }
 
-		fn initialize_block(header: &<Block as BlockT>::Header) {
-			Executive::initialize_block(header)
-		}
-	}
+        fn initialize_block(header: &<Block as BlockT>::Header) {
+            Executive::initialize_block(header)
+        }
+    }
 
-	impl sp_api::Metadata<Block> for Runtime {
-		fn metadata() -> OpaqueMetadata {
-			Runtime::metadata().into()
-		}
-	}
+    impl sp_api::Metadata<Block> for Runtime {
+        fn metadata() -> OpaqueMetadata {
+            Runtime::metadata().into()
+        }
+    }
 
-	impl sp_block_builder::BlockBuilder<Block> for Runtime {
-		fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {
-			Executive::apply_extrinsic(extrinsic)
-		}
+    impl sp_block_builder::BlockBuilder<Block> for Runtime {
+        fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {
+            Executive::apply_extrinsic(extrinsic)
+        }
 
-		fn finalize_block() -> <Block as BlockT>::Header {
-			Executive::finalize_block()
-		}
+        fn finalize_block() -> <Block as BlockT>::Header {
+            Executive::finalize_block()
+        }
 
-		fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<<Block as BlockT>::Extrinsic> {
-			data.create_extrinsics()
-		}
+        fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<<Block as BlockT>::Extrinsic> {
+            data.create_extrinsics()
+        }
 
-		fn check_inherents(
-			block: Block,
-			data: sp_inherents::InherentData,
-		) -> sp_inherents::CheckInherentsResult {
-			data.check_extrinsics(&block)
-		}
+        fn check_inherents(
+            block: Block,
+            data: sp_inherents::InherentData,
+        ) -> sp_inherents::CheckInherentsResult {
+            data.check_extrinsics(&block)
+        }
 
-		fn random_seed() -> <Block as BlockT>::Hash {
-			RandomnessCollectiveFlip::random_seed()
-		}
-	}
+        fn random_seed() -> <Block as BlockT>::Hash {
+            RandomnessCollectiveFlip::random_seed()
+        }
+    }
 
-	impl sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block> for Runtime {
-		fn validate_transaction(
-			source: TransactionSource,
-			tx: <Block as BlockT>::Extrinsic,
-		) -> TransactionValidity {
-			Executive::validate_transaction(source, tx)
-		}
-	}
+    impl sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block> for Runtime {
+        fn validate_transaction(
+            source: TransactionSource,
+            tx: <Block as BlockT>::Extrinsic,
+        ) -> TransactionValidity {
+            Executive::validate_transaction(source, tx)
+        }
+    }
 
-	impl sp_offchain::OffchainWorkerApi<Block> for Runtime {
-		fn offchain_worker(header: &<Block as BlockT>::Header) {
-			Executive::offchain_worker(header)
-		}
-	}
-
-	impl sp_consensus_aura::AuraApi<Block, AuraId> for Runtime {
-		fn slot_duration() -> u64 {
-			Aura::slot_duration()
-		}
-
-		fn authorities() -> Vec<AuraId> {
-			Aura::authorities()
-		}
-	}
-
-	impl sp_session::SessionKeys<Block> for Runtime {
-		fn generate_session_keys(seed: Option<Vec<u8>>) -> Vec<u8> {
-			opaque::SessionKeys::generate(seed)
-		}
+    impl sp_offchain::OffchainWorkerApi<Block> for Runtime {
+        fn offchain_worker(header: &<Block as BlockT>::Header) {
+            Executive::offchain_worker(header)
+        }
+    }
 
-		fn decode_session_keys(
-			encoded: Vec<u8>,
-		) -> Option<Vec<(Vec<u8>, sp_core::crypto::KeyTypeId)>> {
-			opaque::SessionKeys::decode_into_raw_public_keys(&encoded)
-		}
-	}
-
-	impl fg_primitives::GrandpaApi<Block> for Runtime {
-		fn grandpa_authorities() -> GrandpaAuthorityList {
-			Grandpa::grandpa_authorities()
-		}
-	}
+    impl sp_consensus_aura::AuraApi<Block, AuraId> for Runtime {
+        fn slot_duration() -> u64 {
+            Aura::slot_duration()
+        }
 
-	impl contracts_rpc_runtime_api::ContractsApi<Block, AccountId, Balance, BlockNumber>
-	for Runtime
-	{
-		fn call(
-			origin: AccountId,
-			dest: AccountId,
-			value: Balance,
-			gas_limit: u64,
-			input_data: Vec<u8>,
-		) -> ContractExecResult {
-			let exec_result =
-				Contracts::bare_call(origin, dest.into(), value, gas_limit, input_data);
-			match exec_result {
-				Ok(v) => ContractExecResult::Success {
-					status: v.status,
-					data: v.data,
-				},
-				Err(_) => ContractExecResult::Error,
-			}
-		}
+        fn authorities() -> Vec<AuraId> {
+            Aura::authorities()
+        }
+    }
 
-		fn get_storage(
-			address: AccountId,
-			key: [u8; 32],
-		) -> contracts_primitives::GetStorageResult {
-			Contracts::get_storage(address, key)
-		}
+    impl sp_session::SessionKeys<Block> for Runtime {
+        fn generate_session_keys(seed: Option<Vec<u8>>) -> Vec<u8> {
+            opaque::SessionKeys::generate(seed)
+        }
 
-		fn rent_projection(
-			address: AccountId,
-		) -> contracts_primitives::RentProjectionResult<BlockNumber> {
-			Contracts::rent_projection(address)
-		}
-	}
+        fn decode_session_keys(
+            encoded: Vec<u8>,
+        ) -> Option<Vec<(Vec<u8>, sp_core::crypto::KeyTypeId)>> {
+            opaque::SessionKeys::decode_into_raw_public_keys(&encoded)
+        }
+    }
 
+    impl fg_primitives::GrandpaApi<Block> for Runtime {
+        fn grandpa_authorities() -> GrandpaAuthorityList {
+            Grandpa::grandpa_authorities()
+        }
+    }
 }