difftreelog
Merge pull request #917 from UniqueNetwork/feature/update-polkadot-v0.9.41
in: master
Upgrade polkadot to v0.9.41
42 files changed
.maintain/frame-weight-template.hbsdiffbeforeafterboth--- a/.maintain/frame-weight-template.hbs
+++ b/.maintain/frame-weight-template.hbs
@@ -3,8 +3,9 @@
//! Autogenerated weights for {{pallet}}
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION {{version}}
-//! DATE: {{date}}, STEPS: `{{cmd.steps}}`, REPEAT: {{cmd.repeat}}, LOW RANGE: `{{cmd.lowest_range_values}}`, HIGH RANGE: `{{cmd.highest_range_values}}`
+//! DATE: {{date}}, STEPS: `{{cmd.steps}}`, REPEAT: `{{cmd.repeat}}`, LOW RANGE: `{{cmd.lowest_range_values}}`, HIGH RANGE: `{{cmd.highest_range_values}}`
//! WORST CASE MAP SIZE: `{{cmd.worst_case_map_values}}`
+//! HOSTNAME: `{{hostname}}`, CPU: `{{cpuname}}`
//! EXECUTION: {{cmd.execution}}, WASM-EXECUTION: {{cmd.wasm_execution}}, CHAIN: {{cmd.chain}}, DB CACHE: {{cmd.db_cache}}
// Executed Command:
@@ -15,8 +16,6 @@
#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
#![allow(unused_imports)]
-#![allow(missing_docs)]
-#![allow(clippy::unnecessary_cast)]
use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
use sp_std::marker::PhantomData;
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -205,42 +205,51 @@
[[package]]
name = "anstream"
-version = "0.2.6"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f"
+checksum = "9e579a7752471abc2a8268df8b20005e3eadd975f585398f17efcfd8d4927371"
dependencies = [
"anstyle",
"anstyle-parse",
+ "anstyle-query",
"anstyle-wincon",
- "concolor-override",
- "concolor-query",
+ "colorchoice",
"is-terminal",
"utf8parse",
]
[[package]]
name = "anstyle"
-version = "0.3.5"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2"
+checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
[[package]]
name = "anstyle-parse"
-version = "0.1.1"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116"
+checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
dependencies = [
"utf8parse",
]
[[package]]
+name = "anstyle-query"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
name = "anstyle-wincon"
-version = "0.2.0"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa"
+checksum = "4bcd8291a340dd8ac70e18878bc4501dd7b4ff970cfa21c207d36ece51ea88fd"
dependencies = [
"anstyle",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -385,6 +394,17 @@
checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
[[package]]
+name = "async-channel"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
+dependencies = [
+ "concurrent-queue",
+ "event-listener",
+ "futures-core",
+]
+
+[[package]]
name = "async-io"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -421,7 +441,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -529,68 +549,15 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
dependencies = [
- "serde",
-]
-
-[[package]]
-name = "beefy-gadget"
-version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
-dependencies = [
- "array-bytes 4.2.0",
- "async-trait",
- "fnv",
- "futures",
- "log",
- "parity-scale-codec",
- "parking_lot 0.12.1",
- "sc-client-api",
- "sc-consensus",
- "sc-keystore",
- "sc-network",
- "sc-network-common",
- "sc-network-gossip",
- "sc-utils",
- "sp-api",
- "sp-application-crypto",
- "sp-arithmetic",
- "sp-beefy",
- "sp-blockchain",
- "sp-consensus",
- "sp-core",
- "sp-keystore",
- "sp-mmr-primitives",
- "sp-runtime",
- "substrate-prometheus-endpoint",
- "thiserror",
- "wasm-timer",
-]
-
-[[package]]
-name = "beefy-gadget-rpc"
-version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
-dependencies = [
- "beefy-gadget",
- "futures",
- "jsonrpsee",
- "log",
- "parity-scale-codec",
- "parking_lot 0.12.1",
- "sc-rpc",
"serde",
- "sp-beefy",
- "sp-core",
- "sp-runtime",
- "thiserror",
]
[[package]]
name = "binary-merkle-tree"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
- "hash-db",
+ "hash-db 0.16.0",
"log",
]
@@ -1039,9 +1006,9 @@
[[package]]
name = "clap"
-version = "4.2.1"
+version = "4.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046ae530c528f252094e4a77886ee1374437744b2bff1497aa898bbddbbb29b3"
+checksum = "9b802d85aaf3a1cdb02b224ba472ebdea62014fccfcb269b95a4d76443b5ee5a"
dependencies = [
"clap_builder",
"clap_derive",
@@ -1050,9 +1017,9 @@
[[package]]
name = "clap_builder"
-version = "4.2.1"
+version = "4.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "223163f58c9a40c3b0a43e1c4b50a9ce09f007ea2cb1ec258a687945b4b7929f"
+checksum = "14a1a858f532119338887a4b8e1af9c60de8249cd7bafd68036a489e261e37b6"
dependencies = [
"anstream",
"anstyle",
@@ -1070,7 +1037,7 @@
"heck",
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -1102,6 +1069,12 @@
]
[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
name = "comfy-table"
version = "6.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1111,23 +1084,8 @@
"strum_macros",
"unicode-width",
]
-
-[[package]]
-name = "concolor-override"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f"
[[package]]
-name = "concolor-query"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf"
-dependencies = [
- "windows-sys 0.45.0",
-]
-
-[[package]]
name = "concurrent-queue"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1453,7 +1411,7 @@
[[package]]
name = "cumulus-client-cli"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"clap",
"parity-scale-codec",
@@ -1468,7 +1426,7 @@
[[package]]
name = "cumulus-client-collator"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-client-consensus-common",
"cumulus-client-network",
@@ -1491,7 +1449,7 @@
[[package]]
name = "cumulus-client-consensus-aura"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"async-trait",
"cumulus-client-consensus-common",
@@ -1520,7 +1478,7 @@
[[package]]
name = "cumulus-client-consensus-common"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"async-trait",
"cumulus-client-pov-recovery",
@@ -1544,7 +1502,7 @@
[[package]]
name = "cumulus-client-network"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"async-trait",
"cumulus-relay-chain-interface",
@@ -1567,7 +1525,7 @@
[[package]]
name = "cumulus-client-pov-recovery"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -1591,7 +1549,7 @@
[[package]]
name = "cumulus-client-service"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-client-cli",
"cumulus-client-collator",
@@ -1603,11 +1561,11 @@
"cumulus-relay-chain-interface",
"cumulus-relay-chain-minimal-node",
"futures",
- "parking_lot 0.12.1",
"polkadot-primitives",
"sc-client-api",
"sc-consensus",
"sc-network",
+ "sc-network-sync",
"sc-network-transactions",
"sc-rpc",
"sc-service",
@@ -1626,7 +1584,7 @@
[[package]]
name = "cumulus-pallet-aura-ext"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"frame-support",
"frame-system",
@@ -1642,7 +1600,7 @@
[[package]]
name = "cumulus-pallet-dmp-queue"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1659,7 +1617,7 @@
[[package]]
name = "cumulus-pallet-parachain-system"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"bytes",
"cumulus-pallet-parachain-system-proc-macro",
@@ -1688,7 +1646,7 @@
[[package]]
name = "cumulus-pallet-parachain-system-proc-macro"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -1699,7 +1657,7 @@
[[package]]
name = "cumulus-pallet-xcm"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1715,7 +1673,7 @@
[[package]]
name = "cumulus-pallet-xcmp-queue"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1735,7 +1693,7 @@
[[package]]
name = "cumulus-primitives-core"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"parity-scale-codec",
"polkadot-core-primitives",
@@ -1751,7 +1709,7 @@
[[package]]
name = "cumulus-primitives-parachain-inherent"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -1774,7 +1732,7 @@
[[package]]
name = "cumulus-primitives-timestamp"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-primitives-core",
"futures",
@@ -1787,7 +1745,7 @@
[[package]]
name = "cumulus-primitives-utility"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1805,7 +1763,7 @@
[[package]]
name = "cumulus-relay-chain-inprocess-interface"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -1830,7 +1788,7 @@
[[package]]
name = "cumulus-relay-chain-interface"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -1838,19 +1796,17 @@
"jsonrpsee-core",
"parity-scale-codec",
"polkadot-overseer",
- "polkadot-service",
"sc-client-api",
"sp-api",
"sp-blockchain",
"sp-state-machine",
"thiserror",
- "tokio",
]
[[package]]
name = "cumulus-relay-chain-minimal-node"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"array-bytes 6.0.0",
"async-trait",
@@ -1868,15 +1824,11 @@
"polkadot-service",
"sc-authority-discovery",
"sc-client-api",
- "sc-consensus",
- "sc-keystore",
"sc-network",
"sc-network-common",
"sc-service",
- "sc-telemetry",
"sc-tracing",
- "sc-transaction-pool",
- "sc-transaction-pool-api",
+ "sc-utils",
"sp-api",
"sp-blockchain",
"sp-consensus",
@@ -1884,13 +1836,12 @@
"sp-runtime",
"tokio",
"tracing",
- "url",
]
[[package]]
name = "cumulus-relay-chain-rpc-interface"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -1900,9 +1851,10 @@
"jsonrpsee",
"lru 0.9.0",
"parity-scale-codec",
- "polkadot-service",
+ "polkadot-overseer",
"sc-client-api",
"sc-rpc-api",
+ "sc-service",
"serde",
"serde_json",
"sp-api",
@@ -1919,7 +1871,7 @@
[[package]]
name = "cumulus-test-relay-sproof-builder"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-primitives-core",
"parity-scale-codec",
@@ -1993,7 +1945,7 @@
"proc-macro2",
"quote",
"scratch",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -2010,7 +1962,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -2417,7 +2369,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -2428,7 +2380,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -2465,6 +2417,17 @@
[[package]]
name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
@@ -2507,13 +2470,13 @@
dependencies = [
"bytes",
"ethereum-types",
- "hash-db",
+ "hash-db 0.15.2",
"hash256-std-hasher",
"parity-scale-codec",
"rlp",
"scale-info",
"serde",
- "sha3 0.10.6",
+ "sha3 0.10.7",
"triehash",
]
@@ -2557,7 +2520,7 @@
"rlp",
"scale-info",
"serde",
- "sha3 0.10.6",
+ "sha3 0.10.7",
]
[[package]]
@@ -2581,7 +2544,7 @@
"hex",
"proc-macro2",
"quote",
- "sha3 0.10.6",
+ "sha3 0.10.7",
"syn 1.0.109",
]
@@ -2628,7 +2591,7 @@
"environmental",
"evm-core",
"primitive-types",
- "sha3 0.10.6",
+ "sha3 0.10.7",
]
[[package]]
@@ -2666,6 +2629,19 @@
]
[[package]]
+name = "expander"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f360349150728553f92e4c997a16af8915f418d3a0f21b440d34c5632f16ed84"
+dependencies = [
+ "blake2",
+ "fs-err",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
name = "fake-simd"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2714,7 +2690,7 @@
[[package]]
name = "fc-consensus"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"async-trait",
"fc-db",
@@ -2723,7 +2699,6 @@
"sc-consensus",
"sp-api",
"sp-block-builder",
- "sp-blockchain",
"sp-consensus",
"sp-runtime",
"thiserror",
@@ -2732,7 +2707,7 @@
[[package]]
name = "fc-db"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"fp-storage",
"kvdb-rocksdb",
@@ -2751,7 +2726,7 @@
[[package]]
name = "fc-mapping-sync"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"fc-db",
"fc-storage",
@@ -2769,7 +2744,7 @@
[[package]]
name = "fc-rpc"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2778,6 +2753,7 @@
"fc-rpc-core",
"fc-storage",
"fp-ethereum",
+ "fp-evm",
"fp-rpc",
"fp-storage",
"futures",
@@ -2786,6 +2762,7 @@
"libsecp256k1",
"log",
"lru 0.8.1",
+ "pallet-evm",
"parity-scale-codec",
"prometheus",
"rand 0.8.5",
@@ -2793,6 +2770,7 @@
"sc-client-api",
"sc-network",
"sc-network-common",
+ "sc-network-sync",
"sc-rpc",
"sc-service",
"sc-transaction-pool",
@@ -2804,6 +2782,8 @@
"sp-core",
"sp-io",
"sp-runtime",
+ "sp-state-machine",
+ "sp-storage",
"substrate-prometheus-endpoint",
"tokio",
]
@@ -2811,7 +2791,7 @@
[[package]]
name = "fc-rpc-core"
version = "1.1.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2824,7 +2804,7 @@
[[package]]
name = "fc-storage"
version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2949,7 +2929,7 @@
[[package]]
name = "fork-tree"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
]
@@ -2964,9 +2944,27 @@
]
[[package]]
+name = "fp-account"
+version = "1.0.0-dev"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
+dependencies = [
+ "hex",
+ "impl-serde",
+ "libsecp256k1",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
name = "fp-consensus"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"ethereum",
"parity-scale-codec",
@@ -2978,7 +2976,7 @@
[[package]]
name = "fp-ethereum"
version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2992,7 +2990,7 @@
[[package]]
name = "fp-evm"
version = "3.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"evm",
"frame-support",
@@ -3002,21 +3000,12 @@
"sp-core",
"sp-runtime",
"sp-std",
-]
-
-[[package]]
-name = "fp-evm-mapping"
-version = "0.1.0"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
-dependencies = [
- "frame-support",
- "sp-core",
]
[[package]]
name = "fp-rpc"
version = "3.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"ethereum",
"ethereum-types",
@@ -3026,13 +3015,14 @@
"sp-api",
"sp-core",
"sp-runtime",
+ "sp-state-machine",
"sp-std",
]
[[package]]
name = "fp-self-contained"
version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -3044,7 +3034,7 @@
[[package]]
name = "fp-storage"
version = "2.0.0"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"parity-scale-codec",
"serde",
@@ -3059,7 +3049,7 @@
[[package]]
name = "frame-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-support-procedural",
@@ -3084,7 +3074,7 @@
[[package]]
name = "frame-benchmarking-cli"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"Inflector",
"array-bytes 4.2.0",
@@ -3131,7 +3121,7 @@
[[package]]
name = "frame-election-provider-solution-type"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -3142,7 +3132,7 @@
[[package]]
name = "frame-election-provider-support"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-election-provider-solution-type",
"frame-support",
@@ -3159,7 +3149,7 @@
[[package]]
name = "frame-executive"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -3188,7 +3178,7 @@
[[package]]
name = "frame-remote-externalities"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"log",
@@ -3204,9 +3194,10 @@
[[package]]
name = "frame-support"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"bitflags",
+ "environmental",
"frame-metadata",
"frame-support-procedural",
"impl-trait-for-tuples",
@@ -3236,7 +3227,7 @@
[[package]]
name = "frame-support-procedural"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"Inflector",
"cfg-expr",
@@ -3251,7 +3242,7 @@
[[package]]
name = "frame-support-procedural-tools"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate",
@@ -3263,7 +3254,7 @@
[[package]]
name = "frame-support-procedural-tools-derive"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"proc-macro2",
"quote",
@@ -3273,7 +3264,7 @@
[[package]]
name = "frame-system"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"log",
@@ -3291,7 +3282,7 @@
[[package]]
name = "frame-system-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3306,7 +3297,7 @@
[[package]]
name = "frame-system-rpc-runtime-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -3315,7 +3306,7 @@
[[package]]
name = "frame-try-runtime"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -3341,6 +3332,17 @@
]
[[package]]
+name = "fs4"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea55201cc351fdb478217c0fb641b59813da9b4efe4c414a9d8f989a657d149"
+dependencies = [
+ "libc",
+ "rustix 0.35.13",
+ "winapi",
+]
+
+[[package]]
name = "funty"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3418,7 +3420,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -3597,9 +3599,9 @@
[[package]]
name = "h2"
-version = "0.3.16"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d"
+checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f"
dependencies = [
"bytes",
"fnv",
@@ -3635,6 +3637,12 @@
checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a"
[[package]]
+name = "hash-db"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4"
+
+[[package]]
name = "hash256-std-hasher"
version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4031,6 +4039,12 @@
[[package]]
name = "io-lifetimes"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074"
+
+[[package]]
+name = "io-lifetimes"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
@@ -4071,7 +4085,7 @@
checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
dependencies = [
"hermit-abi 0.3.1",
- "io-lifetimes",
+ "io-lifetimes 1.0.10",
"rustix 0.37.11",
"windows-sys 0.48.0",
]
@@ -4256,8 +4270,8 @@
[[package]]
name = "kusama-runtime"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -4286,7 +4300,7 @@
"pallet-elections-phragmen",
"pallet-fast-unstake",
"pallet-grandpa",
- "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39)",
+ "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41)",
"pallet-im-online",
"pallet-indices",
"pallet-membership",
@@ -4330,9 +4344,9 @@
"sp-api",
"sp-arithmetic",
"sp-authority-discovery",
- "sp-beefy",
"sp-block-builder",
"sp-consensus-babe",
+ "sp-consensus-beefy",
"sp-core",
"sp-inherents",
"sp-io",
@@ -4354,8 +4368,8 @@
[[package]]
name = "kusama-runtime-constants"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -5001,6 +5015,12 @@
[[package]]
name = "linux-raw-sys"
+version = "0.0.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d"
+
+[[package]]
+name = "linux-raw-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
@@ -5160,15 +5180,6 @@
[[package]]
name = "memoffset"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
@@ -5178,12 +5189,11 @@
[[package]]
name = "memory-db"
-version = "0.31.0"
+version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e0c7cba9ce19ac7ffd2053ac9f49843bbd3f4318feedfd74e85c19d5fb0ba66"
+checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe"
dependencies = [
- "hash-db",
- "hashbrown 0.12.3",
+ "hash-db 0.16.0",
]
[[package]]
@@ -5245,7 +5255,7 @@
[[package]]
name = "mmr-gadget"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"log",
@@ -5253,9 +5263,9 @@
"sc-client-api",
"sc-offchain",
"sp-api",
- "sp-beefy",
"sp-blockchain",
"sp-consensus",
+ "sp-consensus-beefy",
"sp-core",
"sp-mmr-primitives",
"sp-runtime",
@@ -5264,7 +5274,7 @@
[[package]]
name = "mmr-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"anyhow",
"jsonrpsee",
@@ -5365,7 +5375,7 @@
"digest 0.10.6",
"multihash-derive",
"sha2 0.10.6",
- "sha3 0.10.6",
+ "sha3 0.10.7",
"unsigned-varint",
]
@@ -5537,20 +5547,6 @@
]
[[package]]
-name = "nix"
-version = "0.26.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
-dependencies = [
- "bitflags",
- "cfg-if",
- "libc",
- "memoffset 0.7.1",
- "pin-utils",
- "static_assertions",
-]
-
-[[package]]
name = "nohash-hasher"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5711,7 +5707,7 @@
[[package]]
name = "opal-runtime"
-version = "0.9.39"
+version = "0.9.41"
dependencies = [
"app-promotion-rpc",
"cumulus-pallet-aura-ext",
@@ -5725,7 +5721,6 @@
"derivative",
"evm-coder",
"fp-evm",
- "fp-evm-mapping",
"fp-rpc",
"fp-self-contained",
"frame-benchmarking",
@@ -5830,9 +5825,9 @@
[[package]]
name = "orchestra"
-version = "0.0.4"
+version = "0.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17e7d5b6bb115db09390bed8842c94180893dd83df3dfce7354f2a2aa090a4ee"
+checksum = "227585216d05ba65c7ab0a0450a3cf2cbd81a98862a54c4df8e14d5ac6adb015"
dependencies = [
"async-trait",
"dyn-clonable",
@@ -5847,9 +5842,9 @@
[[package]]
name = "orchestra-proc-macro"
-version = "0.0.4"
+version = "0.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2af4dabb2286b0be0e9711d2d24e25f6217048b71210cffd3daddc3b5c84e1f"
+checksum = "2871aadd82a2c216ee68a69837a526dfe788ecbe74c4c5038a6acdbff6653066"
dependencies = [
"expander 0.0.6",
"itertools",
@@ -5872,7 +5867,7 @@
[[package]]
name = "orml-tokens"
version = "0.4.1-dev"
-source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.39#a0751540591c88ccc2d4029464de887933727183"
+source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.41#71e9e0c73a2abc1ff8c1c3511869d60f57caa2c0"
dependencies = [
"frame-support",
"frame-system",
@@ -5887,7 +5882,7 @@
[[package]]
name = "orml-traits"
version = "0.4.1-dev"
-source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.39#a0751540591c88ccc2d4029464de887933727183"
+source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.41#71e9e0c73a2abc1ff8c1c3511869d60f57caa2c0"
dependencies = [
"frame-support",
"impl-trait-for-tuples",
@@ -5906,7 +5901,7 @@
[[package]]
name = "orml-utilities"
version = "0.4.1-dev"
-source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.39#a0751540591c88ccc2d4029464de887933727183"
+source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.41#71e9e0c73a2abc1ff8c1c3511869d60f57caa2c0"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -5920,7 +5915,7 @@
[[package]]
name = "orml-vesting"
version = "0.4.1-dev"
-source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.39#a0751540591c88ccc2d4029464de887933727183"
+source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.41#71e9e0c73a2abc1ff8c1c3511869d60f57caa2c0"
dependencies = [
"frame-support",
"frame-system",
@@ -5935,7 +5930,7 @@
[[package]]
name = "orml-xcm-support"
version = "0.4.1-dev"
-source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.39#a0751540591c88ccc2d4029464de887933727183"
+source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.41#71e9e0c73a2abc1ff8c1c3511869d60f57caa2c0"
dependencies = [
"frame-support",
"orml-traits",
@@ -5949,7 +5944,7 @@
[[package]]
name = "orml-xtokens"
version = "0.4.1-dev"
-source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.39#a0751540591c88ccc2d4029464de887933727183"
+source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.41#71e9e0c73a2abc1ff8c1c3511869d60f57caa2c0"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -6025,7 +6020,7 @@
[[package]]
name = "pallet-aura"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -6041,7 +6036,7 @@
[[package]]
name = "pallet-authority-discovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -6057,7 +6052,7 @@
[[package]]
name = "pallet-authorship"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -6071,7 +6066,7 @@
[[package]]
name = "pallet-babe"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6095,7 +6090,7 @@
[[package]]
name = "pallet-bags-list"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6115,7 +6110,7 @@
[[package]]
name = "pallet-balances"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6130,7 +6125,7 @@
[[package]]
name = "pallet-base-fee"
version = "1.0.0"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"fp-evm",
"frame-support",
@@ -6144,7 +6139,7 @@
[[package]]
name = "pallet-beefy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -6153,7 +6148,7 @@
"parity-scale-codec",
"scale-info",
"serde",
- "sp-beefy",
+ "sp-consensus-beefy",
"sp-runtime",
"sp-session",
"sp-staking",
@@ -6163,7 +6158,7 @@
[[package]]
name = "pallet-beefy-mmr"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"binary-merkle-tree",
@@ -6177,7 +6172,7 @@
"scale-info",
"serde",
"sp-api",
- "sp-beefy",
+ "sp-consensus-beefy",
"sp-core",
"sp-io",
"sp-runtime",
@@ -6187,7 +6182,7 @@
[[package]]
name = "pallet-bounties"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6205,7 +6200,7 @@
[[package]]
name = "pallet-child-bounties"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6251,7 +6246,7 @@
[[package]]
name = "pallet-collective"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6305,7 +6300,7 @@
[[package]]
name = "pallet-conviction-voting"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -6322,7 +6317,7 @@
[[package]]
name = "pallet-democracy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6340,7 +6335,7 @@
[[package]]
name = "pallet-election-provider-multi-phase"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6363,7 +6358,7 @@
[[package]]
name = "pallet-election-provider-support-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6376,7 +6371,7 @@
[[package]]
name = "pallet-elections-phragmen"
version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6394,7 +6389,7 @@
[[package]]
name = "pallet-ethereum"
version = "4.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"ethereum",
"ethereum-types",
@@ -6402,16 +6397,13 @@
"fp-consensus",
"fp-ethereum",
"fp-evm",
- "fp-evm-mapping",
"fp-rpc",
- "fp-self-contained",
"fp-storage",
"frame-support",
"frame-system",
"pallet-evm",
"pallet-timestamp",
"parity-scale-codec",
- "rlp",
"scale-info",
"sp-io",
"sp-runtime",
@@ -6421,12 +6413,12 @@
[[package]]
name = "pallet-evm"
version = "6.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"environmental",
"evm",
+ "fp-account",
"fp-evm",
- "fp-evm-mapping",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -6501,7 +6493,7 @@
[[package]]
name = "pallet-evm-precompile-simple"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.39#708aebf2255bcf90b15b309134bcf13b0ec7884b"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.41#1ed335108b39dcdaeacdaed8eeb33c2e7657273e"
dependencies = [
"fp-evm",
"ripemd",
@@ -6527,7 +6519,7 @@
[[package]]
name = "pallet-fast-unstake"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6587,7 +6579,7 @@
[[package]]
name = "pallet-grandpa"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6598,8 +6590,8 @@
"parity-scale-codec",
"scale-info",
"sp-application-crypto",
+ "sp-consensus-grandpa",
"sp-core",
- "sp-finality-grandpa",
"sp-io",
"sp-runtime",
"sp-session",
@@ -6627,7 +6619,7 @@
[[package]]
name = "pallet-identity"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -6643,7 +6635,7 @@
[[package]]
name = "pallet-im-online"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6663,7 +6655,7 @@
[[package]]
name = "pallet-indices"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6709,7 +6701,7 @@
[[package]]
name = "pallet-membership"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6726,7 +6718,7 @@
[[package]]
name = "pallet-mmr"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6743,7 +6735,7 @@
[[package]]
name = "pallet-multisig"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6759,7 +6751,7 @@
[[package]]
name = "pallet-nis"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6775,7 +6767,7 @@
[[package]]
name = "pallet-nomination-pools"
version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -6792,7 +6784,7 @@
[[package]]
name = "pallet-nomination-pools-benchmarking"
version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6812,7 +6804,7 @@
[[package]]
name = "pallet-nomination-pools-runtime-api"
version = "1.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"pallet-nomination-pools",
"parity-scale-codec",
@@ -6844,7 +6836,7 @@
[[package]]
name = "pallet-offences"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -6861,7 +6853,7 @@
[[package]]
name = "pallet-offences-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6885,7 +6877,7 @@
[[package]]
name = "pallet-preimage"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6902,7 +6894,7 @@
[[package]]
name = "pallet-proxy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6917,7 +6909,7 @@
[[package]]
name = "pallet-ranked-collective"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6935,7 +6927,7 @@
[[package]]
name = "pallet-recovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6950,7 +6942,7 @@
[[package]]
name = "pallet-referenda"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -6989,7 +6981,7 @@
[[package]]
name = "pallet-scheduler"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7006,7 +6998,7 @@
[[package]]
name = "pallet-session"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -7027,7 +7019,7 @@
[[package]]
name = "pallet-session-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7043,7 +7035,7 @@
[[package]]
name = "pallet-society"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -7057,7 +7049,7 @@
[[package]]
name = "pallet-staking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -7080,7 +7072,7 @@
[[package]]
name = "pallet-staking-reward-curve"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -7091,7 +7083,7 @@
[[package]]
name = "pallet-staking-reward-fn"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"log",
"sp-arithmetic",
@@ -7100,7 +7092,7 @@
[[package]]
name = "pallet-staking-runtime-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -7109,7 +7101,7 @@
[[package]]
name = "pallet-state-trie-migration"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7142,7 +7134,7 @@
[[package]]
name = "pallet-sudo"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -7156,7 +7148,7 @@
[[package]]
name = "pallet-template-transaction-payment"
version = "3.0.0"
-source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.39#7e74e3937a2c08bf29a00084a5c2f1ca6676d87a"
+source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.41#65d810e69aa1f5d79e08d0d4e607ffd70c877603"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7188,7 +7180,7 @@
[[package]]
name = "pallet-timestamp"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7206,7 +7198,7 @@
[[package]]
name = "pallet-tips"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7225,7 +7217,7 @@
[[package]]
name = "pallet-transaction-payment"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-support",
"frame-system",
@@ -7241,7 +7233,7 @@
[[package]]
name = "pallet-transaction-payment-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"jsonrpsee",
"pallet-transaction-payment-rpc-runtime-api",
@@ -7257,7 +7249,7 @@
[[package]]
name = "pallet-transaction-payment-rpc-runtime-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"pallet-transaction-payment",
"parity-scale-codec",
@@ -7269,7 +7261,7 @@
[[package]]
name = "pallet-treasury"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7327,7 +7319,7 @@
[[package]]
name = "pallet-utility"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7343,7 +7335,7 @@
[[package]]
name = "pallet-vesting"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7358,7 +7350,7 @@
[[package]]
name = "pallet-whitelist"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7372,8 +7364,8 @@
[[package]]
name = "pallet-xcm"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bounded-collections",
"frame-benchmarking",
@@ -7393,8 +7385,8 @@
[[package]]
name = "pallet-xcm-benchmarks"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7413,7 +7405,7 @@
[[package]]
name = "parachain-info"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.39#d6eef144421ef5c3f339f681484d06bb729dfa82"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.41#ae4e75b077c220bdf29b299b36a63b87ccb46b4c"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -7619,7 +7611,7 @@
"pest_meta",
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -7711,8 +7703,8 @@
[[package]]
name = "polkadot-approval-distribution"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"polkadot-node-metrics",
@@ -7726,8 +7718,8 @@
[[package]]
name = "polkadot-availability-bitfield-distribution"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"polkadot-node-network-protocol",
@@ -7740,8 +7732,8 @@
[[package]]
name = "polkadot-availability-distribution"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"derive_more",
"fatality",
@@ -7763,8 +7755,8 @@
[[package]]
name = "polkadot-availability-recovery"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"fatality",
"futures",
@@ -7784,8 +7776,8 @@
[[package]]
name = "polkadot-cli"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"clap",
"frame-benchmarking-cli",
@@ -7812,8 +7804,8 @@
[[package]]
name = "polkadot-client"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"async-trait",
"frame-benchmarking",
@@ -7834,13 +7826,13 @@
"sc-service",
"sp-api",
"sp-authority-discovery",
- "sp-beefy",
"sp-block-builder",
"sp-blockchain",
"sp-consensus",
"sp-consensus-babe",
+ "sp-consensus-beefy",
+ "sp-consensus-grandpa",
"sp-core",
- "sp-finality-grandpa",
"sp-inherents",
"sp-keyring",
"sp-mmr-primitives",
@@ -7854,8 +7846,8 @@
[[package]]
name = "polkadot-collator-protocol"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"always-assert",
"bitvec",
@@ -7876,8 +7868,8 @@
[[package]]
name = "polkadot-core-primitives"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -7888,8 +7880,8 @@
[[package]]
name = "polkadot-dispute-distribution"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"derive_more",
"fatality",
@@ -7913,8 +7905,8 @@
[[package]]
name = "polkadot-erasure-coding"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"parity-scale-codec",
"polkadot-node-primitives",
@@ -7927,8 +7919,8 @@
[[package]]
name = "polkadot-gossip-support"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"futures-timer",
@@ -7947,8 +7939,8 @@
[[package]]
name = "polkadot-network-bridge"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"always-assert",
"async-trait",
@@ -7963,7 +7955,6 @@
"polkadot-overseer",
"polkadot-primitives",
"sc-network",
- "sc-network-common",
"sp-consensus",
"thiserror",
"tracing-gum",
@@ -7971,8 +7962,8 @@
[[package]]
name = "polkadot-node-collation-generation"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"parity-scale-codec",
@@ -7989,8 +7980,8 @@
[[package]]
name = "polkadot-node-core-approval-voting"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"derive_more",
@@ -8018,8 +8009,8 @@
[[package]]
name = "polkadot-node-core-av-store"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"futures",
@@ -8039,8 +8030,8 @@
[[package]]
name = "polkadot-node-core-backing"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"fatality",
@@ -8058,8 +8049,8 @@
[[package]]
name = "polkadot-node-core-bitfield-signing"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"polkadot-node-subsystem",
@@ -8073,8 +8064,8 @@
[[package]]
name = "polkadot-node-core-candidate-validation"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"async-trait",
"futures",
@@ -8093,8 +8084,8 @@
[[package]]
name = "polkadot-node-core-chain-api"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"polkadot-node-metrics",
@@ -8108,8 +8099,8 @@
[[package]]
name = "polkadot-node-core-chain-selection"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"futures-timer",
@@ -8125,8 +8116,8 @@
[[package]]
name = "polkadot-node-core-dispute-coordinator"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"fatality",
"futures",
@@ -8144,8 +8135,8 @@
[[package]]
name = "polkadot-node-core-parachains-inherent"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"async-trait",
"futures",
@@ -8161,8 +8152,8 @@
[[package]]
name = "polkadot-node-core-provisioner"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"fatality",
@@ -8179,8 +8170,8 @@
[[package]]
name = "polkadot-node-core-pvf"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"always-assert",
"assert_matches",
@@ -8207,6 +8198,7 @@
"sp-maybe-compressed-blob",
"sp-tracing",
"sp-wasm-interface",
+ "substrate-build-script-utils",
"tempfile",
"tikv-jemalloc-ctl",
"tokio",
@@ -8215,8 +8207,8 @@
[[package]]
name = "polkadot-node-core-pvf-checker"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"polkadot-node-primitives",
@@ -8231,8 +8223,8 @@
[[package]]
name = "polkadot-node-core-runtime-api"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"futures",
"lru 0.9.0",
@@ -8246,8 +8238,8 @@
[[package]]
name = "polkadot-node-jaeger"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"lazy_static",
"log",
@@ -8264,8 +8256,8 @@
[[package]]
name = "polkadot-node-metrics"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bs58",
"futures",
@@ -8283,8 +8275,8 @@
[[package]]
name = "polkadot-node-network-protocol"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"async-trait",
"derive_more",
@@ -8298,7 +8290,6 @@
"rand 0.8.5",
"sc-authority-discovery",
"sc-network",
- "sc-network-common",
"strum",
"thiserror",
"tracing-gum",
@@ -8306,8 +8297,8 @@
[[package]]
name = "polkadot-node-primitives"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bounded-vec",
"futures",
@@ -8329,8 +8320,8 @@
[[package]]
name = "polkadot-node-subsystem"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"polkadot-node-jaeger",
"polkadot-node-subsystem-types",
@@ -8339,8 +8330,8 @@
[[package]]
name = "polkadot-node-subsystem-types"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"async-trait",
"derive_more",
@@ -8362,8 +8353,8 @@
[[package]]
name = "polkadot-node-subsystem-util"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"async-trait",
"derive_more",
@@ -8395,8 +8386,8 @@
[[package]]
name = "polkadot-overseer"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"async-trait",
"futures",
@@ -8418,8 +8409,8 @@
[[package]]
name = "polkadot-parachain"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bounded-collections",
"derive_more",
@@ -8435,8 +8426,8 @@
[[package]]
name = "polkadot-performance-test"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"env_logger 0.9.3",
"kusama-runtime",
@@ -8451,8 +8442,8 @@
[[package]]
name = "polkadot-primitives"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"hex-literal",
@@ -8477,11 +8468,9 @@
[[package]]
name = "polkadot-rpc"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
- "beefy-gadget",
- "beefy-gadget-rpc",
"jsonrpsee",
"mmr-rpc",
"pallet-transaction-payment-rpc",
@@ -8490,9 +8479,11 @@
"sc-client-api",
"sc-consensus-babe",
"sc-consensus-babe-rpc",
+ "sc-consensus-beefy",
+ "sc-consensus-beefy-rpc",
"sc-consensus-epochs",
- "sc-finality-grandpa",
- "sc-finality-grandpa-rpc",
+ "sc-consensus-grandpa",
+ "sc-consensus-grandpa-rpc",
"sc-rpc",
"sc-sync-state-rpc",
"sc-transaction-pool-api",
@@ -8509,8 +8500,8 @@
[[package]]
name = "polkadot-runtime"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -8537,7 +8528,7 @@
"pallet-elections-phragmen",
"pallet-fast-unstake",
"pallet-grandpa",
- "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39)",
+ "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41)",
"pallet-im-online",
"pallet-indices",
"pallet-membership",
@@ -8575,9 +8566,9 @@
"smallvec",
"sp-api",
"sp-authority-discovery",
- "sp-beefy",
"sp-block-builder",
"sp-consensus-babe",
+ "sp-consensus-beefy",
"sp-core",
"sp-inherents",
"sp-io",
@@ -8599,8 +8590,8 @@
[[package]]
name = "polkadot-runtime-common"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -8613,7 +8604,6 @@
"pallet-authorship",
"pallet-babe",
"pallet-balances",
- "pallet-beefy-mmr",
"pallet-election-provider-multi-phase",
"pallet-fast-unstake",
"pallet-session",
@@ -8632,7 +8622,6 @@
"serde_derive",
"slot-range-helper",
"sp-api",
- "sp-beefy",
"sp-core",
"sp-inherents",
"sp-io",
@@ -8647,8 +8636,8 @@
[[package]]
name = "polkadot-runtime-constants"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -8661,8 +8650,8 @@
[[package]]
name = "polkadot-runtime-metrics"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bs58",
"parity-scale-codec",
@@ -8673,8 +8662,8 @@
[[package]]
name = "polkadot-runtime-parachains"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitflags",
"bitvec",
@@ -8717,11 +8706,10 @@
[[package]]
name = "polkadot-service"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"async-trait",
- "beefy-gadget",
"frame-benchmarking-cli",
"frame-support",
"frame-system-rpc-runtime-api",
@@ -8782,12 +8770,14 @@
"sc-client-db",
"sc-consensus",
"sc-consensus-babe",
+ "sc-consensus-beefy",
+ "sc-consensus-grandpa",
"sc-consensus-slots",
"sc-executor",
- "sc-finality-grandpa",
"sc-keystore",
"sc-network",
"sc-network-common",
+ "sc-network-sync",
"sc-offchain",
"sc-service",
"sc-sync-state-rpc",
@@ -8798,13 +8788,13 @@
"serde_json",
"sp-api",
"sp-authority-discovery",
- "sp-beefy",
"sp-block-builder",
"sp-blockchain",
"sp-consensus",
"sp-consensus-babe",
+ "sp-consensus-beefy",
+ "sp-consensus-grandpa",
"sp-core",
- "sp-finality-grandpa",
"sp-inherents",
"sp-io",
"sp-keystore",
@@ -8825,8 +8815,8 @@
[[package]]
name = "polkadot-statement-distribution"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"arrayvec 0.5.2",
"fatality",
@@ -8846,8 +8836,8 @@
[[package]]
name = "polkadot-statement-table"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"parity-scale-codec",
"polkadot-primitives",
@@ -9080,9 +9070,9 @@
[[package]]
name = "prost"
-version = "0.11.8"
+version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537"
+checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
dependencies = [
"bytes",
"prost-derive",
@@ -9090,9 +9080,9 @@
[[package]]
name = "prost-build"
-version = "0.11.8"
+version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c828f93f5ca4826f97fedcbd3f9a536c16b12cff3dbbb4a007f932bbad95b12"
+checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270"
dependencies = [
"bytes",
"heck",
@@ -9125,9 +9115,9 @@
[[package]]
name = "prost-derive"
-version = "0.11.8"
+version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b"
+checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
dependencies = [
"anyhow",
"itertools",
@@ -9138,9 +9128,9 @@
[[package]]
name = "prost-types"
-version = "0.11.8"
+version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "379119666929a1afd7a043aa6cf96fa67a6dce9af60c88095a4686dbce4c9c88"
+checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13"
dependencies = [
"prost",
]
@@ -9156,7 +9146,7 @@
[[package]]
name = "quartz-runtime"
-version = "0.9.39"
+version = "0.9.41"
dependencies = [
"app-promotion-rpc",
"cumulus-pallet-aura-ext",
@@ -9170,7 +9160,6 @@
"derivative",
"evm-coder",
"fp-evm",
- "fp-evm-mapping",
"fp-rpc",
"fp-self-contained",
"frame-benchmarking",
@@ -9505,7 +9494,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -9637,8 +9626,8 @@
[[package]]
name = "rococo-runtime"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"binary-merkle-tree",
"frame-benchmarking",
@@ -9662,7 +9651,7 @@
"pallet-democracy",
"pallet-elections-phragmen",
"pallet-grandpa",
- "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39)",
+ "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41)",
"pallet-im-online",
"pallet-indices",
"pallet-membership",
@@ -9700,9 +9689,9 @@
"smallvec",
"sp-api",
"sp-authority-discovery",
- "sp-beefy",
"sp-block-builder",
"sp-consensus-babe",
+ "sp-consensus-beefy",
"sp-core",
"sp-inherents",
"sp-io",
@@ -9723,8 +9712,8 @@
[[package]]
name = "rococo-runtime-constants"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -9767,7 +9756,7 @@
"log",
"netlink-packet-route",
"netlink-proto",
- "nix 0.24.3",
+ "nix",
"thiserror",
"tokio",
]
@@ -9834,13 +9823,27 @@
[[package]]
name = "rustix"
+version = "0.35.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9"
+dependencies = [
+ "bitflags",
+ "errno 0.2.8",
+ "io-lifetimes 0.7.5",
+ "libc",
+ "linux-raw-sys 0.0.46",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "rustix"
version = "0.36.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0af200a3324fa5bcd922e84e9b55a298ea9f431a489f01961acdebc6e908f25"
dependencies = [
"bitflags",
- "errno",
- "io-lifetimes",
+ "errno 0.3.1",
+ "io-lifetimes 1.0.10",
"libc",
"linux-raw-sys 0.1.4",
"windows-sys 0.45.0",
@@ -9853,8 +9856,8 @@
checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77"
dependencies = [
"bitflags",
- "errno",
- "io-lifetimes",
+ "errno 0.3.1",
+ "io-lifetimes 1.0.10",
"libc",
"linux-raw-sys 0.3.1",
"windows-sys 0.48.0",
@@ -9950,7 +9953,7 @@
[[package]]
name = "sc-allocator"
version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"log",
"sp-core",
@@ -9961,7 +9964,7 @@
[[package]]
name = "sc-authority-discovery"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures",
@@ -9974,6 +9977,7 @@
"prost-build",
"rand 0.8.5",
"sc-client-api",
+ "sc-network",
"sc-network-common",
"sp-api",
"sp-authority-discovery",
@@ -9988,7 +9992,7 @@
[[package]]
name = "sc-basic-authorship"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"futures-timer",
@@ -10011,7 +10015,7 @@
[[package]]
name = "sc-block-builder"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"sc-client-api",
@@ -10021,28 +10025,31 @@
"sp-core",
"sp-inherents",
"sp-runtime",
- "sp-state-machine",
]
[[package]]
name = "sc-chain-spec"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"memmap2",
"sc-chain-spec-derive",
- "sc-network-common",
+ "sc-client-api",
+ "sc-executor",
+ "sc-network",
"sc-telemetry",
"serde",
"serde_json",
+ "sp-blockchain",
"sp-core",
"sp-runtime",
+ "sp-state-machine",
]
[[package]]
name = "sc-chain-spec-derive"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -10053,7 +10060,7 @@
[[package]]
name = "sc-cli"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"chrono",
@@ -10093,7 +10100,7 @@
[[package]]
name = "sc-client-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"fnv",
"futures",
@@ -10119,9 +10126,9 @@
[[package]]
name = "sc-client-db"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
- "hash-db",
+ "hash-db 0.16.0",
"kvdb",
"kvdb-memorydb",
"kvdb-rocksdb",
@@ -10145,7 +10152,7 @@
[[package]]
name = "sc-consensus"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures",
@@ -10170,7 +10177,7 @@
[[package]]
name = "sc-consensus-aura"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures",
@@ -10199,7 +10206,7 @@
[[package]]
name = "sc-consensus-babe"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"fork-tree",
@@ -10238,7 +10245,7 @@
[[package]]
name = "sc-consensus-babe-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"jsonrpsee",
@@ -10258,9 +10265,63 @@
]
[[package]]
+name = "sc-consensus-beefy"
+version = "4.0.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
+dependencies = [
+ "array-bytes 4.2.0",
+ "async-trait",
+ "fnv",
+ "futures",
+ "log",
+ "parity-scale-codec",
+ "parking_lot 0.12.1",
+ "sc-client-api",
+ "sc-consensus",
+ "sc-keystore",
+ "sc-network",
+ "sc-network-common",
+ "sc-network-gossip",
+ "sc-network-sync",
+ "sc-utils",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-beefy",
+ "sp-core",
+ "sp-keystore",
+ "sp-mmr-primitives",
+ "sp-runtime",
+ "substrate-prometheus-endpoint",
+ "thiserror",
+ "wasm-timer",
+]
+
+[[package]]
+name = "sc-consensus-beefy-rpc"
+version = "4.0.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
+dependencies = [
+ "futures",
+ "jsonrpsee",
+ "log",
+ "parity-scale-codec",
+ "parking_lot 0.12.1",
+ "sc-consensus-beefy",
+ "sc-rpc",
+ "serde",
+ "sp-consensus-beefy",
+ "sp-core",
+ "sp-runtime",
+ "thiserror",
+]
+
+[[package]]
name = "sc-consensus-epochs"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"fork-tree",
"parity-scale-codec",
@@ -10271,9 +10332,69 @@
]
[[package]]
+name = "sc-consensus-grandpa"
+version = "0.10.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
+dependencies = [
+ "ahash 0.8.3",
+ "array-bytes 4.2.0",
+ "async-trait",
+ "dyn-clone",
+ "finality-grandpa",
+ "fork-tree",
+ "futures",
+ "futures-timer",
+ "log",
+ "parity-scale-codec",
+ "parking_lot 0.12.1",
+ "rand 0.8.5",
+ "sc-block-builder",
+ "sc-chain-spec",
+ "sc-client-api",
+ "sc-consensus",
+ "sc-network",
+ "sc-network-common",
+ "sc-network-gossip",
+ "sc-telemetry",
+ "sc-utils",
+ "serde_json",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+ "substrate-prometheus-endpoint",
+ "thiserror",
+]
+
+[[package]]
+name = "sc-consensus-grandpa-rpc"
+version = "0.10.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
+dependencies = [
+ "finality-grandpa",
+ "futures",
+ "jsonrpsee",
+ "log",
+ "parity-scale-codec",
+ "sc-client-api",
+ "sc-consensus-grandpa",
+ "sc-rpc",
+ "serde",
+ "sp-blockchain",
+ "sp-core",
+ "sp-runtime",
+ "thiserror",
+]
+
+[[package]]
name = "sc-consensus-manual-seal"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"assert_matches",
"async-trait",
@@ -10307,7 +10428,7 @@
[[package]]
name = "sc-consensus-slots"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures",
@@ -10330,7 +10451,7 @@
[[package]]
name = "sc-executor"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"lru 0.8.1",
"parity-scale-codec",
@@ -10354,7 +10475,7 @@
[[package]]
name = "sc-executor-common"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"sc-allocator",
"sp-maybe-compressed-blob",
@@ -10367,7 +10488,7 @@
[[package]]
name = "sc-executor-wasmi"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"log",
"sc-allocator",
@@ -10380,7 +10501,7 @@
[[package]]
name = "sc-executor-wasmtime"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"anyhow",
"cfg-if",
@@ -10393,78 +10514,19 @@
"sp-runtime-interface",
"sp-wasm-interface",
"wasmtime",
-]
-
-[[package]]
-name = "sc-finality-grandpa"
-version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
-dependencies = [
- "ahash 0.8.3",
- "array-bytes 4.2.0",
- "async-trait",
- "dyn-clone",
- "finality-grandpa",
- "fork-tree",
- "futures",
- "futures-timer",
- "log",
- "parity-scale-codec",
- "parking_lot 0.12.1",
- "rand 0.8.5",
- "sc-block-builder",
- "sc-chain-spec",
- "sc-client-api",
- "sc-consensus",
- "sc-network",
- "sc-network-common",
- "sc-network-gossip",
- "sc-telemetry",
- "sc-utils",
- "serde_json",
- "sp-api",
- "sp-application-crypto",
- "sp-arithmetic",
- "sp-blockchain",
- "sp-consensus",
- "sp-core",
- "sp-finality-grandpa",
- "sp-keystore",
- "sp-runtime",
- "substrate-prometheus-endpoint",
- "thiserror",
]
[[package]]
-name = "sc-finality-grandpa-rpc"
-version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
-dependencies = [
- "finality-grandpa",
- "futures",
- "jsonrpsee",
- "log",
- "parity-scale-codec",
- "sc-client-api",
- "sc-finality-grandpa",
- "sc-rpc",
- "serde",
- "sp-blockchain",
- "sp-core",
- "sp-runtime",
- "thiserror",
-]
-
-[[package]]
name = "sc-informant"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"ansi_term",
"futures",
"futures-timer",
"log",
"sc-client-api",
+ "sc-network",
"sc-network-common",
"sp-blockchain",
"sp-runtime",
@@ -10473,7 +10535,7 @@
[[package]]
name = "sc-keystore"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"async-trait",
@@ -10488,12 +10550,12 @@
[[package]]
name = "sc-network"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
+ "async-channel",
"async-trait",
"asynchronous-codec",
- "backtrace",
"bytes",
"either",
"fnv",
@@ -10501,6 +10563,7 @@
"futures-timer",
"ip_network",
"libp2p",
+ "linked_hash_set",
"log",
"lru 0.8.1",
"mockall",
@@ -10531,7 +10594,7 @@
[[package]]
name = "sc-network-bitswap"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"cid",
"futures",
@@ -10540,6 +10603,7 @@
"prost",
"prost-build",
"sc-client-api",
+ "sc-network",
"sc-network-common",
"sp-blockchain",
"sp-runtime",
@@ -10550,33 +10614,35 @@
[[package]]
name = "sc-network-common"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
+ "array-bytes 4.2.0",
"async-trait",
"bitflags",
"bytes",
"futures",
"futures-timer",
"libp2p",
- "linked_hash_set",
"parity-scale-codec",
"prost-build",
"sc-consensus",
"sc-peerset",
+ "sc-utils",
"serde",
"smallvec",
"sp-blockchain",
"sp-consensus",
- "sp-finality-grandpa",
+ "sp-consensus-grandpa",
"sp-runtime",
"substrate-prometheus-endpoint",
"thiserror",
+ "zeroize",
]
[[package]]
name = "sc-network-gossip"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"ahash 0.8.3",
"futures",
@@ -10584,6 +10650,7 @@
"libp2p",
"log",
"lru 0.8.1",
+ "sc-network",
"sc-network-common",
"sc-peerset",
"sp-runtime",
@@ -10594,7 +10661,7 @@
[[package]]
name = "sc-network-light"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"futures",
@@ -10604,6 +10671,7 @@
"prost",
"prost-build",
"sc-client-api",
+ "sc-network",
"sc-network-common",
"sc-peerset",
"sp-blockchain",
@@ -10615,12 +10683,13 @@
[[package]]
name = "sc-network-sync"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"async-trait",
"fork-tree",
"futures",
+ "futures-timer",
"libp2p",
"log",
"lru 0.8.1",
@@ -10630,6 +10699,7 @@
"prost-build",
"sc-client-api",
"sc-consensus",
+ "sc-network",
"sc-network-common",
"sc-peerset",
"sc-utils",
@@ -10637,8 +10707,8 @@
"sp-arithmetic",
"sp-blockchain",
"sp-consensus",
+ "sp-consensus-grandpa",
"sp-core",
- "sp-finality-grandpa",
"sp-runtime",
"substrate-prometheus-endpoint",
"thiserror",
@@ -10647,7 +10717,7 @@
[[package]]
name = "sc-network-transactions"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"futures",
@@ -10655,6 +10725,7 @@
"log",
"parity-scale-codec",
"pin-project",
+ "sc-network",
"sc-network-common",
"sc-peerset",
"sc-utils",
@@ -10666,7 +10737,7 @@
[[package]]
name = "sc-offchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"bytes",
@@ -10682,6 +10753,7 @@
"parking_lot 0.12.1",
"rand 0.8.5",
"sc-client-api",
+ "sc-network",
"sc-network-common",
"sc-peerset",
"sc-utils",
@@ -10696,7 +10768,7 @@
[[package]]
name = "sc-peerset"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"libp2p",
@@ -10709,7 +10781,7 @@
[[package]]
name = "sc-proposer-metrics"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -10718,7 +10790,7 @@
[[package]]
name = "sc-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"jsonrpsee",
@@ -10748,7 +10820,7 @@
[[package]]
name = "sc-rpc-api"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -10767,7 +10839,7 @@
[[package]]
name = "sc-rpc-server"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"http",
"jsonrpsee",
@@ -10782,7 +10854,7 @@
[[package]]
name = "sc-rpc-spec-v2"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"futures",
@@ -10808,7 +10880,7 @@
[[package]]
name = "sc-service"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"directories",
@@ -10874,7 +10946,7 @@
[[package]]
name = "sc-state-db"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"log",
"parity-scale-codec",
@@ -10885,12 +10957,12 @@
[[package]]
name = "sc-storage-monitor"
version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"clap",
+ "fs4",
"futures",
"log",
- "nix 0.26.2",
"sc-client-db",
"sc-utils",
"sp-core",
@@ -10901,7 +10973,7 @@
[[package]]
name = "sc-sync-state-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -10909,7 +10981,7 @@
"sc-client-api",
"sc-consensus-babe",
"sc-consensus-epochs",
- "sc-finality-grandpa",
+ "sc-consensus-grandpa",
"serde",
"serde_json",
"sp-blockchain",
@@ -10920,7 +10992,7 @@
[[package]]
name = "sc-sysinfo"
version = "6.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"libc",
@@ -10939,7 +11011,7 @@
[[package]]
name = "sc-telemetry"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"chrono",
"futures",
@@ -10958,7 +11030,7 @@
[[package]]
name = "sc-tracing"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"ansi_term",
"atty",
@@ -10989,7 +11061,7 @@
[[package]]
name = "sc-tracing-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -11000,7 +11072,7 @@
[[package]]
name = "sc-transaction-pool"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures",
@@ -11027,7 +11099,7 @@
[[package]]
name = "sc-transaction-pool-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures",
@@ -11041,15 +11113,16 @@
[[package]]
name = "sc-utils"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
- "backtrace",
+ "async-channel",
"futures",
"futures-timer",
"lazy_static",
"log",
"parking_lot 0.12.1",
"prometheus",
+ "sp-arithmetic",
]
[[package]]
@@ -11250,29 +11323,29 @@
[[package]]
name = "serde"
-version = "1.0.159"
+version = "1.0.160"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
+checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.159"
+version = "1.0.160"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
+checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
name = "serde_json"
-version = "1.0.95"
+version = "1.0.96"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
+checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
dependencies = [
"itoa",
"ryu",
@@ -11354,9 +11427,9 @@
[[package]]
name = "sha3"
-version = "0.10.6"
+version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9"
+checksum = "54c2bb1a323307527314a36bfb73f24febb08ce2b8a554bf4ffd6f51ad15198c"
dependencies = [
"digest 0.10.6",
"keccak",
@@ -11438,8 +11511,8 @@
[[package]]
name = "slot-range-helper"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"enumn",
"parity-scale-codec",
@@ -11516,9 +11589,9 @@
[[package]]
name = "sp-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
- "hash-db",
+ "hash-db 0.16.0",
"log",
"parity-scale-codec",
"sp-api-proc-macro",
@@ -11534,9 +11607,11 @@
[[package]]
name = "sp-api-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
+ "Inflector",
"blake2",
+ "expander 1.0.0",
"proc-macro-crate",
"proc-macro2",
"quote",
@@ -11546,7 +11621,7 @@
[[package]]
name = "sp-application-crypto"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -11559,7 +11634,7 @@
[[package]]
name = "sp-arithmetic"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"integer-sqrt",
"num-traits",
@@ -11573,39 +11648,20 @@
[[package]]
name = "sp-authority-discovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
-dependencies = [
- "parity-scale-codec",
- "scale-info",
- "sp-api",
- "sp-application-crypto",
- "sp-runtime",
- "sp-std",
-]
-
-[[package]]
-name = "sp-beefy"
-version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
- "lazy_static",
"parity-scale-codec",
"scale-info",
- "serde",
"sp-api",
"sp-application-crypto",
- "sp-core",
- "sp-io",
- "sp-mmr-primitives",
"sp-runtime",
"sp-std",
- "strum",
]
[[package]]
name = "sp-block-builder"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -11617,7 +11673,7 @@
[[package]]
name = "sp-blockchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"log",
@@ -11635,25 +11691,22 @@
[[package]]
name = "sp-consensus"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures",
"log",
- "parity-scale-codec",
"sp-core",
"sp-inherents",
"sp-runtime",
"sp-state-machine",
- "sp-std",
- "sp-version",
"thiserror",
]
[[package]]
name = "sp-consensus-aura"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -11671,7 +11724,7 @@
[[package]]
name = "sp-consensus-babe"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"merlin",
@@ -11692,9 +11745,46 @@
]
[[package]]
+name = "sp-consensus-beefy"
+version = "4.0.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
+dependencies = [
+ "lazy_static",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-io",
+ "sp-mmr-primitives",
+ "sp-runtime",
+ "sp-std",
+ "strum",
+]
+
+[[package]]
+name = "sp-consensus-grandpa"
+version = "4.0.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
+dependencies = [
+ "finality-grandpa",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
name = "sp-consensus-slots"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -11706,7 +11796,7 @@
[[package]]
name = "sp-consensus-vrf"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -11719,7 +11809,7 @@
[[package]]
name = "sp-core"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"array-bytes 4.2.0",
"base58",
@@ -11729,7 +11819,7 @@
"dyn-clonable",
"ed25519-zebra",
"futures",
- "hash-db",
+ "hash-db 0.16.0",
"hash256-std-hasher",
"impl-serde",
"lazy_static",
@@ -11762,13 +11852,13 @@
[[package]]
name = "sp-core-hashing"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
- "blake2",
+ "blake2b_simd",
"byteorder",
"digest 0.10.6",
"sha2 0.10.6",
- "sha3 0.10.6",
+ "sha3 0.10.7",
"sp-std",
"twox-hash",
]
@@ -11776,7 +11866,7 @@
[[package]]
name = "sp-core-hashing-proc-macro"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"proc-macro2",
"quote",
@@ -11787,7 +11877,7 @@
[[package]]
name = "sp-database"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"kvdb",
"parking_lot 0.12.1",
@@ -11796,7 +11886,7 @@
[[package]]
name = "sp-debug-derive"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"proc-macro2",
"quote",
@@ -11806,36 +11896,18 @@
[[package]]
name = "sp-externalities"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"environmental",
"parity-scale-codec",
"sp-std",
"sp-storage",
-]
-
-[[package]]
-name = "sp-finality-grandpa"
-version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
-dependencies = [
- "finality-grandpa",
- "log",
- "parity-scale-codec",
- "scale-info",
- "serde",
- "sp-api",
- "sp-application-crypto",
- "sp-core",
- "sp-keystore",
- "sp-runtime",
- "sp-std",
]
[[package]]
name = "sp-inherents"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"impl-trait-for-tuples",
@@ -11850,7 +11922,7 @@
[[package]]
name = "sp-io"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"bytes",
"ed25519",
@@ -11875,7 +11947,7 @@
[[package]]
name = "sp-keyring"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"lazy_static",
"sp-core",
@@ -11886,7 +11958,7 @@
[[package]]
name = "sp-keystore"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures",
@@ -11903,7 +11975,7 @@
[[package]]
name = "sp-maybe-compressed-blob"
version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"thiserror",
"zstd",
@@ -11912,7 +11984,7 @@
[[package]]
name = "sp-mmr-primitives"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"ckb-merkle-mountain-range",
"log",
@@ -11930,7 +12002,7 @@
[[package]]
name = "sp-npos-elections"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -11944,7 +12016,7 @@
[[package]]
name = "sp-offchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"sp-api",
"sp-core",
@@ -11954,7 +12026,7 @@
[[package]]
name = "sp-panic-handler"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"backtrace",
"lazy_static",
@@ -11964,7 +12036,7 @@
[[package]]
name = "sp-rpc"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"rustc-hash",
"serde",
@@ -11974,7 +12046,7 @@
[[package]]
name = "sp-runtime"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"either",
"hash256-std-hasher",
@@ -11996,7 +12068,7 @@
[[package]]
name = "sp-runtime-interface"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"bytes",
"impl-trait-for-tuples",
@@ -12014,7 +12086,7 @@
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"Inflector",
"proc-macro-crate",
@@ -12026,7 +12098,7 @@
[[package]]
name = "sp-session"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -12040,7 +12112,7 @@
[[package]]
name = "sp-staking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -12052,9 +12124,9 @@
[[package]]
name = "sp-state-machine"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
- "hash-db",
+ "hash-db 0.16.0",
"log",
"parity-scale-codec",
"parking_lot 0.12.1",
@@ -12072,12 +12144,12 @@
[[package]]
name = "sp-std"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
[[package]]
name = "sp-storage"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -12090,7 +12162,7 @@
[[package]]
name = "sp-timestamp"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"futures-timer",
@@ -12105,7 +12177,7 @@
[[package]]
name = "sp-tracing"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"sp-std",
@@ -12117,7 +12189,7 @@
[[package]]
name = "sp-transaction-pool"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"sp-api",
"sp-runtime",
@@ -12126,7 +12198,7 @@
[[package]]
name = "sp-transaction-storage-proof"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"log",
@@ -12142,10 +12214,10 @@
[[package]]
name = "sp-trie"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"ahash 0.8.3",
- "hash-db",
+ "hash-db 0.16.0",
"hashbrown 0.12.3",
"lazy_static",
"memory-db",
@@ -12158,14 +12230,14 @@
"sp-std",
"thiserror",
"tracing",
- "trie-db 0.25.1",
+ "trie-db 0.27.1",
"trie-root",
]
[[package]]
name = "sp-version"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -12182,7 +12254,7 @@
[[package]]
name = "sp-version-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"proc-macro2",
@@ -12193,7 +12265,7 @@
[[package]]
name = "sp-wasm-interface"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"anyhow",
"impl-trait-for-tuples",
@@ -12207,7 +12279,7 @@
[[package]]
name = "sp-weights"
version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -12408,7 +12480,7 @@
[[package]]
name = "substrate-build-script-utils"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"platforms 2.0.0",
]
@@ -12416,7 +12488,7 @@
[[package]]
name = "substrate-frame-rpc-system"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"frame-system-rpc-runtime-api",
"futures",
@@ -12435,7 +12507,7 @@
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"hyper",
"log",
@@ -12447,7 +12519,7 @@
[[package]]
name = "substrate-rpc-client"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"jsonrpsee",
@@ -12460,7 +12532,7 @@
[[package]]
name = "substrate-state-trie-migration-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"jsonrpsee",
"log",
@@ -12473,13 +12545,13 @@
"sp-runtime",
"sp-state-machine",
"sp-trie",
- "trie-db 0.25.1",
+ "trie-db 0.27.1",
]
[[package]]
name = "substrate-test-utils"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"futures",
"substrate-test-utils-derive",
@@ -12489,7 +12561,7 @@
[[package]]
name = "substrate-test-utils-derive"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -12500,7 +12572,7 @@
[[package]]
name = "substrate-wasm-builder"
version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"ansi_term",
"build-helper",
@@ -12542,9 +12614,9 @@
[[package]]
name = "syn"
-version = "2.0.13"
+version = "2.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
+checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
dependencies = [
"proc-macro2",
"quote",
@@ -12629,7 +12701,6 @@
version = "0.1.1"
dependencies = [
"evm-coder",
- "fp-evm-mapping",
"frame-support",
"frame-system",
"pallet-balances",
@@ -12674,7 +12745,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -12854,7 +12925,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
@@ -13008,8 +13079,8 @@
[[package]]
name = "tracing-gum"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"polkadot-node-jaeger",
"polkadot-primitives",
@@ -13019,8 +13090,8 @@
[[package]]
name = "tracing-gum-proc-macro"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"expander 0.0.6",
"proc-macro-crate",
@@ -13079,7 +13150,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "004e1e8f92535694b4cb1444dc5a8073ecf0815e3357f729638b9f8fc4062908"
dependencies = [
- "hash-db",
+ "hash-db 0.15.2",
"hashbrown 0.12.3",
"log",
"smallvec",
@@ -13087,11 +13158,11 @@
[[package]]
name = "trie-db"
-version = "0.25.1"
+version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3390c0409daaa6027d6681393316f4ccd3ff82e1590a1e4725014e3ae2bf1920"
+checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85"
dependencies = [
- "hash-db",
+ "hash-db 0.16.0",
"hashbrown 0.13.2",
"log",
"rustc-hex",
@@ -13100,11 +13171,11 @@
[[package]]
name = "trie-root"
-version = "0.17.0"
+version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a36c5ca3911ed3c9a5416ee6c679042064b93fc637ded67e25f92e68d783891"
+checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b"
dependencies = [
- "hash-db",
+ "hash-db 0.16.0",
]
[[package]]
@@ -13113,7 +13184,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c"
dependencies = [
- "hash-db",
+ "hash-db 0.15.2",
"rlp",
]
@@ -13172,7 +13243,7 @@
[[package]]
name = "try-runtime-cli"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39#1837f423b494254e1d27834b1c9da34b2c0c2375"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41#980eb16791bab5d63b47c07657bb9dc198d9307b"
dependencies = [
"async-trait",
"clap",
@@ -13335,7 +13406,7 @@
[[package]]
name = "unique-node"
-version = "0.9.39"
+version = "0.9.41"
dependencies = [
"app-promotion-rpc",
"clap",
@@ -13374,6 +13445,7 @@
"sc-consensus-manual-seal",
"sc-executor",
"sc-network",
+ "sc-network-sync",
"sc-service",
"sc-sysinfo",
"sc-telemetry",
@@ -13420,8 +13492,9 @@
"jsonrpsee",
"pallet-transaction-payment-rpc",
"sc-client-api",
- "sc-finality-grandpa",
+ "sc-consensus-grandpa",
"sc-network",
+ "sc-network-sync",
"sc-rpc",
"sc-rpc-api",
"sc-service",
@@ -13441,7 +13514,7 @@
[[package]]
name = "unique-runtime"
-version = "0.9.39"
+version = "0.9.41"
dependencies = [
"app-promotion-rpc",
"cumulus-pallet-aura-ext",
@@ -13455,7 +13528,6 @@
"derivative",
"evm-coder",
"fp-evm",
- "fp-evm-mapping",
"fp-rpc",
"fp-self-contained",
"frame-benchmarking",
@@ -13579,7 +13651,7 @@
[[package]]
name = "up-common"
-version = "0.9.39"
+version = "0.9.41"
dependencies = [
"cumulus-primitives-core",
"fp-rpc",
@@ -13638,7 +13710,7 @@
[[package]]
name = "up-sponsorship"
version = "0.1.0"
-source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.39#7e74e3937a2c08bf29a00084a5c2f1ca6676d87a"
+source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.41#65d810e69aa1f5d79e08d0d4e607ffd70c877603"
dependencies = [
"impl-trait-for-tuples",
]
@@ -14344,7 +14416,7 @@
"lazy_static",
"libc",
"log",
- "nix 0.24.3",
+ "nix",
"rand 0.8.5",
"thiserror",
"tokio",
@@ -14353,8 +14425,8 @@
[[package]]
name = "westend-runtime"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -14379,7 +14451,7 @@
"pallet-elections-phragmen",
"pallet-fast-unstake",
"pallet-grandpa",
- "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.39)",
+ "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.41)",
"pallet-im-online",
"pallet-indices",
"pallet-membership",
@@ -14421,9 +14493,9 @@
"smallvec",
"sp-api",
"sp-authority-discovery",
- "sp-beefy",
"sp-block-builder",
"sp-consensus-babe",
+ "sp-consensus-beefy",
"sp-core",
"sp-inherents",
"sp-io",
@@ -14445,8 +14517,8 @@
[[package]]
name = "westend-runtime-constants"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -14802,8 +14874,8 @@
[[package]]
name = "xcm"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"bounded-collections",
"derivative",
@@ -14818,8 +14890,8 @@
[[package]]
name = "xcm-builder"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"frame-support",
"frame-system",
@@ -14839,8 +14911,8 @@
[[package]]
name = "xcm-executor"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"environmental",
"frame-benchmarking",
@@ -14859,8 +14931,8 @@
[[package]]
name = "xcm-procedural"
-version = "0.9.39-1"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.39#c22e1c4173bf6966f5d1980f4299f7abe836f0c1"
+version = "0.9.41"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.41#e203bfb396ed949f102720debf32fb98166787af"
dependencies = [
"Inflector",
"proc-macro2",
@@ -14908,7 +14980,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.13",
+ "syn 2.0.15",
]
[[package]]
Cargo.tomldiffbeforeafterboth--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,7 +11,7 @@
'runtime/tests',
'runtime/unique',
]
-package.version = "0.9.39"
+package.version = "0.9.41"
resolver = "2"
[profile.release]
@@ -29,7 +29,7 @@
app-promotion-rpc = { path = "primitives/app_promotion_rpc", default-features = false }
evm-coder = { git = "https://github.com/uniquenetwork/evm-coder", tag = "v0.3.1", default-features = false }
pallet-app-promotion = { path = "pallets/app-promotion", default-features = false }
-pallet-charge-transaction = { package = "pallet-template-transaction-payment", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.39" }
+pallet-charge-transaction = { package = "pallet-template-transaction-payment", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.41" }
pallet-collator-selection = { default-features = false, path = "pallets/collator-selection" }
pallet-common = { default-features = false, path = "pallets/common" }
pallet-configuration = { default-features = false, path = "pallets/configuration" }
@@ -56,7 +56,7 @@
up-data-structs = { path = "primitives/data-structs", default-features = false }
up-pov-estimate-rpc = { path = "primitives/pov-estimate-rpc", default-features = false }
up-rpc = { path = "primitives/rpc", default-features = false }
-up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.39" }
+up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.41" }
# Unique: Runtimes
opal-runtime = { path = "runtime/opal" }
@@ -64,124 +64,124 @@
unique-runtime = { path = "runtime/unique" }
# Frontier (Unique patches over the Parity version)
-fc-consensus = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fc-db = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fc-mapping-sync = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fc-consensus = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+fc-db = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+fc-mapping-sync = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
# Parity
codec = { default-features = false, features = ['derive'], package = 'parity-scale-codec', version = "3.2.2" }
-cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-pallet-aura-ext = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-pallet-dmp-queue = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-pallet-parachain-system = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-pallet-xcm = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-pallet-xcmp-queue = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-primitives-core = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-primitives-timestamp = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-primitives-utility = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-frame-executive = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-aura = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-authorship = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-preimage = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-sudo = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-treasury = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39", default-features = false }
-parachain-info = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.39" }
-polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
-polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39", default-features = false }
-polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
-polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
-sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-consensus-manual-seal = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-pallet-aura-ext = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-pallet-dmp-queue = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-pallet-parachain-system = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-pallet-xcm = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-pallet-xcmp-queue = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-primitives-core = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-primitives-timestamp = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-primitives-utility = { default-features = false , git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+frame-executive = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-aura = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-authorship = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-preimage = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-sudo = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-treasury = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.41", default-features = false }
+parachain-info = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.41" }
+polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.41" }
+polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.41", default-features = false }
+polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.41" }
+polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.41" }
+sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-consensus-manual-seal = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-consensus-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
-sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-block-builder = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-consensus-aura = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-inherents = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-offchain = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-staking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-trie = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-version = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39", default-features = false }
-xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39", default-features = false }
-xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39", default-features = false }
+sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-block-builder = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-consensus-aura = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-inherents = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-offchain = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-staking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-trie = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-version = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.41", default-features = false }
+xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.41", default-features = false }
+xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.41", default-features = false }
# Parity: Build utils
-substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
# Parity: Benchmarking
-frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-frame-system-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+frame-system-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
# Parity: Try Runtime
-frame-try-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-try-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
# ORML
-orml-tokens = { default-features = false , git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.39" }
-orml-traits = { default-features = false , git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.39" }
-orml-vesting = { default-features = false , git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.39" }
-orml-xtokens = { default-features = false , git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.39" }
-orml-xcm-support = { default-features = false , git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.39" }
+orml-tokens = { default-features = false , git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "polkadot-v0.9.41" }
+orml-traits = { default-features = false , git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "polkadot-v0.9.41" }
+orml-vesting = { default-features = false , git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "polkadot-v0.9.41" }
+orml-xtokens = { default-features = false , git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "polkadot-v0.9.41" }
+orml-xcm-support = { default-features = false , git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "polkadot-v0.9.41" }
# Other
derivative = { version = "2.2.0", features = ["use_core"] }
@@ -219,4 +219,89 @@
cumulus-relay-chain-interface = { git = "https://github.com/uniquenetwork/cumulus", branch = "polkadot-v0.9.39" }
cumulus-relay-chain-minimal-node = { git = "https://github.com/uniquenetwork/cumulus", branch = "polkadot-v0.9.39" }
parachain-info = { git = "https://github.com/uniquenetwork/cumulus", branch = "polkadot-v0.9.39" }
+pallet-template-transaction-payment = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.39" }
+up-sponsorship = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.39" }
+frame-executive = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-consensus-manual-seal = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-consensus-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-staking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+orml-xcm-support = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.39" }
+pallet-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
+polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
+polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
+polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
+polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
+xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
+xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
+xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.39" }
+fc-consensus = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fc-db = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fc-mapping-sync = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fc-rpc = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fc-rpc-core = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fp-evm = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fp-rpc = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fp-self-contained = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+fp-storage = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+pallet-base-fee = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+pallet-ethereum = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+pallet-evm = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+pallet-evm-precompile-simple = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
Makefilediffbeforeafterboth--- a/Makefile
+++ b/Makefile
@@ -147,7 +147,7 @@
.PHONY: bench
# Disabled: bench-scheduler, bench-collator-selection, bench-identity
-bench: bench-common bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-configuration bench-foreign-assets bench-maintenance bench-xcm
+bench: bench-app-promotion bench-common bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-configuration bench-foreign-assets bench-maintenance bench-xcm
.PHONY: check
check:
node/cli/Cargo.tomldiffbeforeafterboth--- a/node/cli/Cargo.toml
+++ b/node/cli/Cargo.toml
@@ -56,6 +56,7 @@
sc-consensus-manual-seal = { workspace = true }
sc-executor = { workspace = true }
sc-network = { workspace = true }
+sc-network-sync = { workspace = true }
sc-service = { workspace = true }
sc-sysinfo = { workspace = true }
sc-telemetry = { workspace = true }
node/cli/src/service.rsdiffbeforeafterboth--- a/node/cli/src/service.rs
+++ b/node/cli/src/service.rs
@@ -44,14 +44,15 @@
use cumulus_client_network::BlockAnnounceValidator;
use cumulus_primitives_core::ParaId;
use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain;
-use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult};
+use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult};
use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node;
// Substrate Imports
use sp_api::BlockT;
use sc_executor::NativeElseWasmExecutor;
use sc_executor::NativeExecutionDispatch;
-use sc_network::{NetworkService, NetworkBlock};
+use sc_network::NetworkBlock;
+use sc_network_sync::SyncingService;
use sc_service::{BasePath, Configuration, PartialComponents, TaskManager};
use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle};
use sp_keystore::SyncCryptoStorePtr;
@@ -420,7 +421,7 @@
&TaskManager,
Arc<dyn RelayChainInterface>,
Arc<sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>>,
- Arc<NetworkService<Block, Hash>>,
+ Arc<SyncingService<Block>>,
SyncCryptoStorePtr,
bool,
) -> Result<Box<dyn ParachainConsensus<Block>>, sc_service::Error>,
@@ -445,10 +446,7 @@
hwbench.clone(),
)
.await
- .map_err(|e| match e {
- RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x,
- s => s.to_string().into(),
- })?;
+ .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?;
let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface.clone(), id);
@@ -458,7 +456,7 @@
let transaction_pool = params.transaction_pool.clone();
let import_queue_service = params.import_queue.service();
- let (network, system_rpc_tx, tx_handler_controller, start_network) =
+ let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) =
sc_service::build_network(sc_service::BuildNetworkParams {
config: ¶chain_config,
client: client.clone(),
@@ -475,6 +473,7 @@
let rpc_pool = transaction_pool.clone();
let select_chain = params.select_chain.clone();
let rpc_network = network.clone();
+ let rpc_sync_service = sync_service.clone();
let rpc_frontier_backend = frontier_backend.clone();
@@ -532,6 +531,7 @@
enable_dev_signer: false,
filter_pool: filter_pool.clone(),
network: rpc_network.clone(),
+ sync: rpc_sync_service.clone(),
select_chain: select_chain.clone(),
is_authority: validator,
// TODO: Unhardcode
@@ -558,6 +558,7 @@
keystore: params.keystore_container.sync_keystore(),
backend: backend.clone(),
network: network.clone(),
+ sync_service: sync_service.clone(),
system_rpc_tx,
telemetry: telemetry.as_mut(),
tx_handler_controller,
@@ -577,9 +578,9 @@
}
let announce_block = {
- let network = network.clone();
+ let sync_service = sync_service.clone();
Arc::new(Box::new(move |hash, data| {
- network.announce_block(hash, data)
+ sync_service.announce_block(hash, data)
}))
};
@@ -598,7 +599,7 @@
&task_manager,
relay_chain_interface.clone(),
transaction_pool,
- network,
+ sync_service.clone(),
params.keystore_container.sync_keystore(),
force_authoring,
)?;
@@ -896,7 +897,7 @@
prometheus_registry.clone(),
));
- let (network, system_rpc_tx, tx_handler_controller, network_starter) =
+ let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) =
sc_service::build_network(sc_service::BuildNetworkParams {
config: &config,
client: client.clone(),
@@ -1032,6 +1033,7 @@
let rpc_client = client.clone();
let rpc_pool = transaction_pool.clone();
let rpc_network = network.clone();
+ let rpc_sync_service = sync_service.clone();
let rpc_frontier_backend = frontier_backend.clone();
#[cfg(feature = "pov-estimate")]
@@ -1062,6 +1064,7 @@
enable_dev_signer: false,
filter_pool: filter_pool.clone(),
network: rpc_network.clone(),
+ sync: rpc_sync_service.clone(),
select_chain: select_chain.clone(),
is_authority: collator,
// TODO: Unhardcode
@@ -1081,6 +1084,7 @@
sc_service::spawn_tasks(sc_service::SpawnTasksParams {
network,
+ sync_service,
client,
keystore: keystore_container.sync_keystore(),
task_manager: &mut task_manager,
node/rpc/Cargo.tomldiffbeforeafterboth--- a/node/rpc/Cargo.toml
+++ b/node/rpc/Cargo.toml
@@ -14,8 +14,9 @@
# pallet-contracts-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'master' }
pallet-transaction-payment-rpc = { workspace = true }
sc-client-api = { workspace = true }
-sc-finality-grandpa = { workspace = true }
+sc-consensus-grandpa = { workspace = true }
sc-network = { workspace = true }
+sc-network-sync = { workspace = true }
sc-rpc = { workspace = true }
sc-rpc-api = { workspace = true }
sc-service = { workspace = true }
node/rpc/src/lib.rsdiffbeforeafterboth--- a/node/rpc/src/lib.rs
+++ b/node/rpc/src/lib.rs
@@ -27,10 +27,11 @@
client::BlockchainEvents,
StateBackend, Backend,
};
-use sc_finality_grandpa::{
+use sc_consensus_grandpa::{
FinalityProofProvider, GrandpaJustificationStream, SharedAuthoritySet, SharedVoterState,
};
use sc_network::NetworkService;
+use sc_network_sync::SyncingService;
use sc_rpc::SubscriptionTaskExecutor;
pub use sc_rpc_api::DenyUnsafe;
use sc_transaction_pool::{ChainApi, Pool};
@@ -75,6 +76,8 @@
pub enable_dev_signer: bool,
/// Network service
pub network: Arc<NetworkService<Block, Hash>>,
+ /// Syncing service
+ pub sync: Arc<SyncingService<Block>>,
/// Whether to deny unsafe calls
pub deny_unsafe: DenyUnsafe,
/// EthFilterApi pool.
@@ -162,6 +165,12 @@
CA: ChainApi<Block = Block> + 'static,
R: RuntimeInstance + Send + Sync + 'static,
<R as RuntimeInstance>::CrossAccountId: serde::Serialize,
+ C: sp_api::CallApiAt<
+ sp_runtime::generic::Block<
+ sp_runtime::generic::Header<u32, BlakeTwo256>,
+ sp_runtime::OpaqueExtrinsic,
+ >,
+ >,
for<'de> <R as RuntimeInstance>::CrossAccountId: serde::Deserialize<'de>,
{
use fc_rpc::{
@@ -191,6 +200,7 @@
enable_dev_signer,
is_authority,
network,
+ sync,
deny_unsafe,
filter_pool,
@@ -225,7 +235,7 @@
pool.clone(),
graph,
Some(<R as RuntimeInstance>::get_transaction_converter()),
- network.clone(),
+ sync.clone(),
signers,
overrides.clone(),
eth_backend.clone(),
@@ -280,9 +290,7 @@
io.merge(Web3::new(client.clone()).into_rpc())?;
- io.merge(
- EthPubSub::new(pool, client, network, subscription_task_executor, overrides).into_rpc(),
- )?;
+ io.merge(EthPubSub::new(pool, client, sync, subscription_task_executor, overrides).into_rpc())?;
Ok(io)
}
pallets/app-promotion/src/lib.rsdiffbeforeafterboth--- a/pallets/app-promotion/src/lib.rs
+++ b/pallets/app-promotion/src/lib.rs
@@ -152,7 +152,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::event]
pallets/collator-selection/src/lib.rsdiffbeforeafterboth--- a/pallets/collator-selection/src/lib.rs
+++ b/pallets/collator-selection/src/lib.rs
@@ -161,7 +161,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// The invulnerable, fixed collators.
pallets/common/src/dispatch.rsdiffbeforeafterboth--- a/pallets/common/src/dispatch.rs
+++ b/pallets/common/src/dispatch.rs
@@ -19,7 +19,7 @@
// Read collection
<T as frame_system::Config>::DbWeight::get().reads(1)
// Dynamic dispatch?
- + Weight::from_ref_time(6_000_000)
+ + Weight::from_parts(6_000_000, 0)
// submit_logs is measured as part of collection pallets
}
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -92,6 +92,7 @@
pub mod dispatch;
pub mod erc;
pub mod eth;
+#[allow(missing_docs)]
pub mod weights;
/// Weight info.
@@ -157,10 +158,12 @@
reads: u64,
) -> pallet_evm_coder_substrate::execution::Result<()> {
self.recorder
- .consume_gas(T::GasWeightMapping::weight_to_gas(Weight::from_ref_time(
+ .consume_gas(T::GasWeightMapping::weight_to_gas(Weight::from_parts(
<T as frame_system::Config>::DbWeight::get()
.read
.saturating_mul(reads),
+ // TODO: measure proof
+ 0,
)))
}
@@ -170,10 +173,12 @@
writes: u64,
) -> pallet_evm_coder_substrate::execution::Result<()> {
self.recorder
- .consume_gas(T::GasWeightMapping::weight_to_gas(Weight::from_ref_time(
+ .consume_gas(T::GasWeightMapping::weight_to_gas(Weight::from_parts(
<T as frame_system::Config>::DbWeight::get()
.write
.saturating_mul(writes),
+ // TODO: measure proof
+ 0,
)))
}
@@ -187,8 +192,10 @@
let reads = weight.read.saturating_mul(reads);
let writes = weight.read.saturating_mul(writes);
self.recorder
- .consume_gas(T::GasWeightMapping::weight_to_gas(Weight::from_ref_time(
+ .consume_gas(T::GasWeightMapping::weight_to_gas(Weight::from_parts(
reads.saturating_add(writes),
+ // TODO: measure proof
+ 0,
)))
}
@@ -462,7 +469,6 @@
#[pallet::pallet]
#[pallet::storage_version(STORAGE_VERSION)]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::extra_constants]
pallets/configuration/src/lib.rsdiffbeforeafterboth--- a/pallets/configuration/src/lib.rs
+++ b/pallets/configuration/src/lib.rs
@@ -249,7 +249,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
}
pallets/evm-coder-substrate/src/execution.rsdiffbeforeafterboth--- a/pallets/evm-coder-substrate/src/execution.rs
+++ b/pallets/evm-coder-substrate/src/execution.rs
@@ -61,7 +61,7 @@
fn dispatch_info(&self) -> DispatchInfo {
DispatchInfo {
// ERC165 impl should be cheap
- weight: Weight::from_ref_time(200),
+ weight: Weight::from_parts(200, 0),
}
}
}
@@ -77,10 +77,11 @@
Self { weight }
}
}
+// TODO: use 2-dimensional weight after frontier upgrade
impl From<u64> for DispatchInfo {
fn from(weight: u64) -> Self {
Self {
- weight: Weight::from_ref_time(weight),
+ weight: Weight::from_parts(weight, 0),
}
}
}
pallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth--- a/pallets/evm-contract-helpers/src/lib.rs
+++ b/pallets/evm-contract-helpers/src/lib.rs
@@ -70,7 +70,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(trait Store)]
pub struct Pallet<T>(_);
/// Store owner for contract.
pallets/evm-migration/src/lib.rsdiffbeforeafterboth--- a/pallets/evm-migration/src/lib.rs
+++ b/pallets/evm-migration/src/lib.rs
@@ -21,6 +21,7 @@
pub use pallet::*;
#[cfg(feature = "runtime-benchmarks")]
pub mod benchmarking;
+#[allow(missing_docs)]
pub mod weights;
#[frame_support::pallet]
@@ -46,7 +47,6 @@
type SelfWeightOf<T> = <T as Config>::WeightInfo;
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::event]
pallets/evm-transaction-payment/src/lib.rsdiffbeforeafterboth--- a/pallets/evm-transaction-payment/src/lib.rs
+++ b/pallets/evm-transaction-payment/src/lib.rs
@@ -50,7 +50,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
}
pallets/fungible/src/lib.rsdiffbeforeafterboth--- a/pallets/fungible/src/lib.rs
+++ b/pallets/fungible/src/lib.rs
@@ -141,7 +141,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// Total amount of fungible tokens inside a collection.
pallets/identity/src/lib.rsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617// Original license:18// This file is part of Substrate.1920// Copyright (C) 2019-2022 Parity Technologies (UK) Ltd.21// SPDX-License-Identifier: Apache-2.02223// Licensed under the Apache License, Version 2.0 (the "License");24// you may not use this file except in compliance with the License.25// You may obtain a copy of the License at26//27// http://www.apache.org/licenses/LICENSE-2.028//29// Unless required by applicable law or agreed to in writing, software30// distributed under the License is distributed on an "AS IS" BASIS,31// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.32// See the License for the specific language governing permissions and33// limitations under the License.3435//! # Identity Pallet36//!37//! - [`Config`]38//! - [`Call`]39//!40//! ## Overview41//!42//! A federated naming system, allowing for multiple registrars to be added from a specified origin.43//! Registrars can set a fee to provide identity-verification service. Anyone can put forth a44//! proposed identity for a fixed deposit and ask for review by any number of registrars (paying45//! each of their fees). Registrar judgements are given as an `enum`, allowing for sophisticated,46//! multi-tier opinions.47//!48//! Some judgements are identified as *sticky*, which means they cannot be removed except by49//! complete removal of the identity, or by the registrar. Judgements are allowed to represent a50//! portion of funds that have been reserved for the registrar.51//!52//! A super-user can remove accounts and in doing so, slash the deposit.53//!54//! All accounts may also have a limited number of sub-accounts which may be specified by the owner;55//! by definition, these have equivalent ownership and each has an individual name.56//!57//! The number of registrars should be limited, and the deposit made sufficiently large, to ensure58//! no state-bloat attack is viable.59//!60//! ## Interface61//!62//! ### Dispatchable Functions63//!64//! #### For general users65//! * `set_identity` - Set the associated identity of an account; a small deposit is reserved if not66//! already taken.67//! * `clear_identity` - Remove an account's associated identity; the deposit is returned.68//! * `request_judgement` - Request a judgement from a registrar, paying a fee.69//! * `cancel_request` - Cancel the previous request for a judgement.70//!71//! #### For general users with sub-identities72//! * `set_subs` - Set the sub-accounts of an identity.73//! * `add_sub` - Add a sub-identity to an identity.74//! * `remove_sub` - Remove a sub-identity of an identity.75//! * `rename_sub` - Rename a sub-identity of an identity.76//! * `quit_sub` - Remove a sub-identity of an identity (called by the sub-identity).77//!78//! #### For registrars79//! * `set_fee` - Set the fee required to be paid for a judgement to be given by the registrar.80//! * `set_fields` - Set the fields that a registrar cares about in their judgements.81//! * `provide_judgement` - Provide a judgement to an identity.82//!83//! #### For super-users84//! * `add_registrar` - Add a new registrar to the system.85//! * `kill_identity` - Forcibly remove the associated identity; the deposit is lost.86//!87//! [`Call`]: ./enum.Call.html88//! [`Config`]: ./trait.Config.html8990#![cfg_attr(not(feature = "std"), no_std)]9192mod benchmarking;93#[cfg(test)]94mod tests;95mod types;96pub mod weights;9798use frame_support::traits::{BalanceStatus, Currency, OnUnbalanced, ReservableCurrency};99use sp_runtime::traits::{AppendZerosInput, Hash, Saturating, StaticLookup, Zero};100use sp_std::prelude::*;101pub use weights::WeightInfo;102103pub use pallet::*;104pub use types::{105 Data, IdentityField, IdentityFields, IdentityInfo, Judgement, RegistrarIndex, RegistrarInfo,106 Registration,107};108109pub type BalanceOf<T> =110 <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;111type NegativeImbalanceOf<T> = <<T as Config>::Currency as Currency<112 <T as frame_system::Config>::AccountId,113>>::NegativeImbalance;114type AccountIdLookupOf<T> = <<T as frame_system::Config>::Lookup as StaticLookup>::Source;115116#[frame_support::pallet]117pub mod pallet {118 use super::*;119 use frame_support::pallet_prelude::*;120 use frame_system::pallet_prelude::*;121122 #[pallet::config]123 pub trait Config: frame_system::Config {124 /// The overarching event type.125 type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;126127 /// The currency trait.128 type Currency: ReservableCurrency<Self::AccountId>;129130 /// The amount held on deposit for a registered identity131 #[pallet::constant]132 type BasicDeposit: Get<BalanceOf<Self>>;133134 /// The amount held on deposit per additional field for a registered identity.135 #[pallet::constant]136 type FieldDeposit: Get<BalanceOf<Self>>;137138 /// The amount held on deposit for a registered subaccount. This should account for the fact139 /// that one storage item's value will increase by the size of an account ID, and there will140 /// be another trie item whose value is the size of an account ID plus 32 bytes.141 #[pallet::constant]142 type SubAccountDeposit: Get<BalanceOf<Self>>;143144 /// The maximum number of sub-accounts allowed per identified account.145 #[pallet::constant]146 type MaxSubAccounts: Get<u32>;147148 /// Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O149 /// required to access an identity, but can be pretty high.150 #[pallet::constant]151 type MaxAdditionalFields: Get<u32>;152153 /// Maxmimum number of registrars allowed in the system. Needed to bound the complexity154 /// of, e.g., updating judgements.155 #[pallet::constant]156 type MaxRegistrars: Get<u32>;157158 /// What to do with slashed funds.159 type Slashed: OnUnbalanced<NegativeImbalanceOf<Self>>;160161 /// The origin which may forcibly set or remove a name. Root can always do this.162 type ForceOrigin: EnsureOrigin<Self::RuntimeOrigin>;163164 /// The origin which may add or remove registrars. Root can always do this.165 type RegistrarOrigin: EnsureOrigin<Self::RuntimeOrigin>;166167 /// Weight information for extrinsics in this pallet.168 type WeightInfo: WeightInfo;169 }170171 #[pallet::pallet]172 #[pallet::generate_store(pub(super) trait Store)]173 pub struct Pallet<T>(_);174175 /// Information that is pertinent to identify the entity behind an account.176 ///177 /// TWOX-NOTE: OK ― `AccountId` is a secure hash.178 #[pallet::storage]179 #[pallet::getter(fn identity)]180 pub(super) type IdentityOf<T: Config> = StorageMap<181 _,182 Twox64Concat,183 T::AccountId,184 Registration<BalanceOf<T>, T::MaxRegistrars, T::MaxAdditionalFields>,185 OptionQuery,186 >;187188 /// The super-identity of an alternative "sub" identity together with its name, within that189 /// context. If the account is not some other account's sub-identity, then just `None`.190 #[pallet::storage]191 #[pallet::getter(fn super_of)]192 pub(super) type SuperOf<T: Config> =193 StorageMap<_, Blake2_128Concat, T::AccountId, (T::AccountId, Data), OptionQuery>;194195 /// Alternative "sub" identities of this account.196 ///197 /// The first item is the deposit, the second is a vector of the accounts.198 ///199 /// TWOX-NOTE: OK ― `AccountId` is a secure hash.200 #[pallet::storage]201 #[pallet::getter(fn subs_of)]202 pub(super) type SubsOf<T: Config> = StorageMap<203 _,204 Twox64Concat,205 T::AccountId,206 (BalanceOf<T>, BoundedVec<T::AccountId, T::MaxSubAccounts>),207 ValueQuery,208 >;209210 /// The set of registrars. Not expected to get very big as can only be added through a211 /// special origin (likely a council motion).212 ///213 /// The index into this can be cast to `RegistrarIndex` to get a valid value.214 #[pallet::storage]215 #[pallet::getter(fn registrars)]216 pub(super) type Registrars<T: Config> = StorageValue<217 _,218 BoundedVec<Option<RegistrarInfo<BalanceOf<T>, T::AccountId>>, T::MaxRegistrars>,219 ValueQuery,220 >;221222 #[pallet::error]223 pub enum Error<T> {224 /// Too many subs-accounts.225 TooManySubAccounts,226 /// Account isn't found.227 NotFound,228 /// Account isn't named.229 NotNamed,230 /// Empty index.231 EmptyIndex,232 /// Fee is changed.233 FeeChanged,234 /// No identity found.235 NoIdentity,236 /// Sticky judgement.237 StickyJudgement,238 /// Judgement given.239 JudgementGiven,240 /// Invalid judgement.241 InvalidJudgement,242 /// The index is invalid.243 InvalidIndex,244 /// The target is invalid.245 InvalidTarget,246 /// Too many additional fields.247 TooManyFields,248 /// Maximum amount of registrars reached. Cannot add any more.249 TooManyRegistrars,250 /// Account ID is already named.251 AlreadyClaimed,252 /// Sender is not a sub-account.253 NotSub,254 /// Sub-account isn't owned by sender.255 NotOwned,256 /// The provided judgement was for a different identity.257 JudgementForDifferentIdentity,258 /// Error that occurs when there is an issue paying for judgement.259 JudgementPaymentFailed,260 }261262 #[pallet::event]263 #[pallet::generate_deposit(pub(super) fn deposit_event)]264 pub enum Event<T: Config> {265 /// A name was set or reset (which will remove all judgements).266 IdentitySet { who: T::AccountId },267 /// A name was cleared, and the given balance returned.268 IdentityCleared {269 who: T::AccountId,270 deposit: BalanceOf<T>,271 },272 /// A name was removed and the given balance slashed.273 IdentityKilled {274 who: T::AccountId,275 deposit: BalanceOf<T>,276 },277 /// A number of identities and associated info were forcibly inserted.278 IdentitiesInserted { amount: u32 },279 /// A number of identities and all associated info were forcibly removed.280 IdentitiesRemoved { amount: u32 },281 /// A judgement was asked from a registrar.282 JudgementRequested {283 who: T::AccountId,284 registrar_index: RegistrarIndex,285 },286 /// A judgement request was retracted.287 JudgementUnrequested {288 who: T::AccountId,289 registrar_index: RegistrarIndex,290 },291 /// A judgement was given by a registrar.292 JudgementGiven {293 target: T::AccountId,294 registrar_index: RegistrarIndex,295 },296 /// A registrar was added.297 RegistrarAdded { registrar_index: RegistrarIndex },298 /// A sub-identity was added to an identity and the deposit paid.299 SubIdentityAdded {300 sub: T::AccountId,301 main: T::AccountId,302 deposit: BalanceOf<T>,303 },304 /// A sub-identity was removed from an identity and the deposit freed.305 SubIdentityRemoved {306 sub: T::AccountId,307 main: T::AccountId,308 deposit: BalanceOf<T>,309 },310 /// A sub-identity was cleared, and the given deposit repatriated from the311 /// main identity account to the sub-identity account.312 SubIdentityRevoked {313 sub: T::AccountId,314 main: T::AccountId,315 deposit: BalanceOf<T>,316 },317 /// A number of identities were forcibly updated with new sub-identities.318 SubIdentitiesInserted { amount: u32 },319 }320321 #[pallet::call]322 /// Identity pallet declaration.323 impl<T: Config> Pallet<T> {324 /// Add a registrar to the system.325 ///326 /// The dispatch origin for this call must be `T::RegistrarOrigin`.327 ///328 /// - `account`: the account of the registrar.329 ///330 /// Emits `RegistrarAdded` if successful.331 ///332 /// # <weight>333 /// - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).334 /// - One storage mutation (codec `O(R)`).335 /// - One event.336 /// # </weight>337 #[pallet::call_index(0)]338 #[pallet::weight(T::WeightInfo::add_registrar(T::MaxRegistrars::get()))]339 pub fn add_registrar(340 origin: OriginFor<T>,341 account: AccountIdLookupOf<T>,342 ) -> DispatchResultWithPostInfo {343 T::RegistrarOrigin::ensure_origin(origin)?;344 let account = T::Lookup::lookup(account)?;345346 let (i, registrar_count) = <Registrars<T>>::try_mutate(347 |registrars| -> Result<(RegistrarIndex, usize), DispatchError> {348 registrars349 .try_push(Some(RegistrarInfo {350 account,351 fee: Zero::zero(),352 fields: Default::default(),353 }))354 .map_err(|_| Error::<T>::TooManyRegistrars)?;355 Ok(((registrars.len() - 1) as RegistrarIndex, registrars.len()))356 },357 )?;358359 Self::deposit_event(Event::RegistrarAdded { registrar_index: i });360361 Ok(Some(T::WeightInfo::add_registrar(registrar_count as u32)).into())362 }363364 /// Set an account's identity information and reserve the appropriate deposit.365 ///366 /// If the account already has identity information, the deposit is taken as part payment367 /// for the new deposit.368 ///369 /// The dispatch origin for this call must be _Signed_.370 ///371 /// - `info`: The identity information.372 ///373 /// Emits `IdentitySet` if successful.374 ///375 /// # <weight>376 /// - `O(X + X' + R)`377 /// - where `X` additional-field-count (deposit-bounded and code-bounded)378 /// - where `R` judgements-count (registrar-count-bounded)379 /// - One balance reserve operation.380 /// - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).381 /// - One event.382 /// # </weight>383 #[pallet::call_index(1)]384 #[pallet::weight( T::WeightInfo::set_identity(385 T::MaxRegistrars::get(), // R386 T::MaxAdditionalFields::get(), // X387 ))]388 pub fn set_identity(389 origin: OriginFor<T>,390 info: Box<IdentityInfo<T::MaxAdditionalFields>>,391 ) -> DispatchResultWithPostInfo {392 let sender = ensure_signed(origin)?;393 let extra_fields = info.additional.len() as u32;394 ensure!(395 extra_fields <= T::MaxAdditionalFields::get(),396 Error::<T>::TooManyFields397 );398 let fd = <BalanceOf<T>>::from(extra_fields) * T::FieldDeposit::get();399400 let mut id = match <IdentityOf<T>>::get(&sender) {401 Some(mut id) => {402 // Only keep non-positive judgements.403 id.judgements.retain(|j| j.1.is_sticky());404 id.info = *info;405 id406 }407 None => Registration {408 info: *info,409 judgements: BoundedVec::default(),410 deposit: Zero::zero(),411 },412 };413414 let old_deposit = id.deposit;415 id.deposit = T::BasicDeposit::get() + fd;416 if id.deposit > old_deposit {417 T::Currency::reserve(&sender, id.deposit - old_deposit)?;418 }419 if old_deposit > id.deposit {420 let err_amount = T::Currency::unreserve(&sender, old_deposit - id.deposit);421 debug_assert!(err_amount.is_zero());422 }423424 let judgements = id.judgements.len();425 <IdentityOf<T>>::insert(&sender, id);426 Self::deposit_event(Event::IdentitySet { who: sender });427428 Ok(Some(T::WeightInfo::set_identity(429 judgements as u32, // R430 extra_fields, // X431 ))432 .into())433 }434435 /// Set the sub-accounts of the sender.436 ///437 /// Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned438 /// and an amount `SubAccountDeposit` will be reserved for each item in `subs`.439 ///440 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered441 /// identity.442 ///443 /// - `subs`: The identity's (new) sub-accounts.444 ///445 /// # <weight>446 /// - `O(P + S)`447 /// - where `P` old-subs-count (hard- and deposit-bounded).448 /// - where `S` subs-count (hard- and deposit-bounded).449 /// - At most one balance operations.450 /// - DB:451 /// - `P + S` storage mutations (codec complexity `O(1)`)452 /// - One storage read (codec complexity `O(P)`).453 /// - One storage write (codec complexity `O(S)`).454 /// - One storage-exists (`IdentityOf::contains_key`).455 /// # </weight>456 // TODO: This whole extrinsic screams "not optimized". For example we could457 // filter any overlap between new and old subs, and avoid reading/writing458 // to those values... We could also ideally avoid needing to write to459 // N storage items for N sub accounts. Right now the weight on this function460 // is a large overestimate due to the fact that it could potentially write461 // to 2 x T::MaxSubAccounts::get().462 #[pallet::call_index(2)]463 #[pallet::weight(T::WeightInfo::set_subs_old(T::MaxSubAccounts::get()) // P: Assume max sub accounts removed.464 .saturating_add(T::WeightInfo::set_subs_new(subs.len() as u32)) // S: Assume all subs are new.465 )]466 pub fn set_subs(467 origin: OriginFor<T>,468 subs: Vec<(T::AccountId, Data)>,469 ) -> DispatchResultWithPostInfo {470 let sender = ensure_signed(origin)?;471 ensure!(<IdentityOf<T>>::contains_key(&sender), Error::<T>::NotFound);472 ensure!(473 subs.len() <= T::MaxSubAccounts::get() as usize,474 Error::<T>::TooManySubAccounts475 );476477 let (old_deposit, old_ids) = <SubsOf<T>>::get(&sender);478 let new_deposit = T::SubAccountDeposit::get() * <BalanceOf<T>>::from(subs.len() as u32);479480 let not_other_sub = subs481 .iter()482 .filter_map(|i| SuperOf::<T>::get(&i.0))483 .all(|i| i.0 == sender);484 ensure!(not_other_sub, Error::<T>::AlreadyClaimed);485486 if old_deposit < new_deposit {487 T::Currency::reserve(&sender, new_deposit - old_deposit)?;488 } else if old_deposit > new_deposit {489 let err_amount = T::Currency::unreserve(&sender, old_deposit - new_deposit);490 debug_assert!(err_amount.is_zero());491 }492 // do nothing if they're equal.493494 for s in old_ids.iter() {495 <SuperOf<T>>::remove(s);496 }497 let mut ids = BoundedVec::<T::AccountId, T::MaxSubAccounts>::default();498 for (id, name) in subs {499 <SuperOf<T>>::insert(&id, (sender.clone(), name));500 ids.try_push(id)501 .expect("subs length is less than T::MaxSubAccounts; qed");502 }503 let new_subs = ids.len();504505 if ids.is_empty() {506 <SubsOf<T>>::remove(&sender);507 } else {508 <SubsOf<T>>::insert(&sender, (new_deposit, ids));509 }510511 Ok(Some(512 T::WeightInfo::set_subs_old(old_ids.len() as u32) // P: Real number of old accounts removed.513 // S: New subs added514 .saturating_add(T::WeightInfo::set_subs_new(new_subs as u32)),515 )516 .into())517 }518519 /// Clear an account's identity info and all sub-accounts and return all deposits.520 ///521 /// Payment: All reserved balances on the account are returned.522 ///523 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered524 /// identity.525 ///526 /// Emits `IdentityCleared` if successful.527 ///528 /// # <weight>529 /// - `O(R + S + X)`530 /// - where `R` registrar-count (governance-bounded).531 /// - where `S` subs-count (hard- and deposit-bounded).532 /// - where `X` additional-field-count (deposit-bounded and code-bounded).533 /// - One balance-unreserve operation.534 /// - `2` storage reads and `S + 2` storage deletions.535 /// - One event.536 /// # </weight>537 #[pallet::call_index(3)]538 #[pallet::weight(T::WeightInfo::clear_identity(539 T::MaxRegistrars::get(), // R540 T::MaxSubAccounts::get(), // S541 T::MaxAdditionalFields::get(), // X542 ))]543 pub fn clear_identity(origin: OriginFor<T>) -> DispatchResultWithPostInfo {544 let sender = ensure_signed(origin)?;545546 let (subs_deposit, sub_ids) = <SubsOf<T>>::take(&sender);547 let id = <IdentityOf<T>>::take(&sender).ok_or(Error::<T>::NotNamed)?;548 let deposit = id.total_deposit() + subs_deposit;549 for sub in sub_ids.iter() {550 <SuperOf<T>>::remove(sub);551 }552553 let err_amount = T::Currency::unreserve(&sender, deposit);554 debug_assert!(err_amount.is_zero());555556 Self::deposit_event(Event::IdentityCleared {557 who: sender,558 deposit,559 });560561 Ok(Some(T::WeightInfo::clear_identity(562 id.judgements.len() as u32, // R563 sub_ids.len() as u32, // S564 id.info.additional.len() as u32, // X565 ))566 .into())567 }568569 /// Request a judgement from a registrar.570 ///571 /// Payment: At most `max_fee` will be reserved for payment to the registrar if judgement572 /// given.573 ///574 /// The dispatch origin for this call must be _Signed_ and the sender must have a575 /// registered identity.576 ///577 /// - `reg_index`: The index of the registrar whose judgement is requested.578 /// - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:579 ///580 /// ```nocompile581 /// Self::registrars().get(reg_index).unwrap().fee582 /// ```583 ///584 /// Emits `JudgementRequested` if successful.585 ///586 /// # <weight>587 /// - `O(R + X)`.588 /// - One balance-reserve operation.589 /// - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.590 /// - One event.591 /// # </weight>592 #[pallet::call_index(4)]593 #[pallet::weight(T::WeightInfo::request_judgement(594 T::MaxRegistrars::get(), // R595 T::MaxAdditionalFields::get(), // X596 ))]597 pub fn request_judgement(598 origin: OriginFor<T>,599 #[pallet::compact] reg_index: RegistrarIndex,600 #[pallet::compact] max_fee: BalanceOf<T>,601 ) -> DispatchResultWithPostInfo {602 let sender = ensure_signed(origin)?;603 let registrars = <Registrars<T>>::get();604 let registrar = registrars605 .get(reg_index as usize)606 .and_then(Option::as_ref)607 .ok_or(Error::<T>::EmptyIndex)?;608 ensure!(max_fee >= registrar.fee, Error::<T>::FeeChanged);609 let mut id = <IdentityOf<T>>::get(&sender).ok_or(Error::<T>::NoIdentity)?;610611 let item = (reg_index, Judgement::FeePaid(registrar.fee));612 match id.judgements.binary_search_by_key(®_index, |x| x.0) {613 Ok(i) => {614 if id.judgements[i].1.is_sticky() {615 return Err(Error::<T>::StickyJudgement.into());616 } else {617 id.judgements[i] = item618 }619 }620 Err(i) => id621 .judgements622 .try_insert(i, item)623 .map_err(|_| Error::<T>::TooManyRegistrars)?,624 }625626 T::Currency::reserve(&sender, registrar.fee)?;627628 let judgements = id.judgements.len();629 let extra_fields = id.info.additional.len();630 <IdentityOf<T>>::insert(&sender, id);631632 Self::deposit_event(Event::JudgementRequested {633 who: sender,634 registrar_index: reg_index,635 });636637 Ok(Some(T::WeightInfo::request_judgement(638 judgements as u32,639 extra_fields as u32,640 ))641 .into())642 }643644 /// Cancel a previous request.645 ///646 /// Payment: A previously reserved deposit is returned on success.647 ///648 /// The dispatch origin for this call must be _Signed_ and the sender must have a649 /// registered identity.650 ///651 /// - `reg_index`: The index of the registrar whose judgement is no longer requested.652 ///653 /// Emits `JudgementUnrequested` if successful.654 ///655 /// # <weight>656 /// - `O(R + X)`.657 /// - One balance-reserve operation.658 /// - One storage mutation `O(R + X)`.659 /// - One event660 /// # </weight>661 #[pallet::call_index(5)]662 #[pallet::weight(T::WeightInfo::cancel_request(663 T::MaxRegistrars::get(), // R664 T::MaxAdditionalFields::get(), // X665 ))]666 pub fn cancel_request(667 origin: OriginFor<T>,668 reg_index: RegistrarIndex,669 ) -> DispatchResultWithPostInfo {670 let sender = ensure_signed(origin)?;671 let mut id = <IdentityOf<T>>::get(&sender).ok_or(Error::<T>::NoIdentity)?;672673 let pos = id674 .judgements675 .binary_search_by_key(®_index, |x| x.0)676 .map_err(|_| Error::<T>::NotFound)?;677 let fee = if let Judgement::FeePaid(fee) = id.judgements.remove(pos).1 {678 fee679 } else {680 return Err(Error::<T>::JudgementGiven.into());681 };682683 let err_amount = T::Currency::unreserve(&sender, fee);684 debug_assert!(err_amount.is_zero());685 let judgements = id.judgements.len();686 let extra_fields = id.info.additional.len();687 <IdentityOf<T>>::insert(&sender, id);688689 Self::deposit_event(Event::JudgementUnrequested {690 who: sender,691 registrar_index: reg_index,692 });693694 Ok(Some(T::WeightInfo::cancel_request(695 judgements as u32,696 extra_fields as u32,697 ))698 .into())699 }700701 /// Set the fee required for a judgement to be requested from a registrar.702 ///703 /// The dispatch origin for this call must be _Signed_ and the sender must be the account704 /// of the registrar whose index is `index`.705 ///706 /// - `index`: the index of the registrar whose fee is to be set.707 /// - `fee`: the new fee.708 ///709 /// # <weight>710 /// - `O(R)`.711 /// - One storage mutation `O(R)`.712 /// - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)713 /// # </weight>714 #[pallet::call_index(6)]715 #[pallet::weight(T::WeightInfo::set_fee(T::MaxRegistrars::get()))] // R716 pub fn set_fee(717 origin: OriginFor<T>,718 #[pallet::compact] index: RegistrarIndex,719 #[pallet::compact] fee: BalanceOf<T>,720 ) -> DispatchResultWithPostInfo {721 let who = ensure_signed(origin)?;722723 let registrars = <Registrars<T>>::mutate(|rs| -> Result<usize, DispatchError> {724 rs.get_mut(index as usize)725 .and_then(|x| x.as_mut())726 .and_then(|r| {727 if r.account == who {728 r.fee = fee;729 Some(())730 } else {731 None732 }733 })734 .ok_or_else(|| DispatchError::from(Error::<T>::InvalidIndex))?;735 Ok(rs.len())736 })?;737 Ok(Some(T::WeightInfo::set_fee(registrars as u32)).into()) // R738 }739740 /// Change the account associated with a registrar.741 ///742 /// The dispatch origin for this call must be _Signed_ and the sender must be the account743 /// of the registrar whose index is `index`.744 ///745 /// - `index`: the index of the registrar whose fee is to be set.746 /// - `new`: the new account ID.747 ///748 /// # <weight>749 /// - `O(R)`.750 /// - One storage mutation `O(R)`.751 /// - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)752 /// # </weight>753 #[pallet::call_index(7)]754 #[pallet::weight(T::WeightInfo::set_account_id(T::MaxRegistrars::get()))] // R755 pub fn set_account_id(756 origin: OriginFor<T>,757 #[pallet::compact] index: RegistrarIndex,758 new: AccountIdLookupOf<T>,759 ) -> DispatchResultWithPostInfo {760 let who = ensure_signed(origin)?;761 let new = T::Lookup::lookup(new)?;762763 let registrars = <Registrars<T>>::mutate(|rs| -> Result<usize, DispatchError> {764 rs.get_mut(index as usize)765 .and_then(|x| x.as_mut())766 .and_then(|r| {767 if r.account == who {768 r.account = new;769 Some(())770 } else {771 None772 }773 })774 .ok_or_else(|| DispatchError::from(Error::<T>::InvalidIndex))?;775 Ok(rs.len())776 })?;777 Ok(Some(T::WeightInfo::set_account_id(registrars as u32)).into()) // R778 }779780 /// Set the field information for a registrar.781 ///782 /// The dispatch origin for this call must be _Signed_ and the sender must be the account783 /// of the registrar whose index is `index`.784 ///785 /// - `index`: the index of the registrar whose fee is to be set.786 /// - `fields`: the fields that the registrar concerns themselves with.787 ///788 /// # <weight>789 /// - `O(R)`.790 /// - One storage mutation `O(R)`.791 /// - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)792 /// # </weight>793 #[pallet::call_index(8)]794 #[pallet::weight(T::WeightInfo::set_fields(T::MaxRegistrars::get()))] // R795 pub fn set_fields(796 origin: OriginFor<T>,797 #[pallet::compact] index: RegistrarIndex,798 fields: IdentityFields,799 ) -> DispatchResultWithPostInfo {800 let who = ensure_signed(origin)?;801802 let registrars = <Registrars<T>>::mutate(|rs| -> Result<usize, DispatchError> {803 rs.get_mut(index as usize)804 .and_then(|x| x.as_mut())805 .and_then(|r| {806 if r.account == who {807 r.fields = fields;808 Some(())809 } else {810 None811 }812 })813 .ok_or_else(|| DispatchError::from(Error::<T>::InvalidIndex))?;814 Ok(rs.len())815 })?;816 Ok(Some(T::WeightInfo::set_fields(817 registrars as u32, // R818 ))819 .into())820 }821822 /// Provide a judgement for an account's identity.823 ///824 /// The dispatch origin for this call must be _Signed_ and the sender must be the account825 /// of the registrar whose index is `reg_index`.826 ///827 /// - `reg_index`: the index of the registrar whose judgement is being made.828 /// - `target`: the account whose identity the judgement is upon. This must be an account829 /// with a registered identity.830 /// - `judgement`: the judgement of the registrar of index `reg_index` about `target`.831 /// - `identity`: The hash of the [`IdentityInfo`] for that the judgement is provided.832 ///833 /// Emits `JudgementGiven` if successful.834 ///835 /// # <weight>836 /// - `O(R + X)`.837 /// - One balance-transfer operation.838 /// - Up to one account-lookup operation.839 /// - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.840 /// - One event.841 /// # </weight>842 #[pallet::call_index(9)]843 #[pallet::weight(T::WeightInfo::provide_judgement(844 T::MaxRegistrars::get(), // R845 T::MaxAdditionalFields::get(), // X846 ))]847 pub fn provide_judgement(848 origin: OriginFor<T>,849 #[pallet::compact] reg_index: RegistrarIndex,850 target: AccountIdLookupOf<T>,851 judgement: Judgement<BalanceOf<T>>,852 identity: T::Hash,853 ) -> DispatchResultWithPostInfo {854 let sender = ensure_signed(origin)?;855 let target = T::Lookup::lookup(target)?;856 ensure!(!judgement.has_deposit(), Error::<T>::InvalidJudgement);857 <Registrars<T>>::get()858 .get(reg_index as usize)859 .and_then(Option::as_ref)860 .filter(|r| r.account == sender)861 .ok_or(Error::<T>::InvalidIndex)?;862 let mut id = <IdentityOf<T>>::get(&target).ok_or(Error::<T>::InvalidTarget)?;863864 if T::Hashing::hash_of(&id.info) != identity {865 return Err(Error::<T>::JudgementForDifferentIdentity.into());866 }867868 let item = (reg_index, judgement);869 match id.judgements.binary_search_by_key(®_index, |x| x.0) {870 Ok(position) => {871 if let Judgement::FeePaid(fee) = id.judgements[position].1 {872 T::Currency::repatriate_reserved(873 &target,874 &sender,875 fee,876 BalanceStatus::Free,877 )878 .map_err(|_| Error::<T>::JudgementPaymentFailed)?;879 }880 id.judgements[position] = item881 }882 Err(position) => id883 .judgements884 .try_insert(position, item)885 .map_err(|_| Error::<T>::TooManyRegistrars)?,886 }887888 let judgements = id.judgements.len();889 let extra_fields = id.info.additional.len();890 <IdentityOf<T>>::insert(&target, id);891 Self::deposit_event(Event::JudgementGiven {892 target,893 registrar_index: reg_index,894 });895896 Ok(Some(T::WeightInfo::provide_judgement(897 judgements as u32,898 extra_fields as u32,899 ))900 .into())901 }902903 /// Remove an account's identity and sub-account information and slash the deposits.904 ///905 /// Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by906 /// `Slash`. Verification request deposits are not returned; they should be cancelled907 /// manually using `cancel_request`.908 ///909 /// The dispatch origin for this call must match `T::ForceOrigin`.910 ///911 /// - `target`: the account whose identity the judgement is upon. This must be an account912 /// with a registered identity.913 ///914 /// Emits `IdentityKilled` if successful.915 ///916 /// # <weight>917 /// - `O(R + S + X)`.918 /// - One balance-reserve operation.919 /// - `S + 2` storage mutations.920 /// - One event.921 /// # </weight>922 #[pallet::call_index(10)]923 #[pallet::weight(T::WeightInfo::kill_identity(924 T::MaxRegistrars::get(), // R925 T::MaxSubAccounts::get(), // S926 T::MaxAdditionalFields::get(), // X927 ))]928 pub fn kill_identity(929 origin: OriginFor<T>,930 target: AccountIdLookupOf<T>,931 ) -> DispatchResultWithPostInfo {932 T::ForceOrigin::ensure_origin(origin)?;933934 // Figure out who we're meant to be clearing.935 let target = T::Lookup::lookup(target)?;936 // Grab their deposit (and check that they have one).937 let (subs_deposit, sub_ids) = <SubsOf<T>>::take(&target);938 let id = <IdentityOf<T>>::take(&target).ok_or(Error::<T>::NotNamed)?;939 let deposit = id.total_deposit() + subs_deposit;940 for sub in sub_ids.iter() {941 <SuperOf<T>>::remove(sub);942 }943 // Slash their deposit from them.944 T::Slashed::on_unbalanced(T::Currency::slash_reserved(&target, deposit).0);945946 Self::deposit_event(Event::IdentityKilled {947 who: target,948 deposit,949 });950951 Ok(Some(T::WeightInfo::kill_identity(952 id.judgements.len() as u32, // R953 sub_ids.len() as u32, // S954 id.info.additional.len() as u32, // X955 ))956 .into())957 }958959 /// Add the given account to the sender's subs.960 ///961 /// Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated962 /// to the sender.963 ///964 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered965 /// sub identity of `sub`.966 #[pallet::call_index(11)]967 #[pallet::weight(T::WeightInfo::add_sub(T::MaxSubAccounts::get()))]968 pub fn add_sub(969 origin: OriginFor<T>,970 sub: AccountIdLookupOf<T>,971 data: Data,972 ) -> DispatchResult {973 let sender = ensure_signed(origin)?;974 let sub = T::Lookup::lookup(sub)?;975 ensure!(976 IdentityOf::<T>::contains_key(&sender),977 Error::<T>::NoIdentity978 );979980 // Check if it's already claimed as sub-identity.981 ensure!(982 !SuperOf::<T>::contains_key(&sub),983 Error::<T>::AlreadyClaimed984 );985986 SubsOf::<T>::try_mutate(&sender, |(ref mut subs_deposit, ref mut sub_ids)| {987 // Ensure there is space and that the deposit is paid.988 ensure!(989 sub_ids.len() < T::MaxSubAccounts::get() as usize,990 Error::<T>::TooManySubAccounts991 );992 let deposit = T::SubAccountDeposit::get();993 T::Currency::reserve(&sender, deposit)?;994995 SuperOf::<T>::insert(&sub, (sender.clone(), data));996 sub_ids997 .try_push(sub.clone())998 .expect("sub ids length checked above; qed");999 *subs_deposit = subs_deposit.saturating_add(deposit);10001001 Self::deposit_event(Event::SubIdentityAdded {1002 sub,1003 main: sender.clone(),1004 deposit,1005 });1006 Ok(())1007 })1008 }10091010 /// Alter the associated name of the given sub-account.1011 ///1012 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered1013 /// sub identity of `sub`.1014 #[pallet::call_index(12)]1015 #[pallet::weight(T::WeightInfo::rename_sub(T::MaxSubAccounts::get()))]1016 pub fn rename_sub(1017 origin: OriginFor<T>,1018 sub: AccountIdLookupOf<T>,1019 data: Data,1020 ) -> DispatchResult {1021 let sender = ensure_signed(origin)?;1022 let sub = T::Lookup::lookup(sub)?;1023 ensure!(1024 IdentityOf::<T>::contains_key(&sender),1025 Error::<T>::NoIdentity1026 );1027 ensure!(1028 SuperOf::<T>::get(&sub).map_or(false, |x| x.0 == sender),1029 Error::<T>::NotOwned1030 );1031 SuperOf::<T>::insert(&sub, (sender, data));1032 Ok(())1033 }10341035 /// Remove the given account from the sender's subs.1036 ///1037 /// Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated1038 /// to the sender.1039 ///1040 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered1041 /// sub identity of `sub`.1042 #[pallet::call_index(13)]1043 #[pallet::weight(T::WeightInfo::remove_sub(T::MaxSubAccounts::get()))]1044 pub fn remove_sub(origin: OriginFor<T>, sub: AccountIdLookupOf<T>) -> DispatchResult {1045 let sender = ensure_signed(origin)?;1046 ensure!(1047 IdentityOf::<T>::contains_key(&sender),1048 Error::<T>::NoIdentity1049 );1050 let sub = T::Lookup::lookup(sub)?;1051 let (sup, _) = SuperOf::<T>::get(&sub).ok_or(Error::<T>::NotSub)?;1052 ensure!(sup == sender, Error::<T>::NotOwned);1053 SuperOf::<T>::remove(&sub);1054 SubsOf::<T>::mutate(&sup, |(ref mut subs_deposit, ref mut sub_ids)| {1055 sub_ids.retain(|x| x != &sub);1056 let deposit = T::SubAccountDeposit::get().min(*subs_deposit);1057 *subs_deposit -= deposit;1058 let err_amount = T::Currency::unreserve(&sender, deposit);1059 debug_assert!(err_amount.is_zero());1060 Self::deposit_event(Event::SubIdentityRemoved {1061 sub,1062 main: sender,1063 deposit,1064 });1065 });1066 Ok(())1067 }10681069 /// Remove the sender as a sub-account.1070 ///1071 /// Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated1072 /// to the sender (*not* the original depositor).1073 ///1074 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered1075 /// super-identity.1076 ///1077 /// NOTE: This should not normally be used, but is provided in the case that the non-1078 /// controller of an account is maliciously registered as a sub-account.1079 #[pallet::call_index(14)]1080 #[pallet::weight(T::WeightInfo::quit_sub(T::MaxSubAccounts::get()))]1081 pub fn quit_sub(origin: OriginFor<T>) -> DispatchResult {1082 let sender = ensure_signed(origin)?;1083 let (sup, _) = SuperOf::<T>::take(&sender).ok_or(Error::<T>::NotSub)?;1084 SubsOf::<T>::mutate(&sup, |(ref mut subs_deposit, ref mut sub_ids)| {1085 sub_ids.retain(|x| x != &sender);1086 let deposit = T::SubAccountDeposit::get().min(*subs_deposit);1087 *subs_deposit -= deposit;1088 let _ =1089 T::Currency::repatriate_reserved(&sup, &sender, deposit, BalanceStatus::Free);1090 Self::deposit_event(Event::SubIdentityRevoked {1091 sub: sender,1092 main: sup.clone(),1093 deposit,1094 });1095 });1096 Ok(())1097 }10981099 /// Set identities to be associated with the provided accounts as force origin.1100 ///1101 /// This is not meant to operate in tandem with the identity pallet as is,1102 /// and be instead used to keep identities made and verified externally,1103 /// forbidden from interacting with an ordinary user, since it ignores any safety mechanism.1104 #[pallet::call_index(15)]1105 #[pallet::weight(T::WeightInfo::force_insert_identities(1106 T::MaxAdditionalFields::get(), // X1107 identities.len() as u32, // N1108 ))]1109 pub fn force_insert_identities(1110 origin: OriginFor<T>,1111 identities: Vec<(1112 T::AccountId,1113 Registration<BalanceOf<T>, T::MaxRegistrars, T::MaxAdditionalFields>,1114 )>,1115 ) -> DispatchResult {1116 T::ForceOrigin::ensure_origin(origin)?;1117 for identity in identities.clone() {1118 IdentityOf::<T>::insert(identity.0, identity.1);1119 }1120 Self::deposit_event(Event::IdentitiesInserted {1121 amount: identities.len() as u32,1122 });1123 Ok(())1124 }11251126 /// Remove identities associated with the provided accounts as force origin.1127 ///1128 /// This is not meant to operate in tandem with the identity pallet as is,1129 /// and be instead used to keep identities made and verified externally,1130 /// forbidden from interacting with an ordinary user, since it ignores any safety mechanism.1131 #[pallet::call_index(16)]1132 #[pallet::weight(T::WeightInfo::force_remove_identities(1133 T::MaxAdditionalFields::get(), // X1134 identities.len() as u32, // N1135 ))]1136 pub fn force_remove_identities(1137 origin: OriginFor<T>,1138 identities: Vec<T::AccountId>,1139 ) -> DispatchResult {1140 T::ForceOrigin::ensure_origin(origin)?;1141 for identity in identities.clone() {1142 let (_, sub_ids) = <SubsOf<T>>::take(&identity);1143 <IdentityOf<T>>::remove(&identity);1144 for sub in sub_ids.iter() {1145 <SuperOf<T>>::remove(sub);1146 }1147 }1148 Self::deposit_event(Event::IdentitiesRemoved {1149 amount: identities.len() as u32,1150 });1151 Ok(())1152 }11531154 /// Set sub-identities to be associated with the provided accounts as force origin.1155 ///1156 /// This is not meant to operate in tandem with the identity pallet as is,1157 /// and be instead used to keep identities made and verified externally,1158 /// forbidden from interacting with an ordinary user, since it ignores any safety mechanism.1159 #[pallet::call_index(17)]1160 #[pallet::weight(T::WeightInfo::force_set_subs(1161 T::MaxSubAccounts::get(), // S1162 subs.len() as u32, // N1163 ))]1164 pub fn force_set_subs(1165 origin: OriginFor<T>,1166 subs: Vec<(1167 T::AccountId,1168 (1169 BalanceOf<T>,1170 BoundedVec<(T::AccountId, Data), T::MaxSubAccounts>,1171 ),1172 )>,1173 ) -> DispatchResult {1174 T::ForceOrigin::ensure_origin(origin)?;1175 for identity in subs.clone() {1176 let account = identity.0;1177 let (_, old_subs) = <SubsOf<T>>::get(&account);1178 for old_sub in old_subs {1179 <SuperOf<T>>::remove(old_sub);1180 }11811182 let mut ids = BoundedVec::<T::AccountId, T::MaxSubAccounts>::default();1183 for (id, name) in identity.1 .1 {1184 <SuperOf<T>>::insert(&id, (account.clone(), name));1185 ids.try_push(id)1186 .expect("subs length is less than T::MaxSubAccounts; qed");1187 }11881189 if ids.is_empty() {1190 <SubsOf<T>>::remove(&account);1191 } else {1192 <SubsOf<T>>::insert(account, (identity.1 .0, ids));1193 }1194 }1195 Self::deposit_event(Event::SubIdentitiesInserted {1196 amount: subs.len() as u32,1197 });1198 Ok(())1199 }1200 }1201}12021203impl<T: Config> Pallet<T> {1204 /// Get the subs of an account.1205 pub fn subs(who: &T::AccountId) -> Vec<(T::AccountId, Data)> {1206 SubsOf::<T>::get(who)1207 .11208 .into_iter()1209 .filter_map(|a| SuperOf::<T>::get(&a).map(|x| (a, x.1)))1210 .collect()1211 }12121213 /// Check if the account has corresponding identity information by the identity field.1214 pub fn has_identity(who: &T::AccountId, fields: u64) -> bool {1215 IdentityOf::<T>::get(who).map_or(false, |registration| {1216 (registration.info.fields().0.bits() & fields) == fields1217 })1218 }1219}1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617// Original license:18// This file is part of Substrate.1920// Copyright (C) 2019-2022 Parity Technologies (UK) Ltd.21// SPDX-License-Identifier: Apache-2.02223// Licensed under the Apache License, Version 2.0 (the "License");24// you may not use this file except in compliance with the License.25// You may obtain a copy of the License at26//27// http://www.apache.org/licenses/LICENSE-2.028//29// Unless required by applicable law or agreed to in writing, software30// distributed under the License is distributed on an "AS IS" BASIS,31// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.32// See the License for the specific language governing permissions and33// limitations under the License.3435//! # Identity Pallet36//!37//! - [`Config`]38//! - [`Call`]39//!40//! ## Overview41//!42//! A federated naming system, allowing for multiple registrars to be added from a specified origin.43//! Registrars can set a fee to provide identity-verification service. Anyone can put forth a44//! proposed identity for a fixed deposit and ask for review by any number of registrars (paying45//! each of their fees). Registrar judgements are given as an `enum`, allowing for sophisticated,46//! multi-tier opinions.47//!48//! Some judgements are identified as *sticky*, which means they cannot be removed except by49//! complete removal of the identity, or by the registrar. Judgements are allowed to represent a50//! portion of funds that have been reserved for the registrar.51//!52//! A super-user can remove accounts and in doing so, slash the deposit.53//!54//! All accounts may also have a limited number of sub-accounts which may be specified by the owner;55//! by definition, these have equivalent ownership and each has an individual name.56//!57//! The number of registrars should be limited, and the deposit made sufficiently large, to ensure58//! no state-bloat attack is viable.59//!60//! ## Interface61//!62//! ### Dispatchable Functions63//!64//! #### For general users65//! * `set_identity` - Set the associated identity of an account; a small deposit is reserved if not66//! already taken.67//! * `clear_identity` - Remove an account's associated identity; the deposit is returned.68//! * `request_judgement` - Request a judgement from a registrar, paying a fee.69//! * `cancel_request` - Cancel the previous request for a judgement.70//!71//! #### For general users with sub-identities72//! * `set_subs` - Set the sub-accounts of an identity.73//! * `add_sub` - Add a sub-identity to an identity.74//! * `remove_sub` - Remove a sub-identity of an identity.75//! * `rename_sub` - Rename a sub-identity of an identity.76//! * `quit_sub` - Remove a sub-identity of an identity (called by the sub-identity).77//!78//! #### For registrars79//! * `set_fee` - Set the fee required to be paid for a judgement to be given by the registrar.80//! * `set_fields` - Set the fields that a registrar cares about in their judgements.81//! * `provide_judgement` - Provide a judgement to an identity.82//!83//! #### For super-users84//! * `add_registrar` - Add a new registrar to the system.85//! * `kill_identity` - Forcibly remove the associated identity; the deposit is lost.86//!87//! [`Call`]: ./enum.Call.html88//! [`Config`]: ./trait.Config.html8990#![cfg_attr(not(feature = "std"), no_std)]9192mod benchmarking;93#[cfg(test)]94mod tests;95mod types;96pub mod weights;9798use frame_support::traits::{BalanceStatus, Currency, OnUnbalanced, ReservableCurrency};99use sp_runtime::traits::{AppendZerosInput, Hash, Saturating, StaticLookup, Zero};100use sp_std::prelude::*;101pub use weights::WeightInfo;102103pub use pallet::*;104pub use types::{105 Data, IdentityField, IdentityFields, IdentityInfo, Judgement, RegistrarIndex, RegistrarInfo,106 Registration,107};108109pub type BalanceOf<T> =110 <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;111type NegativeImbalanceOf<T> = <<T as Config>::Currency as Currency<112 <T as frame_system::Config>::AccountId,113>>::NegativeImbalance;114type AccountIdLookupOf<T> = <<T as frame_system::Config>::Lookup as StaticLookup>::Source;115116#[frame_support::pallet]117pub mod pallet {118 use super::*;119 use frame_support::pallet_prelude::*;120 use frame_system::pallet_prelude::*;121122 #[pallet::config]123 pub trait Config: frame_system::Config {124 /// The overarching event type.125 type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;126127 /// The currency trait.128 type Currency: ReservableCurrency<Self::AccountId>;129130 /// The amount held on deposit for a registered identity131 #[pallet::constant]132 type BasicDeposit: Get<BalanceOf<Self>>;133134 /// The amount held on deposit per additional field for a registered identity.135 #[pallet::constant]136 type FieldDeposit: Get<BalanceOf<Self>>;137138 /// The amount held on deposit for a registered subaccount. This should account for the fact139 /// that one storage item's value will increase by the size of an account ID, and there will140 /// be another trie item whose value is the size of an account ID plus 32 bytes.141 #[pallet::constant]142 type SubAccountDeposit: Get<BalanceOf<Self>>;143144 /// The maximum number of sub-accounts allowed per identified account.145 #[pallet::constant]146 type MaxSubAccounts: Get<u32>;147148 /// Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O149 /// required to access an identity, but can be pretty high.150 #[pallet::constant]151 type MaxAdditionalFields: Get<u32>;152153 /// Maxmimum number of registrars allowed in the system. Needed to bound the complexity154 /// of, e.g., updating judgements.155 #[pallet::constant]156 type MaxRegistrars: Get<u32>;157158 /// What to do with slashed funds.159 type Slashed: OnUnbalanced<NegativeImbalanceOf<Self>>;160161 /// The origin which may forcibly set or remove a name. Root can always do this.162 type ForceOrigin: EnsureOrigin<Self::RuntimeOrigin>;163164 /// The origin which may add or remove registrars. Root can always do this.165 type RegistrarOrigin: EnsureOrigin<Self::RuntimeOrigin>;166167 /// Weight information for extrinsics in this pallet.168 type WeightInfo: WeightInfo;169 }170171 #[pallet::pallet]172 pub struct Pallet<T>(_);173174 /// Information that is pertinent to identify the entity behind an account.175 ///176 /// TWOX-NOTE: OK ― `AccountId` is a secure hash.177 #[pallet::storage]178 #[pallet::getter(fn identity)]179 pub(super) type IdentityOf<T: Config> = StorageMap<180 _,181 Twox64Concat,182 T::AccountId,183 Registration<BalanceOf<T>, T::MaxRegistrars, T::MaxAdditionalFields>,184 OptionQuery,185 >;186187 /// The super-identity of an alternative "sub" identity together with its name, within that188 /// context. If the account is not some other account's sub-identity, then just `None`.189 #[pallet::storage]190 #[pallet::getter(fn super_of)]191 pub(super) type SuperOf<T: Config> =192 StorageMap<_, Blake2_128Concat, T::AccountId, (T::AccountId, Data), OptionQuery>;193194 /// Alternative "sub" identities of this account.195 ///196 /// The first item is the deposit, the second is a vector of the accounts.197 ///198 /// TWOX-NOTE: OK ― `AccountId` is a secure hash.199 #[pallet::storage]200 #[pallet::getter(fn subs_of)]201 pub(super) type SubsOf<T: Config> = StorageMap<202 _,203 Twox64Concat,204 T::AccountId,205 (BalanceOf<T>, BoundedVec<T::AccountId, T::MaxSubAccounts>),206 ValueQuery,207 >;208209 /// The set of registrars. Not expected to get very big as can only be added through a210 /// special origin (likely a council motion).211 ///212 /// The index into this can be cast to `RegistrarIndex` to get a valid value.213 #[pallet::storage]214 #[pallet::getter(fn registrars)]215 pub(super) type Registrars<T: Config> = StorageValue<216 _,217 BoundedVec<Option<RegistrarInfo<BalanceOf<T>, T::AccountId>>, T::MaxRegistrars>,218 ValueQuery,219 >;220221 #[pallet::error]222 pub enum Error<T> {223 /// Too many subs-accounts.224 TooManySubAccounts,225 /// Account isn't found.226 NotFound,227 /// Account isn't named.228 NotNamed,229 /// Empty index.230 EmptyIndex,231 /// Fee is changed.232 FeeChanged,233 /// No identity found.234 NoIdentity,235 /// Sticky judgement.236 StickyJudgement,237 /// Judgement given.238 JudgementGiven,239 /// Invalid judgement.240 InvalidJudgement,241 /// The index is invalid.242 InvalidIndex,243 /// The target is invalid.244 InvalidTarget,245 /// Too many additional fields.246 TooManyFields,247 /// Maximum amount of registrars reached. Cannot add any more.248 TooManyRegistrars,249 /// Account ID is already named.250 AlreadyClaimed,251 /// Sender is not a sub-account.252 NotSub,253 /// Sub-account isn't owned by sender.254 NotOwned,255 /// The provided judgement was for a different identity.256 JudgementForDifferentIdentity,257 /// Error that occurs when there is an issue paying for judgement.258 JudgementPaymentFailed,259 }260261 #[pallet::event]262 #[pallet::generate_deposit(pub(super) fn deposit_event)]263 pub enum Event<T: Config> {264 /// A name was set or reset (which will remove all judgements).265 IdentitySet { who: T::AccountId },266 /// A name was cleared, and the given balance returned.267 IdentityCleared {268 who: T::AccountId,269 deposit: BalanceOf<T>,270 },271 /// A name was removed and the given balance slashed.272 IdentityKilled {273 who: T::AccountId,274 deposit: BalanceOf<T>,275 },276 /// A number of identities and associated info were forcibly inserted.277 IdentitiesInserted { amount: u32 },278 /// A number of identities and all associated info were forcibly removed.279 IdentitiesRemoved { amount: u32 },280 /// A judgement was asked from a registrar.281 JudgementRequested {282 who: T::AccountId,283 registrar_index: RegistrarIndex,284 },285 /// A judgement request was retracted.286 JudgementUnrequested {287 who: T::AccountId,288 registrar_index: RegistrarIndex,289 },290 /// A judgement was given by a registrar.291 JudgementGiven {292 target: T::AccountId,293 registrar_index: RegistrarIndex,294 },295 /// A registrar was added.296 RegistrarAdded { registrar_index: RegistrarIndex },297 /// A sub-identity was added to an identity and the deposit paid.298 SubIdentityAdded {299 sub: T::AccountId,300 main: T::AccountId,301 deposit: BalanceOf<T>,302 },303 /// A sub-identity was removed from an identity and the deposit freed.304 SubIdentityRemoved {305 sub: T::AccountId,306 main: T::AccountId,307 deposit: BalanceOf<T>,308 },309 /// A sub-identity was cleared, and the given deposit repatriated from the310 /// main identity account to the sub-identity account.311 SubIdentityRevoked {312 sub: T::AccountId,313 main: T::AccountId,314 deposit: BalanceOf<T>,315 },316 /// A number of identities were forcibly updated with new sub-identities.317 SubIdentitiesInserted { amount: u32 },318 }319320 #[pallet::call]321 /// Identity pallet declaration.322 impl<T: Config> Pallet<T> {323 /// Add a registrar to the system.324 ///325 /// The dispatch origin for this call must be `T::RegistrarOrigin`.326 ///327 /// - `account`: the account of the registrar.328 ///329 /// Emits `RegistrarAdded` if successful.330 ///331 /// # <weight>332 /// - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).333 /// - One storage mutation (codec `O(R)`).334 /// - One event.335 /// # </weight>336 #[pallet::call_index(0)]337 #[pallet::weight(T::WeightInfo::add_registrar(T::MaxRegistrars::get()))]338 pub fn add_registrar(339 origin: OriginFor<T>,340 account: AccountIdLookupOf<T>,341 ) -> DispatchResultWithPostInfo {342 T::RegistrarOrigin::ensure_origin(origin)?;343 let account = T::Lookup::lookup(account)?;344345 let (i, registrar_count) = <Registrars<T>>::try_mutate(346 |registrars| -> Result<(RegistrarIndex, usize), DispatchError> {347 registrars348 .try_push(Some(RegistrarInfo {349 account,350 fee: Zero::zero(),351 fields: Default::default(),352 }))353 .map_err(|_| Error::<T>::TooManyRegistrars)?;354 Ok(((registrars.len() - 1) as RegistrarIndex, registrars.len()))355 },356 )?;357358 Self::deposit_event(Event::RegistrarAdded { registrar_index: i });359360 Ok(Some(T::WeightInfo::add_registrar(registrar_count as u32)).into())361 }362363 /// Set an account's identity information and reserve the appropriate deposit.364 ///365 /// If the account already has identity information, the deposit is taken as part payment366 /// for the new deposit.367 ///368 /// The dispatch origin for this call must be _Signed_.369 ///370 /// - `info`: The identity information.371 ///372 /// Emits `IdentitySet` if successful.373 ///374 /// # <weight>375 /// - `O(X + X' + R)`376 /// - where `X` additional-field-count (deposit-bounded and code-bounded)377 /// - where `R` judgements-count (registrar-count-bounded)378 /// - One balance reserve operation.379 /// - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).380 /// - One event.381 /// # </weight>382 #[pallet::call_index(1)]383 #[pallet::weight( T::WeightInfo::set_identity(384 T::MaxRegistrars::get(), // R385 T::MaxAdditionalFields::get(), // X386 ))]387 pub fn set_identity(388 origin: OriginFor<T>,389 info: Box<IdentityInfo<T::MaxAdditionalFields>>,390 ) -> DispatchResultWithPostInfo {391 let sender = ensure_signed(origin)?;392 let extra_fields = info.additional.len() as u32;393 ensure!(394 extra_fields <= T::MaxAdditionalFields::get(),395 Error::<T>::TooManyFields396 );397 let fd = <BalanceOf<T>>::from(extra_fields) * T::FieldDeposit::get();398399 let mut id = match <IdentityOf<T>>::get(&sender) {400 Some(mut id) => {401 // Only keep non-positive judgements.402 id.judgements.retain(|j| j.1.is_sticky());403 id.info = *info;404 id405 }406 None => Registration {407 info: *info,408 judgements: BoundedVec::default(),409 deposit: Zero::zero(),410 },411 };412413 let old_deposit = id.deposit;414 id.deposit = T::BasicDeposit::get() + fd;415 if id.deposit > old_deposit {416 T::Currency::reserve(&sender, id.deposit - old_deposit)?;417 }418 if old_deposit > id.deposit {419 let err_amount = T::Currency::unreserve(&sender, old_deposit - id.deposit);420 debug_assert!(err_amount.is_zero());421 }422423 let judgements = id.judgements.len();424 <IdentityOf<T>>::insert(&sender, id);425 Self::deposit_event(Event::IdentitySet { who: sender });426427 Ok(Some(T::WeightInfo::set_identity(428 judgements as u32, // R429 extra_fields, // X430 ))431 .into())432 }433434 /// Set the sub-accounts of the sender.435 ///436 /// Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned437 /// and an amount `SubAccountDeposit` will be reserved for each item in `subs`.438 ///439 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered440 /// identity.441 ///442 /// - `subs`: The identity's (new) sub-accounts.443 ///444 /// # <weight>445 /// - `O(P + S)`446 /// - where `P` old-subs-count (hard- and deposit-bounded).447 /// - where `S` subs-count (hard- and deposit-bounded).448 /// - At most one balance operations.449 /// - DB:450 /// - `P + S` storage mutations (codec complexity `O(1)`)451 /// - One storage read (codec complexity `O(P)`).452 /// - One storage write (codec complexity `O(S)`).453 /// - One storage-exists (`IdentityOf::contains_key`).454 /// # </weight>455 // TODO: This whole extrinsic screams "not optimized". For example we could456 // filter any overlap between new and old subs, and avoid reading/writing457 // to those values... We could also ideally avoid needing to write to458 // N storage items for N sub accounts. Right now the weight on this function459 // is a large overestimate due to the fact that it could potentially write460 // to 2 x T::MaxSubAccounts::get().461 #[pallet::call_index(2)]462 #[pallet::weight(T::WeightInfo::set_subs_old(T::MaxSubAccounts::get()) // P: Assume max sub accounts removed.463 .saturating_add(T::WeightInfo::set_subs_new(subs.len() as u32)) // S: Assume all subs are new.464 )]465 pub fn set_subs(466 origin: OriginFor<T>,467 subs: Vec<(T::AccountId, Data)>,468 ) -> DispatchResultWithPostInfo {469 let sender = ensure_signed(origin)?;470 ensure!(<IdentityOf<T>>::contains_key(&sender), Error::<T>::NotFound);471 ensure!(472 subs.len() <= T::MaxSubAccounts::get() as usize,473 Error::<T>::TooManySubAccounts474 );475476 let (old_deposit, old_ids) = <SubsOf<T>>::get(&sender);477 let new_deposit = T::SubAccountDeposit::get() * <BalanceOf<T>>::from(subs.len() as u32);478479 let not_other_sub = subs480 .iter()481 .filter_map(|i| SuperOf::<T>::get(&i.0))482 .all(|i| i.0 == sender);483 ensure!(not_other_sub, Error::<T>::AlreadyClaimed);484485 if old_deposit < new_deposit {486 T::Currency::reserve(&sender, new_deposit - old_deposit)?;487 } else if old_deposit > new_deposit {488 let err_amount = T::Currency::unreserve(&sender, old_deposit - new_deposit);489 debug_assert!(err_amount.is_zero());490 }491 // do nothing if they're equal.492493 for s in old_ids.iter() {494 <SuperOf<T>>::remove(s);495 }496 let mut ids = BoundedVec::<T::AccountId, T::MaxSubAccounts>::default();497 for (id, name) in subs {498 <SuperOf<T>>::insert(&id, (sender.clone(), name));499 ids.try_push(id)500 .expect("subs length is less than T::MaxSubAccounts; qed");501 }502 let new_subs = ids.len();503504 if ids.is_empty() {505 <SubsOf<T>>::remove(&sender);506 } else {507 <SubsOf<T>>::insert(&sender, (new_deposit, ids));508 }509510 Ok(Some(511 T::WeightInfo::set_subs_old(old_ids.len() as u32) // P: Real number of old accounts removed.512 // S: New subs added513 .saturating_add(T::WeightInfo::set_subs_new(new_subs as u32)),514 )515 .into())516 }517518 /// Clear an account's identity info and all sub-accounts and return all deposits.519 ///520 /// Payment: All reserved balances on the account are returned.521 ///522 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered523 /// identity.524 ///525 /// Emits `IdentityCleared` if successful.526 ///527 /// # <weight>528 /// - `O(R + S + X)`529 /// - where `R` registrar-count (governance-bounded).530 /// - where `S` subs-count (hard- and deposit-bounded).531 /// - where `X` additional-field-count (deposit-bounded and code-bounded).532 /// - One balance-unreserve operation.533 /// - `2` storage reads and `S + 2` storage deletions.534 /// - One event.535 /// # </weight>536 #[pallet::call_index(3)]537 #[pallet::weight(T::WeightInfo::clear_identity(538 T::MaxRegistrars::get(), // R539 T::MaxSubAccounts::get(), // S540 T::MaxAdditionalFields::get(), // X541 ))]542 pub fn clear_identity(origin: OriginFor<T>) -> DispatchResultWithPostInfo {543 let sender = ensure_signed(origin)?;544545 let (subs_deposit, sub_ids) = <SubsOf<T>>::take(&sender);546 let id = <IdentityOf<T>>::take(&sender).ok_or(Error::<T>::NotNamed)?;547 let deposit = id.total_deposit() + subs_deposit;548 for sub in sub_ids.iter() {549 <SuperOf<T>>::remove(sub);550 }551552 let err_amount = T::Currency::unreserve(&sender, deposit);553 debug_assert!(err_amount.is_zero());554555 Self::deposit_event(Event::IdentityCleared {556 who: sender,557 deposit,558 });559560 Ok(Some(T::WeightInfo::clear_identity(561 id.judgements.len() as u32, // R562 sub_ids.len() as u32, // S563 id.info.additional.len() as u32, // X564 ))565 .into())566 }567568 /// Request a judgement from a registrar.569 ///570 /// Payment: At most `max_fee` will be reserved for payment to the registrar if judgement571 /// given.572 ///573 /// The dispatch origin for this call must be _Signed_ and the sender must have a574 /// registered identity.575 ///576 /// - `reg_index`: The index of the registrar whose judgement is requested.577 /// - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:578 ///579 /// ```nocompile580 /// Self::registrars().get(reg_index).unwrap().fee581 /// ```582 ///583 /// Emits `JudgementRequested` if successful.584 ///585 /// # <weight>586 /// - `O(R + X)`.587 /// - One balance-reserve operation.588 /// - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.589 /// - One event.590 /// # </weight>591 #[pallet::call_index(4)]592 #[pallet::weight(T::WeightInfo::request_judgement(593 T::MaxRegistrars::get(), // R594 T::MaxAdditionalFields::get(), // X595 ))]596 pub fn request_judgement(597 origin: OriginFor<T>,598 #[pallet::compact] reg_index: RegistrarIndex,599 #[pallet::compact] max_fee: BalanceOf<T>,600 ) -> DispatchResultWithPostInfo {601 let sender = ensure_signed(origin)?;602 let registrars = <Registrars<T>>::get();603 let registrar = registrars604 .get(reg_index as usize)605 .and_then(Option::as_ref)606 .ok_or(Error::<T>::EmptyIndex)?;607 ensure!(max_fee >= registrar.fee, Error::<T>::FeeChanged);608 let mut id = <IdentityOf<T>>::get(&sender).ok_or(Error::<T>::NoIdentity)?;609610 let item = (reg_index, Judgement::FeePaid(registrar.fee));611 match id.judgements.binary_search_by_key(®_index, |x| x.0) {612 Ok(i) => {613 if id.judgements[i].1.is_sticky() {614 return Err(Error::<T>::StickyJudgement.into());615 } else {616 id.judgements[i] = item617 }618 }619 Err(i) => id620 .judgements621 .try_insert(i, item)622 .map_err(|_| Error::<T>::TooManyRegistrars)?,623 }624625 T::Currency::reserve(&sender, registrar.fee)?;626627 let judgements = id.judgements.len();628 let extra_fields = id.info.additional.len();629 <IdentityOf<T>>::insert(&sender, id);630631 Self::deposit_event(Event::JudgementRequested {632 who: sender,633 registrar_index: reg_index,634 });635636 Ok(Some(T::WeightInfo::request_judgement(637 judgements as u32,638 extra_fields as u32,639 ))640 .into())641 }642643 /// Cancel a previous request.644 ///645 /// Payment: A previously reserved deposit is returned on success.646 ///647 /// The dispatch origin for this call must be _Signed_ and the sender must have a648 /// registered identity.649 ///650 /// - `reg_index`: The index of the registrar whose judgement is no longer requested.651 ///652 /// Emits `JudgementUnrequested` if successful.653 ///654 /// # <weight>655 /// - `O(R + X)`.656 /// - One balance-reserve operation.657 /// - One storage mutation `O(R + X)`.658 /// - One event659 /// # </weight>660 #[pallet::call_index(5)]661 #[pallet::weight(T::WeightInfo::cancel_request(662 T::MaxRegistrars::get(), // R663 T::MaxAdditionalFields::get(), // X664 ))]665 pub fn cancel_request(666 origin: OriginFor<T>,667 reg_index: RegistrarIndex,668 ) -> DispatchResultWithPostInfo {669 let sender = ensure_signed(origin)?;670 let mut id = <IdentityOf<T>>::get(&sender).ok_or(Error::<T>::NoIdentity)?;671672 let pos = id673 .judgements674 .binary_search_by_key(®_index, |x| x.0)675 .map_err(|_| Error::<T>::NotFound)?;676 let fee = if let Judgement::FeePaid(fee) = id.judgements.remove(pos).1 {677 fee678 } else {679 return Err(Error::<T>::JudgementGiven.into());680 };681682 let err_amount = T::Currency::unreserve(&sender, fee);683 debug_assert!(err_amount.is_zero());684 let judgements = id.judgements.len();685 let extra_fields = id.info.additional.len();686 <IdentityOf<T>>::insert(&sender, id);687688 Self::deposit_event(Event::JudgementUnrequested {689 who: sender,690 registrar_index: reg_index,691 });692693 Ok(Some(T::WeightInfo::cancel_request(694 judgements as u32,695 extra_fields as u32,696 ))697 .into())698 }699700 /// Set the fee required for a judgement to be requested from a registrar.701 ///702 /// The dispatch origin for this call must be _Signed_ and the sender must be the account703 /// of the registrar whose index is `index`.704 ///705 /// - `index`: the index of the registrar whose fee is to be set.706 /// - `fee`: the new fee.707 ///708 /// # <weight>709 /// - `O(R)`.710 /// - One storage mutation `O(R)`.711 /// - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)712 /// # </weight>713 #[pallet::call_index(6)]714 #[pallet::weight(T::WeightInfo::set_fee(T::MaxRegistrars::get()))] // R715 pub fn set_fee(716 origin: OriginFor<T>,717 #[pallet::compact] index: RegistrarIndex,718 #[pallet::compact] fee: BalanceOf<T>,719 ) -> DispatchResultWithPostInfo {720 let who = ensure_signed(origin)?;721722 let registrars = <Registrars<T>>::mutate(|rs| -> Result<usize, DispatchError> {723 rs.get_mut(index as usize)724 .and_then(|x| x.as_mut())725 .and_then(|r| {726 if r.account == who {727 r.fee = fee;728 Some(())729 } else {730 None731 }732 })733 .ok_or_else(|| DispatchError::from(Error::<T>::InvalidIndex))?;734 Ok(rs.len())735 })?;736 Ok(Some(T::WeightInfo::set_fee(registrars as u32)).into()) // R737 }738739 /// Change the account associated with a registrar.740 ///741 /// The dispatch origin for this call must be _Signed_ and the sender must be the account742 /// of the registrar whose index is `index`.743 ///744 /// - `index`: the index of the registrar whose fee is to be set.745 /// - `new`: the new account ID.746 ///747 /// # <weight>748 /// - `O(R)`.749 /// - One storage mutation `O(R)`.750 /// - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)751 /// # </weight>752 #[pallet::call_index(7)]753 #[pallet::weight(T::WeightInfo::set_account_id(T::MaxRegistrars::get()))] // R754 pub fn set_account_id(755 origin: OriginFor<T>,756 #[pallet::compact] index: RegistrarIndex,757 new: AccountIdLookupOf<T>,758 ) -> DispatchResultWithPostInfo {759 let who = ensure_signed(origin)?;760 let new = T::Lookup::lookup(new)?;761762 let registrars = <Registrars<T>>::mutate(|rs| -> Result<usize, DispatchError> {763 rs.get_mut(index as usize)764 .and_then(|x| x.as_mut())765 .and_then(|r| {766 if r.account == who {767 r.account = new;768 Some(())769 } else {770 None771 }772 })773 .ok_or_else(|| DispatchError::from(Error::<T>::InvalidIndex))?;774 Ok(rs.len())775 })?;776 Ok(Some(T::WeightInfo::set_account_id(registrars as u32)).into()) // R777 }778779 /// Set the field information for a registrar.780 ///781 /// The dispatch origin for this call must be _Signed_ and the sender must be the account782 /// of the registrar whose index is `index`.783 ///784 /// - `index`: the index of the registrar whose fee is to be set.785 /// - `fields`: the fields that the registrar concerns themselves with.786 ///787 /// # <weight>788 /// - `O(R)`.789 /// - One storage mutation `O(R)`.790 /// - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)791 /// # </weight>792 #[pallet::call_index(8)]793 #[pallet::weight(T::WeightInfo::set_fields(T::MaxRegistrars::get()))] // R794 pub fn set_fields(795 origin: OriginFor<T>,796 #[pallet::compact] index: RegistrarIndex,797 fields: IdentityFields,798 ) -> DispatchResultWithPostInfo {799 let who = ensure_signed(origin)?;800801 let registrars = <Registrars<T>>::mutate(|rs| -> Result<usize, DispatchError> {802 rs.get_mut(index as usize)803 .and_then(|x| x.as_mut())804 .and_then(|r| {805 if r.account == who {806 r.fields = fields;807 Some(())808 } else {809 None810 }811 })812 .ok_or_else(|| DispatchError::from(Error::<T>::InvalidIndex))?;813 Ok(rs.len())814 })?;815 Ok(Some(T::WeightInfo::set_fields(816 registrars as u32, // R817 ))818 .into())819 }820821 /// Provide a judgement for an account's identity.822 ///823 /// The dispatch origin for this call must be _Signed_ and the sender must be the account824 /// of the registrar whose index is `reg_index`.825 ///826 /// - `reg_index`: the index of the registrar whose judgement is being made.827 /// - `target`: the account whose identity the judgement is upon. This must be an account828 /// with a registered identity.829 /// - `judgement`: the judgement of the registrar of index `reg_index` about `target`.830 /// - `identity`: The hash of the [`IdentityInfo`] for that the judgement is provided.831 ///832 /// Emits `JudgementGiven` if successful.833 ///834 /// # <weight>835 /// - `O(R + X)`.836 /// - One balance-transfer operation.837 /// - Up to one account-lookup operation.838 /// - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.839 /// - One event.840 /// # </weight>841 #[pallet::call_index(9)]842 #[pallet::weight(T::WeightInfo::provide_judgement(843 T::MaxRegistrars::get(), // R844 T::MaxAdditionalFields::get(), // X845 ))]846 pub fn provide_judgement(847 origin: OriginFor<T>,848 #[pallet::compact] reg_index: RegistrarIndex,849 target: AccountIdLookupOf<T>,850 judgement: Judgement<BalanceOf<T>>,851 identity: T::Hash,852 ) -> DispatchResultWithPostInfo {853 let sender = ensure_signed(origin)?;854 let target = T::Lookup::lookup(target)?;855 ensure!(!judgement.has_deposit(), Error::<T>::InvalidJudgement);856 <Registrars<T>>::get()857 .get(reg_index as usize)858 .and_then(Option::as_ref)859 .filter(|r| r.account == sender)860 .ok_or(Error::<T>::InvalidIndex)?;861 let mut id = <IdentityOf<T>>::get(&target).ok_or(Error::<T>::InvalidTarget)?;862863 if T::Hashing::hash_of(&id.info) != identity {864 return Err(Error::<T>::JudgementForDifferentIdentity.into());865 }866867 let item = (reg_index, judgement);868 match id.judgements.binary_search_by_key(®_index, |x| x.0) {869 Ok(position) => {870 if let Judgement::FeePaid(fee) = id.judgements[position].1 {871 T::Currency::repatriate_reserved(872 &target,873 &sender,874 fee,875 BalanceStatus::Free,876 )877 .map_err(|_| Error::<T>::JudgementPaymentFailed)?;878 }879 id.judgements[position] = item880 }881 Err(position) => id882 .judgements883 .try_insert(position, item)884 .map_err(|_| Error::<T>::TooManyRegistrars)?,885 }886887 let judgements = id.judgements.len();888 let extra_fields = id.info.additional.len();889 <IdentityOf<T>>::insert(&target, id);890 Self::deposit_event(Event::JudgementGiven {891 target,892 registrar_index: reg_index,893 });894895 Ok(Some(T::WeightInfo::provide_judgement(896 judgements as u32,897 extra_fields as u32,898 ))899 .into())900 }901902 /// Remove an account's identity and sub-account information and slash the deposits.903 ///904 /// Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by905 /// `Slash`. Verification request deposits are not returned; they should be cancelled906 /// manually using `cancel_request`.907 ///908 /// The dispatch origin for this call must match `T::ForceOrigin`.909 ///910 /// - `target`: the account whose identity the judgement is upon. This must be an account911 /// with a registered identity.912 ///913 /// Emits `IdentityKilled` if successful.914 ///915 /// # <weight>916 /// - `O(R + S + X)`.917 /// - One balance-reserve operation.918 /// - `S + 2` storage mutations.919 /// - One event.920 /// # </weight>921 #[pallet::call_index(10)]922 #[pallet::weight(T::WeightInfo::kill_identity(923 T::MaxRegistrars::get(), // R924 T::MaxSubAccounts::get(), // S925 T::MaxAdditionalFields::get(), // X926 ))]927 pub fn kill_identity(928 origin: OriginFor<T>,929 target: AccountIdLookupOf<T>,930 ) -> DispatchResultWithPostInfo {931 T::ForceOrigin::ensure_origin(origin)?;932933 // Figure out who we're meant to be clearing.934 let target = T::Lookup::lookup(target)?;935 // Grab their deposit (and check that they have one).936 let (subs_deposit, sub_ids) = <SubsOf<T>>::take(&target);937 let id = <IdentityOf<T>>::take(&target).ok_or(Error::<T>::NotNamed)?;938 let deposit = id.total_deposit() + subs_deposit;939 for sub in sub_ids.iter() {940 <SuperOf<T>>::remove(sub);941 }942 // Slash their deposit from them.943 T::Slashed::on_unbalanced(T::Currency::slash_reserved(&target, deposit).0);944945 Self::deposit_event(Event::IdentityKilled {946 who: target,947 deposit,948 });949950 Ok(Some(T::WeightInfo::kill_identity(951 id.judgements.len() as u32, // R952 sub_ids.len() as u32, // S953 id.info.additional.len() as u32, // X954 ))955 .into())956 }957958 /// Add the given account to the sender's subs.959 ///960 /// Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated961 /// to the sender.962 ///963 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered964 /// sub identity of `sub`.965 #[pallet::call_index(11)]966 #[pallet::weight(T::WeightInfo::add_sub(T::MaxSubAccounts::get()))]967 pub fn add_sub(968 origin: OriginFor<T>,969 sub: AccountIdLookupOf<T>,970 data: Data,971 ) -> DispatchResult {972 let sender = ensure_signed(origin)?;973 let sub = T::Lookup::lookup(sub)?;974 ensure!(975 IdentityOf::<T>::contains_key(&sender),976 Error::<T>::NoIdentity977 );978979 // Check if it's already claimed as sub-identity.980 ensure!(981 !SuperOf::<T>::contains_key(&sub),982 Error::<T>::AlreadyClaimed983 );984985 SubsOf::<T>::try_mutate(&sender, |(ref mut subs_deposit, ref mut sub_ids)| {986 // Ensure there is space and that the deposit is paid.987 ensure!(988 sub_ids.len() < T::MaxSubAccounts::get() as usize,989 Error::<T>::TooManySubAccounts990 );991 let deposit = T::SubAccountDeposit::get();992 T::Currency::reserve(&sender, deposit)?;993994 SuperOf::<T>::insert(&sub, (sender.clone(), data));995 sub_ids996 .try_push(sub.clone())997 .expect("sub ids length checked above; qed");998 *subs_deposit = subs_deposit.saturating_add(deposit);9991000 Self::deposit_event(Event::SubIdentityAdded {1001 sub,1002 main: sender.clone(),1003 deposit,1004 });1005 Ok(())1006 })1007 }10081009 /// Alter the associated name of the given sub-account.1010 ///1011 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered1012 /// sub identity of `sub`.1013 #[pallet::call_index(12)]1014 #[pallet::weight(T::WeightInfo::rename_sub(T::MaxSubAccounts::get()))]1015 pub fn rename_sub(1016 origin: OriginFor<T>,1017 sub: AccountIdLookupOf<T>,1018 data: Data,1019 ) -> DispatchResult {1020 let sender = ensure_signed(origin)?;1021 let sub = T::Lookup::lookup(sub)?;1022 ensure!(1023 IdentityOf::<T>::contains_key(&sender),1024 Error::<T>::NoIdentity1025 );1026 ensure!(1027 SuperOf::<T>::get(&sub).map_or(false, |x| x.0 == sender),1028 Error::<T>::NotOwned1029 );1030 SuperOf::<T>::insert(&sub, (sender, data));1031 Ok(())1032 }10331034 /// Remove the given account from the sender's subs.1035 ///1036 /// Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated1037 /// to the sender.1038 ///1039 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered1040 /// sub identity of `sub`.1041 #[pallet::call_index(13)]1042 #[pallet::weight(T::WeightInfo::remove_sub(T::MaxSubAccounts::get()))]1043 pub fn remove_sub(origin: OriginFor<T>, sub: AccountIdLookupOf<T>) -> DispatchResult {1044 let sender = ensure_signed(origin)?;1045 ensure!(1046 IdentityOf::<T>::contains_key(&sender),1047 Error::<T>::NoIdentity1048 );1049 let sub = T::Lookup::lookup(sub)?;1050 let (sup, _) = SuperOf::<T>::get(&sub).ok_or(Error::<T>::NotSub)?;1051 ensure!(sup == sender, Error::<T>::NotOwned);1052 SuperOf::<T>::remove(&sub);1053 SubsOf::<T>::mutate(&sup, |(ref mut subs_deposit, ref mut sub_ids)| {1054 sub_ids.retain(|x| x != &sub);1055 let deposit = T::SubAccountDeposit::get().min(*subs_deposit);1056 *subs_deposit -= deposit;1057 let err_amount = T::Currency::unreserve(&sender, deposit);1058 debug_assert!(err_amount.is_zero());1059 Self::deposit_event(Event::SubIdentityRemoved {1060 sub,1061 main: sender,1062 deposit,1063 });1064 });1065 Ok(())1066 }10671068 /// Remove the sender as a sub-account.1069 ///1070 /// Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated1071 /// to the sender (*not* the original depositor).1072 ///1073 /// The dispatch origin for this call must be _Signed_ and the sender must have a registered1074 /// super-identity.1075 ///1076 /// NOTE: This should not normally be used, but is provided in the case that the non-1077 /// controller of an account is maliciously registered as a sub-account.1078 #[pallet::call_index(14)]1079 #[pallet::weight(T::WeightInfo::quit_sub(T::MaxSubAccounts::get()))]1080 pub fn quit_sub(origin: OriginFor<T>) -> DispatchResult {1081 let sender = ensure_signed(origin)?;1082 let (sup, _) = SuperOf::<T>::take(&sender).ok_or(Error::<T>::NotSub)?;1083 SubsOf::<T>::mutate(&sup, |(ref mut subs_deposit, ref mut sub_ids)| {1084 sub_ids.retain(|x| x != &sender);1085 let deposit = T::SubAccountDeposit::get().min(*subs_deposit);1086 *subs_deposit -= deposit;1087 let _ =1088 T::Currency::repatriate_reserved(&sup, &sender, deposit, BalanceStatus::Free);1089 Self::deposit_event(Event::SubIdentityRevoked {1090 sub: sender,1091 main: sup.clone(),1092 deposit,1093 });1094 });1095 Ok(())1096 }10971098 /// Set identities to be associated with the provided accounts as force origin.1099 ///1100 /// This is not meant to operate in tandem with the identity pallet as is,1101 /// and be instead used to keep identities made and verified externally,1102 /// forbidden from interacting with an ordinary user, since it ignores any safety mechanism.1103 #[pallet::call_index(15)]1104 #[pallet::weight(T::WeightInfo::force_insert_identities(1105 T::MaxAdditionalFields::get(), // X1106 identities.len() as u32, // N1107 ))]1108 pub fn force_insert_identities(1109 origin: OriginFor<T>,1110 identities: Vec<(1111 T::AccountId,1112 Registration<BalanceOf<T>, T::MaxRegistrars, T::MaxAdditionalFields>,1113 )>,1114 ) -> DispatchResult {1115 T::ForceOrigin::ensure_origin(origin)?;1116 for identity in identities.clone() {1117 IdentityOf::<T>::insert(identity.0, identity.1);1118 }1119 Self::deposit_event(Event::IdentitiesInserted {1120 amount: identities.len() as u32,1121 });1122 Ok(())1123 }11241125 /// Remove identities associated with the provided accounts as force origin.1126 ///1127 /// This is not meant to operate in tandem with the identity pallet as is,1128 /// and be instead used to keep identities made and verified externally,1129 /// forbidden from interacting with an ordinary user, since it ignores any safety mechanism.1130 #[pallet::call_index(16)]1131 #[pallet::weight(T::WeightInfo::force_remove_identities(1132 T::MaxAdditionalFields::get(), // X1133 identities.len() as u32, // N1134 ))]1135 pub fn force_remove_identities(1136 origin: OriginFor<T>,1137 identities: Vec<T::AccountId>,1138 ) -> DispatchResult {1139 T::ForceOrigin::ensure_origin(origin)?;1140 for identity in identities.clone() {1141 let (_, sub_ids) = <SubsOf<T>>::take(&identity);1142 <IdentityOf<T>>::remove(&identity);1143 for sub in sub_ids.iter() {1144 <SuperOf<T>>::remove(sub);1145 }1146 }1147 Self::deposit_event(Event::IdentitiesRemoved {1148 amount: identities.len() as u32,1149 });1150 Ok(())1151 }11521153 /// Set sub-identities to be associated with the provided accounts as force origin.1154 ///1155 /// This is not meant to operate in tandem with the identity pallet as is,1156 /// and be instead used to keep identities made and verified externally,1157 /// forbidden from interacting with an ordinary user, since it ignores any safety mechanism.1158 #[pallet::call_index(17)]1159 #[pallet::weight(T::WeightInfo::force_set_subs(1160 T::MaxSubAccounts::get(), // S1161 subs.len() as u32, // N1162 ))]1163 pub fn force_set_subs(1164 origin: OriginFor<T>,1165 subs: Vec<(1166 T::AccountId,1167 (1168 BalanceOf<T>,1169 BoundedVec<(T::AccountId, Data), T::MaxSubAccounts>,1170 ),1171 )>,1172 ) -> DispatchResult {1173 T::ForceOrigin::ensure_origin(origin)?;1174 for identity in subs.clone() {1175 let account = identity.0;1176 let (_, old_subs) = <SubsOf<T>>::get(&account);1177 for old_sub in old_subs {1178 <SuperOf<T>>::remove(old_sub);1179 }11801181 let mut ids = BoundedVec::<T::AccountId, T::MaxSubAccounts>::default();1182 for (id, name) in identity.1 .1 {1183 <SuperOf<T>>::insert(&id, (account.clone(), name));1184 ids.try_push(id)1185 .expect("subs length is less than T::MaxSubAccounts; qed");1186 }11871188 if ids.is_empty() {1189 <SubsOf<T>>::remove(&account);1190 } else {1191 <SubsOf<T>>::insert(account, (identity.1 .0, ids));1192 }1193 }1194 Self::deposit_event(Event::SubIdentitiesInserted {1195 amount: subs.len() as u32,1196 });1197 Ok(())1198 }1199 }1200}12011202impl<T: Config> Pallet<T> {1203 /// Get the subs of an account.1204 pub fn subs(who: &T::AccountId) -> Vec<(T::AccountId, Data)> {1205 SubsOf::<T>::get(who)1206 .11207 .into_iter()1208 .filter_map(|a| SuperOf::<T>::get(&a).map(|x| (a, x.1)))1209 .collect()1210 }12111212 /// Check if the account has corresponding identity information by the identity field.1213 pub fn has_identity(who: &T::AccountId, fields: u64) -> bool {1214 IdentityOf::<T>::get(who).map_or(false, |registration| {1215 (registration.info.fields().0.bits() & fields) == fields1216 })1217 }1218}pallets/inflation/src/lib.rsdiffbeforeafterboth--- a/pallets/inflation/src/lib.rs
+++ b/pallets/inflation/src/lib.rs
@@ -78,7 +78,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// starting year total issuance
pallets/maintenance/src/lib.rsdiffbeforeafterboth--- a/pallets/maintenance/src/lib.rs
+++ b/pallets/maintenance/src/lib.rs
@@ -66,7 +66,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::storage]
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -175,7 +175,6 @@
#[pallet::pallet]
#[pallet::storage_version(STORAGE_VERSION)]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// Total amount of minted tokens in a collection.
pallets/refungible/src/lib.rsdiffbeforeafterboth--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -158,7 +158,6 @@
#[pallet::pallet]
#[pallet::storage_version(STORAGE_VERSION)]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
/// Total amount of minted tokens in a collection.
pallets/scheduler-v2/Cargo.tomldiffbeforeafterboth--- a/pallets/scheduler-v2/Cargo.toml
+++ b/pallets/scheduler-v2/Cargo.toml
@@ -9,6 +9,9 @@
repository = "https://github.com/UniqueNetwork/unique-chain"
version = "0.1.0"
+[package.metadata.deppatcher.originals.dev-dependencies]
+substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+
[dependencies]
# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.
codec = { workspace = true, package = "parity-scale-codec" }
@@ -25,7 +28,7 @@
[dev-dependencies]
pallet-preimage = { workspace = true }
-substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
[features]
default = ["std"]
pallets/scheduler-v2/src/lib.rsdiffbeforeafterboth--- a/pallets/scheduler-v2/src/lib.rs
+++ b/pallets/scheduler-v2/src/lib.rs
@@ -460,7 +460,6 @@
const STORAGE_VERSION: StorageVersion = StorageVersion::new(0);
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
#[pallet::storage_version(STORAGE_VERSION)]
pub struct Pallet<T>(_);
pallets/scheduler-v2/src/mock.rsdiffbeforeafterboth--- a/pallets/scheduler-v2/src/mock.rs
+++ b/pallets/scheduler-v2/src/mock.rs
@@ -65,7 +65,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(PhantomData<T>);
#[pallet::hooks]
pallets/unique/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/unique/src/benchmarking.rs
+++ b/pallets/unique/src/benchmarking.rs
@@ -26,6 +26,11 @@
Config as CommonConfig,
benchmarking::{create_data, create_u16_data},
};
+use up_data_structs::{
+ CollectionId, CollectionMode, MAX_COLLECTION_NAME_LENGTH, MAX_TOKEN_PREFIX_LENGTH,
+ MAX_COLLECTION_DESCRIPTION_LENGTH, CollectionLimits,
+};
+use pallet_common::erc::CrossAccountId;
const SEED: u32 = 1;
@@ -34,9 +39,9 @@
mode: CollectionMode,
) -> Result<CollectionId, DispatchError> {
<T as CommonConfig>::Currency::deposit_creating(&owner, T::CollectionCreationPrice::get());
- let col_name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();
- let col_desc = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();
- let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();
+ let col_name = create_u16_data::<{ MAX_COLLECTION_NAME_LENGTH }>();
+ let col_desc = create_u16_data::<{ MAX_COLLECTION_DESCRIPTION_LENGTH }>();
+ let token_prefix = create_data::<{ MAX_TOKEN_PREFIX_LENGTH }>();
<Pallet<T>>::create_collection(
RawOrigin::Signed(owner).into(),
col_name,
@@ -54,9 +59,9 @@
benchmarks! {
create_collection {
- let col_name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();
- let col_desc = create_u16_data::<MAX_COLLECTION_DESCRIPTION_LENGTH>();
- let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();
+ let col_name = create_u16_data::<{MAX_COLLECTION_NAME_LENGTH}>();
+ let col_desc = create_u16_data::<{MAX_COLLECTION_DESCRIPTION_LENGTH}>();
+ let token_prefix = create_data::<{MAX_TOKEN_PREFIX_LENGTH}>();
let mode: CollectionMode = CollectionMode::NFT;
let caller: T::AccountId = account("caller", 0, SEED);
<T as CommonConfig>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
pallets/unique/src/eth/mod.rsdiffbeforeafterboth--- a/pallets/unique/src/eth/mod.rs
+++ b/pallets/unique/src/eth/mod.rs
@@ -27,7 +27,7 @@
dispatch::CollectionDispatch,
erc::{CollectionHelpersEvents, static_property::key},
eth::{map_eth_to_id, collection_id_to_address},
- Pallet as PalletCommon,
+ Pallet as PalletCommon, CollectionHandle,
};
use pallet_evm::{account::CrossAccountId, OnMethodCall, PrecompileHandle, PrecompileResult};
use pallet_evm_coder_substrate::{
@@ -262,7 +262,7 @@
let collection =
pallet_common::eth::map_eth_to_id(&collection).ok_or("not a collection address")?;
let mut collection =
- <crate::CollectionHandle<T>>::new(collection).ok_or("collection not found")?;
+ <CollectionHandle<T>>::new(collection).ok_or("collection not found")?;
if !matches!(
collection.mode,
pallets/unique/src/lib.rsdiffbeforeafterboth--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -73,42 +73,44 @@
extern crate alloc;
-use frame_support::{
- decl_module, decl_storage, decl_error,
- dispatch::DispatchResult,
- ensure, fail,
- weights::{Weight},
- pallet_prelude::{DispatchResultWithPostInfo, ConstU32},
- BoundedVec,
-};
-use scale_info::TypeInfo;
-use frame_system::{self as system, ensure_signed, ensure_root};
-use sp_std::{vec, vec::Vec};
-use up_data_structs::{
- MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,
- MAX_PROPERTIES_PER_ITEM, MAX_PROPERTY_KEY_LENGTH, MAX_PROPERTY_VALUE_LENGTH,
- MAX_COLLECTION_PROPERTIES_SIZE, COLLECTION_ADMINS_LIMIT, MAX_TOKEN_PROPERTIES_SIZE,
- CreateItemData, CollectionLimits, CollectionPermissions, CollectionId, CollectionMode, TokenId,
- CreateCollectionData, CreateItemExData, budget, Property, PropertyKey, PropertyKeyPermission,
-};
-use pallet_evm::account::CrossAccountId;
-use pallet_common::{
- CollectionHandle, Pallet as PalletCommon, CommonWeightInfo, dispatch::dispatch_tx,
- dispatch::CollectionDispatch, RefungibleExtensionsWeightInfo,
-};
+pub use pallet::*;
+use frame_support::pallet_prelude::*;
+use frame_system::pallet_prelude::*;
pub mod eth;
#[cfg(feature = "runtime-benchmarks")]
pub mod benchmarking;
pub mod weights;
-use weights::WeightInfo;
-/// A maximum number of levels of depth in the token nesting tree.
-pub const NESTING_BUDGET: u32 = 5;
+#[frame_support::pallet]
+pub mod pallet {
+ use super::*;
+
+ use frame_support::{dispatch::DispatchResult, ensure, fail, BoundedVec, storage::Key};
+ use scale_info::TypeInfo;
+ use frame_system::{ensure_signed, ensure_root};
+ use sp_std::{vec, vec::Vec};
+ use up_data_structs::{
+ MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,
+ MAX_PROPERTIES_PER_ITEM, MAX_PROPERTY_KEY_LENGTH, MAX_PROPERTY_VALUE_LENGTH,
+ MAX_COLLECTION_PROPERTIES_SIZE, COLLECTION_ADMINS_LIMIT, MAX_TOKEN_PROPERTIES_SIZE,
+ CreateItemData, CollectionLimits, CollectionPermissions, CollectionId, CollectionMode,
+ TokenId, CreateCollectionData, CreateItemExData, budget, Property, PropertyKey,
+ PropertyKeyPermission,
+ };
+ use pallet_evm::account::CrossAccountId;
+ use pallet_common::{
+ CollectionHandle, Pallet as PalletCommon, CommonWeightInfo, dispatch::dispatch_tx,
+ dispatch::CollectionDispatch, RefungibleExtensionsWeightInfo,
+ };
+ use weights::WeightInfo;
+
+ /// A maximum number of levels of depth in the token nesting tree.
+ pub const NESTING_BUDGET: u32 = 5;
-decl_error! {
/// Errors for the common Unique transactions.
- pub enum Error for Module<T: Config> {
+ #[pallet::error]
+ pub enum Error<T> {
/// Decimal_points parameter must be lower than [`up_data_structs::MAX_DECIMAL_POINTS`].
CollectionDecimalPointLimitExceeded,
/// Length of items properties must be greater than 0.
@@ -116,135 +118,219 @@
/// Repertition is only supported by refungible collection.
RepartitionCalledOnNonRefungibleCollection,
}
-}
-/// Configuration trait of this pallet.
-pub trait Config: system::Config + pallet_common::Config + Sized + TypeInfo {
- /// Weight information for extrinsics in this pallet.
- type WeightInfo: WeightInfo;
+ /// Configuration trait of this pallet.
+ #[pallet::config]
+ pub trait Config: frame_system::Config + pallet_common::Config + Sized + TypeInfo {
+ /// Weight information for extrinsics in this pallet.
+ type WeightInfo: WeightInfo;
- /// Weight information for common pallet operations.
- type CommonWeightInfo: CommonWeightInfo<Self::CrossAccountId>;
+ /// Weight information for common pallet operations.
+ type CommonWeightInfo: CommonWeightInfo<Self::CrossAccountId>;
- /// Weight info information for extra refungible pallet operations.
- type RefungibleExtensionsWeightInfo: RefungibleExtensionsWeightInfo;
-}
+ /// Weight info information for extra refungible pallet operations.
+ type RefungibleExtensionsWeightInfo: RefungibleExtensionsWeightInfo;
+ }
-type SelfWeightOf<T> = <T as Config>::WeightInfo;
+ #[pallet::pallet]
+ pub struct Pallet<T>(_);
-// # Used definitions
-//
-// ## User control levels
-//
-// chain-controlled - key is uncontrolled by user
-// i.e autoincrementing index
-// can use non-cryptographic hash
-// real - key is controlled by user
-// but it is hard to generate enough colliding values, i.e owner of signed txs
-// can use non-cryptographic hash
-// controlled - key is completly controlled by users
-// i.e maps with mutable keys
-// should use cryptographic hash
-//
-// ## User control level downgrade reasons
-//
-// ?1 - chain-controlled -> controlled
-// collections/tokens can be destroyed, resulting in massive holes
-// ?2 - chain-controlled -> controlled
-// same as ?1, but can be only added, resulting in easier exploitation
-// ?3 - real -> controlled
-// no confirmation required, so addresses can be easily generated
-decl_storage! {
- trait Store for Module<T: Config> as Unique {
+ pub type SelfWeightOf<T> = <T as Config>::WeightInfo;
- //#region Private members
- /// Used for migrations
- ChainVersion: u64;
- //#endregion
+ // # Used definitions
+ //
+ // ## User control levels
+ //
+ // chain-controlled - key is uncontrolled by user
+ // i.e autoincrementing index
+ // can use non-cryptographic hash
+ // real - key is controlled by user
+ // but it is hard to generate enough colliding values, i.e owner of signed txs
+ // can use non-cryptographic hash
+ // controlled - key is completly controlled by users
+ // i.e maps with mutable keys
+ // should use cryptographic hash
+ //
+ // ## User control level downgrade reasons
+ //
+ // ?1 - chain-controlled -> controlled
+ // collections/tokens can be destroyed, resulting in massive holes
+ // ?2 - chain-controlled -> controlled
+ // same as ?1, but can be only added, resulting in easier exploitation
+ // ?3 - real -> controlled
+ // no confirmation required, so addresses can be easily generated
- //#region Tokens transfer sponosoring rate limit baskets
- /// (Collection id (controlled?2), who created (real))
- /// TODO: Off chain worker should remove from this map when collection gets removed
- pub CreateItemBasket get(fn create_item_basket): map hasher(blake2_128_concat) (CollectionId, T::AccountId) => Option<T::BlockNumber>;
- /// Collection id (controlled?2), token id (controlled?2)
- pub NftTransferBasket get(fn nft_transfer_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
- /// Collection id (controlled?2), owning user (real)
- pub FungibleTransferBasket get(fn fungible_transfer_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(twox_64_concat) T::AccountId => Option<T::BlockNumber>;
- /// Collection id (controlled?2), token id (controlled?2)
- pub ReFungibleTransferBasket get(fn refungible_transfer_basket): nmap hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId, hasher(twox_64_concat) T::AccountId => Option<T::BlockNumber>;
- //#endregion
+ //#region Private members
+ /// Used for migrations
+ #[pallet::storage]
+ pub type ChainVersion<T> = StorageValue<_, u64, ValueQuery>;
+ //#endregion
- /// Variable metadata sponsoring
- /// Collection id (controlled?2), token id (controlled?2)
- #[deprecated]
- pub VariableMetaDataBasket get(fn variable_meta_data_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
- /// Last sponsoring of token property setting // todo:doc rephrase this and the following
- pub TokenPropertyBasket get(fn token_property_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
+ //#region Tokens transfer sponosoring rate limit baskets
+ /// (Collection id (controlled?2), who created (real))
+ /// TODO: Off chain worker should remove from this map when collection gets removed
+ #[pallet::storage]
+ #[pallet::getter(fn create_item_busket)]
+ pub type CreateItemBasket<T: Config> = StorageMap<
+ Hasher = Blake2_128Concat,
+ Key = (CollectionId, T::AccountId),
+ Value = T::BlockNumber,
+ QueryKind = OptionQuery,
+ >;
+ /// Collection id (controlled?2), token id (controlled?2)
+ #[pallet::storage]
+ #[pallet::getter(fn nft_transfer_basket)]
+ pub type NftTransferBasket<T: Config> = StorageDoubleMap<
+ Hasher1 = Blake2_128Concat,
+ Key1 = CollectionId,
+ Hasher2 = Blake2_128Concat,
+ Key2 = TokenId,
+ Value = T::BlockNumber,
+ QueryKind = OptionQuery,
+ >;
+ /// Collection id (controlled?2), owning user (real)
+ #[pallet::storage]
+ #[pallet::getter(fn fungible_transfer_basket)]
+ pub type FungibleTransferBasket<T: Config> = StorageDoubleMap<
+ Hasher1 = Blake2_128Concat,
+ Key1 = CollectionId,
+ Hasher2 = Twox64Concat,
+ Key2 = T::AccountId,
+ Value = T::BlockNumber,
+ QueryKind = OptionQuery,
+ >;
+ /// Collection id (controlled?2), token id (controlled?2)
+ #[pallet::storage]
+ #[pallet::getter(fn refungible_transfer_basket)]
+ pub type ReFungibleTransferBasket<T: Config> = StorageNMap<
+ Key = (
+ Key<Blake2_128Concat, CollectionId>,
+ Key<Blake2_128Concat, TokenId>,
+ Key<Twox64Concat, T::AccountId>,
+ ),
+ Value = T::BlockNumber,
+ QueryKind = OptionQuery,
+ >;
+ //#endregion
- /// Last sponsoring of NFT approval in a collection
- pub NftApproveBasket get(fn nft_approve_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
- /// Last sponsoring of fungible tokens approval in a collection
- pub FungibleApproveBasket get(fn fungible_approve_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(twox_64_concat) T::AccountId => Option<T::BlockNumber>;
- /// Last sponsoring of RFT approval in a collection
- pub RefungibleApproveBasket get(fn refungible_approve_basket): nmap hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId, hasher(twox_64_concat) T::AccountId => Option<T::BlockNumber>;
- }
-}
+ /// Last sponsoring of token property setting // todo:doc rephrase this and the following
+ #[pallet::storage]
+ #[pallet::getter(fn token_property_basket)]
+ pub type TokenPropertyBasket<T: Config> = StorageDoubleMap<
+ Hasher1 = Blake2_128Concat,
+ Key1 = CollectionId,
+ Hasher2 = Blake2_128Concat,
+ Key2 = TokenId,
+ Value = T::BlockNumber,
+ QueryKind = OptionQuery,
+ >;
-decl_module! {
- /// Type alias to Pallet, to be used by construct_runtime.
- pub struct Module<T: Config> for enum Call
- where
- origin: T::RuntimeOrigin
- {
- type Error = Error<T>;
+ /// Last sponsoring of NFT approval in a collection
+ #[pallet::storage]
+ #[pallet::getter(fn nft_approve_basket)]
+ pub type NftApproveBasket<T: Config> = StorageDoubleMap<
+ Hasher1 = Blake2_128Concat,
+ Key1 = CollectionId,
+ Hasher2 = Blake2_128Concat,
+ Key2 = TokenId,
+ Value = T::BlockNumber,
+ QueryKind = OptionQuery,
+ >;
+ /// Last sponsoring of fungible tokens approval in a collection
+ #[pallet::storage]
+ #[pallet::getter(fn fungible_approve_basket)]
+ pub type FungibleApproveBasket<T: Config> = StorageDoubleMap<
+ Hasher1 = Blake2_128Concat,
+ Key1 = CollectionId,
+ Hasher2 = Twox64Concat,
+ Key2 = T::AccountId,
+ Value = T::BlockNumber,
+ QueryKind = OptionQuery,
+ >;
+ /// Last sponsoring of RFT approval in a collection
+ #[pallet::storage]
+ #[pallet::getter(fn refungible_approve_basket)]
+ pub type RefungibleApproveBasket<T: Config> = StorageNMap<
+ Key = (
+ Key<Blake2_128Concat, CollectionId>,
+ Key<Blake2_128Concat, TokenId>,
+ Key<Twox64Concat, T::AccountId>,
+ ),
+ Value = T::BlockNumber,
+ QueryKind = OptionQuery,
+ >;
- #[doc = "A maximum number of levels of depth in the token nesting tree."]
- const NESTING_BUDGET: u32 = NESTING_BUDGET;
+ #[pallet::extra_constants]
+ impl<T: Config> Pallet<T> {
+ /// A maximum number of levels of depth in the token nesting tree.
+ fn nesting_budget() -> u32 {
+ NESTING_BUDGET
+ }
- #[doc = "Maximal length of a collection name."]
- const MAX_COLLECTION_NAME_LENGTH: u32 = MAX_COLLECTION_NAME_LENGTH;
+ /// Maximal length of a collection name.
+ fn max_collection_name_length() -> u32 {
+ MAX_COLLECTION_NAME_LENGTH
+ }
- #[doc = "Maximal length of a collection description."]
- const MAX_COLLECTION_DESCRIPTION_LENGTH: u32 = MAX_COLLECTION_DESCRIPTION_LENGTH;
+ /// Maximal length of a collection description.
+ fn max_collection_description_length() -> u32 {
+ MAX_COLLECTION_DESCRIPTION_LENGTH
+ }
- #[doc = "Maximal length of a token prefix."]
- const MAX_TOKEN_PREFIX_LENGTH: u32 = MAX_TOKEN_PREFIX_LENGTH;
+ /// Maximal length of a token prefix.
+ fn max_token_prefix_length() -> u32 {
+ MAX_TOKEN_PREFIX_LENGTH
+ }
- #[doc = "Maximum admins per collection."]
- const COLLECTION_ADMINS_LIMIT: u32 = COLLECTION_ADMINS_LIMIT;
+ /// Maximum admins per collection.
+ fn collection_admins_limit() -> u32 {
+ COLLECTION_ADMINS_LIMIT
+ }
- #[doc = "Maximal length of a property key."]
- const MAX_PROPERTY_KEY_LENGTH: u32 = MAX_PROPERTY_KEY_LENGTH;
-
- #[doc = "Maximal length of a property value."]
- const MAX_PROPERTY_VALUE_LENGTH: u32 = MAX_PROPERTY_VALUE_LENGTH;
-
- #[doc = "A maximum number of token properties."]
- const MAX_PROPERTIES_PER_ITEM: u32 = MAX_PROPERTIES_PER_ITEM;
+ /// Maximal length of a property key.
+ fn max_property_key_length() -> u32 {
+ MAX_PROPERTY_KEY_LENGTH
+ }
- #[doc = "Maximum size for all collection properties."]
- const MAX_COLLECTION_PROPERTIES_SIZE: u32 = MAX_COLLECTION_PROPERTIES_SIZE;
+ /// Maximal length of a property value.
+ fn max_property_value_length() -> u32 {
+ MAX_PROPERTY_VALUE_LENGTH
+ }
- #[doc = "Maximum size of all token properties."]
- const MAX_TOKEN_PROPERTIES_SIZE: u32 = MAX_TOKEN_PROPERTIES_SIZE;
+ /// A maximum number of token properties.
+ fn max_properties_per_item() -> u32 {
+ MAX_PROPERTIES_PER_ITEM
+ }
- #[doc = "Default NFT collection limit."]
- const NFT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::NFT);
+ /// Maximum size for all collection properties.
+ fn max_collection_properties_size() -> u32 {
+ MAX_COLLECTION_PROPERTIES_SIZE
+ }
- #[doc = "Default RFT collection limit."]
- const RFT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::ReFungible);
+ /// Maximum size of all token properties.
+ fn max_token_properties_size() -> u32 {
+ MAX_TOKEN_PROPERTIES_SIZE
+ }
- #[doc = "Default FT collection limit."]
- const FT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::Fungible(0));
+ /// Default NFT collection limit.
+ fn nft_default_collection_limits() -> CollectionLimits {
+ CollectionLimits::with_default_limits(CollectionMode::NFT)
+ }
- fn on_initialize(_now: T::BlockNumber) -> Weight {
- Weight::zero()
+ /// Default RFT collection limit.
+ fn rft_default_collection_limits() -> CollectionLimits {
+ CollectionLimits::with_default_limits(CollectionMode::ReFungible)
}
- fn on_runtime_upgrade() -> Weight {
- Weight::zero()
+ /// Default FT collection limit.
+ fn ft_default_collection_limits() -> CollectionLimits {
+ CollectionLimits::with_default_limits(CollectionMode::Fungible(0))
}
+ }
+ /// Type alias to Pallet, to be used by construct_runtime.
+ #[pallet::call]
+ impl<T: Config> Pallet<T> {
/// Create a collection of tokens.
///
/// Each Token may have multiple properties encoded as an array of bytes
@@ -270,13 +356,14 @@
/// returns collection ID
///
/// Deprecated: `create_collection_ex` is more up-to-date and advanced, prefer it instead.
- #[weight = <SelfWeightOf<T>>::create_collection()]
- fn create_collection(
- origin,
+ #[pallet::call_index(0)]
+ #[pallet::weight(<SelfWeightOf<T>>::create_collection())]
+ pub fn create_collection(
+ origin: OriginFor<T>,
collection_name: BoundedVec<u16, ConstU32<MAX_COLLECTION_NAME_LENGTH>>,
collection_description: BoundedVec<u16, ConstU32<MAX_COLLECTION_DESCRIPTION_LENGTH>>,
token_prefix: BoundedVec<u8, ConstU32<MAX_TOKEN_PREFIX_LENGTH>>,
- mode: CollectionMode
+ mode: CollectionMode,
) -> DispatchResult {
let data: CreateCollectionData<T::AccountId> = CreateCollectionData {
name: collection_name,
@@ -299,13 +386,18 @@
/// # Arguments
///
/// * `data`: Explicit data of a collection used for its creation.
- #[weight = <SelfWeightOf<T>>::create_collection()]
- pub fn create_collection_ex(origin, data: CreateCollectionData<T::AccountId>) -> DispatchResult {
+ #[pallet::call_index(1)]
+ #[pallet::weight(<SelfWeightOf<T>>::create_collection())]
+ pub fn create_collection_ex(
+ origin: OriginFor<T>,
+ data: CreateCollectionData<T::AccountId>,
+ ) -> DispatchResult {
let sender = ensure_signed(origin)?;
// =========
let sender = T::CrossAccountId::from_sub(sender);
- let _id = T::CollectionDispatch::create(sender.clone(), sender, data, Default::default())?;
+ let _id =
+ T::CollectionDispatch::create(sender.clone(), sender, data, Default::default())?;
Ok(())
}
@@ -319,8 +411,12 @@
/// # Arguments
///
/// * `collection_id`: Collection to destroy.
- #[weight = <SelfWeightOf<T>>::destroy_collection()]
- pub fn destroy_collection(origin, collection_id: CollectionId) -> DispatchResult {
+ #[pallet::call_index(2)]
+ #[pallet::weight(<SelfWeightOf<T>>::destroy_collection())]
+ pub fn destroy_collection(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
Self::destroy_collection_internal(sender, collection_id)
@@ -337,19 +433,18 @@
///
/// * `collection_id`: ID of the modified collection.
/// * `address`: ID of the address to be added to the allowlist.
- #[weight = <SelfWeightOf<T>>::add_to_allow_list()]
- pub fn add_to_allow_list(origin, collection_id: CollectionId, address: T::CrossAccountId) -> DispatchResult{
-
+ #[pallet::call_index(3)]
+ #[pallet::weight(<SelfWeightOf<T>>::add_to_allow_list())]
+ pub fn add_to_allow_list(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ address: T::CrossAccountId,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let collection = <CollectionHandle<T>>::try_get(collection_id)?;
collection.check_is_internal()?;
- <PalletCommon<T>>::toggle_allowlist(
- &collection,
- &sender,
- &address,
- true,
- )?;
+ <PalletCommon<T>>::toggle_allowlist(&collection, &sender, &address, true)?;
Ok(())
}
@@ -365,19 +460,18 @@
///
/// * `collection_id`: ID of the modified collection.
/// * `address`: ID of the address to be removed from the allowlist.
- #[weight = <SelfWeightOf<T>>::remove_from_allow_list()]
- pub fn remove_from_allow_list(origin, collection_id: CollectionId, address: T::CrossAccountId) -> DispatchResult{
-
+ #[pallet::call_index(4)]
+ #[pallet::weight(<SelfWeightOf<T>>::remove_from_allow_list())]
+ pub fn remove_from_allow_list(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ address: T::CrossAccountId,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let collection = <CollectionHandle<T>>::try_get(collection_id)?;
collection.check_is_internal()?;
- <PalletCommon<T>>::toggle_allowlist(
- &collection,
- &sender,
- &address,
- false,
- )?;
+ <PalletCommon<T>>::toggle_allowlist(&collection, &sender, &address, false)?;
Ok(())
}
@@ -392,8 +486,13 @@
///
/// * `collection_id`: ID of the modified collection.
/// * `new_owner`: ID of the account that will become the owner.
- #[weight = <SelfWeightOf<T>>::change_collection_owner()]
- pub fn change_collection_owner(origin, collection_id: CollectionId, new_owner: T::AccountId) -> DispatchResult {
+ #[pallet::call_index(5)]
+ #[pallet::weight(<SelfWeightOf<T>>::change_collection_owner())]
+ pub fn change_collection_owner(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ new_owner: T::AccountId,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let new_owner = T::CrossAccountId::from_sub(new_owner);
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
@@ -416,8 +515,13 @@
///
/// * `collection_id`: ID of the Collection to add an admin for.
/// * `new_admin`: Address of new admin to add.
- #[weight = <SelfWeightOf<T>>::add_collection_admin()]
- pub fn add_collection_admin(origin, collection_id: CollectionId, new_admin_id: T::CrossAccountId) -> DispatchResult {
+ #[pallet::call_index(6)]
+ #[pallet::weight(<SelfWeightOf<T>>::add_collection_admin())]
+ pub fn add_collection_admin(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ new_admin_id: T::CrossAccountId,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let collection = <CollectionHandle<T>>::try_get(collection_id)?;
<PalletCommon<T>>::toggle_admin(&collection, &sender, &new_admin_id, true)
@@ -437,8 +541,13 @@
///
/// * `collection_id`: ID of the collection to remove the admin for.
/// * `account_id`: Address of the admin to remove.
- #[weight = <SelfWeightOf<T>>::remove_collection_admin()]
- pub fn remove_collection_admin(origin, collection_id: CollectionId, account_id: T::CrossAccountId) -> DispatchResult {
+ #[pallet::call_index(7)]
+ #[pallet::weight(<SelfWeightOf<T>>::remove_collection_admin())]
+ pub fn remove_collection_admin(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ account_id: T::CrossAccountId,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let collection = <CollectionHandle<T>>::try_get(collection_id)?;
<PalletCommon<T>>::toggle_admin(&collection, &sender, &account_id, false)
@@ -457,8 +566,13 @@
///
/// * `collection_id`: ID of the modified collection.
/// * `new_sponsor`: ID of the account of the sponsor-to-be.
- #[weight = <SelfWeightOf<T>>::set_collection_sponsor()]
- pub fn set_collection_sponsor(origin, collection_id: CollectionId, new_sponsor: T::AccountId) -> DispatchResult {
+ #[pallet::call_index(8)]
+ #[pallet::weight(<SelfWeightOf<T>>::set_collection_sponsor())]
+ pub fn set_collection_sponsor(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ new_sponsor: T::AccountId,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
target_collection.set_sponsor(&sender, new_sponsor.clone())
@@ -477,8 +591,12 @@
/// # Arguments
///
/// * `collection_id`: ID of the collection with the pending sponsor.
- #[weight = <SelfWeightOf<T>>::confirm_sponsorship()]
- pub fn confirm_sponsorship(origin, collection_id: CollectionId) -> DispatchResult {
+ #[pallet::call_index(9)]
+ #[pallet::weight(<SelfWeightOf<T>>::confirm_sponsorship())]
+ pub fn confirm_sponsorship(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ ) -> DispatchResult {
let sender = ensure_signed(origin)?;
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
target_collection.confirm_sponsorship(&sender)
@@ -493,8 +611,12 @@
/// # Arguments
///
/// * `collection_id`: ID of the collection with the sponsor to remove.
- #[weight = <SelfWeightOf<T>>::remove_collection_sponsor()]
- pub fn remove_collection_sponsor(origin, collection_id: CollectionId) -> DispatchResult {
+ #[pallet::call_index(10)]
+ #[pallet::weight(<SelfWeightOf<T>>::remove_collection_sponsor())]
+ pub fn remove_collection_sponsor(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
target_collection.remove_sponsor(&sender)
@@ -518,12 +640,20 @@
/// * `collection_id`: ID of the collection to which an item would belong.
/// * `owner`: Address of the initial owner of the item.
/// * `data`: Token data describing the item to store on chain.
- #[weight = T::CommonWeightInfo::create_item(&data)]
- pub fn create_item(origin, collection_id: CollectionId, owner: T::CrossAccountId, data: CreateItemData) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(11)]
+ #[pallet::weight(T::CommonWeightInfo::create_item(&data))]
+ pub fn create_item(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ owner: T::CrossAccountId,
+ data: CreateItemData,
+ ) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let budget = budget::Value::new(NESTING_BUDGET);
- dispatch_tx::<T, _>(collection_id, |d| d.create_item(sender, owner, data, &budget))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.create_item(sender, owner, data, &budget)
+ })
}
/// Create multiple items within a collection.
@@ -544,13 +674,21 @@
/// * `collection_id`: ID of the collection to which the tokens would belong.
/// * `owner`: Address of the initial owner of the tokens.
/// * `items_data`: Vector of data describing each item to be created.
- #[weight = T::CommonWeightInfo::create_multiple_items(&items_data)]
- pub fn create_multiple_items(origin, collection_id: CollectionId, owner: T::CrossAccountId, items_data: Vec<CreateItemData>) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(12)]
+ #[pallet::weight(T::CommonWeightInfo::create_multiple_items(&items_data))]
+ pub fn create_multiple_items(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ owner: T::CrossAccountId,
+ items_data: Vec<CreateItemData>,
+ ) -> DispatchResultWithPostInfo {
ensure!(!items_data.is_empty(), Error::<T>::EmptyArgument);
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let budget = budget::Value::new(NESTING_BUDGET);
- dispatch_tx::<T, _>(collection_id, |d| d.create_multiple_items(sender, owner, items_data, &budget))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.create_multiple_items(sender, owner, items_data, &budget)
+ })
}
/// Add or change collection properties.
@@ -565,17 +703,20 @@
/// * `collection_id`: ID of the modified collection.
/// * `properties`: Vector of key-value pairs stored as the collection's metadata.
/// Keys support Latin letters, `-`, `_`, and `.` as symbols.
- #[weight = T::CommonWeightInfo::set_collection_properties(properties.len() as u32)]
+ #[pallet::call_index(13)]
+ #[pallet::weight(T::CommonWeightInfo::set_collection_properties(properties.len() as u32))]
pub fn set_collection_properties(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
- properties: Vec<Property>
+ properties: Vec<Property>,
) -> DispatchResultWithPostInfo {
ensure!(!properties.is_empty(), Error::<T>::EmptyArgument);
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
- dispatch_tx::<T, _>(collection_id, |d| d.set_collection_properties(sender, properties))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.set_collection_properties(sender, properties)
+ })
}
/// Delete specified collection properties.
@@ -590,9 +731,10 @@
/// * `collection_id`: ID of the modified collection.
/// * `property_keys`: Vector of keys of the properties to be deleted.
/// Keys support Latin letters, `-`, `_`, and `.` as symbols.
- #[weight = T::CommonWeightInfo::delete_collection_properties(property_keys.len() as u32)]
+ #[pallet::call_index(14)]
+ #[pallet::weight(T::CommonWeightInfo::delete_collection_properties(property_keys.len() as u32))]
pub fn delete_collection_properties(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
property_keys: Vec<PropertyKey>,
) -> DispatchResultWithPostInfo {
@@ -600,7 +742,9 @@
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
- dispatch_tx::<T, _>(collection_id, |d| d.delete_collection_properties(&sender, property_keys))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.delete_collection_properties(&sender, property_keys)
+ })
}
/// Add or change token properties according to collection's permissions.
@@ -621,19 +765,22 @@
/// * `token_id`: ID of the modified token.
/// * `properties`: Vector of key-value pairs stored as the token's metadata.
/// Keys support Latin letters, `-`, `_`, and `.` as symbols.
- #[weight = T::CommonWeightInfo::set_token_properties(properties.len() as u32)]
+ #[pallet::call_index(15)]
+ #[pallet::weight(T::CommonWeightInfo::set_token_properties(properties.len() as u32))]
pub fn set_token_properties(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
token_id: TokenId,
- properties: Vec<Property>
+ properties: Vec<Property>,
) -> DispatchResultWithPostInfo {
ensure!(!properties.is_empty(), Error::<T>::EmptyArgument);
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let budget = budget::Value::new(NESTING_BUDGET);
- dispatch_tx::<T, _>(collection_id, |d| d.set_token_properties(sender, token_id, properties, &budget))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.set_token_properties(sender, token_id, properties, &budget)
+ })
}
/// Delete specified token properties. Currently properties only work with NFTs.
@@ -651,19 +798,22 @@
/// * `token_id`: ID of the modified token.
/// * `property_keys`: Vector of keys of the properties to be deleted.
/// Keys support Latin letters, `-`, `_`, and `.` as symbols.
- #[weight = T::CommonWeightInfo::delete_token_properties(property_keys.len() as u32)]
+ #[pallet::call_index(16)]
+ #[pallet::weight(T::CommonWeightInfo::delete_token_properties(property_keys.len() as u32))]
pub fn delete_token_properties(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
token_id: TokenId,
- property_keys: Vec<PropertyKey>
+ property_keys: Vec<PropertyKey>,
) -> DispatchResultWithPostInfo {
ensure!(!property_keys.is_empty(), Error::<T>::EmptyArgument);
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let budget = budget::Value::new(NESTING_BUDGET);
- dispatch_tx::<T, _>(collection_id, |d| d.delete_token_properties(sender, token_id, property_keys, &budget))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.delete_token_properties(sender, token_id, property_keys, &budget)
+ })
}
/// Add or change token property permissions of a collection.
@@ -681,9 +831,10 @@
/// * `collection_id`: ID of the modified collection.
/// * `property_permissions`: Vector of permissions for property keys.
/// Keys support Latin letters, `-`, `_`, and `.` as symbols.
- #[weight = T::CommonWeightInfo::set_token_property_permissions(property_permissions.len() as u32)]
+ #[pallet::call_index(17)]
+ #[pallet::weight(T::CommonWeightInfo::set_token_property_permissions(property_permissions.len() as u32))]
pub fn set_token_property_permissions(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
property_permissions: Vec<PropertyKeyPermission>,
) -> DispatchResultWithPostInfo {
@@ -691,7 +842,9 @@
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
- dispatch_tx::<T, _>(collection_id, |d| d.set_token_property_permissions(&sender, property_permissions))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.set_token_property_permissions(&sender, property_permissions)
+ })
}
/// Create multiple items within a collection with explicitly specified initial parameters.
@@ -709,12 +862,19 @@
///
/// * `collection_id`: ID of the collection to which the tokens would belong.
/// * `data`: Explicit item creation data.
- #[weight = T::CommonWeightInfo::create_multiple_items_ex(&data)]
- pub fn create_multiple_items_ex(origin, collection_id: CollectionId, data: CreateItemExData<T::CrossAccountId>) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(18)]
+ #[pallet::weight(T::CommonWeightInfo::create_multiple_items_ex(&data))]
+ pub fn create_multiple_items_ex(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ data: CreateItemExData<T::CrossAccountId>,
+ ) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let budget = budget::Value::new(NESTING_BUDGET);
- dispatch_tx::<T, _>(collection_id, |d| d.create_multiple_items_ex(sender, data, &budget))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.create_multiple_items_ex(sender, data, &budget)
+ })
}
/// Completely allow or disallow transfers for a particular collection.
@@ -727,8 +887,13 @@
///
/// * `collection_id`: ID of the collection.
/// * `value`: New value of the flag, are transfers allowed?
- #[weight = <SelfWeightOf<T>>::set_transfers_enabled_flag()]
- pub fn set_transfers_enabled_flag(origin, collection_id: CollectionId, value: bool) -> DispatchResult {
+ #[pallet::call_index(19)]
+ #[pallet::weight(<SelfWeightOf<T>>::set_transfers_enabled_flag())]
+ pub fn set_transfers_enabled_flag(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ value: bool,
+ ) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
target_collection.check_is_internal()?;
@@ -756,11 +921,18 @@
/// * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
/// * Fungible Mode: The desired number of pieces to burn.
/// * Re-Fungible Mode: The desired number of pieces to burn.
- #[weight = T::CommonWeightInfo::burn_item()]
- pub fn burn_item(origin, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(20)]
+ #[pallet::weight(T::CommonWeightInfo::burn_item())]
+ pub fn burn_item(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ item_id: TokenId,
+ value: u128,
+ ) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
- let post_info = dispatch_tx::<T, _>(collection_id, |d| d.burn_item(sender, item_id, value))?;
+ let post_info =
+ dispatch_tx::<T, _>(collection_id, |d| d.burn_item(sender, item_id, value))?;
if value == 1 {
<NftTransferBasket<T>>::remove(collection_id, item_id);
<NftApproveBasket<T>>::remove(collection_id, item_id);
@@ -794,12 +966,21 @@
/// * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
/// * Fungible Mode: The desired number of pieces to burn.
/// * Re-Fungible Mode: The desired number of pieces to burn.
- #[weight = T::CommonWeightInfo::burn_from()]
- pub fn burn_from(origin, collection_id: CollectionId, from: T::CrossAccountId, item_id: TokenId, value: u128) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(21)]
+ #[pallet::weight(T::CommonWeightInfo::burn_from())]
+ pub fn burn_from(
+ origin: OriginFor<T>,
+ collection_id: CollectionId,
+ from: T::CrossAccountId,
+ item_id: TokenId,
+ value: u128,
+ ) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let budget = budget::Value::new(NESTING_BUDGET);
- dispatch_tx::<T, _>(collection_id, |d| d.burn_from(sender, from, item_id, value, &budget))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.burn_from(sender, from, item_id, value, &budget)
+ })
}
/// Change ownership of the token.
@@ -823,12 +1004,21 @@
/// * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
/// * Fungible Mode: The desired number of pieces to transfer.
/// * Re-Fungible Mode: The desired number of pieces to transfer.
- #[weight = T::CommonWeightInfo::transfer()]
- pub fn transfer(origin, recipient: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(22)]
+ #[pallet::weight(T::CommonWeightInfo::transfer())]
+ pub fn transfer(
+ origin: OriginFor<T>,
+ recipient: T::CrossAccountId,
+ collection_id: CollectionId,
+ item_id: TokenId,
+ value: u128,
+ ) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let budget = budget::Value::new(NESTING_BUDGET);
- dispatch_tx::<T, _>(collection_id, |d| d.transfer(sender, recipient, item_id, value, &budget))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.transfer(sender, recipient, item_id, value, &budget)
+ })
}
/// Allow a non-permissioned address to transfer or burn an item.
@@ -846,11 +1036,20 @@
/// * `item_id`: ID of the item transactions on which are now approved.
/// * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).
/// Set to 0 to revoke the approval.
- #[weight = T::CommonWeightInfo::approve()]
- pub fn approve(origin, spender: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, amount: u128) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(23)]
+ #[pallet::weight(T::CommonWeightInfo::approve())]
+ pub fn approve(
+ origin: OriginFor<T>,
+ spender: T::CrossAccountId,
+ collection_id: CollectionId,
+ item_id: TokenId,
+ amount: u128,
+ ) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
- dispatch_tx::<T, _>(collection_id, |d| d.approve(sender, spender, item_id, amount))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.approve(sender, spender, item_id, amount)
+ })
}
/// Allow a non-permissioned address to transfer or burn an item from owner's eth mirror.
@@ -869,11 +1068,21 @@
/// * `item_id`: ID of the item transactions on which are now approved.
/// * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).
/// Set to 0 to revoke the approval.
- #[weight = T::CommonWeightInfo::approve_from()]
- pub fn approve_from(origin, from:T::CrossAccountId, to: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, amount: u128) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(24)]
+ #[pallet::weight(T::CommonWeightInfo::approve_from())]
+ pub fn approve_from(
+ origin: OriginFor<T>,
+ from: T::CrossAccountId,
+ to: T::CrossAccountId,
+ collection_id: CollectionId,
+ item_id: TokenId,
+ amount: u128,
+ ) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
- dispatch_tx::<T, _>(collection_id, |d| d.approve_from(sender, from, to, item_id, amount))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.approve_from(sender, from, to, item_id, amount)
+ })
}
/// Change ownership of an item on behalf of the owner as a non-owner account.
@@ -900,12 +1109,22 @@
/// * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
/// * Fungible Mode: The desired number of pieces to transfer.
/// * Re-Fungible Mode: The desired number of pieces to transfer.
- #[weight = T::CommonWeightInfo::transfer_from()]
- pub fn transfer_from(origin, from: T::CrossAccountId, recipient: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, value: u128 ) -> DispatchResultWithPostInfo {
+ #[pallet::call_index(25)]
+ #[pallet::weight(T::CommonWeightInfo::transfer_from())]
+ pub fn transfer_from(
+ origin: OriginFor<T>,
+ from: T::CrossAccountId,
+ recipient: T::CrossAccountId,
+ collection_id: CollectionId,
+ item_id: TokenId,
+ value: u128,
+ ) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let budget = budget::Value::new(NESTING_BUDGET);
- dispatch_tx::<T, _>(collection_id, |d| d.transfer_from(sender, from, recipient, item_id, value, &budget))
+ dispatch_tx::<T, _>(collection_id, |d| {
+ d.transfer_from(sender, from, recipient, item_id, value, &budget)
+ })
}
/// Set specific limits of a collection. Empty, or None fields mean chain default.
@@ -920,9 +1139,10 @@
/// * `collection_id`: ID of the modified collection.
/// * `new_limit`: New limits of the collection. Fields that are not set (None)
/// will not overwrite the old ones.
- #[weight = <SelfWeightOf<T>>::set_collection_limits()]
+ #[pallet::call_index(26)]
+ #[pallet::weight(<SelfWeightOf<T>>::set_collection_limits())]
pub fn set_collection_limits(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
new_limit: CollectionLimits,
) -> DispatchResult {
@@ -943,19 +1163,16 @@
/// * `collection_id`: ID of the modified collection.
/// * `new_permission`: New permissions of the collection. Fields that are not set (None)
/// will not overwrite the old ones.
- #[weight = <SelfWeightOf<T>>::set_collection_limits()]
+ #[pallet::call_index(27)]
+ #[pallet::weight(<SelfWeightOf<T>>::set_collection_limits())]
pub fn set_collection_permissions(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
new_permission: CollectionPermissions,
) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
- <PalletCommon<T>>::update_permissions(
- &sender,
- &mut target_collection,
- new_permission
- )
+ <PalletCommon<T>>::update_permissions(&sender, &mut target_collection, new_permission)
}
/// Re-partition a refungible token, while owning all of its parts/pieces.
@@ -969,9 +1186,10 @@
/// * `collection_id`: ID of the collection the RFT belongs to.
/// * `token_id`: ID of the RFT.
/// * `amount`: New number of parts/pieces into which the token shall be partitioned.
- #[weight = T::RefungibleExtensionsWeightInfo::repartition()]
+ #[pallet::call_index(28)]
+ #[pallet::weight(T::RefungibleExtensionsWeightInfo::repartition())]
pub fn repartition(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
token_id: TokenId,
amount: u128,
@@ -995,9 +1213,10 @@
/// * `owner`: Token owner
/// * `operator`: Operator
/// * `approve`: Should operator status be granted or revoked?
- #[weight = T::CommonWeightInfo::set_allowance_for_all()]
+ #[pallet::call_index(29)]
+ #[pallet::weight(T::CommonWeightInfo::set_allowance_for_all())]
pub fn set_allowance_for_all(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
operator: T::CrossAccountId,
approve: bool,
@@ -1013,9 +1232,10 @@
/// # Arguments
///
/// * `collection_id`: ID of the collection to repair.
- #[weight = <SelfWeightOf<T>>::force_repair_collection()]
+ #[pallet::call_index(30)]
+ #[pallet::weight(<SelfWeightOf<T>>::force_repair_collection())]
pub fn force_repair_collection(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
) -> DispatchResult {
ensure_root(origin)?;
@@ -1028,69 +1248,71 @@
///
/// * `collection_id`: ID of the collection the item belongs to.
/// * `item_id`: ID of the item.
- #[weight = T::CommonWeightInfo::force_repair_item()]
+ #[pallet::call_index(31)]
+ #[pallet::weight(T::CommonWeightInfo::force_repair_item())]
pub fn force_repair_item(
- origin,
+ origin: OriginFor<T>,
collection_id: CollectionId,
item_id: TokenId,
) -> DispatchResultWithPostInfo {
ensure_root(origin)?;
- dispatch_tx::<T, _>(collection_id, |d| {
- d.repair_item(item_id)
- })
+ dispatch_tx::<T, _>(collection_id, |d| d.repair_item(item_id))
}
}
-}
-impl<T: Config> Pallet<T> {
- /// Force set `sponsor` for `collection`.
- ///
- /// Differs from [`set_collection_sponsor`][`Pallet::set_collection_sponsor`] in that confirmation
- /// from the `sponsor` is not required.
- ///
- /// # Arguments
- ///
- /// * `sponsor`: ID of the account of the sponsor-to-be.
- /// * `collection_id`: ID of the modified collection.
- pub fn force_set_sponsor(sponsor: T::AccountId, collection_id: CollectionId) -> DispatchResult {
- let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
- target_collection.force_set_sponsor(sponsor.clone())
- }
+ impl<T: Config> Pallet<T> {
+ /// Force set `sponsor` for `collection`.
+ ///
+ /// Differs from [`set_collection_sponsor`][`Pallet::set_collection_sponsor`] in that confirmation
+ /// from the `sponsor` is not required.
+ ///
+ /// # Arguments
+ ///
+ /// * `sponsor`: ID of the account of the sponsor-to-be.
+ /// * `collection_id`: ID of the modified collection.
+ pub fn force_set_sponsor(
+ sponsor: T::AccountId,
+ collection_id: CollectionId,
+ ) -> DispatchResult {
+ let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
+ target_collection.force_set_sponsor(sponsor.clone())
+ }
- /// Force remove `sponsor` for `collection`.
- ///
- /// Differs from `remove_sponsor` in that
- /// it doesn't require consent from the `owner` of the collection.
- ///
- /// # Arguments
- ///
- /// * `collection_id`: ID of the modified collection.
- pub fn force_remove_collection_sponsor(collection_id: CollectionId) -> DispatchResult {
- let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
- target_collection.force_remove_sponsor()
- }
+ /// Force remove `sponsor` for `collection`.
+ ///
+ /// Differs from `remove_sponsor` in that
+ /// it doesn't require consent from the `owner` of the collection.
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the modified collection.
+ pub fn force_remove_collection_sponsor(collection_id: CollectionId) -> DispatchResult {
+ let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
+ target_collection.force_remove_sponsor()
+ }
- #[inline(always)]
- pub(crate) fn destroy_collection_internal(
- sender: T::CrossAccountId,
- collection_id: CollectionId,
- ) -> DispatchResult {
- let collection = <CollectionHandle<T>>::try_get(collection_id)?;
- collection.check_is_internal()?;
+ #[inline(always)]
+ pub(crate) fn destroy_collection_internal(
+ sender: T::CrossAccountId,
+ collection_id: CollectionId,
+ ) -> DispatchResult {
+ let collection = <CollectionHandle<T>>::try_get(collection_id)?;
+ collection.check_is_internal()?;
- T::CollectionDispatch::destroy(sender, collection)?;
+ T::CollectionDispatch::destroy(sender, collection)?;
- // TODO: basket cleanup should be moved elsewhere
- // Maybe runtime dispatch.rs should perform it?
+ // TODO: basket cleanup should be moved elsewhere
+ // Maybe runtime dispatch.rs should perform it?
- let _ = <NftTransferBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
- let _ = <FungibleTransferBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
- let _ = <ReFungibleTransferBasket<T>>::clear_prefix((collection_id,), u32::MAX, None);
+ let _ = <NftTransferBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
+ let _ = <FungibleTransferBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
+ let _ = <ReFungibleTransferBasket<T>>::clear_prefix((collection_id,), u32::MAX, None);
- let _ = <NftApproveBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
- let _ = <FungibleApproveBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
- let _ = <RefungibleApproveBasket<T>>::clear_prefix((collection_id,), u32::MAX, None);
+ let _ = <NftApproveBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
+ let _ = <FungibleApproveBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
+ let _ = <RefungibleApproveBasket<T>>::clear_prefix((collection_id,), u32::MAX, None);
- Ok(())
+ Ok(())
+ }
}
}
primitives/common/src/constants.rsdiffbeforeafterboth--- a/primitives/common/src/constants.rs
+++ b/primitives/common/src/constants.rs
@@ -64,9 +64,10 @@
/// by Operational extrinsics.
pub const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);
/// We allow for 2 seconds of compute with a 6 second average block time.
-pub const MAXIMUM_BLOCK_WEIGHT: Weight =
- Weight::from_ref_time(WEIGHT_REF_TIME_PER_SECOND.saturating_div(2))
- .set_proof_size(MAX_POV_SIZE as u64);
+pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts(
+ WEIGHT_REF_TIME_PER_SECOND.saturating_div(2),
+ MAX_POV_SIZE as u64,
+);
parameter_types! {
pub const TransactionByteFee: Balance = 501 * MICROUNIQUE / 2;
runtime/common/config/ethereum.rsdiffbeforeafterboth--- a/runtime/common/config/ethereum.rs
+++ b/runtime/common/config/ethereum.rs
@@ -28,7 +28,7 @@
pub const GasPerSecond: u64 = WritesPerSecond::get() * 20000;
pub const WeightTimePerGas: u64 = WEIGHT_REF_TIME_PER_SECOND / GasPerSecond::get();
- pub const WeightPerGas: Weight = Weight::from_ref_time(WeightTimePerGas::get());
+ pub const WeightPerGas: Weight = Weight::from_parts(WeightTimePerGas::get(), 0);
}
/// Limiting EVM execution to 50% of block for substrate users and management tasks
@@ -56,8 +56,8 @@
impl pallet_evm::Config for Runtime {
type CrossAccountId = CrossAccountId;
- type EvmAddressMapping = pallet_evm::HashedAddressMapping<Self::Hashing>;
- type EvmBackwardsAddressMapping = fp_evm_mapping::MapBackwardsAddressTruncated;
+ type AddressMapping = HashedAddressMapping<Self::Hashing>;
+ type BackwardsAddressMapping = HashedAddressMapping<Self::Hashing>;
type BlockGasLimit = BlockGasLimit;
type FeeCalculator = pallet_configuration::FeeCalculator<Self>;
type GasWeightMapping = pallet_evm::FixedGasWeightMapping<Self>;
@@ -65,7 +65,6 @@
type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping<Self>;
type CallOrigin = EnsureAddressTruncated<Self>;
type WithdrawOrigin = EnsureAddressTruncated<Self>;
- type AddressMapping = HashedAddressMapping<Self::Hashing>;
type PrecompilesType = UniquePrecompiles<Self>;
type PrecompilesValue = PrecompilesValue;
type Currency = Balances;
runtime/common/mod.rsdiffbeforeafterboth--- a/runtime/common/mod.rs
+++ b/runtime/common/mod.rs
@@ -27,6 +27,7 @@
pub mod scheduler;
pub mod sponsoring;
+#[allow(missing_docs)]
pub mod weights;
#[cfg(test)]
@@ -152,7 +153,7 @@
}
#[cfg(feature = "runtime-benchmarks")]
fn set_block_number(block: Self::BlockNumber) {
- cumulus_pallet_parachain_system::RelaychainBlockNumberProvider::<T>::set_block_number(block)
+ cumulus_pallet_parachain_system::RelaychainDataProvider::<T>::set_block_number(block)
}
}
runtime/common/sponsoring.rsdiffbeforeafterboth--- a/runtime/common/sponsoring.rs
+++ b/runtime/common/sponsoring.rs
@@ -18,7 +18,6 @@
use up_sponsorship::SponsorshipHandler;
use frame_support::{
traits::{IsSubType},
- storage::{StorageMap, StorageDoubleMap, StorageNMap},
};
use up_data_structs::{
CollectionId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, NFT_SPONSOR_TRANSFER_TIMEOUT,
runtime/opal/Cargo.tomldiffbeforeafterboth--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -76,7 +76,6 @@
"sp-consensus-aura/std",
'app-promotion-rpc/std',
'evm-coder/std',
- 'fp-evm-mapping/std',
'fp-rpc/std',
'fp-self-contained/std',
'pallet-app-promotion/std',
@@ -254,7 +253,6 @@
derivative = { workspace = true }
evm-coder = { workspace = true }
fp-evm = { workspace = true }
-fp-evm-mapping = { workspace = true }
fp-rpc = { workspace = true }
fp-self-contained = { workspace = true }
log = { workspace = true }
runtime/opal/src/lib.rsdiffbeforeafterboth--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -51,7 +51,7 @@
spec_name: create_runtime_str!(RUNTIME_NAME),
impl_name: create_runtime_str!(RUNTIME_NAME),
authoring_version: 1,
- spec_version: 939054,
+ spec_version: 941054,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 3,
runtime/quartz/Cargo.tomldiffbeforeafterboth--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -77,7 +77,6 @@
"sp-consensus-aura/std",
'app-promotion-rpc/std',
'evm-coder/std',
- 'fp-evm-mapping/std',
'fp-rpc/std',
'fp-self-contained/std',
'pallet-app-promotion/std',
@@ -245,7 +244,6 @@
app-promotion-rpc = { workspace = true }
derivative = { workspace = true }
fp-evm = { workspace = true }
-fp-evm-mapping = { workspace = true }
log = { workspace = true }
pallet-app-promotion = { workspace = true }
pallet-collator-selection = { workspace = true }
runtime/quartz/src/lib.rsdiffbeforeafterboth--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -54,7 +54,7 @@
spec_name: create_runtime_str!(RUNTIME_NAME),
impl_name: create_runtime_str!(RUNTIME_NAME),
authoring_version: 1,
- spec_version: 939054,
+ spec_version: 941054,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 3,
runtime/tests/Cargo.tomldiffbeforeafterboth--- a/runtime/tests/Cargo.toml
+++ b/runtime/tests/Cargo.toml
@@ -3,6 +3,20 @@
name = "tests"
version = "0.1.1"
+[package.metadata.deppatcher.originals.dependencies]
+sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+up-sponsorship = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.39" }
+pallet-ethereum = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+pallet-evm = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+
[features]
default = ['refungible']
@@ -11,23 +25,21 @@
[dependencies]
up-data-structs = { default-features = false, path = "../../primitives/data-structs" }
-sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
+frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
-frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
+pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.41" }
-pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
-pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.39" }
+pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.41" }
-pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.39" }
-
pallet-common.path = "../../pallets/common"
pallet-fungible.path = "../../pallets/fungible"
pallet-nonfungible.path = "../../pallets/nonfungible"
@@ -41,7 +53,7 @@
scale-info = "*"
evm-coder = { workspace = true }
-up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.39" }
+up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.41" }
xcm = { workspace = true }
pallet-xcm = { workspace = true }
pallet-configuration = { workspace = true }
runtime/tests/src/lib.rsdiffbeforeafterboth--- a/runtime/tests/src/lib.rs
+++ b/runtime/tests/src/lib.rs
@@ -31,9 +31,9 @@
use frame_system as system;
use pallet_evm::{
AddressMapping, account::CrossAccountId, EnsureAddressNever, SubstrateBlockHashMapping,
+ BackwardsAddressMapping,
};
use pallet_ethereum::PostLogContent;
-use fp_evm_mapping::EvmBackwardsAddressMapping;
use parity_scale_codec::{Encode, Decode, MaxEncodedLen};
use scale_info::TypeInfo;
@@ -162,7 +162,7 @@
}
pub struct TestEvmBackwardsAddressMapping;
-impl EvmBackwardsAddressMapping<u64> for TestEvmBackwardsAddressMapping {
+impl BackwardsAddressMapping<u64> for TestEvmBackwardsAddressMapping {
fn from_account_id(_account_id: u64) -> sp_core::H160 {
unimplemented!()
}
@@ -216,15 +216,14 @@
impl pallet_evm::Config for Test {
type CrossAccountId = TestCrossAccountId;
- type EvmAddressMapping = TestEvmAddressMapping;
- type EvmBackwardsAddressMapping = TestEvmBackwardsAddressMapping;
+ type AddressMapping = TestEvmAddressMapping;
+ type BackwardsAddressMapping = TestEvmBackwardsAddressMapping;
type RuntimeEvent = RuntimeEvent;
type FeeCalculator = ();
type GasWeightMapping = pallet_evm::FixedGasWeightMapping<Self>;
type WeightPerGas = WeightPerGas;
type CallOrigin = EnsureAddressNever<Self>;
type WithdrawOrigin = EnsureAddressNever<Self>;
- type AddressMapping = TestEvmAddressMapping;
type Currency = Balances;
type PrecompilesType = ();
type PrecompilesValue = ();
runtime/unique/Cargo.tomldiffbeforeafterboth--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -75,7 +75,6 @@
"sp-consensus-aura/std",
'app-promotion-rpc/std',
'evm-coder/std',
- 'fp-evm-mapping/std',
'fp-rpc/std',
'fp-self-contained/std',
'pallet-app-promotion/std',
@@ -263,7 +262,6 @@
# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }
evm-coder = { workspace = true }
fp-evm = { workspace = true }
-fp-evm-mapping = { workspace = true }
fp-rpc = { workspace = true }
fp-self-contained = { workspace = true }
num_enum = { workspace = true }
runtime/unique/src/lib.rsdiffbeforeafterboth--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -51,7 +51,7 @@
spec_name: create_runtime_str!(RUNTIME_NAME),
impl_name: create_runtime_str!(RUNTIME_NAME),
authoring_version: 1,
- spec_version: 939054,
+ spec_version: 941054,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 3,
test-pallets/utils/src/lib.rsdiffbeforeafterboth--- a/test-pallets/utils/src/lib.rs
+++ b/test-pallets/utils/src/lib.rs
@@ -56,7 +56,6 @@
}
#[pallet::pallet]
- #[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
#[pallet::storage]