difftreelog
test fix for updated frontier payment logic
in: master
9 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -181,9 +181,9 @@
[[package]]
name = "aho-corasick"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
dependencies = [
"memchr",
]
@@ -195,6 +195,12 @@
checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127"
[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
name = "android_system_properties"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -450,7 +456,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -461,7 +467,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -553,9 +559,9 @@
[[package]]
name = "base64"
-version = "0.21.1"
+version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f1e31e207a6b8fb791a38ea3105e6cb541f55e4d029902d3039a4ad07cc4105"
+checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
[[package]]
name = "base64ct"
@@ -575,7 +581,7 @@
[[package]]
name = "binary-merkle-tree"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"hash-db 0.16.0",
"log",
@@ -796,9 +802,9 @@
[[package]]
name = "bumpalo"
-version = "3.12.2"
+version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
[[package]]
name = "byte-slice-cast"
@@ -950,13 +956,13 @@
[[package]]
name = "chrono"
-version = "0.4.24"
+version = "0.4.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
+checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
dependencies = [
+ "android-tzdata",
"iana-time-zone",
"js-sys",
- "num-integer",
"num-traits",
"time 0.1.45",
"wasm-bindgen",
@@ -1026,9 +1032,9 @@
[[package]]
name = "clap"
-version = "4.3.0"
+version = "4.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93aae7a4192245f70fe75dd9157fc7b4a5bf53e88d30bd4396f7d8f9284d5acc"
+checksum = "b4ed2379f8603fa2b7509891660e802b88c70a79a6427a70abb5968054de2c28"
dependencies = [
"clap_builder",
"clap_derive",
@@ -1037,9 +1043,9 @@
[[package]]
name = "clap_builder"
-version = "4.3.0"
+version = "4.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f423e341edefb78c9caba2d9c7f7687d0e72e89df3ce3394554754393ac3990"
+checksum = "72394f3339a76daf211e57d4bcb374410f3965dcc606dd0e03738c7888766980"
dependencies = [
"anstream",
"anstyle",
@@ -1050,14 +1056,14 @@
[[package]]
name = "clap_derive"
-version = "4.3.0"
+version = "4.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "191d9573962933b4027f932c600cd252ce27a8ad5979418fe78e43c07996f27b"
+checksum = "59e9ef9a08ee1c0e1f2e162121665ac45ac3783b0f897db7244ae75ad9a8f65b"
dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -1096,9 +1102,9 @@
[[package]]
name = "comfy-table"
-version = "6.1.4"
+version = "6.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d"
+checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba"
dependencies = [
"strum",
"strum_macros",
@@ -1683,7 +1689,7 @@
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -1959,9 +1965,9 @@
[[package]]
name = "cxx"
-version = "1.0.94"
+version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93"
+checksum = "109308c20e8445959c2792e81871054c6a17e6976489a93d2769641a2ba5839c"
dependencies = [
"cc",
"cxxbridge-flags",
@@ -1971,9 +1977,9 @@
[[package]]
name = "cxx-build"
-version = "1.0.94"
+version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b"
+checksum = "daf4c6755cdf10798b97510e0e2b3edb9573032bd9379de8fffa59d68165494f"
dependencies = [
"cc",
"codespan-reporting",
@@ -1981,24 +1987,24 @@
"proc-macro2",
"quote",
"scratch",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "cxxbridge-flags"
-version = "1.0.94"
+version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb"
+checksum = "882074421238e84fe3b4c65d0081de34e5b323bf64555d3e61991f76eb64a7bb"
[[package]]
name = "cxxbridge-macro"
-version = "1.0.94"
+version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
+checksum = "4a076022ece33e7686fb76513518e219cca4fce5750a8ae6d1ce6c0f48fd1af9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -2262,7 +2268,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -2449,7 +2455,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -2460,7 +2466,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -2719,7 +2725,7 @@
"fs-err",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -2771,7 +2777,7 @@
[[package]]
name = "fc-consensus"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"async-trait",
"fc-db",
@@ -2788,7 +2794,7 @@
[[package]]
name = "fc-db"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"fp-storage",
"kvdb-rocksdb",
@@ -2807,7 +2813,7 @@
[[package]]
name = "fc-mapping-sync"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"fc-db",
"fc-storage",
@@ -2828,7 +2834,7 @@
[[package]]
name = "fc-rpc"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2877,7 +2883,7 @@
[[package]]
name = "fc-rpc-core"
version = "1.1.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"ethereum",
"ethereum-types",
@@ -2890,7 +2896,7 @@
[[package]]
name = "fc-storage"
version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"ethereum",
"ethereum-types",
@@ -3025,16 +3031,16 @@
[[package]]
name = "fork-tree"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
]
[[package]]
name = "form_urlencoded"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
dependencies = [
"percent-encoding",
]
@@ -3042,7 +3048,7 @@
[[package]]
name = "fp-account"
version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"hex",
"impl-serde",
@@ -3060,7 +3066,7 @@
[[package]]
name = "fp-consensus"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"ethereum",
"parity-scale-codec",
@@ -3072,7 +3078,7 @@
[[package]]
name = "fp-ethereum"
version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"ethereum",
"ethereum-types",
@@ -3086,7 +3092,7 @@
[[package]]
name = "fp-evm"
version = "3.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"evm",
"frame-support",
@@ -3102,7 +3108,7 @@
[[package]]
name = "fp-rpc"
version = "3.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"ethereum",
"ethereum-types",
@@ -3119,7 +3125,7 @@
[[package]]
name = "fp-self-contained"
version = "1.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -3131,7 +3137,7 @@
[[package]]
name = "fp-storage"
version = "2.0.0"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"parity-scale-codec",
"serde",
@@ -3146,7 +3152,7 @@
[[package]]
name = "frame-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-support-procedural",
@@ -3171,7 +3177,7 @@
[[package]]
name = "frame-benchmarking-cli"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"Inflector",
"array-bytes 4.2.0",
@@ -3218,18 +3224,18 @@
[[package]]
name = "frame-election-provider-solution-type"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "frame-election-provider-support"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-election-provider-solution-type",
"frame-support",
@@ -3246,7 +3252,7 @@
[[package]]
name = "frame-executive"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -3275,7 +3281,7 @@
[[package]]
name = "frame-remote-externalities"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-recursion",
"futures",
@@ -3293,7 +3299,7 @@
[[package]]
name = "frame-support"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"bitflags",
"environmental",
@@ -3326,7 +3332,7 @@
[[package]]
name = "frame-support-procedural"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"Inflector",
"cfg-expr",
@@ -3336,35 +3342,35 @@
"proc-macro-warning",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "frame-support-procedural-tools"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "frame-support-procedural-tools-derive"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "frame-system"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"log",
@@ -3382,7 +3388,7 @@
[[package]]
name = "frame-system-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -3397,7 +3403,7 @@
[[package]]
name = "frame-system-rpc-runtime-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -3406,7 +3412,7 @@
[[package]]
name = "frame-try-runtime"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -3433,9 +3439,9 @@
[[package]]
name = "fs4"
-version = "0.6.4"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7f5b6908aecca5812a4569056285e58c666588c9573ee59765bf1d3692699e2"
+checksum = "7672706608ecb74ab2e055c68327ffc25ae4cac1e12349204fd5fb0f3487cce2"
dependencies = [
"rustix 0.37.19",
"windows-sys 0.48.0",
@@ -3519,7 +3525,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -4010,9 +4016,9 @@
[[package]]
name = "idna"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
dependencies = [
"unicode-bidi",
"unicode-normalization",
@@ -4150,9 +4156,9 @@
[[package]]
name = "io-lifetimes"
-version = "1.0.10"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
dependencies = [
"hermit-abi 0.3.1",
"libc",
@@ -4553,9 +4559,9 @@
[[package]]
name = "libc"
-version = "0.2.144"
+version = "0.2.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
+checksum = "fc86cde3ff845662b8f4ef6cb50ea0e20c524eb3d29ae048287e06a1b3fa6a81"
[[package]]
name = "libloading"
@@ -5163,12 +5169,9 @@
[[package]]
name = "log"
-version = "0.4.17"
+version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de"
[[package]]
name = "lru"
@@ -5372,20 +5375,19 @@
[[package]]
name = "mio"
-version = "0.8.6"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
dependencies = [
"libc",
- "log",
"wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
]
[[package]]
name = "mmr-gadget"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"log",
@@ -5404,7 +5406,7 @@
[[package]]
name = "mmr-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"anyhow",
"jsonrpsee",
@@ -5829,9 +5831,9 @@
[[package]]
name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
[[package]]
name = "opal-runtime"
@@ -6151,7 +6153,7 @@
[[package]]
name = "pallet-aura"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -6167,7 +6169,7 @@
[[package]]
name = "pallet-authority-discovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -6183,7 +6185,7 @@
[[package]]
name = "pallet-authorship"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -6197,7 +6199,7 @@
[[package]]
name = "pallet-babe"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6221,7 +6223,7 @@
[[package]]
name = "pallet-bags-list"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6241,7 +6243,7 @@
[[package]]
name = "pallet-balances"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6277,7 +6279,7 @@
[[package]]
name = "pallet-base-fee"
version = "1.0.0"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"fp-evm",
"frame-support",
@@ -6291,7 +6293,7 @@
[[package]]
name = "pallet-beefy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -6310,7 +6312,7 @@
[[package]]
name = "pallet-beefy-mmr"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"binary-merkle-tree",
@@ -6334,7 +6336,7 @@
[[package]]
name = "pallet-bounties"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6352,7 +6354,7 @@
[[package]]
name = "pallet-child-bounties"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6398,7 +6400,7 @@
[[package]]
name = "pallet-collective"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6452,7 +6454,7 @@
[[package]]
name = "pallet-conviction-voting"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -6469,7 +6471,7 @@
[[package]]
name = "pallet-democracy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6487,7 +6489,7 @@
[[package]]
name = "pallet-election-provider-multi-phase"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6510,7 +6512,7 @@
[[package]]
name = "pallet-election-provider-support-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6523,7 +6525,7 @@
[[package]]
name = "pallet-elections-phragmen"
version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6541,7 +6543,7 @@
[[package]]
name = "pallet-ethereum"
version = "4.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"ethereum",
"ethereum-types",
@@ -6564,7 +6566,7 @@
[[package]]
name = "pallet-evm"
version = "6.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"environmental",
"evm",
@@ -6643,7 +6645,7 @@
[[package]]
name = "pallet-evm-precompile-simple"
version = "2.0.0-dev"
-source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#75ad5b9a49e1942553c4068228f1546ffb1f7246"
+source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.42#4f7a610defd7623aa147d83c83cbc42f907ce8bb"
dependencies = [
"fp-evm",
"ripemd",
@@ -6669,7 +6671,7 @@
[[package]]
name = "pallet-fast-unstake"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6729,7 +6731,7 @@
[[package]]
name = "pallet-grandpa"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6769,7 +6771,7 @@
[[package]]
name = "pallet-identity"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -6785,7 +6787,7 @@
[[package]]
name = "pallet-im-online"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6805,7 +6807,7 @@
[[package]]
name = "pallet-indices"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6851,7 +6853,7 @@
[[package]]
name = "pallet-membership"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6868,7 +6870,7 @@
[[package]]
name = "pallet-mmr"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6885,7 +6887,7 @@
[[package]]
name = "pallet-multisig"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6901,7 +6903,7 @@
[[package]]
name = "pallet-nis"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6917,7 +6919,7 @@
[[package]]
name = "pallet-nomination-pools"
version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -6934,7 +6936,7 @@
[[package]]
name = "pallet-nomination-pools-benchmarking"
version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -6954,7 +6956,7 @@
[[package]]
name = "pallet-nomination-pools-runtime-api"
version = "1.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"pallet-nomination-pools",
"parity-scale-codec",
@@ -6986,7 +6988,7 @@
[[package]]
name = "pallet-offences"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -7003,7 +7005,7 @@
[[package]]
name = "pallet-offences-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -7027,7 +7029,7 @@
[[package]]
name = "pallet-preimage"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7044,7 +7046,7 @@
[[package]]
name = "pallet-proxy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7059,7 +7061,7 @@
[[package]]
name = "pallet-ranked-collective"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7077,7 +7079,7 @@
[[package]]
name = "pallet-recovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7092,7 +7094,7 @@
[[package]]
name = "pallet-referenda"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -7131,7 +7133,7 @@
[[package]]
name = "pallet-scheduler"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7148,7 +7150,7 @@
[[package]]
name = "pallet-session"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -7169,7 +7171,7 @@
[[package]]
name = "pallet-session-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7185,7 +7187,7 @@
[[package]]
name = "pallet-society"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -7199,7 +7201,7 @@
[[package]]
name = "pallet-staking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -7222,18 +7224,18 @@
[[package]]
name = "pallet-staking-reward-curve"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "pallet-staking-reward-fn"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"log",
"sp-arithmetic",
@@ -7242,7 +7244,7 @@
[[package]]
name = "pallet-staking-runtime-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -7251,7 +7253,7 @@
[[package]]
name = "pallet-state-trie-migration"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7284,7 +7286,7 @@
[[package]]
name = "pallet-sudo"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -7330,7 +7332,7 @@
[[package]]
name = "pallet-timestamp"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7348,7 +7350,7 @@
[[package]]
name = "pallet-tips"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7367,7 +7369,7 @@
[[package]]
name = "pallet-transaction-payment"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-support",
"frame-system",
@@ -7383,7 +7385,7 @@
[[package]]
name = "pallet-transaction-payment-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"jsonrpsee",
"pallet-transaction-payment-rpc-runtime-api",
@@ -7399,7 +7401,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.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"pallet-transaction-payment",
"parity-scale-codec",
@@ -7411,7 +7413,7 @@
[[package]]
name = "pallet-treasury"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7470,7 +7472,7 @@
[[package]]
name = "pallet-utility"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7486,7 +7488,7 @@
[[package]]
name = "pallet-vesting"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7501,7 +7503,7 @@
[[package]]
name = "pallet-whitelist"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7728,9 +7730,9 @@
[[package]]
name = "percent-encoding"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
[[package]]
name = "pest"
@@ -7762,7 +7764,7 @@
"pest_meta",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -7803,7 +7805,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -9211,14 +9213,14 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "proc-macro2"
-version = "1.0.58"
+version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8"
+checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b"
dependencies = [
"unicode-ident",
]
@@ -9483,9 +9485,9 @@
[[package]]
name = "quote"
-version = "1.0.27"
+version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
+checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
dependencies = [
"proc-macro2",
]
@@ -9688,7 +9690,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -9705,13 +9707,13 @@
[[package]]
name = "regex"
-version = "1.8.1"
+version = "1.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
+checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
dependencies = [
- "aho-corasick 1.0.1",
+ "aho-corasick 1.0.2",
"memchr",
- "regex-syntax 0.7.1",
+ "regex-syntax 0.7.2",
]
[[package]]
@@ -9731,9 +9733,9 @@
[[package]]
name = "regex-syntax"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
+checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
[[package]]
name = "region"
@@ -10102,7 +10104,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
dependencies = [
- "base64 0.21.1",
+ "base64 0.21.2",
]
[[package]]
@@ -10149,7 +10151,7 @@
[[package]]
name = "sc-allocator"
version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"log",
"sp-core",
@@ -10160,7 +10162,7 @@
[[package]]
name = "sc-authority-discovery"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"futures",
@@ -10188,7 +10190,7 @@
[[package]]
name = "sc-basic-authorship"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"futures-timer",
@@ -10211,7 +10213,7 @@
[[package]]
name = "sc-block-builder"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"sc-client-api",
@@ -10226,7 +10228,7 @@
[[package]]
name = "sc-chain-spec"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"memmap2",
"sc-chain-spec-derive",
@@ -10245,18 +10247,18 @@
[[package]]
name = "sc-chain-spec-derive"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sc-cli"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"chrono",
@@ -10296,7 +10298,7 @@
[[package]]
name = "sc-client-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"fnv",
"futures",
@@ -10322,7 +10324,7 @@
[[package]]
name = "sc-client-db"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"hash-db 0.16.0",
"kvdb",
@@ -10348,7 +10350,7 @@
[[package]]
name = "sc-consensus"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"futures",
@@ -10373,7 +10375,7 @@
[[package]]
name = "sc-consensus-aura"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"futures",
@@ -10402,7 +10404,7 @@
[[package]]
name = "sc-consensus-babe"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"fork-tree",
@@ -10438,7 +10440,7 @@
[[package]]
name = "sc-consensus-babe-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"jsonrpsee",
@@ -10460,7 +10462,7 @@
[[package]]
name = "sc-consensus-beefy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"async-trait",
@@ -10495,7 +10497,7 @@
[[package]]
name = "sc-consensus-beefy-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"jsonrpsee",
@@ -10514,7 +10516,7 @@
[[package]]
name = "sc-consensus-epochs"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"fork-tree",
"parity-scale-codec",
@@ -10527,7 +10529,7 @@
[[package]]
name = "sc-consensus-grandpa"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"ahash 0.8.3",
"array-bytes 4.2.0",
@@ -10567,7 +10569,7 @@
[[package]]
name = "sc-consensus-grandpa-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"finality-grandpa",
"futures",
@@ -10587,7 +10589,7 @@
[[package]]
name = "sc-consensus-manual-seal"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"assert_matches",
"async-trait",
@@ -10621,7 +10623,7 @@
[[package]]
name = "sc-consensus-slots"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"futures",
@@ -10644,7 +10646,7 @@
[[package]]
name = "sc-executor"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"lru 0.8.1",
"parity-scale-codec",
@@ -10668,7 +10670,7 @@
[[package]]
name = "sc-executor-common"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"sc-allocator",
"sp-maybe-compressed-blob",
@@ -10681,7 +10683,7 @@
[[package]]
name = "sc-executor-wasmi"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"log",
"sc-allocator",
@@ -10694,7 +10696,7 @@
[[package]]
name = "sc-executor-wasmtime"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"anyhow",
"cfg-if",
@@ -10712,7 +10714,7 @@
[[package]]
name = "sc-informant"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"ansi_term",
"futures",
@@ -10728,7 +10730,7 @@
[[package]]
name = "sc-keystore"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"async-trait",
@@ -10743,7 +10745,7 @@
[[package]]
name = "sc-network"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"async-channel",
@@ -10788,7 +10790,7 @@
[[package]]
name = "sc-network-bitswap"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"cid",
"futures",
@@ -10808,7 +10810,7 @@
[[package]]
name = "sc-network-common"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"async-trait",
@@ -10836,7 +10838,7 @@
[[package]]
name = "sc-network-gossip"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"ahash 0.8.3",
"futures",
@@ -10855,7 +10857,7 @@
[[package]]
name = "sc-network-light"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"futures",
@@ -10877,7 +10879,7 @@
[[package]]
name = "sc-network-sync"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"async-trait",
@@ -10911,7 +10913,7 @@
[[package]]
name = "sc-network-transactions"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"futures",
@@ -10931,7 +10933,7 @@
[[package]]
name = "sc-offchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"bytes",
@@ -10962,7 +10964,7 @@
[[package]]
name = "sc-peerset"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"libp2p",
@@ -10975,7 +10977,7 @@
[[package]]
name = "sc-proposer-metrics"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -10984,7 +10986,7 @@
[[package]]
name = "sc-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"jsonrpsee",
@@ -11014,7 +11016,7 @@
[[package]]
name = "sc-rpc-api"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -11033,7 +11035,7 @@
[[package]]
name = "sc-rpc-server"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"http",
"jsonrpsee",
@@ -11048,7 +11050,7 @@
[[package]]
name = "sc-rpc-spec-v2"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"futures",
@@ -11074,7 +11076,7 @@
[[package]]
name = "sc-service"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"directories",
@@ -11140,7 +11142,7 @@
[[package]]
name = "sc-state-db"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"log",
"parity-scale-codec",
@@ -11151,7 +11153,7 @@
[[package]]
name = "sc-storage-monitor"
version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"clap",
"fs4",
@@ -11167,7 +11169,7 @@
[[package]]
name = "sc-sync-state-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -11186,7 +11188,7 @@
[[package]]
name = "sc-sysinfo"
version = "6.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"libc",
@@ -11205,7 +11207,7 @@
[[package]]
name = "sc-telemetry"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"chrono",
"futures",
@@ -11224,7 +11226,7 @@
[[package]]
name = "sc-tracing"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"ansi_term",
"atty",
@@ -11255,18 +11257,18 @@
[[package]]
name = "sc-tracing-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sc-transaction-pool"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"futures",
@@ -11293,7 +11295,7 @@
[[package]]
name = "sc-transaction-pool-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"futures",
@@ -11307,7 +11309,7 @@
[[package]]
name = "sc-utils"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-channel",
"futures",
@@ -11546,7 +11548,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -11816,7 +11818,7 @@
[[package]]
name = "sp-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"hash-db 0.16.0",
"log",
@@ -11836,7 +11838,7 @@
[[package]]
name = "sp-api-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"Inflector",
"blake2",
@@ -11844,13 +11846,13 @@
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-application-crypto"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -11863,7 +11865,7 @@
[[package]]
name = "sp-arithmetic"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"integer-sqrt",
"num-traits",
@@ -11877,7 +11879,7 @@
[[package]]
name = "sp-authority-discovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -11890,7 +11892,7 @@
[[package]]
name = "sp-block-builder"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -11902,7 +11904,7 @@
[[package]]
name = "sp-blockchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"log",
@@ -11920,7 +11922,7 @@
[[package]]
name = "sp-consensus"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"futures",
@@ -11935,7 +11937,7 @@
[[package]]
name = "sp-consensus-aura"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -11953,7 +11955,7 @@
[[package]]
name = "sp-consensus-babe"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -11974,7 +11976,7 @@
[[package]]
name = "sp-consensus-beefy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"lazy_static",
"parity-scale-codec",
@@ -11993,7 +11995,7 @@
[[package]]
name = "sp-consensus-grandpa"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"finality-grandpa",
"log",
@@ -12011,7 +12013,7 @@
[[package]]
name = "sp-consensus-slots"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -12023,7 +12025,7 @@
[[package]]
name = "sp-core"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"array-bytes 4.2.0",
"bitflags",
@@ -12067,7 +12069,7 @@
[[package]]
name = "sp-core-hashing"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"blake2b_simd",
"byteorder",
@@ -12081,18 +12083,18 @@
[[package]]
name = "sp-core-hashing-proc-macro"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"proc-macro2",
"quote",
"sp-core-hashing",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-database"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"kvdb",
"parking_lot 0.12.1",
@@ -12101,17 +12103,17 @@
[[package]]
name = "sp-debug-derive"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-externalities"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"environmental",
"parity-scale-codec",
@@ -12122,7 +12124,7 @@
[[package]]
name = "sp-inherents"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"impl-trait-for-tuples",
@@ -12137,7 +12139,7 @@
[[package]]
name = "sp-io"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"bytes",
"ed25519",
@@ -12163,7 +12165,7 @@
[[package]]
name = "sp-keyring"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"lazy_static",
"sp-core",
@@ -12174,7 +12176,7 @@
[[package]]
name = "sp-keystore"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"parity-scale-codec",
@@ -12188,7 +12190,7 @@
[[package]]
name = "sp-maybe-compressed-blob"
version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"thiserror",
"zstd 0.12.3+zstd.1.5.2",
@@ -12197,7 +12199,7 @@
[[package]]
name = "sp-metadata-ir"
version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-metadata",
"parity-scale-codec",
@@ -12208,7 +12210,7 @@
[[package]]
name = "sp-mmr-primitives"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"ckb-merkle-mountain-range",
"log",
@@ -12226,7 +12228,7 @@
[[package]]
name = "sp-npos-elections"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -12240,7 +12242,7 @@
[[package]]
name = "sp-offchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"sp-api",
"sp-core",
@@ -12250,7 +12252,7 @@
[[package]]
name = "sp-panic-handler"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"backtrace",
"lazy_static",
@@ -12260,7 +12262,7 @@
[[package]]
name = "sp-rpc"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"rustc-hash",
"serde",
@@ -12270,7 +12272,7 @@
[[package]]
name = "sp-runtime"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"either",
"hash256-std-hasher",
@@ -12292,7 +12294,7 @@
[[package]]
name = "sp-runtime-interface"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"bytes",
"impl-trait-for-tuples",
@@ -12310,19 +12312,19 @@
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"Inflector",
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-session"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -12336,7 +12338,7 @@
[[package]]
name = "sp-staking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -12349,7 +12351,7 @@
[[package]]
name = "sp-state-machine"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"hash-db 0.16.0",
"log",
@@ -12369,12 +12371,12 @@
[[package]]
name = "sp-std"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
[[package]]
name = "sp-storage"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -12387,7 +12389,7 @@
[[package]]
name = "sp-timestamp"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"futures-timer",
@@ -12402,7 +12404,7 @@
[[package]]
name = "sp-tracing"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"sp-std",
@@ -12414,7 +12416,7 @@
[[package]]
name = "sp-transaction-pool"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"sp-api",
"sp-runtime",
@@ -12423,7 +12425,7 @@
[[package]]
name = "sp-transaction-storage-proof"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"log",
@@ -12439,7 +12441,7 @@
[[package]]
name = "sp-trie"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"ahash 0.8.3",
"hash-db 0.16.0",
@@ -12462,7 +12464,7 @@
[[package]]
name = "sp-version"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -12479,18 +12481,18 @@
[[package]]
name = "sp-version-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "sp-wasm-interface"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"anyhow",
"impl-trait-for-tuples",
@@ -12504,7 +12506,7 @@
[[package]]
name = "sp-weights"
version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -12524,7 +12526,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -12704,7 +12706,7 @@
[[package]]
name = "substrate-build-script-utils"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"platforms 2.0.0",
]
@@ -12712,7 +12714,7 @@
[[package]]
name = "substrate-frame-rpc-system"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"frame-system-rpc-runtime-api",
"futures",
@@ -12731,7 +12733,7 @@
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"hyper",
"log",
@@ -12743,7 +12745,7 @@
[[package]]
name = "substrate-rpc-client"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"jsonrpsee",
@@ -12756,7 +12758,7 @@
[[package]]
name = "substrate-state-trie-migration-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"jsonrpsee",
"log",
@@ -12775,7 +12777,7 @@
[[package]]
name = "substrate-test-utils"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"futures",
"substrate-test-utils-derive",
@@ -12785,18 +12787,18 @@
[[package]]
name = "substrate-test-utils-derive"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
name = "substrate-wasm-builder"
version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"ansi_term",
"build-helper",
@@ -12838,9 +12840,9 @@
[[package]]
name = "syn"
-version = "2.0.16"
+version = "2.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
+checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
dependencies = [
"proc-macro2",
"quote",
@@ -12969,7 +12971,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -13124,9 +13126,9 @@
[[package]]
name = "tokio"
-version = "1.28.1"
+version = "1.28.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105"
+checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
dependencies = [
"autocfg",
"bytes",
@@ -13149,7 +13151,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -13222,9 +13224,9 @@
[[package]]
name = "toml_edit"
-version = "0.19.9"
+version = "0.19.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d964908cec0d030b812013af25a0e57fddfadb1e066ecc6681d86253129d4f"
+checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739"
dependencies = [
"indexmap",
"serde",
@@ -13295,7 +13297,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -13338,7 +13340,7 @@
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -13484,7 +13486,7 @@
[[package]]
name = "try-runtime-cli"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#3bb3882ce094ac211dea93fabfdcd4f902f5a7fd"
+source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#569aae5341ea0c1d10426fa1ec13a36c0b64393b"
dependencies = [
"async-trait",
"clap",
@@ -13621,9 +13623,9 @@
[[package]]
name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
[[package]]
name = "unicode-normalization"
@@ -13962,12 +13964,12 @@
[[package]]
name = "url"
-version = "2.3.1"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
dependencies = [
"form_urlencoded",
- "idna 0.3.0",
+ "idna 0.4.0",
"percent-encoding",
]
@@ -14084,7 +14086,7 @@
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
"wasm-bindgen-shared",
]
@@ -14118,7 +14120,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -15179,7 +15181,7 @@
"Inflector",
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
@@ -15222,7 +15224,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.16",
+ "syn 2.0.18",
]
[[package]]
tests/src/eth/collectionSponsoring.test.tsdiffbeforeafterboth1// 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/>.1617import {IKeyringPair} from '@polkadot/types/types';18import {Pallets, requirePalletsOrSkip, usingPlaygrounds} from '../util/index';19import {itEth, expect} from './util';2021describe('evm nft collection sponsoring', () => {22 let donor: IKeyringPair;23 let alice: IKeyringPair;24 let nominal: bigint;2526 before(async () => {27 await usingPlaygrounds(async (helper, privateKey) => {28 donor = await privateKey({url: import.meta.url});29 [alice] = await helper.arrange.createAccounts([100n], donor);30 nominal = helper.balance.getOneTokenNominal();31 });32 });3334 // TODO: move to substrate tests35 itEth('sponsors mint transactions', async ({helper}) => {36 const collection = await helper.nft.mintCollection(alice, {tokenPrefix: 'spnr', permissions: {mintMode: true}});37 await collection.setSponsor(alice, alice.address);38 await collection.confirmSponsorship(alice);3940 const minter = helper.eth.createAccount();41 expect(await helper.balance.getEthereum(minter)).to.equal(0n);4243 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);44 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', minter);4546 await collection.addToAllowList(alice, {Ethereum: minter});4748 const result = await contract.methods.mint(minter).send();4950 const events = helper.eth.normalizeEvents(result.events);51 expect(events).to.be.deep.equal([52 {53 address: collectionAddress,54 event: 'Transfer',55 args: {56 from: '0x0000000000000000000000000000000000000000',57 to: minter,58 tokenId: '1',59 },60 },61 ]);62 });6364 // TODO: Temprorary off. Need refactor65 // itWeb3('Set substrate sponsor', async ({api, web3, privateKeyWrapper}) => {66 // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);67 // const collectionHelpers = evmCollectionHelpers(web3, owner);68 // let result = await collectionHelpers.methods.createNFTCollection('Sponsor collection', '1', '1').send();69 // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);70 // const sponsor = privateKeyWrapper('//Alice');71 // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);7273 // expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;74 // result = await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});75 // expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;7677 // const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);78 // await submitTransactionAsync(sponsor, confirmTx);79 // expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;8081 // const sponsorTuple = await collectionEvm.methods.collectionSponsor().call({from: owner});82 // expect(bigIntToSub(api, BigInt(sponsorTuple[1]))).to.be.eq(sponsor.address);83 // });8485 [86 'setCollectionSponsorCross',87 'setCollectionSponsor', // Soft-deprecated88 ].map(testCase =>89 itEth(`[${testCase}] can remove collection sponsor`, async ({helper}) => {90 const owner = await helper.eth.createAccountWithBalance(donor);91 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);9293 let result = await collectionHelpers.methods.createNFTCollection('Sponsor collection', '1', '1').send({value: Number(2n * nominal)});94 const collectionIdAddress = helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);95 const sponsor = await helper.eth.createAccountWithBalance(donor);96 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);97 const collectionEvm = await helper.ethNativeContract.collection(collectionIdAddress, 'nft', owner, testCase === 'setCollectionSponsor');9899 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;100 result = await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send({from: owner});101 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;102103 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});104 let sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});105 expect(helper.address.restoreCrossAccountFromBigInt(BigInt(sponsorStruct.sub))).to.be.eq(helper.address.ethToSubstrate(sponsor, true));106 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;107108 await collectionEvm.methods.removeCollectionSponsor().send({from: owner});109110 sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});111 expect(sponsorStruct.eth).to.be.eq('0x0000000000000000000000000000000000000000');112 }));113114 [115 'setCollectionSponsorCross',116 'setCollectionSponsor', // Soft-deprecated117 ].map(testCase =>118 itEth(`[${testCase}] Can sponsor from evm address via access list`, async ({helper}) => {119 const owner = await helper.eth.createAccountWithBalance(donor);120 const sponsorEth = await helper.eth.createAccountWithBalance(donor);121 const sponsorCrossEth = helper.ethCrossAccount.fromAddress(sponsorEth);122123 const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Sponsor collection', '1', '1', '');124125 const collectionSub = helper.nft.getCollectionObject(collectionId);126 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, testCase === 'setCollectionSponsor');127128 // Set collection sponsor:129 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsorEth : sponsorCrossEth).send({from: owner});130 let sponsorship = (await collectionSub.getData())!.raw.sponsorship;131 expect(sponsorship.Unconfirmed).to.be.eq(helper.address.ethToSubstrate(sponsorEth, true));132 // Account cannot confirm sponsorship if it is not set as a sponsor133 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');134135 // Sponsor can confirm sponsorship:136 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsorEth});137 sponsorship = (await collectionSub.getData())!.raw.sponsorship;138 expect(sponsorship.Confirmed).to.be.eq(helper.address.ethToSubstrate(sponsorEth, true));139140 // Create user with no balance:141 const user = helper.eth.createAccount();142 const userCross = helper.ethCrossAccount.fromAddress(user);143 const nextTokenId = await collectionEvm.methods.nextTokenId().call();144 expect(nextTokenId).to.be.equal('1');145146 // Set collection permissions:147 const oldPermissions = (await collectionSub.getData())!.raw.permissions;148 expect(oldPermissions.mintMode).to.be.false;149 expect(oldPermissions.access).to.be.equal('Normal');150151 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});152 await collectionEvm.methods.addToCollectionAllowListCross(userCross).send({from: owner});153 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});154155 const newPermissions = (await collectionSub.getData())!.raw.permissions;156 expect(newPermissions.mintMode).to.be.true;157 expect(newPermissions.access).to.be.equal('AllowList');158159 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));160 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsorEth));161 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));162163 // User can mint token without balance:164 {165 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});166 const event = helper.eth.normalizeEvents(result.events)167 .find(event => event.event === 'Transfer');168169 expect(event).to.be.deep.equal({170 address: collectionAddress,171 event: 'Transfer',172 args: {173 from: '0x0000000000000000000000000000000000000000',174 to: user,175 tokenId: '1',176 },177 });178179 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));180 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsorEth));181 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));182183 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');184 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);185 expect(userBalanceAfter).to.be.eq(userBalanceBefore);186 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;187 }188 }));189190 // TODO: Temprorary off. Need refactor191 // itWeb3('Sponsoring collection from substrate address via access list', async ({api, web3, privateKeyWrapper}) => {192 // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);193 // const collectionHelpers = evmCollectionHelpers(web3, owner);194 // const result = await collectionHelpers.methods.createERC721MetadataCompatibleNFTCollection('Sponsor collection', '1', '1', '').send();195 // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);196 // const sponsor = privateKeyWrapper('//Alice');197 // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);198199 // await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});200201 // const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);202 // await submitTransactionAsync(sponsor, confirmTx);203204 // const user = createEthAccount(web3);205 // const nextTokenId = await collectionEvm.methods.nextTokenId().call();206 // expect(nextTokenId).to.be.equal('1');207208 // await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});209 // await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});210 // await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});211212 // const ownerBalanceBefore = await ethBalanceViaSub(api, owner);213 // const sponsorBalanceBefore = (await getBalance(api, [sponsor.address]))[0];214215 // {216 // const nextTokenId = await collectionEvm.methods.nextTokenId().call();217 // expect(nextTokenId).to.be.equal('1');218 // const result = await collectionEvm.methods.mintWithTokenURI(219 // user,220 // nextTokenId,221 // 'Test URI',222 // ).send({from: user});223 // const events = normalizeEvents(result.events);224225 // expect(events).to.be.deep.equal([226 // {227 // address: collectionIdAddress,228 // event: 'Transfer',229 // args: {230 // from: '0x0000000000000000000000000000000000000000',231 // to: user,232 // tokenId: nextTokenId,233 // },234 // },235 // ]);236237 // const ownerBalanceAfter = await ethBalanceViaSub(api, owner);238 // const sponsorBalanceAfter = (await getBalance(api, [sponsor.address]))[0];239240 // expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');241 // expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);242 // expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;243 // }244 // });245246 [247 'setCollectionSponsorCross',248 'setCollectionSponsor', // Soft-deprecated249 ].map(testCase =>250 itEth(`[${testCase}] Check that transaction via EVM spend money from sponsor address`, async ({helper}) => {251 const owner = await helper.eth.createAccountWithBalance(donor);252 const sponsor = await helper.eth.createAccountWithBalance(donor);253 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);254255 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner,'Sponsor collection', '1', '1', '');256257 const collectionSub = helper.nft.getCollectionObject(collectionId);258 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, testCase === 'setCollectionSponsor');259 // Set collection sponsor:260 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send();261 let collectionData = (await collectionSub.getData())!;262 expect(collectionData.raw.sponsorship.Unconfirmed).to.be.eq(helper.address.ethToSubstrate(sponsor, true));263 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');264265 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});266 collectionData = (await collectionSub.getData())!;267 expect(collectionData.raw.sponsorship.Confirmed).to.be.eq(helper.address.ethToSubstrate(sponsor, true));268269 const user = helper.eth.createAccount();270 const userCross = helper.ethCrossAccount.fromAddress(user);271 await collectionEvm.methods.addCollectionAdminCross(userCross).send();272273 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));274 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));275276 const mintingResult = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});277 const tokenId = mintingResult.events.Transfer.returnValues.tokenId;278279 const event = helper.eth.normalizeEvents(mintingResult.events)280 .find(event => event.event === 'Transfer');281 const address = helper.ethAddress.fromCollectionId(collectionId);282283 expect(event).to.be.deep.equal({284 address,285 event: 'Transfer',286 args: {287 from: '0x0000000000000000000000000000000000000000',288 to: user,289 tokenId: '1',290 },291 });292 expect(await collectionEvm.methods.tokenURI(tokenId).call({from: user})).to.be.equal('Test URI');293294 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));295 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);296 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));297 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;298 }));299300 itEth('Can reassign collection sponsor', async ({helper}) => {301 const owner = await helper.eth.createAccountWithBalance(donor);302 const sponsorEth = await helper.eth.createAccountWithBalance(donor);303 const sponsorCrossEth = helper.ethCrossAccount.fromAddress(sponsorEth);304 const [sponsorSub] = await helper.arrange.createAccounts([100n], donor);305 const sponsorCrossSub = helper.ethCrossAccount.fromKeyringPair(sponsorSub);306307 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner,'Sponsor collection', '1', '1', '');308 const collectionSub = helper.nft.getCollectionObject(collectionId);309 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);310311 // Set and confirm sponsor:312 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossEth).send({from: owner});313 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsorEth});314315 // Can reassign sponsor:316 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossSub).send({from: owner});317 const collectionSponsor = (await collectionSub.getData())?.raw.sponsorship;318 expect(collectionSponsor).to.deep.eq({Unconfirmed: sponsorSub.address});319 });320});321322describe('evm RFT collection sponsoring', () => {323 let donor: IKeyringPair;324 let alice: IKeyringPair;325 let nominal: bigint;326327 before(async function() {328 await usingPlaygrounds(async (helper, privateKey) => {329 requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);330 donor = await privateKey({url: import.meta.url});331 [alice] = await helper.arrange.createAccounts([100n], donor);332 nominal = helper.balance.getOneTokenNominal();333 });334 });335336 [337 'mintCross',338 'mintWithTokenURI',339 ].map(testCase =>340 itEth(`[${testCase}] sponsors mint transactions`, async ({helper}) => {341 const collection = await helper.rft.mintCollection(alice, {tokenPrefix: 'spnr', permissions: {mintMode: true}, tokenPropertyPermissions: [342 {key: 'URI', permission: {tokenOwner: true, mutable: true, collectionAdmin: true}},343 ]});344345 const owner = await helper.eth.createAccountWithBalance(donor);346 await collection.setSponsor(alice, alice.address);347 await collection.confirmSponsorship(alice);348349 const minter = helper.eth.createAccount();350 const minterCross = helper.ethCrossAccount.fromAddress(minter);351 expect(await helper.balance.getEthereum(minter)).to.equal(0n);352353 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);354 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', minter, true);355356 await collection.addToAllowList(alice, {Ethereum: minter});357 await collection.addAdmin(alice, {Ethereum: owner});358 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);359 await collectionHelpers.methods.makeCollectionERC721MetadataCompatible(collectionAddress, 'base/')360 .send();361362 let mintingResult;363 let tokenId;364 switch (testCase) {365 case 'mintCross':366 mintingResult = await contract.methods.mintCross(minterCross, []).send();367 break;368 case 'mintWithTokenURI':369 mintingResult = await contract.methods.mintWithTokenURI(minter, 'Test URI').send();370 tokenId = mintingResult.events.Transfer.returnValues.tokenId;371 expect(await contract.methods.tokenURI(tokenId).call()).to.be.equal('Test URI');372 break;373 }374375 const events = helper.eth.normalizeEvents(mintingResult.events);376 expect(events).to.deep.include({377 address: collectionAddress,378 event: 'Transfer',379 args: {380 from: '0x0000000000000000000000000000000000000000',381 to: minter,382 tokenId: '1',383 },384 });385 }));386387 [388 'setCollectionSponsorCross',389 'setCollectionSponsor', // Soft-deprecated390 ].map(testCase =>391 itEth(`[${testCase}] can remove collection sponsor`, async ({helper}) => {392 const owner = await helper.eth.createAccountWithBalance(donor);393 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);394395 let result = await collectionHelpers.methods.createRFTCollection('Sponsor collection', '1', '1').send({value: Number(2n * nominal)});396 const collectionIdAddress = helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);397 const sponsor = await helper.eth.createAccountWithBalance(donor);398 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);399 const collectionEvm = await helper.ethNativeContract.collection(collectionIdAddress, 'rft', owner, testCase === 'setCollectionSponsor');400401 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;402 result = await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send({from: owner});403 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;404405 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});406 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;407408 await collectionEvm.methods.removeCollectionSponsor().send({from: owner});409410 const sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});411 expect(sponsorStruct.eth).to.be.eq('0x0000000000000000000000000000000000000000');412 }));413414 [415 'setCollectionSponsorCross',416 'setCollectionSponsor', // Soft-deprecated417 ].map(testCase =>418 itEth(`[${testCase}] Can sponsor from evm address via access list`, async ({helper}) => {419 const owner = await helper.eth.createAccountWithBalance(donor);420 const sponsorEth = await helper.eth.createAccountWithBalance(donor);421 const sponsorCrossEth = helper.ethCrossAccount.fromAddress(sponsorEth);422423 const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, 'Sponsor collection', '1', '1', '');424425 const collectionSub = helper.rft.getCollectionObject(collectionId);426 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner, testCase === 'setCollectionSponsor');427428 // Set collection sponsor:429 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsorEth : sponsorCrossEth).send({from: owner});430 let sponsorship = (await collectionSub.getData())!.raw.sponsorship;431 expect(sponsorship.Unconfirmed).to.be.eq(helper.address.ethToSubstrate(sponsorEth, true));432 // Account cannot confirm sponsorship if it is not set as a sponsor433 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');434435 // Sponsor can confirm sponsorship:436 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsorEth});437 sponsorship = (await collectionSub.getData())!.raw.sponsorship;438 expect(sponsorship.Confirmed).to.be.eq(helper.address.ethToSubstrate(sponsorEth, true));439440 // Create user with no balance:441 const user = helper.eth.createAccount();442 const userCross = helper.ethCrossAccount.fromAddress(user);443 const nextTokenId = await collectionEvm.methods.nextTokenId().call();444 expect(nextTokenId).to.be.equal('1');445446 // Set collection permissions:447 const oldPermissions = (await collectionSub.getData())!.raw.permissions;448 expect(oldPermissions.mintMode).to.be.false;449 expect(oldPermissions.access).to.be.equal('Normal');450451 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});452 await collectionEvm.methods.addToCollectionAllowListCross(userCross).send({from: owner});453 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});454455 const newPermissions = (await collectionSub.getData())!.raw.permissions;456 expect(newPermissions.mintMode).to.be.true;457 expect(newPermissions.access).to.be.equal('AllowList');458459 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));460 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsorEth));461 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));462463 // User can mint token without balance:464 {465 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});466 const events = helper.eth.normalizeEvents(result.events);467468 expect(events).to.deep.include({469 address: collectionAddress,470 event: 'Transfer',471 args: {472 from: '0x0000000000000000000000000000000000000000',473 to: user,474 tokenId: '1',475 },476 });477478 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));479 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsorEth));480 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));481482 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');483 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);484 expect(userBalanceAfter).to.be.eq(userBalanceBefore);485 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;486 }487 }));488489 [490 'setCollectionSponsorCross',491 'setCollectionSponsor', // Soft-deprecated492 ].map(testCase =>493 itEth(`[${testCase}] Check that collection admin EVM transaction spend money from sponsor eth address`, async ({helper}) => {494 const owner = await helper.eth.createAccountWithBalance(donor);495 const sponsor = await helper.eth.createAccountWithBalance(donor);496 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);497498 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');499500 const collectionSub = helper.rft.getCollectionObject(collectionId);501 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner, testCase === 'setCollectionSponsor');502 // Set collection sponsor:503 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.false;504 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send();505 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.true;506 let collectionData = (await collectionSub.getData())!;507 expect(collectionData.raw.sponsorship.Unconfirmed).to.be.eq(helper.address.ethToSubstrate(sponsor, true));508 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');509 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.true;510511 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});512 collectionData = (await collectionSub.getData())!;513 expect(collectionData.raw.sponsorship.Confirmed).to.be.eq(helper.address.ethToSubstrate(sponsor, true));514 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.false;515 const sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});516 const sponsorSubAddress = helper.address.normalizeSubstrateToChainFormat(helper.address.ethToSubstrate(sponsor));517 const actualSubAddress = helper.address.normalizeSubstrateToChainFormat(helper.address.restoreCrossAccountFromBigInt(BigInt(sponsorStruct.sub)));518 expect(actualSubAddress).to.be.equal(sponsorSubAddress);519520 const user = helper.eth.createAccount();521 const userCross = helper.ethCrossAccount.fromAddress(user);522 await collectionEvm.methods.addCollectionAdminCross(userCross).send();523524 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));525 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));526527 const mintingResult = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});528 const tokenId = mintingResult.events.Transfer.returnValues.tokenId;529530 const events = helper.eth.normalizeEvents(mintingResult.events);531 const address = helper.ethAddress.fromCollectionId(collectionId);532533 expect(events).to.deep.include({534 address,535 event: 'Transfer',536 args: {537 from: '0x0000000000000000000000000000000000000000',538 to: user,539 tokenId: '1',540 },541 });542 expect(await collectionEvm.methods.tokenURI(tokenId).call({from: user})).to.be.equal('Test URI');543544 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));545 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);546 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));547 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;548 }));549550 itEth('Check that collection admin EVM transaction spend money from sponsor sub address', async ({helper}) => {551 const owner = await helper.eth.createAccountWithBalance(donor);552 const sponsor = alice;553 const sponsorCross = helper.ethCrossAccount.fromKeyringPair(sponsor);554555 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');556557 const collectionSub = helper.rft.getCollectionObject(collectionId);558 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner, false);559 // Set collection sponsor:560 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.false;561 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send();562 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.true;563 let collectionData = (await collectionSub.getData())!;564 expect(collectionData.raw.sponsorship.Unconfirmed).to.be.eq(sponsor.address);565 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');566567 await collectionSub.confirmSponsorship(sponsor);568 collectionData = (await collectionSub.getData())!;569 expect(collectionData.raw.sponsorship.Confirmed).to.be.eq(sponsor.address);570 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.false;571 const sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});572 expect(BigInt(sponsorStruct.sub)).to.be.equal(BigInt('0x' + Buffer.from(sponsor.addressRaw).toString('hex')));573574 const user = helper.eth.createAccount();575 const userCross = helper.ethCrossAccount.fromAddress(user);576 await collectionEvm.methods.addCollectionAdminCross(userCross).send();577578 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));579 const sponsorBalanceBefore = await helper.balance.getSubstrate(sponsor.address);580581 const mintingResult = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});582 const tokenId = mintingResult.events.Transfer.returnValues.tokenId;583584 const events = helper.eth.normalizeEvents(mintingResult.events);585586 expect(events).to.deep.include({587 address: collectionAddress,588 event: 'Transfer',589 args: {590 from: '0x0000000000000000000000000000000000000000',591 to: user,592 tokenId: '1',593 },594 });595 // FIXME: doesn't work596 expect(await collectionEvm.methods.tokenURI(tokenId).call({from: user})).to.be.equal('Test URI');597598 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));599 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);600 const sponsorBalanceAfter = await helper.balance.getSubstrate(sponsor.address);601 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;602 });603604 itEth('Sponsoring collection from substrate address via access list', async ({helper}) => {605 const owner = await helper.eth.createAccountWithBalance(donor);606 const user = helper.eth.createAccount();607 const userCross = helper.ethCrossAccount.fromAddress(user);608 const sponsor = alice;609 const sponsorCross = helper.ethCrossAccount.fromKeyringPair(sponsor);610611 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');612 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner, false);613614 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send({from: owner});615616 const collectionSub = helper.rft.getCollectionObject(collectionId);617 await collectionSub.confirmSponsorship(sponsor);618619 const nextTokenId = await collectionEvm.methods.nextTokenId().call();620 expect(nextTokenId).to.be.equal('1');621622 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});623624 await collectionEvm.methods.addToCollectionAllowListCross(userCross).send({from: owner});625 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});626627 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));628 const sponsorBalanceBefore = await helper.balance.getSubstrate(sponsor.address);629 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));630631 {632 const nextTokenId = await collectionEvm.methods.nextTokenId().call();633 expect(nextTokenId).to.be.equal('1');634 const mintingResult = await collectionEvm.methods.mintWithTokenURI(635 user,636 'Test URI',637 ).send({from: user});638639 const events = helper.eth.normalizeEvents(mintingResult.events);640641642 expect(events).to.deep.include({643 address: collectionAddress,644 event: 'Transfer',645 args: {646 from: '0x0000000000000000000000000000000000000000',647 to: user,648 tokenId: nextTokenId,649 },650 });651652 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));653 const sponsorBalanceAfter = await helper.balance.getSubstrate(sponsor.address);654 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));655656 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');657 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);658 expect(userBalanceAfter).to.be.eq(userBalanceBefore);659 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;660 }661 });662663 itEth('Can reassign collection sponsor', async ({helper}) => {664 const owner = await helper.eth.createAccountWithBalance(donor);665 const sponsorEth = await helper.eth.createAccountWithBalance(donor);666 const sponsorCrossEth = helper.ethCrossAccount.fromAddress(sponsorEth);667 const [sponsorSub] = await helper.arrange.createAccounts([100n], donor);668 const sponsorCrossSub = helper.ethCrossAccount.fromKeyringPair(sponsorSub);669670 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');671 const collectionSub = helper.rft.getCollectionObject(collectionId);672 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);673674 // Set and confirm sponsor:675 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossEth).send({from: owner});676 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsorEth});677678 // Can reassign sponsor:679 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossSub).send({from: owner});680 const collectionSponsor = (await collectionSub.getData())?.raw.sponsorship;681 expect(collectionSponsor).to.deep.eq({Unconfirmed: sponsorSub.address});682 });683684 [685 'transfer',686 'transferCross',687 'transferFrom',688 'transferFromCross',689 ].map(testCase =>690 itEth(`[${testCase}] Check that transfer via EVM spend money from sponsor address`, async ({helper}) => {691 const owner = await helper.eth.createAccountWithBalance(donor);692693 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');694 const sponsor = await helper.eth.createAccountWithBalance(donor);695 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);696 const receiver = await helper.eth.createAccountWithBalance(donor);697 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);698699 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send();700 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});701702 const user = await helper.eth.createAccountWithBalance(donor);703 const userCross = helper.ethCrossAccount.fromAddress(user);704 await collectionEvm.methods.addCollectionAdminCross(userCross).send();705706 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});707 const tokenId = result.events.Transfer.returnValues.tokenId;708709 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));710 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));711 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));712713 switch (testCase) {714 case 'transfer':715 await collectionEvm.methods.transfer(receiver, tokenId).send({from: user});716 break;717 case 'transferCross':718 await collectionEvm.methods.transferCross(helper.ethCrossAccount.fromAddress(receiver), tokenId).send({from: user});719 break;720 case 'transferFrom':721 await collectionEvm.methods.transferFrom(user, receiver, tokenId).send({from: user});722 break;723 case 'transferFromCross':724 await collectionEvm.methods.transferFromCross(helper.ethCrossAccount.fromAddress(user), helper.ethCrossAccount.fromAddress(receiver), tokenId).send({from: user});725 break;726 }727728 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));729 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);730 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));731 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;732 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));733 expect(userBalanceAfter).to.be.eq(userBalanceBefore);734 }));735});736737describe('evm RFT token sponsoring', () => {738 let donor: IKeyringPair;739740 before(async function() {741 await usingPlaygrounds(async (helper, privateKey) => {742 requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);743 donor = await privateKey({url: import.meta.url});744 });745 });746747 [748 'transfer',749 'transferCross',750 'transferFrom',751 'transferFromCross',752 ].map(testCase =>753 itEth(`[${testCase}] Check that token piece transfer via EVM spend money from sponsor address`, async ({helper}) => {754 const owner = await helper.eth.createAccountWithBalance(donor);755756 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');757 const sponsor = await helper.eth.createAccountWithBalance(donor);758 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);759 const receiver = await helper.eth.createAccountWithBalance(donor);760 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);761762 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send();763 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});764765 const user = await helper.eth.createAccountWithBalance(donor);766 const userCross = helper.ethCrossAccount.fromAddress(user);767 await collectionEvm.methods.addCollectionAdminCross(userCross).send();768769 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});770 const tokenId = result.events.Transfer.returnValues.tokenId;771772 const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, user);773 await tokenContract.methods.repartition(2).send();774775 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));776 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));777 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));778779 switch (testCase) {780 case 'transfer':781 await tokenContract.methods.transfer(receiver, 1).send();782 break;783 case 'transferCross':784 await tokenContract.methods.transferCross(helper.ethCrossAccount.fromAddress(receiver), 1).send();785 break;786 case 'transferFrom':787 await tokenContract.methods.transferFrom(user, receiver, 1).send();788 break;789 case 'transferFromCross':790 await tokenContract.methods.transferFromCross(helper.ethCrossAccount.fromAddress(user), helper.ethCrossAccount.fromAddress(receiver), 1).send();791 break;792 }793794 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));795 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);796 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));797 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;798 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));799 expect(userBalanceAfter).to.be.eq(userBalanceBefore);800 }));801802 [803 'approve',804 'approveCross',805 ].map(testCase =>806 itEth(`[${testCase}] Check that approve via EVM spend money from sponsor address`, async ({helper}) => {807 const owner = await helper.eth.createAccountWithBalance(donor);808809 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');810 const sponsor = await helper.eth.createAccountWithBalance(donor);811 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);812 const receiver = await helper.eth.createAccountWithBalance(donor);813 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);814815 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send();816 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});817818 const user = await helper.eth.createAccountWithBalance(donor);819 const userCross = helper.ethCrossAccount.fromAddress(user);820 await collectionEvm.methods.addCollectionAdminCross(userCross).send();821822 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});823 const tokenId = result.events.Transfer.returnValues.tokenId;824825 const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, user);826 await tokenContract.methods.repartition(2).send();827828 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));829 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));830 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));831832 switch (testCase) {833 case 'approve':834 await tokenContract.methods.approve(receiver, 1).send();835 break;836 case 'approveCross':837 await tokenContract.methods.approveCross(helper.ethCrossAccount.fromAddress(receiver), 1).send();838 break;839 }840841 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));842 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);843 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));844 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;845 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));846 expect(userBalanceAfter).to.be.eq(userBalanceBefore);847 }));848});8491// 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/>.1617import {IKeyringPair} from '@polkadot/types/types';18import {Pallets, requirePalletsOrSkip, usingPlaygrounds} from '../util/index';19import {itEth, expect} from './util';2021describe('evm nft collection sponsoring', () => {22 let donor: IKeyringPair;23 let alice: IKeyringPair;24 let nominal: bigint;2526 before(async () => {27 await usingPlaygrounds(async (helper, privateKey) => {28 donor = await privateKey({url: import.meta.url});29 [alice] = await helper.arrange.createAccounts([100n], donor);30 nominal = helper.balance.getOneTokenNominal();31 });32 });3334 // TODO: move to substrate tests35 itEth('sponsors mint transactions', async ({helper}) => {36 const collection = await helper.nft.mintCollection(alice, {tokenPrefix: 'spnr', permissions: {mintMode: true}});37 await collection.setSponsor(alice, alice.address);38 await collection.confirmSponsorship(alice);3940 const minter = helper.eth.createAccount();41 expect(await helper.balance.getEthereum(minter)).to.equal(0n);4243 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);44 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', minter);4546 await collection.addToAllowList(alice, {Ethereum: minter});4748 const result = await contract.methods.mint(minter).send();4950 const events = helper.eth.normalizeEvents(result.events);51 expect(events).to.be.deep.equal([52 {53 address: collectionAddress,54 event: 'Transfer',55 args: {56 from: '0x0000000000000000000000000000000000000000',57 to: minter,58 tokenId: '1',59 },60 },61 ]);62 });6364 // TODO: Temprorary off. Need refactor65 // itWeb3('Set substrate sponsor', async ({api, web3, privateKeyWrapper}) => {66 // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);67 // const collectionHelpers = evmCollectionHelpers(web3, owner);68 // let result = await collectionHelpers.methods.createNFTCollection('Sponsor collection', '1', '1').send();69 // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);70 // const sponsor = privateKeyWrapper('//Alice');71 // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);7273 // expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;74 // result = await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});75 // expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;7677 // const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);78 // await submitTransactionAsync(sponsor, confirmTx);79 // expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;8081 // const sponsorTuple = await collectionEvm.methods.collectionSponsor().call({from: owner});82 // expect(bigIntToSub(api, BigInt(sponsorTuple[1]))).to.be.eq(sponsor.address);83 // });8485 [86 'setCollectionSponsorCross',87 'setCollectionSponsor', // Soft-deprecated88 ].map(testCase =>89 itEth(`[${testCase}] can remove collection sponsor`, async ({helper}) => {90 const owner = await helper.eth.createAccountWithBalance(donor);91 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);9293 let result = await collectionHelpers.methods.createNFTCollection('Sponsor collection', '1', '1').send({value: Number(2n * nominal)});94 const collectionIdAddress = helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);95 const sponsor = await helper.eth.createAccountWithBalance(donor);96 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);97 const collectionEvm = await helper.ethNativeContract.collection(collectionIdAddress, 'nft', owner, testCase === 'setCollectionSponsor');9899 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;100 result = await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send({from: owner});101 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;102103 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});104 let sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});105 expect(helper.address.restoreCrossAccountFromBigInt(BigInt(sponsorStruct.sub))).to.be.eq(helper.address.ethToSubstrate(sponsor, true));106 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;107108 await collectionEvm.methods.removeCollectionSponsor().send({from: owner});109110 sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});111 expect(sponsorStruct.eth).to.be.eq('0x0000000000000000000000000000000000000000');112 }));113114 [115 'setCollectionSponsorCross',116 'setCollectionSponsor', // Soft-deprecated117 ].map(testCase =>118 itEth(`[${testCase}] Can sponsor from evm address via access list`, async ({helper}) => {119 const owner = await helper.eth.createAccountWithBalance(donor);120 const sponsorEth = await helper.eth.createAccountWithBalance(donor);121 const sponsorCrossEth = helper.ethCrossAccount.fromAddress(sponsorEth);122123 const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Sponsor collection', '1', '1', '');124125 const collectionSub = helper.nft.getCollectionObject(collectionId);126 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, testCase === 'setCollectionSponsor');127128 // Set collection sponsor:129 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsorEth : sponsorCrossEth).send({from: owner});130 let sponsorship = (await collectionSub.getData())!.raw.sponsorship;131 expect(sponsorship.Unconfirmed).to.be.eq(helper.address.ethToSubstrate(sponsorEth, true));132 // Account cannot confirm sponsorship if it is not set as a sponsor133 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');134135 // Sponsor can confirm sponsorship:136 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsorEth});137 sponsorship = (await collectionSub.getData())!.raw.sponsorship;138 expect(sponsorship.Confirmed).to.be.eq(helper.address.ethToSubstrate(sponsorEth, true));139140 // Create user with no balance:141 const user = helper.eth.createAccount();142 const userCross = helper.ethCrossAccount.fromAddress(user);143 const nextTokenId = await collectionEvm.methods.nextTokenId().call();144 expect(nextTokenId).to.be.equal('1');145146 // Set collection permissions:147 const oldPermissions = (await collectionSub.getData())!.raw.permissions;148 expect(oldPermissions.mintMode).to.be.false;149 expect(oldPermissions.access).to.be.equal('Normal');150151 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});152 await collectionEvm.methods.addToCollectionAllowListCross(userCross).send({from: owner});153 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});154155 const newPermissions = (await collectionSub.getData())!.raw.permissions;156 expect(newPermissions.mintMode).to.be.true;157 expect(newPermissions.access).to.be.equal('AllowList');158159 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));160 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsorEth));161 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));162163 // User can mint token without balance:164 {165 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});166 const event = helper.eth.normalizeEvents(result.events)167 .find(event => event.event === 'Transfer');168169 expect(event).to.be.deep.equal({170 address: collectionAddress,171 event: 'Transfer',172 args: {173 from: '0x0000000000000000000000000000000000000000',174 to: user,175 tokenId: '1',176 },177 });178179 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));180 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsorEth));181 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));182183 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');184 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);185 expect(userBalanceAfter).to.be.eq(userBalanceBefore);186 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;187 }188 }));189190 // TODO: Temprorary off. Need refactor191 // itWeb3('Sponsoring collection from substrate address via access list', async ({api, web3, privateKeyWrapper}) => {192 // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);193 // const collectionHelpers = evmCollectionHelpers(web3, owner);194 // const result = await collectionHelpers.methods.createERC721MetadataCompatibleNFTCollection('Sponsor collection', '1', '1', '').send();195 // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);196 // const sponsor = privateKeyWrapper('//Alice');197 // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);198199 // await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});200201 // const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);202 // await submitTransactionAsync(sponsor, confirmTx);203204 // const user = createEthAccount(web3);205 // const nextTokenId = await collectionEvm.methods.nextTokenId().call();206 // expect(nextTokenId).to.be.equal('1');207208 // await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});209 // await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});210 // await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});211212 // const ownerBalanceBefore = await ethBalanceViaSub(api, owner);213 // const sponsorBalanceBefore = (await getBalance(api, [sponsor.address]))[0];214215 // {216 // const nextTokenId = await collectionEvm.methods.nextTokenId().call();217 // expect(nextTokenId).to.be.equal('1');218 // const result = await collectionEvm.methods.mintWithTokenURI(219 // user,220 // nextTokenId,221 // 'Test URI',222 // ).send({from: user});223 // const events = normalizeEvents(result.events);224225 // expect(events).to.be.deep.equal([226 // {227 // address: collectionIdAddress,228 // event: 'Transfer',229 // args: {230 // from: '0x0000000000000000000000000000000000000000',231 // to: user,232 // tokenId: nextTokenId,233 // },234 // },235 // ]);236237 // const ownerBalanceAfter = await ethBalanceViaSub(api, owner);238 // const sponsorBalanceAfter = (await getBalance(api, [sponsor.address]))[0];239240 // expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');241 // expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);242 // expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;243 // }244 // });245246 [247 'setCollectionSponsorCross',248 'setCollectionSponsor', // Soft-deprecated249 ].map(testCase =>250 itEth(`[${testCase}] Check that transaction via EVM spend money from sponsor address`, async ({helper}) => {251 const owner = await helper.eth.createAccountWithBalance(donor);252 const sponsor = await helper.eth.createAccountWithBalance(donor);253 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);254255 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner,'Sponsor collection', '1', '1', '');256257 const collectionSub = helper.nft.getCollectionObject(collectionId);258 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, testCase === 'setCollectionSponsor');259 // Set collection sponsor:260 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send();261 let collectionData = (await collectionSub.getData())!;262 expect(collectionData.raw.sponsorship.Unconfirmed).to.be.eq(helper.address.ethToSubstrate(sponsor, true));263 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');264265 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});266 collectionData = (await collectionSub.getData())!;267 expect(collectionData.raw.sponsorship.Confirmed).to.be.eq(helper.address.ethToSubstrate(sponsor, true));268269 const user = helper.eth.createAccount();270 const userCross = helper.ethCrossAccount.fromAddress(user);271 await collectionEvm.methods.addCollectionAdminCross(userCross).send();272273 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));274 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));275276 const mintingResult = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});277 const tokenId = mintingResult.events.Transfer.returnValues.tokenId;278279 const event = helper.eth.normalizeEvents(mintingResult.events)280 .find(event => event.event === 'Transfer');281 const address = helper.ethAddress.fromCollectionId(collectionId);282283 expect(event).to.be.deep.equal({284 address,285 event: 'Transfer',286 args: {287 from: '0x0000000000000000000000000000000000000000',288 to: user,289 tokenId: '1',290 },291 });292 expect(await collectionEvm.methods.tokenURI(tokenId).call({from: user})).to.be.equal('Test URI');293294 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));295 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);296 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));297 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;298 }));299300 itEth('Can reassign collection sponsor', async ({helper}) => {301 const owner = await helper.eth.createAccountWithBalance(donor);302 const sponsorEth = await helper.eth.createAccountWithBalance(donor);303 const sponsorCrossEth = helper.ethCrossAccount.fromAddress(sponsorEth);304 const [sponsorSub] = await helper.arrange.createAccounts([100n], donor);305 const sponsorCrossSub = helper.ethCrossAccount.fromKeyringPair(sponsorSub);306307 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner,'Sponsor collection', '1', '1', '');308 const collectionSub = helper.nft.getCollectionObject(collectionId);309 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);310311 // Set and confirm sponsor:312 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossEth).send({from: owner});313 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsorEth});314315 // Can reassign sponsor:316 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossSub).send({from: owner});317 const collectionSponsor = (await collectionSub.getData())?.raw.sponsorship;318 expect(collectionSponsor).to.deep.eq({Unconfirmed: sponsorSub.address});319 });320});321322describe('evm RFT collection sponsoring', () => {323 let donor: IKeyringPair;324 let alice: IKeyringPair;325 let nominal: bigint;326327 before(async function() {328 await usingPlaygrounds(async (helper, privateKey) => {329 requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);330 donor = await privateKey({url: import.meta.url});331 [alice] = await helper.arrange.createAccounts([100n], donor);332 nominal = helper.balance.getOneTokenNominal();333 });334 });335336 [337 'mintCross',338 'mintWithTokenURI',339 ].map(testCase =>340 itEth(`[${testCase}] sponsors mint transactions`, async ({helper}) => {341 const collection = await helper.rft.mintCollection(alice, {tokenPrefix: 'spnr', permissions: {mintMode: true}, tokenPropertyPermissions: [342 {key: 'URI', permission: {tokenOwner: true, mutable: true, collectionAdmin: true}},343 ]});344345 const owner = await helper.eth.createAccountWithBalance(donor);346 await collection.setSponsor(alice, alice.address);347 await collection.confirmSponsorship(alice);348349 const minter = helper.eth.createAccount();350 const minterCross = helper.ethCrossAccount.fromAddress(minter);351 expect(await helper.balance.getEthereum(minter)).to.equal(0n);352353 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);354 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', minter, true);355356 await collection.addToAllowList(alice, {Ethereum: minter});357 await collection.addAdmin(alice, {Ethereum: owner});358 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);359 await collectionHelpers.methods.makeCollectionERC721MetadataCompatible(collectionAddress, 'base/')360 .send();361362 let mintingResult;363 let tokenId;364 switch (testCase) {365 case 'mintCross':366 mintingResult = await contract.methods.mintCross(minterCross, []).send();367 break;368 case 'mintWithTokenURI':369 mintingResult = await contract.methods.mintWithTokenURI(minter, 'Test URI').send();370 tokenId = mintingResult.events.Transfer.returnValues.tokenId;371 expect(await contract.methods.tokenURI(tokenId).call()).to.be.equal('Test URI');372 break;373 }374375 const events = helper.eth.normalizeEvents(mintingResult.events);376 expect(events).to.deep.include({377 address: collectionAddress,378 event: 'Transfer',379 args: {380 from: '0x0000000000000000000000000000000000000000',381 to: minter,382 tokenId: '1',383 },384 });385 }));386387 [388 'setCollectionSponsorCross',389 'setCollectionSponsor', // Soft-deprecated390 ].map(testCase =>391 itEth(`[${testCase}] can remove collection sponsor`, async ({helper}) => {392 const owner = await helper.eth.createAccountWithBalance(donor);393 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);394395 let result = await collectionHelpers.methods.createRFTCollection('Sponsor collection', '1', '1').send({value: Number(2n * nominal)});396 const collectionIdAddress = helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);397 const sponsor = await helper.eth.createAccountWithBalance(donor);398 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);399 const collectionEvm = await helper.ethNativeContract.collection(collectionIdAddress, 'rft', owner, testCase === 'setCollectionSponsor');400401 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;402 result = await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send({from: owner});403 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;404405 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});406 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;407408 await collectionEvm.methods.removeCollectionSponsor().send({from: owner});409410 const sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});411 expect(sponsorStruct.eth).to.be.eq('0x0000000000000000000000000000000000000000');412 }));413414 [415 'setCollectionSponsorCross',416 'setCollectionSponsor', // Soft-deprecated417 ].map(testCase =>418 itEth(`[${testCase}] Can sponsor from evm address via access list`, async ({helper}) => {419 const owner = await helper.eth.createAccountWithBalance(donor);420 const sponsorEth = await helper.eth.createAccountWithBalance(donor);421 const sponsorCrossEth = helper.ethCrossAccount.fromAddress(sponsorEth);422423 const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, 'Sponsor collection', '1', '1', '');424425 const collectionSub = helper.rft.getCollectionObject(collectionId);426 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner, testCase === 'setCollectionSponsor');427428 // Set collection sponsor:429 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsorEth : sponsorCrossEth).send({from: owner});430 let sponsorship = (await collectionSub.getData())!.raw.sponsorship;431 expect(sponsorship.Unconfirmed).to.be.eq(helper.address.ethToSubstrate(sponsorEth, true));432 // Account cannot confirm sponsorship if it is not set as a sponsor433 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');434435 // Sponsor can confirm sponsorship:436 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsorEth});437 sponsorship = (await collectionSub.getData())!.raw.sponsorship;438 expect(sponsorship.Confirmed).to.be.eq(helper.address.ethToSubstrate(sponsorEth, true));439440 // Create user with no balance:441 const user = helper.eth.createAccount();442 const userCross = helper.ethCrossAccount.fromAddress(user);443 const nextTokenId = await collectionEvm.methods.nextTokenId().call();444 expect(nextTokenId).to.be.equal('1');445446 // Set collection permissions:447 const oldPermissions = (await collectionSub.getData())!.raw.permissions;448 expect(oldPermissions.mintMode).to.be.false;449 expect(oldPermissions.access).to.be.equal('Normal');450451 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});452 await collectionEvm.methods.addToCollectionAllowListCross(userCross).send({from: owner});453 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});454455 const newPermissions = (await collectionSub.getData())!.raw.permissions;456 expect(newPermissions.mintMode).to.be.true;457 expect(newPermissions.access).to.be.equal('AllowList');458459 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));460 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsorEth));461 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));462463 // User can mint token without balance:464 {465 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});466 const events = helper.eth.normalizeEvents(result.events);467468 expect(events).to.deep.include({469 address: collectionAddress,470 event: 'Transfer',471 args: {472 from: '0x0000000000000000000000000000000000000000',473 to: user,474 tokenId: '1',475 },476 });477478 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));479 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsorEth));480 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));481482 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');483 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);484 expect(userBalanceAfter).to.be.eq(userBalanceBefore);485 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;486 }487 }));488489 [490 'setCollectionSponsorCross',491 'setCollectionSponsor', // Soft-deprecated492 ].map(testCase =>493 itEth(`[${testCase}] Check that collection admin EVM transaction spend money from sponsor eth address`, async ({helper}) => {494 const owner = await helper.eth.createAccountWithBalance(donor);495 const sponsor = await helper.eth.createAccountWithBalance(donor);496 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);497498 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');499500 const collectionSub = helper.rft.getCollectionObject(collectionId);501 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner, testCase === 'setCollectionSponsor');502 // Set collection sponsor:503 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.false;504 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send();505 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.true;506 let collectionData = (await collectionSub.getData())!;507 expect(collectionData.raw.sponsorship.Unconfirmed).to.be.eq(helper.address.ethToSubstrate(sponsor, true));508 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');509 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.true;510511 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});512 collectionData = (await collectionSub.getData())!;513 expect(collectionData.raw.sponsorship.Confirmed).to.be.eq(helper.address.ethToSubstrate(sponsor, true));514 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.false;515 const sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});516 const sponsorSubAddress = helper.address.normalizeSubstrateToChainFormat(helper.address.ethToSubstrate(sponsor));517 const actualSubAddress = helper.address.normalizeSubstrateToChainFormat(helper.address.restoreCrossAccountFromBigInt(BigInt(sponsorStruct.sub)));518 expect(actualSubAddress).to.be.equal(sponsorSubAddress);519520 const user = helper.eth.createAccount();521 const userCross = helper.ethCrossAccount.fromAddress(user);522 await collectionEvm.methods.addCollectionAdminCross(userCross).send();523524 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));525 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));526527 const mintingResult = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});528 const tokenId = mintingResult.events.Transfer.returnValues.tokenId;529530 const events = helper.eth.normalizeEvents(mintingResult.events);531 const address = helper.ethAddress.fromCollectionId(collectionId);532533 expect(events).to.deep.include({534 address,535 event: 'Transfer',536 args: {537 from: '0x0000000000000000000000000000000000000000',538 to: user,539 tokenId: '1',540 },541 });542 expect(await collectionEvm.methods.tokenURI(tokenId).call({from: user})).to.be.equal('Test URI');543544 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));545 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);546 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));547 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;548 }));549550 itEth('Check that collection admin EVM transaction spend money from sponsor sub address', async ({helper}) => {551 const owner = await helper.eth.createAccountWithBalance(donor);552 const sponsor = alice;553 const sponsorCross = helper.ethCrossAccount.fromKeyringPair(sponsor);554555 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');556557 const collectionSub = helper.rft.getCollectionObject(collectionId);558 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'rft', owner, false);559 // Set collection sponsor:560 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.false;561 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send();562 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.true;563 let collectionData = (await collectionSub.getData())!;564 expect(collectionData.raw.sponsorship.Unconfirmed).to.be.eq(sponsor.address);565 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');566567 await collectionSub.confirmSponsorship(sponsor);568 collectionData = (await collectionSub.getData())!;569 expect(collectionData.raw.sponsorship.Confirmed).to.be.eq(sponsor.address);570 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call()).to.be.false;571 const sponsorStruct = await collectionEvm.methods.collectionSponsor().call({from: owner});572 expect(BigInt(sponsorStruct.sub)).to.be.equal(BigInt('0x' + Buffer.from(sponsor.addressRaw).toString('hex')));573574 const user = helper.eth.createAccount();575 const userCross = helper.ethCrossAccount.fromAddress(user);576 await collectionEvm.methods.addCollectionAdminCross(userCross).send();577578 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));579 const sponsorBalanceBefore = await helper.balance.getSubstrate(sponsor.address);580581 const mintingResult = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});582 const tokenId = mintingResult.events.Transfer.returnValues.tokenId;583584 const events = helper.eth.normalizeEvents(mintingResult.events);585586 expect(events).to.deep.include({587 address: collectionAddress,588 event: 'Transfer',589 args: {590 from: '0x0000000000000000000000000000000000000000',591 to: user,592 tokenId: '1',593 },594 });595 expect(await collectionEvm.methods.tokenURI(tokenId).call()).to.be.equal('Test URI');596597 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));598 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);599 const sponsorBalanceAfter = await helper.balance.getSubstrate(sponsor.address);600 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;601 });602603 itEth('Sponsoring collection from substrate address via access list', async ({helper}) => {604 const owner = await helper.eth.createAccountWithBalance(donor);605 const user = helper.eth.createAccount();606 const userCross = helper.ethCrossAccount.fromAddress(user);607 const sponsor = alice;608 const sponsorCross = helper.ethCrossAccount.fromKeyringPair(sponsor);609610 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');611 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner, false);612613 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send({from: owner});614615 const collectionSub = helper.rft.getCollectionObject(collectionId);616 await collectionSub.confirmSponsorship(sponsor);617618 const nextTokenId = await collectionEvm.methods.nextTokenId().call();619 expect(nextTokenId).to.be.equal('1');620621 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});622623 await collectionEvm.methods.addToCollectionAllowListCross(userCross).send({from: owner});624 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});625626 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));627 const sponsorBalanceBefore = await helper.balance.getSubstrate(sponsor.address);628 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));629630 {631 const nextTokenId = await collectionEvm.methods.nextTokenId().call();632 expect(nextTokenId).to.be.equal('1');633 const mintingResult = await collectionEvm.methods.mintWithTokenURI(634 user,635 'Test URI',636 ).send({from: user});637638 const events = helper.eth.normalizeEvents(mintingResult.events);639640641 expect(events).to.deep.include({642 address: collectionAddress,643 event: 'Transfer',644 args: {645 from: '0x0000000000000000000000000000000000000000',646 to: user,647 tokenId: nextTokenId,648 },649 });650651 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));652 const sponsorBalanceAfter = await helper.balance.getSubstrate(sponsor.address);653 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));654655 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');656 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);657 expect(userBalanceAfter).to.be.eq(userBalanceBefore);658 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;659 }660 });661662 itEth('Can reassign collection sponsor', async ({helper}) => {663 const owner = await helper.eth.createAccountWithBalance(donor);664 const sponsorEth = await helper.eth.createAccountWithBalance(donor);665 const sponsorCrossEth = helper.ethCrossAccount.fromAddress(sponsorEth);666 const [sponsorSub] = await helper.arrange.createAccounts([100n], donor);667 const sponsorCrossSub = helper.ethCrossAccount.fromKeyringPair(sponsorSub);668669 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');670 const collectionSub = helper.rft.getCollectionObject(collectionId);671 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);672673 // Set and confirm sponsor:674 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossEth).send({from: owner});675 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsorEth});676677 // Can reassign sponsor:678 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossSub).send({from: owner});679 const collectionSponsor = (await collectionSub.getData())?.raw.sponsorship;680 expect(collectionSponsor).to.deep.eq({Unconfirmed: sponsorSub.address});681 });682683 [684 'transfer',685 'transferCross',686 'transferFrom',687 'transferFromCross',688 ].map(testCase =>689 itEth(`[${testCase}] Check that transfer via EVM spend money from sponsor address`, async ({helper}) => {690 const owner = await helper.eth.createAccountWithBalance(donor);691692 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');693 const sponsor = await helper.eth.createAccountWithBalance(donor);694 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);695 const receiver = await helper.eth.createAccountWithBalance(donor);696 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);697698 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send();699 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});700701 const user = await helper.eth.createAccountWithBalance(donor);702 const userCross = helper.ethCrossAccount.fromAddress(user);703 await collectionEvm.methods.addCollectionAdminCross(userCross).send();704705 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});706 const tokenId = result.events.Transfer.returnValues.tokenId;707708 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));709 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));710 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));711712 switch (testCase) {713 case 'transfer':714 await collectionEvm.methods.transfer(receiver, tokenId).send({from: user});715 break;716 case 'transferCross':717 await collectionEvm.methods.transferCross(helper.ethCrossAccount.fromAddress(receiver), tokenId).send({from: user});718 break;719 case 'transferFrom':720 await collectionEvm.methods.transferFrom(user, receiver, tokenId).send({from: user});721 break;722 case 'transferFromCross':723 await collectionEvm.methods.transferFromCross(helper.ethCrossAccount.fromAddress(user), helper.ethCrossAccount.fromAddress(receiver), tokenId).send({from: user});724 break;725 }726727 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));728 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);729 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));730 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;731 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));732 expect(userBalanceAfter).to.be.eq(userBalanceBefore);733 }));734});735736describe('evm RFT token sponsoring', () => {737 let donor: IKeyringPair;738739 before(async function() {740 await usingPlaygrounds(async (helper, privateKey) => {741 requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);742 donor = await privateKey({url: import.meta.url});743 });744 });745746 [747 'transfer',748 'transferCross',749 'transferFrom',750 'transferFromCross',751 ].map(testCase =>752 itEth(`[${testCase}] Check that token piece transfer via EVM spend money from sponsor address`, async ({helper}) => {753 const owner = await helper.eth.createAccountWithBalance(donor);754755 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');756 const sponsor = await helper.eth.createAccountWithBalance(donor);757 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);758 const receiver = await helper.eth.createAccountWithBalance(donor);759 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);760761 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send();762 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});763764 const user = await helper.eth.createAccountWithBalance(donor);765 const userCross = helper.ethCrossAccount.fromAddress(user);766 await collectionEvm.methods.addCollectionAdminCross(userCross).send();767768 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});769 const tokenId = result.events.Transfer.returnValues.tokenId;770771 const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, user);772 await tokenContract.methods.repartition(2).send();773774 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));775 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));776 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));777778 switch (testCase) {779 case 'transfer':780 await tokenContract.methods.transfer(receiver, 1).send();781 break;782 case 'transferCross':783 await tokenContract.methods.transferCross(helper.ethCrossAccount.fromAddress(receiver), 1).send();784 break;785 case 'transferFrom':786 await tokenContract.methods.transferFrom(user, receiver, 1).send();787 break;788 case 'transferFromCross':789 await tokenContract.methods.transferFromCross(helper.ethCrossAccount.fromAddress(user), helper.ethCrossAccount.fromAddress(receiver), 1).send();790 break;791 }792793 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));794 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);795 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));796 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;797 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));798 expect(userBalanceAfter).to.be.eq(userBalanceBefore);799 }));800801 [802 'approve',803 'approveCross',804 ].map(testCase =>805 itEth(`[${testCase}] Check that approve via EVM spend money from sponsor address`, async ({helper}) => {806 const owner = await helper.eth.createAccountWithBalance(donor);807808 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner,'Sponsor collection', '1', '1', '');809 const sponsor = await helper.eth.createAccountWithBalance(donor);810 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);811 const receiver = await helper.eth.createAccountWithBalance(donor);812 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);813814 await collectionEvm.methods.setCollectionSponsorCross(sponsorCross).send();815 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});816817 const user = await helper.eth.createAccountWithBalance(donor);818 const userCross = helper.ethCrossAccount.fromAddress(user);819 await collectionEvm.methods.addCollectionAdminCross(userCross).send();820821 const result = await collectionEvm.methods.mintWithTokenURI(user, 'Test URI').send({from: user});822 const tokenId = result.events.Transfer.returnValues.tokenId;823824 const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, user);825 await tokenContract.methods.repartition(2).send();826827 const ownerBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));828 const sponsorBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));829 const userBalanceBefore = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));830831 switch (testCase) {832 case 'approve':833 await tokenContract.methods.approve(receiver, 1).send();834 break;835 case 'approveCross':836 await tokenContract.methods.approveCross(helper.ethCrossAccount.fromAddress(receiver), 1).send();837 break;838 }839840 const ownerBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(owner));841 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);842 const sponsorBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(sponsor));843 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;844 const userBalanceAfter = await helper.balance.getSubstrate(helper.address.ethToSubstrate(user));845 expect(userBalanceAfter).to.be.eq(userBalanceBefore);846 }));847});848tests/src/eth/createNFTCollection.test.tsdiffbeforeafterboth--- a/tests/src/eth/createNFTCollection.test.ts
+++ b/tests/src/eth/createNFTCollection.test.ts
@@ -199,10 +199,9 @@
// Soft-deprecated
itEth('(!negative test!) [eth] Check owner', async ({helper}) => {
const owner = await helper.eth.createAccountWithBalance(donor);
- // FIXME: do not give balance
- const malfeasant = await helper.eth.createAccountWithBalance(donor);
+ const malfeasant = helper.eth.createAccount();
const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Transgressed', 'absolutely anything', 'COR');
- const malfeasantCollection = await helper.ethNativeContract.collection(collectionAddress, 'nft', malfeasant, true);
+ const malfeasantCollection = helper.ethNativeContract.collection(collectionAddress, 'nft', malfeasant, true);
const EXPECTED_ERROR = 'NoPermission';
{
const sponsor = await helper.eth.createAccountWithBalance(donor);
tests/src/eth/createRFTCollection.test.tsdiffbeforeafterboth--- a/tests/src/eth/createRFTCollection.test.ts
+++ b/tests/src/eth/createRFTCollection.test.ts
@@ -63,8 +63,7 @@
const baseUri = 'BaseURI';
const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, name, description, prefix, baseUri);
- // FIXME: caller is not needed
- const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
+ const contract = helper.ethNativeContract.collection(collectionAddress, 'nft');
const collection = helper.rft.getCollectionObject(collectionId);
const data = (await collection.getData())!;
tests/src/eth/fractionalizer/fractionalizer.test.tsdiffbeforeafterboth--- a/tests/src/eth/fractionalizer/fractionalizer.test.ts
+++ b/tests/src/eth/fractionalizer/fractionalizer.test.ts
@@ -170,7 +170,7 @@
const rftTokenAddress = result.events.Fractionalized.returnValues._rftToken;
// FIXME: should work without the caller
- const rftTokenContract = await helper.ethNativeContract.rftToken(rftTokenAddress, owner);
+ const rftTokenContract = helper.ethNativeContract.rftToken(rftTokenAddress);
expect(await rftTokenContract.methods.balanceOf(owner).call()).to.equal('100');
});
tests/src/eth/nativeRpc/estimateGas.test.tsdiffbeforeafterboth--- a/tests/src/eth/nativeRpc/estimateGas.test.ts
+++ b/tests/src/eth/nativeRpc/estimateGas.test.ts
@@ -28,7 +28,7 @@
});
});
- itEth.skip('estimate gas', async ({helper}) => {
+ itEth('estimate gas', async ({helper}) => {
const BALANCE = 100n;
const BALANCE_TO_TRANSFER = 90n;
@@ -57,6 +57,6 @@
maxFeePerGas: '0x14c9338c61d',
});
- expect(estimateGas).to.be.greaterThan(40000).and.to.be.lessThan(60000);
+ expect(estimateGas).to.be.greaterThan(35000).and.to.be.lessThan(50000);
});
});
tests/src/eth/nonFungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/nonFungible.test.ts
+++ b/tests/src/eth/nonFungible.test.ts
@@ -928,8 +928,7 @@
});
itEth('Returns collection name', async ({helper}) => {
- // FIXME: should not have balance to use .call()
- const caller = await helper.eth.createAccountWithBalance(donor);
+ const caller = helper.eth.createAccount();
const tokenPropertyPermissions = [{
key: 'URI',
permission: {
tests/src/eth/reFungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/reFungible.test.ts
+++ b/tests/src/eth/reFungible.test.ts
@@ -679,8 +679,7 @@
});
itEth('Returns collection name', async ({helper}) => {
- // FIXME: should not have balance to use .call()
- const caller = await helper.eth.createAccountWithBalance(alice);
+ const caller = helper.eth.createAccount();
const tokenPropertyPermissions = [{
key: 'URI',
permission: {
tests/src/eth/tokenProperties.test.tsdiffbeforeafterboth--- a/tests/src/eth/tokenProperties.test.ts
+++ b/tests/src/eth/tokenProperties.test.ts
@@ -315,8 +315,7 @@
}));
itEth('Can be read', async({helper}) => {
- // FIXME: User with no balance should be able to call
- const caller = await helper.eth.createAccountWithBalance(alice);
+ const caller = helper.eth.createAccount();
const collection = await helper.nft.mintCollection(alice, {
tokenPropertyPermissions: [{
key: 'testKey',