difftreelog
Merge pull request #401 from UniqueNetwork/release-v923000
in: master
Release v923000
62 files changed
.envdiffbeforeafterboth--- a/.env
+++ b/.env
@@ -1,6 +1,6 @@
RUST_TOOLCHAIN=nightly-2022-05-11
RUST_C=1.62.0-nightly
-POLKA_VERSION=release-v0.9.22
+POLKA_VERSION=release-v0.9.23
UNIQUE_BRANCH=develop
USER=***
PASS=***
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -188,9 +188,9 @@
[[package]]
name = "async-global-executor"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd8b508d585e01084059b60f06ade4cb7415cd2e4084b71dd1cb44e7d3fb9880"
+checksum = "5262ed948da60dd8956c6c5aca4d4163593dddb7b32d73267c93dab7b2e98940"
dependencies = [
"async-channel",
"async-executor",
@@ -198,6 +198,7 @@
"async-lock",
"blocking",
"futures-lite",
+ "num_cpus",
"once_cell",
]
@@ -429,7 +430,7 @@
[[package]]
name = "beefy-gadget"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"beefy-primitives",
"fnv",
@@ -463,7 +464,7 @@
[[package]]
name = "beefy-gadget-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"beefy-gadget",
"beefy-primitives",
@@ -483,12 +484,12 @@
[[package]]
name = "beefy-merkle-tree"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
[[package]]
name = "beefy-primitives"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"scale-info",
@@ -579,17 +580,6 @@
checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"
dependencies = [
"arrayvec 0.4.12",
- "constant_time_eq",
-]
-
-[[package]]
-name = "blake2b_simd"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
-dependencies = [
- "arrayref",
- "arrayvec 0.5.2",
"constant_time_eq",
]
@@ -701,7 +691,7 @@
[[package]]
name = "bp-header-chain"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-runtime",
"finality-grandpa",
@@ -718,7 +708,7 @@
[[package]]
name = "bp-message-dispatch"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-runtime",
"frame-support",
@@ -730,7 +720,7 @@
[[package]]
name = "bp-messages"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bitvec 1.0.0",
"bp-runtime",
@@ -747,7 +737,7 @@
[[package]]
name = "bp-polkadot-core"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-messages",
"bp-runtime",
@@ -765,7 +755,7 @@
[[package]]
name = "bp-rococo"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-messages",
"bp-polkadot-core",
@@ -782,7 +772,7 @@
[[package]]
name = "bp-runtime"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-support",
"hash-db",
@@ -800,7 +790,7 @@
[[package]]
name = "bp-test-utils"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-header-chain",
"ed25519-dalek",
@@ -815,7 +805,7 @@
[[package]]
name = "bp-wococo"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-messages",
"bp-polkadot-core",
@@ -830,7 +820,7 @@
[[package]]
name = "bridge-runtime-common"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-message-dispatch",
"bp-messages",
@@ -864,10 +854,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
dependencies = [
- "lazy_static",
"memchr",
- "regex-automata",
- "serde",
]
[[package]]
@@ -1131,6 +1118,17 @@
]
[[package]]
+name = "comfy-table"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b103d85ca6e209388771bfb7aa6b68a7aeec4afbf6f0a0264bfbf50360e5212e"
+dependencies = [
+ "strum 0.23.0",
+ "strum_macros 0.23.1",
+ "unicode-width",
+]
+
+[[package]]
name = "concurrent-queue"
version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1402,37 +1400,6 @@
]
[[package]]
-name = "csv"
-version = "1.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
-dependencies = [
- "bstr",
- "csv-core",
- "itoa 0.4.8",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "csv-core"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "ct-logs"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8"
-dependencies = [
- "sct 0.6.1",
-]
-
-[[package]]
name = "ctor"
version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1465,7 +1432,7 @@
[[package]]
name = "cumulus-client-cli"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"clap",
"sc-cli",
@@ -1476,7 +1443,7 @@
[[package]]
name = "cumulus-client-collator"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-client-consensus-common",
"cumulus-client-network",
@@ -1500,7 +1467,7 @@
[[package]]
name = "cumulus-client-consensus-aura"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"async-trait",
"cumulus-client-consensus-common",
@@ -1529,7 +1496,7 @@
[[package]]
name = "cumulus-client-consensus-common"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"async-trait",
"cumulus-relay-chain-interface",
@@ -1550,7 +1517,7 @@
[[package]]
name = "cumulus-client-network"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"async-trait",
"cumulus-relay-chain-interface",
@@ -1575,7 +1542,7 @@
[[package]]
name = "cumulus-client-pov-recovery"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-primitives-core",
"cumulus-relay-chain-interface",
@@ -1599,7 +1566,7 @@
[[package]]
name = "cumulus-client-service"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-client-cli",
"cumulus-client-collator",
@@ -1629,7 +1596,7 @@
[[package]]
name = "cumulus-pallet-aura-ext"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"frame-executive",
"frame-support",
@@ -1647,7 +1614,7 @@
[[package]]
name = "cumulus-pallet-dmp-queue"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1665,7 +1632,7 @@
[[package]]
name = "cumulus-pallet-parachain-system"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-pallet-parachain-system-proc-macro",
"cumulus-primitives-core",
@@ -1695,7 +1662,7 @@
[[package]]
name = "cumulus-pallet-parachain-system-proc-macro"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -1706,7 +1673,7 @@
[[package]]
name = "cumulus-pallet-xcm"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1723,7 +1690,7 @@
[[package]]
name = "cumulus-pallet-xcmp-queue"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1741,7 +1708,7 @@
[[package]]
name = "cumulus-primitives-core"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"frame-support",
"parity-scale-codec 3.1.5",
@@ -1757,7 +1724,7 @@
[[package]]
name = "cumulus-primitives-parachain-inherent"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -1780,7 +1747,7 @@
[[package]]
name = "cumulus-primitives-timestamp"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-primitives-core",
"futures 0.3.21",
@@ -1793,7 +1760,7 @@
[[package]]
name = "cumulus-primitives-utility"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1810,7 +1777,7 @@
[[package]]
name = "cumulus-relay-chain-inprocess-interface"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -1818,8 +1785,10 @@
"futures 0.3.21",
"futures-timer",
"parking_lot 0.12.1",
+ "polkadot-cli",
"polkadot-client",
"polkadot-service",
+ "sc-cli",
"sc-client-api",
"sc-consensus-babe",
"sc-network",
@@ -1839,7 +1808,7 @@
[[package]]
name = "cumulus-relay-chain-interface"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -1863,7 +1832,7 @@
[[package]]
name = "cumulus-relay-chain-rpc-interface"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"async-trait",
"backoff",
@@ -1889,7 +1858,7 @@
[[package]]
name = "cumulus-test-relay-sproof-builder"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-primitives-core",
"parity-scale-codec 3.1.5",
@@ -2081,24 +2050,13 @@
]
[[package]]
-name = "dirs"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
-dependencies = [
- "libc",
- "redox_users 0.3.5",
- "winapi",
-]
-
-[[package]]
name = "dirs-sys"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
dependencies = [
"libc",
- "redox_users 0.4.3",
+ "redox_users",
"winapi",
]
@@ -2109,7 +2067,7 @@
checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
dependencies = [
"libc",
- "redox_users 0.4.3",
+ "redox_users",
"winapi",
]
@@ -2222,12 +2180,6 @@
]
[[package]]
-name = "encode_unicode"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
-
-[[package]]
name = "enum-as-inner"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2369,7 +2321,7 @@
[[package]]
name = "evm"
version = "0.35.0"
-source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.22#e9252ed42dc26fc85b6703b1ba50660a08209e55"
+source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.23#e9252ed42dc26fc85b6703b1ba50660a08209e55"
dependencies = [
"auto_impl",
"environmental",
@@ -2415,7 +2367,7 @@
[[package]]
name = "evm-core"
version = "0.35.0"
-source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.22#e9252ed42dc26fc85b6703b1ba50660a08209e55"
+source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.23#e9252ed42dc26fc85b6703b1ba50660a08209e55"
dependencies = [
"parity-scale-codec 3.1.5",
"primitive-types",
@@ -2426,7 +2378,7 @@
[[package]]
name = "evm-gasometer"
version = "0.35.0"
-source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.22#e9252ed42dc26fc85b6703b1ba50660a08209e55"
+source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.23#e9252ed42dc26fc85b6703b1ba50660a08209e55"
dependencies = [
"environmental",
"evm-core",
@@ -2437,7 +2389,7 @@
[[package]]
name = "evm-runtime"
version = "0.35.0"
-source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.22#e9252ed42dc26fc85b6703b1ba50660a08209e55"
+source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.23#e9252ed42dc26fc85b6703b1ba50660a08209e55"
dependencies = [
"auto_impl",
"environmental",
@@ -2529,7 +2481,7 @@
[[package]]
name = "fc-consensus"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"async-trait",
"fc-db",
@@ -2548,7 +2500,7 @@
[[package]]
name = "fc-db"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"fp-storage",
"kvdb-rocksdb",
@@ -2564,7 +2516,7 @@
[[package]]
name = "fc-mapping-sync"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"fc-db",
"fp-consensus",
@@ -2581,7 +2533,7 @@
[[package]]
name = "fc-rpc"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2621,7 +2573,7 @@
[[package]]
name = "fc-rpc-core"
version = "1.1.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2731,7 +2683,7 @@
[[package]]
name = "fork-tree"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
]
@@ -2749,7 +2701,7 @@
[[package]]
name = "fp-consensus"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"ethereum",
"parity-scale-codec 3.1.5",
@@ -2761,7 +2713,7 @@
[[package]]
name = "fp-evm"
version = "3.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"evm",
"frame-support",
@@ -2775,7 +2727,7 @@
[[package]]
name = "fp-evm-mapping"
version = "0.1.0"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"frame-support",
"sp-core",
@@ -2784,7 +2736,7 @@
[[package]]
name = "fp-rpc"
version = "3.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2801,7 +2753,7 @@
[[package]]
name = "fp-self-contained"
version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"ethereum",
"frame-support",
@@ -2817,7 +2769,7 @@
[[package]]
name = "fp-storage"
version = "2.0.0"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"parity-scale-codec 3.1.5",
]
@@ -2825,7 +2777,7 @@
[[package]]
name = "frame-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -2847,11 +2799,12 @@
[[package]]
name = "frame-benchmarking-cli"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"Inflector",
"chrono",
"clap",
+ "comfy-table",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -2865,7 +2818,6 @@
"log",
"memory-db",
"parity-scale-codec 3.1.5",
- "prettytable-rs",
"rand 0.8.5",
"rand_pcg 0.3.1",
"sc-block-builder",
@@ -2897,7 +2849,7 @@
[[package]]
name = "frame-election-provider-solution-type"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -2908,7 +2860,7 @@
[[package]]
name = "frame-election-provider-support"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-election-provider-solution-type",
"frame-support",
@@ -2924,7 +2876,7 @@
[[package]]
name = "frame-executive"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -2952,7 +2904,7 @@
[[package]]
name = "frame-support"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"bitflags",
"frame-metadata",
@@ -2982,7 +2934,7 @@
[[package]]
name = "frame-support-procedural"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"Inflector",
"frame-support-procedural-tools",
@@ -2994,7 +2946,7 @@
[[package]]
name = "frame-support-procedural-tools"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate",
@@ -3006,7 +2958,7 @@
[[package]]
name = "frame-support-procedural-tools-derive"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"proc-macro2",
"quote",
@@ -3016,7 +2968,7 @@
[[package]]
name = "frame-system"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"log",
@@ -3033,7 +2985,7 @@
[[package]]
name = "frame-system-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3048,7 +3000,7 @@
[[package]]
name = "frame-system-rpc-runtime-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"sp-api",
@@ -3057,7 +3009,7 @@
[[package]]
name = "frame-try-runtime"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"sp-api",
@@ -3199,8 +3151,8 @@
checksum = "e01fe9932a224b72b45336d96040aa86386d674a31d0af27d800ea7bc8ca97fe"
dependencies = [
"futures-io",
- "rustls 0.20.6",
- "webpki 0.22.0",
+ "rustls",
+ "webpki",
]
[[package]]
@@ -3562,19 +3514,17 @@
[[package]]
name = "hyper-rustls"
-version = "0.22.1"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
+checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac"
dependencies = [
- "ct-logs",
- "futures-util",
+ "http",
"hyper",
"log",
- "rustls 0.19.1",
- "rustls-native-certs 0.5.0",
+ "rustls",
+ "rustls-native-certs",
"tokio 1.19.2",
- "tokio-rustls 0.22.0",
- "webpki 0.21.4",
+ "tokio-rustls",
]
[[package]]
@@ -3606,9 +3556,9 @@
[[package]]
name = "if-watch"
-version = "1.0.0"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae8f4a3c3d4c89351ca83e120c1c00b27df945d38e05695668c9d4b4f7bc52f3"
+checksum = "774d59367a3d26965d21ac70a86fcb697d83405d1c4312d1d8a6855296af0cf7"
dependencies = [
"async-io",
"core-foundation",
@@ -3790,11 +3740,11 @@
"jsonrpsee-core",
"jsonrpsee-types",
"pin-project 1.0.10",
- "rustls-native-certs 0.6.2",
+ "rustls-native-certs",
"soketto",
"thiserror",
"tokio 1.19.2",
- "tokio-rustls 0.23.4",
+ "tokio-rustls",
"tokio-util",
"tracing",
"webpki-roots",
@@ -3920,8 +3870,8 @@
[[package]]
name = "kusama-runtime"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"beefy-primitives",
"bitvec 1.0.0",
@@ -4013,8 +3963,8 @@
[[package]]
name = "kusama-runtime-constants"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -4174,7 +4124,7 @@
"libp2p-request-response",
"libp2p-swarm",
"log",
- "prost",
+ "prost 0.9.0",
"prost-build",
"rand 0.8.5",
]
@@ -4201,7 +4151,7 @@
"multistream-select",
"parking_lot 0.12.1",
"pin-project 1.0.10",
- "prost",
+ "prost 0.9.0",
"prost-build",
"rand 0.8.5",
"ring",
@@ -4251,7 +4201,7 @@
"libp2p-core",
"libp2p-swarm",
"log",
- "prost",
+ "prost 0.9.0",
"prost-build",
"rand 0.7.3",
"smallvec",
@@ -4275,7 +4225,7 @@
"libp2p-swarm",
"log",
"prometheus-client",
- "prost",
+ "prost 0.9.0",
"prost-build",
"rand 0.7.3",
"regex",
@@ -4297,7 +4247,7 @@
"libp2p-swarm",
"log",
"lru 0.7.7",
- "prost",
+ "prost 0.9.0",
"prost-build",
"smallvec",
]
@@ -4319,7 +4269,7 @@
"libp2p-core",
"libp2p-swarm",
"log",
- "prost",
+ "prost 0.9.0",
"prost-build",
"rand 0.7.3",
"sha2 0.10.2",
@@ -4397,7 +4347,7 @@
"lazy_static",
"libp2p-core",
"log",
- "prost",
+ "prost 0.9.0",
"prost-build",
"rand 0.8.5",
"sha2 0.10.2",
@@ -4434,7 +4384,7 @@
"futures 0.3.21",
"libp2p-core",
"log",
- "prost",
+ "prost 0.9.0",
"prost-build",
"unsigned-varint",
"void",
@@ -4470,7 +4420,7 @@
"libp2p-swarm",
"log",
"pin-project 1.0.10",
- "prost",
+ "prost 0.9.0",
"prost-build",
"rand 0.8.5",
"smallvec",
@@ -4494,7 +4444,7 @@
"libp2p-core",
"libp2p-swarm",
"log",
- "prost",
+ "prost 0.9.0",
"prost-build",
"rand 0.8.5",
"sha2 0.10.2",
@@ -4849,6 +4799,15 @@
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
+name = "memfd"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6627dc657574b49d6ad27105ed671822be56e0d2547d413bfbf3e8d8fa92e7a"
+dependencies = [
+ "libc",
+]
+
+[[package]]
name = "memmap2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4914,21 +4873,6 @@
]
[[package]]
-name = "metered-channel"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
-dependencies = [
- "coarsetime",
- "crossbeam-queue",
- "derive_more",
- "futures 0.3.21",
- "futures-timer",
- "nanorand",
- "thiserror",
- "tracing-gum",
-]
-
-[[package]]
name = "mick-jaeger"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5007,7 +4951,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3db354f401db558759dfc1e568d010a5d4146f4d3f637be1275ec4a3cf09689"
dependencies = [
- "blake2b_simd 1.0.0",
+ "blake2b_simd",
"blake2s_simd",
"blake3",
"core2",
@@ -5307,7 +5251,7 @@
[[package]]
name = "opal-runtime"
-version = "0.9.22"
+version = "0.9.23"
dependencies = [
"cumulus-pallet-aura-ext",
"cumulus-pallet-dmp-queue",
@@ -5406,6 +5350,35 @@
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
+name = "orchestra"
+version = "0.0.1"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
+dependencies = [
+ "async-trait",
+ "dyn-clonable",
+ "futures 0.3.21",
+ "futures-timer",
+ "orchestra-proc-macro",
+ "pin-project 1.0.10",
+ "prioritized-metered-channel",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "orchestra-proc-macro"
+version = "0.0.1"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
+dependencies = [
+ "expander 0.0.6",
+ "petgraph",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "ordered-float"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5417,7 +5390,7 @@
[[package]]
name = "orml-vesting"
version = "0.4.1-dev"
-source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=unique-polkadot-v0.9.22#59f6596ae462035d153e198ba5db8c5e084e6d25"
+source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=unique-polkadot-v0.9.23#97ff860ba8b2bbd246e6c91395fb95fd89c2951f"
dependencies = [
"frame-support",
"frame-system",
@@ -5447,7 +5420,7 @@
[[package]]
name = "pallet-aura"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -5463,7 +5436,7 @@
[[package]]
name = "pallet-authority-discovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -5479,7 +5452,7 @@
[[package]]
name = "pallet-authorship"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -5494,7 +5467,7 @@
[[package]]
name = "pallet-babe"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5518,7 +5491,7 @@
[[package]]
name = "pallet-bags-list"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5538,7 +5511,7 @@
[[package]]
name = "pallet-balances"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5553,7 +5526,7 @@
[[package]]
name = "pallet-base-fee"
version = "1.0.0"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"fp-evm",
"frame-support",
@@ -5568,7 +5541,7 @@
[[package]]
name = "pallet-beefy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"beefy-primitives",
"frame-support",
@@ -5584,7 +5557,7 @@
[[package]]
name = "pallet-beefy-mmr"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"beefy-merkle-tree",
"beefy-primitives",
@@ -5607,7 +5580,7 @@
[[package]]
name = "pallet-bounties"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5625,7 +5598,7 @@
[[package]]
name = "pallet-bridge-dispatch"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-message-dispatch",
"bp-runtime",
@@ -5642,7 +5615,7 @@
[[package]]
name = "pallet-bridge-grandpa"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bp-header-chain",
"bp-runtime",
@@ -5664,7 +5637,7 @@
[[package]]
name = "pallet-bridge-messages"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bitvec 1.0.0",
"bp-message-dispatch",
@@ -5685,7 +5658,7 @@
[[package]]
name = "pallet-child-bounties"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5704,7 +5677,7 @@
[[package]]
name = "pallet-collective"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5742,7 +5715,7 @@
[[package]]
name = "pallet-democracy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5758,7 +5731,7 @@
[[package]]
name = "pallet-election-provider-multi-phase"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5781,7 +5754,7 @@
[[package]]
name = "pallet-election-provider-support-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5794,7 +5767,7 @@
[[package]]
name = "pallet-elections-phragmen"
version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5812,7 +5785,7 @@
[[package]]
name = "pallet-ethereum"
version = "4.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"ethereum",
"ethereum-types",
@@ -5841,7 +5814,7 @@
[[package]]
name = "pallet-evm"
version = "6.0.0-dev"
-source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.22#94cc1f98619da89350f77d18b2e4224b034e07ad"
+source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.23#29adc958b0541466d564c781aa70fb7e3ef263a2"
dependencies = [
"evm",
"fp-evm",
@@ -5964,7 +5937,7 @@
[[package]]
name = "pallet-gilt"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5979,7 +5952,7 @@
[[package]]
name = "pallet-grandpa"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6002,7 +5975,7 @@
[[package]]
name = "pallet-identity"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -6018,7 +5991,7 @@
[[package]]
name = "pallet-im-online"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6038,7 +6011,7 @@
[[package]]
name = "pallet-indices"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6074,7 +6047,7 @@
[[package]]
name = "pallet-membership"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6091,7 +6064,7 @@
[[package]]
name = "pallet-mmr"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"ckb-merkle-mountain-range",
"frame-benchmarking",
@@ -6109,7 +6082,7 @@
[[package]]
name = "pallet-mmr-rpc"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"jsonrpsee",
"parity-scale-codec 3.1.5",
@@ -6124,7 +6097,7 @@
[[package]]
name = "pallet-multisig"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6139,7 +6112,7 @@
[[package]]
name = "pallet-nicks"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -6153,10 +6126,11 @@
[[package]]
name = "pallet-nomination-pools"
version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
+ "log",
"parity-scale-codec 3.1.5",
"scale-info",
"sp-core",
@@ -6168,7 +6142,7 @@
[[package]]
name = "pallet-nomination-pools-benchmarking"
version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6209,7 +6183,7 @@
[[package]]
name = "pallet-offences"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -6226,7 +6200,7 @@
[[package]]
name = "pallet-offences-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6249,7 +6223,7 @@
[[package]]
name = "pallet-preimage"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6265,7 +6239,7 @@
[[package]]
name = "pallet-proxy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6280,7 +6254,7 @@
[[package]]
name = "pallet-randomness-collective-flip"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -6294,7 +6268,7 @@
[[package]]
name = "pallet-recovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6369,7 +6343,7 @@
[[package]]
name = "pallet-scheduler"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6385,7 +6359,7 @@
[[package]]
name = "pallet-session"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -6406,7 +6380,7 @@
[[package]]
name = "pallet-session-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6422,7 +6396,7 @@
[[package]]
name = "pallet-society"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -6436,7 +6410,7 @@
[[package]]
name = "pallet-staking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6459,7 +6433,7 @@
[[package]]
name = "pallet-staking-reward-curve"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -6470,7 +6444,7 @@
[[package]]
name = "pallet-staking-reward-fn"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"log",
"sp-arithmetic",
@@ -6494,7 +6468,7 @@
[[package]]
name = "pallet-sudo"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
@@ -6508,7 +6482,7 @@
[[package]]
name = "pallet-template-transaction-payment"
version = "3.0.0"
-source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.22#9fc4fbc3f83fdc793205f3fef1c97ef168d4dfe0"
+source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.23#5f3b55354830f9707d6632aaa54362deea981116"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6528,7 +6502,7 @@
[[package]]
name = "pallet-timestamp"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6546,7 +6520,7 @@
[[package]]
name = "pallet-tips"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6565,14 +6539,13 @@
[[package]]
name = "pallet-transaction-payment"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec 3.1.5",
"scale-info",
"serde",
- "smallvec",
"sp-core",
"sp-io",
"sp-runtime",
@@ -6582,7 +6555,7 @@
[[package]]
name = "pallet-transaction-payment-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"jsonrpsee",
"pallet-transaction-payment-rpc-runtime-api",
@@ -6597,7 +6570,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.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"pallet-transaction-payment",
"parity-scale-codec 3.1.5",
@@ -6608,7 +6581,7 @@
[[package]]
name = "pallet-treasury"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6667,7 +6640,7 @@
[[package]]
name = "pallet-utility"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6683,7 +6656,7 @@
[[package]]
name = "pallet-vesting"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6697,8 +6670,8 @@
[[package]]
name = "pallet-xcm"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-support",
"frame-system",
@@ -6715,8 +6688,8 @@
[[package]]
name = "pallet-xcm-benchmarks"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6733,7 +6706,7 @@
[[package]]
name = "parachain-info"
version = "0.1.0"
-source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18"
+source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#9c1470893c6bd5f33ad8eb104d159177c6847df5"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -6900,7 +6873,7 @@
"cfg-if 1.0.0",
"instant",
"libc",
- "redox_syscall 0.2.13",
+ "redox_syscall",
"smallvec",
"winapi",
]
@@ -6913,7 +6886,7 @@
dependencies = [
"cfg-if 1.0.0",
"libc",
- "redox_syscall 0.2.13",
+ "redox_syscall",
"smallvec",
"windows-sys",
]
@@ -7079,8 +7052,8 @@
[[package]]
name = "polkadot-approval-distribution"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"polkadot-node-network-protocol",
@@ -7094,8 +7067,8 @@
[[package]]
name = "polkadot-availability-bitfield-distribution"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"polkadot-node-network-protocol",
@@ -7108,8 +7081,8 @@
[[package]]
name = "polkadot-availability-distribution"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"derive_more",
"fatality",
@@ -7131,8 +7104,8 @@
[[package]]
name = "polkadot-availability-recovery"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"fatality",
"futures 0.3.21",
@@ -7152,8 +7125,8 @@
[[package]]
name = "polkadot-cli"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"clap",
"frame-benchmarking-cli",
@@ -7177,8 +7150,8 @@
[[package]]
name = "polkadot-client"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"beefy-primitives",
"frame-benchmarking",
@@ -7217,8 +7190,8 @@
[[package]]
name = "polkadot-collator-protocol"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"always-assert",
"fatality",
@@ -7238,8 +7211,8 @@
[[package]]
name = "polkadot-core-primitives"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"parity-scale-codec 3.1.5",
"parity-util-mem",
@@ -7251,8 +7224,8 @@
[[package]]
name = "polkadot-dispute-distribution"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"derive_more",
"fatality",
@@ -7274,8 +7247,8 @@
[[package]]
name = "polkadot-erasure-coding"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"parity-scale-codec 3.1.5",
"polkadot-node-primitives",
@@ -7288,8 +7261,8 @@
[[package]]
name = "polkadot-gossip-support"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"futures-timer",
@@ -7308,8 +7281,8 @@
[[package]]
name = "polkadot-network-bridge"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"always-assert",
"async-trait",
@@ -7329,8 +7302,8 @@
[[package]]
name = "polkadot-node-collation-generation"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"parity-scale-codec 3.1.5",
@@ -7347,8 +7320,8 @@
[[package]]
name = "polkadot-node-core-approval-voting"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bitvec 1.0.0",
"derive_more",
@@ -7376,8 +7349,8 @@
[[package]]
name = "polkadot-node-core-av-store"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bitvec 1.0.0",
"futures 0.3.21",
@@ -7396,8 +7369,8 @@
[[package]]
name = "polkadot-node-core-backing"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bitvec 1.0.0",
"fatality",
@@ -7415,8 +7388,8 @@
[[package]]
name = "polkadot-node-core-bitfield-signing"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"polkadot-node-subsystem",
@@ -7430,8 +7403,8 @@
[[package]]
name = "polkadot-node-core-candidate-validation"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -7448,8 +7421,8 @@
[[package]]
name = "polkadot-node-core-chain-api"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"polkadot-node-subsystem",
@@ -7463,8 +7436,8 @@
[[package]]
name = "polkadot-node-core-chain-selection"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"futures-timer",
@@ -7480,8 +7453,8 @@
[[package]]
name = "polkadot-node-core-dispute-coordinator"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"fatality",
"futures 0.3.21",
@@ -7499,8 +7472,8 @@
[[package]]
name = "polkadot-node-core-parachains-inherent"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -7516,8 +7489,8 @@
[[package]]
name = "polkadot-node-core-provisioner"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bitvec 1.0.0",
"fatality",
@@ -7534,8 +7507,8 @@
[[package]]
name = "polkadot-node-core-pvf"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"always-assert",
"assert_matches",
@@ -7559,13 +7532,14 @@
"sp-maybe-compressed-blob",
"sp-tracing",
"sp-wasm-interface",
+ "tempfile",
"tracing-gum",
]
[[package]]
name = "polkadot-node-core-pvf-checker"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"polkadot-node-primitives",
@@ -7580,8 +7554,8 @@
[[package]]
name = "polkadot-node-core-runtime-api"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"memory-lru",
@@ -7592,14 +7566,13 @@
"sp-api",
"sp-authority-discovery",
"sp-consensus-babe",
- "sp-core",
"tracing-gum",
]
[[package]]
name = "polkadot-node-jaeger"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"async-std",
"lazy_static",
@@ -7616,16 +7589,16 @@
[[package]]
name = "polkadot-node-metrics"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bs58",
"futures 0.3.21",
"futures-timer",
"log",
- "metered-channel",
"parity-scale-codec 3.1.5",
"polkadot-primitives",
+ "prioritized-metered-channel",
"sc-cli",
"sc-service",
"sc-tracing",
@@ -7635,8 +7608,8 @@
[[package]]
name = "polkadot-node-network-protocol"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"async-trait",
"derive_more",
@@ -7651,12 +7624,13 @@
"sc-network",
"strum 0.24.1",
"thiserror",
+ "tracing-gum",
]
[[package]]
name = "polkadot-node-primitives"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bounded-vec",
"futures 0.3.21",
@@ -7677,8 +7651,8 @@
[[package]]
name = "polkadot-node-subsystem"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"polkadot-node-jaeger",
"polkadot-node-subsystem-types",
@@ -7687,15 +7661,15 @@
[[package]]
name = "polkadot-node-subsystem-types"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"derive_more",
"futures 0.3.21",
+ "orchestra",
"polkadot-node-jaeger",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
- "polkadot-overseer-gen",
"polkadot-primitives",
"polkadot-statement-table",
"sc-network",
@@ -7706,8 +7680,8 @@
[[package]]
name = "polkadot-node-subsystem-util"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"async-trait",
"derive_more",
@@ -7716,7 +7690,6 @@
"itertools",
"kvdb",
"lru 0.7.7",
- "metered-channel",
"parity-db",
"parity-scale-codec 3.1.5",
"parity-util-mem",
@@ -7729,6 +7702,7 @@
"polkadot-node-subsystem",
"polkadot-overseer",
"polkadot-primitives",
+ "prioritized-metered-channel",
"rand 0.8.5",
"sp-application-crypto",
"sp-core",
@@ -7739,58 +7713,30 @@
[[package]]
name = "polkadot-overseer"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"futures 0.3.21",
"futures-timer",
"lru 0.7.7",
+ "orchestra",
"parity-util-mem",
"parking_lot 0.12.1",
"polkadot-node-metrics",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
"polkadot-node-subsystem-types",
- "polkadot-overseer-gen",
"polkadot-primitives",
"sc-client-api",
"sp-api",
- "tracing-gum",
-]
-
-[[package]]
-name = "polkadot-overseer-gen"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
-dependencies = [
- "async-trait",
- "futures 0.3.21",
- "futures-timer",
- "metered-channel",
- "pin-project 1.0.10",
- "polkadot-node-network-protocol",
- "polkadot-node-primitives",
- "polkadot-overseer-gen-proc-macro",
- "thiserror",
+ "sp-core",
"tracing-gum",
]
[[package]]
-name = "polkadot-overseer-gen-proc-macro"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
-dependencies = [
- "expander 0.0.6",
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
name = "polkadot-parachain"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"derive_more",
"frame-support",
@@ -7806,8 +7752,8 @@
[[package]]
name = "polkadot-performance-test"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"env_logger",
"kusama-runtime",
@@ -7821,8 +7767,8 @@
[[package]]
name = "polkadot-primitives"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bitvec 1.0.0",
"frame-system",
@@ -7851,8 +7797,8 @@
[[package]]
name = "polkadot-rpc"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"beefy-gadget",
"beefy-gadget-rpc",
@@ -7883,8 +7829,8 @@
[[package]]
name = "polkadot-runtime"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"beefy-primitives",
"bitvec 1.0.0",
@@ -7969,8 +7915,8 @@
[[package]]
name = "polkadot-runtime-common"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"beefy-primitives",
"bitvec 1.0.0",
@@ -8016,8 +7962,8 @@
[[package]]
name = "polkadot-runtime-constants"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -8028,8 +7974,8 @@
[[package]]
name = "polkadot-runtime-metrics"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bs58",
"parity-scale-codec 3.1.5",
@@ -8040,8 +7986,8 @@
[[package]]
name = "polkadot-runtime-parachains"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"bitflags",
"bitvec 1.0.0",
@@ -8083,8 +8029,8 @@
[[package]]
name = "polkadot-service"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"async-trait",
"beefy-gadget",
@@ -8126,6 +8072,7 @@
"polkadot-node-network-protocol",
"polkadot-node-primitives",
"polkadot-node-subsystem",
+ "polkadot-node-subsystem-types",
"polkadot-node-subsystem-util",
"polkadot-overseer",
"polkadot-parachain",
@@ -8185,8 +8132,8 @@
[[package]]
name = "polkadot-statement-distribution"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"arrayvec 0.5.2",
"fatality",
@@ -8206,8 +8153,8 @@
[[package]]
name = "polkadot-statement-table"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"parity-scale-codec 3.1.5",
"polkadot-primitives",
@@ -8216,8 +8163,8 @@
[[package]]
name = "polkadot-test-runtime"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"beefy-primitives",
"bitvec 1.0.0",
@@ -8278,8 +8225,8 @@
[[package]]
name = "polkadot-test-service"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-benchmarking",
"frame-system",
@@ -8373,20 +8320,6 @@
checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
[[package]]
-name = "prettytable-rs"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fd04b170004fa2daccf418a7f8253aaf033c27760b5f225889024cf66d7ac2e"
-dependencies = [
- "atty",
- "csv",
- "encode_unicode",
- "lazy_static",
- "term",
- "unicode-width",
-]
-
-[[package]]
name = "primitive-types"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8401,6 +8334,21 @@
]
[[package]]
+name = "prioritized-metered-channel"
+version = "0.2.0"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
+dependencies = [
+ "coarsetime",
+ "crossbeam-queue",
+ "derive_more",
+ "futures 0.3.21",
+ "futures-timer",
+ "nanorand",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
name = "proc-macro-crate"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8487,10 +8435,20 @@
checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001"
dependencies = [
"bytes 1.1.0",
- "prost-derive",
+ "prost-derive 0.9.0",
]
[[package]]
+name = "prost"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e"
+dependencies = [
+ "bytes 1.1.0",
+ "prost-derive 0.10.1",
+]
+
+[[package]]
name = "prost-build"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8503,7 +8461,7 @@
"log",
"multimap",
"petgraph",
- "prost",
+ "prost 0.9.0",
"prost-types",
"regex",
"tempfile",
@@ -8524,13 +8482,26 @@
]
[[package]]
+name = "prost-derive"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc"
+dependencies = [
+ "anyhow",
+ "itertools",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "prost-types"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a"
dependencies = [
"bytes 1.1.0",
- "prost",
+ "prost 0.9.0",
]
[[package]]
@@ -8544,7 +8515,7 @@
[[package]]
name = "quartz-runtime"
-version = "0.9.22"
+version = "0.9.23"
dependencies = [
"cumulus-pallet-aura-ext",
"cumulus-pallet-dmp-queue",
@@ -8558,11 +8529,14 @@
"fp-evm-mapping",
"fp-rpc",
"fp-self-contained",
+ "frame-benchmarking",
"frame-executive",
"frame-support",
"frame-system",
+ "frame-system-benchmarking",
"frame-system-rpc-runtime-api",
"frame-try-runtime",
+ "hex-literal",
"log",
"orml-vesting",
"pallet-aura",
@@ -8791,12 +8765,6 @@
[[package]]
name = "redox_syscall"
-version = "0.1.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
-
-[[package]]
-name = "redox_syscall"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
@@ -8806,23 +8774,12 @@
[[package]]
name = "redox_users"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
-dependencies = [
- "getrandom 0.1.16",
- "redox_syscall 0.1.57",
- "rust-argon2",
-]
-
-[[package]]
-name = "redox_users"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [
"getrandom 0.2.7",
- "redox_syscall 0.2.13",
+ "redox_syscall",
"thiserror",
]
@@ -8911,7 +8868,7 @@
[[package]]
name = "remote-externalities"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"env_logger",
"jsonrpsee",
@@ -9031,8 +8988,8 @@
[[package]]
name = "rococo-runtime"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"beefy-merkle-tree",
"beefy-primitives",
@@ -9108,8 +9065,8 @@
[[package]]
name = "rococo-runtime-constants"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -9144,18 +9101,6 @@
]
[[package]]
-name = "rust-argon2"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
-dependencies = [
- "base64",
- "blake2b_simd 0.5.11",
- "constant_time_eq",
- "crossbeam-utils",
-]
-
-[[package]]
name = "rustc-demangle"
version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9207,39 +9152,14 @@
[[package]]
name = "rustls"
-version = "0.19.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
-dependencies = [
- "base64",
- "log",
- "ring",
- "sct 0.6.1",
- "webpki 0.21.4",
-]
-
-[[package]]
-name = "rustls"
version = "0.20.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033"
dependencies = [
"log",
"ring",
- "sct 0.7.0",
- "webpki 0.22.0",
-]
-
-[[package]]
-name = "rustls-native-certs"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092"
-dependencies = [
- "openssl-probe",
- "rustls 0.19.1",
- "schannel",
- "security-framework",
+ "sct",
+ "webpki",
]
[[package]]
@@ -9316,7 +9236,7 @@
[[package]]
name = "sc-allocator"
version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"log",
"sp-core",
@@ -9327,7 +9247,7 @@
[[package]]
name = "sc-authority-discovery"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -9336,7 +9256,7 @@
"libp2p",
"log",
"parity-scale-codec 3.1.5",
- "prost",
+ "prost 0.10.4",
"prost-build",
"rand 0.7.3",
"sc-client-api",
@@ -9354,7 +9274,7 @@
[[package]]
name = "sc-basic-authorship"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"futures-timer",
@@ -9377,7 +9297,7 @@
[[package]]
name = "sc-block-builder"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"sc-client-api",
@@ -9393,7 +9313,7 @@
[[package]]
name = "sc-chain-spec"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"impl-trait-for-tuples",
"memmap2 0.5.4",
@@ -9410,7 +9330,7 @@
[[package]]
name = "sc-chain-spec-derive"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -9421,7 +9341,7 @@
[[package]]
name = "sc-cli"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"chrono",
"clap",
@@ -9460,7 +9380,7 @@
[[package]]
name = "sc-client-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"fnv",
"futures 0.3.21",
@@ -9488,7 +9408,7 @@
[[package]]
name = "sc-client-db"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"hash-db",
"kvdb",
@@ -9513,7 +9433,7 @@
[[package]]
name = "sc-consensus"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -9537,7 +9457,7 @@
[[package]]
name = "sc-consensus-aura"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -9566,7 +9486,7 @@
[[package]]
name = "sc-consensus-babe"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"fork-tree",
@@ -9609,7 +9529,7 @@
[[package]]
name = "sc-consensus-babe-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"jsonrpsee",
@@ -9631,7 +9551,7 @@
[[package]]
name = "sc-consensus-epochs"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"fork-tree",
"parity-scale-codec 3.1.5",
@@ -9644,7 +9564,7 @@
[[package]]
name = "sc-consensus-manual-seal"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"assert_matches",
"async-trait",
@@ -9678,7 +9598,7 @@
[[package]]
name = "sc-consensus-slots"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -9703,7 +9623,7 @@
[[package]]
name = "sc-consensus-uncles"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"sc-client-api",
"sp-authorship",
@@ -9714,7 +9634,7 @@
[[package]]
name = "sc-executor"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"lazy_static",
"lru 0.7.7",
@@ -9741,7 +9661,7 @@
[[package]]
name = "sc-executor-common"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"environmental",
"parity-scale-codec 3.1.5",
@@ -9758,7 +9678,7 @@
[[package]]
name = "sc-executor-wasmi"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"log",
"parity-scale-codec 3.1.5",
@@ -9773,7 +9693,7 @@
[[package]]
name = "sc-executor-wasmtime"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"cfg-if 1.0.0",
"libc",
@@ -9791,7 +9711,7 @@
[[package]]
name = "sc-finality-grandpa"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"ahash",
"async-trait",
@@ -9831,7 +9751,7 @@
[[package]]
name = "sc-finality-grandpa-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"finality-grandpa",
"futures 0.3.21",
@@ -9852,7 +9772,7 @@
[[package]]
name = "sc-informant"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"ansi_term",
"futures 0.3.21",
@@ -9869,7 +9789,7 @@
[[package]]
name = "sc-keystore"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"hex",
@@ -9884,7 +9804,7 @@
[[package]]
name = "sc-network"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"asynchronous-codec",
@@ -9906,13 +9826,14 @@
"parity-scale-codec 3.1.5",
"parking_lot 0.12.1",
"pin-project 1.0.10",
- "prost",
+ "prost 0.10.4",
"prost-build",
"rand 0.7.3",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
"sc-network-common",
+ "sc-network-light",
"sc-network-sync",
"sc-peerset",
"sc-utils",
@@ -9935,7 +9856,7 @@
[[package]]
name = "sc-network-common"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"libp2p",
@@ -9948,7 +9869,7 @@
[[package]]
name = "sc-network-gossip"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"ahash",
"futures 0.3.21",
@@ -9963,9 +9884,29 @@
]
[[package]]
+name = "sc-network-light"
+version = "0.10.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
+dependencies = [
+ "futures 0.3.21",
+ "libp2p",
+ "log",
+ "parity-scale-codec 3.1.5",
+ "prost 0.10.4",
+ "prost-build",
+ "sc-client-api",
+ "sc-network-common",
+ "sc-peerset",
+ "sp-blockchain",
+ "sp-core",
+ "sp-runtime",
+ "thiserror",
+]
+
+[[package]]
name = "sc-network-sync"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"bitflags",
"either",
@@ -9975,7 +9916,7 @@
"log",
"lru 0.7.7",
"parity-scale-codec 3.1.5",
- "prost",
+ "prost 0.10.4",
"prost-build",
"sc-client-api",
"sc-consensus",
@@ -9994,7 +9935,7 @@
[[package]]
name = "sc-offchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"bytes 1.1.0",
"fnv",
@@ -10022,7 +9963,7 @@
[[package]]
name = "sc-peerset"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"libp2p",
@@ -10035,7 +9976,7 @@
[[package]]
name = "sc-proposer-metrics"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -10044,7 +9985,7 @@
[[package]]
name = "sc-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"hash-db",
@@ -10074,7 +10015,7 @@
[[package]]
name = "sc-rpc-api"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"jsonrpsee",
@@ -10097,7 +10038,7 @@
[[package]]
name = "sc-rpc-server"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"jsonrpsee",
@@ -10110,7 +10051,7 @@
[[package]]
name = "sc-service"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"directories",
@@ -10175,7 +10116,7 @@
[[package]]
name = "sc-state-db"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"log",
"parity-scale-codec 3.1.5",
@@ -10189,7 +10130,7 @@
[[package]]
name = "sc-sync-state-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"jsonrpsee",
"parity-scale-codec 3.1.5",
@@ -10208,7 +10149,7 @@
[[package]]
name = "sc-sysinfo"
version = "6.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"libc",
@@ -10227,7 +10168,7 @@
[[package]]
name = "sc-telemetry"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"chrono",
"futures 0.3.21",
@@ -10245,7 +10186,7 @@
[[package]]
name = "sc-tracing"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"ansi_term",
"atty",
@@ -10276,7 +10217,7 @@
[[package]]
name = "sc-tracing-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -10287,7 +10228,7 @@
[[package]]
name = "sc-transaction-pool"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"futures-timer",
@@ -10314,7 +10255,7 @@
[[package]]
name = "sc-transaction-pool-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"log",
@@ -10327,7 +10268,7 @@
[[package]]
name = "sc-utils"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"futures-timer",
@@ -10399,16 +10340,6 @@
[[package]]
name = "sct"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "sct"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
@@ -10699,8 +10630,8 @@
[[package]]
name = "slot-range-helper"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"enumn",
"parity-scale-codec 3.1.5",
@@ -10776,7 +10707,7 @@
[[package]]
name = "sp-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"hash-db",
"log",
@@ -10793,7 +10724,7 @@
[[package]]
name = "sp-api-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"blake2",
"proc-macro-crate",
@@ -10805,7 +10736,7 @@
[[package]]
name = "sp-application-crypto"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"scale-info",
@@ -10818,7 +10749,7 @@
[[package]]
name = "sp-arithmetic"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"integer-sqrt",
"num-traits",
@@ -10833,7 +10764,7 @@
[[package]]
name = "sp-authority-discovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"scale-info",
@@ -10846,7 +10777,7 @@
[[package]]
name = "sp-authorship"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"parity-scale-codec 3.1.5",
@@ -10858,7 +10789,7 @@
[[package]]
name = "sp-block-builder"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"sp-api",
@@ -10870,7 +10801,7 @@
[[package]]
name = "sp-blockchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"log",
@@ -10888,7 +10819,7 @@
[[package]]
name = "sp-consensus"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -10907,7 +10838,7 @@
[[package]]
name = "sp-consensus-aura"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"parity-scale-codec 3.1.5",
@@ -10925,7 +10856,7 @@
[[package]]
name = "sp-consensus-babe"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"merlin",
@@ -10948,7 +10879,7 @@
[[package]]
name = "sp-consensus-slots"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"scale-info",
@@ -10962,7 +10893,7 @@
[[package]]
name = "sp-consensus-vrf"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"scale-info",
@@ -10975,7 +10906,7 @@
[[package]]
name = "sp-core"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"base58",
"bitflags",
@@ -11021,7 +10952,7 @@
[[package]]
name = "sp-core-hashing"
version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"blake2",
"byteorder",
@@ -11035,7 +10966,7 @@
[[package]]
name = "sp-core-hashing-proc-macro"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"proc-macro2",
"quote",
@@ -11046,7 +10977,7 @@
[[package]]
name = "sp-database"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"kvdb",
"parking_lot 0.12.1",
@@ -11055,7 +10986,7 @@
[[package]]
name = "sp-debug-derive"
version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"proc-macro2",
"quote",
@@ -11065,7 +10996,7 @@
[[package]]
name = "sp-externalities"
version = "0.12.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"environmental",
"parity-scale-codec 3.1.5",
@@ -11076,7 +11007,7 @@
[[package]]
name = "sp-finality-grandpa"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"finality-grandpa",
"log",
@@ -11094,7 +11025,7 @@
[[package]]
name = "sp-inherents"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"impl-trait-for-tuples",
@@ -11108,7 +11039,7 @@
[[package]]
name = "sp-io"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"hash-db",
@@ -11133,7 +11064,7 @@
[[package]]
name = "sp-keyring"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"lazy_static",
"sp-core",
@@ -11144,7 +11075,7 @@
[[package]]
name = "sp-keystore"
version = "0.12.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -11161,7 +11092,7 @@
[[package]]
name = "sp-maybe-compressed-blob"
version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"thiserror",
"zstd",
@@ -11170,7 +11101,7 @@
[[package]]
name = "sp-mmr-primitives"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"log",
"parity-scale-codec 3.1.5",
@@ -11185,7 +11116,7 @@
[[package]]
name = "sp-npos-elections"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"scale-info",
@@ -11199,7 +11130,7 @@
[[package]]
name = "sp-offchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"sp-api",
"sp-core",
@@ -11209,7 +11140,7 @@
[[package]]
name = "sp-panic-handler"
version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"backtrace",
"lazy_static",
@@ -11219,7 +11150,7 @@
[[package]]
name = "sp-rpc"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"rustc-hash",
"serde",
@@ -11229,7 +11160,7 @@
[[package]]
name = "sp-runtime"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"either",
"hash256-std-hasher",
@@ -11251,7 +11182,7 @@
[[package]]
name = "sp-runtime-interface"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec 3.1.5",
@@ -11268,7 +11199,7 @@
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"Inflector",
"proc-macro-crate",
@@ -11280,7 +11211,7 @@
[[package]]
name = "sp-sandbox"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"log",
"parity-scale-codec 3.1.5",
@@ -11294,7 +11225,7 @@
[[package]]
name = "sp-serializer"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"serde",
"serde_json",
@@ -11303,7 +11234,7 @@
[[package]]
name = "sp-session"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"scale-info",
@@ -11317,7 +11248,7 @@
[[package]]
name = "sp-staking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"scale-info",
@@ -11328,7 +11259,7 @@
[[package]]
name = "sp-state-machine"
version = "0.12.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"hash-db",
"log",
@@ -11350,12 +11281,12 @@
[[package]]
name = "sp-std"
version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
[[package]]
name = "sp-storage"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"impl-serde",
"parity-scale-codec 3.1.5",
@@ -11368,7 +11299,7 @@
[[package]]
name = "sp-tasks"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"log",
"sp-core",
@@ -11381,7 +11312,7 @@
[[package]]
name = "sp-timestamp"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"futures-timer",
@@ -11397,7 +11328,7 @@
[[package]]
name = "sp-tracing"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"sp-std",
@@ -11409,7 +11340,7 @@
[[package]]
name = "sp-transaction-pool"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"sp-api",
"sp-runtime",
@@ -11418,7 +11349,7 @@
[[package]]
name = "sp-transaction-storage-proof"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"log",
@@ -11434,7 +11365,7 @@
[[package]]
name = "sp-trie"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"hash-db",
"memory-db",
@@ -11450,7 +11381,7 @@
[[package]]
name = "sp-version"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"impl-serde",
"parity-scale-codec 3.1.5",
@@ -11467,7 +11398,7 @@
[[package]]
name = "sp-version-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"parity-scale-codec 3.1.5",
"proc-macro2",
@@ -11478,7 +11409,7 @@
[[package]]
name = "sp-wasm-interface"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"impl-trait-for-tuples",
"log",
@@ -11633,7 +11564,7 @@
[[package]]
name = "substrate-build-script-utils"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"platforms",
]
@@ -11641,7 +11572,7 @@
[[package]]
name = "substrate-frame-rpc-system"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"frame-system-rpc-runtime-api",
"futures 0.3.21",
@@ -11662,7 +11593,7 @@
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures-util",
"hyper",
@@ -11675,7 +11606,7 @@
[[package]]
name = "substrate-state-trie-migration-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"jsonrpsee",
"log",
@@ -11696,7 +11627,7 @@
[[package]]
name = "substrate-test-client"
version = "2.0.1"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"async-trait",
"futures 0.3.21",
@@ -11722,7 +11653,7 @@
[[package]]
name = "substrate-test-utils"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"futures 0.3.21",
"substrate-test-utils-derive",
@@ -11732,7 +11663,7 @@
[[package]]
name = "substrate-test-utils-derive"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -11743,7 +11674,7 @@
[[package]]
name = "substrate-wasm-builder"
version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"ansi_term",
"build-helper",
@@ -11827,19 +11758,8 @@
"cfg-if 1.0.0",
"fastrand",
"libc",
- "redox_syscall 0.2.13",
+ "redox_syscall",
"remove_dir_all",
- "winapi",
-]
-
-[[package]]
-name = "term"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
-dependencies = [
- "byteorder",
- "dirs",
"winapi",
]
@@ -11854,8 +11774,8 @@
[[package]]
name = "test-runtime-constants"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -12077,24 +11997,13 @@
[[package]]
name = "tokio-rustls"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
-dependencies = [
- "rustls 0.19.1",
- "tokio 1.19.2",
- "webpki 0.21.4",
-]
-
-[[package]]
-name = "tokio-rustls"
version = "0.23.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
dependencies = [
- "rustls 0.20.6",
+ "rustls",
"tokio 1.19.2",
- "webpki 0.22.0",
+ "webpki",
]
[[package]]
@@ -12172,8 +12081,8 @@
[[package]]
name = "tracing-gum"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"polkadot-node-jaeger",
"polkadot-primitives",
@@ -12183,8 +12092,8 @@
[[package]]
name = "tracing-gum-proc-macro"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"expander 0.0.6",
"proc-macro-crate",
@@ -12323,7 +12232,7 @@
[[package]]
name = "try-runtime-cli"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#76522d7937ba94ff1becef4e4e3ca78e3e1de341"
dependencies = [
"clap",
"jsonrpsee",
@@ -12357,7 +12266,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if 0.1.10",
"digest 0.10.3",
"rand 0.8.5",
"static_assertions",
@@ -12457,7 +12366,7 @@
[[package]]
name = "unique-node"
-version = "0.9.22"
+version = "0.9.23"
dependencies = [
"clap",
"cumulus-client-cli",
@@ -12594,7 +12503,7 @@
[[package]]
name = "unique-runtime"
-version = "0.9.22"
+version = "0.9.23"
dependencies = [
"cumulus-pallet-aura-ext",
"cumulus-pallet-dmp-queue",
@@ -12676,7 +12585,7 @@
[[package]]
name = "unique-runtime-common"
-version = "0.9.22"
+version = "0.9.23"
dependencies = [
"evm-coder",
"fp-rpc",
@@ -12763,7 +12672,7 @@
[[package]]
name = "up-sponsorship"
version = "0.1.0"
-source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.22#9fc4fbc3f83fdc793205f3fef1c97ef168d4dfe0"
+source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.23#5f3b55354830f9707d6632aaa54362deea981116"
dependencies = [
"impl-trait-for-tuples",
]
@@ -13135,6 +13044,7 @@
"libc",
"log",
"mach",
+ "memfd",
"memoffset",
"more-asserts",
"rand 0.8.5",
@@ -13170,16 +13080,6 @@
[[package]]
name = "webpki"
-version = "0.21.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "webpki"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
@@ -13194,7 +13094,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf"
dependencies = [
- "webpki 0.22.0",
+ "webpki",
]
[[package]]
@@ -13208,8 +13108,8 @@
[[package]]
name = "westend-runtime"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"beefy-primitives",
"bitvec 1.0.0",
@@ -13297,8 +13197,8 @@
[[package]]
name = "westend-runtime-constants"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -13357,15 +13257,15 @@
[[package]]
name = "windows"
-version = "0.29.0"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aac7fef12f4b59cd0a29339406cc9203ab44e440ddff6b3f5a41455349fa9cf3"
+checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f"
dependencies = [
- "windows_aarch64_msvc 0.29.0",
- "windows_i686_gnu 0.29.0",
- "windows_i686_msvc 0.29.0",
- "windows_x86_64_gnu 0.29.0",
- "windows_x86_64_msvc 0.29.0",
+ "windows_aarch64_msvc 0.34.0",
+ "windows_i686_gnu 0.34.0",
+ "windows_i686_msvc 0.34.0",
+ "windows_x86_64_gnu 0.34.0",
+ "windows_x86_64_msvc 0.34.0",
]
[[package]]
@@ -13383,9 +13283,9 @@
[[package]]
name = "windows_aarch64_msvc"
-version = "0.29.0"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d027175d00b01e0cbeb97d6ab6ebe03b12330a35786cbaca5252b1c4bf5d9b"
+checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d"
[[package]]
name = "windows_aarch64_msvc"
@@ -13395,9 +13295,9 @@
[[package]]
name = "windows_i686_gnu"
-version = "0.29.0"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8793f59f7b8e8b01eda1a652b2697d87b93097198ae85f823b969ca5b89bba58"
+checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed"
[[package]]
name = "windows_i686_gnu"
@@ -13407,9 +13307,9 @@
[[package]]
name = "windows_i686_msvc"
-version = "0.29.0"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8602f6c418b67024be2996c512f5f995de3ba417f4c75af68401ab8756796ae4"
+checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956"
[[package]]
name = "windows_i686_msvc"
@@ -13419,9 +13319,9 @@
[[package]]
name = "windows_x86_64_gnu"
-version = "0.29.0"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3d615f419543e0bd7d2b3323af0d86ff19cbc4f816e6453f36a2c2ce889c354"
+checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4"
[[package]]
name = "windows_x86_64_gnu"
@@ -13431,9 +13331,9 @@
[[package]]
name = "windows_x86_64_msvc"
-version = "0.29.0"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11d95421d9ed3672c280884da53201a5c46b7b2765ca6faf34b0d71cf34a3561"
+checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9"
[[package]]
name = "windows_x86_64_msvc"
@@ -13478,8 +13378,8 @@
[[package]]
name = "xcm"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"derivative",
"impl-trait-for-tuples",
@@ -13491,8 +13391,8 @@
[[package]]
name = "xcm-builder"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-support",
"frame-system",
@@ -13511,8 +13411,8 @@
[[package]]
name = "xcm-executor"
-version = "0.9.22"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+version = "0.9.23"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -13530,7 +13430,7 @@
[[package]]
name = "xcm-procedural"
version = "0.1.0"
-source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d"
+source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0"
dependencies = [
"Inflector",
"proc-macro2",
Dockerfile-parachaindiffbeforeafterboth--- a/Dockerfile-parachain
+++ b/Dockerfile-parachain
@@ -4,7 +4,7 @@
ARG RUST_TOOLCHAIN=nightly-2022-04-07
#ARG RUST_C=1.62.0-nightly
-ARG POLKA_VERSION=release-v0.9.22
+ARG POLKA_VERSION=release-v0.9.23
ARG UNIQUE_BRANCH=develop
#ARG USER=***
Makefilediffbeforeafterboth--- a/Makefile
+++ b/Makefile
@@ -59,7 +59,7 @@
.PHONY: _bench
_bench:
- cargo run --release --features runtime-benchmarks,unique-runtime -- \
+ cargo run --release --features runtime-benchmarks,$(RUNTIME) -- \
benchmark pallet --pallet pallet-$(if $(PALLET),$(PALLET),$(error Must set PALLET)) \
--wasm-execution compiled --extrinsic '*' \
--template .maintain/frame-weight-template.hbs --steps=50 --repeat=80 --heap-pages=4096 \
@@ -101,5 +101,9 @@
bench-rmrk-core:
make _bench PALLET=proxy-rmrk-core
+.PHONY: bench-rmrk-equip
+bench-rmrk-equip:
+ make _bench PALLET=proxy-rmrk-equip
+
.PHONY: bench
-bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-scheduler bench-rmrk-core
+bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-scheduler bench-rmrk-core bench-rmrk-equip
README.mddiffbeforeafterboth--- a/README.md
+++ b/README.md
@@ -91,7 +91,7 @@
```
git clone https://github.com/paritytech/polkadot.git
cd polkadot
-git checkout release-v0.9.22
+git checkout release-v0.9.23
cargo build --release
```
client/rpc/Cargo.tomldiffbeforeafterboth--- a/client/rpc/Cargo.toml
+++ b/client/rpc/Cargo.toml
@@ -14,9 +14,9 @@
jsonrpsee = { version = "0.13.0", features = ["server", "macros"] }
anyhow = "1.0.57"
-sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-blockchain = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-blockchain = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
crates/evm-coder/Cargo.tomldiffbeforeafterboth--- a/crates/evm-coder/Cargo.toml
+++ b/crates/evm-coder/Cargo.toml
@@ -9,7 +9,7 @@
primitive-types = { version = "0.11.1", default-features = false }
hex-literal = "0.3.3"
ethereum = { version = "0.12.0", default-features = false }
-evm-core = { default-features = false , git = "https://github.com/uniquenetwork/evm", branch = "unique-polkadot-v0.9.22" }
+evm-core = { default-features = false , git = "https://github.com/uniquenetwork/evm", branch = "unique-polkadot-v0.9.23" }
impl-trait-for-tuples = "0.2.1"
[dev-dependencies]
crates/evm-coder/tests/generics.rsdiffbeforeafterboth--- a/crates/evm-coder/tests/generics.rs
+++ b/crates/evm-coder/tests/generics.rs
@@ -41,7 +41,7 @@
T: core::fmt::Debug,
{
fn test_3(&self) -> Result<uint256> {
- todo!()
+ unreachable!()
}
}
node/cli/Cargo.tomldiffbeforeafterboth--- a/node/cli/Cargo.toml
+++ b/node/cli/Cargo.toml
@@ -3,7 +3,7 @@
[build-dependencies.substrate-build-script-utils]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
################################################################################
# Substrate Dependecies
@@ -16,158 +16,158 @@
[dependencies.frame-benchmarking]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-benchmarking-cli]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.try-runtime-cli]
git = 'https://github.com/paritytech/substrate'
-branch = 'polkadot-v0.9.22'
+branch = 'polkadot-v0.9.23'
[dependencies.pallet-transaction-payment-rpc]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.substrate-prometheus-endpoint]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-basic-authorship]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-chain-spec]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-cli]
features = ['wasmtime']
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-client-api]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-consensus]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-consensus-aura]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-executor]
features = ['wasmtime']
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-finality-grandpa]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-keystore]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-rpc]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-rpc-api]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-service]
features = ['wasmtime']
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-telemetry]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-transaction-pool]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-tracing]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-sysinfo]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-block-builder]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-api]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-blockchain]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-consensus]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-consensus-aura]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-core]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-finality-grandpa]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-inherents]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-keystore]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-offchain]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-runtime]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-session]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-timestamp]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-transaction-pool]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-trie]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.substrate-frame-rpc-system]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sc-network]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.serde]
features = ['derive']
@@ -178,76 +178,76 @@
[dependencies.sc-consensus-manual-seal]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
################################################################################
# Cumulus dependencies
[dependencies.cumulus-client-consensus-aura]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-client-consensus-common]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-client-collator]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-client-cli]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-client-network]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-primitives-core]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-primitives-parachain-inherent]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-client-service]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-relay-chain-interface]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-relay-chain-inprocess-interface]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-relay-chain-rpc-interface]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
################################################################################
# Polkadot dependencies
[dependencies.polkadot-primitives]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
[dependencies.polkadot-service]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
[dependencies.polkadot-cli]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
[dependencies.polkadot-test-service]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
[dependencies.polkadot-parachain]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
################################################################################
@@ -277,7 +277,7 @@
[dependencies.pallet-transaction-payment-rpc-runtime-api]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
################################################################################
# Package
@@ -291,7 +291,7 @@
license = 'GPLv3'
name = 'unique-node'
repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.22'
+version = '0.9.23'
[[bin]]
name = 'unique-collator'
@@ -309,13 +309,13 @@
jsonrpsee = { version = "0.13.0", features = ["server", "macros"] }
tokio = { version = "1.17.0", features = ["time"] }
-fc-rpc-core = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fc-consensus = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fc-mapping-sync = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fc-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fc-db = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+fc-rpc-core = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fc-consensus = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fc-mapping-sync = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fc-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fc-db = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
unique-rpc = { default-features = false, path = "../rpc" }
rmrk-rpc = { path = "../../primitives/rmrk-rpc" }
@@ -323,7 +323,9 @@
[features]
default = []
runtime-benchmarks = [
- 'unique-runtime/runtime-benchmarks',
+ 'unique-runtime?/runtime-benchmarks',
+ 'quartz-runtime?/runtime-benchmarks',
+ 'opal-runtime/runtime-benchmarks',
'polkadot-service/runtime-benchmarks',
]
try-runtime = []
node/cli/src/chain_spec.rsdiffbeforeafterboth--- a/node/cli/src/chain_spec.rs
+++ b/node/cli/src/chain_spec.rs
@@ -26,13 +26,13 @@
use unique_runtime_common::types::*;
#[cfg(feature = "unique-runtime")]
-use unique_runtime as default_runtime;
+pub use unique_runtime as default_runtime;
#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]
-use quartz_runtime as default_runtime;
+pub use quartz_runtime as default_runtime;
#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]
-use opal_runtime as default_runtime;
+pub use opal_runtime as default_runtime;
/// The `ChainSpec` parameterized for the unique runtime.
#[cfg(feature = "unique-runtime")]
node/cli/src/command.rsdiffbeforeafterboth--- a/node/cli/src/command.rs
+++ b/node/cli/src/command.rs
@@ -33,7 +33,9 @@
// limitations under the License.
use crate::{
- chain_spec::{self, RuntimeId, RuntimeIdentification, ServiceId, ServiceIdentification},
+ chain_spec::{
+ self, RuntimeId, RuntimeIdentification, ServiceId, ServiceIdentification, default_runtime,
+ },
cli::{Cli, RelayChainCli, Subcommand},
service::{new_partial, start_node, start_dev_node},
};
@@ -44,14 +46,13 @@
#[cfg(feature = "quartz-runtime")]
use crate::service::QuartzRuntimeExecutor;
-use crate::service::OpalRuntimeExecutor;
+use crate::service::{OpalRuntimeExecutor, DefaultRuntimeExecutor};
use codec::Encode;
use cumulus_primitives_core::ParaId;
use cumulus_client_service::genesis::generate_genesis_block;
use std::{future::Future, pin::Pin};
use log::info;
-use polkadot_parachain::primitives::AccountIdConversion;
use sc_cli::{
ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams,
NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli,
@@ -60,7 +61,7 @@
config::{BasePath, PrometheusConfig},
};
use sp_core::hexdisplay::HexDisplay;
-use sp_runtime::traits::Block as BlockT;
+use sp_runtime::traits::{AccountIdConversion, Block as BlockT};
use std::{io::Write, net::SocketAddr, time::Duration};
use unique_runtime_common::types::Block;
@@ -372,7 +373,6 @@
Ok(())
}
- #[cfg(feature = "unique-runtime")]
Some(Subcommand::Benchmark(cmd)) => {
use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE};
let runner = cli.create_runner(cmd)?;
@@ -380,7 +380,7 @@
match cmd {
BenchmarkCmd::Pallet(cmd) => {
if cfg!(feature = "runtime-benchmarks") {
- runner.sync_run(|config| cmd.run::<Block, UniqueRuntimeExecutor>(config))
+ runner.sync_run(|config| cmd.run::<Block, DefaultRuntimeExecutor>(config))
} else {
Err("Benchmarking wasn't enabled when building the node. \
You can enable it with `--features runtime-benchmarks`."
@@ -389,16 +389,16 @@
}
BenchmarkCmd::Block(cmd) => runner.sync_run(|config| {
let partials = new_partial::<
- unique_runtime::RuntimeApi,
- UniqueRuntimeExecutor,
+ default_runtime::RuntimeApi,
+ DefaultRuntimeExecutor,
_,
>(&config, crate::service::parachain_build_import_queue)?;
cmd.run(partials.client)
}),
BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| {
let partials = new_partial::<
- unique_runtime::RuntimeApi,
- UniqueRuntimeExecutor,
+ default_runtime::RuntimeApi,
+ DefaultRuntimeExecutor,
_,
>(&config, crate::service::parachain_build_import_queue)?;
let db = partials.backend.expose_db();
@@ -411,10 +411,6 @@
}
BenchmarkCmd::Overhead(_) => Err("Unsupported benchmarking command".into()),
}
- }
- #[cfg(not(feature = "unique-runtime"))]
- Some(Subcommand::Benchmark(..)) => {
- Err("benchmarking is only available with unique runtime enabled".into())
}
Some(Subcommand::TryRuntime(cmd)) => {
if cfg!(feature = "try-runtime") {
@@ -495,10 +491,7 @@
let para_id = ParaId::from(para_id);
- let parachain_account =
- AccountIdConversion::<polkadot_primitives::v2::AccountId>::into_account(
- ¶_id,
- );
+ let parachain_account = AccountIdConversion::<polkadot_primitives::v2::AccountId>::into_account_truncating(¶_id);
let state_version =
RelayChainCli::native_runtime_version(&config.chain_spec).state_version();
node/cli/src/service.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// std18use std::sync::Arc;19use std::sync::Mutex;20use std::collections::BTreeMap;21use std::time::Duration;22use std::pin::Pin;23use fc_rpc_core::types::FeeHistoryCache;24use futures::{25 Stream, StreamExt,26 stream::select,27 task::{Context, Poll},28};29use tokio::time::Interval;3031use unique_rpc::overrides_handle;3233use serde::{Serialize, Deserialize};3435// Cumulus Imports36use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion};37use cumulus_client_consensus_common::ParachainConsensus;38use cumulus_client_service::{39 prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams,40};41use cumulus_client_cli::CollatorOptions;42use cumulus_client_network::BlockAnnounceValidator;43use cumulus_primitives_core::ParaId;44use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain;45use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult};46use cumulus_relay_chain_rpc_interface::RelayChainRPCInterface;4748// Substrate Imports49use sc_client_api::ExecutorProvider;50use sc_executor::NativeElseWasmExecutor;51use sc_executor::NativeExecutionDispatch;52use sc_network::NetworkService;53use sc_service::{BasePath, Configuration, PartialComponents, Role, TaskManager};54use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle};55use sp_keystore::SyncCryptoStorePtr;56use sp_runtime::traits::BlakeTwo256;57use substrate_prometheus_endpoint::Registry;58use sc_client_api::BlockchainEvents;5960use polkadot_service::CollatorPair;6162// Frontier Imports63use fc_rpc_core::types::FilterPool;64use fc_mapping_sync::{MappingSyncWorker, SyncStrategy};6566use unique_runtime_common::types::{AuraId, RuntimeInstance, AccountId, Balance, Index, Hash, Block};6768// RMRK69use up_data_structs::{70 RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo,71 RmrkPartType, RmrkTheme,72};7374/// Unique native executor instance.75#[cfg(feature = "unique-runtime")]76pub struct UniqueRuntimeExecutor;7778#[cfg(feature = "quartz-runtime")]79/// Quartz native executor instance.8081pub struct QuartzRuntimeExecutor;8283/// Opal native executor instance.84pub struct OpalRuntimeExecutor;8586#[cfg(feature = "unique-runtime")]87impl NativeExecutionDispatch for UniqueRuntimeExecutor {88 type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;8990 fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {91 unique_runtime::api::dispatch(method, data)92 }9394 fn native_version() -> sc_executor::NativeVersion {95 unique_runtime::native_version()96 }97}9899#[cfg(feature = "quartz-runtime")]100impl NativeExecutionDispatch for QuartzRuntimeExecutor {101 type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;102103 fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {104 quartz_runtime::api::dispatch(method, data)105 }106107 fn native_version() -> sc_executor::NativeVersion {108 quartz_runtime::native_version()109 }110}111112impl NativeExecutionDispatch for OpalRuntimeExecutor {113 type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;114115 fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {116 opal_runtime::api::dispatch(method, data)117 }118119 fn native_version() -> sc_executor::NativeVersion {120 opal_runtime::native_version()121 }122}123124pub struct AutosealInterval {125 interval: Interval,126}127128impl AutosealInterval {129 pub fn new(config: &Configuration, interval: Duration) -> Self {130 let _tokio_runtime = config.tokio_handle.enter();131 let interval = tokio::time::interval(interval);132133 Self { interval }134 }135}136137impl Stream for AutosealInterval {138 type Item = tokio::time::Instant;139140 fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {141 self.interval.poll_tick(cx).map(Some)142 }143}144145pub fn open_frontier_backend(config: &Configuration) -> Result<Arc<fc_db::Backend<Block>>, String> {146 let config_dir = config147 .base_path148 .as_ref()149 .map(|base_path| base_path.config_dir(config.chain_spec.id()))150 .unwrap_or_else(|| {151 BasePath::from_project("", "", "unique").config_dir(config.chain_spec.id())152 });153 let database_dir = config_dir.join("frontier").join("db");154155 Ok(Arc::new(fc_db::Backend::<Block>::new(156 &fc_db::DatabaseSettings {157 source: fc_db::DatabaseSource::RocksDb {158 path: database_dir,159 cache_size: 0,160 },161 },162 )?))163}164165type FullClient<RuntimeApi, ExecutorDispatch> =166 sc_service::TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<ExecutorDispatch>>;167type FullBackend = sc_service::TFullBackend<Block>;168type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;169170/// Starts a `ServiceBuilder` for a full service.171///172/// Use this macro if you don't actually need the full service, but just the builder in order to173/// be able to perform chain operations.174#[allow(clippy::type_complexity)]175pub fn new_partial<RuntimeApi, ExecutorDispatch, BIQ>(176 config: &Configuration,177 build_import_queue: BIQ,178) -> Result<179 PartialComponents<180 FullClient<RuntimeApi, ExecutorDispatch>,181 FullBackend,182 FullSelectChain,183 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,184 sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>,185 (186 Option<Telemetry>,187 Option<FilterPool>,188 Arc<fc_db::Backend<Block>>,189 Option<TelemetryWorkerHandle>,190 FeeHistoryCache,191 ),192 >,193 sc_service::Error,194>195where196 sc_client_api::StateBackendFor<FullBackend, Block>: sp_api::StateBackend<BlakeTwo256>,197 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>198 + Send199 + Sync200 + 'static,201 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>,202 ExecutorDispatch: NativeExecutionDispatch + 'static,203 BIQ: FnOnce(204 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,205 &Configuration,206 Option<TelemetryHandle>,207 &TaskManager,208 ) -> Result<209 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,210 sc_service::Error,211 >,212{213 let _telemetry = config214 .telemetry_endpoints215 .clone()216 .filter(|x| !x.is_empty())217 .map(|endpoints| -> Result<_, sc_telemetry::Error> {218 let worker = TelemetryWorker::new(16)?;219 let telemetry = worker.handle().new_telemetry(endpoints);220 Ok((worker, telemetry))221 })222 .transpose()?;223224 let telemetry = config225 .telemetry_endpoints226 .clone()227 .filter(|x| !x.is_empty())228 .map(|endpoints| -> Result<_, sc_telemetry::Error> {229 let worker = TelemetryWorker::new(16)?;230 let telemetry = worker.handle().new_telemetry(endpoints);231 Ok((worker, telemetry))232 })233 .transpose()?;234235 let executor = NativeElseWasmExecutor::<ExecutorDispatch>::new(236 config.wasm_method,237 config.default_heap_pages,238 config.max_runtime_instances,239 config.runtime_cache_size,240 );241242 let (client, backend, keystore_container, task_manager) =243 sc_service::new_full_parts::<Block, RuntimeApi, _>(244 config,245 telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),246 executor,247 )?;248 let client = Arc::new(client);249250 let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle());251252 let telemetry = telemetry.map(|(worker, telemetry)| {253 task_manager254 .spawn_handle()255 .spawn("telemetry", None, worker.run());256 telemetry257 });258259 let select_chain = sc_consensus::LongestChain::new(backend.clone());260261 let transaction_pool = sc_transaction_pool::BasicPool::new_full(262 config.transaction_pool.clone(),263 config.role.is_authority().into(),264 config.prometheus_registry(),265 task_manager.spawn_essential_handle(),266 client.clone(),267 );268269 let filter_pool: Option<FilterPool> = Some(Arc::new(Mutex::new(BTreeMap::new())));270271 let frontier_backend = open_frontier_backend(config)?;272273 let import_queue = build_import_queue(274 client.clone(),275 config,276 telemetry.as_ref().map(|telemetry| telemetry.handle()),277 &task_manager,278 )?;279 let fee_history_cache: FeeHistoryCache = Arc::new(Mutex::new(BTreeMap::new()));280281 let params = PartialComponents {282 backend,283 client,284 import_queue,285 keystore_container,286 task_manager,287 transaction_pool,288 select_chain,289 other: (290 telemetry,291 filter_pool,292 frontier_backend,293 telemetry_worker_handle,294 fee_history_cache,295 ),296 };297298 Ok(params)299}300301async fn build_relay_chain_interface(302 polkadot_config: Configuration,303 parachain_config: &Configuration,304 telemetry_worker_handle: Option<TelemetryWorkerHandle>,305 task_manager: &mut TaskManager,306 collator_options: CollatorOptions,307 hwbench: Option<sc_sysinfo::HwBench>,308) -> RelayChainResult<(309 Arc<(dyn RelayChainInterface + 'static)>,310 Option<CollatorPair>,311)> {312 match collator_options.relay_chain_rpc_url {313 Some(relay_chain_url) => Ok((314 Arc::new(RelayChainRPCInterface::new(relay_chain_url).await?) as Arc<_>,315 None,316 )),317 None => build_inprocess_relay_chain(318 polkadot_config,319 parachain_config,320 telemetry_worker_handle,321 task_manager,322 hwbench,323 ),324 }325}326327/// Start a node with the given parachain `Configuration` and relay chain `Configuration`.328///329/// This is the actual implementation that is abstract over the executor and the runtime api.330#[sc_tracing::logging::prefix_logs_with("Parachain")]331async fn start_node_impl<Runtime, RuntimeApi, ExecutorDispatch, BIQ, BIC>(332 parachain_config: Configuration,333 polkadot_config: Configuration,334 collator_options: CollatorOptions,335 id: ParaId,336 build_import_queue: BIQ,337 build_consensus: BIC,338 hwbench: Option<sc_sysinfo::HwBench>,339) -> sc_service::error::Result<(TaskManager, Arc<FullClient<RuntimeApi, ExecutorDispatch>>)>340where341 sc_client_api::StateBackendFor<FullBackend, Block>: sp_api::StateBackend<BlakeTwo256>,342 Runtime: RuntimeInstance + Send + Sync + 'static,343 <Runtime as RuntimeInstance>::CrossAccountId: Serialize,344 for<'de> <Runtime as RuntimeInstance>::CrossAccountId: Deserialize<'de>,345 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>346 + Send347 + Sync348 + 'static,349 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>350 + fp_rpc::EthereumRuntimeRPCApi<Block>351 + fp_rpc::ConvertTransactionRuntimeApi<Block>352 + sp_session::SessionKeys<Block>353 + sp_block_builder::BlockBuilder<Block>354 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>355 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>356 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>357 + rmrk_rpc::RmrkApi<358 Block,359 AccountId,360 RmrkCollectionInfo<AccountId>,361 RmrkInstanceInfo<AccountId>,362 RmrkResourceInfo,363 RmrkPropertyInfo,364 RmrkBaseInfo<AccountId>,365 RmrkPartType,366 RmrkTheme,367 > + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>368 + sp_api::Metadata<Block>369 + sp_offchain::OffchainWorkerApi<Block>370 + cumulus_primitives_core::CollectCollationInfo<Block>,371 ExecutorDispatch: NativeExecutionDispatch + 'static,372 BIQ: FnOnce(373 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,374 &Configuration,375 Option<TelemetryHandle>,376 &TaskManager,377 ) -> Result<378 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,379 sc_service::Error,380 >,381 BIC: FnOnce(382 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,383 Option<&Registry>,384 Option<TelemetryHandle>,385 &TaskManager,386 Arc<dyn RelayChainInterface>,387 Arc<sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>>,388 Arc<NetworkService<Block, Hash>>,389 SyncCryptoStorePtr,390 bool,391 ) -> Result<Box<dyn ParachainConsensus<Block>>, sc_service::Error>,392{393 if matches!(parachain_config.role, Role::Light) {394 return Err("Light client not supported!".into());395 }396397 let parachain_config = prepare_node_config(parachain_config);398399 let params =400 new_partial::<RuntimeApi, ExecutorDispatch, BIQ>(¶chain_config, build_import_queue)?;401 let (mut telemetry, filter_pool, frontier_backend, telemetry_worker_handle, fee_history_cache) =402 params.other;403404 let client = params.client.clone();405 let backend = params.backend.clone();406 let mut task_manager = params.task_manager;407408 let (relay_chain_interface, collator_key) = build_relay_chain_interface(409 polkadot_config,410 ¶chain_config,411 telemetry_worker_handle,412 &mut task_manager,413 collator_options.clone(),414 hwbench.clone(),415 )416 .await417 .map_err(|e| match e {418 RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x,419 s => s.to_string().into(),420 })?;421422 let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface.clone(), id);423424 let force_authoring = parachain_config.force_authoring;425 let validator = parachain_config.role.is_authority();426 let prometheus_registry = parachain_config.prometheus_registry().cloned();427 let transaction_pool = params.transaction_pool.clone();428 let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue);429430 let (network, system_rpc_tx, start_network) =431 sc_service::build_network(sc_service::BuildNetworkParams {432 config: ¶chain_config,433 client: client.clone(),434 transaction_pool: transaction_pool.clone(),435 spawn_handle: task_manager.spawn_handle(),436 import_queue: import_queue.clone(),437 block_announce_validator_builder: Some(Box::new(|_| {438 Box::new(block_announce_validator)439 })),440 warp_sync: None,441 })?;442443 let rpc_client = client.clone();444 let rpc_pool = transaction_pool.clone();445 let select_chain = params.select_chain.clone();446 let rpc_network = network.clone();447448 let rpc_frontier_backend = frontier_backend.clone();449450 let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new(451 task_manager.spawn_handle(),452 overrides_handle::<_, _, Runtime>(client.clone()),453 50,454 50,455 prometheus_registry.clone(),456 ));457458 task_manager.spawn_essential_handle().spawn(459 "frontier-mapping-sync-worker",460 None,461 MappingSyncWorker::new(462 client.import_notification_stream(),463 Duration::new(6, 0),464 client.clone(),465 backend.clone(),466 frontier_backend.clone(),467 3,468 0,469 SyncStrategy::Normal,470 )471 .for_each(|()| futures::future::ready(())),472 );473474 let rpc_builder = Box::new(move |deny_unsafe, subscription_task_executor| {475 let full_deps = unique_rpc::FullDeps {476 backend: rpc_frontier_backend.clone(),477 deny_unsafe,478 client: rpc_client.clone(),479 pool: rpc_pool.clone(),480 graph: rpc_pool.pool().clone(),481 // TODO: Unhardcode482 enable_dev_signer: false,483 filter_pool: filter_pool.clone(),484 network: rpc_network.clone(),485 select_chain: select_chain.clone(),486 is_authority: validator,487 // TODO: Unhardcode488 max_past_logs: 10000,489 block_data_cache: block_data_cache.clone(),490 fee_history_cache: fee_history_cache.clone(),491 // TODO: Unhardcode492 fee_history_limit: 2048,493 };494495 unique_rpc::create_full::<_, _, _, _, Runtime, RuntimeApi, _>(496 full_deps,497 subscription_task_executor,498 )499 .map_err(Into::into)500 });501502 sc_service::spawn_tasks(sc_service::SpawnTasksParams {503 rpc_builder,504 client: client.clone(),505 transaction_pool: transaction_pool.clone(),506 task_manager: &mut task_manager,507 config: parachain_config,508 keystore: params.keystore_container.sync_keystore(),509 backend: backend.clone(),510 network: network.clone(),511 system_rpc_tx,512 telemetry: telemetry.as_mut(),513 })?;514515 if let Some(hwbench) = hwbench {516 sc_sysinfo::print_hwbench(&hwbench);517518 if let Some(ref mut telemetry) = telemetry {519 let telemetry_handle = telemetry.handle();520 task_manager.spawn_handle().spawn(521 "telemetry_hwbench",522 None,523 sc_sysinfo::initialize_hwbench_telemetry(telemetry_handle, hwbench),524 );525 }526 }527528 let announce_block = {529 let network = network.clone();530 Arc::new(move |hash, data| network.announce_block(hash, data))531 };532533 let relay_chain_slot_duration = Duration::from_secs(6);534535 if validator {536 let parachain_consensus = build_consensus(537 client.clone(),538 prometheus_registry.as_ref(),539 telemetry.as_ref().map(|t| t.handle()),540 &task_manager,541 relay_chain_interface.clone(),542 transaction_pool,543 network,544 params.keystore_container.sync_keystore(),545 force_authoring,546 )?;547548 let spawner = task_manager.spawn_handle();549550 let params = StartCollatorParams {551 para_id: id,552 block_status: client.clone(),553 announce_block,554 client: client.clone(),555 task_manager: &mut task_manager,556 spawner,557 parachain_consensus,558 import_queue,559 collator_key: collator_key.expect("Command line arguments do not allow this. qed"),560 relay_chain_interface,561 relay_chain_slot_duration,562 };563564 start_collator(params).await?;565 } else {566 let params = StartFullNodeParams {567 client: client.clone(),568 announce_block,569 task_manager: &mut task_manager,570 para_id: id,571 import_queue,572 relay_chain_interface,573 relay_chain_slot_duration,574 collator_options,575 };576577 start_full_node(params)?;578 }579580 start_network.start_network();581582 Ok((task_manager, client))583}584585/// Build the import queue for the the parachain runtime.586pub fn parachain_build_import_queue<RuntimeApi, ExecutorDispatch>(587 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,588 config: &Configuration,589 telemetry: Option<TelemetryHandle>,590 task_manager: &TaskManager,591) -> Result<592 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,593 sc_service::Error,594>595where596 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>597 + Send598 + Sync599 + 'static,600 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>601 + sp_block_builder::BlockBuilder<Block>602 + sp_consensus_aura::AuraApi<Block, AuraId>603 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>,604 ExecutorDispatch: NativeExecutionDispatch + 'static,605{606 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;607608 cumulus_client_consensus_aura::import_queue::<609 sp_consensus_aura::sr25519::AuthorityPair,610 _,611 _,612 _,613 _,614 _,615 _,616 >(cumulus_client_consensus_aura::ImportQueueParams {617 block_import: client.clone(),618 client: client.clone(),619 create_inherent_data_providers: move |_, _| async move {620 let time = sp_timestamp::InherentDataProvider::from_system_time();621622 let slot =623 sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration(624 *time,625 slot_duration,626 );627628 Ok((time, slot))629 },630 registry: config.prometheus_registry(),631 can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),632 spawner: &task_manager.spawn_essential_handle(),633 telemetry,634 })635 .map_err(Into::into)636}637638/// Start a normal parachain node.639pub async fn start_node<Runtime, RuntimeApi, ExecutorDispatch>(640 parachain_config: Configuration,641 polkadot_config: Configuration,642 collator_options: CollatorOptions,643 id: ParaId,644 hwbench: Option<sc_sysinfo::HwBench>,645) -> sc_service::error::Result<(TaskManager, Arc<FullClient<RuntimeApi, ExecutorDispatch>>)>646where647 Runtime: RuntimeInstance + Send + Sync + 'static,648 <Runtime as RuntimeInstance>::CrossAccountId: Serialize,649 for<'de> <Runtime as RuntimeInstance>::CrossAccountId: Deserialize<'de>,650 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>651 + Send652 + Sync653 + 'static,654 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>655 + fp_rpc::EthereumRuntimeRPCApi<Block>656 + fp_rpc::ConvertTransactionRuntimeApi<Block>657 + sp_session::SessionKeys<Block>658 + sp_block_builder::BlockBuilder<Block>659 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>660 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>661 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>662 + rmrk_rpc::RmrkApi<663 Block,664 AccountId,665 RmrkCollectionInfo<AccountId>,666 RmrkInstanceInfo<AccountId>,667 RmrkResourceInfo,668 RmrkPropertyInfo,669 RmrkBaseInfo<AccountId>,670 RmrkPartType,671 RmrkTheme,672 > + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>673 + sp_api::Metadata<Block>674 + sp_offchain::OffchainWorkerApi<Block>675 + cumulus_primitives_core::CollectCollationInfo<Block>676 + sp_consensus_aura::AuraApi<Block, AuraId>,677 ExecutorDispatch: NativeExecutionDispatch + 'static,678{679 start_node_impl::<Runtime, RuntimeApi, ExecutorDispatch, _, _>(680 parachain_config,681 polkadot_config,682 collator_options,683 id,684 parachain_build_import_queue,685 |client,686 prometheus_registry,687 telemetry,688 task_manager,689 relay_chain_interface,690 transaction_pool,691 sync_oracle,692 keystore,693 force_authoring| {694 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;695696 let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording(697 task_manager.spawn_handle(),698 client.clone(),699 transaction_pool,700 prometheus_registry,701 telemetry.clone(),702 );703704 Ok(AuraConsensus::build::<705 sp_consensus_aura::sr25519::AuthorityPair,706 _,707 _,708 _,709 _,710 _,711 _,712 >(BuildAuraConsensusParams {713 proposer_factory,714 create_inherent_data_providers: move |_, (relay_parent, validation_data)| {715 let relay_chain_interface = relay_chain_interface.clone();716 async move {717 let parachain_inherent =718 cumulus_primitives_parachain_inherent::ParachainInherentData::create_at(719 relay_parent,720 &relay_chain_interface,721 &validation_data,722 id,723 ).await;724725 let time = sp_timestamp::InherentDataProvider::from_system_time();726727 let slot =728 sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration(729 *time,730 slot_duration,731 );732733 let parachain_inherent = parachain_inherent.ok_or_else(|| {734 Box::<dyn std::error::Error + Send + Sync>::from(735 "Failed to create parachain inherent",736 )737 })?;738 Ok((time, slot, parachain_inherent))739 }740 },741 block_import: client.clone(),742 para_client: client,743 backoff_authoring_blocks: Option::<()>::None,744 sync_oracle,745 keystore,746 force_authoring,747 slot_duration,748 // We got around 500ms for proposing749 block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32),750 telemetry,751 max_block_proposal_slot_portion: None,752 }))753 },754 hwbench,755 )756 .await757}758759fn dev_build_import_queue<RuntimeApi, ExecutorDispatch>(760 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,761 config: &Configuration,762 _: Option<TelemetryHandle>,763 task_manager: &TaskManager,764) -> Result<765 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,766 sc_service::Error,767>768where769 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>770 + Send771 + Sync772 + 'static,773 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>774 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>,775 ExecutorDispatch: NativeExecutionDispatch + 'static,776{777 Ok(sc_consensus_manual_seal::import_queue(778 Box::new(client.clone()),779 &task_manager.spawn_essential_handle(),780 config.prometheus_registry(),781 ))782}783784/// Builds a new development service. This service uses instant seal, and mocks785/// the parachain inherent786pub fn start_dev_node<Runtime, RuntimeApi, ExecutorDispatch>(787 config: Configuration,788 autoseal_interval: Duration,789) -> sc_service::error::Result<TaskManager>790where791 Runtime: RuntimeInstance + Send + Sync + 'static,792 <Runtime as RuntimeInstance>::CrossAccountId: Serialize,793 for<'de> <Runtime as RuntimeInstance>::CrossAccountId: Deserialize<'de>,794 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>795 + Send796 + Sync797 + 'static,798 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>799 + fp_rpc::EthereumRuntimeRPCApi<Block>800 + fp_rpc::ConvertTransactionRuntimeApi<Block>801 + sp_session::SessionKeys<Block>802 + sp_block_builder::BlockBuilder<Block>803 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>804 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>805 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>806 + rmrk_rpc::RmrkApi<807 Block,808 AccountId,809 RmrkCollectionInfo<AccountId>,810 RmrkInstanceInfo<AccountId>,811 RmrkResourceInfo,812 RmrkPropertyInfo,813 RmrkBaseInfo<AccountId>,814 RmrkPartType,815 RmrkTheme,816 > + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>817 + sp_api::Metadata<Block>818 + sp_offchain::OffchainWorkerApi<Block>819 + cumulus_primitives_core::CollectCollationInfo<Block>820 + sp_consensus_aura::AuraApi<Block, AuraId>,821 ExecutorDispatch: NativeExecutionDispatch + 'static,822{823 use sc_consensus_manual_seal::{run_manual_seal, EngineCommand, ManualSealParams};824 use fc_consensus::FrontierBlockImport;825 use sc_client_api::HeaderBackend;826827 let sc_service::PartialComponents {828 client,829 backend,830 mut task_manager,831 import_queue,832 keystore_container,833 select_chain: maybe_select_chain,834 transaction_pool,835 other:836 (telemetry, filter_pool, frontier_backend, _telemetry_worker_handle, fee_history_cache),837 } = new_partial::<RuntimeApi, ExecutorDispatch, _>(838 &config,839 dev_build_import_queue::<RuntimeApi, ExecutorDispatch>,840 )?;841 let prometheus_registry = config.prometheus_registry().cloned();842843 let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new(844 task_manager.spawn_handle(),845 overrides_handle::<_, _, Runtime>(client.clone()),846 50,847 50,848 prometheus_registry.clone(),849 ));850851 let (network, system_rpc_tx, network_starter) =852 sc_service::build_network(sc_service::BuildNetworkParams {853 config: &config,854 client: client.clone(),855 transaction_pool: transaction_pool.clone(),856 spawn_handle: task_manager.spawn_handle(),857 import_queue,858 block_announce_validator_builder: None,859 warp_sync: None,860 })?;861862 if config.offchain_worker.enabled {863 sc_service::build_offchain_workers(864 &config,865 task_manager.spawn_handle(),866 client.clone(),867 network.clone(),868 );869 }870871 let collator = config.role.is_authority();872873 let select_chain = maybe_select_chain.clone();874875 if collator {876 let block_import =877 FrontierBlockImport::new(client.clone(), client.clone(), frontier_backend.clone());878879 let env = sc_basic_authorship::ProposerFactory::new(880 task_manager.spawn_handle(),881 client.clone(),882 transaction_pool.clone(),883 prometheus_registry.as_ref(),884 telemetry.as_ref().map(|x| x.handle()),885 );886887 let transactions_commands_stream: Box<888 dyn Stream<Item = EngineCommand<Hash>> + Send + Sync + Unpin,889 > = Box::new(890 transaction_pool891 .pool()892 .validated_pool()893 .import_notification_stream()894 .map(|_| EngineCommand::SealNewBlock {895 create_empty: true,896 finalize: false,897 parent_hash: None,898 sender: None,899 }),900 );901902 let autoseal_interval = Box::pin(AutosealInterval::new(&config, autoseal_interval));903 let idle_commands_stream: Box<904 dyn Stream<Item = EngineCommand<Hash>> + Send + Sync + Unpin,905 > = Box::new(autoseal_interval.map(|_| EngineCommand::SealNewBlock {906 create_empty: true,907 finalize: false,908 parent_hash: None,909 sender: None,910 }));911912 let commands_stream = select(transactions_commands_stream, idle_commands_stream);913914 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;915 let client_set_aside_for_cidp = client.clone();916917 task_manager.spawn_essential_handle().spawn_blocking(918 "authorship_task",919 Some("block-authoring"),920 run_manual_seal(ManualSealParams {921 block_import,922 env,923 client: client.clone(),924 pool: transaction_pool.clone(),925 commands_stream,926 select_chain: select_chain.clone(),927 consensus_data_provider: None,928 create_inherent_data_providers: move |block: Hash, ()| {929 let current_para_block = client_set_aside_for_cidp930 .number(block)931 .expect("Header lookup should succeed")932 .expect("Header passed in as parent should be present in backend.");933934 let client_for_xcm = client_set_aside_for_cidp.clone();935 async move {936 let time = sp_timestamp::InherentDataProvider::from_system_time();937938 let mocked_parachain = cumulus_primitives_parachain_inherent::MockValidationDataInherentDataProvider {939 current_para_block,940 relay_offset: 1000,941 relay_blocks_per_para_block: 2,942 xcm_config: cumulus_primitives_parachain_inherent::MockXcmConfig::new(943 &*client_for_xcm,944 block,945 Default::default(),946 Default::default(),947 ),948 raw_downward_messages: vec![],949 raw_horizontal_messages: vec![],950 };951952 let slot =953 sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration(954 *time,955 slot_duration,956 );957958 Ok((time, slot, mocked_parachain))959 }960 },961 }),962 );963 }964965 task_manager.spawn_essential_handle().spawn(966 "frontier-mapping-sync-worker",967 Some("block-authoring"),968 MappingSyncWorker::new(969 client.import_notification_stream(),970 Duration::new(6, 0),971 client.clone(),972 backend.clone(),973 frontier_backend.clone(),974 3,975 0,976 SyncStrategy::Normal,977 )978 .for_each(|()| futures::future::ready(())),979 );980981 let rpc_client = client.clone();982 let rpc_pool = transaction_pool.clone();983 let rpc_network = network.clone();984 let rpc_frontier_backend = frontier_backend.clone();985 let rpc_builder = Box::new(move |deny_unsafe, subscription_executor| {986 let full_deps = unique_rpc::FullDeps {987 backend: rpc_frontier_backend.clone(),988 deny_unsafe,989 client: rpc_client.clone(),990 pool: rpc_pool.clone(),991 graph: rpc_pool.pool().clone(),992 // TODO: Unhardcode993 enable_dev_signer: false,994 filter_pool: filter_pool.clone(),995 network: rpc_network.clone(),996 select_chain: select_chain.clone(),997 is_authority: collator,998 // TODO: Unhardcode999 max_past_logs: 10000,1000 block_data_cache: block_data_cache.clone(),1001 fee_history_cache: fee_history_cache.clone(),1002 // TODO: Unhardcode1003 fee_history_limit: 2048,1004 };10051006 unique_rpc::create_full::<_, _, _, _, Runtime, RuntimeApi, _>(1007 full_deps,1008 subscription_executor,1009 )1010 .map_err(Into::into)1011 });10121013 sc_service::spawn_tasks(sc_service::SpawnTasksParams {1014 network,1015 client,1016 keystore: keystore_container.sync_keystore(),1017 task_manager: &mut task_manager,1018 transaction_pool,1019 rpc_builder,1020 backend,1021 system_rpc_tx,1022 config,1023 telemetry: None,1024 })?;10251026 network_starter.start_network();1027 Ok(task_manager)1028}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// std18use std::sync::Arc;19use std::sync::Mutex;20use std::collections::BTreeMap;21use std::time::Duration;22use std::pin::Pin;23use fc_rpc_core::types::FeeHistoryCache;24use futures::{25 Stream, StreamExt,26 stream::select,27 task::{Context, Poll},28};29use tokio::time::Interval;3031use unique_rpc::overrides_handle;3233use serde::{Serialize, Deserialize};3435// Cumulus Imports36use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion};37use cumulus_client_consensus_common::ParachainConsensus;38use cumulus_client_service::{39 prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams,40};41use cumulus_client_cli::CollatorOptions;42use cumulus_client_network::BlockAnnounceValidator;43use cumulus_primitives_core::ParaId;44use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain;45use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult};46use cumulus_relay_chain_rpc_interface::RelayChainRPCInterface;4748// Substrate Imports49use sc_client_api::ExecutorProvider;50use sc_executor::NativeElseWasmExecutor;51use sc_executor::NativeExecutionDispatch;52use sc_network::NetworkService;53use sc_service::{BasePath, Configuration, PartialComponents, Role, TaskManager};54use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle};55use sp_keystore::SyncCryptoStorePtr;56use sp_runtime::traits::BlakeTwo256;57use substrate_prometheus_endpoint::Registry;58use sc_client_api::BlockchainEvents;5960use polkadot_service::CollatorPair;6162// Frontier Imports63use fc_rpc_core::types::FilterPool;64use fc_mapping_sync::{MappingSyncWorker, SyncStrategy};6566use unique_runtime_common::types::{AuraId, RuntimeInstance, AccountId, Balance, Index, Hash, Block};6768// RMRK69use up_data_structs::{70 RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo,71 RmrkPartType, RmrkTheme,72};7374/// Unique native executor instance.75#[cfg(feature = "unique-runtime")]76pub struct UniqueRuntimeExecutor;7778#[cfg(feature = "quartz-runtime")]79/// Quartz native executor instance.80pub struct QuartzRuntimeExecutor;8182/// Opal native executor instance.83pub struct OpalRuntimeExecutor;8485#[cfg(feature = "unique-runtime")]86pub type DefaultRuntimeExecutor = UniqueRuntimeExecutor;8788#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]89pub type DefaultRuntimeExecutor = QuartzRuntimeExecutor;9091#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]92pub type DefaultRuntimeExecutor = OpalRuntimeExecutor;9394#[cfg(feature = "unique-runtime")]95impl NativeExecutionDispatch for UniqueRuntimeExecutor {96 type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;9798 fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {99 unique_runtime::api::dispatch(method, data)100 }101102 fn native_version() -> sc_executor::NativeVersion {103 unique_runtime::native_version()104 }105}106107#[cfg(feature = "quartz-runtime")]108impl NativeExecutionDispatch for QuartzRuntimeExecutor {109 type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;110111 fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {112 quartz_runtime::api::dispatch(method, data)113 }114115 fn native_version() -> sc_executor::NativeVersion {116 quartz_runtime::native_version()117 }118}119120impl NativeExecutionDispatch for OpalRuntimeExecutor {121 type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;122123 fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {124 opal_runtime::api::dispatch(method, data)125 }126127 fn native_version() -> sc_executor::NativeVersion {128 opal_runtime::native_version()129 }130}131132pub struct AutosealInterval {133 interval: Interval,134}135136impl AutosealInterval {137 pub fn new(config: &Configuration, interval: Duration) -> Self {138 let _tokio_runtime = config.tokio_handle.enter();139 let interval = tokio::time::interval(interval);140141 Self { interval }142 }143}144145impl Stream for AutosealInterval {146 type Item = tokio::time::Instant;147148 fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {149 self.interval.poll_tick(cx).map(Some)150 }151}152153pub fn open_frontier_backend(config: &Configuration) -> Result<Arc<fc_db::Backend<Block>>, String> {154 let config_dir = config155 .base_path156 .as_ref()157 .map(|base_path| base_path.config_dir(config.chain_spec.id()))158 .unwrap_or_else(|| {159 BasePath::from_project("", "", "unique").config_dir(config.chain_spec.id())160 });161 let database_dir = config_dir.join("frontier").join("db");162163 Ok(Arc::new(fc_db::Backend::<Block>::new(164 &fc_db::DatabaseSettings {165 source: fc_db::DatabaseSource::RocksDb {166 path: database_dir,167 cache_size: 0,168 },169 },170 )?))171}172173type FullClient<RuntimeApi, ExecutorDispatch> =174 sc_service::TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<ExecutorDispatch>>;175type FullBackend = sc_service::TFullBackend<Block>;176type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;177178/// Starts a `ServiceBuilder` for a full service.179///180/// Use this macro if you don't actually need the full service, but just the builder in order to181/// be able to perform chain operations.182#[allow(clippy::type_complexity)]183pub fn new_partial<RuntimeApi, ExecutorDispatch, BIQ>(184 config: &Configuration,185 build_import_queue: BIQ,186) -> Result<187 PartialComponents<188 FullClient<RuntimeApi, ExecutorDispatch>,189 FullBackend,190 FullSelectChain,191 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,192 sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>,193 (194 Option<Telemetry>,195 Option<FilterPool>,196 Arc<fc_db::Backend<Block>>,197 Option<TelemetryWorkerHandle>,198 FeeHistoryCache,199 ),200 >,201 sc_service::Error,202>203where204 sc_client_api::StateBackendFor<FullBackend, Block>: sp_api::StateBackend<BlakeTwo256>,205 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>206 + Send207 + Sync208 + 'static,209 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>,210 ExecutorDispatch: NativeExecutionDispatch + 'static,211 BIQ: FnOnce(212 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,213 &Configuration,214 Option<TelemetryHandle>,215 &TaskManager,216 ) -> Result<217 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,218 sc_service::Error,219 >,220{221 let _telemetry = config222 .telemetry_endpoints223 .clone()224 .filter(|x| !x.is_empty())225 .map(|endpoints| -> Result<_, sc_telemetry::Error> {226 let worker = TelemetryWorker::new(16)?;227 let telemetry = worker.handle().new_telemetry(endpoints);228 Ok((worker, telemetry))229 })230 .transpose()?;231232 let telemetry = config233 .telemetry_endpoints234 .clone()235 .filter(|x| !x.is_empty())236 .map(|endpoints| -> Result<_, sc_telemetry::Error> {237 let worker = TelemetryWorker::new(16)?;238 let telemetry = worker.handle().new_telemetry(endpoints);239 Ok((worker, telemetry))240 })241 .transpose()?;242243 let executor = NativeElseWasmExecutor::<ExecutorDispatch>::new(244 config.wasm_method,245 config.default_heap_pages,246 config.max_runtime_instances,247 config.runtime_cache_size,248 );249250 let (client, backend, keystore_container, task_manager) =251 sc_service::new_full_parts::<Block, RuntimeApi, _>(252 config,253 telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),254 executor,255 )?;256 let client = Arc::new(client);257258 let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle());259260 let telemetry = telemetry.map(|(worker, telemetry)| {261 task_manager262 .spawn_handle()263 .spawn("telemetry", None, worker.run());264 telemetry265 });266267 let select_chain = sc_consensus::LongestChain::new(backend.clone());268269 let transaction_pool = sc_transaction_pool::BasicPool::new_full(270 config.transaction_pool.clone(),271 config.role.is_authority().into(),272 config.prometheus_registry(),273 task_manager.spawn_essential_handle(),274 client.clone(),275 );276277 let filter_pool: Option<FilterPool> = Some(Arc::new(Mutex::new(BTreeMap::new())));278279 let frontier_backend = open_frontier_backend(config)?;280281 let import_queue = build_import_queue(282 client.clone(),283 config,284 telemetry.as_ref().map(|telemetry| telemetry.handle()),285 &task_manager,286 )?;287 let fee_history_cache: FeeHistoryCache = Arc::new(Mutex::new(BTreeMap::new()));288289 let params = PartialComponents {290 backend,291 client,292 import_queue,293 keystore_container,294 task_manager,295 transaction_pool,296 select_chain,297 other: (298 telemetry,299 filter_pool,300 frontier_backend,301 telemetry_worker_handle,302 fee_history_cache,303 ),304 };305306 Ok(params)307}308309async fn build_relay_chain_interface(310 polkadot_config: Configuration,311 parachain_config: &Configuration,312 telemetry_worker_handle: Option<TelemetryWorkerHandle>,313 task_manager: &mut TaskManager,314 collator_options: CollatorOptions,315 hwbench: Option<sc_sysinfo::HwBench>,316) -> RelayChainResult<(317 Arc<(dyn RelayChainInterface + 'static)>,318 Option<CollatorPair>,319)> {320 match collator_options.relay_chain_rpc_url {321 Some(relay_chain_url) => Ok((322 Arc::new(RelayChainRPCInterface::new(relay_chain_url).await?) as Arc<_>,323 None,324 )),325 None => build_inprocess_relay_chain(326 polkadot_config,327 parachain_config,328 telemetry_worker_handle,329 task_manager,330 hwbench,331 ),332 }333}334335/// Start a node with the given parachain `Configuration` and relay chain `Configuration`.336///337/// This is the actual implementation that is abstract over the executor and the runtime api.338#[sc_tracing::logging::prefix_logs_with("Parachain")]339async fn start_node_impl<Runtime, RuntimeApi, ExecutorDispatch, BIQ, BIC>(340 parachain_config: Configuration,341 polkadot_config: Configuration,342 collator_options: CollatorOptions,343 id: ParaId,344 build_import_queue: BIQ,345 build_consensus: BIC,346 hwbench: Option<sc_sysinfo::HwBench>,347) -> sc_service::error::Result<(TaskManager, Arc<FullClient<RuntimeApi, ExecutorDispatch>>)>348where349 sc_client_api::StateBackendFor<FullBackend, Block>: sp_api::StateBackend<BlakeTwo256>,350 Runtime: RuntimeInstance + Send + Sync + 'static,351 <Runtime as RuntimeInstance>::CrossAccountId: Serialize,352 for<'de> <Runtime as RuntimeInstance>::CrossAccountId: Deserialize<'de>,353 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>354 + Send355 + Sync356 + 'static,357 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>358 + fp_rpc::EthereumRuntimeRPCApi<Block>359 + fp_rpc::ConvertTransactionRuntimeApi<Block>360 + sp_session::SessionKeys<Block>361 + sp_block_builder::BlockBuilder<Block>362 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>363 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>364 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>365 + rmrk_rpc::RmrkApi<366 Block,367 AccountId,368 RmrkCollectionInfo<AccountId>,369 RmrkInstanceInfo<AccountId>,370 RmrkResourceInfo,371 RmrkPropertyInfo,372 RmrkBaseInfo<AccountId>,373 RmrkPartType,374 RmrkTheme,375 > + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>376 + sp_api::Metadata<Block>377 + sp_offchain::OffchainWorkerApi<Block>378 + cumulus_primitives_core::CollectCollationInfo<Block>,379 ExecutorDispatch: NativeExecutionDispatch + 'static,380 BIQ: FnOnce(381 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,382 &Configuration,383 Option<TelemetryHandle>,384 &TaskManager,385 ) -> Result<386 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,387 sc_service::Error,388 >,389 BIC: FnOnce(390 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,391 Option<&Registry>,392 Option<TelemetryHandle>,393 &TaskManager,394 Arc<dyn RelayChainInterface>,395 Arc<sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>>,396 Arc<NetworkService<Block, Hash>>,397 SyncCryptoStorePtr,398 bool,399 ) -> Result<Box<dyn ParachainConsensus<Block>>, sc_service::Error>,400{401 if matches!(parachain_config.role, Role::Light) {402 return Err("Light client not supported!".into());403 }404405 let parachain_config = prepare_node_config(parachain_config);406407 let params =408 new_partial::<RuntimeApi, ExecutorDispatch, BIQ>(¶chain_config, build_import_queue)?;409 let (mut telemetry, filter_pool, frontier_backend, telemetry_worker_handle, fee_history_cache) =410 params.other;411412 let client = params.client.clone();413 let backend = params.backend.clone();414 let mut task_manager = params.task_manager;415416 let (relay_chain_interface, collator_key) = build_relay_chain_interface(417 polkadot_config,418 ¶chain_config,419 telemetry_worker_handle,420 &mut task_manager,421 collator_options.clone(),422 hwbench.clone(),423 )424 .await425 .map_err(|e| match e {426 RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x,427 s => s.to_string().into(),428 })?;429430 let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface.clone(), id);431432 let force_authoring = parachain_config.force_authoring;433 let validator = parachain_config.role.is_authority();434 let prometheus_registry = parachain_config.prometheus_registry().cloned();435 let transaction_pool = params.transaction_pool.clone();436 let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue);437438 let (network, system_rpc_tx, start_network) =439 sc_service::build_network(sc_service::BuildNetworkParams {440 config: ¶chain_config,441 client: client.clone(),442 transaction_pool: transaction_pool.clone(),443 spawn_handle: task_manager.spawn_handle(),444 import_queue: import_queue.clone(),445 block_announce_validator_builder: Some(Box::new(|_| {446 Box::new(block_announce_validator)447 })),448 warp_sync: None,449 })?;450451 let rpc_client = client.clone();452 let rpc_pool = transaction_pool.clone();453 let select_chain = params.select_chain.clone();454 let rpc_network = network.clone();455456 let rpc_frontier_backend = frontier_backend.clone();457458 let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new(459 task_manager.spawn_handle(),460 overrides_handle::<_, _, Runtime>(client.clone()),461 50,462 50,463 prometheus_registry.clone(),464 ));465466 task_manager.spawn_essential_handle().spawn(467 "frontier-mapping-sync-worker",468 None,469 MappingSyncWorker::new(470 client.import_notification_stream(),471 Duration::new(6, 0),472 client.clone(),473 backend.clone(),474 frontier_backend.clone(),475 3,476 0,477 SyncStrategy::Normal,478 )479 .for_each(|()| futures::future::ready(())),480 );481482 let rpc_builder = Box::new(move |deny_unsafe, subscription_task_executor| {483 let full_deps = unique_rpc::FullDeps {484 backend: rpc_frontier_backend.clone(),485 deny_unsafe,486 client: rpc_client.clone(),487 pool: rpc_pool.clone(),488 graph: rpc_pool.pool().clone(),489 // TODO: Unhardcode490 enable_dev_signer: false,491 filter_pool: filter_pool.clone(),492 network: rpc_network.clone(),493 select_chain: select_chain.clone(),494 is_authority: validator,495 // TODO: Unhardcode496 max_past_logs: 10000,497 block_data_cache: block_data_cache.clone(),498 fee_history_cache: fee_history_cache.clone(),499 // TODO: Unhardcode500 fee_history_limit: 2048,501 };502503 unique_rpc::create_full::<_, _, _, _, Runtime, RuntimeApi, _>(504 full_deps,505 subscription_task_executor,506 )507 .map_err(Into::into)508 });509510 sc_service::spawn_tasks(sc_service::SpawnTasksParams {511 rpc_builder,512 client: client.clone(),513 transaction_pool: transaction_pool.clone(),514 task_manager: &mut task_manager,515 config: parachain_config,516 keystore: params.keystore_container.sync_keystore(),517 backend: backend.clone(),518 network: network.clone(),519 system_rpc_tx,520 telemetry: telemetry.as_mut(),521 })?;522523 if let Some(hwbench) = hwbench {524 sc_sysinfo::print_hwbench(&hwbench);525526 if let Some(ref mut telemetry) = telemetry {527 let telemetry_handle = telemetry.handle();528 task_manager.spawn_handle().spawn(529 "telemetry_hwbench",530 None,531 sc_sysinfo::initialize_hwbench_telemetry(telemetry_handle, hwbench),532 );533 }534 }535536 let announce_block = {537 let network = network.clone();538 Arc::new(move |hash, data| network.announce_block(hash, data))539 };540541 let relay_chain_slot_duration = Duration::from_secs(6);542543 if validator {544 let parachain_consensus = build_consensus(545 client.clone(),546 prometheus_registry.as_ref(),547 telemetry.as_ref().map(|t| t.handle()),548 &task_manager,549 relay_chain_interface.clone(),550 transaction_pool,551 network,552 params.keystore_container.sync_keystore(),553 force_authoring,554 )?;555556 let spawner = task_manager.spawn_handle();557558 let params = StartCollatorParams {559 para_id: id,560 block_status: client.clone(),561 announce_block,562 client: client.clone(),563 task_manager: &mut task_manager,564 spawner,565 parachain_consensus,566 import_queue,567 collator_key: collator_key.expect("Command line arguments do not allow this. qed"),568 relay_chain_interface,569 relay_chain_slot_duration,570 };571572 start_collator(params).await?;573 } else {574 let params = StartFullNodeParams {575 client: client.clone(),576 announce_block,577 task_manager: &mut task_manager,578 para_id: id,579 import_queue,580 relay_chain_interface,581 relay_chain_slot_duration,582 collator_options,583 };584585 start_full_node(params)?;586 }587588 start_network.start_network();589590 Ok((task_manager, client))591}592593/// Build the import queue for the the parachain runtime.594pub fn parachain_build_import_queue<RuntimeApi, ExecutorDispatch>(595 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,596 config: &Configuration,597 telemetry: Option<TelemetryHandle>,598 task_manager: &TaskManager,599) -> Result<600 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,601 sc_service::Error,602>603where604 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>605 + Send606 + Sync607 + 'static,608 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>609 + sp_block_builder::BlockBuilder<Block>610 + sp_consensus_aura::AuraApi<Block, AuraId>611 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>,612 ExecutorDispatch: NativeExecutionDispatch + 'static,613{614 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;615616 cumulus_client_consensus_aura::import_queue::<617 sp_consensus_aura::sr25519::AuthorityPair,618 _,619 _,620 _,621 _,622 _,623 _,624 >(cumulus_client_consensus_aura::ImportQueueParams {625 block_import: client.clone(),626 client: client.clone(),627 create_inherent_data_providers: move |_, _| async move {628 let time = sp_timestamp::InherentDataProvider::from_system_time();629630 let slot =631 sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration(632 *time,633 slot_duration,634 );635636 Ok((time, slot))637 },638 registry: config.prometheus_registry(),639 can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),640 spawner: &task_manager.spawn_essential_handle(),641 telemetry,642 })643 .map_err(Into::into)644}645646/// Start a normal parachain node.647pub async fn start_node<Runtime, RuntimeApi, ExecutorDispatch>(648 parachain_config: Configuration,649 polkadot_config: Configuration,650 collator_options: CollatorOptions,651 id: ParaId,652 hwbench: Option<sc_sysinfo::HwBench>,653) -> sc_service::error::Result<(TaskManager, Arc<FullClient<RuntimeApi, ExecutorDispatch>>)>654where655 Runtime: RuntimeInstance + Send + Sync + 'static,656 <Runtime as RuntimeInstance>::CrossAccountId: Serialize,657 for<'de> <Runtime as RuntimeInstance>::CrossAccountId: Deserialize<'de>,658 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>659 + Send660 + Sync661 + 'static,662 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>663 + fp_rpc::EthereumRuntimeRPCApi<Block>664 + fp_rpc::ConvertTransactionRuntimeApi<Block>665 + sp_session::SessionKeys<Block>666 + sp_block_builder::BlockBuilder<Block>667 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>668 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>669 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>670 + rmrk_rpc::RmrkApi<671 Block,672 AccountId,673 RmrkCollectionInfo<AccountId>,674 RmrkInstanceInfo<AccountId>,675 RmrkResourceInfo,676 RmrkPropertyInfo,677 RmrkBaseInfo<AccountId>,678 RmrkPartType,679 RmrkTheme,680 > + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>681 + sp_api::Metadata<Block>682 + sp_offchain::OffchainWorkerApi<Block>683 + cumulus_primitives_core::CollectCollationInfo<Block>684 + sp_consensus_aura::AuraApi<Block, AuraId>,685 ExecutorDispatch: NativeExecutionDispatch + 'static,686{687 start_node_impl::<Runtime, RuntimeApi, ExecutorDispatch, _, _>(688 parachain_config,689 polkadot_config,690 collator_options,691 id,692 parachain_build_import_queue,693 |client,694 prometheus_registry,695 telemetry,696 task_manager,697 relay_chain_interface,698 transaction_pool,699 sync_oracle,700 keystore,701 force_authoring| {702 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;703704 let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording(705 task_manager.spawn_handle(),706 client.clone(),707 transaction_pool,708 prometheus_registry,709 telemetry.clone(),710 );711712 Ok(AuraConsensus::build::<713 sp_consensus_aura::sr25519::AuthorityPair,714 _,715 _,716 _,717 _,718 _,719 _,720 >(BuildAuraConsensusParams {721 proposer_factory,722 create_inherent_data_providers: move |_, (relay_parent, validation_data)| {723 let relay_chain_interface = relay_chain_interface.clone();724 async move {725 let parachain_inherent =726 cumulus_primitives_parachain_inherent::ParachainInherentData::create_at(727 relay_parent,728 &relay_chain_interface,729 &validation_data,730 id,731 ).await;732733 let time = sp_timestamp::InherentDataProvider::from_system_time();734735 let slot =736 sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration(737 *time,738 slot_duration,739 );740741 let parachain_inherent = parachain_inherent.ok_or_else(|| {742 Box::<dyn std::error::Error + Send + Sync>::from(743 "Failed to create parachain inherent",744 )745 })?;746 Ok((time, slot, parachain_inherent))747 }748 },749 block_import: client.clone(),750 para_client: client,751 backoff_authoring_blocks: Option::<()>::None,752 sync_oracle,753 keystore,754 force_authoring,755 slot_duration,756 // We got around 500ms for proposing757 block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32),758 telemetry,759 max_block_proposal_slot_portion: None,760 }))761 },762 hwbench,763 )764 .await765}766767fn dev_build_import_queue<RuntimeApi, ExecutorDispatch>(768 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,769 config: &Configuration,770 _: Option<TelemetryHandle>,771 task_manager: &TaskManager,772) -> Result<773 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,774 sc_service::Error,775>776where777 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>778 + Send779 + Sync780 + 'static,781 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>782 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>,783 ExecutorDispatch: NativeExecutionDispatch + 'static,784{785 Ok(sc_consensus_manual_seal::import_queue(786 Box::new(client.clone()),787 &task_manager.spawn_essential_handle(),788 config.prometheus_registry(),789 ))790}791792/// Builds a new development service. This service uses instant seal, and mocks793/// the parachain inherent794pub fn start_dev_node<Runtime, RuntimeApi, ExecutorDispatch>(795 config: Configuration,796 autoseal_interval: Duration,797) -> sc_service::error::Result<TaskManager>798where799 Runtime: RuntimeInstance + Send + Sync + 'static,800 <Runtime as RuntimeInstance>::CrossAccountId: Serialize,801 for<'de> <Runtime as RuntimeInstance>::CrossAccountId: Deserialize<'de>,802 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>803 + Send804 + Sync805 + 'static,806 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>807 + fp_rpc::EthereumRuntimeRPCApi<Block>808 + fp_rpc::ConvertTransactionRuntimeApi<Block>809 + sp_session::SessionKeys<Block>810 + sp_block_builder::BlockBuilder<Block>811 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>812 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>813 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>814 + rmrk_rpc::RmrkApi<815 Block,816 AccountId,817 RmrkCollectionInfo<AccountId>,818 RmrkInstanceInfo<AccountId>,819 RmrkResourceInfo,820 RmrkPropertyInfo,821 RmrkBaseInfo<AccountId>,822 RmrkPartType,823 RmrkTheme,824 > + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>825 + sp_api::Metadata<Block>826 + sp_offchain::OffchainWorkerApi<Block>827 + cumulus_primitives_core::CollectCollationInfo<Block>828 + sp_consensus_aura::AuraApi<Block, AuraId>,829 ExecutorDispatch: NativeExecutionDispatch + 'static,830{831 use sc_consensus_manual_seal::{run_manual_seal, EngineCommand, ManualSealParams};832 use fc_consensus::FrontierBlockImport;833 use sc_client_api::HeaderBackend;834835 let sc_service::PartialComponents {836 client,837 backend,838 mut task_manager,839 import_queue,840 keystore_container,841 select_chain: maybe_select_chain,842 transaction_pool,843 other:844 (telemetry, filter_pool, frontier_backend, _telemetry_worker_handle, fee_history_cache),845 } = new_partial::<RuntimeApi, ExecutorDispatch, _>(846 &config,847 dev_build_import_queue::<RuntimeApi, ExecutorDispatch>,848 )?;849 let prometheus_registry = config.prometheus_registry().cloned();850851 let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new(852 task_manager.spawn_handle(),853 overrides_handle::<_, _, Runtime>(client.clone()),854 50,855 50,856 prometheus_registry.clone(),857 ));858859 let (network, system_rpc_tx, network_starter) =860 sc_service::build_network(sc_service::BuildNetworkParams {861 config: &config,862 client: client.clone(),863 transaction_pool: transaction_pool.clone(),864 spawn_handle: task_manager.spawn_handle(),865 import_queue,866 block_announce_validator_builder: None,867 warp_sync: None,868 })?;869870 if config.offchain_worker.enabled {871 sc_service::build_offchain_workers(872 &config,873 task_manager.spawn_handle(),874 client.clone(),875 network.clone(),876 );877 }878879 let collator = config.role.is_authority();880881 let select_chain = maybe_select_chain.clone();882883 if collator {884 let block_import =885 FrontierBlockImport::new(client.clone(), client.clone(), frontier_backend.clone());886887 let env = sc_basic_authorship::ProposerFactory::new(888 task_manager.spawn_handle(),889 client.clone(),890 transaction_pool.clone(),891 prometheus_registry.as_ref(),892 telemetry.as_ref().map(|x| x.handle()),893 );894895 let transactions_commands_stream: Box<896 dyn Stream<Item = EngineCommand<Hash>> + Send + Sync + Unpin,897 > = Box::new(898 transaction_pool899 .pool()900 .validated_pool()901 .import_notification_stream()902 .map(|_| EngineCommand::SealNewBlock {903 create_empty: true,904 finalize: false,905 parent_hash: None,906 sender: None,907 }),908 );909910 let autoseal_interval = Box::pin(AutosealInterval::new(&config, autoseal_interval));911 let idle_commands_stream: Box<912 dyn Stream<Item = EngineCommand<Hash>> + Send + Sync + Unpin,913 > = Box::new(autoseal_interval.map(|_| EngineCommand::SealNewBlock {914 create_empty: true,915 finalize: false,916 parent_hash: None,917 sender: None,918 }));919920 let commands_stream = select(transactions_commands_stream, idle_commands_stream);921922 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;923 let client_set_aside_for_cidp = client.clone();924925 task_manager.spawn_essential_handle().spawn_blocking(926 "authorship_task",927 Some("block-authoring"),928 run_manual_seal(ManualSealParams {929 block_import,930 env,931 client: client.clone(),932 pool: transaction_pool.clone(),933 commands_stream,934 select_chain: select_chain.clone(),935 consensus_data_provider: None,936 create_inherent_data_providers: move |block: Hash, ()| {937 let current_para_block = client_set_aside_for_cidp938 .number(block)939 .expect("Header lookup should succeed")940 .expect("Header passed in as parent should be present in backend.");941942 let client_for_xcm = client_set_aside_for_cidp.clone();943 async move {944 let time = sp_timestamp::InherentDataProvider::from_system_time();945946 let mocked_parachain = cumulus_primitives_parachain_inherent::MockValidationDataInherentDataProvider {947 current_para_block,948 relay_offset: 1000,949 relay_blocks_per_para_block: 2,950 xcm_config: cumulus_primitives_parachain_inherent::MockXcmConfig::new(951 &*client_for_xcm,952 block,953 Default::default(),954 Default::default(),955 ),956 raw_downward_messages: vec![],957 raw_horizontal_messages: vec![],958 };959960 let slot =961 sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration(962 *time,963 slot_duration,964 );965966 Ok((time, slot, mocked_parachain))967 }968 },969 }),970 );971 }972973 task_manager.spawn_essential_handle().spawn(974 "frontier-mapping-sync-worker",975 Some("block-authoring"),976 MappingSyncWorker::new(977 client.import_notification_stream(),978 Duration::new(6, 0),979 client.clone(),980 backend.clone(),981 frontier_backend.clone(),982 3,983 0,984 SyncStrategy::Normal,985 )986 .for_each(|()| futures::future::ready(())),987 );988989 let rpc_client = client.clone();990 let rpc_pool = transaction_pool.clone();991 let rpc_network = network.clone();992 let rpc_frontier_backend = frontier_backend.clone();993 let rpc_builder = Box::new(move |deny_unsafe, subscription_executor| {994 let full_deps = unique_rpc::FullDeps {995 backend: rpc_frontier_backend.clone(),996 deny_unsafe,997 client: rpc_client.clone(),998 pool: rpc_pool.clone(),999 graph: rpc_pool.pool().clone(),1000 // TODO: Unhardcode1001 enable_dev_signer: false,1002 filter_pool: filter_pool.clone(),1003 network: rpc_network.clone(),1004 select_chain: select_chain.clone(),1005 is_authority: collator,1006 // TODO: Unhardcode1007 max_past_logs: 10000,1008 block_data_cache: block_data_cache.clone(),1009 fee_history_cache: fee_history_cache.clone(),1010 // TODO: Unhardcode1011 fee_history_limit: 2048,1012 };10131014 unique_rpc::create_full::<_, _, _, _, Runtime, RuntimeApi, _>(1015 full_deps,1016 subscription_executor,1017 )1018 .map_err(Into::into)1019 });10201021 sc_service::spawn_tasks(sc_service::SpawnTasksParams {1022 network,1023 client,1024 keystore: keystore_container.sync_keystore(),1025 task_manager: &mut task_manager,1026 transaction_pool,1027 rpc_builder,1028 backend,1029 system_rpc_tx,1030 config,1031 telemetry: None,1032 })?;10331034 network_starter.start_network();1035 Ok(task_manager)1036}node/rpc/Cargo.tomldiffbeforeafterboth--- a/node/rpc/Cargo.toml
+++ b/node/rpc/Cargo.toml
@@ -13,40 +13,40 @@
futures = { version = "0.3.17", features = ["compat"] }
jsonrpsee = { version = "0.13.0", features = ["server", "macros"] }
# pallet-contracts-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'master' }
-pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-storage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-storage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
tokio = { version = "0.2.25", features = ["macros", "sync"] }
-pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fc-db = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fc-mapping-sync = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fc-db = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fc-mapping-sync = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
pallet-common = { default-features = false, path = "../../pallets/common" }
unique-runtime-common = { default-features = false, path = "../../runtime/common" }
node/rpc/src/lib.rsdiffbeforeafterboth--- a/node/rpc/src/lib.rs
+++ b/node/rpc/src/lib.rs
@@ -175,8 +175,8 @@
use uc_rpc::{RmrkApiServer, Rmrk};
// use pallet_contracts_rpc::{Contracts, ContractsApi};
- use pallet_transaction_payment_rpc::{TransactionPaymentRpc, TransactionPaymentApiServer};
- use substrate_frame_rpc_system::{SystemRpc, SystemApiServer};
+ use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer};
+ use substrate_frame_rpc_system::{System, SystemApiServer};
let mut io = RpcModule::new(());
let FullDeps {
@@ -196,8 +196,8 @@
max_past_logs,
} = deps;
- io.merge(SystemRpc::new(Arc::clone(&client), Arc::clone(&pool), deny_unsafe).into_rpc())?;
- io.merge(TransactionPaymentRpc::new(Arc::clone(&client)).into_rpc())?;
+ io.merge(System::new(Arc::clone(&client), Arc::clone(&pool), deny_unsafe).into_rpc())?;
+ io.merge(TransactionPayment::new(Arc::clone(&client)).into_rpc())?;
// io.extend_with(ContractsApi::to_delegate(Contracts::new(client.clone())));
pallets/common/Cargo.tomldiffbeforeafterboth--- a/pallets/common/Cargo.toml
+++ b/pallets/common/Cargo.toml
@@ -11,18 +11,18 @@
version = '3.1.2'
[dependencies]
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
ethereum = { version = "0.12.0", default-features = false }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
serde = { version = "1.0.130", default-features = false }
scale-info = { version = "2.0.1", default-features = false, features = [
pallets/common/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/common/src/benchmarking.rs
+++ b/pallets/common/src/benchmarking.rs
@@ -98,6 +98,7 @@
token_owner: false,
collection_admin: false,
restricted: None,
+ #[cfg(feature = "runtime-benchmarks")]
permissive: true,
}),
mint_mode: Some(true),
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -74,7 +74,7 @@
RmrkPropertyInfo,
RmrkBaseInfo,
RmrkPartType,
- RmrkTheme,
+ RmrkBoundedTheme,
RmrkNftChild,
CollectionPermissions,
SchemaVersion,
@@ -543,7 +543,7 @@
RmrkPropertyInfo,
RmrkBaseInfo<T::AccountId>,
RmrkPartType,
- RmrkTheme,
+ RmrkBoundedTheme,
RmrkNftChild,
)>,
),
@@ -1212,14 +1212,7 @@
limit_default_clone!(old_limit, new_limit,
access => {},
mint_mode => {},
- nesting => {
- #[cfg(not(feature = "runtime-benchmarks"))]
- ensure!(
- // Permissive is only allowed for tests and internal usage of chain for now
- old_limit.permissive || !new_limit.permissive,
- <Error<T>>::NoPermission,
- )
- },
+ nesting => { /* todo check for permissive, if only it gets out of benchmarks */ },
);
Ok(new_limit)
}
pallets/evm-coder-substrate/Cargo.tomldiffbeforeafterboth--- a/pallets/evm-coder-substrate/Cargo.toml
+++ b/pallets/evm-coder-substrate/Cargo.toml
@@ -8,15 +8,15 @@
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
ethereum = { version = "0.12.0", default-features = false }
evm-coder = { default-features = false, path = "../../crates/evm-coder" }
-pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
up-data-structs = { default-features = false, path = "../../primitives/data-structs" }
[dependencies.codec]
pallets/evm-contract-helpers/Cargo.tomldiffbeforeafterboth--- a/pallets/evm-contract-helpers/Cargo.toml
+++ b/pallets/evm-contract-helpers/Cargo.toml
@@ -11,16 +11,16 @@
log = { default-features = false, version = "0.4.14" }
# Substrate
-frame-support = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-frame-system = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-runtime = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
+frame-support = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+frame-system = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-runtime = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
# Unique
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.23" }
# Locals
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
pallets/evm-migration/Cargo.tomldiffbeforeafterboth--- a/pallets/evm-migration/Cargo.toml
+++ b/pallets/evm-migration/Cargo.toml
@@ -8,15 +8,15 @@
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
[dependencies.codec]
default-features = false
pallets/evm-transaction-payment/Cargo.tomldiffbeforeafterboth--- a/pallets/evm-transaction-payment/Cargo.toml
+++ b/pallets/evm-transaction-payment/Cargo.toml
@@ -8,17 +8,17 @@
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.22" }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.23" }
+fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
[dependencies.codec]
default-features = false
pallets/fungible/Cargo.tomldiffbeforeafterboth--- a/pallets/fungible/Cargo.toml
+++ b/pallets/fungible/Cargo.toml
@@ -11,19 +11,19 @@
version = '3.1.2'
[dependencies]
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
pallet-common = { default-features = false, path = '../common' }
pallet-structure = { default-features = false, path = '../structure' }
up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }
ethereum = { version = "0.12.0", default-features = false }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
pallets/inflation/Cargo.tomldiffbeforeafterboth--- a/pallets/inflation/Cargo.toml
+++ b/pallets/inflation/Cargo.toml
@@ -43,37 +43,37 @@
default-features = false
optional = true
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-support]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-balances]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-timestamp]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-randomness-collective-flip]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-std]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.serde]
default-features = false
@@ -83,17 +83,17 @@
[dependencies.sp-runtime]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-core]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-io]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies]
scale-info = { version = "2.0.1", default-features = false, features = [
pallets/nonfungible/Cargo.tomldiffbeforeafterboth--- a/pallets/nonfungible/Cargo.toml
+++ b/pallets/nonfungible/Cargo.toml
@@ -11,19 +11,19 @@
version = '3.1.2'
[dependencies]
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
pallet-common = { default-features = false, path = '../common' }
pallet-structure = { default-features = false, path = '../structure' }
up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }
ethereum = { version = "0.12.0", default-features = false }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -28,7 +28,7 @@
use up_data_structs::{
AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData,
mapping::TokenAddressMapping, budget::Budget, Property, PropertyPermission, PropertyKey,
- PropertyKeyPermission, Properties, PropertyScope, TrySetProperty, TokenChild,
+ PropertyKeyPermission, Properties, PropertyScope, TrySetProperty, TokenChild, AuxPropertyValue,
};
use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};
use pallet_common::{
@@ -124,6 +124,19 @@
OnEmpty = up_data_structs::TokenProperties,
>;
+ #[pallet::storage]
+ #[pallet::getter(fn token_aux_property)]
+ pub type TokenAuxProperties<T: Config> = StorageNMap<
+ Key = (
+ Key<Twox64Concat, CollectionId>,
+ Key<Twox64Concat, TokenId>,
+ Key<Twox64Concat, PropertyScope>,
+ Key<Twox64Concat, PropertyKey>,
+ ),
+ Value = AuxPropertyValue,
+ QueryKind = OptionQuery,
+ >;
+
/// Used to enumerate tokens owned by account
#[pallet::storage]
pub type Owned<T: Config> = StorageNMap<
@@ -294,6 +307,33 @@
Ok(())
}
+ pub fn try_mutate_token_aux_property<R, E>(
+ collection_id: CollectionId,
+ token_id: TokenId,
+ scope: PropertyScope,
+ key: PropertyKey,
+ f: impl FnOnce(&mut Option<AuxPropertyValue>) -> Result<R, E>,
+ ) -> Result<R, E> {
+ <TokenAuxProperties<T>>::try_mutate((collection_id, token_id, scope, key), f)
+ }
+
+ pub fn remove_token_aux_property(
+ collection_id: CollectionId,
+ token_id: TokenId,
+ scope: PropertyScope,
+ key: PropertyKey,
+ ) {
+ <TokenAuxProperties<T>>::remove((collection_id, token_id, scope, key));
+ }
+
+ pub fn iterate_token_aux_properties(
+ collection_id: CollectionId,
+ token_id: TokenId,
+ scope: PropertyScope,
+ ) -> impl Iterator<Item = (PropertyKey, AuxPropertyValue)> {
+ <TokenAuxProperties<T>>::iter_prefix((collection_id, token_id, scope))
+ }
+
pub fn current_token_id(collection_id: CollectionId) -> TokenId {
TokenId(<TokensMinted<T>>::get(collection_id))
}
@@ -375,6 +415,7 @@
<TokensBurnt<T>>::insert(collection.id, burnt);
<TokenData<T>>::remove((collection.id, token));
<TokenProperties<T>>::remove((collection.id, token));
+ <TokenAuxProperties<T>>::remove_prefix((collection.id, token), None);
let old_spender = <Allowance<T>>::take((collection.id, token));
if let Some(old_spender) = old_spender {
@@ -997,7 +1038,13 @@
nesting_budget: &dyn Budget,
) -> DispatchResult {
let nesting = handle.permissions.nesting();
- if nesting.permissive {
+
+ #[cfg(not(feature = "runtime-benchmarks"))]
+ let permissive = false;
+ #[cfg(feature = "runtime-benchmarks")]
+ let permissive = nesting.permissive;
+
+ if permissive {
// Pass
} else if nesting.token_owner
&& <PalletStructure<T>>::check_indirectly_owned(
pallets/proxy-rmrk-core/Cargo.tomldiffbeforeafterboth--- a/pallets/proxy-rmrk-core/Cargo.toml
+++ b/pallets/proxy-rmrk-core/Cargo.toml
@@ -11,17 +11,17 @@
version = '3.1.2'
[dependencies]
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
pallet-common = { default-features = false, path = '../common' }
pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }
pallet-structure = { default-features = false, path = "../../pallets/structure" }
up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }
scale-info = { version = "2.0.1", default-features = false, features = ["derive"] }
derivative = { version = "2.2.0", features = ["use_core"] }
pallets/proxy-rmrk-core/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-core/src/benchmarking.rs
+++ b/pallets/proxy-rmrk-core/src/benchmarking.rs
@@ -85,7 +85,7 @@
<Pallet<T>>::mint_nft(
RawOrigin::Signed(owner.clone()).into(),
- owner.clone(),
+ None,
collection_id,
royalty_recipient,
royalty_amount,
@@ -106,10 +106,6 @@
collection_id,
current_nft_id: 0,
}
- }
-
- fn current_nft_id(&self) -> RmrkNftId {
- self.current_nft_id
}
fn build<T: Config>(&mut self, owner: &T::AccountId) -> Result<RmrkNftId, DispatchError> {
@@ -220,7 +216,6 @@
let b in 0..100;
let caller: T::AccountId = account("caller", 0, SEED);
- <T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
create_max_collection::<T>(&caller)?;
let collection_id = 0;
@@ -232,7 +227,7 @@
let transferable = true;
}: _(
RawOrigin::Signed(caller),
- owner,
+ None,
collection_id,
royalty_recipient,
royalty_amount,
@@ -381,7 +376,6 @@
add_basic_resource {
let caller: T::AccountId = account("caller", 0, SEED);
- <T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
create_max_collection::<T>(&caller)?;
let collection_id = 0;
@@ -398,7 +392,6 @@
add_composable_resource {
let caller: T::AccountId = account("caller", 0, SEED);
- <T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
create_max_collection::<T>(&caller)?;
let collection_id = 0;
@@ -415,7 +408,6 @@
add_slot_resource {
let caller: T::AccountId = account("caller", 0, SEED);
- <T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
create_max_collection::<T>(&caller)?;
let collection_id = 0;
@@ -432,7 +424,6 @@
remove_resource {
let caller: T::AccountId = account("caller", 0, SEED);
- <T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
create_max_collection::<T>(&caller)?;
let collection_id = 0;
@@ -448,7 +439,7 @@
resource
)?;
- let resource_id = 1;
+ let resource_id = 0;
}: _(
RawOrigin::Signed(caller),
collection_id,
@@ -460,8 +451,6 @@
let caller: T::AccountId = account("caller", 0, SEED);
let admin: T::AccountId = account("admin", 0, SEED);
- <T as pallet_common::Config>::Currency::deposit_creating(&admin, T::CollectionCreationPrice::get());
-
create_max_collection::<T>(&admin)?;
let collection_id = 0;
@@ -486,7 +475,7 @@
resource
)?;
- let resource_id = 1;
+ let resource_id = 0;
}: _(
RawOrigin::Signed(caller),
collection_id,
@@ -497,8 +486,6 @@
accept_resource_removal {
let caller: T::AccountId = account("caller", 0, SEED);
let admin: T::AccountId = account("admin", 0, SEED);
-
- <T as pallet_common::Config>::Currency::deposit_creating(&admin, T::CollectionCreationPrice::get());
create_max_collection::<T>(&admin)?;
let collection_id = 0;
@@ -515,7 +502,7 @@
resource
)?;
- let resource_id = 1;
+ let resource_id = 0;
let new_owner = <RmrkAccountIdOrCollectionNftTuple<T::AccountId>>::AccountId(caller.clone());
pallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-core/src/lib.rs
+++ b/pallets/proxy-rmrk-core/src/lib.rs
@@ -35,6 +35,7 @@
pub mod benchmarking;
pub mod misc;
pub mod property;
+pub mod rpc;
pub mod weights;
pub type SelfWeightOf<T> = <T as Config>::WeightInfo;
@@ -154,6 +155,7 @@
NftTypeEncodeError,
RmrkPropertyKeyIsTooLong,
RmrkPropertyValueIsTooLong,
+ RmrkPropertyIsNotFound,
UnableToDecodeRmrkData,
/* RMRK compatible events */
@@ -168,7 +170,9 @@
CannotSendToDescendentOrSelf,
CannotAcceptNonOwnedNft,
CannotRejectNonOwnedNft,
+ CannotRejectNonPendingNft,
ResourceNotPending,
+ NoAvailableResourceId,
}
#[pallet::call]
@@ -201,7 +205,7 @@
token_owner: true,
collection_admin: false,
restricted: None,
-
+ #[cfg(feature = "runtime-benchmarks")]
permissive: false,
}),
..Default::default()
@@ -347,7 +351,7 @@
#[pallet::weight(<SelfWeightOf<T>>::mint_nft(resources.as_ref().map(|r| r.len() as u32).unwrap_or(0)))]
pub fn mint_nft(
origin: OriginFor<T>,
- owner: T::AccountId,
+ owner: Option<T::AccountId>,
collection_id: RmrkCollectionId,
recipient: Option<T::AccountId>,
royalty_amount: Option<Permill>,
@@ -357,6 +361,8 @@
) -> DispatchResult {
let sender = ensure_signed(origin)?;
let cross_sender = T::CrossAccountId::from_sub(sender.clone());
+
+ let owner = owner.unwrap_or(sender.clone());
let cross_owner = T::CrossAccountId::from_sub(owner.clone());
let collection = Self::get_typed_nft_collection(
@@ -381,8 +387,8 @@
Self::rmrk_property(RoyaltyInfo, &royalty_info)?,
Self::rmrk_property(Metadata, &metadata)?,
Self::rmrk_property(Equipped, &false)?,
- Self::rmrk_property(ResourceCollection, &None::<CollectionId>)?,
Self::rmrk_property(ResourcePriorities, &<Vec<u8>>::new())?,
+ Self::rmrk_property(NextResourceId, &(0 as RmrkResourceId))?,
]
.into_iter(),
)
@@ -653,12 +659,17 @@
collection.check_is_external()?;
ensure!(
+ <TokenData<T>>::get((collection_id, nft_id)).is_some(),
+ <Error<T>>::NoAvailableNftId
+ );
+
+ ensure!(
Self::get_nft_property_decoded(
collection_id,
nft_id,
RmrkProperty::PendingNftAccept
)?,
- <Error<T>>::NoPermission
+ <Error<T>>::CannotRejectNonPendingNft
);
Self::destroy_nft(
@@ -686,7 +697,7 @@
origin: OriginFor<T>,
rmrk_collection_id: RmrkCollectionId,
rmrk_nft_id: RmrkNftId,
- rmrk_resource_id: RmrkResourceId,
+ resource_id: RmrkResourceId,
) -> DispatchResult {
let sender = ensure_signed(origin)?;
let cross_sender = T::CrossAccountId::from_sub(sender);
@@ -698,7 +709,6 @@
collection.check_is_external()?;
let nft_id = rmrk_nft_id.into();
- let resource_id = rmrk_resource_id.into();
let budget = budget::Value::new(NESTING_BUDGET);
@@ -706,34 +716,18 @@
<PalletStructure<T>>::find_topmost_owner(collection_id, nft_id, &budget)
.map_err(|_| <Error<T>>::ResourceDoesntExist)?;
- let resource_collection_id: Option<CollectionId> =
- Self::get_nft_property_decoded(collection_id, nft_id, ResourceCollection)
- .map_err(|_| <Error<T>>::ResourceDoesntExist)?;
-
- let resource_collection_id =
- resource_collection_id.ok_or(<Error<T>>::ResourceDoesntExist)?;
+ Self::try_mutate_resource_info(collection_id, nft_id, resource_id, |res| {
+ ensure!(res.pending, <Error<T>>::ResourceNotPending);
+ ensure!(cross_sender == nft_owner, <Error<T>>::NoPermission);
- let is_pending: bool = Self::get_nft_property_decoded(
- resource_collection_id,
- resource_id,
- PendingResourceAccept,
- )
- .map_err(|_| <Error<T>>::ResourceDoesntExist)?;
+ res.pending = false;
- ensure!(is_pending, <Error<T>>::ResourceNotPending);
-
- ensure!(cross_sender == nft_owner, <Error<T>>::NoPermission);
-
- <PalletNft<T>>::set_scoped_token_property(
- resource_collection_id,
- rmrk_resource_id.into(),
- PropertyScope::Rmrk,
- Self::rmrk_property(PendingResourceAccept, &false)?,
- )?;
+ Ok(())
+ })?;
Self::deposit_event(Event::<T>::ResourceAccepted {
nft_id: rmrk_nft_id,
- resource_id: rmrk_resource_id,
+ resource_id,
});
Ok(())
@@ -746,7 +740,7 @@
origin: OriginFor<T>,
rmrk_collection_id: RmrkCollectionId,
rmrk_nft_id: RmrkNftId,
- rmrk_resource_id: RmrkResourceId,
+ resource_id: RmrkResourceId,
) -> DispatchResult {
let sender = ensure_signed(origin)?;
let cross_sender = T::CrossAccountId::from_sub(sender);
@@ -758,7 +752,6 @@
collection.check_is_external()?;
let nft_id = rmrk_nft_id.into();
- let resource_id = rmrk_resource_id.into();
let budget = budget::Value::new(NESTING_BUDGET);
@@ -768,42 +761,33 @@
ensure!(cross_sender == nft_owner, <Error<T>>::NoPermission);
- let resource_collection_id: Option<CollectionId> =
- Self::get_nft_property_decoded(collection_id, nft_id, ResourceCollection)
- .map_err(|_| <Error<T>>::ResourceDoesntExist)?;
-
- let resource_collection_id =
- resource_collection_id.ok_or(<Error<T>>::ResourceDoesntExist)?;
-
- let is_pending: bool = Self::get_nft_property_decoded(
- resource_collection_id,
- resource_id,
- PendingResourceRemoval,
- )
- .map_err(|_| <Error<T>>::ResourceDoesntExist)?;
+ let resource_id_key = Self::rmrk_property_key(ResourceId(resource_id))?;
- ensure!(is_pending, <Error<T>>::ResourceNotPending);
-
- let resource_collection = Self::get_typed_nft_collection(
- resource_collection_id,
- misc::CollectionType::Resource,
- )?;
+ let resource_info = <PalletNft<T>>::token_aux_property((
+ collection_id,
+ nft_id,
+ PropertyScope::Rmrk,
+ resource_id_key.clone(),
+ ))
+ .ok_or(<Error<T>>::ResourceDoesntExist)?;
- let resource_data = <TokenData<T>>::get((resource_collection_id, resource_id))
- .ok_or(<Error<T>>::ResourceDoesntExist)?;
+ let resource_info: RmrkResourceInfo = Self::decode_property(&resource_info)?;
- let resource_owner = resource_data.owner;
+ ensure!(
+ resource_info.pending_removal,
+ <Error<T>>::ResourceNotPending
+ );
- <PalletNft<T>>::burn(
- &resource_collection,
- &resource_owner,
- rmrk_resource_id.into(),
- )
- .map_err(Self::map_unique_err_to_proxy)?;
+ <PalletNft<T>>::remove_token_aux_property(
+ collection_id,
+ nft_id,
+ PropertyScope::Rmrk,
+ resource_id_key,
+ );
Self::deposit_event(Event::<T>::ResourceRemovalAccepted {
nft_id: rmrk_nft_id,
- resource_id: rmrk_resource_id,
+ resource_id,
});
Ok(())
@@ -1014,7 +998,7 @@
Self::get_typed_nft_collection(collection_id, misc::CollectionType::Regular)?;
collection.check_is_external()?;
- Self::resource_remove(sender, collection_id, nft_id.into(), resource_id.into())?;
+ Self::resource_remove(sender, collection_id, nft_id.into(), resource_id)?;
Self::deposit_event(Event::ResourceRemoval {
nft_id,
@@ -1043,17 +1027,27 @@
) -> Result<Property, DispatchError> {
let key = rmrk_key.to_key::<T>()?;
+ let value = Self::encode_property(value)?;
+
+ let property = Property { key, value };
+
+ Ok(property)
+ }
+
+ pub fn encode_property<E: Encode, S: Get<u32>>(
+ value: &E,
+ ) -> Result<BoundedBytes<S>, DispatchError> {
let value = value
.encode()
.try_into()
.map_err(|_| <Error<T>>::RmrkPropertyValueIsTooLong)?;
-
- let property = Property { key, value };
- Ok(property)
+ Ok(value)
}
- pub fn decode_property<D: Decode>(vec: PropertyValue) -> Result<D, DispatchError> {
+ pub fn decode_property<D: Decode, S: Get<u32>>(
+ vec: &BoundedBytes<S>,
+ ) -> Result<D, DispatchError> {
vec.decode()
.map_err(|_| <Error<T>>::UnableToDecodeRmrkData.into())
}
@@ -1153,67 +1147,32 @@
)
}
- fn resource_add(
- sender: T::AccountId,
+ fn acquire_next_resource_id(
collection_id: CollectionId,
nft_id: TokenId,
- resource: RmrkResourceTypes,
) -> Result<RmrkResourceId, DispatchError> {
- match resource {
- RmrkResourceTypes::Basic(resource) => Self::resource_add_helper(
- sender,
- collection_id,
- nft_id,
- [
- Self::rmrk_property(TokenType, &NftType::Resource)?,
- Self::rmrk_property(ResourceType, &misc::ResourceType::Basic)?,
- Self::rmrk_property(Src, &resource.src)?,
- Self::rmrk_property(Metadata, &resource.metadata)?,
- Self::rmrk_property(License, &resource.license)?,
- Self::rmrk_property(Thumb, &resource.thumb)?,
- ]
- .into_iter(),
- ),
- RmrkResourceTypes::Composable(resource) => Self::resource_add_helper(
- sender,
- collection_id,
- nft_id.into(),
- [
- Self::rmrk_property(TokenType, &NftType::Resource)?,
- Self::rmrk_property(ResourceType, &misc::ResourceType::Composable)?,
- Self::rmrk_property(Parts, &resource.parts)?,
- Self::rmrk_property(Base, &resource.base)?,
- Self::rmrk_property(Src, &resource.src)?,
- Self::rmrk_property(Metadata, &resource.metadata)?,
- Self::rmrk_property(License, &resource.license)?,
- Self::rmrk_property(Thumb, &resource.thumb)?,
- ]
- .into_iter(),
- ),
- RmrkResourceTypes::Slot(resource) => Self::resource_add_helper(
- sender,
- collection_id,
- nft_id.into(),
- [
- Self::rmrk_property(TokenType, &NftType::Resource)?,
- Self::rmrk_property(ResourceType, &misc::ResourceType::Slot)?,
- Self::rmrk_property(Base, &resource.base)?,
- Self::rmrk_property(Src, &resource.src)?,
- Self::rmrk_property(Metadata, &resource.metadata)?,
- Self::rmrk_property(Slot, &resource.slot)?,
- Self::rmrk_property(License, &resource.license)?,
- Self::rmrk_property(Thumb, &resource.thumb)?,
- ]
- .into_iter(),
- ),
- }
+ let resource_id: RmrkResourceId =
+ Self::get_nft_property_decoded(collection_id, nft_id, NextResourceId)?;
+
+ let next_id = resource_id
+ .checked_add(1)
+ .ok_or(<Error<T>>::NoAvailableResourceId)?;
+
+ <PalletNft<T>>::set_scoped_token_property(
+ collection_id,
+ nft_id,
+ PropertyScope::Rmrk,
+ Self::rmrk_property(NextResourceId, &next_id)?,
+ )?;
+
+ Ok(resource_id)
}
- fn resource_add_helper(
+ fn resource_add(
sender: T::AccountId,
collection_id: CollectionId,
- token_id: TokenId,
- resource_properties: impl Iterator<Item = Property>,
+ nft_id: TokenId,
+ resource: RmrkResourceTypes,
) -> Result<RmrkResourceId, DispatchError> {
let collection =
Self::get_typed_nft_collection(collection_id, misc::CollectionType::Regular)?;
@@ -1222,86 +1181,57 @@
let sender = T::CrossAccountId::from_sub(sender);
let budget = budget::Value::new(NESTING_BUDGET);
- let nft_owner = <PalletStructure<T>>::find_topmost_owner(collection_id, token_id, &budget)
+ let nft_owner = <PalletStructure<T>>::find_topmost_owner(collection_id, nft_id, &budget)
.map_err(Self::map_unique_err_to_proxy)?;
let pending = sender != nft_owner;
-
- let resource_collection_id: Option<CollectionId> =
- Self::get_nft_property_decoded(collection_id, token_id, ResourceCollection)?;
-
- let resource_collection_id = match resource_collection_id {
- Some(id) => id,
- None => {
- let resource_collection_id = Self::init_collection(
- sender.clone(),
- CreateCollectionData {
- ..Default::default()
- },
- [Self::rmrk_property(
- CollectionType,
- &misc::CollectionType::Resource,
- )?]
- .into_iter(),
- )?;
- <PalletNft<T>>::set_scoped_token_property(
- collection_id,
- token_id,
- PropertyScope::Rmrk,
- Self::rmrk_property(ResourceCollection, &Some(resource_collection_id))?,
- )?;
+ let id = Self::acquire_next_resource_id(collection_id, nft_id)?;
- resource_collection_id
- }
+ let resource_info = RmrkResourceInfo {
+ id,
+ resource,
+ pending,
+ pending_removal: false,
};
-
- let resource_collection =
- Self::get_typed_nft_collection(resource_collection_id, misc::CollectionType::Resource)?;
- // todo probably add extra connections to bases, slots, etc., when RMRK starts to use them
+ <PalletNft<T>>::try_mutate_token_aux_property(
+ collection_id,
+ nft_id,
+ PropertyScope::Rmrk,
+ Self::rmrk_property_key(ResourceId(id))?,
+ |value| -> DispatchResult {
+ *value = Some(Self::encode_property(&resource_info)?);
- let resource_id = Self::create_nft(
- &sender,
- &nft_owner,
- &resource_collection,
- resource_properties.chain(
- [
- Self::rmrk_property(PendingResourceAccept, &pending)?,
- Self::rmrk_property(PendingResourceRemoval, &false)?,
- ]
- .into_iter(),
- ),
- )
- .map_err(|err| match err {
- DispatchError::Arithmetic(_) => <Error<T>>::NoAvailableNftId.into(),
- err => Self::map_unique_err_to_proxy(err),
- })?;
+ Ok(())
+ },
+ )?;
- Ok(resource_id.0)
+ Ok(id)
}
fn resource_remove(
sender: T::AccountId,
collection_id: CollectionId,
nft_id: TokenId,
- resource_id: TokenId,
+ resource_id: RmrkResourceId,
) -> DispatchResult {
let collection =
Self::get_typed_nft_collection(collection_id, misc::CollectionType::Regular)?;
ensure!(collection.owner == sender, Error::<T>::NoPermission);
- let resource_collection_id: Option<CollectionId> =
- Self::get_nft_property_decoded(collection_id, nft_id, ResourceCollection)?;
-
- let resource_collection_id =
- resource_collection_id.ok_or(Error::<T>::ResourceDoesntExist)?;
+ let resource_id_key = Self::rmrk_property_key(ResourceId(resource_id))?;
+ let scope = PropertyScope::Rmrk;
- let resource_collection =
- Self::get_typed_nft_collection(resource_collection_id, misc::CollectionType::Resource)?;
ensure!(
- <PalletNft<T>>::token_exists(&resource_collection, resource_id),
- Error::<T>::ResourceDoesntExist
+ <PalletNft<T>>::token_aux_property((
+ collection_id,
+ nft_id,
+ scope,
+ resource_id_key.clone()
+ ))
+ .is_some(),
+ <Error<T>>::ResourceDoesntExist
);
let budget = up_data_structs::budget::Value::new(NESTING_BUDGET);
@@ -1310,20 +1240,49 @@
let sender = T::CrossAccountId::from_sub(sender);
if topmost_owner == sender {
- <PalletNft<T>>::burn(&resource_collection, &sender, resource_id)
- .map_err(Self::map_unique_err_to_proxy)?;
- } else {
- <PalletNft<T>>::set_scoped_token_property(
- resource_collection_id,
- resource_id,
+ <PalletNft<T>>::remove_token_aux_property(
+ collection_id,
+ nft_id,
PropertyScope::Rmrk,
- Self::rmrk_property(PendingResourceRemoval, &true)?,
- )?;
+ Self::rmrk_property_key(ResourceId(resource_id))?,
+ );
+ } else {
+ Self::try_mutate_resource_info(collection_id, nft_id, resource_id, |res| {
+ res.pending_removal = true;
+
+ Ok(())
+ })?;
}
Ok(())
}
+ fn try_mutate_resource_info(
+ collection_id: CollectionId,
+ nft_id: TokenId,
+ resource_id: RmrkResourceId,
+ f: impl FnOnce(&mut RmrkResourceInfo) -> DispatchResult,
+ ) -> DispatchResult {
+ <PalletNft<T>>::try_mutate_token_aux_property(
+ collection_id,
+ nft_id,
+ PropertyScope::Rmrk,
+ Self::rmrk_property_key(ResourceId(resource_id))?,
+ |value| match value {
+ Some(value) => {
+ let mut resource_info: RmrkResourceInfo = Self::decode_property(value)?;
+
+ f(&mut resource_info)?;
+
+ *value = Self::encode_property(&resource_info)?;
+
+ Ok(())
+ }
+ None => Err(<Error<T>>::ResourceDoesntExist.into()),
+ },
+ )
+ }
+
fn change_collection_owner(
collection_id: CollectionId,
collection_type: misc::CollectionType,
@@ -1339,7 +1298,7 @@
collection.save()
}
- fn check_collection_owner(
+ pub fn check_collection_owner(
collection: &NonfungibleHandle<T>,
account: &T::CrossAccountId,
) -> DispatchResult {
@@ -1397,14 +1356,19 @@
collection_id: CollectionId,
key: RmrkProperty,
) -> Result<V, DispatchError> {
- Self::decode_property(Self::get_collection_property(collection_id, key)?)
+ Self::decode_property(&Self::get_collection_property(collection_id, key)?)
}
pub fn get_collection_type(
collection_id: CollectionId,
) -> Result<misc::CollectionType, DispatchError> {
- Self::get_collection_property_decoded(collection_id, CollectionType)
- .map_err(|_| <Error<T>>::CorruptedCollectionType.into())
+ Self::get_collection_property_decoded(collection_id, CollectionType).map_err(|err| {
+ if err != <Error<T>>::CollectionUnknown.into() {
+ <Error<T>>::CorruptedCollectionType.into()
+ } else {
+ err
+ }
+ })
}
pub fn ensure_collection_type(
@@ -1450,7 +1414,7 @@
) -> Result<PropertyValue, DispatchError> {
let nft_property = <PalletNft<T>>::token_properties((collection_id, nft_id))
.get(&Self::rmrk_property_key(key)?)
- .ok_or(<Error<T>>::NoAvailableNftId)? // todo replace with better error?
+ .ok_or(<Error<T>>::RmrkPropertyIsNotFound)?
.clone();
Ok(nft_property)
@@ -1461,7 +1425,7 @@
nft_id: TokenId,
key: RmrkProperty,
) -> Result<V, DispatchError> {
- Self::decode_property(Self::get_nft_property(collection_id, nft_id, key)?)
+ Self::decode_property(&Self::get_nft_property(collection_id, nft_id, key)?)
}
pub fn nft_exists(collection_id: CollectionId, nft_id: TokenId) -> bool {
pallets/proxy-rmrk-core/src/misc.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-core/src/misc.rs
+++ b/pallets/proxy-rmrk-core/src/misc.rs
@@ -61,22 +61,13 @@
#[derive(Encode, Decode, PartialEq, Eq)]
pub enum CollectionType {
Regular,
- Resource,
Base,
}
#[derive(Encode, Decode, PartialEq, Eq)]
pub enum NftType {
Regular,
- Resource,
FixedPart,
SlotPart,
Theme,
-}
-
-#[derive(Encode, Decode, PartialEq, Eq)]
-pub enum ResourceType {
- Basic,
- Composable,
- Slot,
}
pallets/proxy-rmrk-core/src/property.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-core/src/property.rs
+++ b/pallets/proxy-rmrk-core/src/property.rs
@@ -17,6 +17,8 @@
use super::*;
use core::convert::AsRef;
+const RESOURCE_ID_PREFIX: &str = "rsid-";
+
pub enum RmrkProperty<'r> {
Metadata,
CollectionType,
@@ -25,18 +27,13 @@
Transferable,
RoyaltyInfo,
Equipped,
- ResourceCollection,
ResourcePriorities,
- ResourceType,
+ NextResourceId,
+ ResourceId(RmrkResourceId),
PendingNftAccept,
- PendingResourceAccept,
- PendingResourceRemoval,
Parts,
Base,
Src,
- Slot,
- License,
- Thumb,
EquippedNft,
BaseType,
ExternalPartId,
@@ -72,18 +69,13 @@
Self::Transferable => key!("transferable"),
Self::RoyaltyInfo => key!("royalty-info"),
Self::Equipped => key!("equipped"),
- Self::ResourceCollection => key!("resource-collection"),
Self::ResourcePriorities => key!("resource-priorities"),
- Self::ResourceType => key!("resource-type"),
+ Self::NextResourceId => key!("next-resource-id"),
+ Self::ResourceId(id) => key!(RESOURCE_ID_PREFIX, id.to_le_bytes()),
Self::PendingNftAccept => key!("pending-nft-accept"),
- Self::PendingResourceAccept => key!("pending-resource-accept"),
- Self::PendingResourceRemoval => key!("pending-resource-removal"),
Self::Parts => key!("parts"),
Self::Base => key!("base"),
Self::Src => key!("src"),
- Self::Slot => key!("slot"),
- Self::License => key!("license"),
- Self::Thumb => key!("thumb"),
Self::EquippedNft => key!("equipped-nft"),
Self::BaseType => key!("base-type"),
Self::ExternalPartId => key!("ext-part-id"),
pallets/proxy-rmrk-core/src/rpc.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/proxy-rmrk-core/src/rpc.rs
@@ -0,0 +1,265 @@
+use super::*;
+
+pub fn last_collection_idx<T: Config>() -> Result<RmrkCollectionId, DispatchError> {
+ Ok(<Pallet<T>>::last_collection_idx())
+}
+
+pub fn collection_by_id<T: Config>(
+ collection_id: RmrkCollectionId,
+) -> Result<Option<RmrkCollectionInfo<T::AccountId>>, DispatchError> {
+ let (collection, collection_id) = match <Pallet<T>>::get_typed_nft_collection_mapped(
+ collection_id,
+ misc::CollectionType::Regular,
+ ) {
+ Ok(c) => c,
+ Err(_) => return Ok(None),
+ };
+
+ let nfts_count = collection.total_supply();
+
+ Ok(Some(RmrkCollectionInfo {
+ issuer: collection.owner.clone(),
+ metadata: <Pallet<T>>::get_collection_property_decoded(
+ collection_id,
+ RmrkProperty::Metadata,
+ )?,
+ max: collection.limits.token_limit,
+ symbol: <Pallet<T>>::rebind(&collection.token_prefix)?,
+ nfts_count,
+ }))
+}
+
+pub fn nft_by_id<T: Config>(
+ collection_id: RmrkCollectionId,
+ nft_by_id: RmrkNftId,
+) -> Result<Option<RmrkInstanceInfo<T::AccountId>>, DispatchError> {
+ let (collection, collection_id) = match <Pallet<T>>::get_typed_nft_collection_mapped(
+ collection_id,
+ misc::CollectionType::Regular,
+ ) {
+ Ok(c) => c,
+ Err(_) => return Ok(None),
+ };
+
+ let nft_id = TokenId(nft_by_id);
+ if !<Pallet<T>>::nft_exists(collection_id, nft_id) {
+ return Ok(None);
+ }
+
+ let owner = match collection.token_owner(nft_id) {
+ Some(owner) => match T::CrossTokenAddressMapping::address_to_token(&owner) {
+ Some((col, tok)) => {
+ let rmrk_collection = <Pallet<T>>::rmrk_collection_id(col)?;
+
+ RmrkAccountIdOrCollectionNftTuple::CollectionAndNftTuple(rmrk_collection, tok.0)
+ }
+ None => RmrkAccountIdOrCollectionNftTuple::AccountId(owner.as_sub().clone()),
+ },
+ None => return Ok(None),
+ };
+
+ Ok(Some(RmrkInstanceInfo {
+ owner: owner,
+ royalty: <Pallet<T>>::get_nft_property_decoded(
+ collection_id,
+ nft_id,
+ RmrkProperty::RoyaltyInfo,
+ )?,
+ metadata: <Pallet<T>>::get_nft_property_decoded(
+ collection_id,
+ nft_id,
+ RmrkProperty::Metadata,
+ )?,
+ equipped: <Pallet<T>>::get_nft_property_decoded(
+ collection_id,
+ nft_id,
+ RmrkProperty::Equipped,
+ )?,
+ pending: <Pallet<T>>::get_nft_property_decoded(
+ collection_id,
+ nft_id,
+ RmrkProperty::PendingNftAccept,
+ )?,
+ }))
+}
+
+pub fn account_tokens<T: Config>(
+ account_id: T::AccountId,
+ collection_id: RmrkCollectionId,
+) -> Result<Vec<RmrkNftId>, DispatchError> {
+ let cross_account_id = CrossAccountId::from_sub(account_id);
+
+ let (collection, collection_id) = match <Pallet<T>>::get_typed_nft_collection_mapped(
+ collection_id,
+ misc::CollectionType::Regular,
+ ) {
+ Ok(c) => c,
+ Err(_) => return Ok(Vec::new()),
+ };
+
+ let tokens = collection
+ .account_tokens(cross_account_id)
+ .into_iter()
+ .filter(|token| {
+ let is_pending = <Pallet<T>>::get_nft_property_decoded(
+ collection_id,
+ *token,
+ RmrkProperty::PendingNftAccept,
+ )
+ .unwrap_or(true);
+
+ !is_pending
+ })
+ .map(|token| token.0)
+ .collect();
+
+ Ok(tokens)
+}
+
+pub fn nft_children<T: Config>(
+ collection_id: RmrkCollectionId,
+ nft_id: RmrkNftId,
+) -> Result<Vec<RmrkNftChild>, DispatchError> {
+ let collection_id = match <Pallet<T>>::unique_collection_id(collection_id) {
+ Ok(id) => id,
+ Err(_) => return Ok(Vec::new()),
+ };
+ let nft_id = TokenId(nft_id);
+ if !<Pallet<T>>::nft_exists(collection_id, nft_id) {
+ return Ok(Vec::new());
+ }
+
+ Ok(
+ pallet_nonfungible::TokenChildren::<T>::iter_prefix((collection_id, nft_id))
+ .filter_map(|((child_collection, child_token), _)| {
+ let is_pending = <Pallet<T>>::get_nft_property_decoded(
+ child_collection,
+ child_token,
+ RmrkProperty::PendingNftAccept,
+ )
+ .ok()?;
+
+ if is_pending {
+ return None;
+ }
+
+ let rmrk_child_collection =
+ <Pallet<T>>::rmrk_collection_id(child_collection).ok()?;
+
+ Some(RmrkNftChild {
+ collection_id: rmrk_child_collection,
+ nft_id: child_token.0,
+ })
+ })
+ .collect(),
+ )
+}
+
+pub fn collection_properties<T: Config>(
+ collection_id: RmrkCollectionId,
+ filter_keys: Option<Vec<RmrkPropertyKey>>,
+) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
+ let collection_id = match <Pallet<T>>::unique_collection_id(collection_id) {
+ Ok(id) => id,
+ Err(_) => return Ok(Vec::new()),
+ };
+ if <Pallet<T>>::ensure_collection_type(collection_id, misc::CollectionType::Regular).is_err() {
+ return Ok(Vec::new());
+ }
+
+ let properties = <Pallet<T>>::filter_user_properties(
+ collection_id,
+ /* token_id = */ None,
+ filter_keys,
+ |key, value| RmrkPropertyInfo { key, value },
+ )?;
+
+ Ok(properties)
+}
+
+pub fn nft_properties<T: Config>(
+ collection_id: RmrkCollectionId,
+ nft_id: RmrkNftId,
+ filter_keys: Option<Vec<RmrkPropertyKey>>,
+) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
+ let collection_id = match <Pallet<T>>::unique_collection_id(collection_id) {
+ Ok(id) => id,
+ Err(_) => return Ok(Vec::new()),
+ };
+ let token_id = TokenId(nft_id);
+
+ if <Pallet<T>>::ensure_nft_type(collection_id, token_id, NftType::Regular).is_err() {
+ return Ok(Vec::new());
+ }
+
+ let properties = <Pallet<T>>::filter_user_properties(
+ collection_id,
+ Some(token_id),
+ filter_keys,
+ |key, value| RmrkPropertyInfo { key, value },
+ )?;
+
+ Ok(properties)
+}
+
+pub fn nft_resources<T: Config>(
+ collection_id: RmrkCollectionId,
+ nft_id: RmrkNftId,
+) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
+ let collection_id = match <Pallet<T>>::unique_collection_id(collection_id) {
+ Ok(id) => id,
+ Err(_) => return Ok(Vec::new()),
+ };
+ if <Pallet<T>>::ensure_collection_type(collection_id, misc::CollectionType::Regular).is_err() {
+ return Ok(Vec::new());
+ }
+
+ let nft_id = TokenId(nft_id);
+ if <Pallet<T>>::ensure_nft_type(collection_id, nft_id, NftType::Regular).is_err() {
+ return Ok(Vec::new());
+ }
+
+ let resources = <pallet_nonfungible::Pallet<T>>::iterate_token_aux_properties(
+ collection_id,
+ nft_id,
+ PropertyScope::Rmrk,
+ )
+ .filter_map(|(_, value)| {
+ let resource_info: RmrkResourceInfo = <Pallet<T>>::decode_property(&value).ok()?;
+
+ Some(resource_info)
+ })
+ .collect();
+
+ Ok(resources)
+}
+
+pub fn nft_resource_priority<T: Config>(
+ collection_id: RmrkCollectionId,
+ nft_id: RmrkNftId,
+ resource_id: RmrkResourceId,
+) -> Result<Option<u32>, DispatchError> {
+ let collection_id = match <Pallet<T>>::unique_collection_id(collection_id) {
+ Ok(id) => id,
+ Err(_) => return Ok(None),
+ };
+ if <Pallet<T>>::ensure_collection_type(collection_id, misc::CollectionType::Regular).is_err() {
+ return Ok(None);
+ }
+
+ let nft_id = TokenId(nft_id);
+ if <Pallet<T>>::ensure_nft_type(collection_id, nft_id, NftType::Regular).is_err() {
+ return Ok(None);
+ }
+
+ let priorities: Vec<_> = <Pallet<T>>::get_nft_property_decoded(
+ collection_id,
+ nft_id,
+ RmrkProperty::ResourcePriorities,
+ )?;
+ Ok(priorities
+ .into_iter()
+ .enumerate()
+ .find(|(_, id)| *id == resource_id)
+ .map(|(priority, _): (usize, RmrkResourceId)| priority as u32))
+}
pallets/proxy-rmrk-core/src/weights.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-core/src/weights.rs
+++ b/pallets/proxy-rmrk-core/src/weights.rs
@@ -3,7 +3,7 @@
//! Autogenerated weights for pallet_proxy_rmrk_core
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-06-14, STEPS: `50`, REPEAT: 200, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-06-21, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
// Executed Command:
@@ -19,7 +19,7 @@
// --template
// .maintain/frame-weight-template.hbs
// --steps=50
-// --repeat=200
+// --repeat=80
// --heap-pages=4096
// --output=./pallets/proxy-rmrk-core/src/weights.rs
@@ -64,7 +64,7 @@
// Storage: Common CollectionById (r:0 w:1)
// Storage: RmrkCore UniqueCollectionId (r:0 w:1)
fn create_collection() -> Weight {
- (41_277_000 as Weight)
+ (49_986_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(8 as Weight))
}
@@ -77,7 +77,7 @@
// Storage: Nonfungible TokensBurnt (r:0 w:1)
// Storage: Common AdminAmount (r:0 w:1)
fn destroy_collection() -> Weight {
- (43_371_000 as Weight)
+ (50_177_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
@@ -85,7 +85,7 @@
// Storage: Common CollectionById (r:1 w:1)
// Storage: Common CollectionProperties (r:1 w:0)
fn change_collection_issuer() -> Weight {
- (21_891_000 as Weight)
+ (25_949_000 as Weight)
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -95,7 +95,7 @@
// Storage: Nonfungible TokensMinted (r:1 w:0)
// Storage: Nonfungible TokensBurnt (r:1 w:0)
fn lock_collection() -> Weight {
- (23_144_000 as Weight)
+ (27_183_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -107,18 +107,15 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:1)
- // Storage: Common CreatedCollectionCount (r:1 w:1)
- // Storage: Common DestroyedCollectionCount (r:1 w:0)
- // Storage: System Account (r:2 w:2)
- // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:2 w:2)
fn mint_nft(b: u32, ) -> Weight {
- (68_329_000 as Weight)
- // Standard Error: 3_000
- .saturating_add((21_470_000 as Weight).saturating_mul(b as Weight))
- .saturating_add(T::DbWeight::get().reads(12 as Weight))
+ (65_512_000 as Weight)
+ // Standard Error: 12_000
+ .saturating_add((11_525_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
- .saturating_add(T::DbWeight::get().writes(12 as Weight))
- .saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(b as Weight)))
+ .saturating_add(T::DbWeight::get().writes(5 as Weight))
+ .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight)))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
// Storage: Common CollectionProperties (r:1 w:0)
@@ -132,8 +129,8 @@
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_nft(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 959_000
- .saturating_add((305_872_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_472_000
+ .saturating_add((296_221_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(b as Weight)))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
@@ -149,7 +146,7 @@
// Storage: Nonfungible TokenChildren (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:2)
fn send() -> Weight {
- (71_405_000 as Weight)
+ (82_778_000 as Weight)
.saturating_add(T::DbWeight::get().reads(12 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
@@ -163,22 +160,22 @@
// Storage: Nonfungible TokenChildren (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:2)
fn accept_nft() -> Weight {
- (79_159_000 as Weight)
+ (90_190_000 as Weight)
.saturating_add(T::DbWeight::get().reads(15 as Weight))
.saturating_add(T::DbWeight::get().writes(7 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
// Storage: Common CollectionProperties (r:1 w:0)
// Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:5)
// Storage: Nonfungible TokenProperties (r:1 w:5)
- // Storage: Nonfungible TokenData (r:5 w:5)
// Storage: Nonfungible TokenChildren (r:9 w:4)
// Storage: Nonfungible TokensBurnt (r:1 w:1)
// Storage: Nonfungible AccountBalance (r:5 w:5)
// Storage: Nonfungible Allowance (r:5 w:0)
// Storage: Nonfungible Owned (r:0 w:5)
fn reject_nft() -> Weight {
- (238_179_000 as Weight)
+ (262_238_000 as Weight)
.saturating_add(T::DbWeight::get().reads(29 as Weight))
.saturating_add(T::DbWeight::get().writes(25 as Weight))
}
@@ -188,7 +185,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn set_property() -> Weight {
- (47_770_000 as Weight)
+ (55_187_000 as Weight)
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -198,100 +195,72 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn set_priority() -> Weight {
- (46_679_000 as Weight)
+ (54_092_000 as Weight)
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:1 w:1)
- // Storage: Common CollectionById (r:1 w:1)
- // Storage: Nonfungible TokenData (r:5 w:1)
- // Storage: Nonfungible TokenProperties (r:2 w:2)
- // Storage: Common CreatedCollectionCount (r:1 w:1)
- // Storage: Common DestroyedCollectionCount (r:1 w:0)
- // Storage: System Account (r:2 w:2)
- // Storage: Nonfungible TokensMinted (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Owned (r:0 w:1)
- // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:0)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_basic_resource() -> Weight {
- (100_770_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(16 as Weight))
- .saturating_add(T::DbWeight::get().writes(12 as Weight))
+ (62_551_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(10 as Weight))
+ .saturating_add(T::DbWeight::get().writes(2 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:1 w:1)
- // Storage: Common CollectionById (r:1 w:1)
- // Storage: Nonfungible TokenData (r:5 w:1)
- // Storage: Nonfungible TokenProperties (r:2 w:2)
- // Storage: Common CreatedCollectionCount (r:1 w:1)
- // Storage: Common DestroyedCollectionCount (r:1 w:0)
- // Storage: System Account (r:2 w:2)
- // Storage: Nonfungible TokensMinted (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Owned (r:0 w:1)
- // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:0)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_composable_resource() -> Weight {
- (101_791_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(16 as Weight))
- .saturating_add(T::DbWeight::get().writes(12 as Weight))
+ (61_778_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(10 as Weight))
+ .saturating_add(T::DbWeight::get().writes(2 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:1 w:1)
- // Storage: Common CollectionById (r:1 w:1)
- // Storage: Nonfungible TokenData (r:5 w:1)
- // Storage: Nonfungible TokenProperties (r:2 w:2)
- // Storage: Common CreatedCollectionCount (r:1 w:1)
- // Storage: Common DestroyedCollectionCount (r:1 w:0)
- // Storage: System Account (r:2 w:2)
- // Storage: Nonfungible TokensMinted (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Owned (r:0 w:1)
- // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:0)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_slot_resource() -> Weight {
- (101_610_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(16 as Weight))
- .saturating_add(T::DbWeight::get().writes(12 as Weight))
+ (62_700_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(10 as Weight))
+ .saturating_add(T::DbWeight::get().writes(2 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:2 w:0)
- // Storage: Common CollectionById (r:2 w:0)
- // Storage: Nonfungible TokenProperties (r:1 w:1)
- // Storage: Nonfungible TokenData (r:6 w:1)
- // Storage: Nonfungible TokenChildren (r:1 w:0)
- // Storage: Nonfungible TokensBurnt (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Allowance (r:1 w:0)
- // Storage: Nonfungible Owned (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
+ // Storage: Nonfungible TokenData (r:5 w:0)
fn remove_resource() -> Weight {
- (80_571_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(16 as Weight))
- .saturating_add(T::DbWeight::get().writes(5 as Weight))
+ (52_920_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(9 as Weight))
+ .saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
// Storage: Common CollectionProperties (r:1 w:0)
// Storage: Common CollectionById (r:1 w:0)
// Storage: Nonfungible TokenData (r:5 w:0)
- // Storage: Nonfungible TokenProperties (r:2 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn accept_resource() -> Weight {
- (54_733_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(10 as Weight))
+ (52_450_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:2 w:0)
- // Storage: Common CollectionById (r:2 w:0)
- // Storage: Nonfungible TokenData (r:6 w:1)
- // Storage: Nonfungible TokenProperties (r:2 w:1)
- // Storage: Nonfungible TokenChildren (r:1 w:0)
- // Storage: Nonfungible TokensBurnt (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Allowance (r:1 w:0)
- // Storage: Nonfungible Owned (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:0)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn accept_resource_removal() -> Weight {
- (84_138_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(17 as Weight))
- .saturating_add(T::DbWeight::get().writes(5 as Weight))
+ (50_901_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(9 as Weight))
+ .saturating_add(T::DbWeight::get().writes(1 as Weight))
}
}
@@ -306,7 +275,7 @@
// Storage: Common CollectionById (r:0 w:1)
// Storage: RmrkCore UniqueCollectionId (r:0 w:1)
fn create_collection() -> Weight {
- (41_277_000 as Weight)
+ (49_986_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(8 as Weight))
}
@@ -319,7 +288,7 @@
// Storage: Nonfungible TokensBurnt (r:0 w:1)
// Storage: Common AdminAmount (r:0 w:1)
fn destroy_collection() -> Weight {
- (43_371_000 as Weight)
+ (50_177_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
}
@@ -327,7 +296,7 @@
// Storage: Common CollectionById (r:1 w:1)
// Storage: Common CollectionProperties (r:1 w:0)
fn change_collection_issuer() -> Weight {
- (21_891_000 as Weight)
+ (25_949_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -337,7 +306,7 @@
// Storage: Nonfungible TokensMinted (r:1 w:0)
// Storage: Nonfungible TokensBurnt (r:1 w:0)
fn lock_collection() -> Weight {
- (23_144_000 as Weight)
+ (27_183_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -349,18 +318,15 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:1)
- // Storage: Common CreatedCollectionCount (r:1 w:1)
- // Storage: Common DestroyedCollectionCount (r:1 w:0)
- // Storage: System Account (r:2 w:2)
- // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:2 w:2)
fn mint_nft(b: u32, ) -> Weight {
- (68_329_000 as Weight)
- // Standard Error: 3_000
- .saturating_add((21_470_000 as Weight).saturating_mul(b as Weight))
- .saturating_add(RocksDbWeight::get().reads(12 as Weight))
+ (65_512_000 as Weight)
+ // Standard Error: 12_000
+ .saturating_add((11_525_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add(RocksDbWeight::get().reads(6 as Weight))
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
- .saturating_add(RocksDbWeight::get().writes(12 as Weight))
- .saturating_add(RocksDbWeight::get().writes((3 as Weight).saturating_mul(b as Weight)))
+ .saturating_add(RocksDbWeight::get().writes(5 as Weight))
+ .saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(b as Weight)))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
// Storage: Common CollectionProperties (r:1 w:0)
@@ -374,8 +340,8 @@
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_nft(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 959_000
- .saturating_add((305_872_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_472_000
+ .saturating_add((296_221_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().reads((4 as Weight).saturating_mul(b as Weight)))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
@@ -391,7 +357,7 @@
// Storage: Nonfungible TokenChildren (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:2)
fn send() -> Weight {
- (71_405_000 as Weight)
+ (82_778_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(12 as Weight))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
}
@@ -405,22 +371,22 @@
// Storage: Nonfungible TokenChildren (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:2)
fn accept_nft() -> Weight {
- (79_159_000 as Weight)
+ (90_190_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(15 as Weight))
.saturating_add(RocksDbWeight::get().writes(7 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
// Storage: Common CollectionProperties (r:1 w:0)
// Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:5)
// Storage: Nonfungible TokenProperties (r:1 w:5)
- // Storage: Nonfungible TokenData (r:5 w:5)
// Storage: Nonfungible TokenChildren (r:9 w:4)
// Storage: Nonfungible TokensBurnt (r:1 w:1)
// Storage: Nonfungible AccountBalance (r:5 w:5)
// Storage: Nonfungible Allowance (r:5 w:0)
// Storage: Nonfungible Owned (r:0 w:5)
fn reject_nft() -> Weight {
- (238_179_000 as Weight)
+ (262_238_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(29 as Weight))
.saturating_add(RocksDbWeight::get().writes(25 as Weight))
}
@@ -430,7 +396,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn set_property() -> Weight {
- (47_770_000 as Weight)
+ (55_187_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -440,99 +406,71 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn set_priority() -> Weight {
- (46_679_000 as Weight)
+ (54_092_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:1 w:1)
- // Storage: Common CollectionById (r:1 w:1)
- // Storage: Nonfungible TokenData (r:5 w:1)
- // Storage: Nonfungible TokenProperties (r:2 w:2)
- // Storage: Common CreatedCollectionCount (r:1 w:1)
- // Storage: Common DestroyedCollectionCount (r:1 w:0)
- // Storage: System Account (r:2 w:2)
- // Storage: Nonfungible TokensMinted (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Owned (r:0 w:1)
- // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:0)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_basic_resource() -> Weight {
- (100_770_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(16 as Weight))
- .saturating_add(RocksDbWeight::get().writes(12 as Weight))
+ (62_551_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(10 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:1 w:1)
- // Storage: Common CollectionById (r:1 w:1)
- // Storage: Nonfungible TokenData (r:5 w:1)
- // Storage: Nonfungible TokenProperties (r:2 w:2)
- // Storage: Common CreatedCollectionCount (r:1 w:1)
- // Storage: Common DestroyedCollectionCount (r:1 w:0)
- // Storage: System Account (r:2 w:2)
- // Storage: Nonfungible TokensMinted (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Owned (r:0 w:1)
- // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:0)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_composable_resource() -> Weight {
- (101_791_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(16 as Weight))
- .saturating_add(RocksDbWeight::get().writes(12 as Weight))
+ (61_778_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(10 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:1 w:1)
- // Storage: Common CollectionById (r:1 w:1)
- // Storage: Nonfungible TokenData (r:5 w:1)
- // Storage: Nonfungible TokenProperties (r:2 w:2)
- // Storage: Common CreatedCollectionCount (r:1 w:1)
- // Storage: Common DestroyedCollectionCount (r:1 w:0)
- // Storage: System Account (r:2 w:2)
- // Storage: Nonfungible TokensMinted (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Owned (r:0 w:1)
- // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:0)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_slot_resource() -> Weight {
- (101_610_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(16 as Weight))
- .saturating_add(RocksDbWeight::get().writes(12 as Weight))
+ (62_700_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(10 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:2 w:0)
- // Storage: Common CollectionById (r:2 w:0)
- // Storage: Nonfungible TokenProperties (r:1 w:1)
- // Storage: Nonfungible TokenData (r:6 w:1)
- // Storage: Nonfungible TokenChildren (r:1 w:0)
- // Storage: Nonfungible TokensBurnt (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Allowance (r:1 w:0)
- // Storage: Nonfungible Owned (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
+ // Storage: Nonfungible TokenData (r:5 w:0)
fn remove_resource() -> Weight {
- (80_571_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(16 as Weight))
- .saturating_add(RocksDbWeight::get().writes(5 as Weight))
+ (52_920_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(9 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
// Storage: Common CollectionProperties (r:1 w:0)
// Storage: Common CollectionById (r:1 w:0)
// Storage: Nonfungible TokenData (r:5 w:0)
- // Storage: Nonfungible TokenProperties (r:2 w:1)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn accept_resource() -> Weight {
- (54_733_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(10 as Weight))
+ (52_450_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
// Storage: RmrkCore UniqueCollectionId (r:1 w:0)
- // Storage: Common CollectionProperties (r:2 w:0)
- // Storage: Common CollectionById (r:2 w:0)
- // Storage: Nonfungible TokenData (r:6 w:1)
- // Storage: Nonfungible TokenProperties (r:2 w:1)
- // Storage: Nonfungible TokenChildren (r:1 w:0)
- // Storage: Nonfungible TokensBurnt (r:1 w:1)
- // Storage: Nonfungible AccountBalance (r:1 w:1)
- // Storage: Nonfungible Allowance (r:1 w:0)
- // Storage: Nonfungible Owned (r:0 w:1)
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: Nonfungible TokenData (r:5 w:0)
+ // Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn accept_resource_removal() -> Weight {
- (84_138_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(17 as Weight))
- .saturating_add(RocksDbWeight::get().writes(5 as Weight))
+ (50_901_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(9 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
}
pallets/proxy-rmrk-equip/Cargo.tomldiffbeforeafterboth--- a/pallets/proxy-rmrk-equip/Cargo.toml
+++ b/pallets/proxy-rmrk-equip/Cargo.toml
@@ -11,16 +11,16 @@
version = '3.1.2'
[dependencies]
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
pallet-common = { default-features = false, path = '../common' }
pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }
up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }
scale-info = { version = "2.0.1", default-features = false, features = ["derive"] }
pallet-rmrk-core = { default-features = false, path = "../proxy-rmrk-core" }
pallets/proxy-rmrk-equip/src/benchmarking.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/proxy-rmrk-equip/src/benchmarking.rs
@@ -0,0 +1,120 @@
+use sp_std::vec;
+
+use frame_benchmarking::{benchmarks, account};
+use frame_system::RawOrigin;
+use frame_support::{
+ traits::{Currency, Get},
+ BoundedVec,
+};
+
+use up_data_structs::*;
+
+use super::*;
+
+const SEED: u32 = 1;
+
+fn create_data<S: Get<u32>>() -> BoundedVec<u8, S> {
+ vec![b'A'; S::get() as usize].try_into().expect("size == S")
+}
+
+fn create_u32_array<S: Get<u32>>() -> BoundedVec<u32, S> {
+ vec![0; S::get() as usize].try_into().expect("size == S")
+}
+
+fn create_max_part(id: RmrkSlotId) -> RmrkPartType {
+ RmrkPartType::SlotPart(RmrkSlotPart {
+ id,
+ equippable: RmrkEquippableList::Custom(create_u32_array()),
+ src: create_data(),
+ z: 1,
+ })
+}
+
+fn create_parts_array<S: Get<u32>>(num: u32) -> BoundedVec<RmrkPartType, S> {
+ let mut parts: BoundedVec<RmrkPartType, S> = vec![].try_into().expect("0 <= S");
+
+ for i in 0..num {
+ parts.try_push(create_max_part(i)).expect("num <= S");
+ }
+
+ parts
+}
+
+fn create_max_theme_property() -> RmrkThemeProperty {
+ RmrkThemeProperty {
+ key: create_data(),
+ value: create_data(),
+ }
+}
+
+fn create_theme_properties_array<S: Get<u32>>(num: u32) -> BoundedVec<RmrkThemeProperty, S> {
+ vec![create_max_theme_property(); num as usize]
+ .try_into()
+ .expect("num <= S")
+}
+
+fn create_max_theme(name: RmrkString, props_num: u32) -> RmrkBoundedTheme {
+ RmrkBoundedTheme {
+ name,
+ properties: create_theme_properties_array(props_num),
+ inherit: false,
+ }
+}
+
+benchmarks! {
+ create_base {
+ let b in 0..RmrkPartsLimit::get();
+
+ let caller = account("caller", 0, SEED);
+ <T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
+
+ let base_type = create_data();
+ let symbol = create_data();
+ let parts = create_parts_array(b);
+ }: _(RawOrigin::Signed(caller), base_type, symbol, parts)
+
+ theme_add {
+ let b in 0..MaxPropertiesPerTheme::get();
+
+ let caller = account("caller", 0, SEED);
+ <T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
+
+ let base_type = create_data();
+ let symbol = create_data();
+ let parts = create_parts_array(0);
+
+ <Pallet<T>>::create_base(RawOrigin::Signed(caller.clone()).into(), base_type, symbol, parts)?;
+ let base_id = 1;
+
+
+ let default_theme_name = b"default".to_vec().try_into().expect("default is a valid name; qed");
+ let default_theme = create_max_theme(default_theme_name, 0);
+
+ <Pallet<T>>::theme_add(RawOrigin::Signed(caller.clone()).into(), base_id, default_theme)?;
+
+ let theme = create_max_theme(create_data(), b);
+ }: _(RawOrigin::Signed(caller), base_id, theme)
+
+ equippable {
+ let caller = account("caller", 0, SEED);
+ <T as pallet_common::Config>::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get());
+
+ let base_id = 1;
+ let slot_id = 42;
+
+ let base_type = create_data();
+ let symbol = create_data();
+ let parts = vec! {
+ RmrkPartType::SlotPart(RmrkSlotPart {
+ id: slot_id,
+ equippable: RmrkEquippableList::All,
+ src: create_data(),
+ z: 1,
+ })
+ }.try_into().expect("1 <= RmrkPartsLimit");
+
+ <Pallet<T>>::create_base(RawOrigin::Signed(caller.clone()).into(), base_type, symbol, parts)?;
+
+ let equippables = RmrkEquippableList::Custom(create_u32_array());
+ }: _(RawOrigin::Signed(caller), base_id, slot_id, equippables)
+}
pallets/proxy-rmrk-equip/src/lib.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-equip/src/lib.rs
+++ b/pallets/proxy-rmrk-equip/src/lib.rs
@@ -22,15 +22,23 @@
use up_data_structs::*;
use pallet_common::{Pallet as PalletCommon, Error as CommonError};
use pallet_rmrk_core::{
- Pallet as PalletCore,
+ Pallet as PalletCore, Error as CoreError,
misc::{self, *},
property::RmrkProperty::*,
};
use pallet_nonfungible::{Pallet as PalletNft, NonfungibleHandle};
use pallet_evm::account::CrossAccountId;
+use weights::WeightInfo;
pub use pallet::*;
+#[cfg(feature = "runtime-benchmarks")]
+pub mod benchmarking;
+pub mod rpc;
+pub mod weights;
+
+pub type SelfWeightOf<T> = <T as Config>::WeightInfo;
+
#[frame_support::pallet]
pub mod pallet {
use super::*;
@@ -38,6 +46,7 @@
#[pallet::config]
pub trait Config: frame_system::Config + pallet_rmrk_core::Config {
type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;
+ type WeightInfo: WeightInfo;
}
#[pallet::storage]
@@ -61,6 +70,10 @@
issuer: T::AccountId,
base_id: RmrkBaseId,
},
+ EquippablesUpdated {
+ base_id: RmrkBaseId,
+ slot_id: RmrkSlotId,
+ },
}
#[pallet::error]
@@ -70,6 +83,8 @@
NoAvailablePartId,
BaseDoesntExist,
NeedsDefaultThemeFirst,
+ PartDoesntExist,
+ NoEquippableOnFixedPart,
}
#[pallet::call]
@@ -83,12 +98,12 @@
/// - symbol: arbitrary client-chosen symbol
/// - parts: array of Fixed and Slot parts composing the base, confined in length by
/// RmrkPartsLimit
- #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1))]
#[transactional]
+ #[pallet::weight(<SelfWeightOf<T>>::create_base(parts.len() as u32))]
pub fn create_base(
origin: OriginFor<T>,
base_type: RmrkString,
- symbol: RmrkString,
+ symbol: RmrkBaseSymbol,
parts: BoundedVec<RmrkPartType, RmrkPartsLimit>,
) -> DispatchResult {
let sender = ensure_signed(origin)?;
@@ -125,17 +140,7 @@
let collection = <PalletCore<T>>::get_nft_collection(collection_id)?;
for part in parts {
- let part_id = part.id();
- let part_token_id = Self::create_part(&cross_sender, &collection, part)?;
-
- <InernalPartId<T>>::insert(collection_id, part_id, part_token_id);
-
- <PalletNft<T>>::set_scoped_token_property(
- collection_id,
- part_token_id,
- PropertyScope::Rmrk,
- <PalletCore<T>>::rmrk_property(ExternalPartId, &part_id)?,
- )?;
+ Self::create_part(&cross_sender, &collection, part)?;
}
Self::deposit_event(Event::BaseCreated {
@@ -159,12 +164,12 @@
/// - key: arbitrary BoundedString, defined by client
/// - value: arbitrary BoundedString, defined by client
/// - inherit: optional bool
- #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1))]
#[transactional]
+ #[pallet::weight(<SelfWeightOf<T>>::theme_add(theme.properties.len() as u32))]
pub fn theme_add(
origin: OriginFor<T>,
base_id: RmrkBaseId,
- theme: RmrkTheme,
+ theme: RmrkBoundedTheme,
) -> DispatchResult {
let sender = ensure_signed(origin)?;
@@ -173,12 +178,7 @@
let collection_id: CollectionId = base_id.into();
- let collection = <PalletCore<T>>::get_typed_nft_collection(
- collection_id,
- misc::CollectionType::Base,
- )
- .map_err(|_| <Error<T>>::BaseDoesntExist)?;
- collection.check_is_external()?;
+ let collection = Self::get_base(collection_id)?;
if theme.name.as_slice() == b"default" {
<BaseHasDefaultTheme<T>>::insert(collection_id, true);
@@ -213,6 +213,55 @@
Ok(())
}
+
+ #[transactional]
+ #[pallet::weight(<SelfWeightOf<T>>::equippable())]
+ pub fn equippable(
+ origin: OriginFor<T>,
+ base_id: RmrkBaseId,
+ slot_id: RmrkSlotId,
+ equippables: RmrkEquippableList,
+ ) -> DispatchResult {
+ let sender = ensure_signed(origin)?;
+
+ let base_collection_id = base_id.into();
+ let collection = Self::get_base(base_collection_id)?;
+
+ <PalletCore<T>>::check_collection_owner(
+ &collection,
+ &T::CrossAccountId::from_sub(sender),
+ )
+ .map_err(|err| {
+ if err == <CoreError<T>>::NoPermission.into() {
+ <Error<T>>::PermissionError.into()
+ } else {
+ err
+ }
+ })?;
+
+ let part_id = Self::internal_part_id(base_collection_id, slot_id)
+ .ok_or(<Error<T>>::PartDoesntExist)?;
+
+ let nft_type = <PalletCore<T>>::get_nft_type(base_collection_id, part_id)
+ .map_err(|_| <Error<T>>::PartDoesntExist)?;
+
+ match nft_type {
+ NftType::Regular | NftType::Theme => return Err(<Error<T>>::PermissionError.into()),
+ NftType::FixedPart => return Err(<Error<T>>::NoEquippableOnFixedPart.into()),
+ NftType::SlotPart => {
+ <PalletNft<T>>::set_scoped_token_property(
+ base_collection_id,
+ part_id,
+ PropertyScope::Rmrk,
+ <PalletCore<T>>::rmrk_property(EquippableList, &equippables)?,
+ )?;
+ }
+ }
+
+ Self::deposit_event(Event::EquippablesUpdated { base_id, slot_id });
+
+ Ok(())
+ }
}
}
@@ -221,9 +270,10 @@
sender: &T::CrossAccountId,
collection: &NonfungibleHandle<T>,
part: RmrkPartType,
- ) -> Result<TokenId, DispatchError> {
+ ) -> DispatchResult {
let owner = sender;
+ let part_id = part.id();
let src = part.src();
let z_index = part.z_index();
@@ -232,21 +282,40 @@
RmrkPartType::SlotPart(_) => NftType::SlotPart,
};
- let token_id = <PalletCore<T>>::create_nft(
- sender,
- owner,
- collection,
+ let token_id = match Self::internal_part_id(collection.id, part_id) {
+ Some(token_id) => token_id,
+ None => {
+ let token_id =
+ <PalletCore<T>>::create_nft(sender, owner, collection, [].into_iter())
+ .map_err(|err| match err {
+ DispatchError::Arithmetic(_) => <Error<T>>::NoAvailablePartId.into(),
+ err => err,
+ })?;
+
+ <InernalPartId<T>>::insert(collection.id, part_id, token_id);
+
+ <PalletNft<T>>::set_scoped_token_property(
+ collection.id,
+ token_id,
+ PropertyScope::Rmrk,
+ <PalletCore<T>>::rmrk_property(ExternalPartId, &part_id)?,
+ )?;
+
+ token_id
+ }
+ };
+
+ <PalletNft<T>>::set_scoped_token_properties(
+ collection.id,
+ token_id,
+ PropertyScope::Rmrk,
[
<PalletCore<T>>::rmrk_property(TokenType, &nft_type)?,
<PalletCore<T>>::rmrk_property(Src, &src)?,
<PalletCore<T>>::rmrk_property(ZIndex, &z_index)?,
]
.into_iter(),
- )
- .map_err(|err| match err {
- DispatchError::Arithmetic(_) => <Error<T>>::NoAvailablePartId.into(),
- err => err,
- })?;
+ )?;
if let RmrkPartType::SlotPart(part) = part {
<PalletNft<T>>::set_scoped_token_property(
@@ -257,6 +326,21 @@
)?;
}
- Ok(token_id)
+ Ok(())
+ }
+
+ fn get_base(base_id: CollectionId) -> Result<NonfungibleHandle<T>, DispatchError> {
+ let collection =
+ <PalletCore<T>>::get_typed_nft_collection(base_id, misc::CollectionType::Base)
+ .map_err(|err| {
+ if err == <CoreError<T>>::CollectionUnknown.into() {
+ <Error<T>>::BaseDoesntExist.into()
+ } else {
+ err
+ }
+ })?;
+ collection.check_is_external()?;
+
+ Ok(collection)
}
}
pallets/proxy-rmrk-equip/src/rpc.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/proxy-rmrk-equip/src/rpc.rs
@@ -0,0 +1,186 @@
+use super::*;
+use pallet_rmrk_core::{misc, property::*};
+use sp_std::vec::Vec;
+
+pub fn base<T: Config>(
+ base_id: RmrkBaseId,
+) -> Result<Option<RmrkBaseInfo<T::AccountId>>, DispatchError> {
+ let (collection, collection_id) =
+ match <PalletCore<T>>::get_typed_nft_collection_mapped(base_id, misc::CollectionType::Base)
+ {
+ Ok(c) => c,
+ Err(_) => return Ok(None),
+ };
+
+ Ok(Some(RmrkBaseInfo {
+ issuer: collection.owner.clone(),
+ base_type: <PalletCore<T>>::get_collection_property_decoded(
+ collection_id,
+ RmrkProperty::BaseType,
+ )?,
+ symbol: <PalletCore<T>>::rebind(&collection.token_prefix)?,
+ }))
+}
+
+pub fn base_parts<T: Config>(base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {
+ use pallet_common::CommonCollectionOperations;
+
+ let (collection, collection_id) =
+ match <PalletCore<T>>::get_typed_nft_collection_mapped(base_id, misc::CollectionType::Base)
+ {
+ Ok(c) => c,
+ Err(_) => return Ok(Vec::new()),
+ };
+
+ let parts = collection
+ .collection_tokens()
+ .into_iter()
+ .filter_map(|token_id| {
+ let nft_type = <PalletCore<T>>::get_nft_type(collection_id, token_id).ok()?;
+
+ match nft_type {
+ NftType::FixedPart => Some(RmrkPartType::FixedPart(RmrkFixedPart {
+ id: <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ token_id,
+ RmrkProperty::ExternalPartId,
+ )
+ .ok()?,
+ src: <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ token_id,
+ RmrkProperty::Src,
+ )
+ .ok()?,
+ z: <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ token_id,
+ RmrkProperty::ZIndex,
+ )
+ .ok()?,
+ })),
+ NftType::SlotPart => Some(RmrkPartType::SlotPart(RmrkSlotPart {
+ id: <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ token_id,
+ RmrkProperty::ExternalPartId,
+ )
+ .ok()?,
+ src: <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ token_id,
+ RmrkProperty::Src,
+ )
+ .ok()?,
+ z: <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ token_id,
+ RmrkProperty::ZIndex,
+ )
+ .ok()?,
+ equippable: <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ token_id,
+ RmrkProperty::EquippableList,
+ )
+ .ok()?,
+ })),
+ _ => None,
+ }
+ })
+ .collect();
+
+ Ok(parts)
+}
+
+pub fn theme_names<T: Config>(base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {
+ use pallet_common::CommonCollectionOperations;
+
+ let (collection, collection_id) =
+ match <PalletCore<T>>::get_typed_nft_collection_mapped(base_id, misc::CollectionType::Base)
+ {
+ Ok(c) => c,
+ Err(_) => return Ok(Vec::new()),
+ };
+
+ let theme_names = collection
+ .collection_tokens()
+ .iter()
+ .filter_map(|token_id| {
+ let nft_type = <PalletCore<T>>::get_nft_type(collection_id, *token_id).ok()?;
+
+ match nft_type {
+ NftType::Theme => <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ *token_id,
+ RmrkProperty::ThemeName,
+ )
+ .ok(),
+ _ => None,
+ }
+ })
+ .collect();
+
+ Ok(theme_names)
+}
+
+pub fn theme<T: Config>(
+ base_id: RmrkBaseId,
+ theme_name: RmrkThemeName,
+ filter_keys: Option<Vec<RmrkPropertyKey>>,
+) -> Result<Option<RmrkTheme>, DispatchError> {
+ use pallet_common::CommonCollectionOperations;
+
+ let (collection, collection_id) =
+ match <PalletCore<T>>::get_typed_nft_collection_mapped(base_id, misc::CollectionType::Base)
+ {
+ Ok(c) => c,
+ Err(_) => return Ok(None),
+ };
+
+ let theme_info = collection
+ .collection_tokens()
+ .into_iter()
+ .find_map(|token_id| {
+ <PalletCore<T>>::ensure_nft_type(collection_id, token_id, NftType::Theme).ok()?;
+
+ let name: RmrkString = <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ token_id,
+ RmrkProperty::ThemeName,
+ )
+ .ok()?;
+
+ if name == theme_name {
+ Some((name, token_id))
+ } else {
+ None
+ }
+ });
+
+ let (name, theme_id) = match theme_info {
+ Some((name, theme_id)) => (name, theme_id),
+ None => return Ok(None),
+ };
+
+ let properties = <PalletCore<T>>::filter_user_properties(
+ collection_id,
+ Some(theme_id),
+ filter_keys,
+ |key, value| RmrkThemeProperty { key, value },
+ )?;
+
+ let inherit = <PalletCore<T>>::get_nft_property_decoded(
+ collection_id,
+ theme_id,
+ RmrkProperty::ThemeInherit,
+ )?;
+
+ let theme = RmrkTheme {
+ name,
+ properties,
+ inherit,
+ };
+
+ Ok(Some(theme))
+}
pallets/proxy-rmrk-equip/src/weights.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/proxy-rmrk-equip/src/weights.rs
@@ -0,0 +1,138 @@
+// Template adopted from https://github.com/paritytech/substrate/blob/master/.maintain/frame-weight-template.hbs
+
+//! Autogenerated weights for pallet_proxy_rmrk_equip
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-06-21, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
+
+// Executed Command:
+// target/release/unique-collator
+// benchmark
+// pallet
+// --pallet
+// pallet-proxy-rmrk-equip
+// --wasm-execution
+// compiled
+// --extrinsic
+// *
+// --template
+// .maintain/frame-weight-template.hbs
+// --steps=50
+// --repeat=80
+// --heap-pages=4096
+// --output=./pallets/proxy-rmrk-equip/src/weights.rs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(clippy::unnecessary_cast)]
+
+use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
+use sp_std::marker::PhantomData;
+
+/// Weight functions needed for pallet_proxy_rmrk_equip.
+pub trait WeightInfo {
+ fn create_base(b: u32, ) -> Weight;
+ fn theme_add(b: u32, ) -> Weight;
+ fn equippable() -> Weight;
+}
+
+/// Weights for pallet_proxy_rmrk_equip using the Substrate node and recommended hardware.
+pub struct SubstrateWeight<T>(PhantomData<T>);
+impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+ // Storage: Common CreatedCollectionCount (r:1 w:1)
+ // Storage: Common DestroyedCollectionCount (r:1 w:0)
+ // Storage: System Account (r:2 w:2)
+ // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Common CollectionProperties (r:0 w:1)
+ // Storage: Common CollectionById (r:0 w:1)
+ // Storage: RmrkEquip InernalPartId (r:1 w:1)
+ // Storage: Nonfungible TokensMinted (r:1 w:1)
+ // Storage: Nonfungible AccountBalance (r:1 w:1)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenData (r:0 w:1)
+ // Storage: Nonfungible Owned (r:0 w:1)
+ fn create_base(b: u32, ) -> Weight {
+ (62_832_000 as Weight)
+ // Standard Error: 22_000
+ .saturating_add((20_106_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add(T::DbWeight::get().reads(6 as Weight))
+ .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(b as Weight)))
+ .saturating_add(T::DbWeight::get().writes(8 as Weight))
+ .saturating_add(T::DbWeight::get().writes((4 as Weight).saturating_mul(b as Weight)))
+ }
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: RmrkEquip BaseHasDefaultTheme (r:1 w:0)
+ // Storage: Nonfungible TokensMinted (r:1 w:1)
+ // Storage: Nonfungible AccountBalance (r:1 w:1)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenData (r:0 w:1)
+ // Storage: Nonfungible Owned (r:0 w:1)
+ fn theme_add(b: u32, ) -> Weight {
+ (46_793_000 as Weight)
+ // Standard Error: 61_000
+ .saturating_add((3_061_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add(T::DbWeight::get().reads(6 as Weight))
+ .saturating_add(T::DbWeight::get().writes(5 as Weight))
+ }
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: RmrkEquip InernalPartId (r:1 w:0)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ fn equippable() -> Weight {
+ (32_495_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(4 as Weight))
+ .saturating_add(T::DbWeight::get().writes(1 as Weight))
+ }
+}
+
+// For backwards compatibility and tests
+impl WeightInfo for () {
+ // Storage: Common CreatedCollectionCount (r:1 w:1)
+ // Storage: Common DestroyedCollectionCount (r:1 w:0)
+ // Storage: System Account (r:2 w:2)
+ // Storage: Common CollectionPropertyPermissions (r:0 w:1)
+ // Storage: Common CollectionProperties (r:0 w:1)
+ // Storage: Common CollectionById (r:0 w:1)
+ // Storage: RmrkEquip InernalPartId (r:1 w:1)
+ // Storage: Nonfungible TokensMinted (r:1 w:1)
+ // Storage: Nonfungible AccountBalance (r:1 w:1)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenData (r:0 w:1)
+ // Storage: Nonfungible Owned (r:0 w:1)
+ fn create_base(b: u32, ) -> Weight {
+ (62_832_000 as Weight)
+ // Standard Error: 22_000
+ .saturating_add((20_106_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add(RocksDbWeight::get().reads(6 as Weight))
+ .saturating_add(RocksDbWeight::get().reads((2 as Weight).saturating_mul(b as Weight)))
+ .saturating_add(RocksDbWeight::get().writes(8 as Weight))
+ .saturating_add(RocksDbWeight::get().writes((4 as Weight).saturating_mul(b as Weight)))
+ }
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: RmrkEquip BaseHasDefaultTheme (r:1 w:0)
+ // Storage: Nonfungible TokensMinted (r:1 w:1)
+ // Storage: Nonfungible AccountBalance (r:1 w:1)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ // Storage: Nonfungible TokenData (r:0 w:1)
+ // Storage: Nonfungible Owned (r:0 w:1)
+ fn theme_add(b: u32, ) -> Weight {
+ (46_793_000 as Weight)
+ // Standard Error: 61_000
+ .saturating_add((3_061_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add(RocksDbWeight::get().reads(6 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(5 as Weight))
+ }
+ // Storage: Common CollectionProperties (r:1 w:0)
+ // Storage: Common CollectionById (r:1 w:0)
+ // Storage: RmrkEquip InernalPartId (r:1 w:0)
+ // Storage: Nonfungible TokenProperties (r:1 w:1)
+ fn equippable() -> Weight {
+ (32_495_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(4 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(1 as Weight))
+ }
+}
pallets/refungible/Cargo.tomldiffbeforeafterboth--- a/pallets/refungible/Cargo.toml
+++ b/pallets/refungible/Cargo.toml
@@ -11,16 +11,16 @@
version = '3.1.2'
[dependencies]
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
pallet-common = { default-features = false, path = '../common' }
pallet-structure = { default-features = false, path = '../structure' }
up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
pallets/scheduler/Cargo.tomldiffbeforeafterboth--- a/pallets/scheduler/Cargo.toml
+++ b/pallets/scheduler/Cargo.toml
@@ -16,20 +16,20 @@
"derive",
] }
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.22' }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.23' }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
-up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.22" }
+up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.23" }
log = { version = "0.4.14", default-features = false }
[dev-dependencies]
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
[features]
default = ["std"]
pallets/structure/Cargo.tomldiffbeforeafterboth--- a/pallets/structure/Cargo.toml
+++ b/pallets/structure/Cargo.toml
@@ -4,10 +4,10 @@
edition = "2021"
[dependencies]
-frame-support = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-frame-system = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-frame-benchmarking = { default-features = false, optional = true, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
+frame-support = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+frame-system = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+frame-benchmarking = { default-features = false, optional = true, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
pallet-common = { path = "../common", default-features = false }
parity-scale-codec = { version = "3.1.2", default-features = false, features = [
"derive",
@@ -16,7 +16,7 @@
"derive",
] }
up-data-structs = { path = "../../primitives/data-structs", default-features = false }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
[features]
default = ["std"]
pallets/unique/Cargo.tomldiffbeforeafterboth--- a/pallets/unique/Cargo.toml
+++ b/pallets/unique/Cargo.toml
@@ -59,37 +59,37 @@
default-features = false
optional = true
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-support]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-std]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-runtime]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-core]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-io]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
################################################################################
# Local Dependencies
@@ -98,7 +98,7 @@
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
pallet-common = { default-features = false, path = "../common" }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }
pallets/unique/src/lib.rsdiffbeforeafterboth--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -693,8 +693,6 @@
dispatch_tx::<T, _>(collection_id, |d| d.create_multiple_items_ex(sender, data, &budget))
}
- // TODO! transaction weight
-
/// Set transfers_enabled value for particular collection
///
/// # Permissions
primitives/data-structs/Cargo.tomldiffbeforeafterboth--- a/primitives/data-structs/Cargo.toml
+++ b/primitives/data-structs/Cargo.toml
@@ -18,14 +18,14 @@
serde = { version = "1.0.130", features = [
'derive',
], default-features = false, optional = true }
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
derivative = { version = "2.2.0", features = ["use_core"] }
struct-versioning = { path = "../../crates/struct-versioning" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
rmrk-traits = { default-features = false, path = "../rmrk-traits" }
[features]
primitives/data-structs/src/lib.rsdiffbeforeafterboth--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -39,15 +39,15 @@
// RMRK
use rmrk_traits::{
CollectionInfo, NftInfo, ResourceInfo, PropertyInfo, BaseInfo, PartType, Theme, ThemeProperty,
- ResourceTypes, BasicResource, ComposableResource, SlotResource,
+ ResourceTypes, BasicResource, ComposableResource, SlotResource, EquippableList,
};
pub use rmrk_traits::{
primitives::{
CollectionId as RmrkCollectionId, NftId as RmrkNftId, BaseId as RmrkBaseId,
- PartId as RmrkPartId, ResourceId as RmrkResourceId,
+ SlotId as RmrkSlotId, PartId as RmrkPartId, ResourceId as RmrkResourceId,
},
NftChild as RmrkNftChild, AccountIdOrCollectionNftTuple as RmrkAccountIdOrCollectionNftTuple,
- FixedPart as RmrkFixedPart, SlotPart as RmrkSlotPart, EquippableList as RmrkEquippableList,
+ FixedPart as RmrkFixedPart, SlotPart as RmrkSlotPart,
};
mod bounded;
@@ -104,6 +104,8 @@
pub const MAX_PROPERTY_VALUE_LENGTH: u32 = 32768;
pub const MAX_PROPERTIES_PER_ITEM: u32 = 64;
+pub const MAX_AUX_PROPERTY_VALUE_LENGTH: u32 = 2048;
+
pub const MAX_COLLECTION_PROPERTIES_SIZE: u32 = 40960;
pub const MAX_TOKEN_PROPERTIES_SIZE: u32 = 32768;
@@ -452,7 +454,7 @@
token_owner: false,
collection_admin: false,
restricted: None,
-
+ #[cfg(feature = "runtime-benchmarks")]
permissive: false,
};
self.nesting.as_ref().unwrap_or(&DEFAULT)
@@ -497,6 +499,7 @@
/// If set - only tokens from specified collections can be nested
pub restricted: Option<OwnerRestrictedSet>,
+ #[cfg(feature = "runtime-benchmarks")]
/// Anyone can nest tokens, mutually exclusive with `token_owner`, `admin`
pub permissive: bool,
}
@@ -654,9 +657,13 @@
}
}
-pub type PropertyKey = BoundedVec<u8, ConstU32<MAX_PROPERTY_KEY_LENGTH>>;
-pub type PropertyValue = BoundedVec<u8, ConstU32<MAX_PROPERTY_VALUE_LENGTH>>;
+pub type BoundedBytes<S> = BoundedVec<u8, S>;
+pub type AuxPropertyValue = BoundedBytes<ConstU32<MAX_AUX_PROPERTY_VALUE_LENGTH>>;
+
+pub type PropertyKey = BoundedBytes<ConstU32<MAX_PROPERTY_KEY_LENGTH>>;
+pub type PropertyValue = BoundedBytes<ConstU32<MAX_PROPERTY_VALUE_LENGTH>>;
+
#[derive(Encode, Decode, TypeInfo, Debug, MaxEncodedLen, PartialEq, Clone)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub struct PropertyPermission {
@@ -715,7 +722,7 @@
EmptyPropertyKey,
}
-#[derive(Clone, Copy)]
+#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Clone, Copy)]
pub enum PropertyScope {
None,
Rmrk,
@@ -944,7 +951,9 @@
#[derive(PartialEq)]
pub const RmrkCollectionSymbolLimit: u32 = MAX_TOKEN_PREFIX_LENGTH;
#[derive(PartialEq)]
- pub const RmrkResourceSymbolLimit: u32 = MAX_TOKEN_PREFIX_LENGTH;
+ pub const RmrkResourceSymbolLimit: u32 = 10;
+ #[derive(PartialEq)]
+ pub const RmrkBaseSymbolLimit: u32 = MAX_TOKEN_PREFIX_LENGTH;
#[derive(PartialEq)]
pub const RmrkKeyLimit: u32 = 32;
#[derive(PartialEq)]
@@ -952,6 +961,8 @@
#[derive(PartialEq)]
pub const RmrkMaxCollectionsEquippablePerPart: u32 = 100;
#[derive(PartialEq)]
+ pub const MaxPropertiesPerTheme: u32 = 5;
+ #[derive(PartialEq)]
pub const RmrkPartsLimit: u32 = 25;
#[derive(PartialEq)]
pub const RmrkMaxPriorities: u32 = 25;
@@ -977,10 +988,13 @@
pub type RmrkResourceInfo = ResourceInfo<RmrkString, RmrkBoundedParts>;
pub type RmrkPropertyInfo = PropertyInfo<RmrkKeyString, RmrkValueString>;
pub type RmrkBaseInfo<AccountId> = BaseInfo<AccountId, RmrkString>;
-pub type RmrkPartType =
- PartType<RmrkString, BoundedVec<RmrkCollectionId, RmrkMaxCollectionsEquippablePerPart>>;
+pub type BoundedEquippableCollectionIds =
+ BoundedVec<RmrkCollectionId, RmrkMaxCollectionsEquippablePerPart>;
+pub type RmrkPartType = PartType<RmrkString, BoundedEquippableCollectionIds>;
+pub type RmrkEquippableList = EquippableList<BoundedEquippableCollectionIds>;
pub type RmrkThemeProperty = ThemeProperty<RmrkString>;
pub type RmrkTheme = Theme<RmrkString, Vec<RmrkThemeProperty>>;
+pub type RmrkBoundedTheme = Theme<RmrkString, BoundedVec<RmrkThemeProperty, MaxPropertiesPerTheme>>;
pub type RmrkResourceTypes = ResourceTypes<RmrkString, RmrkBoundedParts>;
pub type RmrkBasicResource = BasicResource<RmrkString>;
@@ -989,6 +1003,7 @@
pub type RmrkString = BoundedVec<u8, RmrkStringLimit>;
pub type RmrkCollectionSymbol = BoundedVec<u8, RmrkCollectionSymbolLimit>;
+pub type RmrkBaseSymbol = BoundedVec<u8, RmrkBaseSymbolLimit>;
pub type RmrkKeyString = BoundedVec<u8, RmrkKeyLimit>;
pub type RmrkValueString = BoundedVec<u8, RmrkValueLimit>;
pub type RmrkBoundedResource = BoundedVec<u8, RmrkResourceSymbolLimit>;
primitives/rmrk-rpc/Cargo.tomldiffbeforeafterboth--- a/primitives/rmrk-rpc/Cargo.toml
+++ b/primitives/rmrk-rpc/Cargo.toml
@@ -6,10 +6,10 @@
[dependencies]
codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-api = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-runtime = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
+sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-api = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-runtime = { default-features = false, git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
serde = { version = "1.0.130", default-features = false, features = ["derive"] }
rmrk-traits = { default-features = false, path = "../rmrk-traits" }
primitives/rpc/Cargo.tomldiffbeforeafterboth--- a/primitives/rpc/Cargo.toml
+++ b/primitives/rpc/Cargo.toml
@@ -10,11 +10,11 @@
codec = { package = "parity-scale-codec", version = "3.1.2", default-features = false, features = [
"derive",
] }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
[features]
default = ["std"]
runtime/common/Cargo.tomldiffbeforeafterboth--- a/runtime/common/Cargo.toml
+++ b/runtime/common/Cargo.toml
@@ -6,7 +6,7 @@
license = 'All Rights Reserved'
name = 'unique-runtime-common'
repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.22'
+version = '0.9.23'
[features]
default = ['std']
@@ -36,17 +36,17 @@
[dependencies.sp-core]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-std]
default-features = false
git = 'https://github.com/paritytech/substrate'
-branch = 'polkadot-v0.9.22'
+branch = 'polkadot-v0.9.23'
[dependencies.sp-runtime]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.codec]
default-features = false
@@ -62,12 +62,12 @@
[dependencies.frame-support]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-common]
default-features = false
@@ -100,16 +100,16 @@
[dependencies.sp-consensus-aura]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.fp-rpc]
default-features = false
git = "https://github.com/uniquenetwork/frontier"
-branch = "unique-polkadot-v0.9.22"
+branch = "unique-polkadot-v0.9.23"
[dependencies]
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
-up-sponsorship = { default-features = false, git = "https://github.com/UniqueNetwork/pallet-sponsoring", branch = 'polkadot-v0.9.22' }
+up-sponsorship = { default-features = false, git = "https://github.com/UniqueNetwork/pallet-sponsoring", branch = 'polkadot-v0.9.23' }
rmrk-rpc = { default-features = false, path = "../../primitives/rmrk-rpc" }
runtime/common/src/constants.rsdiffbeforeafterboth--- a/runtime/common/src/constants.rs
+++ b/runtime/common/src/constants.rs
@@ -35,9 +35,10 @@
pub const CENTIUNIQUE: Balance = 10 * MILLIUNIQUE;
pub const UNIQUE: Balance = 100 * CENTIUNIQUE;
-pub const WEIGHT_TO_FEE_COEFF: u32 = 142_688_000;
+// Targeting 0.1 UNQ per transfer
+pub const WEIGHT_TO_FEE_COEFF: u32 = 207_890_902;
-// Targeting 0.15 UNQ per transfer
+// Targeting 0.15 UNQ per transfer via ETH
pub const MIN_GAS_PRICE: u64 = 1_019_493_469_850;
/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers.
@@ -52,5 +53,5 @@
parameter_types! {
pub const DefaultSponsoringRateLimit: BlockNumber = 1 * DAYS;
- pub const TransactionByteFee: Balance = 501 * MICROUNIQUE; // Targeting 0.1 Unique per NFT transfer
+ pub const TransactionByteFee: Balance = 501 * MICROUNIQUE;
}
runtime/common/src/runtime_apis.rsdiffbeforeafterboth--- a/runtime/common/src/runtime_apis.rs
+++ b/runtime/common/src/runtime_apis.rs
@@ -454,6 +454,13 @@
list_benchmark!(list, extra, pallet_refungible, Refungible);
list_benchmark!(list, extra, pallet_nonfungible, Nonfungible);
list_benchmark!(list, extra, pallet_unique_scheduler, Scheduler);
+
+ #[cfg(not(feature = "unique-runtime"))]
+ list_benchmark!(list, extra, pallet_proxy_rmrk_core, RmrkCore);
+
+ #[cfg(not(feature = "unique-runtime"))]
+ list_benchmark!(list, extra, pallet_proxy_rmrk_equip, RmrkEquip);
+
// list_benchmark!(list, extra, pallet_evm_coder_substrate, EvmCoderSubstrate);
let storage_info = AllPalletsReversedWithSystemFirst::storage_info();
@@ -498,6 +505,13 @@
add_benchmark!(params, batches, pallet_refungible, Refungible);
add_benchmark!(params, batches, pallet_nonfungible, Nonfungible);
add_benchmark!(params, batches, pallet_unique_scheduler, Scheduler);
+
+ #[cfg(not(feature = "unique-runtime"))]
+ add_benchmark!(params, batches, pallet_proxy_rmrk_core, RmrkCore);
+
+ #[cfg(not(feature = "unique-runtime"))]
+ add_benchmark!(params, batches, pallet_proxy_rmrk_equip, RmrkEquip);
+
// add_benchmark!(params, batches, pallet_evm_coder_substrate, EvmCoderSubstrate);
if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }
runtime/opal/Cargo.tomldiffbeforeafterboth--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -10,7 +10,7 @@
license = 'GPLv3'
name = 'opal-runtime'
repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.22'
+version = '0.9.23'
[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']
@@ -34,6 +34,7 @@
'pallet-refungible/runtime-benchmarks',
'pallet-nonfungible/runtime-benchmarks',
'pallet-proxy-rmrk-core/runtime-benchmarks',
+ 'pallet-proxy-rmrk-equip/runtime-benchmarks',
'pallet-unique/runtime-benchmarks',
'pallet-inflation/runtime-benchmarks',
'pallet-unique-scheduler/runtime-benchmarks',
@@ -132,39 +133,39 @@
default-features = false
git = "https://github.com/paritytech/substrate"
optional = true
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-try-runtime]
default-features = false
git = 'https://github.com/paritytech/substrate'
optional = true
-branch = 'polkadot-v0.9.22'
+branch = 'polkadot-v0.9.23'
[dependencies.frame-executive]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-support]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system-benchmarking]
default-features = false
git = "https://github.com/paritytech/substrate"
optional = true
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system-rpc-runtime-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.hex-literal]
optional = true
@@ -179,12 +180,12 @@
[dependencies.pallet-aura]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-balances]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
# Contracts specific packages
# [dependencies.pallet-contracts]
@@ -208,32 +209,32 @@
[dependencies.pallet-randomness-collective-flip]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-sudo]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-timestamp]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-transaction-payment]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-transaction-payment-rpc-runtime-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-treasury]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
# [dependencies.pallet-vesting]
# default-features = false
@@ -243,67 +244,67 @@
[dependencies.sp-arithmetic]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-block-builder]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-core]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-consensus-aura]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-inherents]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-io]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-offchain]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-runtime]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-session]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-std]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-transaction-pool]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-version]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.smallvec]
version = '1.6.1'
@@ -314,46 +315,46 @@
[dependencies.parachain-info]
default-features = false
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-pallet-aura-ext]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-parachain-system]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-core]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-xcm]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-dmp-queue]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-xcmp-queue]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-utility]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-timestamp]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
################################################################################
@@ -361,32 +362,32 @@
[dependencies.polkadot-parachain]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm-builder]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm-executor]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.pallet-xcm]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.orml-vesting]
git = "https://github.com/uniquenetwork/open-runtime-module-library"
-branch = "unique-polkadot-v0.9.22"
+branch = "unique-polkadot-v0.9.23"
version = "0.4.1-dev"
default-features = false
@@ -403,7 +404,7 @@
pallet-unique = { path = '../../pallets/unique', default-features = false }
up-rpc = { path = "../../primitives/rpc", default-features = false }
rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
pallet-inflation = { path = '../../pallets/inflation', default-features = false }
up-data-structs = { path = '../../primitives/data-structs', default-features = false }
pallet-common = { default-features = false, path = "../../pallets/common" }
@@ -415,20 +416,20 @@
pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }
pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }
# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }
-pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.22", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }
+pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.23", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }
pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }
pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }
pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }
pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
################################################################################
# Build Dependencies
[build-dependencies.substrate-wasm-builder]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
runtime/opal/src/lib.rsdiffbeforeafterboth--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -66,6 +66,7 @@
constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
DispatchClass, DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,
WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients, ConstantMultiplier,
+ WeightToFee,
},
};
use pallet_unique_scheduler::DispatchCall;
@@ -74,10 +75,8 @@
CollectionStats, RpcCollection,
mapping::{EvmTokenAddressMapping, CrossTokenAddressMapping},
TokenChild, RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo,
- RmrkBaseInfo, RmrkPartType, RmrkTheme, RmrkThemeName, RmrkThemeProperty, RmrkCollectionId,
- RmrkNftId, RmrkAccountIdOrCollectionNftTuple, RmrkNftChild, RmrkPropertyKey, RmrkResourceTypes,
- RmrkBasicResource, RmrkComposableResource, RmrkSlotResource, RmrkResourceId, RmrkBaseId,
- RmrkFixedPart, RmrkSlotPart, RmrkString,
+ RmrkBaseInfo, RmrkPartType, RmrkTheme, RmrkThemeName, RmrkCollectionId, RmrkNftId,
+ RmrkNftChild, RmrkPropertyKey, RmrkResourceId, RmrkBaseId,
};
// use pallet_contracts::weights::WeightInfo;
@@ -193,7 +192,7 @@
spec_name: create_runtime_str!(RUNTIME_NAME),
impl_name: create_runtime_str!(RUNTIME_NAME),
authoring_version: 1,
- spec_version: 922080,
+ spec_version: 923000,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 1,
@@ -509,7 +508,6 @@
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
smallvec!(WeightToFeeCoefficient {
- // Targeting 0.1 Unique per NFT transfer
coeff_integer: WEIGHT_TO_FEE_COEFF.into(),
coeff_frac: Perbill::zero(),
negative: false,
@@ -738,7 +736,7 @@
}
fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, XcmError> {
- let amount = WeightToFee::calc(&weight);
+ let amount = WeightToFee::weight_to_fee(&weight);
let u128_amount: u128 = amount.try_into().map_err(|_| XcmError::Overflow)?;
// location to this parachain through relay chain
@@ -770,7 +768,7 @@
fn refund_weight(&mut self, weight: Weight) -> Option<MultiAsset> {
let weight = weight.min(self.0);
- let amount = WeightToFee::calc(&weight);
+ let amount = WeightToFee::weight_to_fee(&weight);
self.0 -= weight;
self.1 = self.1.saturating_sub(amount);
let amount: u128 = amount.saturated_into();
@@ -807,13 +805,8 @@
type LocationInverter = LocationInverter<Ancestry>;
type Barrier = Barrier;
type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
- type Trader = UsingOnlySelfCurrencyComponents<
- IdentityFee<Balance>,
- RelayLocation,
- AccountId,
- Balances,
- (),
- >;
+ type Trader =
+ UsingOnlySelfCurrencyComponents<LinearFee<Balance>, RelayLocation, AccountId, Balances, ()>;
type ResponseHandler = (); // Don't handle responses for now.
type SubscriptionService = PolkadotXcm;
@@ -885,7 +878,7 @@
}
parameter_types! {
- pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account();
+ pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account_truncating();
pub const CollectionCreationPrice: Balance = 2 * UNIQUE;
}
@@ -924,6 +917,7 @@
}
impl pallet_proxy_rmrk_equip::Config for Runtime {
+ type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight<Self>;
type Event = Event;
}
@@ -1330,387 +1324,55 @@
RmrkTheme
> for Runtime {
fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {
- Ok(RmrkCore::last_collection_idx())
+ pallet_proxy_rmrk_core::rpc::last_collection_idx::<Runtime>()
}
fn collection_by_id(collection_id: RmrkCollectionId) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::CollectionType};
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(collection_id, CollectionType::Regular) {
- Ok(c) => c,
- Err(_) => return Ok(None),
- };
-
- let nfts_count = collection.total_supply();
-
- Ok(Some(RmrkCollectionInfo {
- issuer: collection.owner.clone(),
- metadata: RmrkCore::get_collection_property_decoded(collection_id, RmrkProperty::Metadata)?,
- max: collection.limits.token_limit,
- symbol: RmrkCore::rebind(&collection.token_prefix)?,
- nfts_count
- }))
+ pallet_proxy_rmrk_core::rpc::collection_by_id::<Runtime>(collection_id)
}
fn nft_by_id(collection_id: RmrkCollectionId, nft_by_id: RmrkNftId) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {
- use up_data_structs::mapping::TokenAddressMapping;
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::CollectionType};
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(collection_id, CollectionType::Regular) {
- Ok(c) => c,
- Err(_) => return Ok(None),
- };
-
- let nft_id = TokenId(nft_by_id);
- if !RmrkCore::nft_exists(collection_id, nft_id) { return Ok(None); }
-
- let owner = match collection.token_owner(nft_id) {
- Some(owner) => match <Runtime as pallet_common::Config>::CrossTokenAddressMapping::address_to_token(&owner) {
- Some((col, tok)) => {
- let rmrk_collection = RmrkCore::rmrk_collection_id(col)?;
-
- RmrkAccountIdOrCollectionNftTuple::CollectionAndNftTuple(rmrk_collection, tok.0)
- }
- None => RmrkAccountIdOrCollectionNftTuple::AccountId(owner.as_sub().clone())
- },
- None => return Ok(None)
- };
-
- Ok(Some(RmrkInstanceInfo {
- owner: owner,
- royalty: RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::RoyaltyInfo)?,
- metadata: RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::Metadata)?,
- equipped: RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::Equipped)?,
- pending: RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::PendingNftAccept)?,
- }))
+ pallet_proxy_rmrk_core::rpc::nft_by_id::<Runtime>(collection_id, nft_by_id)
}
fn account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Result<Vec<RmrkNftId>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::CollectionType};
- use pallet_common::CommonCollectionOperations;
-
- let cross_account_id = CrossAccountId::from_sub(account_id);
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(collection_id, CollectionType::Regular) {
- Ok(c) => c,
- Err(_) => return Ok(Vec::new()),
- };
-
- let tokens = collection.account_tokens(cross_account_id)
- .into_iter()
- .filter(|token| {
- let is_pending = RmrkCore::get_nft_property_decoded(
- collection_id,
- *token,
- RmrkProperty::PendingNftAccept
- ).unwrap_or(true);
-
- !is_pending
- })
- .map(|token| token.0)
- .collect();
-
- Ok(tokens)
+ pallet_proxy_rmrk_core::rpc::account_tokens::<Runtime>(account_id, collection_id)
}
fn nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkNftChild>, DispatchError> {
- use pallet_proxy_rmrk_core::RmrkProperty;
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(Vec::new())
- };
- let nft_id = TokenId(nft_id);
- if !RmrkCore::nft_exists(collection_id, nft_id) { return Ok(Vec::new()); }
-
- Ok(
- pallet_nonfungible::TokenChildren::<Runtime>::iter_prefix((collection_id, nft_id))
- .filter_map(|((child_collection, child_token), _)| {
- let is_pending = RmrkCore::get_nft_property_decoded(
- child_collection,
- child_token,
- RmrkProperty::PendingNftAccept
- ).ok()?;
-
- if is_pending {
- return None;
- }
-
- let rmrk_child_collection = RmrkCore::rmrk_collection_id(
- child_collection
- ).ok()?;
-
- Some(RmrkNftChild {
- collection_id: rmrk_child_collection,
- nft_id: child_token.0,
- })
- }).collect()
- )
+ pallet_proxy_rmrk_core::rpc::nft_children::<Runtime>(collection_id, nft_id)
}
fn collection_properties(collection_id: RmrkCollectionId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
- use pallet_proxy_rmrk_core::misc::CollectionType;
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(Vec::new())
- };
- if RmrkCore::ensure_collection_type(collection_id, CollectionType::Regular).is_err() {
- return Ok(Vec::new());
- }
-
- let properties = RmrkCore::filter_user_properties(
- collection_id,
- /* token_id = */ None,
- filter_keys,
- |key, value| RmrkPropertyInfo {
- key,
- value
- }
- )?;
-
- Ok(properties)
+ pallet_proxy_rmrk_core::rpc::collection_properties::<Runtime>(collection_id, filter_keys)
}
fn nft_properties(collection_id: RmrkCollectionId, nft_id: RmrkNftId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
- use pallet_proxy_rmrk_core::misc::NftType;
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(Vec::new())
- };
- let token_id = TokenId(nft_id);
-
- if RmrkCore::ensure_nft_type(collection_id, token_id, NftType::Regular).is_err() {
- return Ok(Vec::new());
- }
-
- let properties = RmrkCore::filter_user_properties(
- collection_id,
- Some(token_id),
- filter_keys,
- |key, value| RmrkPropertyInfo {
- key,
- value
- }
- )?;
-
- Ok(properties)
+ pallet_proxy_rmrk_core::rpc::nft_properties::<Runtime>(collection_id, nft_id, filter_keys)
}
fn nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::{CollectionType, NftType, ResourceType}};
- use pallet_common::CommonCollectionOperations;
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(Vec::new())
- };
- if RmrkCore::ensure_collection_type(collection_id, CollectionType::Regular).is_err() { return Ok(Vec::new()); }
-
- let nft_id = TokenId(nft_id);
- if RmrkCore::ensure_nft_type(collection_id, nft_id, NftType::Regular).is_err() { return Ok(Vec::new()); }
-
- let res_collection_id: Option<CollectionId> = RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::ResourceCollection)?;
-
- let res_collection_id = match res_collection_id {
- Some(id) => id,
- None => return Ok(Vec::new())
- };
-
- let resource_collection = RmrkCore::get_typed_nft_collection(res_collection_id, CollectionType::Resource)?;
-
- let resources = resource_collection
- .collection_tokens()
- .iter()
- .filter_map(|res_id| Some(RmrkResourceInfo {
- id: res_id.0,
- pending: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::PendingResourceAccept).ok()?,
- pending_removal: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::PendingResourceRemoval).ok()?,
- resource: match RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::ResourceType).ok()? {
- ResourceType::Basic => RmrkResourceTypes::Basic(RmrkBasicResource {
- src: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Src).ok()?,
- metadata: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Metadata).ok()?,
- license: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::License).ok()?,
- thumb: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Thumb).ok()?,
- }),
- ResourceType::Composable => RmrkResourceTypes::Composable(RmrkComposableResource {
- parts: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Parts).ok()?,
- base: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Base).ok()?,
- src: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Src).ok()?,
- metadata: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Metadata).ok()?,
- license: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::License).ok()?,
- thumb: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Thumb).ok()?,
- }),
- ResourceType::Slot => RmrkResourceTypes::Slot(RmrkSlotResource {
- base: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Base).ok()?,
- src: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Src).ok()?,
- metadata: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Metadata).ok()?,
- slot: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Slot).ok()?,
- license: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::License).ok()?,
- thumb: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Thumb).ok()?,
- }),
- },
- }))
- .collect();
-
- Ok(resources)
+ pallet_proxy_rmrk_core::rpc::nft_resources::<Runtime>(collection_id, nft_id)
}
fn nft_resource_priority(collection_id: RmrkCollectionId, nft_id: RmrkNftId, resource_id: RmrkResourceId) -> Result<Option<u32>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::{CollectionType, NftType}};
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(None)
- };
- if RmrkCore::ensure_collection_type(collection_id, CollectionType::Regular).is_err() { return Ok(None); }
-
- let nft_id = TokenId(nft_id);
- if RmrkCore::ensure_nft_type(collection_id, nft_id, NftType::Regular).is_err() { return Ok(None); }
-
- let priorities: Vec<_> = RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::ResourcePriorities)?;
- Ok(
- priorities.into_iter()
- .enumerate()
- .find(|(_, id)| *id == resource_id)
- .map(|(priority, _): (usize, RmrkResourceId)| priority as u32)
- )
+ pallet_proxy_rmrk_core::rpc::nft_resource_priority::<Runtime>(collection_id, nft_id, resource_id)
}
fn base(base_id: RmrkBaseId) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {
- use pallet_proxy_rmrk_core::{
- RmrkProperty, misc::{CollectionType},
- };
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(base_id, CollectionType::Base) {
- Ok(c) => c,
- Err(_) => return Ok(None),
- };
-
- Ok(Some(RmrkBaseInfo {
- issuer: collection.owner.clone(),
- base_type: RmrkCore::get_collection_property_decoded(collection_id, RmrkProperty::BaseType)?,
- symbol: RmrkCore::rebind(&collection.token_prefix)?,
- }))
+ pallet_proxy_rmrk_equip::rpc::base::<Runtime>(base_id)
}
fn base_parts(base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::{CollectionType, NftType}};
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(base_id, CollectionType::Base) {
- Ok(c) => c,
- Err(_) => return Ok(Vec::new()),
- };
-
- let parts = collection.collection_tokens()
- .into_iter()
- .filter_map(|token_id| {
- let nft_type = RmrkCore::get_nft_type(collection_id, token_id).ok()?;
-
- match nft_type {
- NftType::FixedPart => Some(RmrkPartType::FixedPart(RmrkFixedPart {
- id: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::ExternalPartId).ok()?,
- src: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::Src).ok()?,
- z: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::ZIndex).ok()?,
- })),
- NftType::SlotPart => Some(RmrkPartType::SlotPart(RmrkSlotPart {
- id: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::ExternalPartId).ok()?,
- src: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::Src).ok()?,
- z: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::ZIndex).ok()?,
- equippable: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::EquippableList).ok()?,
- })),
- _ => None
- }
- })
- .collect();
-
- Ok(parts)
+ pallet_proxy_rmrk_equip::rpc::base_parts::<Runtime>(base_id)
}
fn theme_names(base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::{NftType, CollectionType}};
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(base_id, CollectionType::Base) {
- Ok(c) => c,
- Err(_) => return Ok(Vec::new()),
- };
-
- let theme_names = collection.collection_tokens()
- .iter()
- .filter_map(|token_id| {
- let nft_type = RmrkCore::get_nft_type(collection_id, *token_id).ok()?;
-
- match nft_type {
- NftType::Theme => RmrkCore::get_nft_property_decoded(collection_id, *token_id, RmrkProperty::ThemeName).ok(),
- _ => None
- }
- })
- .collect();
-
- Ok(theme_names)
+ pallet_proxy_rmrk_equip::rpc::theme_names::<Runtime>(base_id)
}
fn theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Option<RmrkTheme>, DispatchError> {
- use pallet_proxy_rmrk_core::{
- RmrkProperty,
- misc::{CollectionType, NftType}
- };
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(base_id, CollectionType::Base) {
- Ok(c) => c,
- Err(_) => return Ok(None),
- };
-
- let theme_info = collection.collection_tokens()
- .into_iter()
- .find_map(|token_id| {
- RmrkCore::ensure_nft_type(collection_id, token_id, NftType::Theme).ok()?;
-
- let name: RmrkString = RmrkCore::get_nft_property_decoded(
- collection_id, token_id, RmrkProperty::ThemeName
- ).ok()?;
-
- if name == theme_name {
- Some((name, token_id))
- } else {
- None
- }
- });
-
- let (name, theme_id) = match theme_info {
- Some((name, theme_id)) => (name, theme_id),
- None => return Ok(None)
- };
-
- let properties = RmrkCore::filter_user_properties(
- collection_id,
- Some(theme_id),
- filter_keys,
- |key, value| RmrkThemeProperty {
- key,
- value
- }
- )?;
-
- let inherit = RmrkCore::get_nft_property_decoded(
- collection_id,
- theme_id,
- RmrkProperty::ThemeInherit
- )?;
-
- let theme = RmrkTheme {
- name,
- properties,
- inherit,
- };
-
- Ok(Some(theme))
+ pallet_proxy_rmrk_equip::rpc::theme::<Runtime>(base_id, theme_name, filter_keys)
}
}
}
runtime/quartz/Cargo.tomldiffbeforeafterboth--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -10,7 +10,7 @@
license = 'GPLv3'
name = 'quartz-runtime'
repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.22'
+version = '0.9.23'
[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']
@@ -132,39 +132,39 @@
default-features = false
git = "https://github.com/paritytech/substrate"
optional = true
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-try-runtime]
default-features = false
git = 'https://github.com/paritytech/substrate'
optional = true
-branch = 'polkadot-v0.9.22'
+branch = 'polkadot-v0.9.23'
[dependencies.frame-executive]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-support]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system-benchmarking]
default-features = false
git = "https://github.com/paritytech/substrate"
optional = true
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system-rpc-runtime-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.hex-literal]
optional = true
@@ -179,12 +179,12 @@
[dependencies.pallet-aura]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-balances]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
# Contracts specific packages
# [dependencies.pallet-contracts]
@@ -208,32 +208,32 @@
[dependencies.pallet-randomness-collective-flip]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-sudo]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-timestamp]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-transaction-payment]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-transaction-payment-rpc-runtime-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-treasury]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
# [dependencies.pallet-vesting]
# default-features = false
@@ -243,67 +243,67 @@
[dependencies.sp-arithmetic]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-block-builder]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-core]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-consensus-aura]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-inherents]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-io]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-offchain]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-runtime]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-session]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-std]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-transaction-pool]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-version]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.smallvec]
version = '1.6.1'
@@ -314,46 +314,46 @@
[dependencies.parachain-info]
default-features = false
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-pallet-aura-ext]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-parachain-system]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-core]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-xcm]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-dmp-queue]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-xcmp-queue]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-utility]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-timestamp]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
################################################################################
@@ -361,32 +361,32 @@
[dependencies.polkadot-parachain]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm-builder]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm-executor]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.pallet-xcm]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.orml-vesting]
git = "https://github.com/uniquenetwork/open-runtime-module-library"
-branch = "unique-polkadot-v0.9.22"
+branch = "unique-polkadot-v0.9.23"
version = "0.4.1-dev"
default-features = false
@@ -410,7 +410,7 @@
derivative = "2.2.0"
pallet-unique = { path = '../../pallets/unique', default-features = false }
up-rpc = { path = "../../primitives/rpc", default-features = false }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
pallet-inflation = { path = '../../pallets/inflation', default-features = false }
up-data-structs = { path = '../../primitives/data-structs', default-features = false }
pallet-common = { default-features = false, path = "../../pallets/common" }
@@ -422,20 +422,20 @@
pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }
pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }
# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }
-pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.22", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }
+pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.23", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }
pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }
pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }
pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }
pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
################################################################################
# Build Dependencies
[build-dependencies.substrate-wasm-builder]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
runtime/quartz/src/lib.rsdiffbeforeafterboth--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -66,6 +66,7 @@
constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
DispatchClass, DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,
WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients, ConstantMultiplier,
+ WeightToFee,
},
};
use pallet_unique_scheduler::DispatchCall;
@@ -74,10 +75,8 @@
CollectionStats, RpcCollection,
mapping::{EvmTokenAddressMapping, CrossTokenAddressMapping},
TokenChild, RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo,
- RmrkBaseInfo, RmrkPartType, RmrkTheme, RmrkThemeName, RmrkThemeProperty, RmrkCollectionId,
- RmrkNftId, RmrkAccountIdOrCollectionNftTuple, RmrkNftChild, RmrkPropertyKey, RmrkResourceTypes,
- RmrkBasicResource, RmrkComposableResource, RmrkSlotResource, RmrkResourceId, RmrkBaseId,
- RmrkFixedPart, RmrkSlotPart, RmrkString,
+ RmrkBaseInfo, RmrkPartType, RmrkTheme, RmrkThemeName, RmrkCollectionId, RmrkNftId,
+ RmrkNftChild, RmrkPropertyKey, RmrkResourceId, RmrkBaseId,
};
// use pallet_contracts::weights::WeightInfo;
@@ -192,7 +191,7 @@
spec_name: create_runtime_str!(RUNTIME_NAME),
impl_name: create_runtime_str!(RUNTIME_NAME),
authoring_version: 1,
- spec_version: 922080,
+ spec_version: 923000,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 1,
@@ -508,7 +507,6 @@
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
smallvec!(WeightToFeeCoefficient {
- // Targeting 0.1 Unique per NFT transfer
coeff_integer: WEIGHT_TO_FEE_COEFF.into(),
coeff_frac: Perbill::zero(),
negative: false,
@@ -737,7 +735,7 @@
}
fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, XcmError> {
- let amount = WeightToFee::calc(&weight);
+ let amount = WeightToFee::weight_to_fee(&weight);
let u128_amount: u128 = amount.try_into().map_err(|_| XcmError::Overflow)?;
// location to this parachain through relay chain
@@ -769,7 +767,7 @@
fn refund_weight(&mut self, weight: Weight) -> Option<MultiAsset> {
let weight = weight.min(self.0);
- let amount = WeightToFee::calc(&weight);
+ let amount = WeightToFee::weight_to_fee(&weight);
self.0 -= weight;
self.1 = self.1.saturating_sub(amount);
let amount: u128 = amount.saturated_into();
@@ -806,13 +804,8 @@
type LocationInverter = LocationInverter<Ancestry>;
type Barrier = Barrier;
type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
- type Trader = UsingOnlySelfCurrencyComponents<
- IdentityFee<Balance>,
- RelayLocation,
- AccountId,
- Balances,
- (),
- >;
+ type Trader =
+ UsingOnlySelfCurrencyComponents<LinearFee<Balance>, RelayLocation, AccountId, Balances, ()>;
type ResponseHandler = (); // Don't handle responses for now.
type SubscriptionService = PolkadotXcm;
@@ -884,7 +877,7 @@
}
parameter_types! {
- pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account();
+ pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account_truncating();
pub const CollectionCreationPrice: Balance = 2 * UNIQUE;
}
@@ -923,6 +916,7 @@
}
impl pallet_proxy_rmrk_equip::Config for Runtime {
+ type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight<Self>;
type Event = Event;
}
@@ -1330,387 +1324,55 @@
RmrkTheme
> for Runtime {
fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {
- Ok(RmrkCore::last_collection_idx())
+ pallet_proxy_rmrk_core::rpc::last_collection_idx::<Runtime>()
}
fn collection_by_id(collection_id: RmrkCollectionId) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::CollectionType};
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(collection_id, CollectionType::Regular) {
- Ok(c) => c,
- Err(_) => return Ok(None),
- };
-
- let nfts_count = collection.total_supply();
-
- Ok(Some(RmrkCollectionInfo {
- issuer: collection.owner.clone(),
- metadata: RmrkCore::get_collection_property_decoded(collection_id, RmrkProperty::Metadata)?,
- max: collection.limits.token_limit,
- symbol: RmrkCore::rebind(&collection.token_prefix)?,
- nfts_count
- }))
+ pallet_proxy_rmrk_core::rpc::collection_by_id::<Runtime>(collection_id)
}
fn nft_by_id(collection_id: RmrkCollectionId, nft_by_id: RmrkNftId) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {
- use up_data_structs::mapping::TokenAddressMapping;
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::CollectionType};
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(collection_id, CollectionType::Regular) {
- Ok(c) => c,
- Err(_) => return Ok(None),
- };
-
- let nft_id = TokenId(nft_by_id);
- if !RmrkCore::nft_exists(collection_id, nft_id) { return Ok(None); }
-
- let owner = match collection.token_owner(nft_id) {
- Some(owner) => match <Runtime as pallet_common::Config>::CrossTokenAddressMapping::address_to_token(&owner) {
- Some((col, tok)) => {
- let rmrk_collection = RmrkCore::rmrk_collection_id(col)?;
-
- RmrkAccountIdOrCollectionNftTuple::CollectionAndNftTuple(rmrk_collection, tok.0)
- }
- None => RmrkAccountIdOrCollectionNftTuple::AccountId(owner.as_sub().clone())
- },
- None => return Ok(None)
- };
-
- Ok(Some(RmrkInstanceInfo {
- owner: owner,
- royalty: RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::RoyaltyInfo)?,
- metadata: RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::Metadata)?,
- equipped: RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::Equipped)?,
- pending: RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::PendingNftAccept)?,
- }))
+ pallet_proxy_rmrk_core::rpc::nft_by_id::<Runtime>(collection_id, nft_by_id)
}
fn account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Result<Vec<RmrkNftId>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::CollectionType};
- use pallet_common::CommonCollectionOperations;
-
- let cross_account_id = CrossAccountId::from_sub(account_id);
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(collection_id, CollectionType::Regular) {
- Ok(c) => c,
- Err(_) => return Ok(Vec::new()),
- };
-
- let tokens = collection.account_tokens(cross_account_id)
- .into_iter()
- .filter(|token| {
- let is_pending = RmrkCore::get_nft_property_decoded(
- collection_id,
- *token,
- RmrkProperty::PendingNftAccept
- ).unwrap_or(true);
-
- !is_pending
- })
- .map(|token| token.0)
- .collect();
-
- Ok(tokens)
+ pallet_proxy_rmrk_core::rpc::account_tokens::<Runtime>(account_id, collection_id)
}
fn nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkNftChild>, DispatchError> {
- use pallet_proxy_rmrk_core::RmrkProperty;
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(Vec::new())
- };
- let nft_id = TokenId(nft_id);
- if !RmrkCore::nft_exists(collection_id, nft_id) { return Ok(Vec::new()); }
-
- Ok(
- pallet_nonfungible::TokenChildren::<Runtime>::iter_prefix((collection_id, nft_id))
- .filter_map(|((child_collection, child_token), _)| {
- let is_pending = RmrkCore::get_nft_property_decoded(
- child_collection,
- child_token,
- RmrkProperty::PendingNftAccept
- ).ok()?;
-
- if is_pending {
- return None;
- }
-
- let rmrk_child_collection = RmrkCore::rmrk_collection_id(
- child_collection
- ).ok()?;
-
- Some(RmrkNftChild {
- collection_id: rmrk_child_collection,
- nft_id: child_token.0,
- })
- }).collect()
- )
+ pallet_proxy_rmrk_core::rpc::nft_children::<Runtime>(collection_id, nft_id)
}
fn collection_properties(collection_id: RmrkCollectionId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
- use pallet_proxy_rmrk_core::misc::CollectionType;
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(Vec::new())
- };
- if RmrkCore::ensure_collection_type(collection_id, CollectionType::Regular).is_err() {
- return Ok(Vec::new());
- }
-
- let properties = RmrkCore::filter_user_properties(
- collection_id,
- /* token_id = */ None,
- filter_keys,
- |key, value| RmrkPropertyInfo {
- key,
- value
- }
- )?;
-
- Ok(properties)
+ pallet_proxy_rmrk_core::rpc::collection_properties::<Runtime>(collection_id, filter_keys)
}
fn nft_properties(collection_id: RmrkCollectionId, nft_id: RmrkNftId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
- use pallet_proxy_rmrk_core::misc::NftType;
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(Vec::new())
- };
- let token_id = TokenId(nft_id);
-
- if RmrkCore::ensure_nft_type(collection_id, token_id, NftType::Regular).is_err() {
- return Ok(Vec::new());
- }
-
- let properties = RmrkCore::filter_user_properties(
- collection_id,
- Some(token_id),
- filter_keys,
- |key, value| RmrkPropertyInfo {
- key,
- value
- }
- )?;
-
- Ok(properties)
+ pallet_proxy_rmrk_core::rpc::nft_properties::<Runtime>(collection_id, nft_id, filter_keys)
}
fn nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::{CollectionType, NftType, ResourceType}};
- use pallet_common::CommonCollectionOperations;
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(Vec::new())
- };
- if RmrkCore::ensure_collection_type(collection_id, CollectionType::Regular).is_err() { return Ok(Vec::new()); }
-
- let nft_id = TokenId(nft_id);
- if RmrkCore::ensure_nft_type(collection_id, nft_id, NftType::Regular).is_err() { return Ok(Vec::new()); }
-
- let res_collection_id: Option<CollectionId> = RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::ResourceCollection)?;
-
- let res_collection_id = match res_collection_id {
- Some(id) => id,
- None => return Ok(Vec::new())
- };
-
- let resource_collection = RmrkCore::get_typed_nft_collection(res_collection_id, CollectionType::Resource)?;
-
- let resources = resource_collection
- .collection_tokens()
- .iter()
- .filter_map(|res_id| Some(RmrkResourceInfo {
- id: res_id.0,
- pending: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::PendingResourceAccept).ok()?,
- pending_removal: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::PendingResourceRemoval).ok()?,
- resource: match RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::ResourceType).ok()? {
- ResourceType::Basic => RmrkResourceTypes::Basic(RmrkBasicResource {
- src: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Src).ok()?,
- metadata: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Metadata).ok()?,
- license: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::License).ok()?,
- thumb: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Thumb).ok()?,
- }),
- ResourceType::Composable => RmrkResourceTypes::Composable(RmrkComposableResource {
- parts: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Parts).ok()?,
- base: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Base).ok()?,
- src: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Src).ok()?,
- metadata: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Metadata).ok()?,
- license: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::License).ok()?,
- thumb: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Thumb).ok()?,
- }),
- ResourceType::Slot => RmrkResourceTypes::Slot(RmrkSlotResource {
- base: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Base).ok()?,
- src: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Src).ok()?,
- metadata: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Metadata).ok()?,
- slot: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Slot).ok()?,
- license: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::License).ok()?,
- thumb: RmrkCore::get_nft_property_decoded(res_collection_id, *res_id, RmrkProperty::Thumb).ok()?,
- }),
- },
- }))
- .collect();
-
- Ok(resources)
+ pallet_proxy_rmrk_core::rpc::nft_resources::<Runtime>(collection_id, nft_id)
}
fn nft_resource_priority(collection_id: RmrkCollectionId, nft_id: RmrkNftId, resource_id: RmrkResourceId) -> Result<Option<u32>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::{CollectionType, NftType}};
-
- let collection_id = match RmrkCore::unique_collection_id(collection_id) {
- Ok(id) => id,
- Err(_) => return Ok(None)
- };
- if RmrkCore::ensure_collection_type(collection_id, CollectionType::Regular).is_err() { return Ok(None); }
-
- let nft_id = TokenId(nft_id);
- if RmrkCore::ensure_nft_type(collection_id, nft_id, NftType::Regular).is_err() { return Ok(None); }
-
- let priorities: Vec<_> = RmrkCore::get_nft_property_decoded(collection_id, nft_id, RmrkProperty::ResourcePriorities)?;
- Ok(
- priorities.into_iter()
- .enumerate()
- .find(|(_, id)| *id == resource_id)
- .map(|(priority, _): (usize, RmrkResourceId)| priority as u32)
- )
+ pallet_proxy_rmrk_core::rpc::nft_resource_priority::<Runtime>(collection_id, nft_id, resource_id)
}
fn base(base_id: RmrkBaseId) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {
- use pallet_proxy_rmrk_core::{
- RmrkProperty, misc::{CollectionType},
- };
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(base_id, CollectionType::Base) {
- Ok(c) => c,
- Err(_) => return Ok(None),
- };
-
- Ok(Some(RmrkBaseInfo {
- issuer: collection.owner.clone(),
- base_type: RmrkCore::get_collection_property_decoded(collection_id, RmrkProperty::BaseType)?,
- symbol: RmrkCore::rebind(&collection.token_prefix)?,
- }))
+ pallet_proxy_rmrk_equip::rpc::base::<Runtime>(base_id)
}
fn base_parts(base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::{CollectionType, NftType}};
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(base_id, CollectionType::Base) {
- Ok(c) => c,
- Err(_) => return Ok(Vec::new()),
- };
-
- let parts = collection.collection_tokens()
- .into_iter()
- .filter_map(|token_id| {
- let nft_type = RmrkCore::get_nft_type(collection_id, token_id).ok()?;
-
- match nft_type {
- NftType::FixedPart => Some(RmrkPartType::FixedPart(RmrkFixedPart {
- id: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::ExternalPartId).ok()?,
- src: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::Src).ok()?,
- z: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::ZIndex).ok()?,
- })),
- NftType::SlotPart => Some(RmrkPartType::SlotPart(RmrkSlotPart {
- id: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::ExternalPartId).ok()?,
- src: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::Src).ok()?,
- z: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::ZIndex).ok()?,
- equippable: RmrkCore::get_nft_property_decoded(collection_id, token_id, RmrkProperty::EquippableList).ok()?,
- })),
- _ => None
- }
- })
- .collect();
-
- Ok(parts)
+ pallet_proxy_rmrk_equip::rpc::base_parts::<Runtime>(base_id)
}
fn theme_names(base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {
- use pallet_proxy_rmrk_core::{RmrkProperty, misc::{NftType, CollectionType}};
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(base_id, CollectionType::Base) {
- Ok(c) => c,
- Err(_) => return Ok(Vec::new()),
- };
-
- let theme_names = collection.collection_tokens()
- .iter()
- .filter_map(|token_id| {
- let nft_type = RmrkCore::get_nft_type(collection_id, *token_id).ok()?;
-
- match nft_type {
- NftType::Theme => RmrkCore::get_nft_property_decoded(collection_id, *token_id, RmrkProperty::ThemeName).ok(),
- _ => None
- }
- })
- .collect();
-
- Ok(theme_names)
+ pallet_proxy_rmrk_equip::rpc::theme_names::<Runtime>(base_id)
}
fn theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Option<RmrkTheme>, DispatchError> {
- use pallet_proxy_rmrk_core::{
- RmrkProperty,
- misc::{CollectionType, NftType}
- };
- use pallet_common::CommonCollectionOperations;
-
- let (collection, collection_id) = match RmrkCore::get_typed_nft_collection_mapped(base_id, CollectionType::Base) {
- Ok(c) => c,
- Err(_) => return Ok(None),
- };
-
- let theme_info = collection.collection_tokens()
- .into_iter()
- .find_map(|token_id| {
- RmrkCore::ensure_nft_type(collection_id, token_id, NftType::Theme).ok()?;
-
- let name: RmrkString = RmrkCore::get_nft_property_decoded(
- collection_id, token_id, RmrkProperty::ThemeName
- ).ok()?;
-
- if name == theme_name {
- Some((name, token_id))
- } else {
- None
- }
- });
-
- let (name, theme_id) = match theme_info {
- Some((name, theme_id)) => (name, theme_id),
- None => return Ok(None)
- };
-
- let properties = RmrkCore::filter_user_properties(
- collection_id,
- Some(theme_id),
- filter_keys,
- |key, value| RmrkThemeProperty {
- key,
- value
- }
- )?;
-
- let inherit = RmrkCore::get_nft_property_decoded(
- collection_id,
- theme_id,
- RmrkProperty::ThemeInherit
- )?;
-
- let theme = RmrkTheme {
- name,
- properties,
- inherit,
- };
-
- Ok(Some(theme))
+ pallet_proxy_rmrk_equip::rpc::theme::<Runtime>(base_id, theme_name, filter_keys)
}
}
}
runtime/tests/Cargo.tomldiffbeforeafterboth--- a/runtime/tests/Cargo.toml
+++ b/runtime/tests/Cargo.toml
@@ -7,22 +7,22 @@
unique-runtime-common = { path = '../common' }
up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
-sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
+sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
-frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
+frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
-pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
-pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.22' }
+pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
+pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.23' }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
pallet-common = { path = '../../pallets/common' }
pallet-structure = { path = '../../pallets/structure' }
@@ -33,5 +33,7 @@
pallet-evm-coder-substrate = { path = '../../pallets/evm-coder-substrate' }
-parity-scale-codec = "*"
+parity-scale-codec = { version = "3.1.2", default-features = false, features = [
+ "derive",
+] }
scale-info = "*"
runtime/unique/Cargo.tomldiffbeforeafterboth--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -10,13 +10,13 @@
license = 'GPLv3'
name = 'unique-runtime'
repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.9.22'
+version = '0.9.23'
[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']
[features]
-default = ['std']
+default = ['std', 'unique-runtime']
runtime-benchmarks = [
'hex-literal',
'frame-benchmarking',
@@ -119,6 +119,7 @@
"orml-vesting/std",
]
limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
+unique-runtime = []
################################################################################
# Substrate Dependencies
@@ -133,39 +134,39 @@
default-features = false
git = "https://github.com/paritytech/substrate"
optional = true
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-try-runtime]
default-features = false
git = 'https://github.com/paritytech/substrate'
optional = true
-branch = 'polkadot-v0.9.22'
+branch = 'polkadot-v0.9.23'
[dependencies.frame-executive]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-support]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system-benchmarking]
default-features = false
git = "https://github.com/paritytech/substrate"
optional = true
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.frame-system-rpc-runtime-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.hex-literal]
optional = true
@@ -180,12 +181,12 @@
[dependencies.pallet-aura]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-balances]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
# Contracts specific packages
# [dependencies.pallet-contracts]
@@ -209,32 +210,32 @@
[dependencies.pallet-randomness-collective-flip]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-sudo]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-timestamp]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-transaction-payment]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-transaction-payment-rpc-runtime-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.pallet-treasury]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
# [dependencies.pallet-vesting]
# default-features = false
@@ -244,67 +245,67 @@
[dependencies.sp-arithmetic]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-api]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-block-builder]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-core]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-consensus-aura]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-inherents]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-io]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-offchain]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-runtime]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-session]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-std]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-transaction-pool]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.sp-version]
default-features = false
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.smallvec]
version = '1.6.1'
@@ -315,46 +316,46 @@
[dependencies.parachain-info]
default-features = false
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
[dependencies.cumulus-pallet-aura-ext]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-parachain-system]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-core]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-xcm]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-dmp-queue]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-pallet-xcmp-queue]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-utility]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
[dependencies.cumulus-primitives-timestamp]
git = "https://github.com/paritytech/cumulus"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
default-features = false
################################################################################
@@ -362,32 +363,32 @@
[dependencies.polkadot-parachain]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm-builder]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.xcm-executor]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.pallet-xcm]
git = "https://github.com/paritytech/polkadot"
-branch = "release-v0.9.22"
+branch = "release-v0.9.23"
default-features = false
[dependencies.orml-vesting]
git = "https://github.com/uniquenetwork/open-runtime-module-library"
-branch = "unique-polkadot-v0.9.22"
+branch = "unique-polkadot-v0.9.23"
version = "0.4.1-dev"
default-features = false
@@ -415,21 +416,21 @@
pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }
pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }
# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }
-pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.22", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }
+pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.23", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }
pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }
pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }
pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }
pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }
-pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
-fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
+fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.23" }
################################################################################
# Build Dependencies
[build-dependencies.substrate-wasm-builder]
git = "https://github.com/paritytech/substrate"
-branch = "polkadot-v0.9.22"
+branch = "polkadot-v0.9.23"
runtime/unique/src/lib.rsdiffbeforeafterboth--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -66,6 +66,7 @@
constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
DispatchClass, DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,
WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients, ConstantMultiplier,
+ WeightToFee,
},
};
use pallet_unique_scheduler::DispatchCall;
@@ -74,9 +75,8 @@
CollectionStats, RpcCollection,
mapping::{EvmTokenAddressMapping, CrossTokenAddressMapping},
TokenChild, RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo,
- RmrkBaseInfo, RmrkPartType, RmrkTheme, RmrkThemeName, RmrkCollectionId,
- RmrkNftId, RmrkNftChild, RmrkPropertyKey,
- RmrkResourceId, RmrkBaseId,
+ RmrkBaseInfo, RmrkPartType, RmrkTheme, RmrkThemeName, RmrkCollectionId, RmrkNftId,
+ RmrkNftChild, RmrkPropertyKey, RmrkResourceId, RmrkBaseId,
};
// use pallet_contracts::weights::WeightInfo;
@@ -190,7 +190,7 @@
spec_name: create_runtime_str!(RUNTIME_NAME),
impl_name: create_runtime_str!(RUNTIME_NAME),
authoring_version: 1,
- spec_version: 922080,
+ spec_version: 923000,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 1,
@@ -506,7 +506,6 @@
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
smallvec!(WeightToFeeCoefficient {
- // Targeting 0.1 Unique per NFT transfer
coeff_integer: WEIGHT_TO_FEE_COEFF.into(),
coeff_frac: Perbill::zero(),
negative: false,
@@ -735,7 +734,7 @@
}
fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, XcmError> {
- let amount = WeightToFee::calc(&weight);
+ let amount = WeightToFee::weight_to_fee(&weight);
let u128_amount: u128 = amount.try_into().map_err(|_| XcmError::Overflow)?;
// location to this parachain through relay chain
@@ -767,7 +766,7 @@
fn refund_weight(&mut self, weight: Weight) -> Option<MultiAsset> {
let weight = weight.min(self.0);
- let amount = WeightToFee::calc(&weight);
+ let amount = WeightToFee::weight_to_fee(&weight);
self.0 -= weight;
self.1 = self.1.saturating_sub(amount);
let amount: u128 = amount.saturated_into();
@@ -804,13 +803,8 @@
type LocationInverter = LocationInverter<Ancestry>;
type Barrier = Barrier;
type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
- type Trader = UsingOnlySelfCurrencyComponents<
- IdentityFee<Balance>,
- RelayLocation,
- AccountId,
- Balances,
- (),
- >;
+ type Trader =
+ UsingOnlySelfCurrencyComponents<LinearFee<Balance>, RelayLocation, AccountId, Balances, ()>;
type ResponseHandler = (); // Don't handle responses for now.
type SubscriptionService = PolkadotXcm;
@@ -882,7 +876,7 @@
}
parameter_types! {
- pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account();
+ pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account_truncating();
pub const CollectionCreationPrice: Balance = 2 * UNIQUE;
}
tests/README.mddiffbeforeafterboth--- a/tests/README.md
+++ b/tests/README.md
@@ -5,7 +5,7 @@
1. Checkout polkadot in sibling folder with this project
```bash
git clone https://github.com/paritytech/polkadot.git && cd polkadot
-git checkout release-v0.9.22
+git checkout release-v0.9.23
```
2. Build with nightly-2021-11-11
tests/src/createItem.test.tsdiffbeforeafterboth--- a/tests/src/createItem.test.ts
+++ b/tests/src/createItem.test.ts
@@ -158,7 +158,7 @@
const newCollectionID = await createCollectionWithPropsExpectSuccess();
- createItemWithPropsExpectFailure(alice, newCollectionID, 'NFT', prps);
+ await createItemWithPropsExpectFailure(alice, newCollectionID, 'NFT', prps);
});
});
@@ -166,7 +166,7 @@
await usingApi(async () => {
const newCollectionID = await createCollectionWithPropsExpectSuccess();
- createItemWithPropsExpectFailure(alice, newCollectionID, 'NFT', [{key: 'k', value: 'vvvvvv'.repeat(5000)}, {key: 'k2', value: 'vvv'.repeat(5000)}]);
+ await createItemWithPropsExpectFailure(alice, newCollectionID, 'NFT', [{key: 'k', value: 'vvvvvv'.repeat(5000)}, {key: 'k2', value: 'vvv'.repeat(5000)}]);
});
});
});
tests/src/nesting/unnest.test.tsdiffbeforeafterboth--- a/tests/src/nesting/unnest.test.ts
+++ b/tests/src/nesting/unnest.test.ts
@@ -153,6 +153,6 @@
// Create a nested token ouroboros
const nestedToken = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: tokenIdToAddress(collection, targetToken)});
- expect(transferExpectSuccess(collection, targetToken, alice, {Ethereum: tokenIdToAddress(collection, nestedToken)})).to.be.rejectedWith(/^structure\.OuroborosDetected$/);
+ await expect(transferExpectSuccess(collection, targetToken, alice, {Ethereum: tokenIdToAddress(collection, nestedToken)})).to.be.rejectedWith(/^structure\.OuroborosDetected$/);
});
});
tests/update_apps.shdiffbeforeafterboth--- a/tests/update_apps.sh
+++ b/tests/update_apps.sh
@@ -1,5 +1,7 @@
#!/usr/bin/env sh
+set -eux
+
./update_types.sh
if [ ! -d polkadot-apps ]; then
@@ -8,4 +10,4 @@
pushd polkadot-apps
yarn link ../unique-types-js
-popd
\ No newline at end of file
+popd
tests/update_apps_start.shdiffbeforeafterboth--- a/tests/update_apps_start.sh
+++ b/tests/update_apps_start.sh
@@ -1,7 +1,9 @@
#!/usr/bin/env sh
+set -eux
+
./update_apps.sh
pushd polkadot-apps
yarn start
-popd
\ No newline at end of file
+popd
tests/update_types.shdiffbeforeafterboth--- a/tests/update_types.sh
+++ b/tests/update_types.sh
@@ -1,5 +1,7 @@
#!/usr/bin/env sh
+set -eux
+
yarn polkadot-types
if [ ! -d unique-types-js ]; then