difftreelog
Merge pull request #1004 from UniqueNetwork/feature/update-polkadot-1.1
in: master
Upgrade to polkadot 1.1.0
181 files changed
.docker/forkless-config/zombienet-forkless-data.tomldiffbeforeafterbothno changes
.docker/forkless-config/zombienet-forkless-nodata.tomldiffbeforeafterbothno changes
.githooks/pre-commitdiffbeforeafterboth20 exit 120 exit 121fi21fi222223STAGED_TEST_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep ".ts$\|.js$")23STAGED_TEST_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep "\.ts$\|\.js$")242425if [[ "$STAGED_TEST_FILES" = "" ]]; then25if [[ "$STAGED_TEST_FILES" = "" ]]; then26 echo -e "${GREEN}eslint succeded${NC}"26 echo -e "${GREEN}eslint succeded${NC}".rustfmt.tomldiffbeforeafterboth1group_imports = "stdexternalcrate"1hard_tabs = true2hard_tabs = true2reorder_imports = false3imports_granularity = "crate"34Cargo.lockdiffbeforeafterboth18source = "registry+https://github.com/rust-lang/crates.io-index"18source = "registry+https://github.com/rust-lang/crates.io-index"19checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"19checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"20dependencies = [20dependencies = [21 "gimli",21 "gimli 0.27.3",22]22]232324[[package]]24[[package]]25name = "addr2line"25name = "addr2line"26version = "0.20.0"26version = "0.21.0"27source = "registry+https://github.com/rust-lang/crates.io-index"27source = "registry+https://github.com/rust-lang/crates.io-index"28checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"28checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"29dependencies = [29dependencies = [30 "gimli",30 "gimli 0.28.0",31]31]323233[[package]]33[[package]]115115116[[package]]116[[package]]117name = "aes-gcm"117name = "aes-gcm"118version = "0.10.2"118version = "0.10.3"119source = "registry+https://github.com/rust-lang/crates.io-index"119source = "registry+https://github.com/rust-lang/crates.io-index"120checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237"120checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"121dependencies = [121dependencies = [122 "aead 0.5.2",122 "aead 0.5.2",123 "aes 0.8.3",123 "aes 0.8.3",172172173[[package]]173[[package]]174name = "aho-corasick"174name = "aho-corasick"175version = "1.0.4"175version = "1.1.1"176source = "registry+https://github.com/rust-lang/crates.io-index"176source = "registry+https://github.com/rust-lang/crates.io-index"177checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"177checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"178dependencies = [178dependencies = [179 "memchr",179 "memchr",180]180]181181182[[package]]182[[package]]183name = "allocator-api2"184version = "0.2.16"185source = "registry+https://github.com/rust-lang/crates.io-index"186checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"187188[[package]]183name = "always-assert"189name = "always-assert"184version = "0.1.3"190version = "0.1.3"185source = "registry+https://github.com/rust-lang/crates.io-index"191source = "registry+https://github.com/rust-lang/crates.io-index"211217212[[package]]218[[package]]213name = "anstream"219name = "anstream"214version = "0.3.2"220version = "0.6.4"215source = "registry+https://github.com/rust-lang/crates.io-index"221source = "registry+https://github.com/rust-lang/crates.io-index"216checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"222checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"217dependencies = [223dependencies = [218 "anstyle",224 "anstyle",219 "anstyle-parse",225 "anstyle-parse",220 "anstyle-query",226 "anstyle-query",221 "anstyle-wincon",227 "anstyle-wincon",222 "colorchoice",228 "colorchoice",223 "is-terminal",224 "utf8parse",229 "utf8parse",225]230]226231227[[package]]232[[package]]228name = "anstyle"233name = "anstyle"229version = "1.0.1"234version = "1.0.4"230source = "registry+https://github.com/rust-lang/crates.io-index"235source = "registry+https://github.com/rust-lang/crates.io-index"231checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"236checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"232237233[[package]]238[[package]]234name = "anstyle-parse"239name = "anstyle-parse"235version = "0.2.1"240version = "0.2.2"236source = "registry+https://github.com/rust-lang/crates.io-index"241source = "registry+https://github.com/rust-lang/crates.io-index"237checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"242checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"238dependencies = [243dependencies = [239 "utf8parse",244 "utf8parse",240]245]250255251[[package]]256[[package]]252name = "anstyle-wincon"257name = "anstyle-wincon"253version = "1.0.2"258version = "3.0.1"254source = "registry+https://github.com/rust-lang/crates.io-index"259source = "registry+https://github.com/rust-lang/crates.io-index"255checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"260checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"256dependencies = [261dependencies = [257 "anstyle",262 "anstyle",258 "windows-sys 0.48.0",263 "windows-sys 0.48.0",259]264]260265261[[package]]266[[package]]262name = "anyhow"267name = "anyhow"263version = "1.0.74"268version = "1.0.75"264source = "registry+https://github.com/rust-lang/crates.io-index"269source = "registry+https://github.com/rust-lang/crates.io-index"265checksum = "8c6f84b74db2535ebae81eede2f39b947dcbf01d093ae5f791e5dd414a1bf289"270checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"266271267[[package]]272[[package]]268name = "app-promotion-rpc"273name = "app-promotion-rpc"285]290]286291287[[package]]292[[package]]293name = "aquamarine"294version = "0.3.2"295source = "registry+https://github.com/rust-lang/crates.io-index"296checksum = "df752953c49ce90719c7bf1fc587bc8227aed04732ea0c0f85e5397d7fdbd1a1"297dependencies = [298 "include_dir",299 "itertools 0.10.5",300 "proc-macro-error",301 "proc-macro2",302 "quote",303 "syn 1.0.109",304]305306[[package]]288name = "arc-swap"307name = "arc-swap"289version = "1.6.0"308version = "1.6.0"290source = "registry+https://github.com/rust-lang/crates.io-index"309source = "registry+https://github.com/rust-lang/crates.io-index"291checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"310checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"292311293[[package]]312[[package]]294name = "array-bytes"313name = "ark-bls12-381"295version = "4.2.0"314version = "0.4.0"296source = "registry+https://github.com/rust-lang/crates.io-index"315source = "registry+https://github.com/rust-lang/crates.io-index"297checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6"316checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488"317dependencies = [318 "ark-ec",319 "ark-ff",320 "ark-serialize",321 "ark-std",322]298323299[[package]]324[[package]]325name = "ark-ec"326version = "0.4.2"327source = "registry+https://github.com/rust-lang/crates.io-index"328checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba"329dependencies = [330 "ark-ff",331 "ark-poly",332 "ark-serialize",333 "ark-std",334 "derivative",335 "hashbrown 0.13.2",336 "itertools 0.10.5",337 "num-traits",338 "zeroize",339]340341[[package]]342name = "ark-ed-on-bls12-381-bandersnatch"343version = "0.4.0"344source = "registry+https://github.com/rust-lang/crates.io-index"345checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c"346dependencies = [347 "ark-bls12-381",348 "ark-ec",349 "ark-ff",350 "ark-std",351]352353[[package]]354name = "ark-ff"355version = "0.4.2"356source = "registry+https://github.com/rust-lang/crates.io-index"357checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba"358dependencies = [359 "ark-ff-asm",360 "ark-ff-macros",361 "ark-serialize",362 "ark-std",363 "derivative",364 "digest 0.10.7",365 "itertools 0.10.5",366 "num-bigint",367 "num-traits",368 "paste",369 "rustc_version",370 "zeroize",371]372373[[package]]374name = "ark-ff-asm"375version = "0.4.2"376source = "registry+https://github.com/rust-lang/crates.io-index"377checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348"378dependencies = [379 "quote",380 "syn 1.0.109",381]382383[[package]]384name = "ark-ff-macros"385version = "0.4.2"386source = "registry+https://github.com/rust-lang/crates.io-index"387checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565"388dependencies = [389 "num-bigint",390 "num-traits",391 "proc-macro2",392 "quote",393 "syn 1.0.109",394]395396[[package]]397name = "ark-poly"398version = "0.4.2"399source = "registry+https://github.com/rust-lang/crates.io-index"400checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf"401dependencies = [402 "ark-ff",403 "ark-serialize",404 "ark-std",405 "derivative",406 "hashbrown 0.13.2",407]408409[[package]]410name = "ark-scale"411version = "0.0.10"412source = "registry+https://github.com/rust-lang/crates.io-index"413checksum = "49b08346a3e38e2be792ef53ee168623c9244d968ff00cd70fb9932f6fe36393"414dependencies = [415 "ark-ec",416 "ark-ff",417 "ark-serialize",418 "ark-std",419 "parity-scale-codec",420]421422[[package]]423name = "ark-scale"424version = "0.0.11"425source = "registry+https://github.com/rust-lang/crates.io-index"426checksum = "51bd73bb6ddb72630987d37fa963e99196896c0d0ea81b7c894567e74a2f83af"427dependencies = [428 "ark-ec",429 "ark-ff",430 "ark-serialize",431 "ark-std",432 "parity-scale-codec",433 "scale-info",434]435436[[package]]437name = "ark-secret-scalar"438version = "0.0.2"439source = "git+https://github.com/w3f/ring-vrf?rev=3119f51#3119f51b54b69308abfb0671f6176cb125ae1bf1"440dependencies = [441 "ark-ec",442 "ark-ff",443 "ark-serialize",444 "ark-std",445 "ark-transcript",446 "digest 0.10.7",447 "rand_core 0.6.4",448 "zeroize",449]450451[[package]]452name = "ark-serialize"453version = "0.4.2"454source = "registry+https://github.com/rust-lang/crates.io-index"455checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5"456dependencies = [457 "ark-serialize-derive",458 "ark-std",459 "digest 0.10.7",460 "num-bigint",461]462463[[package]]464name = "ark-serialize-derive"465version = "0.4.2"466source = "registry+https://github.com/rust-lang/crates.io-index"467checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea"468dependencies = [469 "proc-macro2",470 "quote",471 "syn 1.0.109",472]473474[[package]]475name = "ark-std"476version = "0.4.0"477source = "registry+https://github.com/rust-lang/crates.io-index"478checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185"479dependencies = [480 "num-traits",481 "rand 0.8.5",482]483484[[package]]485name = "ark-transcript"486version = "0.0.2"487source = "git+https://github.com/w3f/ring-vrf?rev=3119f51#3119f51b54b69308abfb0671f6176cb125ae1bf1"488dependencies = [489 "ark-ff",490 "ark-serialize",491 "ark-std",492 "digest 0.10.7",493 "rand_core 0.6.4",494 "sha3 0.10.8",495]496497[[package]]300name = "array-bytes"498name = "array-bytes"301version = "6.1.0"499version = "6.1.0"302source = "registry+https://github.com/rust-lang/crates.io-index"500source = "registry+https://github.com/rust-lang/crates.io-index"310508311[[package]]509[[package]]312name = "arrayvec"510name = "arrayvec"511version = "0.4.12"512source = "registry+https://github.com/rust-lang/crates.io-index"513checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"514dependencies = [515 "nodrop",516]517518[[package]]519name = "arrayvec"313version = "0.5.2"520version = "0.5.2"314source = "registry+https://github.com/rust-lang/crates.io-index"521source = "registry+https://github.com/rust-lang/crates.io-index"315checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"522checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"333 "num-traits",540 "num-traits",334 "rusticata-macros",541 "rusticata-macros",335 "thiserror",542 "thiserror",336 "time 0.3.25",543 "time",337]544]338545339[[package]]546[[package]]349 "num-traits",556 "num-traits",350 "rusticata-macros",557 "rusticata-macros",351 "thiserror",558 "thiserror",352 "time 0.3.25",559 "time",353]560]354561355[[package]]562[[package]]405]612]406613407[[package]]614[[package]]615name = "async-executor"616version = "1.5.4"617source = "registry+https://github.com/rust-lang/crates.io-index"618checksum = "2c1da3ae8dabd9c00f453a329dfe1fb28da3c0a72e2478cdcd93171740c20499"619dependencies = [620 "async-lock",621 "async-task",622 "concurrent-queue",623 "fastrand 2.0.1",624 "futures-lite",625 "slab",626]627628[[package]]629name = "async-fs"630version = "1.6.0"631source = "registry+https://github.com/rust-lang/crates.io-index"632checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"633dependencies = [634 "async-lock",635 "autocfg",636 "blocking",637 "futures-lite",638]639640[[package]]408name = "async-io"641name = "async-io"409version = "1.13.0"642version = "1.13.0"410source = "registry+https://github.com/rust-lang/crates.io-index"643source = "registry+https://github.com/rust-lang/crates.io-index"418 "log",651 "log",419 "parking",652 "parking",420 "polling",653 "polling",421 "rustix 0.37.23",654 "rustix 0.37.24",422 "slab",655 "slab",423 "socket2 0.4.9",656 "socket2 0.4.9",424 "waker-fn",657 "waker-fn",434]667]435668436[[package]]669[[package]]670name = "async-net"671version = "1.8.0"672source = "registry+https://github.com/rust-lang/crates.io-index"673checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f"674dependencies = [675 "async-io",676 "blocking",677 "futures-lite",678]679680[[package]]681name = "async-process"682version = "1.7.0"683source = "registry+https://github.com/rust-lang/crates.io-index"684checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"685dependencies = [686 "async-io",687 "async-lock",688 "autocfg",689 "blocking",690 "cfg-if",691 "event-listener",692 "futures-lite",693 "rustix 0.37.24",694 "signal-hook",695 "windows-sys 0.48.0",696]697698[[package]]437name = "async-recursion"699name = "async-recursion"438version = "1.0.4"700version = "1.0.5"439source = "registry+https://github.com/rust-lang/crates.io-index"701source = "registry+https://github.com/rust-lang/crates.io-index"440checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"702checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"441dependencies = [703dependencies = [442 "proc-macro2",704 "proc-macro2",443 "quote",705 "quote",444 "syn 2.0.28",706 "syn 2.0.37",445]707]446708447[[package]]709[[package]]710name = "async-task"711version = "4.4.1"712source = "registry+https://github.com/rust-lang/crates.io-index"713checksum = "b9441c6b2fe128a7c2bf680a44c34d0df31ce09e5b7e401fcca3faa483dbc921"714715[[package]]448name = "async-trait"716name = "async-trait"449version = "0.1.73"717version = "0.1.73"450source = "registry+https://github.com/rust-lang/crates.io-index"718source = "registry+https://github.com/rust-lang/crates.io-index"451checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"719checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"452dependencies = [720dependencies = [453 "proc-macro2",721 "proc-macro2",454 "quote",722 "quote",455 "syn 2.0.28",723 "syn 2.0.37",456]724]457725458[[package]]726[[package]]465 "futures-sink",733 "futures-sink",466 "futures-util",734 "futures-util",467 "memchr",735 "memchr",468 "pin-project-lite 0.2.12",736 "pin-project-lite 0.2.13",469]737]470738471[[package]]739[[package]]740name = "atomic-take"741version = "1.1.0"742source = "registry+https://github.com/rust-lang/crates.io-index"743checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3"744745[[package]]472name = "atomic-waker"746name = "atomic-waker"473version = "1.1.1"747version = "1.1.2"474source = "registry+https://github.com/rust-lang/crates.io-index"748source = "registry+https://github.com/rust-lang/crates.io-index"475checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"749checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"476750477[[package]]751[[package]]478name = "atty"752name = "atty"505779506[[package]]780[[package]]507name = "backtrace"781name = "backtrace"508version = "0.3.68"782version = "0.3.69"509source = "registry+https://github.com/rust-lang/crates.io-index"783source = "registry+https://github.com/rust-lang/crates.io-index"510checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"784checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"511dependencies = [785dependencies = [512 "addr2line 0.20.0",786 "addr2line 0.21.0",513 "cc",787 "cc",514 "cfg-if",788 "cfg-if",515 "libc",789 "libc",516 "miniz_oxide",790 "miniz_oxide",517 "object 0.31.1",791 "object 0.32.1",518 "rustc-demangle",792 "rustc-demangle",519]793]520794521[[package]]795[[package]]796name = "bandersnatch_vrfs"797version = "0.0.1"798source = "git+https://github.com/w3f/ring-vrf?rev=3119f51#3119f51b54b69308abfb0671f6176cb125ae1bf1"799dependencies = [800 "ark-bls12-381",801 "ark-ec",802 "ark-ed-on-bls12-381-bandersnatch",803 "ark-ff",804 "ark-scale 0.0.11",805 "ark-serialize",806 "ark-std",807 "dleq_vrf",808 "fflonk",809 "merlin 3.0.0",810 "rand_chacha 0.3.1",811 "rand_core 0.6.4",812 "ring 0.1.0",813 "sha2 0.10.8",814 "zeroize",815]816817[[package]]522name = "base-x"818name = "base-x"523version = "0.2.11"819version = "0.2.11"524source = "registry+https://github.com/rust-lang/crates.io-index"820source = "registry+https://github.com/rust-lang/crates.io-index"544840545[[package]]841[[package]]546name = "base64"842name = "base64"547version = "0.21.2"843version = "0.21.4"548source = "registry+https://github.com/rust-lang/crates.io-index"844source = "registry+https://github.com/rust-lang/crates.io-index"549checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"845checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"550846551[[package]]847[[package]]552name = "base64ct"848name = "base64ct"566[[package]]862[[package]]567name = "binary-merkle-tree"863name = "binary-merkle-tree"568version = "4.0.0-dev"864version = "4.0.0-dev"569source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"865source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"570dependencies = [866dependencies = [571 "hash-db 0.16.0",867 "hash-db 0.16.0",572 "log",868 "log",593 "lazy_static",889 "lazy_static",594 "lazycell",890 "lazycell",595 "peeking_take_while",891 "peeking_take_while",596 "prettyplease 0.2.12",892 "prettyplease 0.2.15",597 "proc-macro2",893 "proc-macro2",598 "quote",894 "quote",599 "regex",895 "regex",600 "rustc-hash",896 "rustc-hash",601 "shlex",897 "shlex",602 "syn 2.0.28",898 "syn 2.0.37",603]899]604900605[[package]]901[[package]]902name = "bip39"903version = "2.0.0"904source = "registry+https://github.com/rust-lang/crates.io-index"905checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f"906dependencies = [907 "bitcoin_hashes",908]909910[[package]]911name = "bitcoin_hashes"912version = "0.11.0"913source = "registry+https://github.com/rust-lang/crates.io-index"914checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4"915916[[package]]606name = "bitflags"917name = "bitflags"607version = "1.3.2"918version = "1.3.2"608source = "registry+https://github.com/rust-lang/crates.io-index"919source = "registry+https://github.com/rust-lang/crates.io-index"636]947]637948638[[package]]949[[package]]950name = "blake2-rfc"951version = "0.2.18"952source = "registry+https://github.com/rust-lang/crates.io-index"953checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"954dependencies = [955 "arrayvec 0.4.12",956 "constant_time_eq 0.1.5",957]958959[[package]]639name = "blake2b_simd"960name = "blake2b_simd"640version = "1.0.1"961version = "1.0.2"641source = "registry+https://github.com/rust-lang/crates.io-index"962source = "registry+https://github.com/rust-lang/crates.io-index"642checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"963checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780"643dependencies = [964dependencies = [644 "arrayref",965 "arrayref",645 "arrayvec 0.7.4",966 "arrayvec 0.7.4",646 "constant_time_eq 0.2.6",967 "constant_time_eq 0.3.0",647]968]648969649[[package]]970[[package]]650name = "blake2s_simd"971name = "blake2s_simd"651version = "1.0.1"972version = "1.0.2"652source = "registry+https://github.com/rust-lang/crates.io-index"973source = "registry+https://github.com/rust-lang/crates.io-index"653checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f"974checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae"654dependencies = [975dependencies = [655 "arrayref",976 "arrayref",656 "arrayvec 0.7.4",977 "arrayvec 0.7.4",657 "constant_time_eq 0.2.6",978 "constant_time_eq 0.3.0",658]979]659980660[[package]]981[[package]]661name = "blake3"982name = "blake3"662version = "1.4.1"983version = "1.5.0"663source = "registry+https://github.com/rust-lang/crates.io-index"984source = "registry+https://github.com/rust-lang/crates.io-index"664checksum = "199c42ab6972d92c9f8995f086273d25c42fc0f7b2a1fcefba465c1352d25ba5"985checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87"665dependencies = [986dependencies = [666 "arrayref",987 "arrayref",667 "arrayvec 0.7.4",988 "arrayvec 0.7.4",668 "cc",989 "cc",669 "cfg-if",990 "cfg-if",670 "constant_time_eq 0.3.0",991 "constant_time_eq 0.3.0",671 "digest 0.10.7",672]992]673993674[[package]]994[[package]]727checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"1047checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"7281048729[[package]]1049[[package]]1050name = "blocking"1051version = "1.4.0"1052source = "registry+https://github.com/rust-lang/crates.io-index"1053checksum = "94c4ef1f913d78636d78d538eec1f18de81e481f44b1be0a81060090530846e1"1054dependencies = [1055 "async-channel",1056 "async-lock",1057 "async-task",1058 "fastrand 2.0.1",1059 "futures-io",1060 "futures-lite",1061 "piper",1062 "tracing",1063]10641065[[package]]730name = "bondrewd"1066name = "bondrewd"731version = "0.1.14"1067version = "0.1.14"732source = "registry+https://github.com/rust-lang/crates.io-index"1068source = "registry+https://github.com/rust-lang/crates.io-index"774checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"1110checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"7751111776[[package]]1112[[package]]1113name = "bs58"1114version = "0.5.0"1115source = "registry+https://github.com/rust-lang/crates.io-index"1116checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896"1117dependencies = [1118 "tinyvec",1119]11201121[[package]]777name = "bstr"1122name = "bstr"778version = "1.6.0"1123version = "1.6.2"779source = "registry+https://github.com/rust-lang/crates.io-index"1124source = "registry+https://github.com/rust-lang/crates.io-index"780checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"1125checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"781dependencies = [1126dependencies = [782 "memchr",1127 "memchr",783 "serde",1128 "serde",7941139795[[package]]1140[[package]]796name = "bumpalo"1141name = "bumpalo"797version = "3.13.0"1142version = "3.14.0"798source = "registry+https://github.com/rust-lang/crates.io-index"1143source = "registry+https://github.com/rust-lang/crates.io-index"799checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"1144checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"8001145801[[package]]1146[[package]]802name = "byte-slice-cast"1147name = "byte-slice-cast"8121157813[[package]]1158[[package]]814name = "bytemuck"1159name = "bytemuck"815version = "1.13.1"1160version = "1.14.0"816source = "registry+https://github.com/rust-lang/crates.io-index"1161source = "registry+https://github.com/rust-lang/crates.io-index"817checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"1162checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"8181163819[[package]]1164[[package]]820name = "byteorder"1165name = "byteorder"8241169825[[package]]1170[[package]]826name = "bytes"1171name = "bytes"827version = "1.4.0"1172version = "1.5.0"828source = "registry+https://github.com/rust-lang/crates.io-index"1173source = "registry+https://github.com/rust-lang/crates.io-index"829checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"1174checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"8301175831[[package]]1176[[package]]832name = "bzip2-sys"1177name = "bzip2-sys"865dependencies = [1210dependencies = [866 "camino",1211 "camino",867 "cargo-platform",1212 "cargo-platform",868 "semver 1.0.18",1213 "semver 1.0.19",869 "serde",1214 "serde",870 "serde_json",1215 "serde_json",871 "thiserror",1216 "thiserror",872]1217]8731218874[[package]]1219[[package]]875name = "cc"1220name = "cc"876version = "1.0.82"1221version = "1.0.83"877source = "registry+https://github.com/rust-lang/crates.io-index"1222source = "registry+https://github.com/rust-lang/crates.io-index"878checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"1223checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"879dependencies = [1224dependencies = [880 "jobserver",1225 "jobserver",881 "libc",1226 "libc",9031248904[[package]]1249[[package]]905name = "cfg-expr"1250name = "cfg-expr"906version = "0.15.4"1251version = "0.15.5"907source = "registry+https://github.com/rust-lang/crates.io-index"1252source = "registry+https://github.com/rust-lang/crates.io-index"908checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"1253checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"909dependencies = [1254dependencies = [910 "smallvec",1255 "smallvec",911]1256]935]1280]9361281937[[package]]1282[[package]]1283name = "chacha20"1284version = "0.9.1"1285source = "registry+https://github.com/rust-lang/crates.io-index"1286checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"1287dependencies = [1288 "cfg-if",1289 "cipher 0.4.4",1290 "cpufeatures",1291]12921293[[package]]938name = "chacha20poly1305"1294name = "chacha20poly1305"939version = "0.9.1"1295version = "0.9.1"940source = "registry+https://github.com/rust-lang/crates.io-index"1296source = "registry+https://github.com/rust-lang/crates.io-index"941checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5"1297checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5"942dependencies = [1298dependencies = [943 "aead 0.4.3",1299 "aead 0.4.3",944 "chacha20",1300 "chacha20 0.8.2",945 "cipher 0.3.0",1301 "cipher 0.3.0",946 "poly1305",1302 "poly1305 0.7.2",947 "zeroize",1303 "zeroize",948]1304]9491305950[[package]]1306[[package]]951name = "chrono"1307name = "chrono"952version = "0.4.26"1308version = "0.4.31"953source = "registry+https://github.com/rust-lang/crates.io-index"1309source = "registry+https://github.com/rust-lang/crates.io-index"954checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"1310checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"955dependencies = [1311dependencies = [956 "android-tzdata",1312 "android-tzdata",957 "iana-time-zone",1313 "iana-time-zone",958 "js-sys",1314 "js-sys",959 "num-traits",1315 "num-traits",960 "time 0.1.45",961 "wasm-bindgen",1316 "wasm-bindgen",962 "winapi",1317 "windows-targets 0.48.5",963]1318]9641319965[[package]]1320[[package]]966name = "cid"1321name = "cid"967version = "0.8.6"1322version = "0.9.0"968source = "registry+https://github.com/rust-lang/crates.io-index"1323source = "registry+https://github.com/rust-lang/crates.io-index"969checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2"1324checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143"970dependencies = [1325dependencies = [971 "core2",1326 "core2",972 "multibase",1327 "multibase",973 "multihash 0.16.3",1328 "multihash",974 "serde",1329 "serde",975 "unsigned-varint",1330 "unsigned-varint",976]1331]102513801026[[package]]1381[[package]]1027name = "clap"1382name = "clap"1028version = "4.3.21"1383version = "4.4.6"1029source = "registry+https://github.com/rust-lang/crates.io-index"1384source = "registry+https://github.com/rust-lang/crates.io-index"1030checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd"1385checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"1031dependencies = [1386dependencies = [1032 "clap_builder",1387 "clap_builder",1033 "clap_derive",1388 "clap_derive",1034 "once_cell",1035]1389]103613901037[[package]]1391[[package]]1038name = "clap_builder"1392name = "clap_builder"1039version = "4.3.21"1393version = "4.4.6"1040source = "registry+https://github.com/rust-lang/crates.io-index"1394source = "registry+https://github.com/rust-lang/crates.io-index"1041checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa"1395checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"1042dependencies = [1396dependencies = [1043 "anstream",1397 "anstream",1044 "anstyle",1398 "anstyle",104814021049[[package]]1403[[package]]1050name = "clap_derive"1404name = "clap_derive"1051version = "4.3.12"1405version = "4.4.2"1052source = "registry+https://github.com/rust-lang/crates.io-index"1406source = "registry+https://github.com/rust-lang/crates.io-index"1053checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"1407checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"1054dependencies = [1408dependencies = [1055 "heck",1409 "heck",1056 "proc-macro2",1410 "proc-macro2",1057 "quote",1411 "quote",1058 "syn 2.0.28",1412 "syn 2.0.37",1059]1413]106014141061[[package]]1415[[package]]1062name = "clap_lex"1416name = "clap_lex"1063version = "0.5.0"1417version = "0.5.1"1064source = "registry+https://github.com/rust-lang/crates.io-index"1418source = "registry+https://github.com/rust-lang/crates.io-index"1065checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"1419checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"106614201067[[package]]1421[[package]]1068name = "coarsetime"1422name = "coarsetime"1069version = "0.1.23"1423version = "0.1.28"1070source = "registry+https://github.com/rust-lang/crates.io-index"1424source = "registry+https://github.com/rust-lang/crates.io-index"1071checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354"1425checksum = "99280f81a35511dda7d44f7c943491b41d3ac6fd0b54aea92498bec8612a2423"1072dependencies = [1426dependencies = [1073 "libc",1427 "libc",1074 "once_cell",1428 "once_cell",109414481095[[package]]1449[[package]]1096name = "comfy-table"1450name = "comfy-table"1097version = "6.2.0"1451version = "7.0.1"1098source = "registry+https://github.com/rust-lang/crates.io-index"1452source = "registry+https://github.com/rust-lang/crates.io-index"1099checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba"1453checksum = "9ab77dbd8adecaf3f0db40581631b995f312a8a5ae3aa9993188bb8f23d83a5b"1100dependencies = [1454dependencies = [1101 "strum",1455 "strum",1102 "strum_macros",1456 "strum_macros",1103 "unicode-width",1457 "unicode-width",1104]1458]110514591106[[package]]1460[[package]]1461name = "common"1462version = "0.1.0"1463source = "git+https://github.com/w3f/ring-proof?rev=0e948f3#0e948f3c28cbacecdd3020403c4841c0eb339213"1464dependencies = [1465 "ark-ec",1466 "ark-ff",1467 "ark-poly",1468 "ark-serialize",1469 "ark-std",1470 "fflonk",1471 "merlin 3.0.0",1472]14731474[[package]]1475name = "common-path"1476version = "1.0.0"1477source = "registry+https://github.com/rust-lang/crates.io-index"1478checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101"14791480[[package]]1107name = "concurrent-queue"1481name = "concurrent-queue"1108version = "2.2.0"1482version = "2.3.0"1109source = "registry+https://github.com/rust-lang/crates.io-index"1483source = "registry+https://github.com/rust-lang/crates.io-index"1110checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"1484checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"1111dependencies = [1485dependencies = [1112 "crossbeam-utils",1486 "crossbeam-utils",1113]1487]1132checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"1506checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"113315071134[[package]]1508[[package]]1509name = "const-random"1510version = "0.1.15"1511source = "registry+https://github.com/rust-lang/crates.io-index"1512checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e"1513dependencies = [1514 "const-random-macro",1515 "proc-macro-hack",1516]15171518[[package]]1519name = "const-random-macro"1520version = "0.1.15"1521source = "registry+https://github.com/rust-lang/crates.io-index"1522checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb"1523dependencies = [1524 "getrandom 0.2.10",1525 "once_cell",1526 "proc-macro-hack",1527 "tiny-keccak",1528]15291530[[package]]1135name = "constant_time_eq"1531name = "constant_time_eq"1136version = "0.2.6"1532version = "0.1.5"1137source = "registry+https://github.com/rust-lang/crates.io-index"1533source = "registry+https://github.com/rust-lang/crates.io-index"1138checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6"1534checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"113915351140[[package]]1536[[package]]1141name = "constant_time_eq"1537name = "constant_time_eq"1223 "cranelift-codegen-shared",1619 "cranelift-codegen-shared",1224 "cranelift-entity",1620 "cranelift-entity",1225 "cranelift-isle",1621 "cranelift-isle",1226 "gimli",1622 "gimli 0.27.3",1227 "hashbrown 0.13.2",1623 "hashbrown 0.13.2",1228 "log",1624 "log",1229 "regalloc2",1625 "regalloc2",1293 "cranelift-codegen",1689 "cranelift-codegen",1294 "cranelift-entity",1690 "cranelift-entity",1295 "cranelift-frontend",1691 "cranelift-frontend",1296 "itertools",1692 "itertools 0.10.5",1297 "log",1693 "log",1298 "smallvec",1694 "smallvec",1299 "wasmparser",1695 "wasmparser",1325]1721]132617221327[[package]]1723[[package]]1328name = "crossbeam-channel"1329version = "0.5.8"1330source = "registry+https://github.com/rust-lang/crates.io-index"1331checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"1332dependencies = [1333 "cfg-if",1334 "crossbeam-utils",1335]13361337[[package]]1338name = "crossbeam-deque"1724name = "crossbeam-deque"1339version = "0.8.3"1725version = "0.8.3"1340source = "registry+https://github.com/rust-lang/crates.io-index"1726source = "registry+https://github.com/rust-lang/crates.io-index"139717831398[[package]]1784[[package]]1399name = "crypto-bigint"1785name = "crypto-bigint"1400version = "0.5.2"1786version = "0.5.3"1401source = "registry+https://github.com/rust-lang/crates.io-index"1787source = "registry+https://github.com/rust-lang/crates.io-index"1402checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"1788checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124"1403dependencies = [1789dependencies = [1404 "generic-array 0.14.7",1790 "generic-array 0.14.7",1405 "rand_core 0.6.4",1791 "rand_core 0.6.4",1459[[package]]1845[[package]]1460name = "cumulus-client-cli"1846name = "cumulus-client-cli"1461version = "0.1.0"1847version = "0.1.0"1462source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"1848source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1463dependencies = [1849dependencies = [1464 "clap",1850 "clap",1465 "parity-scale-codec",1851 "parity-scale-codec",1466 "sc-chain-spec",1852 "sc-chain-spec",1467 "sc-cli",1853 "sc-cli",1854 "sc-client-api",1468 "sc-service",1855 "sc-service",1469 "sp-core",1856 "sp-core",1470 "sp-runtime",1857 "sp-runtime",1474[[package]]1861[[package]]1475name = "cumulus-client-collator"1862name = "cumulus-client-collator"1476version = "0.1.0"1863version = "0.1.0"1477source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"1864source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1478dependencies = [1865dependencies = [1479 "cumulus-client-consensus-common",1866 "cumulus-client-consensus-common",1480 "cumulus-client-network",1867 "cumulus-client-network",1497[[package]]1884[[package]]1498name = "cumulus-client-consensus-aura"1885name = "cumulus-client-consensus-aura"1499version = "0.1.0"1886version = "0.1.0"1500source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"1887source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1501dependencies = [1888dependencies = [1502 "async-trait",1889 "async-trait",1503 "cumulus-client-collator",1890 "cumulus-client-collator",1504 "cumulus-client-consensus-common",1891 "cumulus-client-consensus-common",1505 "cumulus-client-consensus-proposer",1892 "cumulus-client-consensus-proposer",1893 "cumulus-primitives-aura",1506 "cumulus-primitives-core",1894 "cumulus-primitives-core",1507 "cumulus-primitives-parachain-inherent",1895 "cumulus-primitives-parachain-inherent",1508 "cumulus-relay-chain-interface",1896 "cumulus-relay-chain-interface",1509 "futures",1897 "futures",1510 "parity-scale-codec",1898 "parity-scale-codec",1511 "polkadot-node-primitives",1899 "polkadot-node-primitives",1900 "polkadot-node-subsystem",1512 "polkadot-overseer",1901 "polkadot-overseer",1513 "polkadot-primitives",1902 "polkadot-primitives",1514 "sc-client-api",1903 "sc-client-api",1515 "sc-consensus",1904 "sc-consensus",1516 "sc-consensus-aura",1905 "sc-consensus-aura",1906 "sc-consensus-babe",1517 "sc-consensus-slots",1907 "sc-consensus-slots",1518 "sc-telemetry",1908 "sc-telemetry",1909 "schnellru",1519 "sp-api",1910 "sp-api",1520 "sp-application-crypto",1911 "sp-application-crypto",1521 "sp-block-builder",1912 "sp-block-builder",1535[[package]]1926[[package]]1536name = "cumulus-client-consensus-common"1927name = "cumulus-client-consensus-common"1537version = "0.1.0"1928version = "0.1.0"1538source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"1929source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1539dependencies = [1930dependencies = [1540 "async-trait",1931 "async-trait",1541 "cumulus-client-pov-recovery",1932 "cumulus-client-pov-recovery",1548 "polkadot-primitives",1939 "polkadot-primitives",1549 "sc-client-api",1940 "sc-client-api",1550 "sc-consensus",1941 "sc-consensus",1942 "sc-consensus-babe",1551 "schnellru",1943 "schnellru",1552 "sp-blockchain",1944 "sp-blockchain",1553 "sp-consensus",1945 "sp-consensus",1946 "sp-consensus-slots",1554 "sp-core",1947 "sp-core",1555 "sp-runtime",1948 "sp-runtime",1949 "sp-timestamp",1556 "sp-trie",1950 "sp-trie",1557 "substrate-prometheus-endpoint",1951 "substrate-prometheus-endpoint",1558 "tracing",1952 "tracing",1561[[package]]1955[[package]]1562name = "cumulus-client-consensus-proposer"1956name = "cumulus-client-consensus-proposer"1563version = "0.1.0"1957version = "0.1.0"1564source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"1958source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1565dependencies = [1959dependencies = [1566 "anyhow",1960 "anyhow",1567 "async-trait",1961 "async-trait",1576[[package]]1970[[package]]1577name = "cumulus-client-network"1971name = "cumulus-client-network"1578version = "0.1.0"1972version = "0.1.0"1579source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"1973source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1580dependencies = [1974dependencies = [1581 "async-trait",1975 "async-trait",1582 "cumulus-relay-chain-interface",1976 "cumulus-relay-chain-interface",1585 "parity-scale-codec",1979 "parity-scale-codec",1586 "parking_lot 0.12.1",1980 "parking_lot 0.12.1",1587 "polkadot-node-primitives",1981 "polkadot-node-primitives",1588 "polkadot-parachain",1982 "polkadot-parachain-primitives",1589 "polkadot-primitives",1983 "polkadot-primitives",1590 "sc-client-api",1984 "sc-client-api",1591 "sp-blockchain",1985 "sp-blockchain",1599[[package]]1993[[package]]1600name = "cumulus-client-pov-recovery"1994name = "cumulus-client-pov-recovery"1601version = "0.1.0"1995version = "0.1.0"1602source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"1996source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1603dependencies = [1997dependencies = [1604 "async-trait",1998 "async-trait",1605 "cumulus-primitives-core",1999 "cumulus-primitives-core",1623[[package]]2017[[package]]1624name = "cumulus-client-service"2018name = "cumulus-client-service"1625version = "0.1.0"2019version = "0.1.0"1626source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2020source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1627dependencies = [2021dependencies = [1628 "cumulus-client-cli",2022 "cumulus-client-cli",1629 "cumulus-client-collator",2023 "cumulus-client-collator",1658[[package]]2052[[package]]1659name = "cumulus-pallet-aura-ext"2053name = "cumulus-pallet-aura-ext"1660version = "0.1.0"2054version = "0.1.0"1661source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2055source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1662dependencies = [2056dependencies = [2057 "cumulus-pallet-parachain-system",1663 "frame-support",2058 "frame-support",1664 "frame-system",2059 "frame-system",1665 "pallet-aura",2060 "pallet-aura",2061 "pallet-timestamp",1666 "parity-scale-codec",2062 "parity-scale-codec",1667 "scale-info",2063 "scale-info",1668 "sp-application-crypto",2064 "sp-application-crypto",1674[[package]]2070[[package]]1675name = "cumulus-pallet-dmp-queue"2071name = "cumulus-pallet-dmp-queue"1676version = "0.1.0"2072version = "0.1.0"1677source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2073source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1678dependencies = [2074dependencies = [1679 "cumulus-primitives-core",2075 "cumulus-primitives-core",1680 "frame-support",2076 "frame-support",1685 "sp-io",2081 "sp-io",1686 "sp-runtime",2082 "sp-runtime",1687 "sp-std",2083 "sp-std",1688 "xcm",2084 "staging-xcm",1689]2085]169020861691[[package]]2087[[package]]1692name = "cumulus-pallet-parachain-system"2088name = "cumulus-pallet-parachain-system"1693version = "0.1.0"2089version = "0.1.0"1694source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2090source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1695dependencies = [2091dependencies = [1696 "bytes",2092 "bytes",1697 "cumulus-pallet-parachain-system-proc-macro",2093 "cumulus-pallet-parachain-system-proc-macro",1703 "impl-trait-for-tuples",2099 "impl-trait-for-tuples",1704 "log",2100 "log",1705 "parity-scale-codec",2101 "parity-scale-codec",1706 "polkadot-parachain",2102 "polkadot-parachain-primitives",1707 "scale-info",2103 "scale-info",1708 "sp-core",2104 "sp-core",1709 "sp-externalities",2105 "sp-externalities",1714 "sp-std",2110 "sp-std",1715 "sp-trie",2111 "sp-trie",1716 "sp-version",2112 "sp-version",1717 "xcm",2113 "staging-xcm",2114 "trie-db",1718]2115]171921161720[[package]]2117[[package]]1721name = "cumulus-pallet-parachain-system-proc-macro"2118name = "cumulus-pallet-parachain-system-proc-macro"1722version = "0.1.0"2119version = "0.1.0"1723source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2120source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1724dependencies = [2121dependencies = [1725 "proc-macro-crate",2122 "proc-macro-crate",1726 "proc-macro2",2123 "proc-macro2",1727 "quote",2124 "quote",1728 "syn 2.0.28",2125 "syn 2.0.37",1729]2126]173021271731[[package]]2128[[package]]1732name = "cumulus-pallet-xcm"2129name = "cumulus-pallet-xcm"1733version = "0.1.0"2130version = "0.1.0"1734source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2131source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1735dependencies = [2132dependencies = [1736 "cumulus-primitives-core",2133 "cumulus-primitives-core",1737 "frame-support",2134 "frame-support",1741 "sp-io",2138 "sp-io",1742 "sp-runtime",2139 "sp-runtime",1743 "sp-std",2140 "sp-std",1744 "xcm",2141 "staging-xcm",1745]2142]174621431747[[package]]2144[[package]]1748name = "cumulus-pallet-xcmp-queue"2145name = "cumulus-pallet-xcmp-queue"1749version = "0.1.0"2146version = "0.1.0"1750source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2147source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1751dependencies = [2148dependencies = [1752 "cumulus-primitives-core",2149 "cumulus-primitives-core",2150 "frame-benchmarking",1753 "frame-support",2151 "frame-support",1754 "frame-system",2152 "frame-system",1755 "log",2153 "log",1760 "sp-io",2158 "sp-io",1761 "sp-runtime",2159 "sp-runtime",1762 "sp-std",2160 "sp-std",1763 "xcm",2161 "staging-xcm",1764 "xcm-executor",2162 "staging-xcm-executor",1765]2163]176621641767[[package]]2165[[package]]2166name = "cumulus-primitives-aura"2167version = "0.1.0"2168source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"2169dependencies = [2170 "parity-scale-codec",2171 "polkadot-core-primitives",2172 "polkadot-primitives",2173 "sp-api",2174 "sp-consensus-aura",2175 "sp-runtime",2176 "sp-std",2177]21782179[[package]]1768name = "cumulus-primitives-core"2180name = "cumulus-primitives-core"1769version = "0.1.0"2181version = "0.1.0"1770source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2182source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1771dependencies = [2183dependencies = [1772 "parity-scale-codec",2184 "parity-scale-codec",1773 "polkadot-core-primitives",2185 "polkadot-core-primitives",1774 "polkadot-parachain",2186 "polkadot-parachain-primitives",1775 "polkadot-primitives",2187 "polkadot-primitives",1776 "scale-info",2188 "scale-info",1777 "sp-api",2189 "sp-api",1778 "sp-runtime",2190 "sp-runtime",1779 "sp-std",2191 "sp-std",1780 "sp-trie",2192 "sp-trie",1781 "xcm",2193 "staging-xcm",1782]2194]178321951784[[package]]2196[[package]]1785name = "cumulus-primitives-parachain-inherent"2197name = "cumulus-primitives-parachain-inherent"1786version = "0.1.0"2198version = "0.1.0"1787source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2199source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1788dependencies = [2200dependencies = [1789 "async-trait",2201 "async-trait",1790 "cumulus-primitives-core",2202 "cumulus-primitives-core",1807[[package]]2219[[package]]1808name = "cumulus-primitives-timestamp"2220name = "cumulus-primitives-timestamp"1809version = "0.1.0"2221version = "0.1.0"1810source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2222source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1811dependencies = [2223dependencies = [1812 "cumulus-primitives-core",2224 "cumulus-primitives-core",1813 "futures",2225 "futures",1820[[package]]2232[[package]]1821name = "cumulus-primitives-utility"2233name = "cumulus-primitives-utility"1822version = "0.1.0"2234version = "0.1.0"1823source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2235source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1824dependencies = [2236dependencies = [1825 "cumulus-primitives-core",2237 "cumulus-primitives-core",1826 "frame-support",2238 "frame-support",1830 "sp-io",2242 "sp-io",1831 "sp-runtime",2243 "sp-runtime",1832 "sp-std",2244 "sp-std",1833 "xcm",2245 "staging-xcm",1834 "xcm-builder",2246 "staging-xcm-builder",1835 "xcm-executor",2247 "staging-xcm-executor",1836]2248]183722491838[[package]]2250[[package]]1839name = "cumulus-relay-chain-inprocess-interface"2251name = "cumulus-relay-chain-inprocess-interface"1840version = "0.1.0"2252version = "0.1.0"1841source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2253source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1842dependencies = [2254dependencies = [1843 "async-trait",2255 "async-trait",1844 "cumulus-primitives-core",2256 "cumulus-primitives-core",1845 "cumulus-relay-chain-interface",2257 "cumulus-relay-chain-interface",1846 "futures",2258 "futures",1847 "futures-timer",2259 "futures-timer",1848 "polkadot-cli",2260 "polkadot-cli",1849 "polkadot-client",1850 "polkadot-service",2261 "polkadot-service",1851 "sc-cli",2262 "sc-cli",1852 "sc-client-api",2263 "sc-client-api",1863[[package]]2274[[package]]1864name = "cumulus-relay-chain-interface"2275name = "cumulus-relay-chain-interface"1865version = "0.1.0"2276version = "0.1.0"1866source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2277source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1867dependencies = [2278dependencies = [1868 "async-trait",2279 "async-trait",1869 "cumulus-primitives-core",2280 "cumulus-primitives-core",1881[[package]]2292[[package]]1882name = "cumulus-relay-chain-minimal-node"2293name = "cumulus-relay-chain-minimal-node"1883version = "0.1.0"2294version = "0.1.0"1884source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2295source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1885dependencies = [2296dependencies = [1886 "array-bytes 6.1.0",2297 "array-bytes",1887 "async-trait",2298 "async-trait",1888 "cumulus-primitives-core",2299 "cumulus-primitives-core",1889 "cumulus-relay-chain-interface",2300 "cumulus-relay-chain-interface",1890 "cumulus-relay-chain-rpc-interface",2301 "cumulus-relay-chain-rpc-interface",1891 "futures",2302 "futures",1892 "lru 0.9.0",1893 "polkadot-availability-recovery",2303 "polkadot-availability-recovery",1894 "polkadot-collator-protocol",2304 "polkadot-collator-protocol",1895 "polkadot-core-primitives",2305 "polkadot-core-primitives",1901 "polkadot-overseer",2311 "polkadot-overseer",1902 "polkadot-primitives",2312 "polkadot-primitives",1903 "sc-authority-discovery",2313 "sc-authority-discovery",1904 "sc-client-api",1905 "sc-network",2314 "sc-network",1906 "sc-network-common",2315 "sc-network-common",1907 "sc-service",2316 "sc-service",1908 "sc-tracing",2317 "sc-tracing",1909 "sc-utils",2318 "sc-utils",2319 "schnellru",1910 "sp-api",2320 "sp-api",1911 "sp-blockchain",1912 "sp-consensus",2321 "sp-consensus",1913 "sp-consensus-babe",2322 "sp-consensus-babe",1914 "sp-runtime",2323 "sp-runtime",1915 "tokio",1916 "tracing",2324 "tracing",1917]2325]191823261919[[package]]2327[[package]]1920name = "cumulus-relay-chain-rpc-interface"2328name = "cumulus-relay-chain-rpc-interface"1921version = "0.1.0"2329version = "0.1.0"1922source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2330source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1923dependencies = [2331dependencies = [1924 "async-trait",2332 "async-trait",1925 "cumulus-primitives-core",2333 "cumulus-primitives-core",1926 "cumulus-relay-chain-interface",2334 "cumulus-relay-chain-interface",2335 "either",1927 "futures",2336 "futures",1928 "futures-timer",2337 "futures-timer",1929 "jsonrpsee",2338 "jsonrpsee",1930 "lru 0.9.0",1931 "parity-scale-codec",2339 "parity-scale-codec",2340 "pin-project",1932 "polkadot-overseer",2341 "polkadot-overseer",2342 "rand 0.8.5",1933 "sc-client-api",2343 "sc-client-api",1934 "sc-rpc-api",2344 "sc-rpc-api",1935 "sc-service",2345 "sc-service",2346 "schnellru",1936 "serde",2347 "serde",1937 "serde_json",2348 "serde_json",2349 "smoldot",2350 "smoldot-light",1938 "sp-api",2351 "sp-api",1939 "sp-authority-discovery",2352 "sp-authority-discovery",1940 "sp-consensus-babe",2353 "sp-consensus-babe",1941 "sp-core",2354 "sp-core",2355 "sp-runtime",1942 "sp-state-machine",2356 "sp-state-machine",1943 "sp-storage",2357 "sp-storage",2358 "thiserror",1944 "tokio",2359 "tokio",2360 "tokio-util",1945 "tracing",2361 "tracing",1946 "url",2362 "url",1947]2363]194823641949[[package]]2365[[package]]1950name = "cumulus-test-relay-sproof-builder"2366name = "cumulus-test-relay-sproof-builder"1951version = "0.1.0"2367version = "0.1.0"1952source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"2368source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"1953dependencies = [2369dependencies = [1954 "cumulus-primitives-core",2370 "cumulus-primitives-core",1955 "parity-scale-codec",2371 "parity-scale-codec",1956 "polkadot-primitives",2372 "polkadot-primitives",1957 "sp-runtime",2373 "sp-runtime",1958 "sp-state-machine",2374 "sp-state-machine",1959 "sp-std",2375 "sp-std",2376 "sp-trie",1960]2377]196123781962[[package]]2379[[package]]198724041988[[package]]2405[[package]]1989name = "curve25519-dalek"2406name = "curve25519-dalek"1990version = "4.0.0-rc.1"2407version = "4.1.1"1991source = "registry+https://github.com/rust-lang/crates.io-index"2408source = "registry+https://github.com/rust-lang/crates.io-index"1992checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16"2409checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"1993dependencies = [2410dependencies = [1994 "cfg-if",2411 "cfg-if",2412 "cpufeatures",2413 "curve25519-dalek-derive",2414 "digest 0.10.7",1995 "fiat-crypto",2415 "fiat-crypto",1996 "packed_simd_2",2416 "platforms",1997 "platforms 3.0.2",2417 "rustc_version",1998 "subtle",2418 "subtle",1999 "zeroize",2419 "zeroize",2000]2420]200124212002[[package]]2422[[package]]2423name = "curve25519-dalek-derive"2424version = "0.1.0"2425source = "registry+https://github.com/rust-lang/crates.io-index"2426checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"2427dependencies = [2428 "proc-macro2",2429 "quote",2430 "syn 2.0.37",2431]24322433[[package]]2434name = "curve25519-dalek-ng"2435version = "4.1.1"2436source = "registry+https://github.com/rust-lang/crates.io-index"2437checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8"2438dependencies = [2439 "byteorder",2440 "digest 0.9.0",2441 "rand_core 0.6.4",2442 "subtle-ng",2443 "zeroize",2444]24452446[[package]]2003name = "cxx"2447name = "cxx"2004version = "1.0.105"2448version = "1.0.107"2005source = "registry+https://github.com/rust-lang/crates.io-index"2449source = "registry+https://github.com/rust-lang/crates.io-index"2006checksum = "666a3ec767f4bbaf0dcfcc3b4ea048b90520b254fdf88813e763f4c762636c14"2450checksum = "bbe98ba1789d56fb3db3bee5e032774d4f421b685de7ba703643584ba24effbe"2007dependencies = [2451dependencies = [2008 "cc",2452 "cc",2009 "cxxbridge-flags",2453 "cxxbridge-flags",201324572014[[package]]2458[[package]]2015name = "cxx-build"2459name = "cxx-build"2016version = "1.0.105"2460version = "1.0.107"2017source = "registry+https://github.com/rust-lang/crates.io-index"2461source = "registry+https://github.com/rust-lang/crates.io-index"2018checksum = "162bec16c4cc28b19e26db0197b60ba5480fdb9a4cbf0f4c6c104a937741b78e"2462checksum = "c4ce20f6b8433da4841b1dadfb9468709868022d829d5ca1f2ffbda928455ea3"2019dependencies = [2463dependencies = [2020 "cc",2464 "cc",2021 "codespan-reporting",2465 "codespan-reporting",2022 "once_cell",2466 "once_cell",2023 "proc-macro2",2467 "proc-macro2",2024 "quote",2468 "quote",2025 "scratch",2469 "scratch",2026 "syn 2.0.28",2470 "syn 2.0.37",2027]2471]202824722029[[package]]2473[[package]]2030name = "cxxbridge-flags"2474name = "cxxbridge-flags"2031version = "1.0.105"2475version = "1.0.107"2032source = "registry+https://github.com/rust-lang/crates.io-index"2476source = "registry+https://github.com/rust-lang/crates.io-index"2033checksum = "d6e8c238aadc4b9f2c00269d04c87abb23f96dd240803872536eed1a304bb40e"2477checksum = "20888d9e1d2298e2ff473cee30efe7d5036e437857ab68bbfea84c74dba91da2"203424782035[[package]]2479[[package]]2036name = "cxxbridge-macro"2480name = "cxxbridge-macro"2037version = "1.0.105"2481version = "1.0.107"2038source = "registry+https://github.com/rust-lang/crates.io-index"2482source = "registry+https://github.com/rust-lang/crates.io-index"2039checksum = "59d9ffb4193dd22180b8d5747b1e095c3d9c9c665ce39b0483a488948f437e06"2483checksum = "2fa16a70dd58129e4dfffdff535fb1bce66673f7bbeec4a5a1765a504e1ccd84"2040dependencies = [2484dependencies = [2041 "proc-macro2",2485 "proc-macro2",2042 "quote",2486 "quote",2043 "syn 2.0.28",2487 "syn 2.0.37",2044]2488]204524892046[[package]]2490[[package]]215525992156[[package]]2600[[package]]2157name = "deranged"2601name = "deranged"2158version = "0.3.7"2602version = "0.3.8"2159source = "registry+https://github.com/rust-lang/crates.io-index"2603source = "registry+https://github.com/rust-lang/crates.io-index"2160checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929"2604checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"216126052162[[package]]2606[[package]]2163name = "derivative"2607name = "derivative"2310dependencies = [2754dependencies = [2311 "proc-macro2",2755 "proc-macro2",2312 "quote",2756 "quote",2313 "syn 2.0.28",2757 "syn 2.0.37",2314]2758]231527592316[[package]]2760[[package]]2761name = "dleq_vrf"2762version = "0.0.2"2763source = "git+https://github.com/w3f/ring-vrf?rev=3119f51#3119f51b54b69308abfb0671f6176cb125ae1bf1"2764dependencies = [2765 "ark-ec",2766 "ark-ff",2767 "ark-scale 0.0.10",2768 "ark-secret-scalar",2769 "ark-serialize",2770 "ark-std",2771 "ark-transcript",2772 "arrayvec 0.7.4",2773 "rand_core 0.6.4",2774 "zeroize",2775]27762777[[package]]2778name = "docify"2779version = "0.2.4"2780source = "registry+https://github.com/rust-lang/crates.io-index"2781checksum = "76ee528c501ddd15d5181997e9518e59024844eac44fd1e40cb20ddb2a8562fa"2782dependencies = [2783 "docify_macros",2784]27852786[[package]]2787name = "docify_macros"2788version = "0.2.4"2789source = "registry+https://github.com/rust-lang/crates.io-index"2790checksum = "0ca01728ab2679c464242eca99f94e2ce0514b52ac9ad950e2ed03fca991231c"2791dependencies = [2792 "common-path",2793 "derive-syn-parse",2794 "once_cell",2795 "proc-macro2",2796 "quote",2797 "regex",2798 "syn 2.0.37",2799 "termcolor",2800 "toml 0.7.8",2801 "walkdir",2802]28032804[[package]]2317name = "downcast"2805name = "downcast"2318version = "0.11.0"2806version = "0.11.0"2319source = "registry+https://github.com/rust-lang/crates.io-index"2807source = "registry+https://github.com/rust-lang/crates.io-index"235428422355[[package]]2843[[package]]2356name = "dyn-clone"2844name = "dyn-clone"2357version = "1.0.12"2845version = "1.0.14"2358source = "registry+https://github.com/rust-lang/crates.io-index"2846source = "registry+https://github.com/rust-lang/crates.io-index"2359checksum = "304e6508efa593091e97a9abbc10f90aa7ca635b6d2784feff3c89d41dd12272"2847checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd"236028482361[[package]]2849[[package]]2362name = "ecdsa"2850name = "ecdsa"238628742387[[package]]2875[[package]]2388name = "ed25519"2876name = "ed25519"2389version = "1.5.3"2877version = "2.2.2"2390source = "registry+https://github.com/rust-lang/crates.io-index"2878source = "registry+https://github.com/rust-lang/crates.io-index"2391checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7"2879checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"2392dependencies = [2880dependencies = [2393 "signature 1.6.4",2881 "pkcs8 0.10.2",2882 "signature 2.1.0",2394]2883]239528842396[[package]]2885[[package]]2397name = "ed25519-dalek"2886name = "ed25519-dalek"2398version = "1.0.1"2887version = "2.0.0"2399source = "registry+https://github.com/rust-lang/crates.io-index"2888source = "registry+https://github.com/rust-lang/crates.io-index"2400checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"2889checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980"2401dependencies = [2890dependencies = [2402 "curve25519-dalek 3.2.0",2891 "curve25519-dalek 4.1.1",2403 "ed25519",2892 "ed25519",2404 "rand 0.7.3",2893 "rand_core 0.6.4",2405 "serde",2894 "serde",2406 "sha2 0.9.9",2895 "sha2 0.10.8",2407 "zeroize",2896 "zeroize",2408]2897]240928982422]2911]242329122424[[package]]2913[[package]]2914name = "ed25519-zebra"2915version = "4.0.3"2916source = "registry+https://github.com/rust-lang/crates.io-index"2917checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9"2918dependencies = [2919 "curve25519-dalek 4.1.1",2920 "ed25519",2921 "hashbrown 0.14.1",2922 "hex",2923 "rand_core 0.6.4",2924 "sha2 0.10.8",2925 "zeroize",2926]29272928[[package]]2425name = "either"2929name = "either"2426version = "1.9.0"2930version = "1.9.0"2427source = "registry+https://github.com/rust-lang/crates.io-index"2931source = "registry+https://github.com/rust-lang/crates.io-index"2456checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"2960checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"2457dependencies = [2961dependencies = [2458 "base16ct 0.2.0",2962 "base16ct 0.2.0",2459 "crypto-bigint 0.5.2",2963 "crypto-bigint 0.5.3",2460 "digest 0.10.7",2964 "digest 0.10.7",2461 "ff 0.13.0",2965 "ff 0.13.0",2462 "generic-array 0.14.7",2966 "generic-array 0.14.7",248829922489[[package]]2993[[package]]2490name = "enumflags2"2994name = "enumflags2"2491version = "0.7.7"2995version = "0.7.8"2492source = "registry+https://github.com/rust-lang/crates.io-index"2996source = "registry+https://github.com/rust-lang/crates.io-index"2493checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2"2997checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"2494dependencies = [2998dependencies = [2495 "enumflags2_derive",2999 "enumflags2_derive",2496]3000]249730012498[[package]]3002[[package]]2499name = "enumflags2_derive"3003name = "enumflags2_derive"2500version = "0.7.7"3004version = "0.7.8"2501source = "registry+https://github.com/rust-lang/crates.io-index"3005source = "registry+https://github.com/rust-lang/crates.io-index"2502checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"3006checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"2503dependencies = [3007dependencies = [2504 "proc-macro2",3008 "proc-macro2",2505 "quote",3009 "quote",2506 "syn 2.0.28",3010 "syn 2.0.37",2507]3011]250830122509[[package]]3013[[package]]2510name = "enumn"3014name = "enumn"2511version = "0.1.11"3015version = "0.1.12"2512source = "registry+https://github.com/rust-lang/crates.io-index"3016source = "registry+https://github.com/rust-lang/crates.io-index"2513checksum = "b893c4eb2dc092c811165f84dc7447fae16fb66521717968c34c509b39b1a5c5"3017checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"2514dependencies = [3018dependencies = [2515 "proc-macro2",3019 "proc-macro2",2516 "quote",3020 "quote",2517 "syn 2.0.28",3021 "syn 2.0.37",2518]3022]251930232520[[package]]3024[[package]]255730612558[[package]]3062[[package]]2559name = "errno"3063name = "errno"2560version = "0.3.2"3064version = "0.3.4"2561source = "registry+https://github.com/rust-lang/crates.io-index"3065source = "registry+https://github.com/rust-lang/crates.io-index"2562checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"3066checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480"2563dependencies = [3067dependencies = [2564 "errno-dragonfly",3068 "errno-dragonfly",2565 "libc",3069 "libc",275632602757[[package]]3261[[package]]2758name = "expander"3262name = "expander"2759version = "1.0.0"2760source = "registry+https://github.com/rust-lang/crates.io-index"2761checksum = "f360349150728553f92e4c997a16af8915f418d3a0f21b440d34c5632f16ed84"2762dependencies = [2763 "blake2",2764 "fs-err",2765 "proc-macro2",2766 "quote",2767 "syn 1.0.109",2768]27692770[[package]]2771name = "expander"2772version = "2.0.0"3263version = "2.0.0"2773source = "registry+https://github.com/rust-lang/crates.io-index"3264source = "registry+https://github.com/rust-lang/crates.io-index"2774checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7"3265checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7"2777 "fs-err",3268 "fs-err",2778 "proc-macro2",3269 "proc-macro2",2779 "quote",3270 "quote",2780 "syn 2.0.28",3271 "syn 2.0.37",2781]3272]278232732783[[package]]3274[[package]]280332942804[[package]]3295[[package]]2805name = "fastrand"3296name = "fastrand"2806version = "2.0.0"3297version = "2.0.1"2807source = "registry+https://github.com/rust-lang/crates.io-index"3298source = "registry+https://github.com/rust-lang/crates.io-index"2808checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"3299checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"280933002810[[package]]3301[[package]]2811name = "fatality"3302name = "fatality"2833]3324]283433252835[[package]]3326[[package]]3327name = "fc-api"3328version = "1.0.0-dev"3329source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"3330dependencies = [3331 "async-trait",3332 "fp-storage",3333 "parity-scale-codec",3334 "sp-core",3335 "sp-runtime",3336]33373338[[package]]2836name = "fc-consensus"3339name = "fc-consensus"2837version = "2.0.0-dev"3340version = "2.0.0-dev"2838source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3341source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"2839dependencies = [3342dependencies = [2840 "async-trait",3343 "async-trait",2841 "fp-consensus",3344 "fp-consensus",2851[[package]]3354[[package]]2852name = "fc-db"3355name = "fc-db"2853version = "2.0.0-dev"3356version = "2.0.0-dev"2854source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3357source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"2855dependencies = [3358dependencies = [2856 "async-trait",3359 "async-trait",3360 "fc-api",2857 "fp-storage",3361 "fp-storage",2858 "kvdb-rocksdb",3362 "kvdb-rocksdb",2859 "log",3363 "log",2871[[package]]3375[[package]]2872name = "fc-mapping-sync"3376name = "fc-mapping-sync"2873version = "2.0.0-dev"3377version = "2.0.0-dev"2874source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3378source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"2875dependencies = [3379dependencies = [2876 "fc-db",3380 "fc-db",2877 "fc-storage",3381 "fc-storage",2892[[package]]3396[[package]]2893name = "fc-rpc"3397name = "fc-rpc"2894version = "2.0.0-dev"3398version = "2.0.0-dev"2895source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3399source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"2896dependencies = [3400dependencies = [2897 "ethereum",3401 "ethereum",2898 "ethereum-types",3402 "ethereum-types",2899 "evm",3403 "evm",2900 "fc-db",3404 "fc-api",2901 "fc-mapping-sync",3405 "fc-mapping-sync",2902 "fc-rpc-core",3406 "fc-rpc-core",2903 "fc-storage",3407 "fc-storage",2904 "fp-ethereum",2905 "fp-evm",3408 "fp-evm",2906 "fp-rpc",3409 "fp-rpc",2907 "fp-storage",3410 "fp-storage",2910 "jsonrpsee",3413 "jsonrpsee",2911 "libsecp256k1",3414 "libsecp256k1",2912 "log",3415 "log",2913 "lru 0.8.1",2914 "pallet-evm",3416 "pallet-evm",2915 "parity-scale-codec",3417 "parity-scale-codec",2916 "prometheus",3418 "prometheus",2917 "rand 0.8.5",3419 "rand 0.8.5",2918 "rlp",3420 "rlp",2919 "sc-client-api",3421 "sc-client-api",3422 "sc-consensus-aura",2920 "sc-network",3423 "sc-network",2921 "sc-network-common",3424 "sc-network-common",2922 "sc-network-sync",3425 "sc-network-sync",2925 "sc-transaction-pool",3428 "sc-transaction-pool",2926 "sc-transaction-pool-api",3429 "sc-transaction-pool-api",2927 "sc-utils",3430 "sc-utils",3431 "schnellru",2928 "serde",3432 "serde",2929 "sp-api",3433 "sp-api",2930 "sp-block-builder",3434 "sp-block-builder",2931 "sp-blockchain",3435 "sp-blockchain",2932 "sp-consensus",3436 "sp-consensus",3437 "sp-consensus-aura",2933 "sp-core",3438 "sp-core",3439 "sp-inherents",2934 "sp-io",3440 "sp-io",2935 "sp-runtime",3441 "sp-runtime",2936 "sp-state-machine",3442 "sp-state-machine",2937 "sp-storage",3443 "sp-storage",3444 "sp-timestamp",2938 "substrate-prometheus-endpoint",3445 "substrate-prometheus-endpoint",3446 "thiserror",2939 "tokio",3447 "tokio",2940]3448]294134492942[[package]]3450[[package]]2943name = "fc-rpc-core"3451name = "fc-rpc-core"2944version = "1.1.0-dev"3452version = "1.1.0-dev"2945source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3453source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"2946dependencies = [3454dependencies = [2947 "ethereum",3455 "ethereum",2948 "ethereum-types",3456 "ethereum-types",2955[[package]]3463[[package]]2956name = "fc-storage"3464name = "fc-storage"2957version = "1.0.0-dev"3465version = "1.0.0-dev"2958source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3466source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"2959dependencies = [3467dependencies = [2960 "ethereum",3468 "ethereum",2961 "ethereum-types",3469 "ethereum-types",3000]3508]300135093002[[package]]3510[[package]]3511name = "fflonk"3512version = "0.1.0"3513source = "git+https://github.com/w3f/fflonk#26a5045b24e169cffc1f9328ca83d71061145c40"3514dependencies = [3515 "ark-ec",3516 "ark-ff",3517 "ark-poly",3518 "ark-serialize",3519 "ark-std",3520 "merlin 3.0.0",3521]35223523[[package]]3003name = "fiat-crypto"3524name = "fiat-crypto"3004version = "0.1.20"3525version = "0.2.1"3005source = "registry+https://github.com/rust-lang/crates.io-index"3526source = "registry+https://github.com/rust-lang/crates.io-index"3006checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"3527checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d"300735283008[[package]]3529[[package]]3009name = "file-per-thread-logger"3530name = "file-per-thread-logger"3090[[package]]3611[[package]]3091name = "fork-tree"3612name = "fork-tree"3092version = "3.0.0"3613version = "3.0.0"3093source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3614source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3094dependencies = [3615dependencies = [3095 "parity-scale-codec",3616 "parity-scale-codec",3096]3617]3107[[package]]3628[[package]]3108name = "fp-account"3629name = "fp-account"3109version = "1.0.0-dev"3630version = "1.0.0-dev"3110source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3631source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"3111dependencies = [3632dependencies = [3112 "hex",3633 "hex",3113 "impl-serde",3634 "impl-serde",3126[[package]]3647[[package]]3127name = "fp-consensus"3648name = "fp-consensus"3128version = "2.0.0-dev"3649version = "2.0.0-dev"3129source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3650source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"3130dependencies = [3651dependencies = [3131 "ethereum",3652 "ethereum",3132 "parity-scale-codec",3653 "parity-scale-codec",3138[[package]]3659[[package]]3139name = "fp-ethereum"3660name = "fp-ethereum"3140version = "1.0.0-dev"3661version = "1.0.0-dev"3141source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3662source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"3142dependencies = [3663dependencies = [3143 "ethereum",3664 "ethereum",3144 "ethereum-types",3665 "ethereum-types",3145 "fp-evm",3666 "fp-evm",3146 "frame-support",3667 "frame-support",3147 "num_enum 0.6.1",3148 "parity-scale-codec",3668 "parity-scale-codec",3149 "sp-std",3669 "sp-std",3150]3670]315136713152[[package]]3672[[package]]3153name = "fp-evm"3673name = "fp-evm"3154version = "3.0.0-dev"3674version = "3.0.0-dev"3155source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3675source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"3156dependencies = [3676dependencies = [3157 "evm",3677 "evm",3158 "frame-support",3678 "frame-support",3159 "impl-trait-for-tuples",3679 "num_enum",3160 "parity-scale-codec",3680 "parity-scale-codec",3161 "scale-info",3681 "scale-info",3162 "serde",3682 "serde",3168[[package]]3688[[package]]3169name = "fp-rpc"3689name = "fp-rpc"3170version = "3.0.0-dev"3690version = "3.0.0-dev"3171source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3691source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"3172dependencies = [3692dependencies = [3173 "ethereum",3693 "ethereum",3174 "ethereum-types",3694 "ethereum-types",3185[[package]]3705[[package]]3186name = "fp-self-contained"3706name = "fp-self-contained"3187version = "1.0.0-dev"3707version = "1.0.0-dev"3188source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3708source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"3189dependencies = [3709dependencies = [3190 "frame-support",3710 "frame-support",3191 "parity-scale-codec",3711 "parity-scale-codec",3197[[package]]3717[[package]]3198name = "fp-storage"3718name = "fp-storage"3199version = "2.0.0"3719version = "2.0.0"3200source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"3720source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"3201dependencies = [3721dependencies = [3202 "parity-scale-codec",3722 "parity-scale-codec",3203 "serde",3723 "serde",3212[[package]]3732[[package]]3213name = "frame-benchmarking"3733name = "frame-benchmarking"3214version = "4.0.0-dev"3734version = "4.0.0-dev"3215source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3735source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3216dependencies = [3736dependencies = [3217 "frame-support",3737 "frame-support",3218 "frame-support-procedural",3738 "frame-support-procedural",3237[[package]]3757[[package]]3238name = "frame-benchmarking-cli"3758name = "frame-benchmarking-cli"3239version = "4.0.0-dev"3759version = "4.0.0-dev"3240source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3760source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3241dependencies = [3761dependencies = [3242 "Inflector",3762 "Inflector",3243 "array-bytes 4.2.0",3763 "array-bytes",3244 "chrono",3764 "chrono",3245 "clap",3765 "clap",3246 "comfy-table",3766 "comfy-table",3249 "frame-system",3769 "frame-system",3250 "gethostname",3770 "gethostname",3251 "handlebars",3771 "handlebars",3252 "itertools",3772 "itertools 0.10.5",3253 "lazy_static",3773 "lazy_static",3254 "linked-hash-map",3774 "linked-hash-map",3255 "log",3775 "log",3271 "sp-database",3791 "sp-database",3272 "sp-externalities",3792 "sp-externalities",3273 "sp-inherents",3793 "sp-inherents",3794 "sp-io",3274 "sp-keystore",3795 "sp-keystore",3275 "sp-runtime",3796 "sp-runtime",3276 "sp-state-machine",3797 "sp-state-machine",3277 "sp-std",3278 "sp-storage",3798 "sp-storage",3279 "sp-trie",3799 "sp-trie",3800 "sp-wasm-interface",3280 "thiserror",3801 "thiserror",3281 "thousands",3802 "thousands",3282]3803]328338043284[[package]]3805[[package]]3285name = "frame-election-provider-solution-type"3806name = "frame-election-provider-solution-type"3286version = "4.0.0-dev"3807version = "4.0.0-dev"3287source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3808source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3288dependencies = [3809dependencies = [3289 "proc-macro-crate",3810 "proc-macro-crate",3290 "proc-macro2",3811 "proc-macro2",3291 "quote",3812 "quote",3292 "syn 2.0.28",3813 "syn 2.0.37",3293]3814]329438153295[[package]]3816[[package]]3296name = "frame-election-provider-support"3817name = "frame-election-provider-support"3297version = "4.0.0-dev"3818version = "4.0.0-dev"3298source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3819source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3299dependencies = [3820dependencies = [3300 "frame-election-provider-solution-type",3821 "frame-election-provider-solution-type",3301 "frame-support",3822 "frame-support",3312[[package]]3833[[package]]3313name = "frame-executive"3834name = "frame-executive"3314version = "4.0.0-dev"3835version = "4.0.0-dev"3315source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3836source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3316dependencies = [3837dependencies = [3317 "frame-support",3838 "frame-support",3318 "frame-system",3839 "frame-system",3319 "frame-try-runtime",3840 "frame-try-runtime",3841 "log",3320 "parity-scale-codec",3842 "parity-scale-codec",3321 "scale-info",3843 "scale-info",3322 "sp-core",3844 "sp-core",332838503329[[package]]3851[[package]]3330name = "frame-metadata"3852name = "frame-metadata"3331version = "15.1.0"3853version = "16.0.0"3332source = "registry+https://github.com/rust-lang/crates.io-index"3854source = "registry+https://github.com/rust-lang/crates.io-index"3333checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c"3855checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692"3334dependencies = [3856dependencies = [3335 "cfg-if",3857 "cfg-if",3336 "parity-scale-codec",3858 "parity-scale-codec",3341[[package]]3863[[package]]3342name = "frame-remote-externalities"3864name = "frame-remote-externalities"3343version = "0.10.0-dev"3865version = "0.10.0-dev"3344source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3866source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3345dependencies = [3867dependencies = [3346 "async-recursion",3868 "async-recursion",3347 "futures",3869 "futures",3353 "sp-core",3875 "sp-core",3354 "sp-io",3876 "sp-io",3355 "sp-runtime",3877 "sp-runtime",3878 "sp-state-machine",3356 "spinners",3879 "spinners",3357 "substrate-rpc-client",3880 "substrate-rpc-client",3358 "tokio",3881 "tokio",3362[[package]]3885[[package]]3363name = "frame-support"3886name = "frame-support"3364version = "4.0.0-dev"3887version = "4.0.0-dev"3365source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3888source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3366dependencies = [3889dependencies = [3890 "aquamarine",3367 "bitflags 1.3.2",3891 "bitflags 1.3.2",3892 "docify",3368 "environmental",3893 "environmental",3369 "frame-metadata",3894 "frame-metadata",3370 "frame-support-procedural",3895 "frame-support-procedural",3371 "impl-trait-for-tuples",3896 "impl-trait-for-tuples",3372 "k256",3897 "k256",3373 "log",3898 "log",3374 "once_cell",3899 "macro_magic",3375 "parity-scale-codec",3900 "parity-scale-codec",3376 "paste",3901 "paste",3377 "scale-info",3902 "scale-info",3378 "serde",3903 "serde",3904 "serde_json",3379 "smallvec",3905 "smallvec",3380 "sp-api",3906 "sp-api",3381 "sp-arithmetic",3907 "sp-arithmetic",3382 "sp-core",3908 "sp-core",3383 "sp-core-hashing-proc-macro",3909 "sp-core-hashing-proc-macro",3384 "sp-debug-derive",3910 "sp-debug-derive",3911 "sp-genesis-builder",3385 "sp-inherents",3912 "sp-inherents",3386 "sp-io",3913 "sp-io",3914 "sp-metadata-ir",3387 "sp-runtime",3915 "sp-runtime",3388 "sp-staking",3916 "sp-staking",3389 "sp-state-machine",3917 "sp-state-machine",3390 "sp-std",3918 "sp-std",3391 "sp-tracing",3919 "sp-tracing",3392 "sp-weights",3920 "sp-weights",3921 "static_assertions",3393 "tt-call",3922 "tt-call",3394]3923]339539243396[[package]]3925[[package]]3397name = "frame-support-procedural"3926name = "frame-support-procedural"3398version = "4.0.0-dev"3927version = "4.0.0-dev"3399source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3928source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3400dependencies = [3929dependencies = [3401 "Inflector",3930 "Inflector",3402 "cfg-expr",3931 "cfg-expr",3403 "derive-syn-parse",3932 "derive-syn-parse",3933 "expander 2.0.0",3404 "frame-support-procedural-tools",3934 "frame-support-procedural-tools",3405 "itertools",3935 "itertools 0.10.5",3936 "macro_magic",3406 "proc-macro-warning",3937 "proc-macro-warning",3407 "proc-macro2",3938 "proc-macro2",3408 "quote",3939 "quote",3409 "syn 2.0.28",3940 "syn 2.0.37",3410]3941]341139423412[[package]]3943[[package]]3413name = "frame-support-procedural-tools"3944name = "frame-support-procedural-tools"3414version = "4.0.0-dev"3945version = "4.0.0-dev"3415source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3946source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3416dependencies = [3947dependencies = [3417 "frame-support-procedural-tools-derive",3948 "frame-support-procedural-tools-derive",3418 "proc-macro-crate",3949 "proc-macro-crate",3419 "proc-macro2",3950 "proc-macro2",3420 "quote",3951 "quote",3421 "syn 2.0.28",3952 "syn 2.0.37",3422]3953]342339543424[[package]]3955[[package]]3425name = "frame-support-procedural-tools-derive"3956name = "frame-support-procedural-tools-derive"3426version = "3.0.0"3957version = "3.0.0"3427source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3958source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3428dependencies = [3959dependencies = [3429 "proc-macro2",3960 "proc-macro2",3430 "quote",3961 "quote",3431 "syn 2.0.28",3962 "syn 2.0.37",3432]3963]343339643434[[package]]3965[[package]]3435name = "frame-system"3966name = "frame-system"3436version = "4.0.0-dev"3967version = "4.0.0-dev"3437source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3968source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3438dependencies = [3969dependencies = [3439 "cfg-if",3970 "cfg-if",3440 "frame-support",3971 "frame-support",3453[[package]]3984[[package]]3454name = "frame-system-benchmarking"3985name = "frame-system-benchmarking"3455version = "4.0.0-dev"3986version = "4.0.0-dev"3456source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"3987source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3457dependencies = [3988dependencies = [3458 "frame-benchmarking",3989 "frame-benchmarking",3459 "frame-support",3990 "frame-support",3468[[package]]3999[[package]]3469name = "frame-system-rpc-runtime-api"4000name = "frame-system-rpc-runtime-api"3470version = "4.0.0-dev"4001version = "4.0.0-dev"3471source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"4002source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3472dependencies = [4003dependencies = [3473 "parity-scale-codec",4004 "parity-scale-codec",3474 "sp-api",4005 "sp-api",3477[[package]]4008[[package]]3478name = "frame-try-runtime"4009name = "frame-try-runtime"3479version = "0.10.0-dev"4010version = "0.10.0-dev"3480source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"4011source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"3481dependencies = [4012dependencies = [3482 "frame-support",4013 "frame-support",3483 "parity-scale-codec",4014 "parity-scale-codec",3508source = "registry+https://github.com/rust-lang/crates.io-index"4039source = "registry+https://github.com/rust-lang/crates.io-index"3509checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47"4040checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47"3510dependencies = [4041dependencies = [3511 "rustix 0.38.8",4042 "rustix 0.38.15",3512 "windows-sys 0.48.0",4043 "windows-sys 0.48.0",3513]4044]351440453578 "futures-io",4109 "futures-io",3579 "memchr",4110 "memchr",3580 "parking",4111 "parking",3581 "pin-project-lite 0.2.12",4112 "pin-project-lite 0.2.13",3582 "waker-fn",4113 "waker-fn",3583]4114]358441153590dependencies = [4121dependencies = [3591 "proc-macro2",4122 "proc-macro2",3592 "quote",4123 "quote",3593 "syn 2.0.28",4124 "syn 2.0.37",3594]4125]359541263596[[package]]4127[[package]]3600checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd"4131checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd"3601dependencies = [4132dependencies = [3602 "futures-io",4133 "futures-io",3603 "rustls 0.20.8",4134 "rustls 0.20.9",3604 "webpki 0.22.0",4135 "webpki 0.22.2",3605]4136]360641373607[[package]]4138[[package]]3635 "futures-sink",4166 "futures-sink",3636 "futures-task",4167 "futures-task",3637 "memchr",4168 "memchr",3638 "pin-project-lite 0.2.12",4169 "pin-project-lite 0.2.13",3639 "pin-utils",4170 "pin-utils",3640 "slab",4171 "slab",3641]4172]3733]4264]373442653735[[package]]4266[[package]]4267name = "gimli"4268version = "0.28.0"4269source = "registry+https://github.com/rust-lang/crates.io-index"4270checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"42714272[[package]]3736name = "glob"4273name = "glob"3737version = "0.3.1"4274version = "0.3.1"3738source = "registry+https://github.com/rust-lang/crates.io-index"4275source = "registry+https://github.com/rust-lang/crates.io-index"377543123776[[package]]4313[[package]]3777name = "h2"4314name = "h2"3778version = "0.3.20"4315version = "0.3.21"3779source = "registry+https://github.com/rust-lang/crates.io-index"4316source = "registry+https://github.com/rust-lang/crates.io-index"3780checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"4317checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"3781dependencies = [4318dependencies = [3782 "bytes",4319 "bytes",3783 "fnv",4320 "fnv",379443313795[[package]]4332[[package]]3796name = "handlebars"4333name = "handlebars"3797version = "4.3.7"4334version = "4.4.0"3798source = "registry+https://github.com/rust-lang/crates.io-index"4335source = "registry+https://github.com/rust-lang/crates.io-index"3799checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d"4336checksum = "c39b3bc2a8f715298032cf5087e58573809374b08160aa7d750582bdb82d2683"3800dependencies = [4337dependencies = [3801 "log",4338 "log",3802 "pest",4339 "pest",384743843848[[package]]4385[[package]]3849name = "hashbrown"4386name = "hashbrown"3850version = "0.14.0"4387version = "0.14.1"3851source = "registry+https://github.com/rust-lang/crates.io-index"4388source = "registry+https://github.com/rust-lang/crates.io-index"3852checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"4389checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"4390dependencies = [4391 "ahash 0.8.3",4392 "allocator-api2",4393 "serde",4394]385343953854[[package]]4396[[package]]3855name = "heck"4397name = "heck"386844103869[[package]]4411[[package]]3870name = "hermit-abi"4412name = "hermit-abi"3871version = "0.3.2"4413version = "0.3.3"3872source = "registry+https://github.com/rust-lang/crates.io-index"4414source = "registry+https://github.com/rust-lang/crates.io-index"3873checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"4415checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"387444163875[[package]]4417[[package]]3876name = "hex"4418name = "hex"3934]4476]393544773936[[package]]4478[[package]]4479name = "home"4480version = "0.5.5"4481source = "registry+https://github.com/rust-lang/crates.io-index"4482checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"4483dependencies = [4484 "windows-sys 0.48.0",4485]44864487[[package]]3937name = "hostname"4488name = "hostname"3938version = "0.3.1"4489version = "0.3.1"3939source = "registry+https://github.com/rust-lang/crates.io-index"4490source = "registry+https://github.com/rust-lang/crates.io-index"3963dependencies = [4514dependencies = [3964 "bytes",4515 "bytes",3965 "http",4516 "http",3966 "pin-project-lite 0.2.12",4517 "pin-project-lite 0.2.13",3967]4518]396845193969[[package]]4520[[package]]4006 "httparse",4557 "httparse",4007 "httpdate",4558 "httpdate",4008 "itoa",4559 "itoa",4009 "pin-project-lite 0.2.12",4560 "pin-project-lite 0.2.13",4010 "socket2 0.4.9",4561 "socket2 0.4.9",4011 "tokio",4562 "tokio",4012 "tower-service",4563 "tower-service",401645674017[[package]]4568[[package]]4018name = "hyper-rustls"4569name = "hyper-rustls"4019version = "0.23.2"4570version = "0.24.1"4020source = "registry+https://github.com/rust-lang/crates.io-index"4571source = "registry+https://github.com/rust-lang/crates.io-index"4021checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"4572checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"4022dependencies = [4573dependencies = [4574 "futures-util",4023 "http",4575 "http",4024 "hyper",4576 "hyper",4025 "log",4577 "log",4026 "rustls 0.20.8",4578 "rustls 0.21.7",4027 "rustls-native-certs",4579 "rustls-native-certs",4028 "tokio",4580 "tokio",4029 "tokio-rustls",4581 "tokio-rustls",4030 "webpki-roots",4582 "webpki-roots 0.23.1",4031]4583]403245844033[[package]]4585[[package]]4148]4700]414947014150[[package]]4702[[package]]4703name = "include_dir"4704version = "0.7.3"4705source = "registry+https://github.com/rust-lang/crates.io-index"4706checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e"4707dependencies = [4708 "include_dir_macros",4709]47104711[[package]]4712name = "include_dir_macros"4713version = "0.7.3"4714source = "registry+https://github.com/rust-lang/crates.io-index"4715checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f"4716dependencies = [4717 "proc-macro2",4718 "quote",4719]47204721[[package]]4151name = "indexmap"4722name = "indexmap"4152version = "1.9.3"4723version = "1.9.3"4153source = "registry+https://github.com/rust-lang/crates.io-index"4724source = "registry+https://github.com/rust-lang/crates.io-index"416047314161[[package]]4732[[package]]4162name = "indexmap"4733name = "indexmap"4163version = "2.0.0"4734version = "2.0.2"4164source = "registry+https://github.com/rust-lang/crates.io-index"4735source = "registry+https://github.com/rust-lang/crates.io-index"4165checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"4736checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"4166dependencies = [4737dependencies = [4167 "equivalent",4738 "equivalent",4168 "hashbrown 0.14.0",4739 "hashbrown 0.14.1",4169]4740]417047414171[[package]]4742[[package]]4743name = "indexmap-nostd"4744version = "0.4.0"4745source = "registry+https://github.com/rust-lang/crates.io-index"4746checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590"47474748[[package]]4172name = "indicatif"4749name = "indicatif"4173version = "0.17.6"4750version = "0.17.7"4174source = "registry+https://github.com/rust-lang/crates.io-index"4751source = "registry+https://github.com/rust-lang/crates.io-index"4175checksum = "0b297dc40733f23a0e52728a58fa9489a5b7638a324932de16b41adc3ef80730"4752checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"4176dependencies = [4753dependencies = [4177 "console",4754 "console",4178 "instant",4755 "instant",4239source = "registry+https://github.com/rust-lang/crates.io-index"4816source = "registry+https://github.com/rust-lang/crates.io-index"4240checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"4817checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"4241dependencies = [4818dependencies = [4242 "hermit-abi 0.3.2",4819 "hermit-abi 0.3.3",4243 "libc",4820 "libc",4244 "windows-sys 0.48.0",4821 "windows-sys 0.48.0",4245]4822]4256source = "registry+https://github.com/rust-lang/crates.io-index"4833source = "registry+https://github.com/rust-lang/crates.io-index"4257checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"4834checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"4258dependencies = [4835dependencies = [4259 "socket2 0.5.3",4836 "socket2 0.5.4",4260 "widestring",4837 "widestring",4261 "windows-sys 0.48.0",4838 "windows-sys 0.48.0",4262 "winreg",4839 "winreg",4274source = "registry+https://github.com/rust-lang/crates.io-index"4851source = "registry+https://github.com/rust-lang/crates.io-index"4275checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"4852checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"4276dependencies = [4853dependencies = [4277 "hermit-abi 0.3.2",4854 "hermit-abi 0.3.3",4278 "rustix 0.38.8",4855 "rustix 0.38.15",4279 "windows-sys 0.48.0",4856 "windows-sys 0.48.0",4280]4857]428148584282[[package]]4859[[package]]4860name = "is_executable"4861version = "1.0.1"4862source = "registry+https://github.com/rust-lang/crates.io-index"4863checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8"4864dependencies = [4865 "winapi",4866]48674868[[package]]4283name = "itertools"4869name = "itertools"4284version = "0.10.5"4870version = "0.10.5"4285source = "registry+https://github.com/rust-lang/crates.io-index"4871source = "registry+https://github.com/rust-lang/crates.io-index"4289]4875]429048764291[[package]]4877[[package]]4878name = "itertools"4879version = "0.11.0"4880source = "registry+https://github.com/rust-lang/crates.io-index"4881checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"4882dependencies = [4883 "either",4884]48854886[[package]]4292name = "itoa"4887name = "itoa"4293version = "1.0.9"4888version = "1.0.9"4294source = "registry+https://github.com/rust-lang/crates.io-index"4889source = "registry+https://github.com/rust-lang/crates.io-index"431449094315[[package]]4910[[package]]4316name = "jsonrpsee"4911name = "jsonrpsee"4317version = "0.16.2"4912version = "0.16.3"4318source = "registry+https://github.com/rust-lang/crates.io-index"4913source = "registry+https://github.com/rust-lang/crates.io-index"4319checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e"4914checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b"4320dependencies = [4915dependencies = [4321 "jsonrpsee-core",4916 "jsonrpsee-core",4322 "jsonrpsee-http-client",4917 "jsonrpsee-http-client",432949244330[[package]]4925[[package]]4331name = "jsonrpsee-client-transport"4926name = "jsonrpsee-client-transport"4332version = "0.16.2"4927version = "0.16.3"4333source = "registry+https://github.com/rust-lang/crates.io-index"4928source = "registry+https://github.com/rust-lang/crates.io-index"4334checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb"4929checksum = "c8b3815d9f5d5de348e5f162b316dc9cdf4548305ebb15b4eb9328e66cf27d7a"4335dependencies = [4930dependencies = [4336 "futures-util",4931 "futures-util",4337 "http",4932 "http",4345 "tokio-rustls",4940 "tokio-rustls",4346 "tokio-util",4941 "tokio-util",4347 "tracing",4942 "tracing",4348 "webpki-roots",4943 "webpki-roots 0.25.2",4349]4944]435049454351[[package]]4946[[package]]4352name = "jsonrpsee-core"4947name = "jsonrpsee-core"4353version = "0.16.2"4948version = "0.16.3"4354source = "registry+https://github.com/rust-lang/crates.io-index"4949source = "registry+https://github.com/rust-lang/crates.io-index"4355checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b"4950checksum = "2b5dde66c53d6dcdc8caea1874a45632ec0fcf5b437789f1e45766a1512ce803"4356dependencies = [4951dependencies = [4357 "anyhow",4952 "anyhow",4358 "arrayvec 0.7.4",4953 "arrayvec 0.7.4",437849734379[[package]]4974[[package]]4380name = "jsonrpsee-http-client"4975name = "jsonrpsee-http-client"4381version = "0.16.2"4976version = "0.16.3"4382source = "registry+https://github.com/rust-lang/crates.io-index"4977source = "registry+https://github.com/rust-lang/crates.io-index"4383checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad"4978checksum = "7e5f9fabdd5d79344728521bb65e3106b49ec405a78b66fbff073b72b389fa43"4384dependencies = [4979dependencies = [4385 "async-trait",4980 "async-trait",4386 "hyper",4981 "hyper",439749924398[[package]]4993[[package]]4399name = "jsonrpsee-proc-macros"4994name = "jsonrpsee-proc-macros"4400version = "0.16.2"4995version = "0.16.3"4401source = "registry+https://github.com/rust-lang/crates.io-index"4996source = "registry+https://github.com/rust-lang/crates.io-index"4402checksum = "baa6da1e4199c10d7b1d0a6e5e8bd8e55f351163b6f4b3cbb044672a69bd4c1c"4997checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a"4403dependencies = [4998dependencies = [4404 "heck",4999 "heck",4405 "proc-macro-crate",5000 "proc-macro-crate",441050054411[[package]]5006[[package]]4412name = "jsonrpsee-server"5007name = "jsonrpsee-server"4413version = "0.16.2"5008version = "0.16.3"4414source = "registry+https://github.com/rust-lang/crates.io-index"5009source = "registry+https://github.com/rust-lang/crates.io-index"4415checksum = "1fb69dad85df79527c019659a992498d03f8495390496da2f07e6c24c2b356fc"5010checksum = "cf4d945a6008c9b03db3354fb3c83ee02d2faa9f2e755ec1dfb69c3551b8f4ba"4416dependencies = [5011dependencies = [4417 "futures-channel",5012 "futures-channel",4418 "futures-util",5013 "futures-util",443250274433[[package]]5028[[package]]4434name = "jsonrpsee-types"5029name = "jsonrpsee-types"4435version = "0.16.2"5030version = "0.16.3"4436source = "registry+https://github.com/rust-lang/crates.io-index"5031source = "registry+https://github.com/rust-lang/crates.io-index"4437checksum = "5bd522fe1ce3702fd94812965d7bb7a3364b1c9aba743944c5a00529aae80f8c"5032checksum = "245ba8e5aa633dd1c1e4fae72bce06e71f42d34c14a2767c6b4d173b57bee5e5"4438dependencies = [5033dependencies = [4439 "anyhow",5034 "anyhow",4440 "beef",5035 "beef",444650414447[[package]]5042[[package]]4448name = "jsonrpsee-ws-client"5043name = "jsonrpsee-ws-client"4449version = "0.16.2"5044version = "0.16.3"4450source = "registry+https://github.com/rust-lang/crates.io-index"5045source = "registry+https://github.com/rust-lang/crates.io-index"4451checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9"5046checksum = "4e1b3975ed5d73f456478681a417128597acd6a2487855fdb7b4a3d4d195bf5e"4452dependencies = [5047dependencies = [4453 "http",5048 "http",4454 "jsonrpsee-client-transport",5049 "jsonrpsee-client-transport",4466 "ecdsa 0.16.8",5061 "ecdsa 0.16.8",4467 "elliptic-curve 0.13.5",5062 "elliptic-curve 0.13.5",4468 "once_cell",5063 "once_cell",4469 "sha2 0.10.7",5064 "sha2 0.10.8",4470]5065]447150664472[[package]]5067[[package]]4479]5074]448050754481[[package]]5076[[package]]4482name = "kusama-runtime"4483version = "0.9.43"4484source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"4485dependencies = [4486 "bitvec",4487 "frame-benchmarking",4488 "frame-election-provider-support",4489 "frame-executive",4490 "frame-support",4491 "frame-system",4492 "frame-system-benchmarking",4493 "frame-system-rpc-runtime-api",4494 "frame-try-runtime",4495 "hex-literal",4496 "kusama-runtime-constants",4497 "log",4498 "pallet-authority-discovery",4499 "pallet-authorship",4500 "pallet-babe",4501 "pallet-bags-list",4502 "pallet-balances",4503 "pallet-bounties",4504 "pallet-child-bounties",4505 "pallet-collective",4506 "pallet-conviction-voting",4507 "pallet-democracy",4508 "pallet-election-provider-multi-phase",4509 "pallet-election-provider-support-benchmarking",4510 "pallet-elections-phragmen",4511 "pallet-fast-unstake",4512 "pallet-grandpa",4513 "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43)",4514 "pallet-im-online",4515 "pallet-indices",4516 "pallet-membership",4517 "pallet-message-queue",4518 "pallet-multisig",4519 "pallet-nis",4520 "pallet-nomination-pools",4521 "pallet-nomination-pools-benchmarking",4522 "pallet-nomination-pools-runtime-api",4523 "pallet-offences",4524 "pallet-offences-benchmarking",4525 "pallet-preimage",4526 "pallet-proxy",4527 "pallet-ranked-collective",4528 "pallet-recovery",4529 "pallet-referenda",4530 "pallet-scheduler",4531 "pallet-session",4532 "pallet-session-benchmarking",4533 "pallet-society",4534 "pallet-staking",4535 "pallet-staking-runtime-api",4536 "pallet-timestamp",4537 "pallet-tips",4538 "pallet-transaction-payment",4539 "pallet-transaction-payment-rpc-runtime-api",4540 "pallet-treasury",4541 "pallet-utility",4542 "pallet-vesting",4543 "pallet-whitelist",4544 "pallet-xcm",4545 "pallet-xcm-benchmarks",4546 "parity-scale-codec",4547 "polkadot-primitives",4548 "polkadot-runtime-common",4549 "polkadot-runtime-parachains",4550 "rustc-hex",4551 "scale-info",4552 "serde",4553 "serde_derive",4554 "smallvec",4555 "sp-api",4556 "sp-arithmetic",4557 "sp-authority-discovery",4558 "sp-block-builder",4559 "sp-consensus-babe",4560 "sp-consensus-beefy",4561 "sp-core",4562 "sp-inherents",4563 "sp-io",4564 "sp-mmr-primitives",4565 "sp-npos-elections",4566 "sp-offchain",4567 "sp-runtime",4568 "sp-session",4569 "sp-staking",4570 "sp-std",4571 "sp-transaction-pool",4572 "sp-version",4573 "static_assertions",4574 "substrate-wasm-builder",4575 "xcm",4576 "xcm-builder",4577 "xcm-executor",4578]45794580[[package]]4581name = "kusama-runtime-constants"5077name = "kusama-runtime-constants"4582version = "0.9.43"5078version = "1.0.0"4583source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"5079source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"4584dependencies = [5080dependencies = [4585 "frame-support",5081 "frame-support",4586 "polkadot-primitives",5082 "polkadot-primitives",4625]5121]462651224627[[package]]5123[[package]]5124name = "landlock"5125version = "0.2.0"5126source = "registry+https://github.com/rust-lang/crates.io-index"5127checksum = "520baa32708c4e957d2fc3a186bc5bd8d26637c33137f399ddfc202adb240068"5128dependencies = [5129 "enumflags2",5130 "libc",5131 "thiserror",5132]51335134[[package]]4628name = "lazy_static"5135name = "lazy_static"4629version = "1.4.0"5136version = "1.4.0"4630source = "registry+https://github.com/rust-lang/crates.io-index"5137source = "registry+https://github.com/rust-lang/crates.io-index"463851454639[[package]]5146[[package]]4640name = "libc"5147name = "libc"4641version = "0.2.147"5148version = "0.2.148"4642source = "registry+https://github.com/rust-lang/crates.io-index"5149source = "registry+https://github.com/rust-lang/crates.io-index"4643checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"5150checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"464451514645[[package]]5152[[package]]4646name = "libloading"5153name = "libloading"465451614655[[package]]5162[[package]]4656name = "libm"5163name = "libm"4657version = "0.1.4"4658source = "registry+https://github.com/rust-lang/crates.io-index"4659checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"46604661[[package]]4662name = "libm"4663version = "0.2.7"5164version = "0.2.7"4664source = "registry+https://github.com/rust-lang/crates.io-index"5165source = "registry+https://github.com/rust-lang/crates.io-index"4665checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"5166checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"4736 "libp2p-identity",5237 "libp2p-identity",4737 "log",5238 "log",4738 "multiaddr",5239 "multiaddr",4739 "multihash 0.17.0",5240 "multihash",4740 "multistream-select",5241 "multistream-select",4741 "once_cell",5242 "once_cell",4742 "parking_lot 0.12.1",5243 "parking_lot 0.12.1",478852894789[[package]]5290[[package]]4790name = "libp2p-identity"5291name = "libp2p-identity"4791version = "0.1.2"5292version = "0.1.3"4792source = "registry+https://github.com/rust-lang/crates.io-index"5293source = "registry+https://github.com/rust-lang/crates.io-index"4793checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1"5294checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce"4794dependencies = [5295dependencies = [4795 "bs58",5296 "bs58 0.4.0",4796 "ed25519-dalek",5297 "ed25519-dalek",4797 "log",5298 "log",4798 "multiaddr",5299 "multiaddr",4799 "multihash 0.17.0",5300 "multihash",4800 "quick-protobuf",5301 "quick-protobuf",4801 "rand 0.8.5",5302 "rand 0.8.5",4802 "sha2 0.10.7",5303 "sha2 0.10.8",4803 "thiserror",5304 "thiserror",4804 "zeroize",5305 "zeroize",4805]5306]4824 "log",5325 "log",4825 "quick-protobuf",5326 "quick-protobuf",4826 "rand 0.8.5",5327 "rand 0.8.5",4827 "sha2 0.10.7",5328 "sha2 0.10.8",4828 "smallvec",5329 "smallvec",4829 "thiserror",5330 "thiserror",4830 "uint",5331 "uint",4882 "once_cell",5383 "once_cell",4883 "quick-protobuf",5384 "quick-protobuf",4884 "rand 0.8.5",5385 "rand 0.8.5",4885 "sha2 0.10.7",5386 "sha2 0.10.8",4886 "snow",5387 "snow",4887 "static_assertions",5388 "static_assertions",4888 "thiserror",5389 "thiserror",4924 "parking_lot 0.12.1",5425 "parking_lot 0.12.1",4925 "quinn-proto",5426 "quinn-proto",4926 "rand 0.8.5",5427 "rand 0.8.5",4927 "rustls 0.20.8",5428 "rustls 0.20.9",4928 "thiserror",5429 "thiserror",4929 "tokio",5430 "tokio",4930]5431]5004 "libp2p-core",5505 "libp2p-core",5005 "libp2p-identity",5506 "libp2p-identity",5006 "rcgen 0.10.0",5507 "rcgen 0.10.0",5007 "ring",5508 "ring 0.16.20",5008 "rustls 0.20.8",5509 "rustls 0.20.9",5009 "thiserror",5510 "thiserror",5010 "webpki 0.22.0",5511 "webpki 0.22.2",5011 "x509-parser 0.14.0",5512 "x509-parser 0.14.0",5012 "yasna",5513 "yasna",5013]5514]5043 "libp2p-identity",5544 "libp2p-identity",5044 "libp2p-noise",5545 "libp2p-noise",5045 "log",5546 "log",5046 "multihash 0.17.0",5547 "multihash",5047 "quick-protobuf",5548 "quick-protobuf",5048 "quick-protobuf-codec",5549 "quick-protobuf-codec",5049 "rand 0.8.5",5550 "rand 0.8.5",5073 "rw-stream-sink",5574 "rw-stream-sink",5074 "soketto",5575 "soketto",5075 "url",5576 "url",5076 "webpki-roots",5577 "webpki-roots 0.22.6",5077]5578]507855795079[[package]]5580[[package]]518956905190[[package]]5691[[package]]5191name = "linregress"5692name = "linregress"5192version = "0.5.2"5693version = "0.5.3"5193source = "registry+https://github.com/rust-lang/crates.io-index"5694source = "registry+https://github.com/rust-lang/crates.io-index"5194checksum = "4de0b5f52a9f84544d268f5fabb71b38962d6aa3c6600b8bcd27d44ccf9c9c45"5695checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2"5195dependencies = [5696dependencies = [5196 "nalgebra",5697 "nalgebra",5197]5698]521057115211[[package]]5712[[package]]5212name = "linux-raw-sys"5713name = "linux-raw-sys"5213version = "0.4.5"5714version = "0.4.8"5214source = "registry+https://github.com/rust-lang/crates.io-index"5715source = "registry+https://github.com/rust-lang/crates.io-index"5215checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"5716checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db"521657175217[[package]]5718[[package]]5218name = "lock_api"5719name = "lock_api"523257335233[[package]]5734[[package]]5234name = "lru"5735name = "lru"5235version = "0.8.1"5736version = "0.10.1"5236source = "registry+https://github.com/rust-lang/crates.io-index"5737source = "registry+https://github.com/rust-lang/crates.io-index"5237checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909"5738checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670"5238dependencies = [5739dependencies = [5239 "hashbrown 0.12.3",5240]52415242[[package]]5243name = "lru"5244version = "0.9.0"5245source = "registry+https://github.com/rust-lang/crates.io-index"5246checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17"5247dependencies = [5248 "hashbrown 0.13.2",5740 "hashbrown 0.13.2",5249]5741]525057425251[[package]]5743[[package]]5252name = "lru"5744name = "lru"5253version = "0.10.1"5745version = "0.11.1"5254source = "registry+https://github.com/rust-lang/crates.io-index"5746source = "registry+https://github.com/rust-lang/crates.io-index"5255checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670"5747checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"5256dependencies = [5257 "hashbrown 0.13.2",5258]525957485260[[package]]5749[[package]]5261name = "lru-cache"5750name = "lru-cache"5296]5785]529757865298[[package]]5787[[package]]5788name = "macro_magic"5789version = "0.4.2"5790source = "registry+https://github.com/rust-lang/crates.io-index"5791checksum = "aee866bfee30d2d7e83835a4574aad5b45adba4cc807f2a3bbba974e5d4383c9"5792dependencies = [5793 "macro_magic_core",5794 "macro_magic_macros",5795 "quote",5796 "syn 2.0.37",5797]57985799[[package]]5800name = "macro_magic_core"5801version = "0.4.2"5802source = "registry+https://github.com/rust-lang/crates.io-index"5803checksum = "7e766a20fd9c72bab3e1e64ed63f36bd08410e75803813df210d1ce297d7ad00"5804dependencies = [5805 "const-random",5806 "derive-syn-parse",5807 "macro_magic_core_macros",5808 "proc-macro2",5809 "quote",5810 "syn 2.0.37",5811]58125813[[package]]5814name = "macro_magic_core_macros"5815version = "0.4.2"5816source = "registry+https://github.com/rust-lang/crates.io-index"5817checksum = "c12469fc165526520dff2807c2975310ab47cf7190a45b99b49a7dc8befab17b"5818dependencies = [5819 "proc-macro2",5820 "quote",5821 "syn 2.0.37",5822]58235824[[package]]5825name = "macro_magic_macros"5826version = "0.4.2"5827source = "registry+https://github.com/rust-lang/crates.io-index"5828checksum = "b8fb85ec1620619edf2984a7693497d4ec88a9665d8b87e942856884c92dbf2a"5829dependencies = [5830 "macro_magic_core",5831 "quote",5832 "syn 2.0.37",5833]58345835[[package]]5299name = "maplit"5836name = "maplit"5300version = "1.0.2"5837version = "1.0.2"5301source = "registry+https://github.com/rust-lang/crates.io-index"5838source = "registry+https://github.com/rust-lang/crates.io-index"532458615325[[package]]5862[[package]]5326name = "matrixmultiply"5863name = "matrixmultiply"5327version = "0.3.7"5864version = "0.3.8"5328source = "registry+https://github.com/rust-lang/crates.io-index"5865source = "registry+https://github.com/rust-lang/crates.io-index"5329checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77"5866checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"5330dependencies = [5867dependencies = [5331 "autocfg",5868 "autocfg",5332 "rawpointer",5869 "rawpointer",5333]5870]533458715335[[package]]5872[[package]]5336name = "md-5"5873name = "md-5"5337version = "0.10.5"5874version = "0.10.6"5338source = "registry+https://github.com/rust-lang/crates.io-index"5875source = "registry+https://github.com/rust-lang/crates.io-index"5339checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"5876checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"5340dependencies = [5877dependencies = [5878 "cfg-if",5341 "digest 0.10.7",5879 "digest 0.10.7",5342]5880]534358815344[[package]]5882[[package]]5345name = "memchr"5883name = "memchr"5346version = "2.5.0"5884version = "2.6.4"5347source = "registry+https://github.com/rust-lang/crates.io-index"5885source = "registry+https://github.com/rust-lang/crates.io-index"5348checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"5886checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"534958875350[[package]]5888[[package]]5351name = "memfd"5889name = "memfd"5352version = "0.6.3"5890version = "0.6.4"5353source = "registry+https://github.com/rust-lang/crates.io-index"5891source = "registry+https://github.com/rust-lang/crates.io-index"5354checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e"5892checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64"5355dependencies = [5893dependencies = [5356 "rustix 0.37.23",5894 "rustix 0.38.15",5357]5895]535858965359[[package]]5897[[package]]5402]5940]540359415404[[package]]5942[[package]]5405name = "memory_units"5406version = "0.4.0"5407source = "registry+https://github.com/rust-lang/crates.io-index"5408checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3"54095410[[package]]5411name = "merlin"5943name = "merlin"5412version = "2.0.1"5944version = "2.0.1"5413source = "registry+https://github.com/rust-lang/crates.io-index"5945source = "registry+https://github.com/rust-lang/crates.io-index"5420]5952]542159535422[[package]]5954[[package]]5955name = "merlin"5956version = "3.0.0"5957source = "registry+https://github.com/rust-lang/crates.io-index"5958checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d"5959dependencies = [5960 "byteorder",5961 "keccak",5962 "rand_core 0.6.4",5963 "zeroize",5964]59655966[[package]]5423name = "mick-jaeger"5967name = "mick-jaeger"5424version = "0.1.8"5968version = "0.1.8"5425source = "registry+https://github.com/rust-lang/crates.io-index"5969source = "registry+https://github.com/rust-lang/crates.io-index"5459[[package]]6003[[package]]5460name = "mmr-gadget"6004name = "mmr-gadget"5461version = "4.0.0-dev"6005version = "4.0.0-dev"5462source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6006source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"5463dependencies = [6007dependencies = [5464 "futures",6008 "futures",5465 "log",6009 "log",5478[[package]]6022[[package]]5479name = "mmr-rpc"6023name = "mmr-rpc"5480version = "4.0.0-dev"6024version = "4.0.0-dev"5481source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6025source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"5482dependencies = [6026dependencies = [5483 "anyhow",6027 "anyhow",5484 "jsonrpsee",6028 "jsonrpsee",5529 "data-encoding",6073 "data-encoding",5530 "log",6074 "log",5531 "multibase",6075 "multibase",5532 "multihash 0.17.0",6076 "multihash",5533 "percent-encoding",6077 "percent-encoding",5534 "serde",6078 "serde",5535 "static_assertions",6079 "static_assertions",555060945551[[package]]6095[[package]]5552name = "multihash"6096name = "multihash"5553version = "0.16.3"6097version = "0.17.0"5554source = "registry+https://github.com/rust-lang/crates.io-index"6098source = "registry+https://github.com/rust-lang/crates.io-index"5555checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc"6099checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40"5556dependencies = [6100dependencies = [5557 "blake2b_simd",6101 "blake2b_simd",5558 "blake2s_simd",6102 "blake2s_simd",5559 "blake3",6103 "blake3",5560 "core2",6104 "core2",5561 "digest 0.10.7",6105 "digest 0.10.7",5562 "multihash-derive",6106 "multihash-derive",5563 "sha2 0.10.7",6107 "sha2 0.10.8",5564 "sha3 0.10.8",6108 "sha3 0.10.8",5565 "unsigned-varint",6109 "unsigned-varint",5566]6110]556761115568[[package]]6112[[package]]5569name = "multihash"5570version = "0.17.0"5571source = "registry+https://github.com/rust-lang/crates.io-index"5572checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40"5573dependencies = [5574 "core2",5575 "digest 0.10.7",5576 "multihash-derive",5577 "sha2 0.10.7",5578 "unsigned-varint",5579]55805581[[package]]5582name = "multihash-derive"6113name = "multihash-derive"5583version = "0.8.0"6114version = "0.8.0"5584source = "registry+https://github.com/rust-lang/crates.io-index"6115source = "registry+https://github.com/rust-lang/crates.io-index"5733]6264]573462655735[[package]]6266[[package]]6267name = "no-std-net"6268version = "0.6.0"6269source = "registry+https://github.com/rust-lang/crates.io-index"6270checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65"62716272[[package]]6273name = "nodrop"6274version = "0.1.14"6275source = "registry+https://github.com/rust-lang/crates.io-index"6276checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"62776278[[package]]5736name = "nohash-hasher"6279name = "nohash-hasher"5737version = "0.2.0"6280version = "0.2.0"5738source = "registry+https://github.com/rust-lang/crates.io-index"6281source = "registry+https://github.com/rust-lang/crates.io-index"575662995757[[package]]6300[[package]]5758name = "num-bigint"6301name = "num-bigint"5759version = "0.4.3"6302version = "0.4.4"5760source = "registry+https://github.com/rust-lang/crates.io-index"6303source = "registry+https://github.com/rust-lang/crates.io-index"5761checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"6304checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"5762dependencies = [6305dependencies = [5763 "autocfg",6306 "autocfg",5764 "num-integer",6307 "num-integer",5821source = "registry+https://github.com/rust-lang/crates.io-index"6364source = "registry+https://github.com/rust-lang/crates.io-index"5822checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"6365checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"5823dependencies = [6366dependencies = [5824 "hermit-abi 0.3.2",6367 "hermit-abi 0.3.3",5825 "libc",6368 "libc",5826]6369]582763705828[[package]]6371[[package]]5829name = "num_enum"6372name = "num_enum"5830version = "0.5.11"6373version = "0.7.0"5831source = "registry+https://github.com/rust-lang/crates.io-index"6374source = "registry+https://github.com/rust-lang/crates.io-index"5832checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"6375checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb"5833dependencies = [6376dependencies = [5834 "num_enum_derive 0.5.11",6377 "num_enum_derive",5835]6378]583663795837[[package]]6380[[package]]5838name = "num_enum"5839version = "0.6.1"5840source = "registry+https://github.com/rust-lang/crates.io-index"5841checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1"5842dependencies = [5843 "num_enum_derive 0.6.1",5844]58455846[[package]]5847name = "num_enum_derive"6381name = "num_enum_derive"5848version = "0.5.11"6382version = "0.7.0"5849source = "registry+https://github.com/rust-lang/crates.io-index"6383source = "registry+https://github.com/rust-lang/crates.io-index"5850checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"6384checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597"5851dependencies = [6385dependencies = [5852 "proc-macro2",5853 "quote",5854 "syn 1.0.109",5855]58565857[[package]]5858name = "num_enum_derive"5859version = "0.6.1"5860source = "registry+https://github.com/rust-lang/crates.io-index"5861checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"5862dependencies = [5863 "proc-macro-crate",6386 "proc-macro-crate",5864 "proc-macro2",6387 "proc-macro2",5865 "quote",6388 "quote",5866 "syn 2.0.28",6389 "syn 2.0.37",5867]6390]586863915869[[package]]6392[[package]]588664095887[[package]]6410[[package]]5888name = "object"6411name = "object"5889version = "0.31.1"6412version = "0.32.1"5890source = "registry+https://github.com/rust-lang/crates.io-index"6413source = "registry+https://github.com/rust-lang/crates.io-index"5891checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"6414checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"5892dependencies = [6415dependencies = [5893 "memchr",6416 "memchr",5894]6417]591964425920[[package]]6443[[package]]5921name = "opal-runtime"6444name = "opal-runtime"5922version = "0.9.43"6445version = "1.1.0"5923dependencies = [6446dependencies = [5924 "app-promotion-rpc",6447 "app-promotion-rpc",5925 "cumulus-pallet-aura-ext",6448 "cumulus-pallet-aura-ext",5945 "hex-literal",6468 "hex-literal",5946 "impl-trait-for-tuples",6469 "impl-trait-for-tuples",5947 "log",6470 "log",5948 "num_enum 0.5.11",6471 "num_enum",5949 "orml-tokens",6472 "orml-tokens",5950 "orml-traits",6473 "orml-traits",5951 "orml-vesting",6474 "orml-vesting",5993 "pallet-transaction-payment-rpc-runtime-api",6516 "pallet-transaction-payment-rpc-runtime-api",5994 "pallet-treasury",6517 "pallet-treasury",5995 "pallet-unique",6518 "pallet-unique",5996 "pallet-unique-scheduler-v2",5997 "pallet-utility",6519 "pallet-utility",5998 "pallet-xcm",6520 "pallet-xcm",5999 "parachain-info",6521 "parachain-info",6000 "parity-scale-codec",6522 "parity-scale-codec",6001 "polkadot-parachain",6523 "polkadot-parachain-primitives",6002 "precompile-utils-macro",6524 "precompile-utils-macro",6003 "scale-info",6525 "scale-info",6004 "serde",6526 "serde",6016 "sp-std",6538 "sp-std",6017 "sp-transaction-pool",6539 "sp-transaction-pool",6018 "sp-version",6540 "sp-version",6541 "staging-xcm",6542 "staging-xcm-builder",6543 "staging-xcm-executor",6019 "substrate-wasm-builder",6544 "substrate-wasm-builder",6020 "up-common",6545 "up-common",6021 "up-data-structs",6546 "up-data-structs",6022 "up-pov-estimate-rpc",6547 "up-pov-estimate-rpc",6023 "up-rpc",6548 "up-rpc",6024 "up-sponsorship",6549 "up-sponsorship",6025 "xcm",6026 "xcm-builder",6027 "xcm-executor",6028]6550]602965516030[[package]]6552[[package]]6069checksum = "2871aadd82a2c216ee68a69837a526dfe788ecbe74c4c5038a6acdbff6653066"6591checksum = "2871aadd82a2c216ee68a69837a526dfe788ecbe74c4c5038a6acdbff6653066"6070dependencies = [6592dependencies = [6071 "expander 0.0.6",6593 "expander 0.0.6",6072 "itertools",6594 "itertools 0.10.5",6073 "petgraph",6595 "petgraph",6074 "proc-macro-crate",6596 "proc-macro-crate",6075 "proc-macro2",6597 "proc-macro2",6089[[package]]6611[[package]]6090name = "orml-tokens"6612name = "orml-tokens"6091version = "0.4.1-dev"6613version = "0.4.1-dev"6092source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a"6614source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=upgrade-to-polkadot-v1.1.0#26b6fd59ab71429604a81c99ac093d20982c5459"6093dependencies = [6615dependencies = [6094 "frame-support",6616 "frame-support",6095 "frame-system",6617 "frame-system",6618 "log",6096 "orml-traits",6619 "orml-traits",6097 "parity-scale-codec",6620 "parity-scale-codec",6098 "scale-info",6621 "scale-info",6105[[package]]6628[[package]]6106name = "orml-traits"6629name = "orml-traits"6107version = "0.4.1-dev"6630version = "0.4.1-dev"6108source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a"6631source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=upgrade-to-polkadot-v1.1.0#26b6fd59ab71429604a81c99ac093d20982c5459"6109dependencies = [6632dependencies = [6110 "frame-support",6633 "frame-support",6111 "impl-trait-for-tuples",6634 "impl-trait-for-tuples",6112 "num-traits",6635 "num-traits",6113 "orml-utilities",6636 "orml-utilities",6114 "parity-scale-codec",6637 "parity-scale-codec",6638 "paste",6115 "scale-info",6639 "scale-info",6116 "serde",6640 "serde",6117 "sp-core",6641 "sp-core",6118 "sp-io",6642 "sp-io",6119 "sp-runtime",6643 "sp-runtime",6120 "sp-std",6644 "sp-std",6121 "xcm",6645 "staging-xcm",6122]6646]612366476124[[package]]6648[[package]]6125name = "orml-utilities"6649name = "orml-utilities"6126version = "0.4.1-dev"6650version = "0.4.1-dev"6127source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a"6651source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=upgrade-to-polkadot-v1.1.0#26b6fd59ab71429604a81c99ac093d20982c5459"6128dependencies = [6652dependencies = [6129 "frame-support",6653 "frame-support",6130 "parity-scale-codec",6654 "parity-scale-codec",6131 "scale-info",6655 "scale-info",6132 "serde",6656 "serde",6657 "sp-core",6133 "sp-io",6658 "sp-io",6134 "sp-runtime",6659 "sp-runtime",6135 "sp-std",6660 "sp-std",6138[[package]]6663[[package]]6139name = "orml-vesting"6664name = "orml-vesting"6140version = "0.4.1-dev"6665version = "0.4.1-dev"6141source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a"6666source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=upgrade-to-polkadot-v1.1.0#26b6fd59ab71429604a81c99ac093d20982c5459"6142dependencies = [6667dependencies = [6143 "frame-support",6668 "frame-support",6144 "frame-system",6669 "frame-system",6153[[package]]6678[[package]]6154name = "orml-xcm-support"6679name = "orml-xcm-support"6155version = "0.4.1-dev"6680version = "0.4.1-dev"6156source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a"6681source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=upgrade-to-polkadot-v1.1.0#26b6fd59ab71429604a81c99ac093d20982c5459"6157dependencies = [6682dependencies = [6158 "frame-support",6683 "frame-support",6159 "orml-traits",6684 "orml-traits",6160 "parity-scale-codec",6685 "parity-scale-codec",6161 "sp-runtime",6686 "sp-runtime",6162 "sp-std",6687 "sp-std",6163 "xcm",6688 "staging-xcm",6164 "xcm-executor",6689 "staging-xcm-executor",6165]6690]616666916167[[package]]6692[[package]]6168name = "orml-xtokens"6693name = "orml-xtokens"6169version = "0.4.1-dev"6694version = "0.4.1-dev"6170source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a"6695source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=upgrade-to-polkadot-v1.1.0#26b6fd59ab71429604a81c99ac093d20982c5459"6171dependencies = [6696dependencies = [6172 "cumulus-primitives-core",6697 "cumulus-primitives-core",6173 "frame-support",6698 "frame-support",6174 "frame-system",6699 "frame-system",6700 "log",6175 "orml-traits",6701 "orml-traits",6176 "orml-xcm-support",6702 "orml-xcm-support",6177 "pallet-xcm",6703 "pallet-xcm",6181 "sp-io",6707 "sp-io",6182 "sp-runtime",6708 "sp-runtime",6183 "sp-std",6709 "sp-std",6184 "xcm",6710 "staging-xcm",6185 "xcm-executor",6711 "staging-xcm-executor",6186]6712]618767136188[[package]]6714[[package]]6193dependencies = [6719dependencies = [6194 "ecdsa 0.14.8",6720 "ecdsa 0.14.8",6195 "elliptic-curve 0.12.3",6721 "elliptic-curve 0.12.3",6196 "sha2 0.10.7",6722 "sha2 0.10.8",6197]6723]619867246199[[package]]6725[[package]]6204dependencies = [6730dependencies = [6205 "ecdsa 0.14.8",6731 "ecdsa 0.14.8",6206 "elliptic-curve 0.12.3",6732 "elliptic-curve 0.12.3",6207 "sha2 0.10.7",6733 "sha2 0.10.8",6208]6734]620967356210[[package]]6736[[package]]6211name = "packed_simd_2"6212version = "0.3.8"6213source = "registry+https://github.com/rust-lang/crates.io-index"6214checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"6215dependencies = [6216 "cfg-if",6217 "libm 0.1.4",6218]62196220[[package]]6221name = "pallet-app-promotion"6737name = "pallet-app-promotion"6222version = "0.2.1"6738version = "0.2.1"6223dependencies = [6739dependencies = [6242[[package]]6758[[package]]6243name = "pallet-aura"6759name = "pallet-aura"6244version = "4.0.0-dev"6760version = "4.0.0-dev"6245source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6761source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6246dependencies = [6762dependencies = [6247 "frame-support",6763 "frame-support",6248 "frame-system",6764 "frame-system",6765 "log",6249 "pallet-timestamp",6766 "pallet-timestamp",6250 "parity-scale-codec",6767 "parity-scale-codec",6251 "scale-info",6768 "scale-info",6258[[package]]6775[[package]]6259name = "pallet-authority-discovery"6776name = "pallet-authority-discovery"6260version = "4.0.0-dev"6777version = "4.0.0-dev"6261source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6778source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6262dependencies = [6779dependencies = [6263 "frame-support",6780 "frame-support",6264 "frame-system",6781 "frame-system",6274[[package]]6791[[package]]6275name = "pallet-authorship"6792name = "pallet-authorship"6276version = "4.0.0-dev"6793version = "4.0.0-dev"6277source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6794source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6278dependencies = [6795dependencies = [6279 "frame-support",6796 "frame-support",6280 "frame-system",6797 "frame-system",6288[[package]]6805[[package]]6289name = "pallet-babe"6806name = "pallet-babe"6290version = "4.0.0-dev"6807version = "4.0.0-dev"6291source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6808source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6292dependencies = [6809dependencies = [6293 "frame-benchmarking",6810 "frame-benchmarking",6294 "frame-support",6811 "frame-support",6312[[package]]6829[[package]]6313name = "pallet-bags-list"6830name = "pallet-bags-list"6314version = "4.0.0-dev"6831version = "4.0.0-dev"6315source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6832source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6316dependencies = [6833dependencies = [6834 "aquamarine",6835 "docify",6317 "frame-benchmarking",6836 "frame-benchmarking",6318 "frame-election-provider-support",6837 "frame-election-provider-support",6319 "frame-support",6838 "frame-support",6332[[package]]6851[[package]]6333name = "pallet-balances"6852name = "pallet-balances"6334version = "4.0.0-dev"6853version = "4.0.0-dev"6335source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6854source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6336dependencies = [6855dependencies = [6337 "frame-benchmarking",6856 "frame-benchmarking",6338 "frame-support",6857 "frame-support",6368[[package]]6887[[package]]6369name = "pallet-base-fee"6888name = "pallet-base-fee"6370version = "1.0.0"6889version = "1.0.0"6371source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"6890source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"6372dependencies = [6891dependencies = [6373 "fp-evm",6892 "fp-evm",6374 "frame-support",6893 "frame-support",6382[[package]]6901[[package]]6383name = "pallet-beefy"6902name = "pallet-beefy"6384version = "4.0.0-dev"6903version = "4.0.0-dev"6385source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6904source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6386dependencies = [6905dependencies = [6387 "frame-support",6906 "frame-support",6388 "frame-system",6907 "frame-system",6908 "log",6389 "pallet-authorship",6909 "pallet-authorship",6390 "pallet-session",6910 "pallet-session",6391 "parity-scale-codec",6911 "parity-scale-codec",6401[[package]]6921[[package]]6402name = "pallet-beefy-mmr"6922name = "pallet-beefy-mmr"6403version = "4.0.0-dev"6923version = "4.0.0-dev"6404source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6924source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6405dependencies = [6925dependencies = [6406 "array-bytes 4.2.0",6926 "array-bytes",6407 "binary-merkle-tree",6927 "binary-merkle-tree",6408 "frame-support",6928 "frame-support",6409 "frame-system",6929 "frame-system",6419 "sp-core",6939 "sp-core",6420 "sp-io",6940 "sp-io",6421 "sp-runtime",6941 "sp-runtime",6942 "sp-state-machine",6422 "sp-std",6943 "sp-std",6423]6944]642469456425[[package]]6946[[package]]6426name = "pallet-bounties"6947name = "pallet-bounties"6427version = "4.0.0-dev"6948version = "4.0.0-dev"6428source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6949source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6429dependencies = [6950dependencies = [6430 "frame-benchmarking",6951 "frame-benchmarking",6431 "frame-support",6952 "frame-support",6443[[package]]6964[[package]]6444name = "pallet-child-bounties"6965name = "pallet-child-bounties"6445version = "4.0.0-dev"6966version = "4.0.0-dev"6446source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"6967source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6447dependencies = [6968dependencies = [6448 "frame-benchmarking",6969 "frame-benchmarking",6449 "frame-support",6970 "frame-support",6488[[package]]7009[[package]]6489name = "pallet-collective"7010name = "pallet-collective"6490version = "4.0.0-dev"7011version = "4.0.0-dev"6491source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7012source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6492dependencies = [7013dependencies = [6493 "frame-benchmarking",7014 "frame-benchmarking",6494 "frame-support",7015 "frame-support",6519 "sp-core",7040 "sp-core",6520 "sp-runtime",7041 "sp-runtime",6521 "sp-std",7042 "sp-std",7043 "sp-weights",6522 "up-data-structs",7044 "up-data-structs",6523 "up-pov-estimate-rpc",7045 "up-pov-estimate-rpc",6524]7046]6532 "frame-support",7054 "frame-support",6533 "frame-system",7055 "frame-system",6534 "hex-literal",7056 "hex-literal",7057 "log",6535 "parity-scale-codec",7058 "parity-scale-codec",6536 "scale-info",7059 "scale-info",6537 "smallvec",7060 "smallvec",6538 "sp-arithmetic",7061 "sp-arithmetic",6539 "sp-core",7062 "sp-core",6540 "sp-io",7063 "sp-io",7064 "sp-runtime",6541 "sp-std",7065 "sp-std",7066 "staging-xcm",6542 "up-common",7067 "up-common",6543 "xcm",6544]7068]654570696546[[package]]7070[[package]]6547name = "pallet-conviction-voting"7071name = "pallet-conviction-voting"6548version = "4.0.0-dev"7072version = "4.0.0-dev"6549source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7073source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6550dependencies = [7074dependencies = [6551 "assert_matches",7075 "assert_matches",6552 "frame-benchmarking",7076 "frame-benchmarking",6563[[package]]7087[[package]]6564name = "pallet-democracy"7088name = "pallet-democracy"6565version = "4.0.0-dev"7089version = "4.0.0-dev"6566source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7090source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6567dependencies = [7091dependencies = [6568 "frame-benchmarking",7092 "frame-benchmarking",6569 "frame-support",7093 "frame-support",6581[[package]]7105[[package]]6582name = "pallet-election-provider-multi-phase"7106name = "pallet-election-provider-multi-phase"6583version = "4.0.0-dev"7107version = "4.0.0-dev"6584source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7108source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6585dependencies = [7109dependencies = [6586 "frame-benchmarking",7110 "frame-benchmarking",6587 "frame-election-provider-support",7111 "frame-election-provider-support",6604[[package]]7128[[package]]6605name = "pallet-election-provider-support-benchmarking"7129name = "pallet-election-provider-support-benchmarking"6606version = "4.0.0-dev"7130version = "4.0.0-dev"6607source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7131source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6608dependencies = [7132dependencies = [6609 "frame-benchmarking",7133 "frame-benchmarking",6610 "frame-election-provider-support",7134 "frame-election-provider-support",6611 "frame-system",7135 "frame-system",6612 "parity-scale-codec",7136 "parity-scale-codec",6613 "sp-npos-elections",7137 "sp-npos-elections",6614 "sp-runtime",7138 "sp-runtime",7139 "sp-std",6615]7140]661671416617[[package]]7142[[package]]6618name = "pallet-elections-phragmen"7143name = "pallet-elections-phragmen"6619version = "5.0.0-dev"7144version = "5.0.0-dev"6620source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7145source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6621dependencies = [7146dependencies = [6622 "frame-benchmarking",7147 "frame-benchmarking",6623 "frame-support",7148 "frame-support",6629 "sp-io",7154 "sp-io",6630 "sp-npos-elections",7155 "sp-npos-elections",6631 "sp-runtime",7156 "sp-runtime",7157 "sp-staking",6632 "sp-std",7158 "sp-std",6633]7159]663471606635[[package]]7161[[package]]6636name = "pallet-ethereum"7162name = "pallet-ethereum"6637version = "4.0.0-dev"7163version = "4.0.0-dev"6638source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"7164source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"6639dependencies = [7165dependencies = [6640 "ethereum",7166 "ethereum",6641 "ethereum-types",7167 "ethereum-types",6658[[package]]7184[[package]]6659name = "pallet-evm"7185name = "pallet-evm"6660version = "6.0.0-dev"7186version = "6.0.0-dev"6661source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"7187source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"6662dependencies = [7188dependencies = [6663 "environmental",7189 "environmental",6664 "evm",7190 "evm",6667 "frame-benchmarking",7193 "frame-benchmarking",6668 "frame-support",7194 "frame-support",6669 "frame-system",7195 "frame-system",7196 "hash-db 0.16.0",6670 "hex",7197 "hex",6671 "hex-literal",7198 "hex-literal",6672 "impl-trait-for-tuples",7199 "impl-trait-for-tuples",6696 "scale-info",7223 "scale-info",6697 "sp-core",7224 "sp-core",6698 "sp-std",7225 "sp-std",7226 "sp-weights",6699 "spez",7227 "spez",6700 "up-data-structs",7228 "up-data-structs",6701]7229]6738[[package]]7266[[package]]6739name = "pallet-evm-precompile-simple"7267name = "pallet-evm-precompile-simple"6740version = "2.0.0-dev"7268version = "2.0.0-dev"6741source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v0.9.43#3ae25048cce709349b242e8ad3c54ada2b321564"7269source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.1.0#e99be6383ce0b0bc33768e479505cf4302dc0f8a"6742dependencies = [7270dependencies = [6743 "fp-evm",7271 "fp-evm",6744 "ripemd",7272 "ripemd",6764[[package]]7292[[package]]6765name = "pallet-fast-unstake"7293name = "pallet-fast-unstake"6766version = "4.0.0-dev"7294version = "4.0.0-dev"6767source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7295source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6768dependencies = [7296dependencies = [7297 "docify",6769 "frame-benchmarking",7298 "frame-benchmarking",6770 "frame-election-provider-support",7299 "frame-election-provider-support",6771 "frame-support",7300 "frame-support",6796 "serde",7325 "serde",6797 "sp-runtime",7326 "sp-runtime",6798 "sp-std",7327 "sp-std",7328 "staging-xcm",7329 "staging-xcm-executor",6799 "up-data-structs",7330 "up-data-structs",6800 "xcm",6801 "xcm-executor",6802]7331]680373326804[[package]]7333[[package]]6834[[package]]7363[[package]]6835name = "pallet-grandpa"7364name = "pallet-grandpa"6836version = "4.0.0-dev"7365version = "4.0.0-dev"6837source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7366source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6838dependencies = [7367dependencies = [6839 "frame-benchmarking",7368 "frame-benchmarking",6840 "frame-support",7369 "frame-support",6874[[package]]7403[[package]]6875name = "pallet-identity"7404name = "pallet-identity"6876version = "4.0.0-dev"7405version = "4.0.0-dev"6877source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7406source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6878dependencies = [7407dependencies = [6879 "enumflags2",7408 "enumflags2",6880 "frame-benchmarking",7409 "frame-benchmarking",6890[[package]]7419[[package]]6891name = "pallet-im-online"7420name = "pallet-im-online"6892version = "4.0.0-dev"7421version = "4.0.0-dev"6893source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7422source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6894dependencies = [7423dependencies = [6895 "frame-benchmarking",7424 "frame-benchmarking",6896 "frame-support",7425 "frame-support",6910[[package]]7439[[package]]6911name = "pallet-indices"7440name = "pallet-indices"6912version = "4.0.0-dev"7441version = "4.0.0-dev"6913source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7442source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6914dependencies = [7443dependencies = [6915 "frame-benchmarking",7444 "frame-benchmarking",6916 "frame-support",7445 "frame-support",6950 "parity-scale-codec",7479 "parity-scale-codec",6951 "scale-info",7480 "scale-info",6952 "sp-core",7481 "sp-core",7482 "sp-runtime",6953 "sp-std",7483 "sp-std",6954]7484]695574856956[[package]]7486[[package]]6957name = "pallet-membership"7487name = "pallet-membership"6958version = "4.0.0-dev"7488version = "4.0.0-dev"6959source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7489source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6960dependencies = [7490dependencies = [6961 "frame-benchmarking",7491 "frame-benchmarking",6962 "frame-support",7492 "frame-support",6973[[package]]7503[[package]]6974name = "pallet-message-queue"7504name = "pallet-message-queue"6975version = "7.0.0-dev"7505version = "7.0.0-dev"6976source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7506source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6977dependencies = [7507dependencies = [6978 "frame-benchmarking",7508 "frame-benchmarking",6979 "frame-support",7509 "frame-support",6992[[package]]7522[[package]]6993name = "pallet-mmr"7523name = "pallet-mmr"6994version = "4.0.0-dev"7524version = "4.0.0-dev"6995source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7525source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"6996dependencies = [7526dependencies = [6997 "frame-benchmarking",7527 "frame-benchmarking",6998 "frame-support",7528 "frame-support",6999 "frame-system",7529 "frame-system",7530 "log",7000 "parity-scale-codec",7531 "parity-scale-codec",7001 "scale-info",7532 "scale-info",7002 "sp-core",7533 "sp-core",7009[[package]]7540[[package]]7010name = "pallet-multisig"7541name = "pallet-multisig"7011version = "4.0.0-dev"7542version = "4.0.0-dev"7012source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7543source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7013dependencies = [7544dependencies = [7014 "frame-benchmarking",7545 "frame-benchmarking",7015 "frame-support",7546 "frame-support",7025[[package]]7556[[package]]7026name = "pallet-nis"7557name = "pallet-nis"7027version = "4.0.0-dev"7558version = "4.0.0-dev"7028source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7559source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7029dependencies = [7560dependencies = [7030 "frame-benchmarking",7561 "frame-benchmarking",7031 "frame-support",7562 "frame-support",7041[[package]]7572[[package]]7042name = "pallet-nomination-pools"7573name = "pallet-nomination-pools"7043version = "1.0.0"7574version = "1.0.0"7044source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7575source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7045dependencies = [7576dependencies = [7046 "frame-support",7577 "frame-support",7047 "frame-system",7578 "frame-system",7048 "log",7579 "log",7580 "pallet-balances",7049 "parity-scale-codec",7581 "parity-scale-codec",7050 "scale-info",7582 "scale-info",7051 "sp-core",7583 "sp-core",7052 "sp-io",7584 "sp-io",7053 "sp-runtime",7585 "sp-runtime",7054 "sp-staking",7586 "sp-staking",7055 "sp-std",7587 "sp-std",7588 "sp-tracing",7056]7589]705775907058[[package]]7591[[package]]7059name = "pallet-nomination-pools-benchmarking"7592name = "pallet-nomination-pools-benchmarking"7060version = "1.0.0"7593version = "1.0.0"7061source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7594source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7062dependencies = [7595dependencies = [7063 "frame-benchmarking",7596 "frame-benchmarking",7064 "frame-election-provider-support",7597 "frame-election-provider-support",7078[[package]]7611[[package]]7079name = "pallet-nomination-pools-runtime-api"7612name = "pallet-nomination-pools-runtime-api"7080version = "1.0.0-dev"7613version = "1.0.0-dev"7081source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7614source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7082dependencies = [7615dependencies = [7083 "pallet-nomination-pools",7616 "pallet-nomination-pools",7084 "parity-scale-codec",7617 "parity-scale-codec",7110[[package]]7643[[package]]7111name = "pallet-offences"7644name = "pallet-offences"7112version = "4.0.0-dev"7645version = "4.0.0-dev"7113source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7646source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7114dependencies = [7647dependencies = [7115 "frame-support",7648 "frame-support",7116 "frame-system",7649 "frame-system",7127[[package]]7660[[package]]7128name = "pallet-offences-benchmarking"7661name = "pallet-offences-benchmarking"7129version = "4.0.0-dev"7662version = "4.0.0-dev"7130source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7663source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7131dependencies = [7664dependencies = [7132 "frame-benchmarking",7665 "frame-benchmarking",7133 "frame-election-provider-support",7666 "frame-election-provider-support",7151[[package]]7684[[package]]7152name = "pallet-preimage"7685name = "pallet-preimage"7153version = "4.0.0-dev"7686version = "4.0.0-dev"7154source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7687source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7155dependencies = [7688dependencies = [7156 "frame-benchmarking",7689 "frame-benchmarking",7157 "frame-support",7690 "frame-support",7168[[package]]7701[[package]]7169name = "pallet-proxy"7702name = "pallet-proxy"7170version = "4.0.0-dev"7703version = "4.0.0-dev"7171source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7704source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7172dependencies = [7705dependencies = [7173 "frame-benchmarking",7706 "frame-benchmarking",7174 "frame-support",7707 "frame-support",7183[[package]]7716[[package]]7184name = "pallet-ranked-collective"7717name = "pallet-ranked-collective"7185version = "4.0.0-dev"7718version = "4.0.0-dev"7186source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7719source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7187dependencies = [7720dependencies = [7188 "frame-benchmarking",7721 "frame-benchmarking",7189 "frame-support",7722 "frame-support",7201[[package]]7734[[package]]7202name = "pallet-recovery"7735name = "pallet-recovery"7203version = "4.0.0-dev"7736version = "4.0.0-dev"7204source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7737source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7205dependencies = [7738dependencies = [7206 "frame-benchmarking",7739 "frame-benchmarking",7207 "frame-support",7740 "frame-support",7216[[package]]7749[[package]]7217name = "pallet-referenda"7750name = "pallet-referenda"7218version = "4.0.0-dev"7751version = "4.0.0-dev"7219source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7752source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7220dependencies = [7753dependencies = [7221 "assert_matches",7754 "assert_matches",7222 "frame-benchmarking",7755 "frame-benchmarking",7255[[package]]7788[[package]]7256name = "pallet-scheduler"7789name = "pallet-scheduler"7257version = "4.0.0-dev"7790version = "4.0.0-dev"7258source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7791source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7259dependencies = [7792dependencies = [7793 "docify",7260 "frame-benchmarking",7794 "frame-benchmarking",7261 "frame-support",7795 "frame-support",7262 "frame-system",7796 "frame-system",7272[[package]]7806[[package]]7273name = "pallet-session"7807name = "pallet-session"7274version = "4.0.0-dev"7808version = "4.0.0-dev"7275source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7809source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7276dependencies = [7810dependencies = [7277 "frame-support",7811 "frame-support",7278 "frame-system",7812 "frame-system",7286 "sp-runtime",7820 "sp-runtime",7287 "sp-session",7821 "sp-session",7288 "sp-staking",7822 "sp-staking",7823 "sp-state-machine",7289 "sp-std",7824 "sp-std",7290 "sp-trie",7825 "sp-trie",7291]7826]729278277293[[package]]7828[[package]]7294name = "pallet-session-benchmarking"7829name = "pallet-session-benchmarking"7295version = "4.0.0-dev"7830version = "4.0.0-dev"7296source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7831source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7297dependencies = [7832dependencies = [7298 "frame-benchmarking",7833 "frame-benchmarking",7299 "frame-support",7834 "frame-support",7300 "frame-system",7835 "frame-system",7301 "pallet-session",7836 "pallet-session",7302 "pallet-staking",7837 "pallet-staking",7838 "parity-scale-codec",7303 "rand 0.8.5",7839 "rand 0.8.5",7304 "sp-runtime",7840 "sp-runtime",7305 "sp-session",7841 "sp-session",7309[[package]]7845[[package]]7310name = "pallet-society"7846name = "pallet-society"7311version = "4.0.0-dev"7847version = "4.0.0-dev"7312source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7848source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7313dependencies = [7849dependencies = [7850 "frame-benchmarking",7314 "frame-support",7851 "frame-support",7315 "frame-system",7852 "frame-system",7853 "log",7316 "parity-scale-codec",7854 "parity-scale-codec",7317 "rand_chacha 0.2.2",7855 "rand_chacha 0.2.2",7318 "scale-info",7856 "scale-info",7857 "sp-arithmetic",7858 "sp-io",7319 "sp-runtime",7859 "sp-runtime",7320 "sp-std",7860 "sp-std",7321]7861]732278627323[[package]]7863[[package]]7324name = "pallet-staking"7864name = "pallet-staking"7325version = "4.0.0-dev"7865version = "4.0.0-dev"7326source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7866source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7327dependencies = [7867dependencies = [7328 "frame-benchmarking",7868 "frame-benchmarking",7329 "frame-election-provider-support",7869 "frame-election-provider-support",7346[[package]]7886[[package]]7347name = "pallet-staking-reward-curve"7887name = "pallet-staking-reward-curve"7348version = "4.0.0-dev"7888version = "4.0.0-dev"7349source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7889source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7350dependencies = [7890dependencies = [7351 "proc-macro-crate",7891 "proc-macro-crate",7352 "proc-macro2",7892 "proc-macro2",7353 "quote",7893 "quote",7354 "syn 2.0.28",7894 "syn 2.0.37",7355]7895]735678967357[[package]]7897[[package]]7358name = "pallet-staking-reward-fn"7898name = "pallet-staking-reward-fn"7359version = "4.0.0-dev"7899version = "4.0.0-dev"7360source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7900source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7361dependencies = [7901dependencies = [7362 "log",7902 "log",7363 "sp-arithmetic",7903 "sp-arithmetic",7366[[package]]7906[[package]]7367name = "pallet-staking-runtime-api"7907name = "pallet-staking-runtime-api"7368version = "4.0.0-dev"7908version = "4.0.0-dev"7369source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7909source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7370dependencies = [7910dependencies = [7371 "parity-scale-codec",7911 "parity-scale-codec",7372 "sp-api",7912 "sp-api",7375[[package]]7915[[package]]7376name = "pallet-state-trie-migration"7916name = "pallet-state-trie-migration"7377version = "4.0.0-dev"7917version = "4.0.0-dev"7378source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7918source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7379dependencies = [7919dependencies = [7380 "frame-benchmarking",7920 "frame-benchmarking",7381 "frame-support",7921 "frame-support",7401 "pallet-evm",7941 "pallet-evm",7402 "parity-scale-codec",7942 "parity-scale-codec",7403 "scale-info",7943 "scale-info",7944 "sp-runtime",7404 "sp-std",7945 "sp-std",7405 "up-data-structs",7946 "up-data-structs",7406]7947]740779487408[[package]]7949[[package]]7409name = "pallet-sudo"7950name = "pallet-sudo"7410version = "4.0.0-dev"7951version = "4.0.0-dev"7411source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7952source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7412dependencies = [7953dependencies = [7413 "frame-benchmarking",7954 "frame-benchmarking",7414 "frame-support",7955 "frame-support",7423[[package]]7964[[package]]7424name = "pallet-template-transaction-payment"7965name = "pallet-template-transaction-payment"7425version = "3.0.0"7966version = "3.0.0"7426source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.43#bd6e4a2a97b1415c22f96512b857d9615cbe2f81"7967source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v1.1.0#2fbec92640f517e4812be7ed61ef7691af6e0bba"7427dependencies = [7968dependencies = [7428 "frame-benchmarking",7969 "frame-benchmarking",7429 "frame-support",7970 "frame-support",7446dependencies = [7987dependencies = [7447 "frame-support",7988 "frame-support",7448 "frame-system",7989 "frame-system",7449 "pallet-unique-scheduler-v2",7450 "parity-scale-codec",7990 "parity-scale-codec",7451 "scale-info",7991 "scale-info",7992 "sp-runtime",7452 "sp-std",7993 "sp-std",7453]7994]745479957455[[package]]7996[[package]]7456name = "pallet-timestamp"7997name = "pallet-timestamp"7457version = "4.0.0-dev"7998version = "4.0.0-dev"7458source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"7999source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7459dependencies = [8000dependencies = [7460 "frame-benchmarking",8001 "frame-benchmarking",7461 "frame-support",8002 "frame-support",7467 "sp-io",8008 "sp-io",7468 "sp-runtime",8009 "sp-runtime",7469 "sp-std",8010 "sp-std",8011 "sp-storage",7470 "sp-timestamp",8012 "sp-timestamp",7471]8013]747280147473[[package]]8015[[package]]7474name = "pallet-tips"8016name = "pallet-tips"7475version = "4.0.0-dev"8017version = "4.0.0-dev"7476source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"8018source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7477dependencies = [8019dependencies = [7478 "frame-benchmarking",8020 "frame-benchmarking",7479 "frame-support",8021 "frame-support",7492[[package]]8034[[package]]7493name = "pallet-transaction-payment"8035name = "pallet-transaction-payment"7494version = "4.0.0-dev"8036version = "4.0.0-dev"7495source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"8037source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7496dependencies = [8038dependencies = [7497 "frame-support",8039 "frame-support",7498 "frame-system",8040 "frame-system",7508[[package]]8050[[package]]7509name = "pallet-transaction-payment-rpc"8051name = "pallet-transaction-payment-rpc"7510version = "4.0.0-dev"8052version = "4.0.0-dev"7511source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"8053source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7512dependencies = [8054dependencies = [7513 "jsonrpsee",8055 "jsonrpsee",7514 "pallet-transaction-payment-rpc-runtime-api",8056 "pallet-transaction-payment-rpc-runtime-api",7524[[package]]8066[[package]]7525name = "pallet-transaction-payment-rpc-runtime-api"8067name = "pallet-transaction-payment-rpc-runtime-api"7526version = "4.0.0-dev"8068version = "4.0.0-dev"7527source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"8069source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7528dependencies = [8070dependencies = [7529 "pallet-transaction-payment",8071 "pallet-transaction-payment",7530 "parity-scale-codec",8072 "parity-scale-codec",7536[[package]]8078[[package]]7537name = "pallet-treasury"8079name = "pallet-treasury"7538version = "4.0.0-dev"8080version = "4.0.0-dev"7539source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"8081source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7540dependencies = [8082dependencies = [7541 "frame-benchmarking",8083 "frame-benchmarking",7542 "frame-support",8084 "frame-support",7576]8118]757781197578[[package]]8120[[package]]7579name = "pallet-unique-scheduler-v2"7580version = "0.1.0"7581dependencies = [7582 "frame-benchmarking",7583 "frame-support",7584 "frame-system",7585 "log",7586 "pallet-preimage",7587 "parity-scale-codec",7588 "scale-info",7589 "sp-core",7590 "sp-io",7591 "sp-runtime",7592 "sp-std",7593 "substrate-test-utils",7594]75957596[[package]]7597name = "pallet-utility"8121name = "pallet-utility"7598version = "4.0.0-dev"8122version = "4.0.0-dev"7599source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"8123source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7600dependencies = [8124dependencies = [7601 "frame-benchmarking",8125 "frame-benchmarking",7602 "frame-support",8126 "frame-support",7612[[package]]8136[[package]]7613name = "pallet-vesting"8137name = "pallet-vesting"7614version = "4.0.0-dev"8138version = "4.0.0-dev"7615source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"8139source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7616dependencies = [8140dependencies = [7617 "frame-benchmarking",8141 "frame-benchmarking",7618 "frame-support",8142 "frame-support",7627[[package]]8151[[package]]7628name = "pallet-whitelist"8152name = "pallet-whitelist"7629version = "4.0.0-dev"8153version = "4.0.0-dev"7630source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"8154source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7631dependencies = [8155dependencies = [7632 "frame-benchmarking",8156 "frame-benchmarking",7633 "frame-support",8157 "frame-support",764181657642[[package]]8166[[package]]7643name = "pallet-xcm"8167name = "pallet-xcm"7644version = "0.9.43"8168version = "1.0.0"7645source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8169source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7646dependencies = [8170dependencies = [7647 "bounded-collections",8171 "bounded-collections",7648 "frame-benchmarking",8172 "frame-benchmarking",7656 "sp-io",8180 "sp-io",7657 "sp-runtime",8181 "sp-runtime",7658 "sp-std",8182 "sp-std",7659 "xcm",8183 "staging-xcm",7660 "xcm-executor",8184 "staging-xcm-executor",7661]8185]766281867663[[package]]8187[[package]]7664name = "pallet-xcm-benchmarks"8188name = "pallet-xcm-benchmarks"7665version = "0.9.43"8189version = "1.0.0"7666source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8190source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7667dependencies = [8191dependencies = [7668 "frame-benchmarking",8192 "frame-benchmarking",7669 "frame-support",8193 "frame-support",7674 "sp-io",8198 "sp-io",7675 "sp-runtime",8199 "sp-runtime",7676 "sp-std",8200 "sp-std",7677 "xcm",8201 "staging-xcm",7678 "xcm-builder",8202 "staging-xcm-builder",7679 "xcm-executor",8203 "staging-xcm-executor",7680]8204]768182057682[[package]]8206[[package]]7683name = "parachain-info"8207name = "parachain-info"7684version = "0.1.0"8208version = "0.1.0"7685source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019"8209source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"7686dependencies = [8210dependencies = [7687 "cumulus-primitives-core",8211 "cumulus-primitives-core",7688 "frame-support",8212 "frame-support",7689 "frame-system",8213 "frame-system",7690 "parity-scale-codec",8214 "parity-scale-codec",7691 "scale-info",8215 "scale-info",8216 "sp-runtime",8217 "sp-std",7692]8218]769382197694[[package]]8220[[package]]7695name = "parity-db"8221name = "parity-db"7696version = "0.4.10"8222version = "0.4.11"7697source = "registry+https://github.com/rust-lang/crates.io-index"8223source = "registry+https://github.com/rust-lang/crates.io-index"7698checksum = "78f19d20a0d2cc52327a88d131fa1c4ea81ea4a04714aedcfeca2dd410049cf8"8224checksum = "ab512a34b3c2c5e465731cc7668edf79208bbe520be03484eeb05e63ed221735"7699dependencies = [8225dependencies = [7700 "blake2",8226 "blake2",7701 "crc32fast",8227 "crc32fast",771382397714[[package]]8240[[package]]7715name = "parity-scale-codec"8241name = "parity-scale-codec"7716version = "3.6.4"8242version = "3.6.5"7717source = "registry+https://github.com/rust-lang/crates.io-index"8243source = "registry+https://github.com/rust-lang/crates.io-index"7718checksum = "dd8e946cc0cc711189c0b0249fb8b599cbeeab9784d83c415719368bb8d4ac64"8244checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb"7719dependencies = [8245dependencies = [7720 "arrayvec 0.7.4",8246 "arrayvec 0.7.4",7721 "bitvec",8247 "bitvec",772882547729[[package]]8255[[package]]7730name = "parity-scale-codec-derive"8256name = "parity-scale-codec-derive"7731version = "3.6.4"8257version = "3.6.5"7732source = "registry+https://github.com/rust-lang/crates.io-index"8258source = "registry+https://github.com/rust-lang/crates.io-index"7733checksum = "2a296c3079b5fefbc499e1de58dc26c09b1b9a5952d26694ee89f04a43ebbb3e"8259checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260"7734dependencies = [8260dependencies = [7735 "proc-macro-crate",8261 "proc-macro-crate",7736 "proc-macro2",8262 "proc-macro2",775282787753[[package]]8279[[package]]7754name = "parking"8280name = "parking"7755version = "2.1.0"8281version = "2.1.1"7756source = "registry+https://github.com/rust-lang/crates.io-index"8282source = "registry+https://github.com/rust-lang/crates.io-index"7757checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"8283checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"775882847759[[package]]8285[[package]]7760name = "parking_lot"8286name = "parking_lot"7801 "libc",8327 "libc",7802 "redox_syscall 0.3.5",8328 "redox_syscall 0.3.5",7803 "smallvec",8329 "smallvec",7804 "windows-targets 0.48.2",8330 "windows-targets 0.48.5",7805]8331]780683327807[[package]]8333[[package]]7835]8361]783683627837[[package]]8363[[package]]8364name = "pbkdf2"8365version = "0.12.2"8366source = "registry+https://github.com/rust-lang/crates.io-index"8367checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"8368dependencies = [8369 "digest 0.10.7",8370]83718372[[package]]7838name = "peeking_take_while"8373name = "peeking_take_while"7839version = "0.1.2"8374version = "0.1.2"7840source = "registry+https://github.com/rust-lang/crates.io-index"8375source = "registry+https://github.com/rust-lang/crates.io-index"786684017867[[package]]8402[[package]]7868name = "pest"8403name = "pest"7869version = "2.7.2"8404version = "2.7.4"7870source = "registry+https://github.com/rust-lang/crates.io-index"8405source = "registry+https://github.com/rust-lang/crates.io-index"7871checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a"8406checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4"7872dependencies = [8407dependencies = [8408 "memchr",7873 "thiserror",8409 "thiserror",7874 "ucd-trie",8410 "ucd-trie",7875]8411]787684127877[[package]]8413[[package]]7878name = "pest_derive"8414name = "pest_derive"7879version = "2.7.2"8415version = "2.7.4"7880source = "registry+https://github.com/rust-lang/crates.io-index"8416source = "registry+https://github.com/rust-lang/crates.io-index"7881checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853"8417checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8"7882dependencies = [8418dependencies = [7883 "pest",8419 "pest",7884 "pest_generator",8420 "pest_generator",7885]8421]788684227887[[package]]8423[[package]]7888name = "pest_generator"8424name = "pest_generator"7889version = "2.7.2"8425version = "2.7.4"7890source = "registry+https://github.com/rust-lang/crates.io-index"8426source = "registry+https://github.com/rust-lang/crates.io-index"7891checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929"8427checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a"7892dependencies = [8428dependencies = [7893 "pest",8429 "pest",7894 "pest_meta",8430 "pest_meta",7895 "proc-macro2",8431 "proc-macro2",7896 "quote",8432 "quote",7897 "syn 2.0.28",8433 "syn 2.0.37",7898]8434]789984357900[[package]]8436[[package]]7901name = "pest_meta"8437name = "pest_meta"7902version = "2.7.2"8438version = "2.7.4"7903source = "registry+https://github.com/rust-lang/crates.io-index"8439source = "registry+https://github.com/rust-lang/crates.io-index"7904checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48"8440checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d"7905dependencies = [8441dependencies = [7906 "once_cell",8442 "once_cell",7907 "pest",8443 "pest",7908 "sha2 0.10.7",8444 "sha2 0.10.8",7909]8445]791084467911[[package]]8447[[package]]7912name = "petgraph"8448name = "petgraph"7913version = "0.6.3"8449version = "0.6.4"7914source = "registry+https://github.com/rust-lang/crates.io-index"8450source = "registry+https://github.com/rust-lang/crates.io-index"7915checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4"8451checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"7916dependencies = [8452dependencies = [7917 "fixedbitset",8453 "fixedbitset",7918 "indexmap 1.9.3",8454 "indexmap 2.0.2",7919]8455]792084567921[[package]]8457[[package]]7935dependencies = [8471dependencies = [7936 "proc-macro2",8472 "proc-macro2",7937 "quote",8473 "quote",7938 "syn 2.0.28",8474 "syn 2.0.37",7939]8475]794084767941[[package]]8477[[package]]794684827947[[package]]8483[[package]]7948name = "pin-project-lite"8484name = "pin-project-lite"7949version = "0.2.12"8485version = "0.2.13"7950source = "registry+https://github.com/rust-lang/crates.io-index"8486source = "registry+https://github.com/rust-lang/crates.io-index"7951checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"8487checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"795284887953[[package]]8489[[package]]7954name = "pin-utils"8490name = "pin-utils"7957checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"8493checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"795884947959[[package]]8495[[package]]8496name = "piper"8497version = "0.2.1"8498source = "registry+https://github.com/rust-lang/crates.io-index"8499checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"8500dependencies = [8501 "atomic-waker",8502 "fastrand 2.0.1",8503 "futures-io",8504]85058506[[package]]7960name = "pkcs8"8507name = "pkcs8"7961version = "0.9.0"8508version = "0.9.0"7962source = "registry+https://github.com/rust-lang/crates.io-index"8509source = "registry+https://github.com/rust-lang/crates.io-index"798485317985[[package]]8532[[package]]7986name = "platforms"8533name = "platforms"7987version = "2.0.0"8534version = "3.1.2"7988source = "registry+https://github.com/rust-lang/crates.io-index"8535source = "registry+https://github.com/rust-lang/crates.io-index"7989checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94"8536checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8"799085377991[[package]]8538[[package]]7992name = "platforms"7993version = "3.0.2"7994source = "registry+https://github.com/rust-lang/crates.io-index"7995checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"79967997[[package]]7998name = "polkadot-approval-distribution"8539name = "polkadot-approval-distribution"7999version = "0.9.43"8540version = "1.0.0"8000source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8541source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8001dependencies = [8542dependencies = [8002 "futures",8543 "futures",8544 "futures-timer",8003 "polkadot-node-jaeger",8545 "polkadot-node-jaeger",8004 "polkadot-node-metrics",8546 "polkadot-node-metrics",8005 "polkadot-node-network-protocol",8547 "polkadot-node-network-protocol",8006 "polkadot-node-primitives",8548 "polkadot-node-primitives",8007 "polkadot-node-subsystem",8549 "polkadot-node-subsystem",8550 "polkadot-node-subsystem-util",8008 "polkadot-primitives",8551 "polkadot-primitives",8009 "rand 0.8.5",8552 "rand 0.8.5",8010 "tracing-gum",8553 "tracing-gum",8011]8554]801285558013[[package]]8556[[package]]8014name = "polkadot-availability-bitfield-distribution"8557name = "polkadot-availability-bitfield-distribution"8015version = "0.9.43"8558version = "1.0.0"8016source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8559source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8017dependencies = [8560dependencies = [8561 "always-assert",8018 "futures",8562 "futures",8563 "futures-timer",8019 "polkadot-node-network-protocol",8564 "polkadot-node-network-protocol",8020 "polkadot-node-subsystem",8565 "polkadot-node-subsystem",8021 "polkadot-node-subsystem-util",8566 "polkadot-node-subsystem-util",802685718027[[package]]8572[[package]]8028name = "polkadot-availability-distribution"8573name = "polkadot-availability-distribution"8029version = "0.9.43"8574version = "1.0.0"8030source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8575source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8031dependencies = [8576dependencies = [8032 "derive_more",8577 "derive_more",8033 "fatality",8578 "fatality",8034 "futures",8579 "futures",8035 "lru 0.9.0",8036 "parity-scale-codec",8580 "parity-scale-codec",8037 "polkadot-erasure-coding",8581 "polkadot-erasure-coding",8038 "polkadot-node-network-protocol",8582 "polkadot-node-network-protocol",8041 "polkadot-node-subsystem-util",8585 "polkadot-node-subsystem-util",8042 "polkadot-primitives",8586 "polkadot-primitives",8043 "rand 0.8.5",8587 "rand 0.8.5",8588 "schnellru",8044 "sp-core",8589 "sp-core",8045 "sp-keystore",8590 "sp-keystore",8046 "thiserror",8591 "thiserror",804985948050[[package]]8595[[package]]8051name = "polkadot-availability-recovery"8596name = "polkadot-availability-recovery"8052version = "0.9.43"8597version = "1.0.0"8053source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8598source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8054dependencies = [8599dependencies = [8055 "fatality",8600 "fatality",8056 "futures",8601 "futures",8057 "lru 0.9.0",8058 "parity-scale-codec",8602 "parity-scale-codec",8059 "polkadot-erasure-coding",8603 "polkadot-erasure-coding",8060 "polkadot-node-network-protocol",8604 "polkadot-node-network-protocol",8064 "polkadot-primitives",8608 "polkadot-primitives",8065 "rand 0.8.5",8609 "rand 0.8.5",8066 "sc-network",8610 "sc-network",8611 "schnellru",8067 "thiserror",8612 "thiserror",8068 "tracing-gum",8613 "tracing-gum",8069]8614]807086158071[[package]]8616[[package]]8072name = "polkadot-cli"8617name = "polkadot-cli"8073version = "0.9.43"8618version = "1.1.0"8074source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8619source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8075dependencies = [8620dependencies = [8076 "clap",8621 "clap",8077 "frame-benchmarking-cli",8622 "frame-benchmarking-cli",8078 "futures",8623 "futures",8079 "log",8624 "log",8080 "polkadot-client",8081 "polkadot-node-core-pvf-worker",8082 "polkadot-node-metrics",8625 "polkadot-node-metrics",8083 "polkadot-performance-test",8626 "polkadot-performance-test",8084 "polkadot-service",8627 "polkadot-service",8098]8641]809986428100[[package]]8643[[package]]8101name = "polkadot-client"8102version = "0.9.43"8103source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8104dependencies = [8105 "async-trait",8106 "frame-benchmarking",8107 "frame-benchmarking-cli",8108 "frame-system",8109 "frame-system-rpc-runtime-api",8110 "futures",8111 "pallet-transaction-payment",8112 "pallet-transaction-payment-rpc-runtime-api",8113 "polkadot-core-primitives",8114 "polkadot-node-core-parachains-inherent",8115 "polkadot-primitives",8116 "polkadot-runtime",8117 "polkadot-runtime-common",8118 "sc-client-api",8119 "sc-consensus",8120 "sc-executor",8121 "sc-service",8122 "sp-api",8123 "sp-authority-discovery",8124 "sp-block-builder",8125 "sp-blockchain",8126 "sp-consensus",8127 "sp-consensus-babe",8128 "sp-consensus-beefy",8129 "sp-consensus-grandpa",8130 "sp-core",8131 "sp-inherents",8132 "sp-keyring",8133 "sp-mmr-primitives",8134 "sp-offchain",8135 "sp-runtime",8136 "sp-session",8137 "sp-storage",8138 "sp-timestamp",8139 "sp-transaction-pool",8140]81418142[[package]]8143name = "polkadot-collator-protocol"8644name = "polkadot-collator-protocol"8144version = "0.9.43"8645version = "1.0.0"8145source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8646source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8146dependencies = [8647dependencies = [8147 "always-assert",8148 "bitvec",8648 "bitvec",8149 "fatality",8649 "fatality",8150 "futures",8650 "futures",8158 "sp-keystore",8658 "sp-keystore",8159 "sp-runtime",8659 "sp-runtime",8160 "thiserror",8660 "thiserror",8661 "tokio-util",8161 "tracing-gum",8662 "tracing-gum",8162]8663]816386648164[[package]]8665[[package]]8165name = "polkadot-core-primitives"8666name = "polkadot-core-primitives"8166version = "0.9.43"8667version = "1.0.0"8167source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8668source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8168dependencies = [8669dependencies = [8169 "parity-scale-codec",8670 "parity-scale-codec",8170 "scale-info",8671 "scale-info",817586768176[[package]]8677[[package]]8177name = "polkadot-dispute-distribution"8678name = "polkadot-dispute-distribution"8178version = "0.9.43"8679version = "1.0.0"8179source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8680source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8180dependencies = [8681dependencies = [8181 "derive_more",8682 "derive_more",8182 "fatality",8683 "fatality",8183 "futures",8684 "futures",8184 "futures-timer",8685 "futures-timer",8185 "indexmap 1.9.3",8686 "indexmap 1.9.3",8186 "lru 0.9.0",8187 "parity-scale-codec",8687 "parity-scale-codec",8188 "polkadot-erasure-coding",8688 "polkadot-erasure-coding",8189 "polkadot-node-network-protocol",8689 "polkadot-node-network-protocol",8192 "polkadot-node-subsystem-util",8692 "polkadot-node-subsystem-util",8193 "polkadot-primitives",8693 "polkadot-primitives",8194 "sc-network",8694 "sc-network",8695 "schnellru",8195 "sp-application-crypto",8696 "sp-application-crypto",8196 "sp-keystore",8697 "sp-keystore",8197 "thiserror",8698 "thiserror",820087018201[[package]]8702[[package]]8202name = "polkadot-erasure-coding"8703name = "polkadot-erasure-coding"8203version = "0.9.43"8704version = "1.0.0"8204source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8705source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8205dependencies = [8706dependencies = [8206 "parity-scale-codec",8707 "parity-scale-codec",8207 "polkadot-node-primitives",8708 "polkadot-node-primitives",821487158215[[package]]8716[[package]]8216name = "polkadot-gossip-support"8717name = "polkadot-gossip-support"8217version = "0.9.43"8718version = "1.0.0"8218source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8719source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8219dependencies = [8720dependencies = [8220 "futures",8721 "futures",8221 "futures-timer",8722 "futures-timer",8226 "rand 0.8.5",8727 "rand 0.8.5",8227 "rand_chacha 0.3.1",8728 "rand_chacha 0.3.1",8228 "sc-network",8729 "sc-network",8730 "sc-network-common",8229 "sp-application-crypto",8731 "sp-application-crypto",8230 "sp-core",8732 "sp-core",8231 "sp-keystore",8733 "sp-keystore",823487368235[[package]]8737[[package]]8236name = "polkadot-network-bridge"8738name = "polkadot-network-bridge"8237version = "0.9.43"8739version = "1.0.0"8238source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8740source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8239dependencies = [8741dependencies = [8240 "always-assert",8742 "always-assert",8241 "async-trait",8743 "async-trait",825787598258[[package]]8760[[package]]8259name = "polkadot-node-collation-generation"8761name = "polkadot-node-collation-generation"8260version = "0.9.43"8762version = "1.0.0"8261source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8763source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8262dependencies = [8764dependencies = [8263 "futures",8765 "futures",8264 "parity-scale-codec",8766 "parity-scale-codec",827587778276[[package]]8778[[package]]8277name = "polkadot-node-core-approval-voting"8779name = "polkadot-node-core-approval-voting"8278version = "0.9.43"8780version = "1.0.0"8279source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8781source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8280dependencies = [8782dependencies = [8281 "bitvec",8783 "bitvec",8282 "derive_more",8784 "derive_more",8283 "futures",8785 "futures",8284 "futures-timer",8786 "futures-timer",8285 "kvdb",8787 "kvdb",8286 "lru 0.9.0",8788 "merlin 2.0.1",8287 "merlin",8288 "parity-scale-codec",8789 "parity-scale-codec",8289 "polkadot-node-jaeger",8790 "polkadot-node-jaeger",8290 "polkadot-node-primitives",8791 "polkadot-node-primitives",8293 "polkadot-overseer",8794 "polkadot-overseer",8294 "polkadot-primitives",8795 "polkadot-primitives",8295 "sc-keystore",8796 "sc-keystore",8296 "schnorrkel",8797 "schnellru",8798 "schnorrkel 0.9.1",8297 "sp-application-crypto",8799 "sp-application-crypto",8298 "sp-consensus",8800 "sp-consensus",8299 "sp-consensus-slots",8801 "sp-consensus-slots",830488068305[[package]]8807[[package]]8306name = "polkadot-node-core-av-store"8808name = "polkadot-node-core-av-store"8307version = "0.9.43"8809version = "1.0.0"8308source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8810source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8309dependencies = [8811dependencies = [8310 "bitvec",8812 "bitvec",8311 "futures",8813 "futures",8312 "futures-timer",8814 "futures-timer",8313 "kvdb",8815 "kvdb",8314 "parity-scale-codec",8816 "parity-scale-codec",8315 "polkadot-erasure-coding",8817 "polkadot-erasure-coding",8818 "polkadot-node-jaeger",8316 "polkadot-node-primitives",8819 "polkadot-node-primitives",8317 "polkadot-node-subsystem",8820 "polkadot-node-subsystem",8318 "polkadot-node-subsystem-util",8821 "polkadot-node-subsystem-util",832588288326[[package]]8829[[package]]8327name = "polkadot-node-core-backing"8830name = "polkadot-node-core-backing"8328version = "0.9.43"8831version = "1.0.0"8329source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8832source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8330dependencies = [8833dependencies = [8331 "bitvec",8834 "bitvec",8332 "fatality",8835 "fatality",834488478345[[package]]8848[[package]]8346name = "polkadot-node-core-bitfield-signing"8849name = "polkadot-node-core-bitfield-signing"8347version = "0.9.43"8850version = "1.0.0"8348source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8851source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8349dependencies = [8852dependencies = [8350 "futures",8853 "futures",8351 "polkadot-node-subsystem",8854 "polkadot-node-subsystem",835988628360[[package]]8863[[package]]8361name = "polkadot-node-core-candidate-validation"8864name = "polkadot-node-core-candidate-validation"8362version = "0.9.43"8865version = "1.0.0"8363source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8866source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8364dependencies = [8867dependencies = [8365 "async-trait",8868 "async-trait",8366 "futures",8869 "futures",8371 "polkadot-node-primitives",8874 "polkadot-node-primitives",8372 "polkadot-node-subsystem",8875 "polkadot-node-subsystem",8373 "polkadot-node-subsystem-util",8876 "polkadot-node-subsystem-util",8374 "polkadot-parachain",8877 "polkadot-overseer",8878 "polkadot-parachain-primitives",8375 "polkadot-primitives",8879 "polkadot-primitives",8376 "sp-maybe-compressed-blob",8880 "sp-maybe-compressed-blob",8377 "tracing-gum",8881 "tracing-gum",8378]8882]837988838380[[package]]8884[[package]]8381name = "polkadot-node-core-chain-api"8885name = "polkadot-node-core-chain-api"8382version = "0.9.43"8886version = "1.0.0"8383source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8887source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8384dependencies = [8888dependencies = [8385 "futures",8889 "futures",8386 "polkadot-node-metrics",8890 "polkadot-node-metrics",839488988395[[package]]8899[[package]]8396name = "polkadot-node-core-chain-selection"8900name = "polkadot-node-core-chain-selection"8397version = "0.9.43"8901version = "1.0.0"8398source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8902source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8399dependencies = [8903dependencies = [8400 "futures",8904 "futures",8401 "futures-timer",8905 "futures-timer",841189158412[[package]]8916[[package]]8413name = "polkadot-node-core-dispute-coordinator"8917name = "polkadot-node-core-dispute-coordinator"8414version = "0.9.43"8918version = "1.0.0"8415source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8919source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8416dependencies = [8920dependencies = [8417 "fatality",8921 "fatality",8418 "futures",8922 "futures",8419 "kvdb",8923 "kvdb",8420 "lru 0.9.0",8421 "parity-scale-codec",8924 "parity-scale-codec",8422 "polkadot-node-primitives",8925 "polkadot-node-primitives",8423 "polkadot-node-subsystem",8926 "polkadot-node-subsystem",8424 "polkadot-node-subsystem-util",8927 "polkadot-node-subsystem-util",8425 "polkadot-primitives",8928 "polkadot-primitives",8426 "sc-keystore",8929 "sc-keystore",8930 "schnellru",8427 "thiserror",8931 "thiserror",8428 "tracing-gum",8932 "tracing-gum",8429]8933]843089348431[[package]]8935[[package]]8432name = "polkadot-node-core-parachains-inherent"8936name = "polkadot-node-core-parachains-inherent"8433version = "0.9.43"8937version = "1.0.0"8434source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8938source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8435dependencies = [8939dependencies = [8436 "async-trait",8940 "async-trait",8437 "futures",8941 "futures",8446]8950]844789518448[[package]]8952[[package]]8953name = "polkadot-node-core-prospective-parachains"8954version = "1.0.0"8955source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8956dependencies = [8957 "bitvec",8958 "fatality",8959 "futures",8960 "parity-scale-codec",8961 "polkadot-node-primitives",8962 "polkadot-node-subsystem",8963 "polkadot-node-subsystem-util",8964 "polkadot-primitives",8965 "thiserror",8966 "tracing-gum",8967]89688969[[package]]8449name = "polkadot-node-core-provisioner"8970name = "polkadot-node-core-provisioner"8450version = "0.9.43"8971version = "1.0.0"8451source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8972source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8452dependencies = [8973dependencies = [8453 "bitvec",8974 "bitvec",8454 "fatality",8975 "fatality",8458 "polkadot-node-subsystem",8979 "polkadot-node-subsystem",8459 "polkadot-node-subsystem-util",8980 "polkadot-node-subsystem-util",8460 "polkadot-primitives",8981 "polkadot-primitives",8461 "rand 0.8.5",8462 "thiserror",8982 "thiserror",8463 "tracing-gum",8983 "tracing-gum",8464]8984]846589858466[[package]]8986[[package]]8467name = "polkadot-node-core-pvf"8987name = "polkadot-node-core-pvf"8468version = "0.9.43"8988version = "1.0.0"8469source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"8989source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8470dependencies = [8990dependencies = [8471 "always-assert",8991 "always-assert",8472 "futures",8992 "futures",8475 "parity-scale-codec",8995 "parity-scale-codec",8476 "pin-project",8996 "pin-project",8477 "polkadot-core-primitives",8997 "polkadot-core-primitives",8998 "polkadot-node-core-pvf-common",8478 "polkadot-node-metrics",8999 "polkadot-node-metrics",8479 "polkadot-node-primitives",9000 "polkadot-node-primitives",8480 "polkadot-parachain",9001 "polkadot-parachain-primitives",8481 "polkadot-primitives",9002 "polkadot-primitives",8482 "rand 0.8.5",9003 "rand 0.8.5",8483 "slotmap",9004 "slotmap",8484 "sp-core",9005 "sp-core",8485 "sp-maybe-compressed-blob",9006 "sp-maybe-compressed-blob",8486 "sp-tracing",8487 "sp-wasm-interface",9007 "sp-wasm-interface",8488 "substrate-build-script-utils",9008 "substrate-build-script-utils",9009 "tempfile",8489 "tokio",9010 "tokio",8490 "tracing-gum",9011 "tracing-gum",8491]9012]849290138493[[package]]9014[[package]]8494name = "polkadot-node-core-pvf-checker"9015name = "polkadot-node-core-pvf-checker"8495version = "0.9.43"9016version = "1.0.0"8496source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9017source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8497dependencies = [9018dependencies = [8498 "futures",9019 "futures",8499 "polkadot-node-primitives",9020 "polkadot-node-primitives",8507]9028]850890298509[[package]]9030[[package]]8510name = "polkadot-node-core-pvf-worker"9031name = "polkadot-node-core-pvf-common"8511version = "0.9.43"9032version = "1.0.0"8512source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9033source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8513dependencies = [9034dependencies = [8514 "assert_matches",8515 "cpu-time",9035 "cpu-time",8516 "futures",9036 "futures",9037 "landlock",8517 "libc",9038 "libc",8518 "parity-scale-codec",9039 "parity-scale-codec",8519 "polkadot-node-core-pvf",9040 "polkadot-parachain-primitives",8520 "polkadot-parachain",8521 "polkadot-primitives",9041 "polkadot-primitives",8522 "rayon",8523 "sc-executor",9042 "sc-executor",8524 "sc-executor-common",9043 "sc-executor-common",8525 "sc-executor-wasmtime",9044 "sc-executor-wasmtime",8526 "sp-core",9045 "sp-core",8527 "sp-externalities",9046 "sp-externalities",8528 "sp-io",9047 "sp-io",9048 "sp-tracing",9049 "tokio",9050 "tracing-gum",9051]90529053[[package]]9054name = "polkadot-node-core-pvf-prepare-worker"9055version = "1.0.0"9056source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"9057dependencies = [9058 "futures",9059 "libc",9060 "parity-scale-codec",9061 "polkadot-node-core-pvf-common",9062 "polkadot-parachain-primitives",9063 "polkadot-primitives",9064 "rayon",9065 "sc-executor",9066 "sc-executor-common",9067 "sc-executor-wasmtime",9068 "sp-io",8529 "sp-maybe-compressed-blob",9069 "sp-maybe-compressed-blob",8530 "sp-tracing",9070 "sp-tracing",8531 "substrate-build-script-utils",8532 "tempfile",8533 "tikv-jemalloc-ctl",9071 "tikv-jemalloc-ctl",8534 "tokio",9072 "tokio",8535 "tracing-gum",9073 "tracing-gum",8536]9074]853790758538[[package]]9076[[package]]8539name = "polkadot-node-core-runtime-api"9077name = "polkadot-node-core-runtime-api"8540version = "0.9.43"9078version = "1.0.0"8541source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9079source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8542dependencies = [9080dependencies = [8543 "futures",9081 "futures",8544 "lru 0.9.0",8545 "polkadot-node-metrics",9082 "polkadot-node-metrics",8546 "polkadot-node-subsystem",9083 "polkadot-node-subsystem",8547 "polkadot-node-subsystem-types",9084 "polkadot-node-subsystem-types",8548 "polkadot-primitives",9085 "polkadot-primitives",9086 "schnellru",8549 "sp-consensus-babe",9087 "sp-consensus-babe",8550 "tracing-gum",9088 "tracing-gum",8551]9089]855290908553[[package]]9091[[package]]8554name = "polkadot-node-jaeger"9092name = "polkadot-node-jaeger"8555version = "0.9.43"9093version = "1.0.0"8556source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9094source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8557dependencies = [9095dependencies = [8558 "lazy_static",9096 "lazy_static",8559 "log",9097 "log",857091088571[[package]]9109[[package]]8572name = "polkadot-node-metrics"9110name = "polkadot-node-metrics"8573version = "0.9.43"9111version = "1.0.0"8574source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9112source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8575dependencies = [9113dependencies = [8576 "bs58",9114 "bs58 0.5.0",8577 "futures",9115 "futures",8578 "futures-timer",9116 "futures-timer",8579 "log",9117 "log",858991278590[[package]]9128[[package]]8591name = "polkadot-node-network-protocol"9129name = "polkadot-node-network-protocol"8592version = "0.9.43"9130version = "1.0.0"8593source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9131source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8594dependencies = [9132dependencies = [8595 "async-channel",9133 "async-channel",8596 "async-trait",9134 "async-trait",9135 "bitvec",8597 "derive_more",9136 "derive_more",8598 "fatality",9137 "fatality",8599 "futures",9138 "futures",861291518613[[package]]9152[[package]]8614name = "polkadot-node-primitives"9153name = "polkadot-node-primitives"8615version = "0.9.43"9154version = "1.0.0"8616source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9155source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8617dependencies = [9156dependencies = [8618 "bounded-vec",9157 "bounded-vec",8619 "futures",9158 "futures",8620 "parity-scale-codec",9159 "parity-scale-codec",8621 "polkadot-parachain",9160 "polkadot-parachain-primitives",8622 "polkadot-primitives",9161 "polkadot-primitives",8623 "schnorrkel",9162 "schnorrkel 0.9.1",8624 "serde",9163 "serde",8625 "sp-application-crypto",9164 "sp-application-crypto",8626 "sp-consensus-babe",9165 "sp-consensus-babe",8629 "sp-maybe-compressed-blob",9168 "sp-maybe-compressed-blob",8630 "sp-runtime",9169 "sp-runtime",8631 "thiserror",9170 "thiserror",8632 "zstd 0.11.2+zstd.1.5.2",9171 "zstd 0.12.4",8633]9172]863491738635[[package]]9174[[package]]8636name = "polkadot-node-subsystem"9175name = "polkadot-node-subsystem"8637version = "0.9.43"9176version = "1.0.0"8638source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9177source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8639dependencies = [9178dependencies = [8640 "polkadot-node-jaeger",9179 "polkadot-node-jaeger",8641 "polkadot-node-subsystem-types",9180 "polkadot-node-subsystem-types",864491838645[[package]]9184[[package]]8646name = "polkadot-node-subsystem-types"9185name = "polkadot-node-subsystem-types"8647version = "0.9.43"9186version = "1.0.0"8648source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9187source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8649dependencies = [9188dependencies = [8650 "async-trait",9189 "async-trait",8651 "derive_more",9190 "derive_more",8657 "polkadot-primitives",9196 "polkadot-primitives",8658 "polkadot-statement-table",9197 "polkadot-statement-table",8659 "sc-network",9198 "sc-network",9199 "sc-transaction-pool-api",8660 "smallvec",9200 "smallvec",8661 "sp-api",9201 "sp-api",8662 "sp-authority-discovery",9202 "sp-authority-discovery",866792078668[[package]]9208[[package]]8669name = "polkadot-node-subsystem-util"9209name = "polkadot-node-subsystem-util"8670version = "0.9.43"9210version = "1.0.0"8671source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9211source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8672dependencies = [9212dependencies = [8673 "async-trait",9213 "async-trait",8674 "derive_more",9214 "derive_more",8675 "fatality",9215 "fatality",8676 "futures",9216 "futures",8677 "futures-channel",9217 "futures-channel",8678 "itertools",9218 "itertools 0.10.5",8679 "kvdb",9219 "kvdb",8680 "lru 0.9.0",8681 "parity-db",9220 "parity-db",8682 "parity-scale-codec",9221 "parity-scale-codec",8683 "parking_lot 0.11.2",9222 "parking_lot 0.11.2",8691 "polkadot-primitives",9230 "polkadot-primitives",8692 "prioritized-metered-channel",9231 "prioritized-metered-channel",8693 "rand 0.8.5",9232 "rand 0.8.5",9233 "schnellru",8694 "sp-application-crypto",9234 "sp-application-crypto",8695 "sp-core",9235 "sp-core",8696 "sp-keystore",9236 "sp-keystore",870092408701[[package]]9241[[package]]8702name = "polkadot-overseer"9242name = "polkadot-overseer"8703version = "0.9.43"9243version = "1.0.0"8704source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9244source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8705dependencies = [9245dependencies = [8706 "async-trait",9246 "async-trait",8707 "futures",9247 "futures",8708 "futures-timer",9248 "futures-timer",8709 "lru 0.9.0",8710 "orchestra",9249 "orchestra",8711 "parking_lot 0.12.1",9250 "parking_lot 0.12.1",8712 "polkadot-node-metrics",9251 "polkadot-node-metrics",8715 "polkadot-node-subsystem-types",9254 "polkadot-node-subsystem-types",8716 "polkadot-primitives",9255 "polkadot-primitives",8717 "sc-client-api",9256 "sc-client-api",9257 "schnellru",8718 "sp-api",9258 "sp-api",8719 "sp-core",9259 "sp-core",8720 "tikv-jemalloc-ctl",9260 "tikv-jemalloc-ctl",8721 "tracing-gum",9261 "tracing-gum",8722]9262]872392638724[[package]]9264[[package]]8725name = "polkadot-parachain"9265name = "polkadot-parachain-primitives"8726version = "0.9.43"9266version = "1.0.0"8727source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9267source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8728dependencies = [9268dependencies = [8729 "bounded-collections",9269 "bounded-collections",8730 "derive_more",9270 "derive_more",874092808741[[package]]9281[[package]]8742name = "polkadot-performance-test"9282name = "polkadot-performance-test"8743version = "0.9.43"9283version = "1.0.0"8744source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9284source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8745dependencies = [9285dependencies = [8746 "env_logger 0.9.3",9286 "env_logger 0.9.3",8747 "kusama-runtime",8748 "log",9287 "log",8749 "polkadot-erasure-coding",9288 "polkadot-erasure-coding",8750 "polkadot-node-core-pvf-worker",9289 "polkadot-node-core-pvf-prepare-worker",8751 "polkadot-node-primitives",9290 "polkadot-node-primitives",8752 "polkadot-primitives",9291 "polkadot-primitives",8753 "quote",9292 "quote",8754 "sc-executor-common",9293 "sc-executor-common",8755 "sp-maybe-compressed-blob",9294 "sp-maybe-compressed-blob",9295 "staging-kusama-runtime",8756 "thiserror",9296 "thiserror",8757]9297]875892988759[[package]]9299[[package]]8760name = "polkadot-primitives"9300name = "polkadot-primitives"8761version = "0.9.43"9301version = "1.0.0"8762source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9302source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8763dependencies = [9303dependencies = [8764 "bitvec",9304 "bitvec",8765 "hex-literal",9305 "hex-literal",8766 "parity-scale-codec",9306 "parity-scale-codec",8767 "polkadot-core-primitives",9307 "polkadot-core-primitives",8768 "polkadot-parachain",9308 "polkadot-parachain-primitives",8769 "scale-info",9309 "scale-info",8770 "serde",9310 "serde",8771 "sp-api",9311 "sp-api",878493248785[[package]]9325[[package]]8786name = "polkadot-rpc"9326name = "polkadot-rpc"8787version = "0.9.43"9327version = "1.0.0"8788source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9328source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8789dependencies = [9329dependencies = [8790 "jsonrpsee",9330 "jsonrpsee",8791 "mmr-rpc",9331 "mmr-rpc",881693568817[[package]]9357[[package]]8818name = "polkadot-runtime"9358name = "polkadot-runtime"8819version = "0.9.43"9359version = "1.0.0"8820source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9360source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8821dependencies = [9361dependencies = [8822 "bitvec",9362 "bitvec",8823 "frame-benchmarking",9363 "frame-benchmarking",8845 "pallet-elections-phragmen",9385 "pallet-elections-phragmen",8846 "pallet-fast-unstake",9386 "pallet-fast-unstake",8847 "pallet-grandpa",9387 "pallet-grandpa",8848 "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43)",9388 "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0)",8849 "pallet-im-online",9389 "pallet-im-online",8850 "pallet-indices",9390 "pallet-indices",8851 "pallet-membership",9391 "pallet-membership",8874 "pallet-vesting",9414 "pallet-vesting",8875 "pallet-whitelist",9415 "pallet-whitelist",8876 "pallet-xcm",9416 "pallet-xcm",9417 "pallet-xcm-benchmarks",8877 "parity-scale-codec",9418 "parity-scale-codec",8878 "polkadot-primitives",9419 "polkadot-primitives",8879 "polkadot-runtime-common",9420 "polkadot-runtime-common",8900 "sp-session",9441 "sp-session",8901 "sp-staking",9442 "sp-staking",8902 "sp-std",9443 "sp-std",9444 "sp-storage",8903 "sp-transaction-pool",9445 "sp-transaction-pool",8904 "sp-version",9446 "sp-version",9447 "staging-xcm",9448 "staging-xcm-builder",9449 "staging-xcm-executor",8905 "static_assertions",9450 "static_assertions",8906 "substrate-wasm-builder",9451 "substrate-wasm-builder",8907 "xcm",8908 "xcm-builder",8909 "xcm-executor",8910]9452]891194538912[[package]]9454[[package]]8913name = "polkadot-runtime-common"9455name = "polkadot-runtime-common"8914version = "0.9.43"9456version = "1.0.0"8915source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9457source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8916dependencies = [9458dependencies = [8917 "bitvec",9459 "bitvec",8918 "frame-benchmarking",9460 "frame-benchmarking",8951 "sp-session",9493 "sp-session",8952 "sp-staking",9494 "sp-staking",8953 "sp-std",9495 "sp-std",9496 "staging-xcm",8954 "static_assertions",9497 "static_assertions",8955 "xcm",8956]9498]895794998958[[package]]9500[[package]]8959name = "polkadot-runtime-constants"9501name = "polkadot-runtime-constants"8960version = "0.9.43"9502version = "1.0.0"8961source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9503source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8962dependencies = [9504dependencies = [8963 "frame-support",9505 "frame-support",8964 "polkadot-primitives",9506 "polkadot-primitives",897195138972[[package]]9514[[package]]8973name = "polkadot-runtime-metrics"9515name = "polkadot-runtime-metrics"8974version = "0.9.43"9516version = "1.0.0"8975source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9517source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8976dependencies = [9518dependencies = [8977 "bs58",9519 "bs58 0.5.0",9520 "frame-benchmarking",8978 "parity-scale-codec",9521 "parity-scale-codec",8979 "polkadot-primitives",9522 "polkadot-primitives",8980 "sp-std",9523 "sp-std",898395268984[[package]]9527[[package]]8985name = "polkadot-runtime-parachains"9528name = "polkadot-runtime-parachains"8986version = "0.9.43"9529version = "1.0.0"8987source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9530source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"8988dependencies = [9531dependencies = [8989 "bitflags 1.3.2",9532 "bitflags 1.3.2",8990 "bitvec",9533 "bitvec",8991 "derive_more",9534 "derive_more",8992 "frame-benchmarking",9535 "frame-benchmarking",8993 "frame-support",9536 "frame-support",8994 "frame-system",9537 "frame-system",9538 "impl-trait-for-tuples",8995 "log",9539 "log",8996 "pallet-authority-discovery",9540 "pallet-authority-discovery",8997 "pallet-authorship",9541 "pallet-authorship",9003 "pallet-timestamp",9547 "pallet-timestamp",9004 "pallet-vesting",9548 "pallet-vesting",9005 "parity-scale-codec",9549 "parity-scale-codec",9006 "polkadot-parachain",9550 "polkadot-parachain-primitives",9007 "polkadot-primitives",9551 "polkadot-primitives",9008 "polkadot-runtime-metrics",9552 "polkadot-runtime-metrics",9009 "rand 0.8.5",9553 "rand 0.8.5",9021 "sp-session",9565 "sp-session",9022 "sp-staking",9566 "sp-staking",9023 "sp-std",9567 "sp-std",9568 "staging-xcm",9569 "staging-xcm-executor",9024 "static_assertions",9570 "static_assertions",9025 "xcm",9026 "xcm-executor",9027]9571]902895729029[[package]]9573[[package]]9030name = "polkadot-service"9574name = "polkadot-service"9031version = "0.9.43"9575version = "1.0.0"9032source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9576source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"9033dependencies = [9577dependencies = [9034 "async-trait",9578 "async-trait",9579 "frame-benchmarking",9035 "frame-benchmarking-cli",9580 "frame-benchmarking-cli",9036 "frame-support",9581 "frame-support",9582 "frame-system",9037 "frame-system-rpc-runtime-api",9583 "frame-system-rpc-runtime-api",9038 "futures",9584 "futures",9039 "hex-literal",9585 "hex-literal",9040 "kusama-runtime",9586 "is_executable",9041 "kvdb",9587 "kvdb",9042 "kvdb-rocksdb",9588 "kvdb-rocksdb",9043 "log",9589 "log",9044 "lru 0.9.0",9045 "mmr-gadget",9590 "mmr-gadget",9046 "pallet-babe",9591 "pallet-babe",9047 "pallet-im-online",9592 "pallet-im-online",9048 "pallet-staking",9593 "pallet-staking",9594 "pallet-transaction-payment",9049 "pallet-transaction-payment-rpc-runtime-api",9595 "pallet-transaction-payment-rpc-runtime-api",9050 "parity-db",9596 "parity-db",9597 "parity-scale-codec",9051 "polkadot-approval-distribution",9598 "polkadot-approval-distribution",9052 "polkadot-availability-bitfield-distribution",9599 "polkadot-availability-bitfield-distribution",9053 "polkadot-availability-distribution",9600 "polkadot-availability-distribution",9054 "polkadot-availability-recovery",9601 "polkadot-availability-recovery",9055 "polkadot-client",9056 "polkadot-collator-protocol",9602 "polkadot-collator-protocol",9603 "polkadot-core-primitives",9057 "polkadot-dispute-distribution",9604 "polkadot-dispute-distribution",9058 "polkadot-gossip-support",9605 "polkadot-gossip-support",9059 "polkadot-network-bridge",9606 "polkadot-network-bridge",9067 "polkadot-node-core-chain-selection",9614 "polkadot-node-core-chain-selection",9068 "polkadot-node-core-dispute-coordinator",9615 "polkadot-node-core-dispute-coordinator",9069 "polkadot-node-core-parachains-inherent",9616 "polkadot-node-core-parachains-inherent",9617 "polkadot-node-core-prospective-parachains",9070 "polkadot-node-core-provisioner",9618 "polkadot-node-core-provisioner",9619 "polkadot-node-core-pvf",9071 "polkadot-node-core-pvf-checker",9620 "polkadot-node-core-pvf-checker",9072 "polkadot-node-core-runtime-api",9621 "polkadot-node-core-runtime-api",9073 "polkadot-node-network-protocol",9622 "polkadot-node-network-protocol",9076 "polkadot-node-subsystem-types",9625 "polkadot-node-subsystem-types",9077 "polkadot-node-subsystem-util",9626 "polkadot-node-subsystem-util",9078 "polkadot-overseer",9627 "polkadot-overseer",9079 "polkadot-parachain",9628 "polkadot-parachain-primitives",9080 "polkadot-primitives",9629 "polkadot-primitives",9081 "polkadot-rpc",9630 "polkadot-rpc",9082 "polkadot-runtime",9631 "polkadot-runtime",9083 "polkadot-runtime-constants",9632 "polkadot-runtime-common",9084 "polkadot-runtime-parachains",9633 "polkadot-runtime-parachains",9085 "polkadot-statement-distribution",9634 "polkadot-statement-distribution",9086 "rococo-runtime",9635 "rococo-runtime",9106 "sc-sysinfo",9655 "sc-sysinfo",9107 "sc-telemetry",9656 "sc-telemetry",9108 "sc-transaction-pool",9657 "sc-transaction-pool",9658 "sc-transaction-pool-api",9659 "schnellru",9109 "serde",9660 "serde",9110 "serde_json",9661 "serde_json",9111 "sp-api",9662 "sp-api",9119 "sp-core",9670 "sp-core",9120 "sp-inherents",9671 "sp-inherents",9121 "sp-io",9672 "sp-io",9673 "sp-keyring",9122 "sp-keystore",9674 "sp-keystore",9123 "sp-mmr-primitives",9675 "sp-mmr-primitives",9124 "sp-offchain",9676 "sp-offchain",9128 "sp-storage",9680 "sp-storage",9129 "sp-timestamp",9681 "sp-timestamp",9130 "sp-transaction-pool",9682 "sp-transaction-pool",9131 "sp-trie",9683 "sp-version",9684 "sp-weights",9685 "staging-kusama-runtime",9132 "substrate-prometheus-endpoint",9686 "substrate-prometheus-endpoint",9133 "thiserror",9687 "thiserror",9134 "tracing-gum",9688 "tracing-gum",913796919138[[package]]9692[[package]]9139name = "polkadot-statement-distribution"9693name = "polkadot-statement-distribution"9140version = "0.9.43"9694version = "1.0.0"9141source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9695source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"9142dependencies = [9696dependencies = [9143 "arrayvec 0.5.2",9697 "arrayvec 0.7.4",9698 "bitvec",9144 "fatality",9699 "fatality",9145 "futures",9700 "futures",9701 "futures-timer",9146 "indexmap 1.9.3",9702 "indexmap 1.9.3",9147 "parity-scale-codec",9703 "parity-scale-codec",9148 "polkadot-node-network-protocol",9704 "polkadot-node-network-protocol",9149 "polkadot-node-primitives",9705 "polkadot-node-primitives",9150 "polkadot-node-subsystem",9706 "polkadot-node-subsystem",9707 "polkadot-node-subsystem-types",9151 "polkadot-node-subsystem-util",9708 "polkadot-node-subsystem-util",9152 "polkadot-primitives",9709 "polkadot-primitives",9153 "sp-keystore",9710 "sp-keystore",915897159159[[package]]9716[[package]]9160name = "polkadot-statement-table"9717name = "polkadot-statement-table"9161version = "0.9.43"9718version = "1.0.0"9162source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"9719source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"9163dependencies = [9720dependencies = [9164 "parity-scale-codec",9721 "parity-scale-codec",9165 "polkadot-primitives",9722 "polkadot-primitives",9178 "concurrent-queue",9735 "concurrent-queue",9179 "libc",9736 "libc",9180 "log",9737 "log",9181 "pin-project-lite 0.2.12",9738 "pin-project-lite 0.2.13",9182 "windows-sys 0.48.0",9739 "windows-sys 0.48.0",9183]9740]918497419194]9751]919597529196[[package]]9753[[package]]9754name = "poly1305"9755version = "0.8.0"9756source = "registry+https://github.com/rust-lang/crates.io-index"9757checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"9758dependencies = [9759 "cpufeatures",9760 "opaque-debug 0.3.0",9761 "universal-hash 0.5.1",9762]97639764[[package]]9197name = "polyval"9765name = "polyval"9198version = "0.5.3"9766version = "0.5.3"9199source = "registry+https://github.com/rust-lang/crates.io-index"9767source = "registry+https://github.com/rust-lang/crates.io-index"921997879220[[package]]9788[[package]]9221name = "portable-atomic"9789name = "portable-atomic"9222version = "1.4.2"9790version = "1.4.3"9223source = "registry+https://github.com/rust-lang/crates.io-index"9791source = "registry+https://github.com/rust-lang/crates.io-index"9224checksum = "f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e"9792checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b"922597939226[[package]]9794[[package]]9227name = "ppv-lite86"9795name = "ppv-lite86"9233name = "precompile-utils-macro"9801name = "precompile-utils-macro"9234version = "0.1.0"9802version = "0.1.0"9235dependencies = [9803dependencies = [9236 "num_enum 0.5.11",9804 "num_enum",9237 "proc-macro2",9805 "proc-macro2",9238 "quote",9806 "quote",9239 "sha3 0.8.2",9807 "sha3 0.8.2",9248dependencies = [9816dependencies = [9249 "difflib",9817 "difflib",9250 "float-cmp",9818 "float-cmp",9251 "itertools",9819 "itertools 0.10.5",9252 "normalize-line-endings",9820 "normalize-line-endings",9253 "predicates-core",9821 "predicates-core",9254 "regex",9822 "regex",928298509283[[package]]9851[[package]]9284name = "prettyplease"9852name = "prettyplease"9285version = "0.2.12"9853version = "0.2.15"9286source = "registry+https://github.com/rust-lang/crates.io-index"9854source = "registry+https://github.com/rust-lang/crates.io-index"9287checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"9855checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"9288dependencies = [9856dependencies = [9289 "proc-macro2",9857 "proc-macro2",9290 "syn 2.0.28",9858 "syn 2.0.37",9291]9859]929298609293[[package]]9861[[package]]9355]9923]935699249357[[package]]9925[[package]]9926name = "proc-macro-hack"9927version = "0.5.20+deprecated"9928source = "registry+https://github.com/rust-lang/crates.io-index"9929checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"99309931[[package]]9358name = "proc-macro-warning"9932name = "proc-macro-warning"9359version = "0.3.1"9933version = "0.4.2"9360source = "registry+https://github.com/rust-lang/crates.io-index"9934source = "registry+https://github.com/rust-lang/crates.io-index"9361checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4"9935checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e"9362dependencies = [9936dependencies = [9363 "proc-macro2",9937 "proc-macro2",9364 "quote",9938 "quote",9365 "syn 2.0.28",9939 "syn 2.0.37",9366]9940]936799419368[[package]]9942[[package]]9369name = "proc-macro2"9943name = "proc-macro2"9370version = "1.0.66"9944version = "1.0.67"9371source = "registry+https://github.com/rust-lang/crates.io-index"9945source = "registry+https://github.com/rust-lang/crates.io-index"9372checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"9946checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"9373dependencies = [9947dependencies = [9374 "unicode-ident",9948 "unicode-ident",9375]9949]9408dependencies = [9982dependencies = [9409 "proc-macro2",9983 "proc-macro2",9410 "quote",9984 "quote",9411 "syn 2.0.28",9985 "syn 2.0.37",9412]9986]941399879414[[package]]9988[[package]]9429dependencies = [10003dependencies = [9430 "bytes",10004 "bytes",9431 "heck",10005 "heck",9432 "itertools",10006 "itertools 0.10.5",9433 "lazy_static",10007 "lazy_static",9434 "log",10008 "log",9435 "multimap",10009 "multimap",9450checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"10024checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"9451dependencies = [10025dependencies = [9452 "anyhow",10026 "anyhow",9453 "itertools",10027 "itertools 0.10.5",9454 "proc-macro2",10028 "proc-macro2",9455 "quote",10029 "quote",9456 "syn 1.0.109",10030 "syn 1.0.109",9476100509477[[package]]10051[[package]]9478name = "quartz-runtime"10052name = "quartz-runtime"9479version = "0.9.43"10053version = "1.1.0"9480dependencies = [10054dependencies = [9481 "app-promotion-rpc",10055 "app-promotion-rpc",9482 "cumulus-pallet-aura-ext",10056 "cumulus-pallet-aura-ext",9502 "hex-literal",10076 "hex-literal",9503 "impl-trait-for-tuples",10077 "impl-trait-for-tuples",9504 "log",10078 "log",9505 "num_enum 0.5.11",10079 "num_enum",9506 "orml-tokens",10080 "orml-tokens",9507 "orml-traits",10081 "orml-traits",9508 "orml-vesting",10082 "orml-vesting",9554 "pallet-xcm",10128 "pallet-xcm",9555 "parachain-info",10129 "parachain-info",9556 "parity-scale-codec",10130 "parity-scale-codec",9557 "polkadot-parachain",10131 "polkadot-parachain-primitives",9558 "precompile-utils-macro",10132 "precompile-utils-macro",9559 "scale-info",10133 "scale-info",9560 "serde",10134 "serde",9572 "sp-std",10146 "sp-std",9573 "sp-transaction-pool",10147 "sp-transaction-pool",9574 "sp-version",10148 "sp-version",10149 "staging-xcm",10150 "staging-xcm-builder",10151 "staging-xcm-executor",9575 "substrate-wasm-builder",10152 "substrate-wasm-builder",9576 "up-common",10153 "up-common",9577 "up-data-structs",10154 "up-data-structs",9578 "up-pov-estimate-rpc",10155 "up-pov-estimate-rpc",9579 "up-rpc",10156 "up-rpc",9580 "up-sponsorship",10157 "up-sponsorship",9581 "xcm",9582 "xcm-builder",9583 "xcm-executor",9584]10158]9585101599586[[package]]10160[[package]]9624101989625[[package]]10199[[package]]9626name = "quinn-proto"10200name = "quinn-proto"9627version = "0.9.4"10201version = "0.9.5"9628source = "registry+https://github.com/rust-lang/crates.io-index"10202source = "registry+https://github.com/rust-lang/crates.io-index"9629checksum = "f31999cfc7927c4e212e60fd50934ab40e8e8bfd2d493d6095d2d306bc0764d9"10203checksum = "c956be1b23f4261676aed05a0046e204e8a6836e50203902683a718af0797989"9630dependencies = [10204dependencies = [9631 "bytes",10205 "bytes",9632 "rand 0.8.5",10206 "rand 0.8.5",9633 "ring",10207 "ring 0.16.20",9634 "rustc-hash",10208 "rustc-hash",9635 "rustls 0.20.8",10209 "rustls 0.20.9",9636 "slab",10210 "slab",9637 "thiserror",10211 "thiserror",9638 "tinyvec",10212 "tinyvec",9639 "tracing",10213 "tracing",9640 "webpki 0.22.0",10214 "webpki 0.22.2",9641]10215]9642102169643[[package]]10217[[package]]9644name = "quote"10218name = "quote"9645version = "1.0.32"10219version = "1.0.33"9646source = "registry+https://github.com/rust-lang/crates.io-index"10220source = "registry+https://github.com/rust-lang/crates.io-index"9647checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"10221checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"9648dependencies = [10222dependencies = [9649 "proc-macro2",10223 "proc-macro2",9650]10224]9743103179744[[package]]10318[[package]]9745name = "rayon"10319name = "rayon"9746version = "1.7.0"10320version = "1.8.0"9747source = "registry+https://github.com/rust-lang/crates.io-index"10321source = "registry+https://github.com/rust-lang/crates.io-index"9748checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"10322checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"9749dependencies = [10323dependencies = [9750 "either",10324 "either",9751 "rayon-core",10325 "rayon-core",9752]10326]9753103279754[[package]]10328[[package]]9755name = "rayon-core"10329name = "rayon-core"9756version = "1.11.0"10330version = "1.12.0"9757source = "registry+https://github.com/rust-lang/crates.io-index"10331source = "registry+https://github.com/rust-lang/crates.io-index"9758checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"10332checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"9759dependencies = [10333dependencies = [9760 "crossbeam-channel",9761 "crossbeam-deque",10334 "crossbeam-deque",9762 "crossbeam-utils",10335 "crossbeam-utils",9763 "num_cpus",9764]10336]9765103379766[[package]]10338[[package]]9770checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd"10342checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd"9771dependencies = [10343dependencies = [9772 "pem",10344 "pem",9773 "ring",10345 "ring 0.16.20",9774 "time 0.3.25",10346 "time",9775 "x509-parser 0.13.2",10347 "x509-parser 0.13.2",9776 "yasna",10348 "yasna",9777]10349]9783checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"10355checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"9784dependencies = [10356dependencies = [9785 "pem",10357 "pem",9786 "ring",10358 "ring 0.16.20",9787 "time 0.3.25",10359 "time",9788 "yasna",10360 "yasna",9789]10361]9790103629819103919820[[package]]10392[[package]]9821name = "reed-solomon-novelpoly"10393name = "reed-solomon-novelpoly"9822version = "1.0.0"10394version = "1.0.2"9823source = "registry+https://github.com/rust-lang/crates.io-index"10395source = "registry+https://github.com/rust-lang/crates.io-index"9824checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221"10396checksum = "58130877ca403ab42c864fbac74bb319a0746c07a634a92a5cfc7f54af272582"9825dependencies = [10397dependencies = [9826 "derive_more",10398 "derive_more",9827 "fs-err",10399 "fs-err",9828 "itertools",10400 "itertools 0.11.0",9829 "static_init 0.5.2",10401 "static_init",9830 "thiserror",10402 "thiserror",9831]10403]9832104049833[[package]]10405[[package]]9834name = "ref-cast"10406name = "ref-cast"9835version = "1.0.19"10407version = "1.0.20"9836source = "registry+https://github.com/rust-lang/crates.io-index"10408source = "registry+https://github.com/rust-lang/crates.io-index"9837checksum = "61ef7e18e8841942ddb1cf845054f8008410030a3997875d9e49b7a363063df1"10409checksum = "acde58d073e9c79da00f2b5b84eed919c8326832648a5b109b3fce1bb1175280"9838dependencies = [10410dependencies = [9839 "ref-cast-impl",10411 "ref-cast-impl",9840]10412]9841104139842[[package]]10414[[package]]9843name = "ref-cast-impl"10415name = "ref-cast-impl"9844version = "1.0.19"10416version = "1.0.20"9845source = "registry+https://github.com/rust-lang/crates.io-index"10417source = "registry+https://github.com/rust-lang/crates.io-index"9846checksum = "2dfaf0c85b766276c797f3791f5bc6d5bd116b41d53049af2789666b0c0bc9fa"10418checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"9847dependencies = [10419dependencies = [9848 "proc-macro2",10420 "proc-macro2",9849 "quote",10421 "quote",9850 "syn 2.0.28",10422 "syn 2.0.37",9851]10423]9852104249853[[package]]10425[[package]]9864104369865[[package]]10437[[package]]9866name = "regex"10438name = "regex"9867version = "1.9.3"10439version = "1.9.6"9868source = "registry+https://github.com/rust-lang/crates.io-index"10440source = "registry+https://github.com/rust-lang/crates.io-index"9869checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"10441checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff"9870dependencies = [10442dependencies = [9871 "aho-corasick",10443 "aho-corasick",9872 "memchr",10444 "memchr",9873 "regex-automata 0.3.6",10445 "regex-automata 0.3.9",9874 "regex-syntax 0.7.4",10446 "regex-syntax 0.7.5",9875]10447]9876104489877[[package]]10449[[package]]9885104579886[[package]]10458[[package]]9887name = "regex-automata"10459name = "regex-automata"9888version = "0.3.6"10460version = "0.3.9"9889source = "registry+https://github.com/rust-lang/crates.io-index"10461source = "registry+https://github.com/rust-lang/crates.io-index"9890checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"10462checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"9891dependencies = [10463dependencies = [9892 "aho-corasick",10464 "aho-corasick",9893 "memchr",10465 "memchr",9894 "regex-syntax 0.7.4",10466 "regex-syntax 0.7.5",9895]10467]9896104689897[[package]]10469[[package]]9902104749903[[package]]10475[[package]]9904name = "regex-syntax"10476name = "regex-syntax"9905version = "0.7.4"10477version = "0.7.5"9906source = "registry+https://github.com/rust-lang/crates.io-index"10478source = "registry+https://github.com/rust-lang/crates.io-index"9907checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"10479checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"9908104809909[[package]]10481[[package]]9910name = "resolv-conf"10482name = "resolv-conf"9939105119940[[package]]10512[[package]]9941name = "ring"10513name = "ring"10514version = "0.1.0"10515source = "git+https://github.com/w3f/ring-proof?rev=0e948f3#0e948f3c28cbacecdd3020403c4841c0eb339213"10516dependencies = [10517 "ark-ec",10518 "ark-ff",10519 "ark-poly",10520 "ark-serialize",10521 "ark-std",10522 "common",10523 "fflonk",10524 "merlin 3.0.0",10525]1052610527[[package]]10528name = "ring"9942version = "0.16.20"10529version = "0.16.20"9943source = "registry+https://github.com/rust-lang/crates.io-index"10530source = "registry+https://github.com/rust-lang/crates.io-index"9944checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"10531checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"9945dependencies = [10532dependencies = [9946 "cc",10533 "cc",9947 "libc",10534 "libc",9948 "once_cell",10535 "once_cell",9949 "spin",10536 "spin 0.5.2",9950 "untrusted",10537 "untrusted",9951 "web-sys",10538 "web-sys",9952 "winapi",10539 "winapi",9995105829996[[package]]10583[[package]]9997name = "rococo-runtime"10584name = "rococo-runtime"9998version = "0.9.43"10585version = "1.0.0"9999source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"10586source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10000dependencies = [10587dependencies = [10001 "binary-merkle-tree",10588 "binary-merkle-tree",10002 "frame-benchmarking",10589 "frame-benchmarking",10020 "pallet-democracy",10607 "pallet-democracy",10021 "pallet-elections-phragmen",10608 "pallet-elections-phragmen",10022 "pallet-grandpa",10609 "pallet-grandpa",10023 "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43)",10610 "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0)",10024 "pallet-im-online",10611 "pallet-im-online",10025 "pallet-indices",10612 "pallet-indices",10026 "pallet-membership",10613 "pallet-membership",10048 "pallet-xcm",10635 "pallet-xcm",10049 "pallet-xcm-benchmarks",10636 "pallet-xcm-benchmarks",10050 "parity-scale-codec",10637 "parity-scale-codec",10051 "polkadot-parachain",10638 "polkadot-parachain-primitives",10052 "polkadot-primitives",10639 "polkadot-primitives",10053 "polkadot-runtime-common",10640 "polkadot-runtime-common",10054 "polkadot-runtime-parachains",10641 "polkadot-runtime-parachains",10071 "sp-session",10658 "sp-session",10072 "sp-staking",10659 "sp-staking",10073 "sp-std",10660 "sp-std",10661 "sp-storage",10074 "sp-transaction-pool",10662 "sp-transaction-pool",10075 "sp-version",10663 "sp-version",10664 "staging-xcm",10665 "staging-xcm-builder",10666 "staging-xcm-executor",10076 "static_assertions",10667 "static_assertions",10077 "substrate-wasm-builder",10668 "substrate-wasm-builder",10078 "xcm",10079 "xcm-builder",10080 "xcm-executor",10081]10669]100821067010083[[package]]10671[[package]]10084name = "rococo-runtime-constants"10672name = "rococo-runtime-constants"10085version = "0.9.43"10673version = "1.0.0"10086source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"10674source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10087dependencies = [10675dependencies = [10088 "frame-support",10676 "frame-support",10089 "polkadot-primitives",10677 "polkadot-primitives",10179source = "registry+https://github.com/rust-lang/crates.io-index"10767source = "registry+https://github.com/rust-lang/crates.io-index"10180checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"10768checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"10181dependencies = [10769dependencies = [10182 "semver 1.0.18",10770 "semver 1.0.19",10183]10771]101841077210185[[package]]10773[[package]]102071079510208[[package]]10796[[package]]10209name = "rustix"10797name = "rustix"10210version = "0.37.23"10798version = "0.37.24"10211source = "registry+https://github.com/rust-lang/crates.io-index"10799source = "registry+https://github.com/rust-lang/crates.io-index"10212checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"10800checksum = "4279d76516df406a8bd37e7dff53fd37d1a093f997a3c34a5c21658c126db06d"10213dependencies = [10801dependencies = [10214 "bitflags 1.3.2",10802 "bitflags 1.3.2",10215 "errno",10803 "errno",102211080910222[[package]]10810[[package]]10223name = "rustix"10811name = "rustix"10224version = "0.38.8"10812version = "0.38.15"10225source = "registry+https://github.com/rust-lang/crates.io-index"10813source = "registry+https://github.com/rust-lang/crates.io-index"10226checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"10814checksum = "d2f9da0cbd88f9f09e7814e388301c8414c51c62aa6ce1e4b5c551d49d96e531"10227dependencies = [10815dependencies = [10228 "bitflags 2.4.0",10816 "bitflags 2.4.0",10229 "errno",10817 "errno",10230 "libc",10818 "libc",10231 "linux-raw-sys 0.4.5",10819 "linux-raw-sys 0.4.8",10232 "windows-sys 0.48.0",10820 "windows-sys 0.48.0",10233]10821]102341082210240dependencies = [10828dependencies = [10241 "base64 0.13.1",10829 "base64 0.13.1",10242 "log",10830 "log",10243 "ring",10831 "ring 0.16.20",10244 "sct 0.6.1",10832 "sct 0.6.1",10245 "webpki 0.21.4",10833 "webpki 0.21.4",10246]10834]102471083510248[[package]]10836[[package]]10249name = "rustls"10837name = "rustls"10250version = "0.20.8"10838version = "0.20.9"10251source = "registry+https://github.com/rust-lang/crates.io-index"10839source = "registry+https://github.com/rust-lang/crates.io-index"10252checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"10840checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"10253dependencies = [10841dependencies = [10254 "log",10842 "log",10255 "ring",10843 "ring 0.16.20",10256 "sct 0.7.0",10844 "sct 0.7.0",10257 "webpki 0.22.0",10845 "webpki 0.22.2",10258]10846]102591084710260[[package]]10848[[package]]10849name = "rustls"10850version = "0.21.7"10851source = "registry+https://github.com/rust-lang/crates.io-index"10852checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"10853dependencies = [10854 "log",10855 "ring 0.16.20",10856 "rustls-webpki 0.101.6",10857 "sct 0.7.0",10858]1085910860[[package]]10261name = "rustls-native-certs"10861name = "rustls-native-certs"10262version = "0.6.3"10862version = "0.6.3"10263source = "registry+https://github.com/rust-lang/crates.io-index"10863source = "registry+https://github.com/rust-lang/crates.io-index"10275source = "registry+https://github.com/rust-lang/crates.io-index"10875source = "registry+https://github.com/rust-lang/crates.io-index"10276checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"10876checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"10277dependencies = [10877dependencies = [10278 "base64 0.21.2",10878 "base64 0.21.4",10279]10879]102801088010281[[package]]10881[[package]]10882name = "rustls-webpki"10883version = "0.100.3"10884source = "registry+https://github.com/rust-lang/crates.io-index"10885checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3"10886dependencies = [10887 "ring 0.16.20",10888 "untrusted",10889]1089010891[[package]]10892name = "rustls-webpki"10893version = "0.101.6"10894source = "registry+https://github.com/rust-lang/crates.io-index"10895checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe"10896dependencies = [10897 "ring 0.16.20",10898 "untrusted",10899]1090010901[[package]]10282name = "rustversion"10902name = "rustversion"10283version = "1.0.14"10903version = "1.0.14"10284source = "registry+https://github.com/rust-lang/crates.io-index"10904source = "registry+https://github.com/rust-lang/crates.io-index"10285checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"10905checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"102861090610287[[package]]10907[[package]]10908name = "ruzstd"10909version = "0.4.0"10910source = "registry+https://github.com/rust-lang/crates.io-index"10911checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc"10912dependencies = [10913 "byteorder",10914 "thiserror-core",10915 "twox-hash",10916]1091710918[[package]]10288name = "rw-stream-sink"10919name = "rw-stream-sink"10289version = "0.3.0"10920version = "0.3.0"10290source = "registry+https://github.com/rust-lang/crates.io-index"10921source = "registry+https://github.com/rust-lang/crates.io-index"10322[[package]]10953[[package]]10323name = "sc-allocator"10954name = "sc-allocator"10324version = "4.1.0-dev"10955version = "4.1.0-dev"10325source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"10956source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10326dependencies = [10957dependencies = [10327 "log",10958 "log",10328 "sp-core",10959 "sp-core",10333[[package]]10964[[package]]10334name = "sc-authority-discovery"10965name = "sc-authority-discovery"10335version = "0.10.0-dev"10966version = "0.10.0-dev"10336source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"10967source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10337dependencies = [10968dependencies = [10338 "async-trait",10969 "async-trait",10339 "futures",10970 "futures",10340 "futures-timer",10971 "futures-timer",10341 "ip_network",10972 "ip_network",10342 "libp2p",10973 "libp2p",10343 "log",10974 "log",10344 "multihash 0.17.0",10975 "multihash",10345 "parity-scale-codec",10976 "parity-scale-codec",10346 "prost",10977 "prost",10347 "prost-build",10978 "prost-build",10348 "rand 0.8.5",10979 "rand 0.8.5",10349 "sc-client-api",10980 "sc-client-api",10350 "sc-network",10981 "sc-network",10351 "sc-network-common",10352 "sp-api",10982 "sp-api",10353 "sp-authority-discovery",10983 "sp-authority-discovery",10354 "sp-blockchain",10984 "sp-blockchain",10362[[package]]10992[[package]]10363name = "sc-basic-authorship"10993name = "sc-basic-authorship"10364version = "0.10.0-dev"10994version = "0.10.0-dev"10365source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"10995source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10366dependencies = [10996dependencies = [10367 "futures",10997 "futures",10368 "futures-timer",10998 "futures-timer",10385[[package]]11015[[package]]10386name = "sc-block-builder"11016name = "sc-block-builder"10387version = "0.10.0-dev"11017version = "0.10.0-dev"10388source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11018source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10389dependencies = [11019dependencies = [10390 "parity-scale-codec",11020 "parity-scale-codec",10391 "sc-client-api",11021 "sc-client-api",10400[[package]]11030[[package]]10401name = "sc-chain-spec"11031name = "sc-chain-spec"10402version = "4.0.0-dev"11032version = "4.0.0-dev"10403source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11033source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10404dependencies = [11034dependencies = [10405 "memmap2",11035 "memmap2",10406 "sc-chain-spec-derive",11036 "sc-chain-spec-derive",10419[[package]]11049[[package]]10420name = "sc-chain-spec-derive"11050name = "sc-chain-spec-derive"10421version = "4.0.0-dev"11051version = "4.0.0-dev"10422source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11052source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10423dependencies = [11053dependencies = [10424 "proc-macro-crate",11054 "proc-macro-crate",10425 "proc-macro2",11055 "proc-macro2",10426 "quote",11056 "quote",10427 "syn 2.0.28",11057 "syn 2.0.37",10428]11058]104291105910430[[package]]11060[[package]]10431name = "sc-cli"11061name = "sc-cli"10432version = "0.10.0-dev"11062version = "0.10.0-dev"10433source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11063source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10434dependencies = [11064dependencies = [10435 "array-bytes 4.2.0",11065 "array-bytes",10436 "chrono",11066 "chrono",10437 "clap",11067 "clap",10438 "fdlimit",11068 "fdlimit",10448 "sc-client-db",11078 "sc-client-db",10449 "sc-keystore",11079 "sc-keystore",10450 "sc-network",11080 "sc-network",10451 "sc-network-common",10452 "sc-service",11081 "sc-service",10453 "sc-telemetry",11082 "sc-telemetry",10454 "sc-tracing",11083 "sc-tracing",10470[[package]]11099[[package]]10471name = "sc-client-api"11100name = "sc-client-api"10472version = "4.0.0-dev"11101version = "4.0.0-dev"10473source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11102source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10474dependencies = [11103dependencies = [10475 "fnv",11104 "fnv",10476 "futures",11105 "futures",10486 "sp-core",11115 "sp-core",10487 "sp-database",11116 "sp-database",10488 "sp-externalities",11117 "sp-externalities",10489 "sp-keystore",10490 "sp-runtime",11118 "sp-runtime",10491 "sp-state-machine",11119 "sp-state-machine",10492 "sp-statement-store",11120 "sp-statement-store",10497[[package]]11125[[package]]10498name = "sc-client-db"11126name = "sc-client-db"10499version = "0.10.0-dev"11127version = "0.10.0-dev"10500source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11128source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10501dependencies = [11129dependencies = [10502 "hash-db 0.16.0",11130 "hash-db 0.16.0",10503 "kvdb",11131 "kvdb",10523[[package]]11151[[package]]10524name = "sc-consensus"11152name = "sc-consensus"10525version = "0.10.0-dev"11153version = "0.10.0-dev"10526source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11154source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10527dependencies = [11155dependencies = [10528 "async-trait",11156 "async-trait",10529 "futures",11157 "futures",10548[[package]]11176[[package]]10549name = "sc-consensus-aura"11177name = "sc-consensus-aura"10550version = "0.10.0-dev"11178version = "0.10.0-dev"10551source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11179source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10552dependencies = [11180dependencies = [10553 "async-trait",11181 "async-trait",10554 "futures",11182 "futures",10577[[package]]11205[[package]]10578name = "sc-consensus-babe"11206name = "sc-consensus-babe"10579version = "0.10.0-dev"11207version = "0.10.0-dev"10580source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11208source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10581dependencies = [11209dependencies = [10582 "async-trait",11210 "async-trait",10583 "fork-tree",11211 "fork-tree",10592 "sc-consensus",11220 "sc-consensus",10593 "sc-consensus-epochs",11221 "sc-consensus-epochs",10594 "sc-consensus-slots",11222 "sc-consensus-slots",10595 "sc-keystore",10596 "sc-telemetry",11223 "sc-telemetry",11224 "sc-transaction-pool-api",10597 "scale-info",11225 "scale-info",10598 "sp-api",11226 "sp-api",10599 "sp-application-crypto",11227 "sp-application-crypto",10613[[package]]11241[[package]]10614name = "sc-consensus-babe-rpc"11242name = "sc-consensus-babe-rpc"10615version = "0.10.0-dev"11243version = "0.10.0-dev"10616source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11244source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10617dependencies = [11245dependencies = [10618 "futures",11246 "futures",10619 "jsonrpsee",11247 "jsonrpsee",10635[[package]]11263[[package]]10636name = "sc-consensus-beefy"11264name = "sc-consensus-beefy"10637version = "4.0.0-dev"11265version = "4.0.0-dev"10638source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11266source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10639dependencies = [11267dependencies = [10640 "array-bytes 4.2.0",11268 "array-bytes",10641 "async-channel",11269 "async-channel",10642 "async-trait",11270 "async-trait",10643 "fnv",11271 "fnv",10647 "parking_lot 0.12.1",11275 "parking_lot 0.12.1",10648 "sc-client-api",11276 "sc-client-api",10649 "sc-consensus",11277 "sc-consensus",10650 "sc-keystore",10651 "sc-network",11278 "sc-network",10652 "sc-network-common",10653 "sc-network-gossip",11279 "sc-network-gossip",10654 "sc-network-sync",11280 "sc-network-sync",10655 "sc-utils",11281 "sc-utils",10671[[package]]11297[[package]]10672name = "sc-consensus-beefy-rpc"11298name = "sc-consensus-beefy-rpc"10673version = "4.0.0-dev"11299version = "4.0.0-dev"10674source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11300source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10675dependencies = [11301dependencies = [10676 "futures",11302 "futures",10677 "jsonrpsee",11303 "jsonrpsee",10690[[package]]11316[[package]]10691name = "sc-consensus-epochs"11317name = "sc-consensus-epochs"10692version = "0.10.0-dev"11318version = "0.10.0-dev"10693source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11319source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10694dependencies = [11320dependencies = [10695 "fork-tree",11321 "fork-tree",10696 "parity-scale-codec",11322 "parity-scale-codec",10703[[package]]11329[[package]]10704name = "sc-consensus-grandpa"11330name = "sc-consensus-grandpa"10705version = "0.10.0-dev"11331version = "0.10.0-dev"10706source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11332source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10707dependencies = [11333dependencies = [10708 "ahash 0.8.3",11334 "ahash 0.8.3",10709 "array-bytes 4.2.0",11335 "array-bytes",10710 "async-trait",11336 "async-trait",10711 "dyn-clone",11337 "dyn-clone",10712 "finality-grandpa",11338 "finality-grandpa",10725 "sc-network-common",11351 "sc-network-common",10726 "sc-network-gossip",11352 "sc-network-gossip",10727 "sc-telemetry",11353 "sc-telemetry",11354 "sc-transaction-pool-api",10728 "sc-utils",11355 "sc-utils",10729 "serde_json",11356 "serde_json",10730 "sp-api",11357 "sp-api",10743[[package]]11370[[package]]10744name = "sc-consensus-grandpa-rpc"11371name = "sc-consensus-grandpa-rpc"10745version = "0.10.0-dev"11372version = "0.10.0-dev"10746source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11373source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10747dependencies = [11374dependencies = [10748 "finality-grandpa",11375 "finality-grandpa",10749 "futures",11376 "futures",10763[[package]]11390[[package]]10764name = "sc-consensus-manual-seal"11391name = "sc-consensus-manual-seal"10765version = "0.10.0-dev"11392version = "0.10.0-dev"10766source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11393source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10767dependencies = [11394dependencies = [10768 "assert_matches",11395 "assert_matches",10769 "async-trait",11396 "async-trait",10798[[package]]11425[[package]]10799name = "sc-consensus-slots"11426name = "sc-consensus-slots"10800version = "0.10.0-dev"11427version = "0.10.0-dev"10801source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11428source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10802dependencies = [11429dependencies = [10803 "async-trait",11430 "async-trait",10804 "futures",11431 "futures",10821[[package]]11448[[package]]10822name = "sc-executor"11449name = "sc-executor"10823version = "0.10.0-dev"11450version = "0.10.0-dev"10824source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11451source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10825dependencies = [11452dependencies = [10826 "lru 0.8.1",10827 "parity-scale-codec",11453 "parity-scale-codec",10828 "parking_lot 0.12.1",11454 "parking_lot 0.12.1",10829 "sc-executor-common",11455 "sc-executor-common",10830 "sc-executor-wasmtime",11456 "sc-executor-wasmtime",11457 "schnellru",10831 "sp-api",11458 "sp-api",10832 "sp-core",11459 "sp-core",10833 "sp-externalities",11460 "sp-externalities",10843[[package]]11470[[package]]10844name = "sc-executor-common"11471name = "sc-executor-common"10845version = "0.10.0-dev"11472version = "0.10.0-dev"10846source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11473source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10847dependencies = [11474dependencies = [10848 "sc-allocator",11475 "sc-allocator",10849 "sp-maybe-compressed-blob",11476 "sp-maybe-compressed-blob",10855[[package]]11482[[package]]10856name = "sc-executor-wasmtime"11483name = "sc-executor-wasmtime"10857version = "0.10.0-dev"11484version = "0.10.0-dev"10858source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11485source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10859dependencies = [11486dependencies = [10860 "anyhow",11487 "anyhow",10861 "cfg-if",11488 "cfg-if",10862 "libc",11489 "libc",10863 "log",11490 "log",10864 "once_cell",10865 "rustix 0.36.15",11491 "rustix 0.36.15",10866 "sc-allocator",11492 "sc-allocator",10867 "sc-executor-common",11493 "sc-executor-common",10873[[package]]11499[[package]]10874name = "sc-informant"11500name = "sc-informant"10875version = "0.10.0-dev"11501version = "0.10.0-dev"10876source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11502source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10877dependencies = [11503dependencies = [10878 "ansi_term",11504 "ansi_term",10879 "futures",11505 "futures",10889[[package]]11515[[package]]10890name = "sc-keystore"11516name = "sc-keystore"10891version = "4.0.0-dev"11517version = "4.0.0-dev"10892source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11518source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10893dependencies = [11519dependencies = [10894 "array-bytes 4.2.0",11520 "array-bytes",10895 "parking_lot 0.12.1",11521 "parking_lot 0.12.1",10896 "serde_json",11522 "serde_json",10897 "sp-application-crypto",11523 "sp-application-crypto",10903[[package]]11529[[package]]10904name = "sc-network"11530name = "sc-network"10905version = "0.10.0-dev"11531version = "0.10.0-dev"10906source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11532source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10907dependencies = [11533dependencies = [10908 "array-bytes 4.2.0",11534 "array-bytes",10909 "async-channel",11535 "async-channel",10910 "async-trait",11536 "async-trait",10911 "asynchronous-codec",11537 "asynchronous-codec",10918 "libp2p",11544 "libp2p",10919 "linked_hash_set",11545 "linked_hash_set",10920 "log",11546 "log",10921 "lru 0.8.1",10922 "mockall",11547 "mockall",10923 "parity-scale-codec",11548 "parity-scale-codec",10924 "parking_lot 0.12.1",11549 "parking_lot 0.12.1",11550 "partial_sort",10925 "pin-project",11551 "pin-project",10926 "rand 0.8.5",11552 "rand 0.8.5",10927 "sc-block-builder",10928 "sc-client-api",11553 "sc-client-api",10929 "sc-consensus",10930 "sc-network-common",11554 "sc-network-common",10931 "sc-peerset",10932 "sc-utils",11555 "sc-utils",10933 "serde",11556 "serde",10934 "serde_json",11557 "serde_json",10935 "smallvec",11558 "smallvec",10936 "snow",10937 "sp-arithmetic",11559 "sp-arithmetic",10938 "sp-blockchain",11560 "sp-blockchain",10939 "sp-consensus",10940 "sp-core",11561 "sp-core",10941 "sp-runtime",11562 "sp-runtime",10942 "substrate-prometheus-endpoint",11563 "substrate-prometheus-endpoint",10943 "thiserror",11564 "thiserror",10944 "unsigned-varint",11565 "unsigned-varint",11566 "wasm-timer",10945 "zeroize",11567 "zeroize",10946]11568]109471156910948[[package]]11570[[package]]10949name = "sc-network-bitswap"11571name = "sc-network-bitswap"10950version = "0.10.0-dev"11572version = "0.10.0-dev"10951source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11573source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10952dependencies = [11574dependencies = [10953 "async-channel",11575 "async-channel",10954 "cid",11576 "cid",10959 "prost-build",11581 "prost-build",10960 "sc-client-api",11582 "sc-client-api",10961 "sc-network",11583 "sc-network",10962 "sc-network-common",10963 "sp-blockchain",11584 "sp-blockchain",10964 "sp-runtime",11585 "sp-runtime",10965 "thiserror",11586 "thiserror",10969[[package]]11590[[package]]10970name = "sc-network-common"11591name = "sc-network-common"10971version = "0.10.0-dev"11592version = "0.10.0-dev"10972source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11593source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"10973dependencies = [11594dependencies = [10974 "array-bytes 4.2.0",10975 "async-trait",11595 "async-trait",10976 "bitflags 1.3.2",11596 "bitflags 1.3.2",10977 "bytes",10978 "futures",11597 "futures",10979 "futures-timer",10980 "libp2p-identity",11598 "libp2p-identity",10981 "parity-scale-codec",11599 "parity-scale-codec",10982 "prost-build",11600 "prost-build",10983 "sc-consensus",11601 "sc-consensus",10984 "sc-peerset",10985 "sc-utils",10986 "serde",10987 "smallvec",10988 "sp-blockchain",10989 "sp-consensus",11602 "sp-consensus",10990 "sp-consensus-grandpa",11603 "sp-consensus-grandpa",10991 "sp-runtime",11604 "sp-runtime",10992 "substrate-prometheus-endpoint",10993 "thiserror",10994 "zeroize",10995]11605]109961160610997[[package]]11607[[package]]10998name = "sc-network-gossip"11608name = "sc-network-gossip"10999version = "0.10.0-dev"11609version = "0.10.0-dev"11000source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11610source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11001dependencies = [11611dependencies = [11002 "ahash 0.8.3",11612 "ahash 0.8.3",11003 "futures",11613 "futures",11004 "futures-timer",11614 "futures-timer",11005 "libp2p",11615 "libp2p",11006 "log",11616 "log",11007 "lru 0.8.1",11008 "sc-network",11617 "sc-network",11009 "sc-network-common",11618 "sc-network-common",11010 "sc-peerset",11619 "schnellru",11011 "sp-runtime",11620 "sp-runtime",11012 "substrate-prometheus-endpoint",11621 "substrate-prometheus-endpoint",11013 "tracing",11622 "tracing",11016[[package]]11625[[package]]11017name = "sc-network-light"11626name = "sc-network-light"11018version = "0.10.0-dev"11627version = "0.10.0-dev"11019source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11628source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11020dependencies = [11629dependencies = [11021 "array-bytes 4.2.0",11630 "array-bytes",11022 "async-channel",11631 "async-channel",11023 "futures",11632 "futures",11024 "libp2p-identity",11633 "libp2p-identity",11028 "prost-build",11637 "prost-build",11029 "sc-client-api",11638 "sc-client-api",11030 "sc-network",11639 "sc-network",11031 "sc-network-common",11032 "sc-peerset",11033 "sp-blockchain",11640 "sp-blockchain",11034 "sp-core",11641 "sp-core",11035 "sp-runtime",11642 "sp-runtime",11039[[package]]11646[[package]]11040name = "sc-network-sync"11647name = "sc-network-sync"11041version = "0.10.0-dev"11648version = "0.10.0-dev"11042source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11649source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11043dependencies = [11650dependencies = [11044 "array-bytes 4.2.0",11651 "array-bytes",11045 "async-channel",11652 "async-channel",11046 "async-trait",11653 "async-trait",11047 "fork-tree",11654 "fork-tree",11048 "futures",11655 "futures",11049 "futures-timer",11656 "futures-timer",11050 "libp2p",11657 "libp2p",11051 "log",11658 "log",11052 "lru 0.8.1",11053 "mockall",11659 "mockall",11054 "parity-scale-codec",11660 "parity-scale-codec",11055 "prost",11661 "prost",11058 "sc-consensus",11664 "sc-consensus",11059 "sc-network",11665 "sc-network",11060 "sc-network-common",11666 "sc-network-common",11061 "sc-peerset",11062 "sc-utils",11667 "sc-utils",11668 "schnellru",11063 "smallvec",11669 "smallvec",11064 "sp-arithmetic",11670 "sp-arithmetic",11065 "sp-blockchain",11671 "sp-blockchain",11074[[package]]11680[[package]]11075name = "sc-network-transactions"11681name = "sc-network-transactions"11076version = "0.10.0-dev"11682version = "0.10.0-dev"11077source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11683source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11078dependencies = [11684dependencies = [11079 "array-bytes 4.2.0",11685 "array-bytes",11080 "futures",11686 "futures",11081 "libp2p",11687 "libp2p",11082 "log",11688 "log",11083 "parity-scale-codec",11689 "parity-scale-codec",11084 "pin-project",11085 "sc-network",11690 "sc-network",11086 "sc-network-common",11691 "sc-network-common",11087 "sc-peerset",11088 "sc-utils",11692 "sc-utils",11089 "sp-consensus",11693 "sp-consensus",11090 "sp-runtime",11694 "sp-runtime",11094[[package]]11698[[package]]11095name = "sc-offchain"11699name = "sc-offchain"11096version = "4.0.0-dev"11700version = "4.0.0-dev"11097source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11701source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11098dependencies = [11702dependencies = [11099 "array-bytes 4.2.0",11703 "array-bytes",11100 "bytes",11704 "bytes",11101 "fnv",11705 "fnv",11102 "futures",11706 "futures",11103 "futures-timer",11707 "futures-timer",11104 "hyper",11708 "hyper",11105 "hyper-rustls",11709 "hyper-rustls",11106 "libp2p",11710 "libp2p",11711 "log",11107 "num_cpus",11712 "num_cpus",11108 "once_cell",11713 "once_cell",11109 "parity-scale-codec",11714 "parity-scale-codec",11112 "sc-client-api",11717 "sc-client-api",11113 "sc-network",11718 "sc-network",11114 "sc-network-common",11719 "sc-network-common",11115 "sc-peerset",11720 "sc-transaction-pool-api",11116 "sc-utils",11721 "sc-utils",11117 "sp-api",11722 "sp-api",11118 "sp-core",11723 "sp-core",11724 "sp-externalities",11725 "sp-keystore",11119 "sp-offchain",11726 "sp-offchain",11120 "sp-runtime",11727 "sp-runtime",11121 "threadpool",11728 "threadpool",11122 "tracing",11729 "tracing",11123]11730]111241173111125[[package]]11732[[package]]11126name = "sc-peerset"11127version = "4.0.0-dev"11128source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11129dependencies = [11130 "futures",11131 "libp2p-identity",11132 "log",11133 "parking_lot 0.12.1",11134 "partial_sort",11135 "sc-utils",11136 "serde_json",11137 "sp-arithmetic",11138 "wasm-timer",11139]1114011141[[package]]11142name = "sc-proposer-metrics"11733name = "sc-proposer-metrics"11143version = "0.10.0-dev"11734version = "0.10.0-dev"11144source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11735source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11145dependencies = [11736dependencies = [11146 "log",11737 "log",11147 "substrate-prometheus-endpoint",11738 "substrate-prometheus-endpoint",11150[[package]]11741[[package]]11151name = "sc-rpc"11742name = "sc-rpc"11152version = "4.0.0-dev"11743version = "4.0.0-dev"11153source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11744source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11154dependencies = [11745dependencies = [11155 "futures",11746 "futures",11156 "jsonrpsee",11747 "jsonrpsee",11181[[package]]11772[[package]]11182name = "sc-rpc-api"11773name = "sc-rpc-api"11183version = "0.10.0-dev"11774version = "0.10.0-dev"11184source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11775source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11185dependencies = [11776dependencies = [11186 "jsonrpsee",11777 "jsonrpsee",11187 "parity-scale-codec",11778 "parity-scale-codec",11200[[package]]11791[[package]]11201name = "sc-rpc-server"11792name = "sc-rpc-server"11202version = "4.0.0-dev"11793version = "4.0.0-dev"11203source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11794source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11204dependencies = [11795dependencies = [11205 "http",11796 "http",11206 "jsonrpsee",11797 "jsonrpsee",11215[[package]]11806[[package]]11216name = "sc-rpc-spec-v2"11807name = "sc-rpc-spec-v2"11217version = "0.10.0-dev"11808version = "0.10.0-dev"11218source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11809source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11219dependencies = [11810dependencies = [11220 "array-bytes 4.2.0",11811 "array-bytes",11221 "futures",11812 "futures",11222 "futures-util",11813 "futures-util",11223 "hex",11814 "hex",11228 "sc-chain-spec",11819 "sc-chain-spec",11229 "sc-client-api",11820 "sc-client-api",11230 "sc-transaction-pool-api",11821 "sc-transaction-pool-api",11822 "sc-utils",11231 "serde",11823 "serde",11232 "sp-api",11824 "sp-api",11233 "sp-blockchain",11825 "sp-blockchain",11234 "sp-core",11826 "sp-core",11235 "sp-runtime",11827 "sp-runtime",11236 "sp-version",11828 "sp-version",11237 "thiserror",11829 "thiserror",11830 "tokio",11238 "tokio-stream",11831 "tokio-stream",11239]11832]112401183311241[[package]]11834[[package]]11242name = "sc-service"11835name = "sc-service"11243version = "0.10.0-dev"11836version = "0.10.0-dev"11244source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11837source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11245dependencies = [11838dependencies = [11246 "async-trait",11839 "async-trait",11247 "directories",11840 "directories",11268 "sc-network-light",11861 "sc-network-light",11269 "sc-network-sync",11862 "sc-network-sync",11270 "sc-network-transactions",11863 "sc-network-transactions",11271 "sc-offchain",11272 "sc-rpc",11864 "sc-rpc",11273 "sc-rpc-server",11865 "sc-rpc-server",11274 "sc-rpc-spec-v2",11866 "sc-rpc-spec-v2",11275 "sc-storage-monitor",11276 "sc-sysinfo",11867 "sc-sysinfo",11277 "sc-telemetry",11868 "sc-telemetry",11278 "sc-tracing",11869 "sc-tracing",11295 "sp-transaction-storage-proof",11886 "sp-transaction-storage-proof",11296 "sp-trie",11887 "sp-trie",11297 "sp-version",11888 "sp-version",11298 "static_init 1.0.3",11889 "static_init",11299 "substrate-prometheus-endpoint",11890 "substrate-prometheus-endpoint",11300 "tempfile",11891 "tempfile",11301 "thiserror",11892 "thiserror",11307[[package]]11898[[package]]11308name = "sc-state-db"11899name = "sc-state-db"11309version = "0.10.0-dev"11900version = "0.10.0-dev"11310source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11901source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11311dependencies = [11902dependencies = [11312 "log",11903 "log",11313 "parity-scale-codec",11904 "parity-scale-codec",11318[[package]]11909[[package]]11319name = "sc-storage-monitor"11910name = "sc-storage-monitor"11320version = "0.1.0"11911version = "0.1.0"11321source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11912source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11322dependencies = [11913dependencies = [11323 "clap",11914 "clap",11324 "fs4",11915 "fs4",11325 "futures",11326 "log",11916 "log",11327 "sc-client-db",11917 "sc-client-db",11328 "sc-utils",11329 "sp-core",11918 "sp-core",11330 "thiserror",11919 "thiserror",11331 "tokio",11920 "tokio",11334[[package]]11923[[package]]11335name = "sc-sync-state-rpc"11924name = "sc-sync-state-rpc"11336version = "0.10.0-dev"11925version = "0.10.0-dev"11337source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11926source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11338dependencies = [11927dependencies = [11339 "jsonrpsee",11928 "jsonrpsee",11340 "parity-scale-codec",11929 "parity-scale-codec",11353[[package]]11942[[package]]11354name = "sc-sysinfo"11943name = "sc-sysinfo"11355version = "6.0.0-dev"11944version = "6.0.0-dev"11356source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11945source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11357dependencies = [11946dependencies = [11358 "futures",11947 "futures",11359 "libc",11948 "libc",11372[[package]]11961[[package]]11373name = "sc-telemetry"11962name = "sc-telemetry"11374version = "4.0.0-dev"11963version = "4.0.0-dev"11375source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11964source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11376dependencies = [11965dependencies = [11377 "chrono",11966 "chrono",11378 "futures",11967 "futures",11391[[package]]11980[[package]]11392name = "sc-tracing"11981name = "sc-tracing"11393version = "4.0.0-dev"11982version = "4.0.0-dev"11394source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"11983source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11395dependencies = [11984dependencies = [11396 "ansi_term",11985 "ansi_term",11397 "atty",11986 "atty",11398 "chrono",11987 "chrono",11399 "lazy_static",11988 "lazy_static",11400 "libc",11989 "libc",11401 "log",11990 "log",11402 "once_cell",11403 "parking_lot 0.12.1",11991 "parking_lot 0.12.1",11404 "regex",11992 "regex",11405 "rustc-hash",11993 "rustc-hash",11406 "sc-client-api",11994 "sc-client-api",11407 "sc-rpc-server",11408 "sc-tracing-proc-macro",11995 "sc-tracing-proc-macro",11409 "serde",11996 "serde",11410 "sp-api",11997 "sp-api",11422[[package]]12009[[package]]11423name = "sc-tracing-proc-macro"12010name = "sc-tracing-proc-macro"11424version = "4.0.0-dev"12011version = "4.0.0-dev"11425source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12012source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11426dependencies = [12013dependencies = [11427 "proc-macro-crate",12014 "proc-macro-crate",11428 "proc-macro2",12015 "proc-macro2",11429 "quote",12016 "quote",11430 "syn 2.0.28",12017 "syn 2.0.37",11431]12018]114321201911433[[package]]12020[[package]]11434name = "sc-transaction-pool"12021name = "sc-transaction-pool"11435version = "4.0.0-dev"12022version = "4.0.0-dev"11436source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12023source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11437dependencies = [12024dependencies = [11438 "async-trait",12025 "async-trait",11439 "futures",12026 "futures",11440 "futures-timer",12027 "futures-timer",11441 "linked-hash-map",12028 "linked-hash-map",11442 "log",12029 "log",11443 "num-traits",11444 "parity-scale-codec",12030 "parity-scale-codec",11445 "parking_lot 0.12.1",12031 "parking_lot 0.12.1",11446 "sc-client-api",12032 "sc-client-api",11460[[package]]12046[[package]]11461name = "sc-transaction-pool-api"12047name = "sc-transaction-pool-api"11462version = "4.0.0-dev"12048version = "4.0.0-dev"11463source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12049source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11464dependencies = [12050dependencies = [11465 "async-trait",12051 "async-trait",11466 "futures",12052 "futures",11467 "log",12053 "log",12054 "parity-scale-codec",11468 "serde",12055 "serde",11469 "sp-blockchain",12056 "sp-blockchain",12057 "sp-core",11470 "sp-runtime",12058 "sp-runtime",11471 "thiserror",12059 "thiserror",11472]12060]114731206111474[[package]]12062[[package]]11475name = "sc-utils"12063name = "sc-utils"11476version = "4.0.0-dev"12064version = "4.0.0-dev"11477source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12065source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11478dependencies = [12066dependencies = [11479 "async-channel",12067 "async-channel",11480 "futures",12068 "futures",11542 "arrayvec 0.5.2",12130 "arrayvec 0.5.2",11543 "curve25519-dalek 2.1.3",12131 "curve25519-dalek 2.1.3",11544 "getrandom 0.1.16",12132 "getrandom 0.1.16",11545 "merlin",12133 "merlin 2.0.1",11546 "rand 0.7.3",12134 "rand 0.7.3",11547 "rand_core 0.5.1",12135 "rand_core 0.5.1",11548 "sha2 0.8.2",12136 "sha2 0.8.2",11551]12139]115521214011553[[package]]12141[[package]]12142name = "schnorrkel"12143version = "0.10.2"12144source = "registry+https://github.com/rust-lang/crates.io-index"12145checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d"12146dependencies = [12147 "arrayref",12148 "arrayvec 0.7.4",12149 "curve25519-dalek-ng",12150 "merlin 3.0.0",12151 "rand_core 0.6.4",12152 "sha2 0.9.9",12153 "subtle-ng",12154 "zeroize",12155]1215612157[[package]]11554name = "scopeguard"12158name = "scopeguard"11555version = "1.2.0"12159version = "1.2.0"11556source = "registry+https://github.com/rust-lang/crates.io-index"12160source = "registry+https://github.com/rust-lang/crates.io-index"11568source = "registry+https://github.com/rust-lang/crates.io-index"12172source = "registry+https://github.com/rust-lang/crates.io-index"11569checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"12173checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"11570dependencies = [12174dependencies = [11571 "ring",12175 "ring 0.16.20",11572 "untrusted",12176 "untrusted",11573]12177]115741217811578source = "registry+https://github.com/rust-lang/crates.io-index"12182source = "registry+https://github.com/rust-lang/crates.io-index"11579checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"12183checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"11580dependencies = [12184dependencies = [11581 "ring",12185 "ring 0.16.20",11582 "untrusted",12186 "untrusted",11583]12187]1158412188116831228711684[[package]]12288[[package]]11685name = "semver"12289name = "semver"11686version = "1.0.18"12290version = "1.0.19"11687source = "registry+https://github.com/rust-lang/crates.io-index"12291source = "registry+https://github.com/rust-lang/crates.io-index"11688checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"12292checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0"11689dependencies = [12293dependencies = [11690 "serde",12294 "serde",11691]12295]116981230211699[[package]]12303[[package]]11700name = "serde"12304name = "serde"11701version = "1.0.183"12305version = "1.0.188"11702source = "registry+https://github.com/rust-lang/crates.io-index"12306source = "registry+https://github.com/rust-lang/crates.io-index"11703checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"12307checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"11704dependencies = [12308dependencies = [11705 "serde_derive",12309 "serde_derive",11706]12310]117071231111708[[package]]12312[[package]]11709name = "serde_derive"12313name = "serde_derive"11710version = "1.0.183"12314version = "1.0.188"11711source = "registry+https://github.com/rust-lang/crates.io-index"12315source = "registry+https://github.com/rust-lang/crates.io-index"11712checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"12316checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"11713dependencies = [12317dependencies = [11714 "proc-macro2",12318 "proc-macro2",11715 "quote",12319 "quote",11716 "syn 2.0.28",12320 "syn 2.0.37",11717]12321]117181232211719[[package]]12323[[package]]11720name = "serde_json"12324name = "serde_json"11721version = "1.0.105"12325version = "1.0.107"11722source = "registry+https://github.com/rust-lang/crates.io-index"12326source = "registry+https://github.com/rust-lang/crates.io-index"11723checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"12327checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"11724dependencies = [12328dependencies = [11725 "itoa",12329 "itoa",11726 "ryu",12330 "ryu",117511235511752[[package]]12356[[package]]11753name = "sha1"12357name = "sha1"11754version = "0.10.5"12358version = "0.10.6"11755source = "registry+https://github.com/rust-lang/crates.io-index"12359source = "registry+https://github.com/rust-lang/crates.io-index"11756checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"12360checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"11757dependencies = [12361dependencies = [11758 "cfg-if",12362 "cfg-if",11759 "cpufeatures",12363 "cpufeatures",117871239111788[[package]]12392[[package]]11789name = "sha2"12393name = "sha2"11790version = "0.10.7"12394version = "0.10.8"11791source = "registry+https://github.com/rust-lang/crates.io-index"12395source = "registry+https://github.com/rust-lang/crates.io-index"11792checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"12396checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"11793dependencies = [12397dependencies = [11794 "cfg-if",12398 "cfg-if",11795 "cpufeatures",12399 "cpufeatures",118271243111828[[package]]12432[[package]]11829name = "sharded-slab"12433name = "sharded-slab"11830version = "0.1.4"12434version = "0.1.6"11831source = "registry+https://github.com/rust-lang/crates.io-index"12435source = "registry+https://github.com/rust-lang/crates.io-index"11832checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"12436checksum = "c1b21f559e07218024e7e9f90f96f601825397de0e25420135f7f952453fed0b"11833dependencies = [12437dependencies = [11834 "lazy_static",12438 "lazy_static",11835]12439]118361244011837[[package]]12441[[package]]11838name = "shlex"12442name = "shlex"11839version = "1.1.0"12443version = "1.2.0"11840source = "registry+https://github.com/rust-lang/crates.io-index"12444source = "registry+https://github.com/rust-lang/crates.io-index"11841checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"12445checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"118421244611843[[package]]12447[[package]]12448name = "signal-hook"12449version = "0.3.17"12450source = "registry+https://github.com/rust-lang/crates.io-index"12451checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"12452dependencies = [12453 "libc",12454 "signal-hook-registry",12455]1245612457[[package]]11844name = "signal-hook-registry"12458name = "signal-hook-registry"11845version = "1.4.1"12459version = "1.4.1"11846source = "registry+https://github.com/rust-lang/crates.io-index"12460source = "registry+https://github.com/rust-lang/crates.io-index"118841249811885[[package]]12499[[package]]11886name = "siphasher"12500name = "siphasher"11887version = "0.3.10"12501version = "0.3.11"11888source = "registry+https://github.com/rust-lang/crates.io-index"12502source = "registry+https://github.com/rust-lang/crates.io-index"11889checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"12503checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"118901250411891[[package]]12505[[package]]11892name = "slab"12506name = "slab"11893version = "0.4.8"12507version = "0.4.9"11894source = "registry+https://github.com/rust-lang/crates.io-index"12508source = "registry+https://github.com/rust-lang/crates.io-index"11895checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"12509checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"11896dependencies = [12510dependencies = [11897 "autocfg",12511 "autocfg",11898]12512]119051251911906[[package]]12520[[package]]11907name = "slot-range-helper"12521name = "slot-range-helper"11908version = "0.9.43"12522version = "1.0.0"11909source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"12523source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11910dependencies = [12524dependencies = [11911 "enumn",12525 "enumn",11912 "parity-scale-codec",12526 "parity-scale-codec",119261254011927[[package]]12541[[package]]11928name = "smallvec"12542name = "smallvec"11929version = "1.11.0"12543version = "1.11.1"11930source = "registry+https://github.com/rust-lang/crates.io-index"12544source = "registry+https://github.com/rust-lang/crates.io-index"11931checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"12545checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"119321254611933[[package]]12547[[package]]12548name = "smol"12549version = "1.3.0"12550source = "registry+https://github.com/rust-lang/crates.io-index"12551checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1"12552dependencies = [12553 "async-channel",12554 "async-executor",12555 "async-fs",12556 "async-io",12557 "async-lock",12558 "async-net",12559 "async-process",12560 "blocking",12561 "futures-lite",12562]1256312564[[package]]12565name = "smoldot"12566version = "0.11.0"12567source = "registry+https://github.com/rust-lang/crates.io-index"12568checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5"12569dependencies = [12570 "arrayvec 0.7.4",12571 "async-lock",12572 "atomic-take",12573 "base64 0.21.4",12574 "bip39",12575 "blake2-rfc",12576 "bs58 0.5.0",12577 "chacha20 0.9.1",12578 "crossbeam-queue",12579 "derive_more",12580 "ed25519-zebra 4.0.3",12581 "either",12582 "event-listener",12583 "fnv",12584 "futures-lite",12585 "futures-util",12586 "hashbrown 0.14.1",12587 "hex",12588 "hmac 0.12.1",12589 "itertools 0.11.0",12590 "libsecp256k1",12591 "merlin 3.0.0",12592 "no-std-net",12593 "nom",12594 "num-bigint",12595 "num-rational",12596 "num-traits",12597 "pbkdf2 0.12.2",12598 "pin-project",12599 "poly1305 0.8.0",12600 "rand 0.8.5",12601 "rand_chacha 0.3.1",12602 "ruzstd",12603 "schnorrkel 0.10.2",12604 "serde",12605 "serde_json",12606 "sha2 0.10.8",12607 "sha3 0.10.8",12608 "siphasher",12609 "slab",12610 "smallvec",12611 "soketto",12612 "twox-hash",12613 "wasmi",12614 "x25519-dalek 2.0.0",12615 "zeroize",12616]1261712618[[package]]12619name = "smoldot-light"12620version = "0.9.0"12621source = "registry+https://github.com/rust-lang/crates.io-index"12622checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33"12623dependencies = [12624 "async-channel",12625 "async-lock",12626 "base64 0.21.4",12627 "blake2-rfc",12628 "derive_more",12629 "either",12630 "event-listener",12631 "fnv",12632 "futures-channel",12633 "futures-lite",12634 "futures-util",12635 "hashbrown 0.14.1",12636 "hex",12637 "itertools 0.11.0",12638 "log",12639 "lru 0.11.1",12640 "no-std-net",12641 "parking_lot 0.12.1",12642 "pin-project",12643 "rand 0.8.5",12644 "rand_chacha 0.3.1",12645 "serde",12646 "serde_json",12647 "siphasher",12648 "slab",12649 "smol",12650 "smoldot",12651 "zeroize",12652]1265312654[[package]]11934name = "snap"12655name = "snap"11935version = "1.1.0"12656version = "1.1.0"11936source = "registry+https://github.com/rust-lang/crates.io-index"12657source = "registry+https://github.com/rust-lang/crates.io-index"11937checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"12658checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"119381265911939[[package]]12660[[package]]11940name = "snow"12661name = "snow"11941version = "0.9.2"12662version = "0.9.3"11942source = "registry+https://github.com/rust-lang/crates.io-index"12663source = "registry+https://github.com/rust-lang/crates.io-index"11943checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733"12664checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155"11944dependencies = [12665dependencies = [11945 "aes-gcm 0.9.4",12666 "aes-gcm 0.9.4",11946 "blake2",12667 "blake2",11947 "chacha20poly1305",12668 "chacha20poly1305",11948 "curve25519-dalek 4.0.0-rc.1",12669 "curve25519-dalek 4.1.1",11949 "rand_core 0.6.4",12670 "rand_core 0.6.4",11950 "ring",12671 "ring 0.16.20",11951 "rustc_version",12672 "rustc_version",11952 "sha2 0.10.7",12673 "sha2 0.10.8",11953 "subtle",12674 "subtle",11954]12675]1195512676119651268611966[[package]]12687[[package]]11967name = "socket2"12688name = "socket2"11968version = "0.5.3"12689version = "0.5.4"11969source = "registry+https://github.com/rust-lang/crates.io-index"12690source = "registry+https://github.com/rust-lang/crates.io-index"11970checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"12691checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"11971dependencies = [12692dependencies = [11972 "libc",12693 "libc",11973 "windows-sys 0.48.0",12694 "windows-sys 0.48.0",11993[[package]]12714[[package]]11994name = "sp-api"12715name = "sp-api"11995version = "4.0.0-dev"12716version = "4.0.0-dev"11996source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12717source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"11997dependencies = [12718dependencies = [11998 "hash-db 0.16.0",12719 "hash-db 0.16.0",11999 "log",12720 "log",12000 "parity-scale-codec",12721 "parity-scale-codec",12001 "scale-info",12722 "scale-info",12002 "sp-api-proc-macro",12723 "sp-api-proc-macro",12003 "sp-core",12724 "sp-core",12725 "sp-externalities",12004 "sp-metadata-ir",12726 "sp-metadata-ir",12005 "sp-runtime",12727 "sp-runtime",12006 "sp-state-machine",12728 "sp-state-machine",12013[[package]]12735[[package]]12014name = "sp-api-proc-macro"12736name = "sp-api-proc-macro"12015version = "4.0.0-dev"12737version = "4.0.0-dev"12016source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12738source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12017dependencies = [12739dependencies = [12018 "Inflector",12740 "Inflector",12019 "blake2",12741 "blake2",12020 "expander 1.0.0",12742 "expander 2.0.0",12021 "proc-macro-crate",12743 "proc-macro-crate",12022 "proc-macro2",12744 "proc-macro2",12023 "quote",12745 "quote",12024 "syn 2.0.28",12746 "syn 2.0.37",12025]12747]120261274812027[[package]]12749[[package]]12028name = "sp-application-crypto"12750name = "sp-application-crypto"12029version = "7.0.0"12751version = "23.0.0"12030source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12752source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12031dependencies = [12753dependencies = [12032 "parity-scale-codec",12754 "parity-scale-codec",12033 "scale-info",12755 "scale-info",120391276112040[[package]]12762[[package]]12041name = "sp-arithmetic"12763name = "sp-arithmetic"12042version = "6.0.0"12764version = "16.0.0"12043source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12765source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12044dependencies = [12766dependencies = [12045 "integer-sqrt",12767 "integer-sqrt",12046 "num-traits",12768 "num-traits",12054[[package]]12776[[package]]12055name = "sp-authority-discovery"12777name = "sp-authority-discovery"12056version = "4.0.0-dev"12778version = "4.0.0-dev"12057source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12779source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12058dependencies = [12780dependencies = [12059 "parity-scale-codec",12781 "parity-scale-codec",12060 "scale-info",12782 "scale-info",12067[[package]]12789[[package]]12068name = "sp-block-builder"12790name = "sp-block-builder"12069version = "4.0.0-dev"12791version = "4.0.0-dev"12070source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12792source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12071dependencies = [12793dependencies = [12072 "parity-scale-codec",12073 "sp-api",12794 "sp-api",12074 "sp-inherents",12795 "sp-inherents",12075 "sp-runtime",12796 "sp-runtime",12079[[package]]12800[[package]]12080name = "sp-blockchain"12801name = "sp-blockchain"12081version = "4.0.0-dev"12802version = "4.0.0-dev"12082source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12803source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12083dependencies = [12804dependencies = [12084 "futures",12805 "futures",12085 "log",12806 "log",12086 "lru 0.8.1",12087 "parity-scale-codec",12807 "parity-scale-codec",12088 "parking_lot 0.12.1",12808 "parking_lot 0.12.1",12809 "schnellru",12089 "sp-api",12810 "sp-api",12090 "sp-consensus",12811 "sp-consensus",12091 "sp-database",12812 "sp-database",12097[[package]]12818[[package]]12098name = "sp-consensus"12819name = "sp-consensus"12099version = "0.10.0-dev"12820version = "0.10.0-dev"12100source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12821source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12101dependencies = [12822dependencies = [12102 "async-trait",12823 "async-trait",12103 "futures",12824 "futures",12112[[package]]12833[[package]]12113name = "sp-consensus-aura"12834name = "sp-consensus-aura"12114version = "0.10.0-dev"12835version = "0.10.0-dev"12115source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12836source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12116dependencies = [12837dependencies = [12117 "async-trait",12838 "async-trait",12118 "parity-scale-codec",12839 "parity-scale-codec",12119 "scale-info",12840 "scale-info",12120 "sp-api",12841 "sp-api",12121 "sp-application-crypto",12842 "sp-application-crypto",12122 "sp-consensus",12123 "sp-consensus-slots",12843 "sp-consensus-slots",12124 "sp-inherents",12844 "sp-inherents",12125 "sp-runtime",12845 "sp-runtime",12130[[package]]12850[[package]]12131name = "sp-consensus-babe"12851name = "sp-consensus-babe"12132version = "0.10.0-dev"12852version = "0.10.0-dev"12133source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12853source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12134dependencies = [12854dependencies = [12135 "async-trait",12855 "async-trait",12136 "parity-scale-codec",12856 "parity-scale-codec",12137 "scale-info",12857 "scale-info",12138 "serde",12858 "serde",12139 "sp-api",12859 "sp-api",12140 "sp-application-crypto",12860 "sp-application-crypto",12141 "sp-consensus",12142 "sp-consensus-slots",12861 "sp-consensus-slots",12143 "sp-core",12862 "sp-core",12144 "sp-inherents",12863 "sp-inherents",12145 "sp-keystore",12146 "sp-runtime",12864 "sp-runtime",12147 "sp-std",12865 "sp-std",12148 "sp-timestamp",12866 "sp-timestamp",12151[[package]]12869[[package]]12152name = "sp-consensus-beefy"12870name = "sp-consensus-beefy"12153version = "4.0.0-dev"12871version = "4.0.0-dev"12154source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12872source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12155dependencies = [12873dependencies = [12156 "lazy_static",12874 "lazy_static",12157 "parity-scale-codec",12875 "parity-scale-codec",12170[[package]]12888[[package]]12171name = "sp-consensus-grandpa"12889name = "sp-consensus-grandpa"12172version = "4.0.0-dev"12890version = "4.0.0-dev"12173source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12891source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12174dependencies = [12892dependencies = [12175 "finality-grandpa",12893 "finality-grandpa",12176 "log",12894 "log",12188[[package]]12906[[package]]12189name = "sp-consensus-slots"12907name = "sp-consensus-slots"12190version = "0.10.0-dev"12908version = "0.10.0-dev"12191source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12909source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12192dependencies = [12910dependencies = [12193 "parity-scale-codec",12911 "parity-scale-codec",12194 "scale-info",12912 "scale-info",121991291712200[[package]]12918[[package]]12201name = "sp-core"12919name = "sp-core"12202version = "7.0.0"12920version = "21.0.0"12203source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12921source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12204dependencies = [12922dependencies = [12205 "array-bytes 4.2.0",12923 "array-bytes",12924 "arrayvec 0.7.4",12925 "bandersnatch_vrfs",12206 "bitflags 1.3.2",12926 "bitflags 1.3.2",12207 "blake2",12927 "blake2",12208 "bounded-collections",12928 "bounded-collections",12209 "bs58",12929 "bs58 0.5.0",12210 "dyn-clonable",12930 "dyn-clonable",12211 "ed25519-zebra",12931 "ed25519-zebra 3.1.0",12212 "futures",12932 "futures",12213 "hash-db 0.16.0",12933 "hash-db 0.16.0",12214 "hash256-std-hasher",12934 "hash256-std-hasher",12215 "impl-serde",12935 "impl-serde",12216 "lazy_static",12936 "lazy_static",12217 "libsecp256k1",12937 "libsecp256k1",12218 "log",12938 "log",12219 "merlin",12939 "merlin 2.0.1",12220 "parity-scale-codec",12940 "parity-scale-codec",12221 "parking_lot 0.12.1",12941 "parking_lot 0.12.1",12222 "paste",12942 "paste",12223 "primitive-types",12943 "primitive-types",12224 "rand 0.8.5",12944 "rand 0.8.5",12225 "regex",12945 "regex",12226 "scale-info",12946 "scale-info",12227 "schnorrkel",12947 "schnorrkel 0.9.1",12228 "secp256k1",12948 "secp256k1",12229 "secrecy",12949 "secrecy",12230 "serde",12950 "serde",12238 "substrate-bip39",12958 "substrate-bip39",12239 "thiserror",12959 "thiserror",12240 "tiny-bip39",12960 "tiny-bip39",12961 "tracing",12241 "zeroize",12962 "zeroize",12242]12963]122431296412244[[package]]12965[[package]]12245name = "sp-core-hashing"12966name = "sp-core-hashing"12246version = "5.0.0"12967version = "9.0.0"12247source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12968source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12248dependencies = [12969dependencies = [12249 "blake2b_simd",12970 "blake2b_simd",12250 "byteorder",12971 "byteorder",12251 "digest 0.10.7",12972 "digest 0.10.7",12252 "sha2 0.10.7",12973 "sha2 0.10.8",12253 "sha3 0.10.8",12974 "sha3 0.10.8",12254 "sp-std",12255 "twox-hash",12975 "twox-hash",12256]12976]122571297712258[[package]]12978[[package]]12259name = "sp-core-hashing-proc-macro"12979name = "sp-core-hashing-proc-macro"12260version = "5.0.0"12980version = "9.0.0"12261source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12981source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12262dependencies = [12982dependencies = [12263 "proc-macro2",12264 "quote",12983 "quote",12265 "sp-core-hashing",12984 "sp-core-hashing",12266 "syn 2.0.28",12985 "syn 2.0.37",12267]12986]122681298712269[[package]]12988[[package]]12270name = "sp-database"12989name = "sp-database"12271version = "4.0.0-dev"12990version = "4.0.0-dev"12272source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12991source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12273dependencies = [12992dependencies = [12274 "kvdb",12993 "kvdb",12275 "parking_lot 0.12.1",12994 "parking_lot 0.12.1",12276]12995]122771299612278[[package]]12997[[package]]12279name = "sp-debug-derive"12998name = "sp-debug-derive"12280version = "5.0.0"12999version = "8.0.0"12281source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13000source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12282dependencies = [13001dependencies = [12283 "proc-macro2",13002 "proc-macro2",12284 "quote",13003 "quote",12285 "syn 2.0.28",13004 "syn 2.0.37",12286]13005]122871300612288[[package]]13007[[package]]12289name = "sp-externalities"13008name = "sp-externalities"12290version = "0.13.0"13009version = "0.19.0"12291source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13010source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12292dependencies = [13011dependencies = [12293 "environmental",13012 "environmental",12294 "parity-scale-codec",13013 "parity-scale-codec",12297]13016]122981301712299[[package]]13018[[package]]13019name = "sp-genesis-builder"13020version = "0.1.0"13021source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13022dependencies = [13023 "serde_json",13024 "sp-api",13025 "sp-runtime",13026 "sp-std",13027]1302813029[[package]]12300name = "sp-inherents"13030name = "sp-inherents"12301version = "4.0.0-dev"13031version = "4.0.0-dev"12302source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13032source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12303dependencies = [13033dependencies = [12304 "async-trait",13034 "async-trait",12305 "impl-trait-for-tuples",13035 "impl-trait-for-tuples",12306 "parity-scale-codec",13036 "parity-scale-codec",12307 "scale-info",13037 "scale-info",12308 "sp-core",12309 "sp-runtime",13038 "sp-runtime",12310 "sp-std",13039 "sp-std",12311 "thiserror",13040 "thiserror",12312]13041]123131304212314[[package]]13043[[package]]12315name = "sp-io"13044name = "sp-io"12316version = "7.0.0"13045version = "23.0.0"12317source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13046source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12318dependencies = [13047dependencies = [12319 "bytes",13048 "bytes",12320 "ed25519",12321 "ed25519-dalek",13049 "ed25519-dalek",12322 "futures",12323 "libsecp256k1",13050 "libsecp256k1",12324 "log",13051 "log",12325 "parity-scale-codec",13052 "parity-scale-codec",123391306612340[[package]]13067[[package]]12341name = "sp-keyring"13068name = "sp-keyring"12342version = "7.0.0"13069version = "24.0.0"12343source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13070source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12344dependencies = [13071dependencies = [12345 "lazy_static",13072 "lazy_static",12346 "sp-core",13073 "sp-core",123501307712351[[package]]13078[[package]]12352name = "sp-keystore"13079name = "sp-keystore"12353version = "0.13.0"13080version = "0.27.0"12354source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13081source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12355dependencies = [13082dependencies = [12356 "futures",12357 "parity-scale-codec",13083 "parity-scale-codec",12358 "parking_lot 0.12.1",13084 "parking_lot 0.12.1",12359 "serde",12360 "sp-core",13085 "sp-core",12361 "sp-externalities",13086 "sp-externalities",12362 "thiserror",13087 "thiserror",12365[[package]]13090[[package]]12366name = "sp-maybe-compressed-blob"13091name = "sp-maybe-compressed-blob"12367version = "4.1.0-dev"13092version = "4.1.0-dev"12368source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13093source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12369dependencies = [13094dependencies = [12370 "thiserror",13095 "thiserror",12371 "zstd 0.12.4",13096 "zstd 0.12.4",12374[[package]]13099[[package]]12375name = "sp-metadata-ir"13100name = "sp-metadata-ir"12376version = "0.1.0"13101version = "0.1.0"12377source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13102source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12378dependencies = [13103dependencies = [12379 "frame-metadata",13104 "frame-metadata",12380 "parity-scale-codec",13105 "parity-scale-codec",12385[[package]]13110[[package]]12386name = "sp-mmr-primitives"13111name = "sp-mmr-primitives"12387version = "4.0.0-dev"13112version = "4.0.0-dev"12388source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13113source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12389dependencies = [13114dependencies = [12390 "ckb-merkle-mountain-range",13115 "ckb-merkle-mountain-range",12391 "log",13116 "log",12403[[package]]13128[[package]]12404name = "sp-npos-elections"13129name = "sp-npos-elections"12405version = "4.0.0-dev"13130version = "4.0.0-dev"12406source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13131source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12407dependencies = [13132dependencies = [12408 "parity-scale-codec",13133 "parity-scale-codec",12409 "scale-info",13134 "scale-info",12417[[package]]13142[[package]]12418name = "sp-offchain"13143name = "sp-offchain"12419version = "4.0.0-dev"13144version = "4.0.0-dev"12420source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13145source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12421dependencies = [13146dependencies = [12422 "sp-api",13147 "sp-api",12423 "sp-core",13148 "sp-core",124261315112427[[package]]13152[[package]]12428name = "sp-panic-handler"13153name = "sp-panic-handler"12429version = "5.0.0"13154version = "8.0.0"12430source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13155source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12431dependencies = [13156dependencies = [12432 "backtrace",13157 "backtrace",12433 "lazy_static",13158 "lazy_static",12437[[package]]13162[[package]]12438name = "sp-rpc"13163name = "sp-rpc"12439version = "6.0.0"13164version = "6.0.0"12440source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13165source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12441dependencies = [13166dependencies = [12442 "rustc-hash",13167 "rustc-hash",12443 "serde",13168 "serde",124461317112447[[package]]13172[[package]]12448name = "sp-runtime"13173name = "sp-runtime"12449version = "7.0.0"13174version = "24.0.0"12450source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13175source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12451dependencies = [13176dependencies = [12452 "either",13177 "either",12453 "hash256-std-hasher",13178 "hash256-std-hasher",124681319312469[[package]]13194[[package]]12470name = "sp-runtime-interface"13195name = "sp-runtime-interface"12471version = "7.0.0"13196version = "17.0.0"12472source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13197source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12473dependencies = [13198dependencies = [12474 "bytes",13199 "bytes",12475 "impl-trait-for-tuples",13200 "impl-trait-for-tuples",124861321112487[[package]]13212[[package]]12488name = "sp-runtime-interface-proc-macro"13213name = "sp-runtime-interface-proc-macro"12489version = "6.0.0"13214version = "11.0.0"12490source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13215source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12491dependencies = [13216dependencies = [12492 "Inflector",13217 "Inflector",12493 "proc-macro-crate",13218 "proc-macro-crate",12494 "proc-macro2",13219 "proc-macro2",12495 "quote",13220 "quote",12496 "syn 2.0.28",13221 "syn 2.0.37",12497]13222]124981322312499[[package]]13224[[package]]12500name = "sp-session"13225name = "sp-session"12501version = "4.0.0-dev"13226version = "4.0.0-dev"12502source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13227source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12503dependencies = [13228dependencies = [12504 "parity-scale-codec",13229 "parity-scale-codec",12505 "scale-info",13230 "scale-info",12506 "sp-api",13231 "sp-api",12507 "sp-core",13232 "sp-core",13233 "sp-keystore",12508 "sp-runtime",13234 "sp-runtime",12509 "sp-staking",13235 "sp-staking",12510 "sp-std",13236 "sp-std",12513[[package]]13239[[package]]12514name = "sp-staking"13240name = "sp-staking"12515version = "4.0.0-dev"13241version = "4.0.0-dev"12516source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13242source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12517dependencies = [13243dependencies = [13244 "impl-trait-for-tuples",12518 "parity-scale-codec",13245 "parity-scale-codec",12519 "scale-info",13246 "scale-info",12520 "serde",13247 "serde",125251325212526[[package]]13253[[package]]12527name = "sp-state-machine"13254name = "sp-state-machine"12528version = "0.13.0"13255version = "0.28.0"12529source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13256source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12530dependencies = [13257dependencies = [12531 "hash-db 0.16.0",13258 "hash-db 0.16.0",12532 "log",13259 "log",12541 "sp-trie",13268 "sp-trie",12542 "thiserror",13269 "thiserror",12543 "tracing",13270 "tracing",13271 "trie-db",12544]13272]125451327312546[[package]]13274[[package]]12547name = "sp-statement-store"13275name = "sp-statement-store"12548version = "4.0.0-dev"13276version = "4.0.0-dev"12549source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13277source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12550dependencies = [13278dependencies = [12551 "log",13279 "aes-gcm 0.10.3",13280 "curve25519-dalek 4.1.1",13281 "ed25519-dalek",13282 "hkdf",12552 "parity-scale-codec",13283 "parity-scale-codec",13284 "rand 0.8.5",12553 "scale-info",13285 "scale-info",13286 "sha2 0.10.8",12554 "sp-api",13287 "sp-api",12555 "sp-application-crypto",13288 "sp-application-crypto",12556 "sp-core",13289 "sp-core",12559 "sp-runtime-interface",13292 "sp-runtime-interface",12560 "sp-std",13293 "sp-std",12561 "thiserror",13294 "thiserror",13295 "x25519-dalek 2.0.0",12562]13296]125631329712564[[package]]13298[[package]]12565name = "sp-std"13299name = "sp-std"12566version = "5.0.0"13300version = "8.0.0"12567source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13301source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"125681330212569[[package]]13303[[package]]12570name = "sp-storage"13304name = "sp-storage"12571version = "7.0.0"13305version = "13.0.0"12572source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13306source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12573dependencies = [13307dependencies = [12574 "impl-serde",13308 "impl-serde",12575 "parity-scale-codec",13309 "parity-scale-codec",12582[[package]]13316[[package]]12583name = "sp-timestamp"13317name = "sp-timestamp"12584version = "4.0.0-dev"13318version = "4.0.0-dev"12585source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13319source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12586dependencies = [13320dependencies = [12587 "async-trait",13321 "async-trait",12588 "futures-timer",12589 "log",12590 "parity-scale-codec",13322 "parity-scale-codec",12591 "sp-inherents",13323 "sp-inherents",12592 "sp-runtime",13324 "sp-runtime",125961332812597[[package]]13329[[package]]12598name = "sp-tracing"13330name = "sp-tracing"12599version = "6.0.0"13331version = "10.0.0"12600source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13332source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12601dependencies = [13333dependencies = [12602 "parity-scale-codec",13334 "parity-scale-codec",12603 "sp-std",13335 "sp-std",12609[[package]]13341[[package]]12610name = "sp-transaction-pool"13342name = "sp-transaction-pool"12611version = "4.0.0-dev"13343version = "4.0.0-dev"12612source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13344source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12613dependencies = [13345dependencies = [12614 "sp-api",13346 "sp-api",12615 "sp-runtime",13347 "sp-runtime",12618[[package]]13350[[package]]12619name = "sp-transaction-storage-proof"13351name = "sp-transaction-storage-proof"12620version = "4.0.0-dev"13352version = "4.0.0-dev"12621source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13353source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12622dependencies = [13354dependencies = [12623 "async-trait",13355 "async-trait",12624 "log",12625 "parity-scale-codec",13356 "parity-scale-codec",12626 "scale-info",13357 "scale-info",12627 "sp-core",13358 "sp-core",126331336412634[[package]]13365[[package]]12635name = "sp-trie"13366name = "sp-trie"12636version = "7.0.0"13367version = "22.0.0"12637source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13368source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12638dependencies = [13369dependencies = [12639 "ahash 0.8.3",13370 "ahash 0.8.3",12640 "hash-db 0.16.0",13371 "hash-db 0.16.0",12650 "sp-std",13381 "sp-std",12651 "thiserror",13382 "thiserror",12652 "tracing",13383 "tracing",12653 "trie-db 0.27.1",13384 "trie-db",12654 "trie-root",13385 "trie-root",12655]13386]126561338712657[[package]]13388[[package]]12658name = "sp-version"13389name = "sp-version"12659version = "5.0.0"13390version = "22.0.0"12660source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13391source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12661dependencies = [13392dependencies = [12662 "impl-serde",13393 "impl-serde",12663 "parity-scale-codec",13394 "parity-scale-codec",126731340412674[[package]]13405[[package]]12675name = "sp-version-proc-macro"13406name = "sp-version-proc-macro"12676version = "4.0.0-dev"13407version = "8.0.0"12677source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13408source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12678dependencies = [13409dependencies = [12679 "parity-scale-codec",13410 "parity-scale-codec",12680 "proc-macro2",13411 "proc-macro2",12681 "quote",13412 "quote",12682 "syn 2.0.28",13413 "syn 2.0.37",12683]13414]126841341512685[[package]]13416[[package]]12686name = "sp-wasm-interface"13417name = "sp-wasm-interface"12687version = "7.0.0"13418version = "14.0.0"12688source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13419source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12689dependencies = [13420dependencies = [12690 "anyhow",13421 "anyhow",12691 "impl-trait-for-tuples",13422 "impl-trait-for-tuples",12692 "log",13423 "log",12693 "parity-scale-codec",13424 "parity-scale-codec",12694 "sp-std",13425 "sp-std",12695 "wasmi",12696 "wasmtime",13426 "wasmtime",12697]13427]126981342812699[[package]]13429[[package]]12700name = "sp-weights"13430name = "sp-weights"12701version = "4.0.0"13431version = "20.0.0"12702source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13432source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12703dependencies = [13433dependencies = [12704 "parity-scale-codec",13434 "parity-scale-codec",12705 "scale-info",13435 "scale-info",12719dependencies = [13449dependencies = [12720 "proc-macro2",13450 "proc-macro2",12721 "quote",13451 "quote",12722 "syn 2.0.28",13452 "syn 2.0.37",12723]13453]127241345412725[[package]]13455[[package]]12729checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"13459checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"127301346012731[[package]]13461[[package]]13462name = "spin"13463version = "0.9.8"13464source = "registry+https://github.com/rust-lang/crates.io-index"13465checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"1346613467[[package]]12732name = "spinners"13468name = "spinners"12733version = "4.1.0"13469version = "4.1.0"12734source = "registry+https://github.com/rust-lang/crates.io-index"13470source = "registry+https://github.com/rust-lang/crates.io-index"127611349712762[[package]]13498[[package]]12763name = "ss58-registry"13499name = "ss58-registry"12764version = "1.42.0"13500version = "1.43.0"12765source = "registry+https://github.com/rust-lang/crates.io-index"13501source = "registry+https://github.com/rust-lang/crates.io-index"12766checksum = "14782ef66f16396bc977f43c89b36f2c7b58357a2cc0bf58a09627542c13c379"13502checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439"12767dependencies = [13503dependencies = [12768 "Inflector",13504 "Inflector",12769 "num-format",13505 "num-format",12781checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"13517checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"127821351812783[[package]]13519[[package]]13520name = "staging-kusama-runtime"13521version = "1.0.0"13522source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13523dependencies = [13524 "binary-merkle-tree",13525 "bitvec",13526 "frame-benchmarking",13527 "frame-election-provider-support",13528 "frame-executive",13529 "frame-support",13530 "frame-system",13531 "frame-system-benchmarking",13532 "frame-system-rpc-runtime-api",13533 "frame-try-runtime",13534 "hex-literal",13535 "kusama-runtime-constants",13536 "log",13537 "pallet-authority-discovery",13538 "pallet-authorship",13539 "pallet-babe",13540 "pallet-bags-list",13541 "pallet-balances",13542 "pallet-beefy",13543 "pallet-beefy-mmr",13544 "pallet-bounties",13545 "pallet-child-bounties",13546 "pallet-collective",13547 "pallet-conviction-voting",13548 "pallet-democracy",13549 "pallet-election-provider-multi-phase",13550 "pallet-election-provider-support-benchmarking",13551 "pallet-elections-phragmen",13552 "pallet-fast-unstake",13553 "pallet-grandpa",13554 "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0)",13555 "pallet-im-online",13556 "pallet-indices",13557 "pallet-membership",13558 "pallet-message-queue",13559 "pallet-mmr",13560 "pallet-multisig",13561 "pallet-nis",13562 "pallet-nomination-pools",13563 "pallet-nomination-pools-benchmarking",13564 "pallet-nomination-pools-runtime-api",13565 "pallet-offences",13566 "pallet-offences-benchmarking",13567 "pallet-preimage",13568 "pallet-proxy",13569 "pallet-ranked-collective",13570 "pallet-recovery",13571 "pallet-referenda",13572 "pallet-scheduler",13573 "pallet-session",13574 "pallet-session-benchmarking",13575 "pallet-society",13576 "pallet-staking",13577 "pallet-staking-runtime-api",13578 "pallet-state-trie-migration",13579 "pallet-timestamp",13580 "pallet-tips",13581 "pallet-transaction-payment",13582 "pallet-transaction-payment-rpc-runtime-api",13583 "pallet-treasury",13584 "pallet-utility",13585 "pallet-vesting",13586 "pallet-whitelist",13587 "pallet-xcm",13588 "pallet-xcm-benchmarks",13589 "parity-scale-codec",13590 "polkadot-primitives",13591 "polkadot-runtime-common",13592 "polkadot-runtime-parachains",13593 "rustc-hex",13594 "scale-info",13595 "serde",13596 "serde_derive",13597 "smallvec",13598 "sp-api",13599 "sp-application-crypto",13600 "sp-arithmetic",13601 "sp-authority-discovery",13602 "sp-block-builder",13603 "sp-consensus-babe",13604 "sp-consensus-beefy",13605 "sp-core",13606 "sp-inherents",13607 "sp-io",13608 "sp-mmr-primitives",13609 "sp-npos-elections",13610 "sp-offchain",13611 "sp-runtime",13612 "sp-session",13613 "sp-staking",13614 "sp-std",13615 "sp-storage",13616 "sp-transaction-pool",13617 "sp-version",13618 "staging-xcm",13619 "staging-xcm-builder",13620 "staging-xcm-executor",13621 "static_assertions",13622 "substrate-wasm-builder",13623]1362413625[[package]]13626name = "staging-xcm"13627version = "1.0.0"13628source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13629dependencies = [13630 "bounded-collections",13631 "derivative",13632 "environmental",13633 "impl-trait-for-tuples",13634 "log",13635 "parity-scale-codec",13636 "scale-info",13637 "serde",13638 "sp-weights",13639 "xcm-procedural",13640]1364113642[[package]]13643name = "staging-xcm-builder"13644version = "1.0.0"13645source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13646dependencies = [13647 "frame-support",13648 "frame-system",13649 "impl-trait-for-tuples",13650 "log",13651 "pallet-transaction-payment",13652 "parity-scale-codec",13653 "polkadot-parachain-primitives",13654 "scale-info",13655 "sp-arithmetic",13656 "sp-io",13657 "sp-runtime",13658 "sp-std",13659 "sp-weights",13660 "staging-xcm",13661 "staging-xcm-executor",13662]1366313664[[package]]13665name = "staging-xcm-executor"13666version = "1.0.0"13667source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13668dependencies = [13669 "environmental",13670 "frame-benchmarking",13671 "frame-support",13672 "impl-trait-for-tuples",13673 "log",13674 "parity-scale-codec",13675 "sp-arithmetic",13676 "sp-core",13677 "sp-io",13678 "sp-runtime",13679 "sp-std",13680 "sp-weights",13681 "staging-xcm",13682]1368313684[[package]]12784name = "static_assertions"13685name = "static_assertions"12785version = "1.1.0"13686version = "1.1.0"12786source = "registry+https://github.com/rust-lang/crates.io-index"13687source = "registry+https://github.com/rust-lang/crates.io-index"12787checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"13688checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"127881368912789[[package]]13690[[package]]12790name = "static_init"13691name = "static_init"12791version = "0.5.2"12792source = "registry+https://github.com/rust-lang/crates.io-index"12793checksum = "11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369c"12794dependencies = [12795 "cfg_aliases",12796 "libc",12797 "parking_lot 0.11.2",12798 "static_init_macro 0.5.0",12799]1280012801[[package]]12802name = "static_init"12803version = "1.0.3"13692version = "1.0.3"12804source = "registry+https://github.com/rust-lang/crates.io-index"13693source = "registry+https://github.com/rust-lang/crates.io-index"12805checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6"13694checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6"12809 "libc",13698 "libc",12810 "parking_lot 0.11.2",13699 "parking_lot 0.11.2",12811 "parking_lot_core 0.8.6",13700 "parking_lot_core 0.8.6",12812 "static_init_macro 1.0.2",13701 "static_init_macro",12813 "winapi",13702 "winapi",12814]13703]128151370412816[[package]]13705[[package]]12817name = "static_init_macro"13706name = "static_init_macro"12818version = "0.5.0"12819source = "registry+https://github.com/rust-lang/crates.io-index"12820checksum = "f2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbf"12821dependencies = [12822 "cfg_aliases",12823 "memchr",12824 "proc-macro2",12825 "quote",12826 "syn 1.0.109",12827]1282812829[[package]]12830name = "static_init_macro"12831version = "1.0.2"13707version = "1.0.2"12832source = "registry+https://github.com/rust-lang/crates.io-index"13708source = "registry+https://github.com/rust-lang/crates.io-index"12833checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf"13709checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf"12886 "lazy_static",13762 "lazy_static",12887 "md-5",13763 "md-5",12888 "rand 0.8.5",13764 "rand 0.8.5",12889 "ring",13765 "ring 0.16.20",12890 "subtle",13766 "subtle",12891 "thiserror",13767 "thiserror",12892 "tokio",13768 "tokio",12902dependencies = [13778dependencies = [12903 "hmac 0.11.0",13779 "hmac 0.11.0",12904 "pbkdf2 0.8.0",13780 "pbkdf2 0.8.0",12905 "schnorrkel",13781 "schnorrkel 0.9.1",12906 "sha2 0.9.9",13782 "sha2 0.9.9",12907 "zeroize",13783 "zeroize",12908]13784]129091378512910[[package]]13786[[package]]12911name = "substrate-build-script-utils"13787name = "substrate-build-script-utils"12912version = "3.0.0"13788version = "3.0.0"12913source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13789source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12914dependencies = [12915 "platforms 2.0.0",12916]129171379012918[[package]]13791[[package]]12919name = "substrate-frame-rpc-system"13792name = "substrate-frame-rpc-system"12920version = "4.0.0-dev"13793version = "4.0.0-dev"12921source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13794source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12922dependencies = [13795dependencies = [12923 "frame-system-rpc-runtime-api",13796 "frame-system-rpc-runtime-api",12924 "futures",13797 "futures",12937[[package]]13810[[package]]12938name = "substrate-prometheus-endpoint"13811name = "substrate-prometheus-endpoint"12939version = "0.10.0-dev"13812version = "0.10.0-dev"12940source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13813source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12941dependencies = [13814dependencies = [12942 "hyper",13815 "hyper",12943 "log",13816 "log",12949[[package]]13822[[package]]12950name = "substrate-rpc-client"13823name = "substrate-rpc-client"12951version = "0.10.0-dev"13824version = "0.10.0-dev"12952source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13825source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12953dependencies = [13826dependencies = [12954 "async-trait",13827 "async-trait",12955 "jsonrpsee",13828 "jsonrpsee",12962[[package]]13835[[package]]12963name = "substrate-state-trie-migration-rpc"13836name = "substrate-state-trie-migration-rpc"12964version = "4.0.0-dev"13837version = "4.0.0-dev"12965source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13838source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"12966dependencies = [13839dependencies = [12967 "jsonrpsee",13840 "jsonrpsee",12968 "log",12969 "parity-scale-codec",13841 "parity-scale-codec",12970 "sc-client-api",13842 "sc-client-api",12971 "sc-rpc-api",13843 "sc-rpc-api",12972 "scale-info",12973 "serde",13844 "serde",12974 "sp-core",13845 "sp-core",12975 "sp-runtime",13846 "sp-runtime",12976 "sp-state-machine",13847 "sp-state-machine",12977 "sp-trie",13848 "sp-trie",12978 "trie-db 0.27.1",13849 "trie-db",12979]13850]129801385112981[[package]]13852[[package]]12982name = "substrate-test-utils"12983version = "4.0.0-dev"12984source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12985dependencies = [12986 "futures",12987 "substrate-test-utils-derive",12988 "tokio",12989]1299012991[[package]]12992name = "substrate-test-utils-derive"12993version = "0.10.0-dev"12994source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"12995dependencies = [12996 "proc-macro-crate",12997 "proc-macro2",12998 "quote",12999 "syn 2.0.28",13000]1300113002[[package]]13003name = "substrate-wasm-builder"13853name = "substrate-wasm-builder"13004version = "5.0.0-dev"13854version = "5.0.0-dev"13005source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"13855source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13006dependencies = [13856dependencies = [13007 "ansi_term",13857 "ansi_term",13008 "build-helper",13858 "build-helper",13009 "cargo_metadata",13859 "cargo_metadata",13010 "filetime",13860 "filetime",13861 "parity-wasm",13011 "sp-maybe-compressed-blob",13862 "sp-maybe-compressed-blob",13012 "strum",13863 "strum",13013 "tempfile",13864 "tempfile",13014 "toml 0.7.6",13865 "toml 0.7.8",13015 "walkdir",13866 "walkdir",13016 "wasm-opt",13867 "wasm-opt",13017]13868]13032checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"13883checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"130331388413034[[package]]13885[[package]]13886name = "subtle-ng"13887version = "2.5.0"13888source = "registry+https://github.com/rust-lang/crates.io-index"13889checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142"1389013891[[package]]13035name = "syn"13892name = "syn"13036version = "1.0.109"13893version = "1.0.109"13037source = "registry+https://github.com/rust-lang/crates.io-index"13894source = "registry+https://github.com/rust-lang/crates.io-index"130441390113045[[package]]13902[[package]]13046name = "syn"13903name = "syn"13047version = "2.0.28"13904version = "2.0.37"13048source = "registry+https://github.com/rust-lang/crates.io-index"13905source = "registry+https://github.com/rust-lang/crates.io-index"13049checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"13906checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"13050dependencies = [13907dependencies = [13051 "proc-macro2",13908 "proc-macro2",13052 "quote",13909 "quote",131001395713101[[package]]13958[[package]]13102name = "tempfile"13959name = "tempfile"13103version = "3.7.1"13960version = "3.8.0"13104source = "registry+https://github.com/rust-lang/crates.io-index"13961source = "registry+https://github.com/rust-lang/crates.io-index"13105checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651"13962checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"13106dependencies = [13963dependencies = [13107 "cfg-if",13964 "cfg-if",13108 "fastrand 2.0.0",13965 "fastrand 2.0.1",13109 "redox_syscall 0.3.5",13966 "redox_syscall 0.3.5",13110 "rustix 0.38.8",13967 "rustix 0.38.15",13111 "windows-sys 0.48.0",13968 "windows-sys 0.48.0",13112]13969]131131397013114[[package]]13971[[package]]13115name = "termcolor"13972name = "termcolor"13116version = "1.2.0"13973version = "1.3.0"13117source = "registry+https://github.com/rust-lang/crates.io-index"13974source = "registry+https://github.com/rust-lang/crates.io-index"13118checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"13975checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"13119dependencies = [13976dependencies = [13120 "winapi-util",13977 "winapi-util",13121]13978]13153 "sp-io",14010 "sp-io",13154 "sp-runtime",14011 "sp-runtime",13155 "sp-std",14012 "sp-std",14013 "staging-xcm",13156 "up-data-structs",14014 "up-data-structs",13157 "up-sponsorship",14015 "up-sponsorship",13158 "xcm",13159]14016]131601401713161[[package]]14018[[package]]13162name = "thiserror"14019name = "thiserror"13163version = "1.0.46"14020version = "1.0.49"13164source = "registry+https://github.com/rust-lang/crates.io-index"14021source = "registry+https://github.com/rust-lang/crates.io-index"13165checksum = "d9207952ae1a003f42d3d5e892dac3c6ba42aa6ac0c79a6a91a2b5cb4253e75c"14022checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"13166dependencies = [14023dependencies = [13167 "thiserror-impl",14024 "thiserror-impl",13168]14025]131691402613170[[package]]14027[[package]]14028name = "thiserror-core"14029version = "1.0.38"14030source = "registry+https://github.com/rust-lang/crates.io-index"14031checksum = "0d97345f6437bb2004cd58819d8a9ef8e36cdd7661c2abc4bbde0a7c40d9f497"14032dependencies = [14033 "thiserror-core-impl",14034]1403514036[[package]]14037name = "thiserror-core-impl"14038version = "1.0.38"14039source = "registry+https://github.com/rust-lang/crates.io-index"14040checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac"14041dependencies = [14042 "proc-macro2",14043 "quote",14044 "syn 1.0.109",14045]1404614047[[package]]13171name = "thiserror-impl"14048name = "thiserror-impl"13172version = "1.0.46"14049version = "1.0.49"13173source = "registry+https://github.com/rust-lang/crates.io-index"14050source = "registry+https://github.com/rust-lang/crates.io-index"13174checksum = "f1728216d3244de4f14f14f8c15c79be1a7c67867d28d69b719690e2a19fb445"14051checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"13175dependencies = [14052dependencies = [13176 "proc-macro2",14053 "proc-macro2",13177 "quote",14054 "quote",13178 "syn 2.0.28",14055 "syn 2.0.37",13179]14056]131801405713181[[package]]14058[[package]]132391411613240[[package]]14117[[package]]13241name = "time"14118name = "time"13242version = "0.1.45"14119version = "0.3.29"13243source = "registry+https://github.com/rust-lang/crates.io-index"14120source = "registry+https://github.com/rust-lang/crates.io-index"13244checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"14121checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe"13245dependencies = [14122dependencies = [13246 "libc",13247 "wasi 0.10.0+wasi-snapshot-preview1",13248 "winapi",13249]1325013251[[package]]13252name = "time"13253version = "0.3.25"13254source = "registry+https://github.com/rust-lang/crates.io-index"13255checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"13256dependencies = [13257 "deranged",14123 "deranged",13258 "itoa",14124 "itoa",13259 "serde",14125 "serde",132631412913264[[package]]14130[[package]]13265name = "time-core"14131name = "time-core"13266version = "0.1.1"14132version = "0.1.2"13267source = "registry+https://github.com/rust-lang/crates.io-index"14133source = "registry+https://github.com/rust-lang/crates.io-index"13268checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"14134checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"132691413513270[[package]]14136[[package]]13271name = "time-macros"14137name = "time-macros"13272version = "0.2.11"14138version = "0.2.15"13273source = "registry+https://github.com/rust-lang/crates.io-index"14139source = "registry+https://github.com/rust-lang/crates.io-index"13274checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"14140checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"13275dependencies = [14141dependencies = [13276 "time-core",14142 "time-core",13277]14143]13288 "pbkdf2 0.11.0",14154 "pbkdf2 0.11.0",13289 "rand 0.8.5",14155 "rand 0.8.5",13290 "rustc-hash",14156 "rustc-hash",13291 "sha2 0.10.7",14157 "sha2 0.10.8",13292 "thiserror",14158 "thiserror",13293 "unicode-normalization",14159 "unicode-normalization",13294 "wasm-bindgen",14160 "wasm-bindgen",133311419713332[[package]]14198[[package]]13333name = "tokio"14199name = "tokio"13334version = "1.31.0"14200version = "1.32.0"13335source = "registry+https://github.com/rust-lang/crates.io-index"14201source = "registry+https://github.com/rust-lang/crates.io-index"13336checksum = "40de3a2ba249dcb097e01be5e67a5ff53cf250397715a071a81543e8a832a920"14202checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"13337dependencies = [14203dependencies = [13338 "backtrace",14204 "backtrace",13339 "bytes",14205 "bytes",13340 "libc",14206 "libc",13341 "mio",14207 "mio",13342 "num_cpus",14208 "num_cpus",13343 "parking_lot 0.12.1",14209 "parking_lot 0.12.1",13344 "pin-project-lite 0.2.12",14210 "pin-project-lite 0.2.13",13345 "signal-hook-registry",14211 "signal-hook-registry",13346 "socket2 0.5.3",14212 "socket2 0.5.4",13347 "tokio-macros",14213 "tokio-macros",13348 "windows-sys 0.48.0",14214 "windows-sys 0.48.0",13349]14215]13356dependencies = [14222dependencies = [13357 "proc-macro2",14223 "proc-macro2",13358 "quote",14224 "quote",13359 "syn 2.0.28",14225 "syn 2.0.37",13360]14226]133611422713362[[package]]14228[[package]]133721423813373[[package]]14239[[package]]13374name = "tokio-rustls"14240name = "tokio-rustls"13375version = "0.23.4"14241version = "0.24.1"13376source = "registry+https://github.com/rust-lang/crates.io-index"14242source = "registry+https://github.com/rust-lang/crates.io-index"13377checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"14243checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"13378dependencies = [14244dependencies = [13379 "rustls 0.20.8",14245 "rustls 0.21.7",13380 "tokio",14246 "tokio",13381 "webpki 0.22.0",13382]14247]133831424813384[[package]]14249[[package]]13388checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"14253checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"13389dependencies = [14254dependencies = [13390 "futures-core",14255 "futures-core",13391 "pin-project-lite 0.2.12",14256 "pin-project-lite 0.2.13",13392 "tokio",14257 "tokio",13393 "tokio-util",14258 "tokio-util",13394]14259]133951426013396[[package]]14261[[package]]13397name = "tokio-util"14262name = "tokio-util"13398version = "0.7.8"14263version = "0.7.9"13399source = "registry+https://github.com/rust-lang/crates.io-index"14264source = "registry+https://github.com/rust-lang/crates.io-index"13400checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"14265checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"13401dependencies = [14266dependencies = [13402 "bytes",14267 "bytes",13403 "futures-core",14268 "futures-core",13404 "futures-io",14269 "futures-io",13405 "futures-sink",14270 "futures-sink",13406 "pin-project-lite 0.2.12",14271 "pin-project-lite 0.2.13",13407 "tokio",14272 "tokio",13408 "tracing",14273 "tracing",13409]14274]134191428413420[[package]]14285[[package]]13421name = "toml"14286name = "toml"13422version = "0.7.6"14287version = "0.7.8"13423source = "registry+https://github.com/rust-lang/crates.io-index"14288source = "registry+https://github.com/rust-lang/crates.io-index"13424checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"14289checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"13425dependencies = [14290dependencies = [13426 "serde",14291 "serde",13427 "serde_spanned",14292 "serde_spanned",134401430513441[[package]]14306[[package]]13442name = "toml_edit"14307name = "toml_edit"13443version = "0.19.14"14308version = "0.19.15"13444source = "registry+https://github.com/rust-lang/crates.io-index"14309source = "registry+https://github.com/rust-lang/crates.io-index"13445checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"14310checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"13446dependencies = [14311dependencies = [13447 "indexmap 2.0.0",14312 "indexmap 2.0.2",13448 "serde",14313 "serde",13449 "serde_spanned",14314 "serde_spanned",13450 "toml_datetime",14315 "toml_datetime",134641432913465[[package]]14330[[package]]13466name = "tower-http"14331name = "tower-http"13467version = "0.4.3"14332version = "0.4.4"13468source = "registry+https://github.com/rust-lang/crates.io-index"14333source = "registry+https://github.com/rust-lang/crates.io-index"13469checksum = "55ae70283aba8d2a8b411c695c437fe25b8b5e44e23e780662002fc72fb47a82"14334checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"13470dependencies = [14335dependencies = [13471 "bitflags 2.4.0",14336 "bitflags 2.4.0",13472 "bytes",14337 "bytes",13475 "http",14340 "http",13476 "http-body",14341 "http-body",13477 "http-range-header",14342 "http-range-header",13478 "pin-project-lite 0.2.12",14343 "pin-project-lite 0.2.13",13479 "tower-layer",14344 "tower-layer",13480 "tower-service",14345 "tower-service",13481]14346]13500dependencies = [14365dependencies = [13501 "cfg-if",14366 "cfg-if",13502 "log",14367 "log",13503 "pin-project-lite 0.2.12",14368 "pin-project-lite 0.2.13",13504 "tracing-attributes",14369 "tracing-attributes",13505 "tracing-core",14370 "tracing-core",13506]14371]13513dependencies = [14378dependencies = [13514 "proc-macro2",14379 "proc-macro2",13515 "quote",14380 "quote",13516 "syn 2.0.28",14381 "syn 2.0.37",13517]14382]135181438313519[[package]]14384[[package]]135381440313539[[package]]14404[[package]]13540name = "tracing-gum"14405name = "tracing-gum"13541version = "0.9.43"14406version = "1.0.0"13542source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"14407source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13543dependencies = [14408dependencies = [14409 "coarsetime",13544 "polkadot-node-jaeger",14410 "polkadot-node-jaeger",13545 "polkadot-primitives",14411 "polkadot-primitives",13546 "tracing",14412 "tracing",135491441513550[[package]]14416[[package]]13551name = "tracing-gum-proc-macro"14417name = "tracing-gum-proc-macro"13552version = "0.9.43"14418version = "1.0.0"13553source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"14419source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13554dependencies = [14420dependencies = [13555 "expander 2.0.0",14421 "expander 2.0.0",13556 "proc-macro-crate",14422 "proc-macro-crate",13557 "proc-macro2",14423 "proc-macro2",13558 "quote",14424 "quote",13559 "syn 2.0.28",14425 "syn 2.0.37",13560]14426]135611442713562[[package]]14428[[package]]136051447113606[[package]]14472[[package]]13607name = "trie-db"14473name = "trie-db"13608version = "0.24.0"13609source = "registry+https://github.com/rust-lang/crates.io-index"13610checksum = "004e1e8f92535694b4cb1444dc5a8073ecf0815e3357f729638b9f8fc4062908"13611dependencies = [13612 "hash-db 0.15.2",13613 "hashbrown 0.12.3",13614 "log",13615 "smallvec",13616]1361713618[[package]]13619name = "trie-db"13620version = "0.27.1"14474version = "0.27.1"13621source = "registry+https://github.com/rust-lang/crates.io-index"14475source = "registry+https://github.com/rust-lang/crates.io-index"13622checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85"14476checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85"13702[[package]]14556[[package]]13703name = "try-runtime-cli"14557name = "try-runtime-cli"13704version = "0.10.0-dev"14558version = "0.10.0-dev"13705source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40"14559source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"13706dependencies = [14560dependencies = [13707 "async-trait",14561 "async-trait",13708 "clap",14562 "clap",13713 "parity-scale-codec",14567 "parity-scale-codec",13714 "sc-cli",14568 "sc-cli",13715 "sc-executor",14569 "sc-executor",13716 "sc-service",13717 "serde",14570 "serde",13718 "serde_json",14571 "serde_json",13719 "sp-api",14572 "sp-api",13754 "log",14607 "log",13755 "md-5",14608 "md-5",13756 "rand 0.8.5",14609 "rand 0.8.5",13757 "ring",14610 "ring 0.16.20",13758 "stun",14611 "stun",13759 "thiserror",14612 "thiserror",13760 "tokio",14613 "tokio",137751462813776[[package]]14629[[package]]13777name = "typenum"14630name = "typenum"13778version = "1.16.0"14631version = "1.17.0"13779source = "registry+https://github.com/rust-lang/crates.io-index"14632source = "registry+https://github.com/rust-lang/crates.io-index"13780checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"14633checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"137811463413782[[package]]14635[[package]]13783name = "uc-rpc"14636name = "uc-rpc"13804 "sp-runtime",14657 "sp-runtime",13805 "sp-state-machine",14658 "sp-state-machine",13806 "sp-trie",14659 "sp-trie",13807 "trie-db 0.24.0",14660 "trie-db",13808 "unique-runtime",14661 "unique-runtime",13809 "up-common",14662 "up-common",13810 "up-data-structs",14663 "up-data-structs",13811 "up-pov-estimate-rpc",14664 "up-pov-estimate-rpc",13812 "up-rpc",14665 "up-rpc",13813 "zstd 0.11.2+zstd.1.5.2",14666 "zstd 0.12.4",13814]14667]138151466813816[[package]]14669[[package]]138391469213840[[package]]14693[[package]]13841name = "unicode-ident"14694name = "unicode-ident"13842version = "1.0.11"14695version = "1.0.12"13843source = "registry+https://github.com/rust-lang/crates.io-index"14696source = "registry+https://github.com/rust-lang/crates.io-index"13844checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"14697checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"138451469813846[[package]]14699[[package]]13847name = "unicode-normalization"14700name = "unicode-normalization"138541470713855[[package]]14708[[package]]13856name = "unicode-width"14709name = "unicode-width"13857version = "0.1.10"14710version = "0.1.11"13858source = "registry+https://github.com/rust-lang/crates.io-index"14711source = "registry+https://github.com/rust-lang/crates.io-index"13859checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"14712checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"138601471313861[[package]]14714[[package]]13862name = "unicode-xid"14715name = "unicode-xid"138661471913867[[package]]14720[[package]]13868name = "unique-node"14721name = "unique-node"13869version = "0.9.43"14722version = "1.1.0"13870dependencies = [14723dependencies = [13871 "app-promotion-rpc",14724 "app-promotion-rpc",13872 "clap",14725 "clap",13873 "cumulus-client-cli",14726 "cumulus-client-cli",14727 "cumulus-client-collator",13874 "cumulus-client-consensus-aura",14728 "cumulus-client-consensus-aura",13875 "cumulus-client-consensus-common",14729 "cumulus-client-consensus-common",14730 "cumulus-client-consensus-proposer",13876 "cumulus-client-network",14731 "cumulus-client-network",13877 "cumulus-client-service",14732 "cumulus-client-service",13878 "cumulus-primitives-core",14733 "cumulus-primitives-core",13879 "cumulus-primitives-parachain-inherent",14734 "cumulus-primitives-parachain-inherent",13880 "cumulus-relay-chain-inprocess-interface",14735 "cumulus-relay-chain-inprocess-interface",13881 "cumulus-relay-chain-interface",14736 "cumulus-relay-chain-interface",13882 "cumulus-relay-chain-minimal-node",14737 "cumulus-relay-chain-minimal-node",14738 "fc-api",13883 "fc-consensus",14739 "fc-consensus",13884 "fc-db",14740 "fc-db",13885 "fc-mapping-sync",14741 "fc-mapping-sync",13893 "jsonrpsee",14749 "jsonrpsee",13894 "log",14750 "log",13895 "opal-runtime",14751 "opal-runtime",14752 "pallet-transaction-payment-rpc",13896 "pallet-transaction-payment-rpc-runtime-api",14753 "pallet-transaction-payment-rpc-runtime-api",13897 "parity-scale-codec",14754 "parity-scale-codec",13898 "polkadot-cli",14755 "polkadot-cli",13909 "sc-network",14766 "sc-network",13910 "sc-network-sync",14767 "sc-network-sync",13911 "sc-rpc",14768 "sc-rpc",14769 "sc-rpc-api",13912 "sc-service",14770 "sc-service",13913 "sc-sysinfo",14771 "sc-sysinfo",13914 "sc-telemetry",14772 "sc-telemetry",13921 "sp-blockchain",14779 "sp-blockchain",13922 "sp-consensus-aura",14780 "sp-consensus-aura",13923 "sp-core",14781 "sp-core",14782 "sp-inherents",13924 "sp-io",14783 "sp-io",13925 "sp-keystore",14784 "sp-keystore",13926 "sp-offchain",14785 "sp-offchain",13934 "tokio",14793 "tokio",13935 "try-runtime-cli",14794 "try-runtime-cli",13936 "uc-rpc",14795 "uc-rpc",13937 "unique-rpc",13938 "unique-runtime",14796 "unique-runtime",13939 "up-common",14797 "up-common",13940 "up-data-structs",14798 "up-data-structs",13943]14801]139441480213945[[package]]14803[[package]]13946name = "unique-rpc"13947version = "0.1.2"13948dependencies = [13949 "app-promotion-rpc",13950 "fc-db",13951 "fc-mapping-sync",13952 "fc-rpc",13953 "fc-rpc-core",13954 "fp-rpc",13955 "fp-storage",13956 "jsonrpsee",13957 "pallet-ethereum",13958 "pallet-transaction-payment-rpc",13959 "sc-client-api",13960 "sc-network",13961 "sc-network-sync",13962 "sc-rpc",13963 "sc-rpc-api",13964 "sc-service",13965 "sc-transaction-pool",13966 "serde",13967 "sp-api",13968 "sp-block-builder",13969 "sp-blockchain",13970 "sp-runtime",13971 "substrate-frame-rpc-system",13972 "uc-rpc",13973 "up-common",13974 "up-data-structs",13975 "up-pov-estimate-rpc",13976 "up-rpc",13977]1397813979[[package]]13980name = "unique-runtime"14804name = "unique-runtime"13981version = "0.9.43"14805version = "1.1.0"13982dependencies = [14806dependencies = [13983 "app-promotion-rpc",14807 "app-promotion-rpc",13984 "cumulus-pallet-aura-ext",14808 "cumulus-pallet-aura-ext",14004 "hex-literal",14828 "hex-literal",14005 "impl-trait-for-tuples",14829 "impl-trait-for-tuples",14006 "log",14830 "log",14007 "num_enum 0.5.11",14831 "num_enum",14008 "orml-tokens",14832 "orml-tokens",14009 "orml-traits",14833 "orml-traits",14010 "orml-vesting",14834 "orml-vesting",14056 "pallet-xcm",14880 "pallet-xcm",14057 "parachain-info",14881 "parachain-info",14058 "parity-scale-codec",14882 "parity-scale-codec",14059 "polkadot-parachain",14883 "polkadot-parachain-primitives",14060 "precompile-utils-macro",14884 "precompile-utils-macro",14061 "scale-info",14885 "scale-info",14062 "serde",14886 "serde",14074 "sp-std",14898 "sp-std",14075 "sp-transaction-pool",14899 "sp-transaction-pool",14076 "sp-version",14900 "sp-version",14901 "staging-xcm",14902 "staging-xcm-builder",14903 "staging-xcm-executor",14077 "substrate-wasm-builder",14904 "substrate-wasm-builder",14078 "up-common",14905 "up-common",14079 "up-data-structs",14906 "up-data-structs",14080 "up-pov-estimate-rpc",14907 "up-pov-estimate-rpc",14081 "up-rpc",14908 "up-rpc",14082 "up-sponsorship",14909 "up-sponsorship",14083 "xcm",14084 "xcm-builder",14085 "xcm-executor",14086]14910]140871491114088[[package]]14912[[package]]141071493114108[[package]]14932[[package]]14109name = "unsigned-varint"14933name = "unsigned-varint"14110version = "0.7.1"14934version = "0.7.2"14111source = "registry+https://github.com/rust-lang/crates.io-index"14935source = "registry+https://github.com/rust-lang/crates.io-index"14112checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836"14936checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105"14113dependencies = [14937dependencies = [14114 "asynchronous-codec",14938 "asynchronous-codec",14115 "bytes",14939 "bytes",141251494914126[[package]]14950[[package]]14127name = "up-common"14951name = "up-common"14128version = "0.9.43"14952version = "1.1.0"14129dependencies = [14953dependencies = [14130 "cumulus-primitives-core",14954 "cumulus-primitives-core",14131 "fp-rpc",14955 "fp-rpc",14956 "fp-self-contained",14132 "frame-support",14957 "frame-support",14133 "pallet-evm",14958 "pallet-evm",14134 "sp-consensus-aura",14959 "sp-consensus-aura",14185[[package]]15010[[package]]14186name = "up-sponsorship"15011name = "up-sponsorship"14187version = "0.1.0"15012version = "0.1.0"14188source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.43#bd6e4a2a97b1415c22f96512b857d9615cbe2f81"15013source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v1.1.0#2fbec92640f517e4812be7ed61ef7691af6e0bba"14189dependencies = [15014dependencies = [14190 "impl-trait-for-tuples",15015 "impl-trait-for-tuples",14191]15016]141921501714193[[package]]15018[[package]]14194name = "url"15019name = "url"14195version = "2.4.0"15020version = "2.4.1"14196source = "registry+https://github.com/rust-lang/crates.io-index"15021source = "registry+https://github.com/rust-lang/crates.io-index"14197checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"15022checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"14198dependencies = [15023dependencies = [14199 "form_urlencoded",15024 "form_urlencoded",14200 "idna 0.4.0",15025 "idna 0.4.0",142511507614252[[package]]15077[[package]]14253name = "waker-fn"15078name = "waker-fn"14254version = "1.1.0"15079version = "1.1.1"14255source = "registry+https://github.com/rust-lang/crates.io-index"15080source = "registry+https://github.com/rust-lang/crates.io-index"14256checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"15081checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"142571508214258[[package]]15083[[package]]14259name = "walkdir"15084name = "walkdir"14260version = "2.3.3"15085version = "2.4.0"14261source = "registry+https://github.com/rust-lang/crates.io-index"15086source = "registry+https://github.com/rust-lang/crates.io-index"14262checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"15087checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"14263dependencies = [15088dependencies = [14264 "same-file",15089 "same-file",14265 "winapi-util",15090 "winapi-util",142821510714283[[package]]15108[[package]]14284name = "wasi"15109name = "wasi"14285version = "0.10.0+wasi-snapshot-preview1"14286source = "registry+https://github.com/rust-lang/crates.io-index"14287checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"1428814289[[package]]14290name = "wasi"14291version = "0.11.0+wasi-snapshot-preview1"15110version = "0.11.0+wasi-snapshot-preview1"14292source = "registry+https://github.com/rust-lang/crates.io-index"15111source = "registry+https://github.com/rust-lang/crates.io-index"14293checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"15112checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"14313 "once_cell",15132 "once_cell",14314 "proc-macro2",15133 "proc-macro2",14315 "quote",15134 "quote",14316 "syn 2.0.28",15135 "syn 2.0.37",14317 "wasm-bindgen-shared",15136 "wasm-bindgen-shared",14318]15137]143191513814347dependencies = [15166dependencies = [14348 "proc-macro2",15167 "proc-macro2",14349 "quote",15168 "quote",14350 "syn 2.0.28",15169 "syn 2.0.37",14351 "wasm-bindgen-backend",15170 "wasm-bindgen-backend",14352 "wasm-bindgen-shared",15171 "wasm-bindgen-shared",14353]15172]143691518814370[[package]]15189[[package]]14371name = "wasm-opt"15190name = "wasm-opt"14372version = "0.112.0"15191version = "0.114.1"14373source = "registry+https://github.com/rust-lang/crates.io-index"15192source = "registry+https://github.com/rust-lang/crates.io-index"14374checksum = "87fef6d0d508f08334e0ab0e6877feb4c0ecb3956bcf2cb950699b22fedf3e9c"15193checksum = "4d005a95f934878a1fb446a816d51c3601a0120ff929005ba3bab3c749cfd1c7"14375dependencies = [15194dependencies = [14376 "anyhow",15195 "anyhow",14377 "libc",15196 "libc",143851520414386[[package]]15205[[package]]14387name = "wasm-opt-cxx-sys"15206name = "wasm-opt-cxx-sys"14388version = "0.112.0"15207version = "0.114.1"14389source = "registry+https://github.com/rust-lang/crates.io-index"15208source = "registry+https://github.com/rust-lang/crates.io-index"14390checksum = "bc816bbc1596c8f2e8127e137a760c798023ef3d378f2ae51f0f1840e2dfa445"15209checksum = "6d04e240598162810fad3b2e96fa0dec6dba1eb65a03f3bd99a9248ab8b56caa"14391dependencies = [15210dependencies = [14392 "anyhow",15211 "anyhow",14393 "cxx",15212 "cxx",143971521614398[[package]]15217[[package]]14399name = "wasm-opt-sys"15218name = "wasm-opt-sys"14400version = "0.112.0"15219version = "0.114.1"14401source = "registry+https://github.com/rust-lang/crates.io-index"15220source = "registry+https://github.com/rust-lang/crates.io-index"14402checksum = "40199e4f68ef1071b3c6d0bd8026a12b481865d4b9e49c156932ea9a6234dd14"15221checksum = "2efd2aaca519d64098c4faefc8b7433a97ed511caf4c9e516384eb6aef1ff4f9"14403dependencies = [15222dependencies = [14404 "anyhow",15223 "anyhow",14405 "cc",15224 "cc",144241524314425[[package]]15244[[package]]14426name = "wasmi"15245name = "wasmi"14427version = "0.13.2"15246version = "0.31.0"14428source = "registry+https://github.com/rust-lang/crates.io-index"15247source = "registry+https://github.com/rust-lang/crates.io-index"14429checksum = "06c326c93fbf86419608361a2c925a31754cf109da1b8b55737070b4d6669422"15248checksum = "1f341edb80021141d4ae6468cbeefc50798716a347d4085c3811900049ea8945"14430dependencies = [15249dependencies = [14431 "parity-wasm",15250 "smallvec",14432 "wasmi-validation",15251 "spin 0.9.8",15252 "wasmi_arena",14433 "wasmi_core",15253 "wasmi_core",15254 "wasmparser-nostd",14434]15255]144351525614436[[package]]15257[[package]]14437name = "wasmi-validation"15258name = "wasmi_arena"14438version = "0.5.0"15259version = "0.4.0"14439source = "registry+https://github.com/rust-lang/crates.io-index"15260source = "registry+https://github.com/rust-lang/crates.io-index"14440checksum = "91ff416ad1ff0c42e5a926ed5d5fab74c0f098749aa0ad8b2a34b982ce0e867b"15261checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468"14441dependencies = [14442 "parity-wasm",14443]144441526214445[[package]]15263[[package]]14446name = "wasmi_core"15264name = "wasmi_core"14447version = "0.2.1"15265version = "0.13.0"14448source = "registry+https://github.com/rust-lang/crates.io-index"15266source = "registry+https://github.com/rust-lang/crates.io-index"14449checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7"15267checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a"14450dependencies = [15268dependencies = [14451 "downcast-rs",15269 "downcast-rs",14452 "libm 0.2.7",15270 "libm",14453 "memory_units",14454 "num-rational",14455 "num-traits",15271 "num-traits",15272 "paste",14456]15273]144571527414458[[package]]15275[[package]]14466]15283]144671528414468[[package]]15285[[package]]15286name = "wasmparser-nostd"15287version = "0.100.1"15288source = "registry+https://github.com/rust-lang/crates.io-index"15289checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724"15290dependencies = [15291 "indexmap-nostd",15292]1529315294[[package]]14469name = "wasmtime"15295name = "wasmtime"14470version = "8.0.1"15296version = "8.0.1"14471source = "registry+https://github.com/rust-lang/crates.io-index"15297source = "registry+https://github.com/rust-lang/crates.io-index"14509checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213"15335checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213"14510dependencies = [15336dependencies = [14511 "anyhow",15337 "anyhow",14512 "base64 0.21.2",15338 "base64 0.21.4",14513 "bincode",15339 "bincode",14514 "directories-next",15340 "directories-next",14515 "file-per-thread-logger",15341 "file-per-thread-logger",14516 "log",15342 "log",14517 "rustix 0.36.15",15343 "rustix 0.36.15",14518 "serde",15344 "serde",14519 "sha2 0.10.7",15345 "sha2 0.10.8",14520 "toml 0.5.11",15346 "toml 0.5.11",14521 "windows-sys 0.45.0",15347 "windows-sys 0.45.0",14522 "zstd 0.11.2+zstd.1.5.2",15348 "zstd 0.11.2+zstd.1.5.2",14534 "cranelift-frontend",15360 "cranelift-frontend",14535 "cranelift-native",15361 "cranelift-native",14536 "cranelift-wasm",15362 "cranelift-wasm",14537 "gimli",15363 "gimli 0.27.3",14538 "log",15364 "log",14539 "object 0.30.4",15365 "object 0.30.4",14540 "target-lexicon",15366 "target-lexicon",14553 "anyhow",15379 "anyhow",14554 "cranelift-codegen",15380 "cranelift-codegen",14555 "cranelift-native",15381 "cranelift-native",14556 "gimli",15382 "gimli 0.27.3",14557 "object 0.30.4",15383 "object 0.30.4",14558 "target-lexicon",15384 "target-lexicon",14559 "wasmtime-environ",15385 "wasmtime-environ",14567dependencies = [15393dependencies = [14568 "anyhow",15394 "anyhow",14569 "cranelift-entity",15395 "cranelift-entity",14570 "gimli",15396 "gimli 0.27.3",14571 "indexmap 1.9.3",15397 "indexmap 1.9.3",14572 "log",15398 "log",14573 "object 0.30.4",15399 "object 0.30.4",14589 "bincode",15415 "bincode",14590 "cfg-if",15416 "cfg-if",14591 "cpp_demangle",15417 "cpp_demangle",14592 "gimli",15418 "gimli 0.27.3",14593 "log",15419 "log",14594 "object 0.30.4",15420 "object 0.30.4",14595 "rustc-demangle",15421 "rustc-demangle",14676source = "registry+https://github.com/rust-lang/crates.io-index"15502source = "registry+https://github.com/rust-lang/crates.io-index"14677checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"15503checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"14678dependencies = [15504dependencies = [14679 "ring",15505 "ring 0.16.20",14680 "untrusted",15506 "untrusted",14681]15507]146821550814683[[package]]15509[[package]]14684name = "webpki"15510name = "webpki"14685version = "0.22.0"15511version = "0.22.2"14686source = "registry+https://github.com/rust-lang/crates.io-index"15512source = "registry+https://github.com/rust-lang/crates.io-index"14687checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"15513checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"14688dependencies = [15514dependencies = [14689 "ring",15515 "ring 0.16.20",14690 "untrusted",15516 "untrusted",14691]15517]146921551814696source = "registry+https://github.com/rust-lang/crates.io-index"15522source = "registry+https://github.com/rust-lang/crates.io-index"14697checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"15523checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"14698dependencies = [15524dependencies = [14699 "webpki 0.22.0",15525 "webpki 0.22.2",14700]15526]147011552714702[[package]]15528[[package]]15529name = "webpki-roots"15530version = "0.23.1"15531source = "registry+https://github.com/rust-lang/crates.io-index"15532checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338"15533dependencies = [15534 "rustls-webpki 0.100.3",15535]1553615537[[package]]15538name = "webpki-roots"15539version = "0.25.2"15540source = "registry+https://github.com/rust-lang/crates.io-index"15541checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"1554215543[[package]]14703name = "webrtc"15544name = "webrtc"14704version = "0.6.0"15545version = "0.6.0"14705source = "registry+https://github.com/rust-lang/crates.io-index"15546source = "registry+https://github.com/rust-lang/crates.io-index"14715 "rand 0.8.5",15556 "rand 0.8.5",14716 "rcgen 0.9.3",15557 "rcgen 0.9.3",14717 "regex",15558 "regex",14718 "ring",15559 "ring 0.16.20",14719 "rtcp",15560 "rtcp",14720 "rtp",15561 "rtp",14721 "rustls 0.19.1",15562 "rustls 0.19.1",14722 "sdp",15563 "sdp",14723 "serde",15564 "serde",14724 "serde_json",15565 "serde_json",14725 "sha2 0.10.7",15566 "sha2 0.10.8",14726 "stun",15567 "stun",14727 "thiserror",15568 "thiserror",14728 "time 0.3.25",15569 "time",14729 "tokio",15570 "tokio",14730 "turn",15571 "turn",14731 "url",15572 "url",147571559814758[[package]]15599[[package]]14759name = "webrtc-dtls"15600name = "webrtc-dtls"14760version = "0.7.1"15601version = "0.7.2"14761source = "registry+https://github.com/rust-lang/crates.io-index"15602source = "registry+https://github.com/rust-lang/crates.io-index"14762checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05"15603checksum = "c4a00f4242f2db33307347bd5be53263c52a0331c96c14292118c9a6bb48d267"14763dependencies = [15604dependencies = [14764 "aes 0.6.0",15605 "aes 0.6.0",14765 "aes-gcm 0.10.2",15606 "aes-gcm 0.10.3",14766 "async-trait",15607 "async-trait",14767 "bincode",15608 "bincode",14768 "block-modes",15609 "block-modes",14774 "hkdf",15615 "hkdf",14775 "hmac 0.12.1",15616 "hmac 0.12.1",14776 "log",15617 "log",14777 "oid-registry 0.6.1",14778 "p256",15618 "p256",14779 "p384",15619 "p384",14780 "rand 0.8.5",15620 "rand 0.8.5",14781 "rand_core 0.6.4",15621 "rand_core 0.6.4",14782 "rcgen 0.9.3",15622 "rcgen 0.10.0",14783 "ring",15623 "ring 0.16.20",14784 "rustls 0.19.1",15624 "rustls 0.19.1",14785 "sec1 0.3.0",15625 "sec1 0.3.0",14786 "serde",15626 "serde",14787 "sha1",15627 "sha1",14788 "sha2 0.10.7",15628 "sha2 0.10.8",14789 "signature 1.6.4",15629 "signature 1.6.4",14790 "subtle",15630 "subtle",14791 "thiserror",15631 "thiserror",14792 "tokio",15632 "tokio",14793 "webpki 0.21.4",15633 "webpki 0.21.4",14794 "webrtc-util",15634 "webrtc-util",14795 "x25519-dalek 2.0.0-pre.1",15635 "x25519-dalek 2.0.0",14796 "x509-parser 0.13.2",15636 "x509-parser 0.13.2",14797]15637]1479815638149101575014911[[package]]15751[[package]]14912name = "westend-runtime"15752name = "westend-runtime"14913version = "0.9.43"15753version = "1.0.0"14914source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"15754source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"14915dependencies = [15755dependencies = [15756 "binary-merkle-tree",14916 "bitvec",15757 "bitvec",14917 "frame-benchmarking",15758 "frame-benchmarking",14918 "frame-election-provider-support",15759 "frame-election-provider-support",14929 "pallet-babe",15770 "pallet-babe",14930 "pallet-bags-list",15771 "pallet-bags-list",14931 "pallet-balances",15772 "pallet-balances",15773 "pallet-beefy",15774 "pallet-beefy-mmr",14932 "pallet-collective",15775 "pallet-collective",14933 "pallet-democracy",15776 "pallet-democracy",14934 "pallet-election-provider-multi-phase",15777 "pallet-election-provider-multi-phase",14935 "pallet-election-provider-support-benchmarking",15778 "pallet-election-provider-support-benchmarking",14936 "pallet-elections-phragmen",15779 "pallet-elections-phragmen",14937 "pallet-fast-unstake",15780 "pallet-fast-unstake",14938 "pallet-grandpa",15781 "pallet-grandpa",14939 "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43)",15782 "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0)",14940 "pallet-im-online",15783 "pallet-im-online",14941 "pallet-indices",15784 "pallet-indices",14942 "pallet-membership",15785 "pallet-membership",14943 "pallet-message-queue",15786 "pallet-message-queue",15787 "pallet-mmr",14944 "pallet-multisig",15788 "pallet-multisig",14945 "pallet-nomination-pools",15789 "pallet-nomination-pools",14946 "pallet-nomination-pools-benchmarking",15790 "pallet-nomination-pools-benchmarking",14968 "pallet-xcm",15812 "pallet-xcm",14969 "pallet-xcm-benchmarks",15813 "pallet-xcm-benchmarks",14970 "parity-scale-codec",15814 "parity-scale-codec",14971 "polkadot-parachain",15815 "polkadot-parachain-primitives",14972 "polkadot-primitives",15816 "polkadot-primitives",14973 "polkadot-runtime-common",15817 "polkadot-runtime-common",14974 "polkadot-runtime-parachains",15818 "polkadot-runtime-parachains",14978 "serde_derive",15822 "serde_derive",14979 "smallvec",15823 "smallvec",14980 "sp-api",15824 "sp-api",15825 "sp-application-crypto",14981 "sp-authority-discovery",15826 "sp-authority-discovery",14982 "sp-block-builder",15827 "sp-block-builder",14983 "sp-consensus-babe",15828 "sp-consensus-babe",14992 "sp-session",15837 "sp-session",14993 "sp-staking",15838 "sp-staking",14994 "sp-std",15839 "sp-std",15840 "sp-storage",14995 "sp-transaction-pool",15841 "sp-transaction-pool",14996 "sp-version",15842 "sp-version",15843 "staging-xcm",15844 "staging-xcm-builder",15845 "staging-xcm-executor",14997 "substrate-wasm-builder",15846 "substrate-wasm-builder",14998 "westend-runtime-constants",15847 "westend-runtime-constants",14999 "xcm",15000 "xcm-builder",15001 "xcm-executor",15002]15848]150031584915004[[package]]15850[[package]]15005name = "westend-runtime-constants"15851name = "westend-runtime-constants"15006version = "0.9.43"15852version = "1.0.0"15007source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"15853source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"15008dependencies = [15854dependencies = [15009 "frame-support",15855 "frame-support",15010 "polkadot-primitives",15856 "polkadot-primitives",150171586315018[[package]]15864[[package]]15019name = "which"15865name = "which"15020version = "4.4.0"15866version = "4.4.2"15021source = "registry+https://github.com/rust-lang/crates.io-index"15867source = "registry+https://github.com/rust-lang/crates.io-index"15022checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"15868checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"15023dependencies = [15869dependencies = [15024 "either",15870 "either",15025 "libc",15871 "home",15026 "once_cell",15872 "once_cell",15873 "rustix 0.38.15",15027]15874]150281587515029[[package]]15876[[package]]15030name = "wide"15877name = "wide"15031version = "0.7.11"15878version = "0.7.12"15032source = "registry+https://github.com/rust-lang/crates.io-index"15879source = "registry+https://github.com/rust-lang/crates.io-index"15033checksum = "aa469ffa65ef7e0ba0f164183697b89b854253fd31aeb92358b7b6155177d62f"15880checksum = "ebecebefc38ff1860b4bc47550bbfa63af5746061cf0d29fcd7fa63171602598"15034dependencies = [15881dependencies = [15035 "bytemuck",15882 "bytemuck",15036 "safe_arch",15883 "safe_arch",150601590715061[[package]]15908[[package]]15062name = "winapi-util"15909name = "winapi-util"15063version = "0.1.5"15910version = "0.1.6"15064source = "registry+https://github.com/rust-lang/crates.io-index"15911source = "registry+https://github.com/rust-lang/crates.io-index"15065checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"15912checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"15066dependencies = [15913dependencies = [15067 "winapi",15914 "winapi",15068]15915]15092source = "registry+https://github.com/rust-lang/crates.io-index"15939source = "registry+https://github.com/rust-lang/crates.io-index"15093checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"15940checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"15094dependencies = [15941dependencies = [15095 "windows-targets 0.48.2",15942 "windows-targets 0.48.5",15096]15943]150971594415098[[package]]15945[[package]]15110source = "registry+https://github.com/rust-lang/crates.io-index"15957source = "registry+https://github.com/rust-lang/crates.io-index"15111checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"15958checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"15112dependencies = [15959dependencies = [15113 "windows-targets 0.48.2",15960 "windows-targets 0.48.5",15114]15961]151151596215116[[package]]15963[[package]]151301597715131[[package]]15978[[package]]15132name = "windows-targets"15979name = "windows-targets"15133version = "0.48.2"15980version = "0.48.5"15134source = "registry+https://github.com/rust-lang/crates.io-index"15981source = "registry+https://github.com/rust-lang/crates.io-index"15135checksum = "d1eeca1c172a285ee6c2c84c341ccea837e7c01b12fbb2d0fe3c9e550ce49ec8"15982checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"15136dependencies = [15983dependencies = [15137 "windows_aarch64_gnullvm 0.48.2",15984 "windows_aarch64_gnullvm 0.48.5",15138 "windows_aarch64_msvc 0.48.2",15985 "windows_aarch64_msvc 0.48.5",15139 "windows_i686_gnu 0.48.2",15986 "windows_i686_gnu 0.48.5",15140 "windows_i686_msvc 0.48.2",15987 "windows_i686_msvc 0.48.5",15141 "windows_x86_64_gnu 0.48.2",15988 "windows_x86_64_gnu 0.48.5",15142 "windows_x86_64_gnullvm 0.48.2",15989 "windows_x86_64_gnullvm 0.48.5",15143 "windows_x86_64_msvc 0.48.2",15990 "windows_x86_64_msvc 0.48.5",15144]15991]151451599215146[[package]]15993[[package]]151511599815152[[package]]15999[[package]]15153name = "windows_aarch64_gnullvm"16000name = "windows_aarch64_gnullvm"15154version = "0.48.2"16001version = "0.48.5"15155source = "registry+https://github.com/rust-lang/crates.io-index"16002source = "registry+https://github.com/rust-lang/crates.io-index"15156checksum = "b10d0c968ba7f6166195e13d593af609ec2e3d24f916f081690695cf5eaffb2f"16003checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"151571600415158[[package]]16005[[package]]15159name = "windows_aarch64_msvc"16006name = "windows_aarch64_msvc"151691601615170[[package]]16017[[package]]15171name = "windows_aarch64_msvc"16018name = "windows_aarch64_msvc"15172version = "0.48.2"16019version = "0.48.5"15173source = "registry+https://github.com/rust-lang/crates.io-index"16020source = "registry+https://github.com/rust-lang/crates.io-index"15174checksum = "571d8d4e62f26d4932099a9efe89660e8bd5087775a2ab5cdd8b747b811f1058"16021checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"151751602215176[[package]]16023[[package]]15177name = "windows_i686_gnu"16024name = "windows_i686_gnu"151871603415188[[package]]16035[[package]]15189name = "windows_i686_gnu"16036name = "windows_i686_gnu"15190version = "0.48.2"16037version = "0.48.5"15191source = "registry+https://github.com/rust-lang/crates.io-index"16038source = "registry+https://github.com/rust-lang/crates.io-index"15192checksum = "2229ad223e178db5fbbc8bd8d3835e51e566b8474bfca58d2e6150c48bb723cd"16039checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"151931604015194[[package]]16041[[package]]15195name = "windows_i686_msvc"16042name = "windows_i686_msvc"152051605215206[[package]]16053[[package]]15207name = "windows_i686_msvc"16054name = "windows_i686_msvc"15208version = "0.48.2"16055version = "0.48.5"15209source = "registry+https://github.com/rust-lang/crates.io-index"16056source = "registry+https://github.com/rust-lang/crates.io-index"15210checksum = "600956e2d840c194eedfc5d18f8242bc2e17c7775b6684488af3a9fff6fe3287"16057checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"152111605815212[[package]]16059[[package]]15213name = "windows_x86_64_gnu"16060name = "windows_x86_64_gnu"152231607015224[[package]]16071[[package]]15225name = "windows_x86_64_gnu"16072name = "windows_x86_64_gnu"15226version = "0.48.2"16073version = "0.48.5"15227source = "registry+https://github.com/rust-lang/crates.io-index"16074source = "registry+https://github.com/rust-lang/crates.io-index"15228checksum = "ea99ff3f8b49fb7a8e0d305e5aec485bd068c2ba691b6e277d29eaeac945868a"16075checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"152291607615230[[package]]16077[[package]]15231name = "windows_x86_64_gnullvm"16078name = "windows_x86_64_gnullvm"152351608215236[[package]]16083[[package]]15237name = "windows_x86_64_gnullvm"16084name = "windows_x86_64_gnullvm"15238version = "0.48.2"16085version = "0.48.5"15239source = "registry+https://github.com/rust-lang/crates.io-index"16086source = "registry+https://github.com/rust-lang/crates.io-index"15240checksum = "8f1a05a1ece9a7a0d5a7ccf30ba2c33e3a61a30e042ffd247567d1de1d94120d"16087checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"152411608815242[[package]]16089[[package]]15243name = "windows_x86_64_msvc"16090name = "windows_x86_64_msvc"152531610015254[[package]]16101[[package]]15255name = "windows_x86_64_msvc"16102name = "windows_x86_64_msvc"15256version = "0.48.2"16103version = "0.48.5"15257source = "registry+https://github.com/rust-lang/crates.io-index"16104source = "registry+https://github.com/rust-lang/crates.io-index"15258checksum = "d419259aba16b663966e29e6d7c6ecfa0bb8425818bb96f6f1f3c3eb71a6e7b9"16105checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"152591610615260[[package]]16107[[package]]15261name = "winnow"16108name = "winnow"15262version = "0.5.11"16109version = "0.5.15"15263source = "registry+https://github.com/rust-lang/crates.io-index"16110source = "registry+https://github.com/rust-lang/crates.io-index"15264checksum = "1e461589e194280efaa97236b73623445efa195aa633fd7004f39805707a9d53"16111checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"15265dependencies = [16112dependencies = [15266 "memchr",16113 "memchr",15267]16114]152981614515299[[package]]16146[[package]]15300name = "x25519-dalek"16147name = "x25519-dalek"15301version = "2.0.0-pre.1"16148version = "2.0.0"15302source = "registry+https://github.com/rust-lang/crates.io-index"16149source = "registry+https://github.com/rust-lang/crates.io-index"15303checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df"16150checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"15304dependencies = [16151dependencies = [15305 "curve25519-dalek 3.2.0",16152 "curve25519-dalek 4.1.1",15306 "rand_core 0.6.4",16153 "rand_core 0.6.4",16154 "serde",15307 "zeroize",16155 "zeroize",15308]16156]153091615715320 "lazy_static",16168 "lazy_static",15321 "nom",16169 "nom",15322 "oid-registry 0.4.0",16170 "oid-registry 0.4.0",15323 "ring",16171 "ring 0.16.20",15324 "rusticata-macros",16172 "rusticata-macros",15325 "thiserror",16173 "thiserror",15326 "time 0.3.25",16174 "time",15327]16175]153281617615329[[package]]16177[[package]]15341 "oid-registry 0.6.1",16189 "oid-registry 0.6.1",15342 "rusticata-macros",16190 "rusticata-macros",15343 "thiserror",16191 "thiserror",15344 "time 0.3.25",16192 "time",15345]16193]153461619415347[[package]]16195[[package]]15348name = "xcm"15349version = "0.9.43"15350source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"15351dependencies = [15352 "bounded-collections",15353 "derivative",15354 "impl-trait-for-tuples",15355 "log",15356 "parity-scale-codec",15357 "scale-info",15358 "serde",15359 "sp-weights",15360 "xcm-procedural",15361]1536215363[[package]]15364name = "xcm-builder"15365version = "0.9.43"15366source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"15367dependencies = [15368 "frame-support",15369 "frame-system",15370 "impl-trait-for-tuples",15371 "log",15372 "pallet-transaction-payment",15373 "parity-scale-codec",15374 "polkadot-parachain",15375 "scale-info",15376 "sp-arithmetic",15377 "sp-io",15378 "sp-runtime",15379 "sp-std",15380 "sp-weights",15381 "xcm",15382 "xcm-executor",15383]1538415385[[package]]15386name = "xcm-executor"15387version = "0.9.43"15388source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"15389dependencies = [15390 "environmental",15391 "frame-benchmarking",15392 "frame-support",15393 "impl-trait-for-tuples",15394 "log",15395 "parity-scale-codec",15396 "sp-arithmetic",15397 "sp-core",15398 "sp-io",15399 "sp-runtime",15400 "sp-std",15401 "sp-weights",15402 "xcm",15403]1540415405[[package]]15406name = "xcm-procedural"16196name = "xcm-procedural"15407version = "0.9.43"16197version = "1.0.0"15408source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25"16198source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.1.0#f60318f68687e601c47de5ad5ca88e2c3f8139a7"15409dependencies = [16199dependencies = [15410 "Inflector",16200 "Inflector",15411 "proc-macro2",16201 "proc-macro2",15412 "quote",16202 "quote",15413 "syn 2.0.28",16203 "syn 2.0.37",15414]16204]154151620515416[[package]]16206[[package]]15433source = "registry+https://github.com/rust-lang/crates.io-index"16223source = "registry+https://github.com/rust-lang/crates.io-index"15434checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd"16224checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd"15435dependencies = [16225dependencies = [15436 "time 0.3.25",16226 "time",15437]16227]154381622815439[[package]]16229[[package]]15453dependencies = [16243dependencies = [15454 "proc-macro2",16244 "proc-macro2",15455 "quote",16245 "quote",15456 "syn 2.0.28",16246 "syn 2.0.37",15457]16247]154581624815459[[package]]16249[[package]]Cargo.tomldiffbeforeafterboth11 'runtime/tests',11 'runtime/tests',12 'runtime/unique',12 'runtime/unique',13]13]14package.version = "0.9.43"14package.version = "1.1.0"15resolver = "2"15resolver = "2"161617[profile.release]17[profile.release]25opt-level = 325opt-level = 3262627[profile.integration-tests]27[profile.integration-tests]28inherits = "release"29debug-assertions = true28debug-assertions = true29inherits = "release"303031[workspace.dependencies]31[workspace.dependencies]32# Unique32# Unique33app-promotion-rpc = { path = "primitives/app_promotion_rpc", default-features = false }33app-promotion-rpc = { path = "primitives/app_promotion_rpc", default-features = false }34evm-coder = { version = "0.4.2", default-features = false, features = [34evm-coder = { version = "0.4.2", default-features = false, features = ['bondrewd'] }35 'bondrewd',36] }37pallet-app-promotion = { path = "pallets/app-promotion", default-features = false }35pallet-app-promotion = { path = "pallets/app-promotion", default-features = false }38pallet-balances-adapter = { default-features = false, path = "pallets/balances-adapter" }36pallet-balances-adapter = { default-features = false, path = "pallets/balances-adapter" }39pallet-charge-transaction = { package = "pallet-template-transaction-payment", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.43" }37pallet-charge-transaction = { package = "pallet-template-transaction-payment", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v1.1.0" }40pallet-collator-selection = { default-features = false, path = "pallets/collator-selection" }38pallet-collator-selection = { default-features = false, path = "pallets/collator-selection" }41pallet-common = { default-features = false, path = "pallets/common" }39pallet-common = { default-features = false, path = "pallets/common" }42pallet-configuration = { default-features = false, path = "pallets/configuration" }40pallet-configuration = { default-features = false, path = "pallets/configuration" }55pallet-structure = { default-features = false, path = "pallets/structure" }53pallet-structure = { default-features = false, path = "pallets/structure" }56pallet-test-utils = { default-features = false, path = "test-pallets/utils" }54pallet-test-utils = { default-features = false, path = "test-pallets/utils" }57pallet-unique = { path = "pallets/unique", default-features = false }55pallet-unique = { path = "pallets/unique", default-features = false }58pallet-unique-scheduler-v2 = { path = "pallets/scheduler-v2", default-features = false }59precompile-utils-macro = { path = "runtime/common/ethereum/precompiles/utils/macro" }56precompile-utils-macro = { path = "runtime/common/ethereum/precompiles/utils/macro" }60struct-versioning = { path = "crates/struct-versioning" }57struct-versioning = { path = "crates/struct-versioning" }61uc-rpc = { path = "client/rpc" }58uc-rpc = { path = "client/rpc" }64up-data-structs = { path = "primitives/data-structs", default-features = false }61up-data-structs = { path = "primitives/data-structs", default-features = false }65up-pov-estimate-rpc = { path = "primitives/pov-estimate-rpc", default-features = false }62up-pov-estimate-rpc = { path = "primitives/pov-estimate-rpc", default-features = false }66up-rpc = { path = "primitives/rpc", default-features = false }63up-rpc = { path = "primitives/rpc", default-features = false }67up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.43" }64up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v1.1.0" }686569# Unique: Runtimes66# Unique: Runtimes70opal-runtime = { path = "runtime/opal" }67opal-runtime = { path = "runtime/opal" }71quartz-runtime = { path = "runtime/quartz" }68quartz-runtime = { path = "runtime/quartz" }72unique-runtime = { path = "runtime/unique" }69unique-runtime = { path = "runtime/unique" }737074# Frontier (Unique patches over the Parity version)71# Frontier (Unique patches over the Parity version)75fc-consensus = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }72fc-api = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }73fc-consensus = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }76fc-db = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }74fc-db = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }77fc-mapping-sync = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }75fc-mapping-sync = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }78fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }76fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }79fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }77fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }80fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }78fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }81fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }79fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }82fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }80fp-self-contained = { default-features = false, features = [81 "serde",82], git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }83fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }83fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }84pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }84pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }85pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }85pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }86pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }86pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }87pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.43" }87pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.1.0" }888889# Parity89# Parity90codec = { default-features = false, features = ['derive'], package = 'parity-scale-codec', version = "3.2.2" }90codec = { default-features = false, features = ['derive'], package = 'parity-scale-codec', version = "3.6.5" }91cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }91cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }92cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }92cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }93cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }93cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }94cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }94cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }95cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }95cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }96cumulus-pallet-aura-ext = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }96cumulus-client-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }97cumulus-pallet-dmp-queue = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }97cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }98cumulus-pallet-parachain-system = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }98cumulus-pallet-aura-ext = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }99cumulus-pallet-xcm = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }99cumulus-pallet-dmp-queue = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }100cumulus-pallet-xcmp-queue = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }100cumulus-pallet-parachain-system = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }101cumulus-primitives-core = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }101cumulus-pallet-xcm = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }102cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }102cumulus-pallet-xcmp-queue = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }103cumulus-primitives-timestamp = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }103cumulus-primitives-core = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }104cumulus-primitives-utility = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }104cumulus-primitives-parachain-inherent = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }105cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }105cumulus-primitives-timestamp = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }106cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }106cumulus-primitives-utility = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }107cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }107cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }108frame-executive = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }108cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }109frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }109cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }110frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }110frame-executive = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }111frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }111frame-support = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }112pallet-aura = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }112frame-system = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }113pallet-authorship = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }113frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }114pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }114pallet-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }115pallet-collective = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }115pallet-authorship = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }116pallet-democracy = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }116pallet-balances = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }117pallet-membership = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }117pallet-collective = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }118pallet-preimage = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }118pallet-democracy = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }119pallet-ranked-collective = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }119pallet-membership = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }120pallet-referenda = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }120pallet-preimage = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }121pallet-scheduler = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }121pallet-ranked-collective = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }122pallet-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }122pallet-referenda = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }123pallet-state-trie-migration = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }123pallet-scheduler = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }124pallet-sudo = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }124pallet-session = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }125pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }125pallet-state-trie-migration = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }126pallet-utility = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }126pallet-sudo = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }127pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }127pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }128pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }128pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }129pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }129pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }130pallet-treasury = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }130pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }131pallet-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false }131pallet-treasury = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }132parachain-info = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" }132pallet-utility = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }133parity-scale-codec = { version = "3.2.2", features = ["derive"], default-features = false }133pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false }134polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" }134parachain-info = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }135polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false }135parity-scale-codec = { version = "3.6.5", features = ["derive"], default-features = false }136polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" }136polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }137polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" }137polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false }138sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }138polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }139sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }139polkadot-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }140sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }140sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }141sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }141sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }142sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }142sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }143sc-consensus-manual-seal = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }143sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }144sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }144sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }145sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }145sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }146sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }146sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }147sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }147sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }148sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }148sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }149sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }149sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }150sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }150sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }151sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }151sc-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }152sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }152sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }153sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }153sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }154scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }154sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }155sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }155sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }156sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }156scale-info = { version = "2.9.0", default-features = false, features = ["derive"] }157sp-block-builder = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }157sp-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }158sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }158sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }159sp-consensus-aura = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }159sp-block-builder = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }160sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }160sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }161sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }161sp-consensus-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }162sp-inherents = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }162sp-core = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }163sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }163sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }164sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }164sp-inherents = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }165sp-offchain = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }165sp-io = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }166sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }166sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }167sp-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }167sp-offchain = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }168sp-staking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }168sp-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }169sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }169sp-session = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }170sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }170sp-staking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }171sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }171sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }172sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }172sp-std = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }173sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }173sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }174sp-trie = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }174sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }175sp-version = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }175sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }176substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }176sp-trie = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }177substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }177sp-version = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }178xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false }178sp-weights = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }179xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false }179staging-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false }180xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false }180staging-xcm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false }181staging-xcm-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", default-features = false }182substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }183substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }181184182# Parity: Build utils185# Parity: Build utils183substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }186substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }184substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }187substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }185188186# Parity: Benchmarking189# Parity: Benchmarking187frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }190frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }188frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }191frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }189frame-system-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }192frame-system-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }190193191# Parity: Try Runtime194# Parity: Try Runtime192frame-try-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }195frame-try-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }193try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" }196try-runtime-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0" }194197195# ORML198# ORML196orml-tokens = { default-features = false, git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.43" }199orml-tokens = { default-features = false, git = "https://github.com/moonbeam-foundation/open-runtime-module-library", branch = "upgrade-to-polkadot-v1.1.0" }197orml-traits = { default-features = false, git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.43" }200orml-traits = { default-features = false, git = "https://github.com/moonbeam-foundation/open-runtime-module-library", branch = "upgrade-to-polkadot-v1.1.0" }198orml-vesting = { default-features = false, git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.43" }201orml-vesting = { default-features = false, git = "https://github.com/moonbeam-foundation/open-runtime-module-library", branch = "upgrade-to-polkadot-v1.1.0" }199orml-xcm-support = { default-features = false, git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.43" }202orml-xcm-support = { default-features = false, git = "https://github.com/moonbeam-foundation/open-runtime-module-library", branch = "upgrade-to-polkadot-v1.1.0" }200orml-xtokens = { default-features = false, git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.43" }203orml-xtokens = { default-features = false, git = "https://github.com/moonbeam-foundation/open-runtime-module-library", branch = "upgrade-to-polkadot-v1.1.0" }201204202# Other205# Other203derivative = { version = "2.2.0", features = ["use_core"] }206derivative = { version = "2.2.0", features = ["use_core"] }204ethereum = { version = "0.14.0", default-features = false }207ethereum = { version = "0.14.0", default-features = false }205evm-core = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false }208evm-core = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false }206hex-literal = "0.4.1"209hex-literal = "0.4.1"207impl-trait-for-tuples = "0.2.2"210impl-trait-for-tuples = "0.2.2"208jsonrpsee = { version = "0.16.2", features = ["macros", "server"] }211jsonrpsee = { version = "0.16.3", features = ["macros", "server"] }209log = { version = "0.4.16", default-features = false }212log = { version = "0.4.20", default-features = false }210num_enum = { version = "0.5.3", default-features = false }213num_enum = { version = "0.7.0", default-features = false }211serde = { default-features = false, features = ['derive'], version = "1.0.136" }214serde = { default-features = false, features = ['derive'], version = "1.0.188" }212smallvec = "1.6.1"215smallvec = "1.11.1"213216Makefilediffbeforeafterboth128bench-structure:128bench-structure:129 make _bench PALLET=structure129 make _bench PALLET=structure130131.PHONY: bench-scheduler132bench-scheduler:133 make _bench PALLET=unique-scheduler-v2 PALLET_DIR=scheduler-v2134130135.PHONY: bench-foreign-assets131.PHONY: bench-foreign-assets136bench-foreign-assets:132bench-foreign-assets:157 make _bench PALLET=xcm OUTPUT=./runtime/common/weights/xcm.rs TEMPLATE="--template=.maintain/external-weight-template.hbs"153 make _bench PALLET=xcm OUTPUT=./runtime/common/weights/xcm.rs TEMPLATE="--template=.maintain/external-weight-template.hbs"158154159.PHONY: bench155.PHONY: bench160# Disabled: bench-scheduler161bench: bench-app-promotion bench-common bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-configuration bench-foreign-assets bench-maintenance bench-xcm bench-collator-selection bench-identity156bench: bench-app-promotion bench-common bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-configuration bench-foreign-assets bench-maintenance bench-xcm bench-collator-selection bench-identity162157163.PHONY: check158.PHONY: checkREADME.mddiffbeforeafterboth848485Note: checkout this project and all related projects (see below) in the sibling folders (both under the same folder)85Note: checkout this project and all related projects (see below) in the sibling folders (both under the same folder)868687### Polkadot launch utility8889```90git clone https://github.com/UniqueNetwork/polkadot-launch.git91git checkout unique-network92```9394### Build relay87### Build relay958896```89```118111119## Running as Parachain locally112## Running as Parachain locally120113121```114### Dev mode122./launch-testnet.sh123```124115125Optional, full setup with Acala and Statemint116You can launch the node in the dev mode where blocks are sealed automatically each 500 ms or on each new transaction.117126```118* Opal Runtime: `cargo run --release -- --dev`119* Quartz Runtime: `cargo run --release --features quartz-runtime -- --dev`127./launch-testnet-full.sh120* Unique Runtime: `cargo run --release --features unique-runtime -- --dev`121122 You can tweak the dev mode with the following CLI options:123 * --idle-autoseal-interval <IDLE_AUTOSEAL_INTERVAL>124 When running the node in the `--dev` mode, an empty block will be sealed automatically after the `<IDLE_AUTOSEAL_INTERVAL>` milliseconds.125 * --disable-autoseal-on-tx128```126 Disable auto-sealing blocks on new transactions in the `--dev` mode127 * --autoseal-finalization-delay <AUTOSEAL_FINALIZATION_DELAY>128 Finalization delay (in seconds) of auto-sealed blocks in the `--dev` mode.129 Disabled by default.129130130## Run Integration Tests131## Run Integration Tests131132client/rpc/Cargo.tomldiffbeforeafterboth5version = "0.1.4"5version = "0.1.4"667[dependencies]7[dependencies]8anyhow = "1.0.57"8anyhow = "1.0.75"9jsonrpsee = { version = "0.16.2", features = ["macros", "server"] }9jsonrpsee = { version = "0.16.3", features = ["macros", "server"] }10parity-scale-codec = { workspace = true }10trie-db = { version = "0.24.0", default-features = false }11trie-db = { version = "0.27.1", default-features = false }11zstd = { version = "0.11.2", default-features = false }12zstd = { version = "0.12.4", default-features = false }1213# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.14codec = { workspace = true, package = "parity-scale-codec" }151316app-promotion-rpc = { workspace = true }14app-promotion-rpc = { workspace = true }17up-common = { workspace = true }15up-common = { workspace = true }44hex-literal = { workspace = true }42hex-literal = { workspace = true }454346[features]44[features]47default = ['opal-runtime']48all-runtimes = [45all-runtimes = ['opal-runtime', 'quartz-runtime', 'unique-runtime']49 'opal-runtime',46default = ['opal-runtime']50 'quartz-runtime',51 'unique-runtime',52]client/rpc/src/lib.rsdiffbeforeafterboth17// Original License17// Original License18use std::sync::Arc;18use std::sync::Arc;191920use codec::Decode;20use anyhow::anyhow;21use app_promotion_rpc::AppPromotionApi as AppPromotionRuntimeApi;22pub use app_promotion_unique_rpc::AppPromotionApiServer;21use jsonrpsee::{23use jsonrpsee::{core::RpcResult as Result, proc_macros::rpc};22 core::{RpcResult as Result},23 proc_macros::rpc,24};25use anyhow::anyhow;24use parity_scale_codec::Decode;25use sp_api::{ApiExt, BlockT, ProvideRuntimeApi};26use sp_blockchain::HeaderBackend;26use sp_runtime::traits::{AtLeast32BitUnsigned, Member};27use sp_runtime::traits::{AtLeast32BitUnsigned, Member};27use up_data_structs::{28use up_data_structs::{28 RpcCollection, CollectionId, CollectionStats, CollectionLimits, TokenId, Property,29 CollectionId, CollectionLimits, CollectionStats, Property, PropertyKeyPermission,29 PropertyKeyPermission, TokenData, TokenChild,30 RpcCollection, TokenChild, TokenData, TokenId,30};31};31use sp_api::{BlockT, ProvideRuntimeApi, ApiExt};32use sp_blockchain::HeaderBackend;33use up_rpc::UniqueApi as UniqueRuntimeApi;32use up_rpc::UniqueApi as UniqueRuntimeApi;34use app_promotion_rpc::AppPromotionApi as AppPromotionRuntimeApi;3536pub use app_promotion_unique_rpc::AppPromotionApiServer;373338#[cfg(feature = "pov-estimate")]34#[cfg(feature = "pov-estimate")]39pub mod pov_estimate;35pub mod pov_estimate;549 keys.map(|keys| keys.into_iter().map(|key| key.into_bytes()).collect())545 keys.map(|keys| keys.into_iter().map(|key| key.into_bytes()).collect())550}546}551547552fn decode_collection_from_bytes<T: codec::Decode>(548fn decode_collection_from_bytes<T: parity_scale_codec::Decode>(553 bytes: &[u8],549 bytes: &[u8],554) -> core::result::Result<T, codec::Error> {550) -> core::result::Result<T, parity_scale_codec::Error> {555 let mut reader = codec::IoReader(bytes);551 let mut reader = parity_scale_codec::IoReader(bytes);556 T::decode(&mut reader)552 T::decode(&mut reader)557}553}558554559fn detect_type_and_decode_collection<AccountId: Decode>(555fn detect_type_and_decode_collection<AccountId: Decode>(560 bytes: &[u8],556 bytes: &[u8],561) -> core::result::Result<RpcCollection<AccountId>, codec::Error> {557) -> core::result::Result<RpcCollection<AccountId>, parity_scale_codec::Error> {562 use up_data_structs::{CollectionVersion1, RpcCollectionVersion1};558 use up_data_structs::{CollectionVersion1, RpcCollectionVersion1};563559564 decode_collection_from_bytes::<RpcCollection<AccountId>>(bytes)560 decode_collection_from_bytes::<RpcCollection<AccountId>>(bytes)574570575#[cfg(test)]571#[cfg(test)]576mod tests {572mod tests {577 use super::*;573 use hex_literal::hex;578 use codec::IoReader;574 use parity_scale_codec::IoReader;579 use hex_literal::hex;580 use up_data_structs::{CollectionVersion1, RawEncoded};575 use up_data_structs::{CollectionVersion1, RawEncoded};576577 use super::*;581578582 const ENCODED_COLLECTION_V1: [u8; 180] = hex!("aab94a1ee784bc17f68d76d4d48d736916ca6ff6315b8c1fa1175726c8345a390000285000720069006d00610020004c00690076006500d04500730065006d00700069006f00200064006900200063007200650061007a0069006f006e006500200064006900200075006e00610020006e0075006f0076006100200063006f006c006c0065007a0069006f006e00650020006400690020004e004600540021000c464e5400000000000000000000000000000000");579 const ENCODED_COLLECTION_V1: [u8; 180] = hex!("aab94a1ee784bc17f68d76d4d48d736916ca6ff6315b8c1fa1175726c8345a390000285000720069006d00610020004c00690076006500d04500730065006d00700069006f00200064006900200063007200650061007a0069006f006e006500200064006900200075006e00610020006e0075006f0076006100200063006f006c006c0065007a0069006f006e00650020006400690020004e004600540021000c464e5400000000000000000000000000000000");583 const ENCODED_RPC_COLLECTION_V2: [u8; 618] = hex!("d00dcc24bf66750d3809aa26884b930ec8a3094d6f6f19fdc62020b2fbec013400604d0069006e007400460065007300740020002d002000460075006e006e007900200061006e0069006d0061006c0073008c430072006f00730073006f0076006500720020006200650074007700650065006e00200061006e0069006d0061006c00730020002d00200066006f0072002000660075006e00104d46464100000000000000000000010001000100000004385f6f6c645f636f6e7374446174610001000c5c5f6f6c645f636f6e73744f6e436861696e536368656d6139047b226e6573746564223a7b226f6e436861696e4d65746144617461223a7b226e6573746564223a7b224e46544d657461223a7b226669656c6473223a7b22697066734a736f6e223a7b226964223a312c2272756c65223a227265717569726564222c2274797065223a22737472696e67227d2c2248656164223a7b226964223a322c2272756c65223a227265717569726564222c2274797065223a22737472696e67227d2c22426f6479223a7b226964223a332c2272756c65223a227265717569726564222c2274797065223a22737472696e67227d2c225461696c223a7b226964223a342c2272756c65223a227265717569726564222c2274797065223a22737472696e67227d7d7d7d7d7d7d485f6f6c645f736368656d6156657273696f6e18556e69717565685f6f6c645f7661726961626c654f6e436861696e536368656d6111017b22636f6c6c656374696f6e436f766572223a22516d53557a7139354c357a556777795a584d3731576a3762786b36557048515468633162536965347766706e5435227d000000");580 const ENCODED_RPC_COLLECTION_V2: [u8; 618] = hex!("d00dcc24bf66750d3809aa26884b930ec8a3094d6f6f19fdc62020b2fbec013400604d0069006e007400460065007300740020002d002000460075006e006e007900200061006e0069006d0061006c0073008c430072006f00730073006f0076006500720020006200650074007700650065006e00200061006e0069006d0061006c00730020002d00200066006f0072002000660075006e00104d46464100000000000000000000010001000100000004385f6f6c645f636f6e7374446174610001000c5c5f6f6c645f636f6e73744f6e436861696e536368656d6139047b226e6573746564223a7b226f6e436861696e4d65746144617461223a7b226e6573746564223a7b224e46544d657461223a7b226669656c6473223a7b22697066734a736f6e223a7b226964223a312c2272756c65223a227265717569726564222c2274797065223a22737472696e67227d2c2248656164223a7b226964223a322c2272756c65223a227265717569726564222c2274797065223a22737472696e67227d2c22426f6479223a7b226964223a332c2272756c65223a227265717569726564222c2274797065223a22737472696e67227d2c225461696c223a7b226964223a342c2272756c65223a227265717569726564222c2274797065223a22737472696e67227d7d7d7d7d7d7d485f6f6c645f736368656d6156657273696f6e18556e69717565685f6f6c645f7661726961626c654f6e436861696e536368656d6111017b22636f6c6c656374696f6e436f766572223a22516d53557a7139354c357a556777795a584d3731576a3762786b36557048515468633162536965347766706e5435227d000000");client/rpc/src/pov_estimate.rsdiffbeforeafterboth161617use std::sync::Arc;17use std::sync::Arc;181819use codec::{Encode, Decode};19use anyhow::anyhow;20use sp_externalities::Extensions;2122use up_pov_estimate_rpc::{PovEstimateApi as PovEstimateRuntimeApi};20use jsonrpsee::{core::RpcResult as Result, proc_macros::rpc};23use up_common::types::opaque::RuntimeId;21use parity_scale_codec::{Decode, Encode};2425use sc_service::{NativeExecutionDispatch, config::ExecutionStrategy};22use sc_client_api::backend::Backend;26use sp_state_machine::{StateMachine, TrieBackendBuilder};23use sc_executor::NativeElseWasmExecutor;27use trie_db::{Trie, TrieDBBuilder};24use sc_rpc_api::DenyUnsafe;2829use jsonrpsee::{core::RpcResult as Result, proc_macros::rpc};25use sc_service::{config::ExecutionStrategy, NativeExecutionDispatch};30use anyhow::anyhow;26use sp_api::{AsTrieBackend, BlockId, BlockT, ProvideRuntimeApi};3132use sc_client_api::backend::Backend;33use sp_blockchain::HeaderBackend;27use sp_blockchain::HeaderBackend;34use sp_core::{28use sp_core::{35 Bytes,36 offchain::{29 offchain::{37 testing::{TestOffchainExt, TestTransactionPoolExt},30 testing::{TestOffchainExt, TestTransactionPoolExt},38 OffchainDbExt, OffchainWorkerExt, TransactionPoolExt,31 OffchainDbExt, OffchainWorkerExt, TransactionPoolExt,39 },32 },40 testing::TaskExecutor,33 testing::TaskExecutor,41 traits::TaskExecutorExt,34 traits::TaskExecutorExt,35 Bytes,42};36};37use sp_externalities::Extensions;43use sp_keystore::{testing::KeyStore, KeystoreExt};38use sp_keystore::{testing::KeyStore, KeystoreExt};44use sp_api::{AsTrieBackend, BlockId, BlockT, ProvideRuntimeApi};39use sp_runtime::traits::Header;4546use sc_executor::NativeElseWasmExecutor;40use sp_state_machine::{StateMachine, TrieBackendBuilder};47use sc_rpc_api::DenyUnsafe;41use trie_db::{Trie, TrieDBBuilder};4849use sp_runtime::traits::Header;42use up_common::types::opaque::RuntimeId;5051use up_pov_estimate_rpc::{PovInfo, TrieKeyValue};43use up_pov_estimate_rpc::{PovEstimateApi as PovEstimateRuntimeApi, PovInfo, TrieKeyValue};524453use crate::define_struct_for_server_api;45use crate::define_struct_for_server_api;5446crates/struct-versioning/Cargo.tomldiffbeforeafterboth4version = "0.1.0"4version = "0.1.0"556[dependencies]6[dependencies]7quote = "1.0.15"7quote = "1.0.33"8syn = { version = "1.0", features = ["full"] }8syn = { version = "1.0", features = ["full"] }9910[lib]10[lib]crates/struct-versioning/src/lib.rsdiffbeforeafterboth17#![doc = include_str!("../README.md")]17#![doc = include_str!("../README.md")]181819use proc_macro::TokenStream;19use proc_macro::TokenStream;20use quote::format_ident;20use quote::{format_ident, quote};21use syn::{21use syn::{22 parenthesized,22 parse::{Parse, ParseStream},23 parse::{Parse, ParseStream},23 Token, LitInt, parse_macro_input, ItemStruct, Error, Fields, Result, Field, Expr,24 parse_macro_input, Error, Expr, Field, Fields, ItemStruct, LitInt, Result, Token,24 parenthesized,25};25};26use quote::quote;272628mod kw {27mod kw {29 syn::custom_keyword!(version);28 syn::custom_keyword!(version);node/cli/Cargo.tomldiffbeforeafterboth20targets = ['x86_64-unknown-linux-gnu']20targets = ['x86_64-unknown-linux-gnu']212122[dependencies]22[dependencies]23clap = "4.1"23clap = "4.4"24futures = '0.3.28'24futures = '0.3.28'25serde_json = "1.0"25tokio = { version = "1.24", features = ["time"] }26tokio = { version = "1.32", features = ["time"] }26serde_json = "1.0"272728log = { workspace = true }28log = { workspace = true }292930# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.31codec = { workspace = true, package = "parity-scale-codec" }30parity-scale-codec = { workspace = true }323133cumulus-client-cli = { workspace = true }32cumulus-client-cli = { workspace = true }33cumulus-client-collator = { workspace = true }34cumulus-client-consensus-aura = { workspace = true }34cumulus-client-consensus-aura = { workspace = true }35cumulus-client-consensus-common = { workspace = true }35cumulus-client-consensus-common = { workspace = true }36cumulus-client-consensus-proposer = { workspace = true }36cumulus-client-network = { workspace = true }37cumulus-client-network = { workspace = true }37cumulus-client-service = { workspace = true }38cumulus-client-service = { workspace = true }38cumulus-primitives-core = { workspace = true }39cumulus-primitives-core = { workspace = true }39cumulus-primitives-parachain-inherent = { workspace = true }40cumulus-primitives-parachain-inherent = { features = ["std"], workspace = true }40cumulus-relay-chain-inprocess-interface = { workspace = true }41cumulus-relay-chain-inprocess-interface = { workspace = true }41cumulus-relay-chain-interface = { workspace = true }42cumulus-relay-chain-interface = { workspace = true }42cumulus-relay-chain-minimal-node = { workspace = true }43cumulus-relay-chain-minimal-node = { workspace = true }85fc-consensus = { workspace = true }86fc-consensus = { workspace = true }86fc-db = { workspace = true }87fc-db = { workspace = true }87fc-mapping-sync = { workspace = true }88fc-mapping-sync = { workspace = true }88fc-rpc = { workspace = true }89fc-rpc-core = { workspace = true }89fc-rpc-core = { workspace = true }90fc-rpc.workspace = true90fp-rpc = { workspace = true }91fp-rpc = { workspace = true }919292app-promotion-rpc = { workspace = true }93app-promotion-rpc = { workspace = true }93uc-rpc = { workspace = true }94fc-api.workspace = true94unique-rpc = { workspace = true }95fp-storage.workspace = true95up-pov-estimate-rpc = { workspace = true }96jsonrpsee.workspace = true96up-rpc = { workspace = true }97pallet-transaction-payment-rpc.workspace = true97jsonrpsee.workspace = true98sc-rpc-api.workspace = true98fp-storage.workspace = true99sc-rpc.workspace = true99sc-rpc.workspace = true100sp-inherents.workspace = true101uc-rpc = { workspace = true }102up-pov-estimate-rpc = { workspace = true }103up-rpc = { workspace = true }100104101[build-dependencies]105[build-dependencies]102substrate-build-script-utils = { workspace = true }106substrate-build-script-utils = { workspace = true }103107104[features]108[features]109all-runtimes = ['opal-runtime', 'quartz-runtime', 'unique-runtime']105default = ["opal-runtime"]110default = ["opal-runtime"]106all-runtimes = ['opal-runtime', 'quartz-runtime', 'unique-runtime']111gov-test-timings = [112 'opal-runtime/gov-test-timings',113 'quartz-runtime?/gov-test-timings',114 'unique-runtime?/gov-test-timings',115]116lookahead = []107pov-estimate = ['opal-runtime/pov-estimate', 'quartz-runtime?/pov-estimate', 'uc-rpc/pov-estimate', 'unique-rpc/pov-estimate', 'unique-runtime?/pov-estimate']117pov-estimate = [118 'opal-runtime/pov-estimate',119 'quartz-runtime?/pov-estimate',120 'uc-rpc/pov-estimate',121 'unique-runtime?/pov-estimate',122]108runtime-benchmarks = ['opal-runtime/runtime-benchmarks', 'polkadot-cli/runtime-benchmarks', 'polkadot-service/runtime-benchmarks', 'quartz-runtime?/runtime-benchmarks', 'sc-service/runtime-benchmarks', 'unique-runtime?/runtime-benchmarks']123runtime-benchmarks = [124 'opal-runtime/runtime-benchmarks',125 'polkadot-cli/runtime-benchmarks',126 'polkadot-service/runtime-benchmarks',127 'quartz-runtime?/runtime-benchmarks',128 'sc-service/runtime-benchmarks',129 'unique-runtime?/runtime-benchmarks',130]109sapphire-runtime = ['quartz-runtime', 'quartz-runtime/become-sapphire']131sapphire-runtime = ['quartz-runtime', 'quartz-runtime/become-sapphire']132session-test-timings = [133 'opal-runtime/session-test-timings',134 'quartz-runtime?/session-test-timings',135 'unique-runtime?/session-test-timings',136]110try-runtime = ['opal-runtime?/try-runtime', 'quartz-runtime?/try-runtime', 'try-runtime-cli/try-runtime', 'unique-runtime?/try-runtime']137try-runtime = [111session-test-timings = ['opal-runtime/session-test-timings', 'quartz-runtime?/session-test-timings', 'unique-runtime?/session-test-timings']138 'opal-runtime?/try-runtime',112gov-test-timings = ['opal-runtime/gov-test-timings', 'quartz-runtime?/gov-test-timings', 'unique-runtime?/gov-test-timings']139 'quartz-runtime?/try-runtime',140 'try-runtime-cli/try-runtime',141 'unique-runtime?/try-runtime',142]node/cli/src/chain_spec.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};17use std::collections::BTreeMap;1819#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]18use sc_service::ChainType;20pub use opal_runtime as default_runtime;21#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]19use sp_core::{sr25519, Pair, Public};22pub use quartz_runtime as default_runtime;20use sp_runtime::traits::{IdentifyAccount, Verify};23use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};21use std::collections::BTreeMap;24use sc_service::ChainType;2223use serde::{Deserialize, Serialize};25use serde::{Deserialize, Serialize};24use serde_json::map::Map;26use serde_json::map::Map;2527use sp_core::{sr25519, Pair, Public};26use up_common::types::opaque::*;28use sp_runtime::traits::{IdentifyAccount, Verify};2728#[cfg(feature = "unique-runtime")]29#[cfg(feature = "unique-runtime")]29pub use unique_runtime as default_runtime;30pub use unique_runtime as default_runtime;3031#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]32pub use quartz_runtime as default_runtime;31use up_common::types::opaque::*;3334#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]35pub use opal_runtime as default_runtime;363237/// The `ChainSpec` parameterized for the unique runtime.33/// The `ChainSpec` parameterized for the unique runtime.38#[cfg(feature = "unique-runtime")]34#[cfg(feature = "unique-runtime")]39pub type UniqueChainSpec = sc_service::GenericChainSpec<unique_runtime::GenesisConfig, Extensions>;35pub type UniqueChainSpec =36 sc_service::GenericChainSpec<unique_runtime::RuntimeGenesisConfig, Extensions>;403741/// The `ChainSpec` parameterized for the quartz runtime.38/// The `ChainSpec` parameterized for the quartz runtime.42#[cfg(feature = "quartz-runtime")]39#[cfg(feature = "quartz-runtime")]43pub type QuartzChainSpec = sc_service::GenericChainSpec<quartz_runtime::GenesisConfig, Extensions>;40pub type QuartzChainSpec =41 sc_service::GenericChainSpec<quartz_runtime::RuntimeGenesisConfig, Extensions>;444245/// The `ChainSpec` parameterized for the opal runtime.43/// The `ChainSpec` parameterized for the opal runtime.46pub type OpalChainSpec = sc_service::GenericChainSpec<opal_runtime::GenesisConfig, Extensions>;44pub type OpalChainSpec =45 sc_service::GenericChainSpec<opal_runtime::RuntimeGenesisConfig, Extensions>;474648#[cfg(feature = "unique-runtime")]47#[cfg(feature = "unique-runtime")]49pub type DefaultChainSpec = UniqueChainSpec;48pub type DefaultChainSpec = UniqueChainSpec;153 ) => {{152 ) => {{154 use $runtime::*;153 use $runtime::*;155154156 GenesisConfig {155 RuntimeGenesisConfig {157 system: SystemConfig {156 system: SystemConfig {158 code: WASM_BINARY157 code: WASM_BINARY159 .expect("WASM binary was not build, please build it!")158 .expect("WASM binary was not build, please build it!")160 .to_vec(),159 .to_vec(),160 ..Default::default()161 },161 },162 balances: BalancesConfig {162 balances: BalancesConfig {163 balances: $endowed_accounts163 balances: $endowed_accounts167 .map(|k| (k, 1 << 100))167 .map(|k| (k, 1 << 100))168 .collect(),168 .collect(),169 },169 },170 common: Default::default(),171 configuration: Default::default(),172 nonfungible: Default::default(),173 treasury: Default::default(),174 tokens: TokensConfig { balances: vec![] },170 tokens: TokensConfig { balances: vec![] },175 sudo: SudoConfig {171 sudo: SudoConfig {176 key: Some($root_key),172 key: Some($root_key),177 },173 },178174179 vesting: VestingConfig { vesting: vec![] },175 vesting: VestingConfig { vesting: vec![] },180 parachain_info: ParachainInfoConfig {176 parachain_info: ParachainInfoConfig {181 parachain_id: $id.into(),177 parachain_id: $id.into(),182 },183 parachain_system: Default::default(),178 ..Default::default()179 },184 collator_selection: CollatorSelectionConfig {180 collator_selection: CollatorSelectionConfig {185 invulnerables: $initial_invulnerables181 invulnerables: $initial_invulnerables186 .iter()182 .iter()200 })196 })201 .collect(),197 .collect(),202 },198 },203 aura: Default::default(),204 aura_ext: Default::default(),205 evm: EVMConfig {199 evm: EVMConfig {206 accounts: BTreeMap::new(),200 accounts: BTreeMap::new(),207 },208 ethereum: EthereumConfig {},209 polkadot_xcm: Default::default(),201 ..Default::default()210 transaction_payment: Default::default(),202 },211 ..Default::default()203 ..Default::default()212 }204 }213 }};205 }};224 ) => {{216 ) => {{225 use $runtime::*;217 use $runtime::*;226218227 GenesisConfig {219 RuntimeGenesisConfig {228 system: SystemConfig {220 system: SystemConfig {229 code: WASM_BINARY221 code: WASM_BINARY230 .expect("WASM binary was not build, please build it!")222 .expect("WASM binary was not build, please build it!")231 .to_vec(),223 .to_vec(),232 },233 common: Default::default(),224 ..Default::default()234 configuration: Default::default(),225 },235 nonfungible: Default::default(),236 balances: BalancesConfig {226 balances: BalancesConfig {237 balances: $endowed_accounts227 balances: $endowed_accounts238 .iter()228 .iter()241 .map(|k| (k, 1 << 100))231 .map(|k| (k, 1 << 100))242 .collect(),232 .collect(),243 },233 },244 treasury: Default::default(),245 tokens: TokensConfig { balances: vec![] },234 tokens: TokensConfig { balances: vec![] },246 sudo: SudoConfig {235 sudo: SudoConfig {247 key: Some($root_key),236 key: Some($root_key),248 },237 },249 vesting: VestingConfig { vesting: vec![] },238 vesting: VestingConfig { vesting: vec![] },250 parachain_info: ParachainInfoConfig {239 parachain_info: ParachainInfoConfig {251 parachain_id: $id.into(),240 parachain_id: $id.into(),252 },253 parachain_system: Default::default(),241 Default::default()242 },254 aura: AuraConfig {243 aura: AuraConfig {255 authorities: $initial_invulnerables244 authorities: $initial_invulnerables256 .into_iter()245 .into_iter()257 .map(|(_, aura)| aura)246 .map(|(_, aura)| aura)258 .collect(),247 .collect(),259 },248 },260 aura_ext: Default::default(),261 evm: EVMConfig {249 evm: EVMConfig {262 accounts: BTreeMap::new(),250 accounts: BTreeMap::new(),263 },264 ethereum: EthereumConfig {},265 polkadot_xcm: Default::default(),251 ..Default::default()252 },266 transaction_payment: Default::default(),253 ..Default::default()267 }254 }268 }};255 }};269}256}node/cli/src/cli.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use crate::chain_spec;18use std::path::PathBuf;17use std::path::PathBuf;1819use clap::Parser;19use clap::Parser;2021use crate::chain_spec;202221/// Sub-commands supported by the collator.23/// Sub-commands supported by the collator.22#[derive(Debug, Parser)]24#[derive(Debug, Parser)]node/cli/src/command.rsdiffbeforeafterboth32// See the License for the specific language governing permissions and32// See the License for the specific language governing permissions and33// limitations under the License.33// limitations under the License.343435use crate::{36 chain_spec::{self, RuntimeIdentification, ServiceId, ServiceIdentification},37 cli::{Cli, RelayChainCli, Subcommand},38 service::{new_partial, start_node, start_dev_node},39};40#[cfg(feature = "runtime-benchmarks")]41use crate::chain_spec::default_runtime;4243#[cfg(feature = "unique-runtime")]44use crate::service::UniqueRuntimeExecutor;4546#[cfg(feature = "quartz-runtime")]47use crate::service::QuartzRuntimeExecutor;4849use crate::service::OpalRuntimeExecutor;5051#[cfg(feature = "runtime-benchmarks")]52use crate::service::DefaultRuntimeExecutor;5354use codec::Encode;55use cumulus_primitives_core::ParaId;35use cumulus_primitives_core::ParaId;56use cumulus_client_cli::generate_genesis_block;57use log::{debug, info};36use log::info;58use sc_cli::{37use sc_cli::{59 ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams,38 ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams,60 NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli,39 NetworkParams, Result, SharedParams, SubstrateCli,61};40};62use sc_service::config::{BasePath, PrometheusConfig};41use sc_service::config::{BasePath, PrometheusConfig};63use sp_core::hexdisplay::HexDisplay;64use sp_runtime::traits::{AccountIdConversion, Block as BlockT};42use sp_runtime::traits::AccountIdConversion;6566use up_common::types::opaque::{Block, RuntimeId};43use up_common::types::opaque::RuntimeId;4445#[cfg(feature = "runtime-benchmarks")]46use crate::chain_spec::default_runtime;47#[cfg(feature = "runtime-benchmarks")]48use crate::service::DefaultRuntimeExecutor;49#[cfg(feature = "quartz-runtime")]50use crate::service::QuartzRuntimeExecutor;51#[cfg(feature = "unique-runtime")]52use crate::service::UniqueRuntimeExecutor;53use crate::{54 chain_spec::{self, RuntimeIdentification, ServiceId, ServiceIdentification},55 cli::{Cli, RelayChainCli, Subcommand},56 service::{new_partial, start_dev_node, start_node, OpalRuntimeExecutor},57};675868macro_rules! no_runtime_err {59macro_rules! no_runtime_err {69 ($runtime_id:expr) => {60 ($runtime_id:expr) => {136 load_spec(id)127 load_spec(id)137 }128 }138139 fn native_runtime_version(chain_spec: &Box<dyn ChainSpec>) -> &'static RuntimeVersion {140 match chain_spec.runtime_id() {141 #[cfg(feature = "unique-runtime")]142 RuntimeId::Unique => &unique_runtime::VERSION,143144 #[cfg(feature = "quartz-runtime")]145 RuntimeId::Quartz => &quartz_runtime::VERSION,146147 RuntimeId::Opal => &opal_runtime::VERSION,148 runtime_id => panic!("{}", no_runtime_err!(runtime_id)),149 }150 }151}129}152130153impl SubstrateCli for RelayChainCli {131impl SubstrateCli for RelayChainCli {186 polkadot_cli::Cli::from_iter([RelayChainCli::executable_name()].iter()).load_spec(id)164 polkadot_cli::Cli::from_iter([RelayChainCli::executable_name()].iter()).load_spec(id)187 }165 }188189 fn native_runtime_version(chain_spec: &Box<dyn ChainSpec>) -> &'static RuntimeVersion {190 polkadot_cli::Cli::native_runtime_version(chain_spec)191 }192}166}193167194macro_rules! async_run_with_runtime {168macro_rules! async_run_with_runtime {195 (169 (196 $runtime_api:path, $executor:path,170 $runtime:path, $runtime_api:path, $executor:path,197 $runner:ident, $components:ident, $cli:ident, $cmd:ident, $config:ident,171 $runner:ident, $components:ident, $cli:ident, $cmd:ident, $config:ident,198 $( $code:tt )*172 $( $code:tt )*199 ) => {173 ) => {200 $runner.async_run(|$config| {174 $runner.async_run(|$config| {201 let $components = new_partial::<175 let $components = new_partial::<202 $runtime_api, $executor, _176 $runtime, $runtime_api, $executor, _203 >(177 >(204 &$config,178 &$config,205 crate::service::parachain_build_import_queue,179 crate::service::parachain_build_import_queue::<$runtime, _, _>,206 )?;180 )?;207 let task_manager = $components.task_manager;181 let task_manager = $components.task_manager;208182218 match runner.config().chain_spec.runtime_id() {192 match runner.config().chain_spec.runtime_id() {219 #[cfg(feature = "unique-runtime")]193 #[cfg(feature = "unique-runtime")]220 RuntimeId::Unique => async_run_with_runtime!(194 RuntimeId::Unique => async_run_with_runtime!(221 unique_runtime::RuntimeApi, UniqueRuntimeExecutor,195 unique_runtime::Runtime, unique_runtime::RuntimeApi, UniqueRuntimeExecutor,222 runner, $components, $cli, $cmd, $config, $( $code )*196 runner, $components, $cli, $cmd, $config, $( $code )*223 ),197 ),224198225 #[cfg(feature = "quartz-runtime")]199 #[cfg(feature = "quartz-runtime")]226 RuntimeId::Quartz => async_run_with_runtime!(200 RuntimeId::Quartz => async_run_with_runtime!(227 quartz_runtime::RuntimeApi, QuartzRuntimeExecutor,201 quartz_runtime::Runtime, quartz_runtime::RuntimeApi, QuartzRuntimeExecutor,228 runner, $components, $cli, $cmd, $config, $( $code )*202 runner, $components, $cli, $cmd, $config, $( $code )*229 ),203 ),230204231 RuntimeId::Opal => async_run_with_runtime!(205 RuntimeId::Opal => async_run_with_runtime!(232 opal_runtime::RuntimeApi, OpalRuntimeExecutor,206 opal_runtime::Runtime, opal_runtime::RuntimeApi, OpalRuntimeExecutor,233 runner, $components, $cli, $cmd, $config, $( $code )*207 runner, $components, $cli, $cmd, $config, $( $code )*234 ),208 ),235209240214241macro_rules! sync_run_with_runtime {215macro_rules! sync_run_with_runtime {242 (216 (243 $runtime_api:path, $executor:path,217 $runtime:path, $runtime_api:path, $executor:path,244 $runner:ident, $components:ident, $cli:ident, $cmd:ident, $config:ident,218 $runner:ident, $components:ident, $cli:ident, $cmd:ident, $config:ident,245 $( $code:tt )*219 $( $code:tt )*246 ) => {220 ) => {247 $runner.sync_run(|$config| {221 $runner.sync_run(|$config| {222 let $components = new_partial::<223 $runtime, $runtime_api, $executor, _224 >(225 &$config,226 crate::service::parachain_build_import_queue::<$runtime, _, _>,227 )?;228248 $( $code )*229 $( $code )*249 })230 })257 match runner.config().chain_spec.runtime_id() {238 match runner.config().chain_spec.runtime_id() {258 #[cfg(feature = "unique-runtime")]239 #[cfg(feature = "unique-runtime")]259 RuntimeId::Unique => sync_run_with_runtime!(240 RuntimeId::Unique => sync_run_with_runtime!(260 unique_runtime::RuntimeApi, UniqueRuntimeExecutor,241 unique_runtime::Runtime, unique_runtime::RuntimeApi, UniqueRuntimeExecutor,261 runner, $components, $cli, $cmd, $config, $( $code )*242 runner, $components, $cli, $cmd, $config, $( $code )*262 ),243 ),263244264 #[cfg(feature = "quartz-runtime")]245 #[cfg(feature = "quartz-runtime")]265 RuntimeId::Quartz => sync_run_with_runtime!(246 RuntimeId::Quartz => sync_run_with_runtime!(266 quartz_runtime::RuntimeApi, QuartzRuntimeExecutor,247 quartz_runtime::Runtime, quartz_runtime::RuntimeApi, QuartzRuntimeExecutor,267 runner, $components, $cli, $cmd, $config, $( $code )*248 runner, $components, $cli, $cmd, $config, $( $code )*268 ),249 ),269250270 RuntimeId::Opal => sync_run_with_runtime!(251 RuntimeId::Opal => sync_run_with_runtime!(271 opal_runtime::RuntimeApi, OpalRuntimeExecutor,252 opal_runtime::Runtime, opal_runtime::RuntimeApi, OpalRuntimeExecutor,272 runner, $components, $cli, $cmd, $config, $( $code )*253 runner, $components, $cli, $cmd, $config, $( $code )*273 ),254 ),274255362 Some(Subcommand::ExportGenesisState(cmd)) => {343 Some(Subcommand::ExportGenesisState(cmd)) => {363 construct_sync_run!(|components, cli, cmd, _config| {344 construct_sync_run!(|components, cli, cmd, _config| {364 let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?;345 let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?;365 let state_version = Cli::native_runtime_version(&spec).state_version();366 cmd.run::<Block>(&*spec, state_version)346 cmd.run(&*spec, &*components.client)367 })347 })368 }348 }369 Some(Subcommand::ExportGenesisWasm(cmd)) => {349 Some(Subcommand::ExportGenesisWasm(cmd)) => {370 construct_sync_run!(|components, cli, cmd, _config| {350 construct_sync_run!(|_components, cli, cmd, _config| {371 let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?;351 let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?;372 cmd.run(&*spec)352 cmd.run(&*spec)373 })353 })507 ¶_id,488 ¶_id,508 );489 );509510 let state_version = Cli::native_runtime_version(&config.chain_spec).state_version();511 let block: Block = generate_genesis_block(&*config.chain_spec, state_version)512 .map_err(|e| format!("{e:?}"))?;513 let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode()));514 let genesis_hash = format!("0x{:?}", HexDisplay::from(&block.header().hash().0));515490516 let polkadot_config = SubstrateCli::create_configuration(491 let polkadot_config = SubstrateCli::create_configuration(517 &polkadot_cli,492 &polkadot_cli,522497523 info!("Parachain id: {:?}", para_id);498 info!("Parachain id: {:?}", para_id);524 info!("Parachain Account: {}", parachain_account);499 info!("Parachain Account: {}", parachain_account);525 info!("Parachain genesis state: {}", genesis_state);526 info!("Parachain genesis hash: {}", genesis_hash);527 debug!("Parachain genesis block: {:?}", block);528 info!(500 info!(529 "Is collating: {}",501 "Is collating: {}",530 if config.role.is_authority() {502 if config.role.is_authority() {node/cli/src/lib.rsdiffbeforeafterbothno changes
node/cli/src/main.rsdiffbeforeafterboth19mod service;19mod service;20mod cli;20mod cli;21mod command;21mod command;22mod rpc;222323fn main() -> sc_cli::Result<()> {24fn main() -> sc_cli::Result<()> {24 command::run()25 command::run()node/cli/src/rpc.rsdiffbeforeafterbothno changes
node/cli/src/service.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617// std17// std18use std::sync::Arc;18use std::{19use std::sync::Mutex;20use std::collections::BTreeMap;19 collections::BTreeMap,21use std::time::Duration;20 marker::PhantomData,22use std::pin::Pin;21 pin::Pin,23use fc_mapping_sync::EthereumBlockNotificationSinks;22 sync::{Arc, Mutex},24use fc_rpc::EthBlockDataCacheTask;25use fc_rpc::EthTask;26use fc_rpc_core::types::FeeHistoryCache;27use futures::{28 Stream, StreamExt,29 stream::select,23 time::Duration,30 task::{Context, Poll},31};24};32use sc_rpc::SubscriptionTaskExecutor;33use sp_keystore::KeystorePtr;34use tokio::time::Interval;35use jsonrpsee::RpcModule;362537use serde::{Serialize, Deserialize};26use cumulus_client_cli::CollatorOptions;3839// Cumulus Imports40use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion};27use cumulus_client_collator::service::CollatorService;28#[cfg(not(feature = "lookahead"))]41use cumulus_client_consensus_common::{29use cumulus_client_consensus_aura::collators::basic::{42 ParachainConsensus, ParachainBlockImport as TParachainBlockImport,30 run as run_aura, Params as BuildAuraConsensusParams,43};31};32#[cfg(feature = "lookahead")]33use cumulus_client_consensus_aura::collators::lookahead::{34 run as run_aura, Params as BuildAuraConsensusParams,35};36use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport;37use cumulus_client_consensus_proposer::Proposer;38use cumulus_client_network::RequireSecondedInBlockAnnounce;44use cumulus_client_service::{39use cumulus_client_service::{45 prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams,40 build_relay_chain_interface, prepare_node_config, start_relay_chain_tasks, DARecoveryProfile,41 StartRelayChainTasksParams,46};42};47use cumulus_client_cli::CollatorOptions;48use cumulus_client_network::BlockAnnounceValidator;49use cumulus_primitives_core::ParaId;43use cumulus_primitives_core::ParaId;50use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain;44use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface};51use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult};45use fc_mapping_sync::{kv::MappingSyncWorker, EthereumBlockNotificationSinks, SyncStrategy};52use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node;46use fc_rpc::{5347 frontier_backend_client::SystemAccountId32StorageOverride, EthBlockDataCacheTask, EthConfig,48 EthTask, OverrideHandle, RuntimeApiStorageOverride, SchemaV1Override, SchemaV2Override,49 SchemaV3Override, StorageOverride,50};51use fc_rpc_core::types::{FeeHistoryCache, FilterPool};54// Substrate Imports52use fp_rpc::EthereumRuntimeRPCApi;53use fp_storage::EthereumStorageSchema;55use sp_api::{BlockT, HeaderT, ProvideRuntimeApi, StateBackend};54use futures::{55 stream::select,56 task::{Context, Poll},57 Stream, StreamExt,58};59use jsonrpsee::RpcModule;60use polkadot_service::CollatorPair;61use sc_client_api::{AuxStore, Backend, BlockOf, BlockchainEvents, StorageProvider};56use sc_executor::NativeElseWasmExecutor;62use sc_consensus::ImportQueue;57use sc_executor::NativeExecutionDispatch;63use sc_executor::{NativeElseWasmExecutor, NativeExecutionDispatch};58use sc_network::NetworkBlock;64use sc_network::NetworkBlock;59use sc_network_sync::SyncingService;65use sc_network_sync::SyncingService;66use sc_rpc::SubscriptionTaskExecutor;60use sc_service::{Configuration, PartialComponents, TaskManager};67use sc_service::{Configuration, PartialComponents, TaskManager};61use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle};68use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle};69use serde::{Deserialize, Serialize};70use sp_api::{ProvideRuntimeApi, StateBackend};71use sp_block_builder::BlockBuilder;72use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata};73use sp_consensus_aura::sr25519::AuthorityPair as AuraAuthorityPair;74use sp_keystore::KeystorePtr;62use sp_runtime::traits::BlakeTwo256;75use sp_runtime::traits::BlakeTwo256;63use substrate_prometheus_endpoint::Registry;76use substrate_prometheus_endpoint::Registry;64use sc_client_api::{BlockchainEvents, BlockOf, Backend, AuxStore, StorageProvider};77use tokio::time::Interval;65use sp_blockchain::{HeaderBackend, HeaderMetadata, Error as BlockChainError};66use sc_consensus::ImportQueue;78use up_common::types::{opaque::*, Nonce};67use sp_core::H256;68use sp_block_builder::BlockBuilder;697970use polkadot_service::CollatorPair;80use crate::{7172// Frontier Imports73use fc_rpc_core::types::FilterPool;81 chain_spec::RuntimeIdentification,74use fc_mapping_sync::{kv::MappingSyncWorker, SyncStrategy};75use fc_rpc::{82 rpc::{create_eth, create_full, EthDeps, FullDeps},76 StorageOverride, OverrideHandle, SchemaV1Override, SchemaV2Override, SchemaV3Override,77 RuntimeApiStorageOverride,78};83};79use fp_rpc::EthereumRuntimeRPCApi;80use fp_storage::EthereumStorageSchema;818482use up_common::types::opaque::*;8384use crate::chain_spec::RuntimeIdentification;8586/// Unique native executor instance.85/// Unique native executor instance.87#[cfg(feature = "unique-runtime")]86#[cfg(feature = "unique-runtime")]88pub struct UniqueRuntimeExecutor;87pub struct UniqueRuntimeExecutor;185 }184 }186}185}187186188pub fn open_frontier_backend<Block: BlockT, C: HeaderBackend<Block>>(187pub fn open_frontier_backend<C: HeaderBackend<Block>>(189 client: Arc<C>,188 client: Arc<C>,190 config: &Configuration,189 config: &Configuration,191) -> Result<Arc<fc_db::kv::Backend<Block>>, String> {190) -> Result<Arc<fc_db::kv::Backend<Block>>, String> {210type ParachainBlockImport<RuntimeApi, ExecutorDispatch> =209type ParachainBlockImport<RuntimeApi, ExecutorDispatch> =211 TParachainBlockImport<Block, Arc<FullClient<RuntimeApi, ExecutorDispatch>>, FullBackend>;210 TParachainBlockImport<Block, Arc<FullClient<RuntimeApi, ExecutorDispatch>>, FullBackend>;212211212/// Generate a supertrait based on bounds, and blanket impl for it.213macro_rules! ez_bounds {214 ($vis:vis trait $name:ident$(<$($gen:ident $(: $($(+)? $bound:path)*)?),* $(,)?>)? $(:)? $($(+)? $super:path)* {}) => {215 $vis trait $name $(<$($gen $(: $($bound+)*)?,)*>)?: $($super +)* {}216 impl<T, $($($gen $(: $($bound+)*)?,)*)?> $name$(<$($gen,)*>)? for T217 where T: $($super +)* {}218 }219}220ez_bounds!(221 pub trait RuntimeApiDep<Runtime: RuntimeInstance>:222 sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>223 + sp_consensus_aura::AuraApi<Block, AuraId>224 + fp_rpc::EthereumRuntimeRPCApi<Block>225 + sp_session::SessionKeys<Block>226 + sp_block_builder::BlockBuilder<Block>227 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>228 + sp_api::ApiExt<Block>229 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>230 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>231 + up_pov_estimate_rpc::PovEstimateApi<Block>232 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Nonce>233 + sp_api::Metadata<Block>234 + sp_offchain::OffchainWorkerApi<Block>235 + cumulus_primitives_core::CollectCollationInfo<Block>236 // Deprecated, not used.237 + fp_rpc::ConvertTransactionRuntimeApi<Block>238 {239 }240);241213/// Starts a `ServiceBuilder` for a full service.242/// Starts a `ServiceBuilder` for a full service.214///243///215/// Use this macro if you don't actually need the full service, but just the builder in order to244/// Use this macro if you don't actually need the full service, but just the builder in order to216/// be able to perform chain operations.245/// be able to perform chain operations.217#[allow(clippy::type_complexity)]246#[allow(clippy::type_complexity)]218pub fn new_partial<RuntimeApi, ExecutorDispatch, BIQ>(247pub fn new_partial<Runtime, RuntimeApi, ExecutorDispatch, BIQ>(219 config: &Configuration,248 config: &Configuration,220 build_import_queue: BIQ,249 build_import_queue: BIQ,221) -> Result<250) -> Result<222 PartialComponents<251 PartialComponents<223 FullClient<RuntimeApi, ExecutorDispatch>,252 FullClient<RuntimeApi, ExecutorDispatch>,224 FullBackend,253 FullBackend,225 FullSelectChain,254 FullSelectChain,226 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,255 sc_consensus::DefaultImportQueue<Block>,227 sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>,256 sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>,228 OtherPartial,257 OtherPartial,229 >,258 >,235 + Send264 + Send236 + Sync265 + Sync237 + 'static,266 + 'static,238 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>,267 RuntimeApi::RuntimeApi: RuntimeApiDep<Runtime> + 'static,268 Runtime: RuntimeInstance,239 ExecutorDispatch: NativeExecutionDispatch + 'static,269 ExecutorDispatch: NativeExecutionDispatch + 'static,240 BIQ: FnOnce(270 BIQ: FnOnce(241 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,271 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,242 Arc<FullBackend>,272 Arc<FullBackend>,243 &Configuration,273 &Configuration,244 Option<TelemetryHandle>,274 Option<TelemetryHandle>,245 &TaskManager,275 &TaskManager,246 ) -> Result<276 ) -> Result<sc_consensus::DefaultImportQueue<Block>, sc_service::Error>,247 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,248 sc_service::Error,249 >,250{277{251 let telemetry = config278 let telemetry = config252 .telemetry_endpoints279 .telemetry_endpoints319 Ok(params)346 Ok(params)320}347}321348322async fn build_relay_chain_interface(323 polkadot_config: Configuration,324 parachain_config: &Configuration,325 telemetry_worker_handle: Option<TelemetryWorkerHandle>,326 task_manager: &mut TaskManager,327 collator_options: CollatorOptions,328 hwbench: Option<sc_sysinfo::HwBench>,329) -> RelayChainResult<(330 Arc<(dyn RelayChainInterface + 'static)>,331 Option<CollatorPair>,332)> {333 if collator_options.relay_chain_rpc_urls.is_empty() {334 build_inprocess_relay_chain(335 polkadot_config,336 parachain_config,337 telemetry_worker_handle,338 task_manager,339 hwbench,340 )341 } else {342 build_minimal_relay_chain_node(343 polkadot_config,344 task_manager,345 collator_options.relay_chain_rpc_urls,346 )347 .await348 }349}350351macro_rules! clone {349macro_rules! clone {352 ($($i:ident),* $(,)?) => {350 ($($i:ident),* $(,)?) => {353 $(351 $(360///358///361/// This is the actual implementation that is abstract over the executor and the runtime api.359/// This is the actual implementation that is abstract over the executor and the runtime api.362#[sc_tracing::logging::prefix_logs_with("Parachain")]360#[sc_tracing::logging::prefix_logs_with("Parachain")]363async fn start_node_impl<Runtime, RuntimeApi, ExecutorDispatch, BIQ, BIC>(361pub async fn start_node<Runtime, RuntimeApi, ExecutorDispatch>(364 parachain_config: Configuration,362 parachain_config: Configuration,365 polkadot_config: Configuration,363 polkadot_config: Configuration,366 collator_options: CollatorOptions,364 collator_options: CollatorOptions,367 id: ParaId,365 para_id: ParaId,368 build_import_queue: BIQ,369 build_consensus: BIC,370 hwbench: Option<sc_sysinfo::HwBench>,366 hwbench: Option<sc_sysinfo::HwBench>,371) -> sc_service::error::Result<(TaskManager, Arc<FullClient<RuntimeApi, ExecutorDispatch>>)>367) -> sc_service::error::Result<(TaskManager, Arc<FullClient<RuntimeApi, ExecutorDispatch>>)>372where368where378 + Send374 + Send379 + Sync375 + Sync380 + 'static,376 + 'static,381 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>377 RuntimeApi::RuntimeApi: RuntimeApiDep<Runtime> + 'static,382 + fp_rpc::EthereumRuntimeRPCApi<Block>383 + fp_rpc::ConvertTransactionRuntimeApi<Block>384 + sp_session::SessionKeys<Block>385 + sp_block_builder::BlockBuilder<Block>386 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>387 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>378 Runtime: RuntimeInstance,388 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>389 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>390 + up_pov_estimate_rpc::PovEstimateApi<Block>391 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>392 + sp_api::Metadata<Block>393 + sp_offchain::OffchainWorkerApi<Block>394 + cumulus_primitives_core::CollectCollationInfo<Block>,395 ExecutorDispatch: NativeExecutionDispatch + 'static,379 ExecutorDispatch: NativeExecutionDispatch + 'static,396 BIQ: FnOnce(397 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,398 Arc<FullBackend>,399 &Configuration,400 Option<TelemetryHandle>,401 &TaskManager,402 ) -> Result<403 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,404 sc_service::Error,405 >,406 BIC: FnOnce(407 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,408 Arc<FullBackend>,409 Option<&Registry>,410 Option<TelemetryHandle>,411 &TaskManager,412 Arc<dyn RelayChainInterface>,413 Arc<sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>>,414 Arc<SyncingService<Block>>,415 KeystorePtr,416 bool,417 ) -> Result<Box<dyn ParachainConsensus<Block>>, sc_service::Error>,418{380{419 let parachain_config = prepare_node_config(parachain_config);381 let parachain_config = prepare_node_config(parachain_config);420382421 let params =383 let params = new_partial::<Runtime, RuntimeApi, ExecutorDispatch, _>(422 new_partial::<RuntimeApi, ExecutorDispatch, BIQ>(¶chain_config, build_import_queue)?;384 ¶chain_config,385 parachain_build_import_queue,386 )?;423 let OtherPartial {387 let OtherPartial {424 mut telemetry,388 mut telemetry,425 telemetry_worker_handle,389 telemetry_worker_handle,443 .await407 .await444 .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?;408 .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?;445409446 let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface.clone(), id);410 let block_announce_validator =411 RequireSecondedInBlockAnnounce::new(relay_chain_interface.clone(), para_id);447412448 let force_authoring = parachain_config.force_authoring;449 let validator = parachain_config.role.is_authority();413 let validator = parachain_config.role.is_authority();450 let prometheus_registry = parachain_config.prometheus_registry().cloned();414 let prometheus_registry = parachain_config.prometheus_registry().cloned();451 let transaction_pool = params.transaction_pool.clone();415 let transaction_pool = params.transaction_pool.clone();531495532 let mut rpc_handle = RpcModule::new(());496 let mut rpc_handle = RpcModule::new(());533497534 let full_deps = unique_rpc::FullDeps {498 let full_deps = FullDeps {535 client: client.clone(),499 client: client.clone(),536 runtime_id,500 runtime_id,537501551 select_chain,515 select_chain,552 };516 };553517554 unique_rpc::create_full::<_, _, _, Runtime, RuntimeApi, _>(&mut rpc_handle, full_deps)?;518 create_full::<_, _, _, Runtime, RuntimeApi, _>(&mut rpc_handle, full_deps)?;555519556 let eth_deps = unique_rpc::EthDeps {520 let eth_deps = EthDeps {557 client,521 client,558 graph: transaction_pool.pool().clone(),522 graph: transaction_pool.pool().clone(),559 pool: transaction_pool,523 pool: transaction_pool,571 eth_pubsub_notification_sinks,535 eth_pubsub_notification_sinks,572 overrides,536 overrides,573 sync: sync_service.clone(),537 sync: sync_service.clone(),538 pending_create_inherent_data_providers: |_, ()| async move { Ok(()) },574 };539 };575540576 unique_rpc::create_eth(541 create_eth::<542 _,543 _,544 _,545 _,546 _,547 _,548 DefaultEthConfig<FullClient<RuntimeApi, ExecutorDispatch>>,549 >(577 &mut rpc_handle,550 &mut rpc_handle,578 eth_deps,551 eth_deps,579 subscription_task_executor.clone(),552 subscription_task_executor.clone(),624 .overseer_handle()597 .overseer_handle()625 .map_err(|e| sc_service::Error::Application(Box::new(e)))?;598 .map_err(|e| sc_service::Error::Application(Box::new(e)))?;626599600 start_relay_chain_tasks(StartRelayChainTasksParams {601 client: client.clone(),602 announce_block: announce_block.clone(),603 para_id,604 relay_chain_interface: relay_chain_interface.clone(),605 task_manager: &mut task_manager,606 da_recovery_profile: if validator {607 DARecoveryProfile::Collator608 } else {609 DARecoveryProfile::FullNode610 },611 import_queue: import_queue_service,612 relay_chain_slot_duration,613 recovery_handle: Box::new(overseer_handle.clone()),614 sync_service: sync_service.clone(),615 })?;616627 if validator {617 if validator {628 let parachain_consensus = build_consensus(618 start_consensus(629 client.clone(),619 client.clone(),630 backend.clone(),620 backend.clone(),631 prometheus_registry.as_ref(),621 prometheus_registry.as_ref(),635 transaction_pool,625 transaction_pool,636 sync_service.clone(),626 sync_service.clone(),637 params.keystore_container.keystore(),627 params.keystore_container.keystore(),638 force_authoring,628 overseer_handle,639 )?;640641 let spawner = task_manager.spawn_handle();642643 let params = StartCollatorParams {644 para_id: id,645 block_status: client.clone(),646 announce_block,647 client: client.clone(),648 task_manager: &mut task_manager,649 spawner,650 parachain_consensus,651 import_queue: import_queue_service,652 collator_key: collator_key.expect("Command line arguments do not allow this. qed"),653 relay_chain_interface,654 relay_chain_slot_duration,629 relay_chain_slot_duration,655 recovery_handle: Box::new(overseer_handle),630 para_id,656 sync_service,631 collator_key.expect("cli args do not allow this"),657 };658659 start_collator(params).await?;660 } else {661 let params = StartFullNodeParams {662 client: client.clone(),663 announce_block,632 announce_block,664 task_manager: &mut task_manager,633 )?;665 para_id: id,666 import_queue: import_queue_service,667 relay_chain_interface,668 relay_chain_slot_duration,669 recovery_handle: Box::new(overseer_handle),670 sync_service,671 };672673 start_full_node(params)?;674 }634 }675635676 start_network.start_network();636 start_network.start_network();679}639}680640681/// Build the import queue for the the parachain runtime.641/// Build the import queue for the the parachain runtime.682pub fn parachain_build_import_queue<RuntimeApi, ExecutorDispatch>(642pub fn parachain_build_import_queue<Runtime, RuntimeApi, ExecutorDispatch>(683 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,643 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,684 backend: Arc<FullBackend>,644 backend: Arc<FullBackend>,685 config: &Configuration,645 config: &Configuration,686 telemetry: Option<TelemetryHandle>,646 telemetry: Option<TelemetryHandle>,687 task_manager: &TaskManager,647 task_manager: &TaskManager,688) -> Result<648) -> Result<sc_consensus::DefaultImportQueue<Block>, sc_service::Error>689 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,690 sc_service::Error,691>692where649where693 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>650 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>694 + Send651 + Send695 + Sync652 + Sync696 + 'static,653 + 'static,697 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>654 RuntimeApi::RuntimeApi: RuntimeApiDep<Runtime> + 'static,698 + sp_block_builder::BlockBuilder<Block>699 + sp_consensus_aura::AuraApi<Block, AuraId>700 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>,655 Runtime: RuntimeInstance,701 ExecutorDispatch: NativeExecutionDispatch + 'static,656 ExecutorDispatch: NativeExecutionDispatch + 'static,702{657{703 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;658 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;732 .map_err(Into::into)687 .map_err(Into::into)733}688}734689735/// Start a normal parachain node.736pub async fn start_node<Runtime, RuntimeApi, ExecutorDispatch>(690pub fn start_consensus<ExecutorDispatch, RuntimeApi, Runtime>(737 parachain_config: Configuration,691 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,738 polkadot_config: Configuration,692 backend: Arc<FullBackend>,739 collator_options: CollatorOptions,693 prometheus_registry: Option<&Registry>,740 id: ParaId,694 telemetry: Option<TelemetryHandle>,741 hwbench: Option<sc_sysinfo::HwBench>,695 task_manager: &TaskManager,696 relay_chain_interface: Arc<dyn RelayChainInterface>,697 transaction_pool: Arc<698 sc_transaction_pool::FullPool<Block, FullClient<RuntimeApi, ExecutorDispatch>>,699 >,742) -> sc_service::error::Result<(TaskManager, Arc<FullClient<RuntimeApi, ExecutorDispatch>>)>700 sync_oracle: Arc<SyncingService<Block>>,701 keystore: KeystorePtr,702 overseer_handle: OverseerHandle,703 relay_chain_slot_duration: Duration,704 para_id: ParaId,705 collator_key: CollatorPair,706 announce_block: Arc<dyn Fn(Hash, Option<Vec<u8>>) + Send + Sync>,707) -> Result<(), sc_service::Error>743where708where744 Runtime: RuntimeInstance + Send + Sync + 'static,709 ExecutorDispatch: NativeExecutionDispatch + 'static,745 <Runtime as RuntimeInstance>::CrossAccountId: Serialize,746 for<'de> <Runtime as RuntimeInstance>::CrossAccountId: Deserialize<'de>,747 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>710 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>748 + Send711 + Send749 + Sync712 + Sync750 + 'static,713 + 'static,751 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>714 RuntimeApi::RuntimeApi: RuntimeApiDep<Runtime> + 'static,752 + fp_rpc::EthereumRuntimeRPCApi<Block>753 + fp_rpc::ConvertTransactionRuntimeApi<Block>754 + sp_session::SessionKeys<Block>755 + sp_block_builder::BlockBuilder<Block>756 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>757 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>715 Runtime: RuntimeInstance,758 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>759 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>760 + up_pov_estimate_rpc::PovEstimateApi<Block>761 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>762 + sp_api::Metadata<Block>763 + sp_offchain::OffchainWorkerApi<Block>764 + cumulus_primitives_core::CollectCollationInfo<Block>765 + sp_consensus_aura::AuraApi<Block, AuraId>,766 ExecutorDispatch: NativeExecutionDispatch + 'static,767{716{768 start_node_impl::<Runtime, RuntimeApi, ExecutorDispatch, _, _>(717 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;769 parachain_config,770 polkadot_config,771 collator_options,772 id,773 parachain_build_import_queue,774 |client,775 backend,776 prometheus_registry,777 telemetry,778 task_manager,779 relay_chain_interface,780 transaction_pool,781 sync_oracle,782 keystore,783 force_authoring| {784 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;785718786 let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording(719 let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording(787 task_manager.spawn_handle(),720 task_manager.spawn_handle(),788 client.clone(),721 client.clone(),789 transaction_pool,722 transaction_pool,790 prometheus_registry,723 prometheus_registry,791 telemetry.clone(),724 telemetry.clone(),792 );725 );726 let proposer = Proposer::new(proposer_factory);793727794 let block_import = ParachainBlockImport::new(client.clone(), backend);728 let collator_service = CollatorService::new(729 client.clone(),730 Arc::new(task_manager.spawn_handle()),731 announce_block,732 client.clone(),733 );795734796 Ok(AuraConsensus::build::<735 let block_import = ParachainBlockImport::new(client.clone(), backend);797 sp_consensus_aura::sr25519::AuthorityPair,798 _,799 _,800 _,801 _,802 _,803 _,804 >(BuildAuraConsensusParams {805 proposer_factory,806 create_inherent_data_providers: move |_, (relay_parent, validation_data)| {807 let relay_chain_interface = relay_chain_interface.clone();808 async move {809 let parachain_inherent =810 cumulus_primitives_parachain_inherent::ParachainInherentData::create_at(811 relay_parent,812 &relay_chain_interface,813 &validation_data,814 id,815 ).await;816736817 let time = sp_timestamp::InherentDataProvider::from_system_time();737 let params = BuildAuraConsensusParams {738 create_inherent_data_providers: move |_, ()| async move { Ok(()) },739 block_import,740 para_client: client,741 #[cfg(feature = "lookahead")]742 para_backend: backend,743 para_id,744 relay_client: relay_chain_interface,745 sync_oracle,746 keystore,747 slot_duration,748 proposer,749 collator_service,750 // With async-baking, we allowed to be both slower (longer authoring) and faster (multiple para blocks per relay block)751 authoring_duration: Duration::from_millis(500),752 overseer_handle,753 #[cfg(feature = "lookahead")]754 code_hash_provider: || {},755 collator_key,756 relay_chain_slot_duration,757 };818758819 let slot =759 task_manager.spawn_essential_handle().spawn(820 sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration(821 *time,822 slot_duration,823 );824825 let parachain_inherent = parachain_inherent.ok_or_else(|| {826 Box::<dyn std::error::Error + Send + Sync>::from(760 "aura",827 "Failed to create parachain inherent",828 )761 None,829 })?;762 run_aura::<_, AuraAuthorityPair, _, _, _, _, _, _, _>(params),830 Ok((slot, time, parachain_inherent))831 }832 },833 block_import,834 para_client: client,835 backoff_authoring_blocks: Option::<()>::None,836 sync_oracle,837 keystore,838 force_authoring,839 slot_duration,840 // We got around 500ms for proposing841 block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32),842 telemetry,763 );843 max_block_proposal_slot_portion: None,844 }))845 },764 Ok(())846 hwbench,847 )848 .await849}765}850766851fn dev_build_import_queue<RuntimeApi, ExecutorDispatch>(767fn dev_build_import_queue<RuntimeApi, ExecutorDispatch>(854 config: &Configuration,770 config: &Configuration,855 _: Option<TelemetryHandle>,771 _: Option<TelemetryHandle>,856 task_manager: &TaskManager,772 task_manager: &TaskManager,857) -> Result<773) -> Result<sc_consensus::DefaultImportQueue<Block>, sc_service::Error>858 sc_consensus::DefaultImportQueue<Block, FullClient<RuntimeApi, ExecutorDispatch>>,859 sc_service::Error,860>861where774where862 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>775 RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, ExecutorDispatch>>863 + Send776 + Send864 + Sync777 + Sync865 + 'static,778 + 'static,866 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>779 RuntimeApi::RuntimeApi:867 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>,780 sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block> + sp_api::ApiExt<Block>,868 ExecutorDispatch: NativeExecutionDispatch + 'static,781 ExecutorDispatch: NativeExecutionDispatch + 'static,869{782{870 Ok(sc_consensus_manual_seal::import_queue(783 Ok(sc_consensus_manual_seal::import_queue(881 pub eth_backend: Arc<fc_db::kv::Backend<Block>>,794 pub eth_backend: Arc<fc_db::kv::Backend<Block>>,882}795}883796797struct DefaultEthConfig<C>(PhantomData<C>);798impl<C> EthConfig<Block, C> for DefaultEthConfig<C>799where800 C: StorageProvider<Block, FullBackend> + Sync + Send + 'static,801{802 type EstimateGasAdapter = ();803 type RuntimeStorageOverride = SystemAccountId32StorageOverride<Block, C, FullBackend>;804}805884/// Builds a new development service. This service uses instant seal, and mocks806/// Builds a new development service. This service uses instant seal, and mocks885/// the parachain inherent807/// the parachain inherent886pub fn start_dev_node<Runtime, RuntimeApi, ExecutorDispatch>(808pub fn start_dev_node<Runtime, RuntimeApi, ExecutorDispatch>(897 + Send819 + Send898 + Sync820 + Sync899 + 'static,821 + 'static,900 RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue<Block>822 RuntimeApi::RuntimeApi: RuntimeApiDep<Runtime> + 'static,901 + fp_rpc::EthereumRuntimeRPCApi<Block>902 + fp_rpc::ConvertTransactionRuntimeApi<Block>903 + sp_session::SessionKeys<Block>904 + sp_block_builder::BlockBuilder<Block>905 + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>906 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>907 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>908 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>909 + up_pov_estimate_rpc::PovEstimateApi<Block>910 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>911 + sp_api::Metadata<Block>912 + sp_offchain::OffchainWorkerApi<Block>913 + cumulus_primitives_core::CollectCollationInfo<Block>914 + sp_consensus_aura::AuraApi<Block, AuraId>,915 ExecutorDispatch: NativeExecutionDispatch + 'static,823 ExecutorDispatch: NativeExecutionDispatch + 'static,916{824{825 use fc_consensus::FrontierBlockImport;917 use sc_consensus_manual_seal::{826 use sc_consensus_manual_seal::{918 run_manual_seal, run_delayed_finalize, EngineCommand, ManualSealParams,827 run_delayed_finalize, run_manual_seal, DelayedFinalizeParams, EngineCommand,919 DelayedFinalizeParams,828 ManualSealParams,920 };829 };921 use fc_consensus::FrontierBlockImport;922830923 let sc_service::PartialComponents {831 let sc_service::PartialComponents {924 client,832 client,935 eth_backend,843 eth_backend,936 telemetry_worker_handle: _,844 telemetry_worker_handle: _,937 },845 },938 } = new_partial::<RuntimeApi, ExecutorDispatch, _>(846 } = new_partial::<Runtime, RuntimeApi, ExecutorDispatch, _>(939 &config,847 &config,940 dev_build_import_queue::<RuntimeApi, ExecutorDispatch>,848 dev_build_import_queue::<RuntimeApi, ExecutorDispatch>,941 )?;849 )?;954 warp_sync_params: None,862 warp_sync_params: None,955 })?;863 })?;956864957 if config.offchain_worker.enabled {958 sc_service::build_offchain_workers(959 &config,960 task_manager.spawn_handle(),961 client.clone(),962 network.clone(),963 );964 }965966 let collator = config.role.is_authority();865 let collator = config.role.is_authority();967866968 let select_chain = maybe_select_chain;867 let select_chain = maybe_select_chain;114110401142 let mut rpc_module = RpcModule::new(());1041 let mut rpc_module = RpcModule::new(());114310421144 let full_deps = unique_rpc::FullDeps {1043 let full_deps = FullDeps {1145 runtime_id,1044 runtime_id,114610451147 #[cfg(feature = "pov-estimate")]1046 #[cfg(feature = "pov-estimate")]1161 select_chain,1060 select_chain,1162 };1061 };116310621164 unique_rpc::create_full::<_, _, _, Runtime, RuntimeApi, _>(&mut rpc_module, full_deps)?;1063 create_full::<_, _, _, Runtime, RuntimeApi, _>(&mut rpc_module, full_deps)?;116510641166 let eth_deps = unique_rpc::EthDeps {1065 let eth_deps = EthDeps {1167 client,1066 client,1168 graph: transaction_pool.pool().clone(),1067 graph: transaction_pool.pool().clone(),1169 pool: transaction_pool,1068 pool: transaction_pool,1181 eth_pubsub_notification_sinks,1080 eth_pubsub_notification_sinks,1182 overrides,1081 overrides,1183 sync: sync_service.clone(),1082 sync: sync_service.clone(),1083 // We don't have any inherents except parachain built-ins, which we can't even extract from inside `run_aura`.1084 pending_create_inherent_data_providers: |_, ()| async move { Ok(()) },1184 };1085 };118510861186 unique_rpc::create_eth(1087 create_eth::<1088 _,1089 _,1090 _,1091 _,1092 _,1093 _,1094 DefaultEthConfig<FullClient<RuntimeApi, ExecutorDispatch>>,1095 >(1187 &mut rpc_module,1096 &mut rpc_module,1188 eth_deps,1097 eth_deps,1189 subscription_task_executor.clone(),1098 subscription_task_executor.clone(),1241 })1150 })1242}1151}124311521244pub struct FrontierTaskParams<'a, B: BlockT, C, BE> {1153pub struct FrontierTaskParams<'a, C, B> {1245 pub task_manager: &'a TaskManager,1154 pub task_manager: &'a TaskManager,1246 pub client: Arc<C>,1155 pub client: Arc<C>,1247 pub substrate_backend: Arc<BE>,1156 pub substrate_backend: Arc<B>,1248 pub eth_backend: Arc<fc_db::kv::Backend<B>>,1157 pub eth_backend: Arc<fc_db::kv::Backend<Block>>,1249 pub eth_filter_pool: Option<FilterPool>,1158 pub eth_filter_pool: Option<FilterPool>,1250 pub overrides: Arc<OverrideHandle<B>>,1159 pub overrides: Arc<OverrideHandle<Block>>,1251 pub fee_history_limit: u64,1160 pub fee_history_limit: u64,1252 pub fee_history_cache: FeeHistoryCache,1161 pub fee_history_cache: FeeHistoryCache,1253 pub sync_strategy: SyncStrategy,1162 pub sync_strategy: SyncStrategy,1254 pub prometheus_registry: Option<Registry>,1163 pub prometheus_registry: Option<Registry>,1255}1164}125611651257pub fn spawn_frontier_tasks<B, C, BE>(1166pub fn spawn_frontier_tasks<C, B>(1258 params: FrontierTaskParams<B, C, BE>,1167 params: FrontierTaskParams<C, B>,1259 sync: Arc<SyncingService<B>>,1168 sync: Arc<SyncingService<Block>>,1260 pubsub_notification_sinks: Arc<1169 pubsub_notification_sinks: Arc<1261 EthereumBlockNotificationSinks<fc_mapping_sync::EthereumBlockNotification<B>>,1170 EthereumBlockNotificationSinks<fc_mapping_sync::EthereumBlockNotification<Block>>,1262 >,1171 >,1263) -> Arc<EthBlockDataCacheTask<B>>1172) -> Arc<EthBlockDataCacheTask<Block>>1264where1173where1265 C: ProvideRuntimeApi<B> + BlockOf,1174 C: ProvideRuntimeApi<Block> + BlockOf,1266 C: HeaderBackend<B> + HeaderMetadata<B, Error = BlockChainError> + 'static,1175 C: HeaderBackend<Block> + HeaderMetadata<Block, Error = BlockChainError> + 'static,1267 C: BlockchainEvents<B> + StorageProvider<B, BE>,1176 C: BlockchainEvents<Block> + StorageProvider<Block, B>,1268 C: Send + Sync + 'static,1177 C: Send + Sync + 'static,1269 C::Api: EthereumRuntimeRPCApi<B>,1178 C::Api: EthereumRuntimeRPCApi<Block>,1270 C::Api: BlockBuilder<B>,1179 C::Api: BlockBuilder<Block>,1271 B: BlockT<Hash = H256> + Send + Sync + 'static,1180 B: Backend<Block> + 'static,1272 B::Header: HeaderT<Number = u32>,1273 BE: Backend<B> + 'static,1274 BE::State: StateBackend<BlakeTwo256>,1181 B::State: StateBackend<BlakeTwo256>,1275{1182{1276 let FrontierTaskParams {1183 let FrontierTaskParams {1277 task_manager,1184 task_manager,node/rpc/CHANGELOG.mddiffbeforeafterbothno changes
node/rpc/Cargo.tomldiffbeforeafterbothno changes
node/rpc/src/lib.rsdiffbeforeafterbothno changes
pallets/app-promotion/Cargo.tomldiffbeforeafterboth23 # 'pallet-unique/runtime-benchmarks',23 # 'pallet-unique/runtime-benchmarks',24]24]25std = [25std = [26 'codec/std',27 'frame-benchmarking/std',26 'frame-benchmarking/std',28 'frame-support/std',27 'frame-support/std',29 'frame-system/std',28 'frame-system/std',30 'pallet-evm/std',29 'pallet-evm/std',30 'parity-scale-codec/std',31 'sp-core/std',31 'sp-core/std',32 'sp-runtime/std',32 'sp-runtime/std',33 'sp-std/std',33 'sp-std/std',39################################################################################39################################################################################40# Substrate Dependencies40# Substrate Dependencies414142# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.43codec = { workspace = true, package = "parity-scale-codec" }42parity-scale-codec = { workspace = true }4445scale-info = { workspace = true }43scale-info = { workspace = true }464468################################################################################66################################################################################69# Other67# Other706871log = { version = "0.4.16", default-features = false }69log = { version = "0.4.20", default-features = false }7270pallets/app-promotion/src/benchmarking.rsdiffbeforeafterboth161617#![cfg(feature = "runtime-benchmarks")]17#![cfg(feature = "runtime-benchmarks")]181819use super::*;19use frame_benchmarking::{account, benchmarks};20use crate::Pallet as PromototionPallet;21use frame_support::traits::fungible::Unbalanced;20use frame_support::traits::{fungible::Unbalanced, OnInitialize};22use sp_runtime::traits::Bounded;21use frame_system::RawOrigin;2324use frame_benchmarking::{benchmarks, account};22use pallet_evm_migration::Pallet as EvmMigrationPallet;25use frame_support::traits::OnInitialize;23use pallet_unique::benchmarking::create_nft_collection;26use frame_system::RawOrigin;24use sp_runtime::traits::Bounded;2527use pallet_unique::benchmarking::create_nft_collection;26use super::*;28use pallet_evm_migration::Pallet as EvmMigrationPallet;27use crate::Pallet as PromototionPallet;292830const SEED: u32 = 0;29const SEED: u32 = 0;313032fn set_admin<T>() -> Result<T::AccountId, sp_runtime::DispatchError>31fn set_admin<T>() -> Result<T::AccountId, sp_runtime::DispatchError>33where32where34 T: Config + pallet_unique::Config + pallet_evm_migration::Config,33 T: Config + pallet_unique::Config + pallet_evm_migration::Config,35 T::BlockNumber: From<u32> + Into<u32>,34 BlockNumberFor<T>: From<u32> + Into<u32>,36 BalanceOf<T>: Sum + From<u128>,35 BalanceOf<T>: Sum + From<u128>,37{36{38 let pallet_admin = account::<T::AccountId>("admin", 0, SEED);37 let pallet_admin = account::<T::AccountId>("admin", 0, SEED);53benchmarks! {52benchmarks! {54 where_clause{53 where_clause{55 where T: Config + pallet_unique::Config + pallet_evm_migration::Config ,54 where T: Config + pallet_unique::Config + pallet_evm_migration::Config ,56 T::BlockNumber: From<u32> + Into<u32>,55 BlockNumberFor<T>: From<u32> + Into<u32>,57 BalanceOf<T>: Sum + From<u128>56 BalanceOf<T>: Sum + From<u128>58 }57 }5958pallets/app-promotion/src/lib.rsdiffbeforeafterboth53pub mod types;53pub mod types;54pub mod weights;54pub mod weights;5556use sp_std::{vec::Vec, vec, iter::Sum, borrow::ToOwned, cell::RefCell};57use sp_core::H160;58use codec::EncodeLike;59pub use types::*;6061use up_data_structs::CollectionId;625563use frame_support::{56use frame_support::{64 dispatch::{DispatchResult},57 dispatch::DispatchResult,58 ensure,65 traits::{59 pallet_prelude::*,66 Get,67 tokens::Balance,60 storage::Key,61 traits::{68 fungible::{Inspect, InspectFreeze, Mutate, MutateFreeze},62 fungible::{Inspect, InspectFreeze, Mutate, MutateFreeze},63 tokens::Balance,64 Get,69 },65 },70 ensure, BoundedVec,66 weights::Weight,67 Blake2_128Concat, BoundedVec, PalletId, Twox64Concat,71};68};7273use weights::WeightInfo;69use frame_system::pallet_prelude::*;7475pub use pallet::*;70pub use pallet::*;76use pallet_evm::account::CrossAccountId;71use pallet_evm::account::CrossAccountId;72use parity_scale_codec::EncodeLike;73use sp_core::H160;77use sp_runtime::{74use sp_runtime::{78 Perbill,79 traits::{BlockNumberProvider, CheckedAdd, CheckedSub, AccountIdConversion, Zero},75 traits::{AccountIdConversion, BlockNumberProvider, CheckedAdd, CheckedSub, Zero},80 ArithmeticError, DispatchError,76 ArithmeticError, DispatchError, Perbill,81};77};78use sp_std::{borrow::ToOwned, cell::RefCell, iter::Sum, vec, vec::Vec};79pub use types::*;80use up_data_structs::CollectionId;81use weights::WeightInfo;828283const PENDING_LIMIT_PER_BLOCK: u32 = 3;83const PENDING_LIMIT_PER_BLOCK: u32 = 3;848489pub mod pallet {89pub mod pallet {9090 use super::*;91 use super::*;91 use frame_support::{92 Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key, PalletId, weights::Weight,93 };94 use frame_system::pallet_prelude::*;95 use sp_runtime::DispatchError;969297 #[pallet::config]93 #[pallet::config]98 pub trait Config:94 pub trait Config:125121126 /// In relay blocks.122 /// In relay blocks.127 #[pallet::constant]123 #[pallet::constant]128 type RecalculationInterval: Get<Self::BlockNumber>;124 type RecalculationInterval: Get<BlockNumberFor<Self>>;129125130 /// In parachain blocks.126 /// In parachain blocks.131 #[pallet::constant]127 #[pallet::constant]132 type PendingInterval: Get<Self::BlockNumber>;128 type PendingInterval: Get<BlockNumberFor<Self>>;133129134 /// Rate of return for interval in blocks defined in `RecalculationInterval`.130 /// Rate of return for interval in blocks defined in `RecalculationInterval`.135 #[pallet::constant]131 #[pallet::constant]146 type WeightInfo: WeightInfo;142 type WeightInfo: WeightInfo;147143148 // The relay block number provider144 // The relay block number provider149 type RelayBlockNumberProvider: BlockNumberProvider<BlockNumber = Self::BlockNumber>;145 type RelayBlockNumberProvider: BlockNumberProvider<BlockNumber = BlockNumberFor<Self>>;150146151 /// Events compatible with [`frame_system::Config::Event`].147 /// Events compatible with [`frame_system::Config::Event`].152 type RuntimeEvent: IsType<<Self as frame_system::Config>::RuntimeEvent> + From<Event<Self>>;148 type RuntimeEvent: IsType<<Self as frame_system::Config>::RuntimeEvent> + From<Event<Self>>;230 pub type Staked<T: Config> = StorageNMap<226 pub type Staked<T: Config> = StorageNMap<231 Key = (227 Key = (232 Key<Blake2_128Concat, T::AccountId>,228 Key<Blake2_128Concat, T::AccountId>,233 Key<Twox64Concat, T::BlockNumber>,229 Key<Twox64Concat, BlockNumberFor<T>>,234 ),230 ),235 Value = (BalanceOf<T>, T::BlockNumber),231 Value = (BalanceOf<T>, BlockNumberFor<T>),236 QueryKind = ValueQuery,232 QueryKind = ValueQuery,237 >;233 >;238234252 pub type PendingUnstake<T: Config> = StorageMap<248 pub type PendingUnstake<T: Config> = StorageMap<253 _,249 _,254 Twox64Concat,250 Twox64Concat,255 T::BlockNumber,251 BlockNumberFor<T>,256 BoundedVec<(T::AccountId, BalanceOf<T>), ConstU32<PENDING_LIMIT_PER_BLOCK>>,252 BoundedVec<(T::AccountId, BalanceOf<T>), ConstU32<PENDING_LIMIT_PER_BLOCK>>,257 ValueQuery,253 ValueQuery,258 >;254 >;262 #[pallet::storage]258 #[pallet::storage]263 #[pallet::getter(fn get_next_calculated_record)]259 #[pallet::getter(fn get_next_calculated_record)]264 pub type PreviousCalculatedRecord<T: Config> =260 pub type PreviousCalculatedRecord<T: Config> =265 StorageValue<Value = (T::AccountId, T::BlockNumber), QueryKind = OptionQuery>;261 StorageValue<Value = (T::AccountId, BlockNumberFor<T>), QueryKind = OptionQuery>;266262267 #[pallet::hooks]263 #[pallet::hooks]268 impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {264 impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {269 /// Block overflow is impossible due to the fact that the unstake algorithm in on_initialize265 /// Block overflow is impossible due to the fact that the unstake algorithm in on_initialize270 /// implies the execution of a strictly limited number of relatively lightweight operations.266 /// implies the execution of a strictly limited number of relatively lightweight operations.271 /// A separate benchmark has been implemented to scale the weight depending on the number of pendings.267 /// A separate benchmark has been implemented to scale the weight depending on the number of pendings.272 fn on_initialize(current_block_number: T::BlockNumber) -> Weight268 fn on_initialize(current_block_number: BlockNumberFor<T>) -> Weight273 where269 where274 <T as frame_system::Config>::BlockNumber: From<u32>,270 BlockNumberFor<T>: From<u32>,275 {271 {276 if T::IsMaintenanceModeEnabled::get() {272 if T::IsMaintenanceModeEnabled::get() {277 return T::DbWeight::get().reads_writes(1, 0);273 return T::DbWeight::get().reads_writes(1, 0);302 #[pallet::call]298 #[pallet::call]303 impl<T: Config> Pallet<T>299 impl<T: Config> Pallet<T>304 where300 where305 T::BlockNumber: From<u32> + Into<u32>,301 BlockNumberFor<T>: From<u32> + Into<u32>,306 <<T as Config>::Currency as Inspect<T::AccountId>>::Balance: Sum + From<u128>,302 <<T as Config>::Currency as Inspect<T::AccountId>>::Balance: Sum + From<u128>,307 {303 {308 /// Sets an address as the the admin.304 /// Sets an address as the the admin.369365370 // Calculation of the number of recalculation periods,366 // Calculation of the number of recalculation periods,371 // after how much the first interest calculation should be performed for the stake367 // after how much the first interest calculation should be performed for the stake372 let recalculate_after_interval: T::BlockNumber =368 let recalculate_after_interval: BlockNumberFor<T> =373 if block_number % config.recalculation_interval == 0u32.into() {369 if block_number % config.recalculation_interval == 0u32.into() {374 1u32.into()370 1u32.into()375 } else {371 } else {705 #[pallet::weight(<T as Config>::WeightInfo::on_initialize(PENDING_LIMIT_PER_BLOCK*pending_blocks.len() as u32))]701 #[pallet::weight(<T as Config>::WeightInfo::on_initialize(PENDING_LIMIT_PER_BLOCK*pending_blocks.len() as u32))]706 pub fn force_unstake(702 pub fn force_unstake(707 origin: OriginFor<T>,703 origin: OriginFor<T>,708 pending_blocks: Vec<T::BlockNumber>,704 pending_blocks: Vec<BlockNumberFor<T>>,709 ) -> DispatchResult {705 ) -> DispatchResult {710 ensure_root(origin)?;706 ensure_root(origin)?;711707917 /// - `staker`: staker account.913 /// - `staker`: staker account.918 pub fn total_staked_by_id_per_block(914 pub fn total_staked_by_id_per_block(919 staker: impl EncodeLike<T::AccountId>,915 staker: impl EncodeLike<T::AccountId>,920 ) -> Option<Vec<(T::BlockNumber, BalanceOf<T>)>> {916 ) -> Option<Vec<(BlockNumberFor<T>, BalanceOf<T>)>> {921 let mut staked = Staked::<T>::iter_prefix((staker,))917 let mut staked = Staked::<T>::iter_prefix((staker,))922 .map(|(block, (amount, _))| (block, amount))918 .map(|(block, (amount, _))| (block, amount))923 .collect::<Vec<_>>();919 .collect::<Vec<_>>();944 /// - `staker`: staker account.940 /// - `staker`: staker account.945 pub fn cross_id_total_staked_per_block(941 pub fn cross_id_total_staked_per_block(946 staker: T::CrossAccountId,942 staker: T::CrossAccountId,947 ) -> Vec<(T::BlockNumber, BalanceOf<T>)> {943 ) -> Vec<(BlockNumberFor<T>, BalanceOf<T>)> {948 Self::total_staked_by_id_per_block(staker.as_sub()).unwrap_or_default()944 Self::total_staked_by_id_per_block(staker.as_sub()).unwrap_or_default()949 }945 }950946951 fn recalculate_and_insert_stake(947 fn recalculate_and_insert_stake(952 staker: &T::AccountId,948 staker: &T::AccountId,953 staked_block: T::BlockNumber,949 staked_block: BlockNumberFor<T>,954 next_recalc_block: T::BlockNumber,950 next_recalc_block: BlockNumberFor<T>,955 base: BalanceOf<T>,951 base: BalanceOf<T>,956 iters: u32,952 iters: u32,957 income_acc: &mut BalanceOf<T>,953 income_acc: &mut BalanceOf<T>,979 /// Get relay block number rounded down to multiples of config.recalculation_interval.975 /// Get relay block number rounded down to multiples of config.recalculation_interval.980 /// We need it to reward stakers in integer parts of recalculation_interval976 /// We need it to reward stakers in integer parts of recalculation_interval981 fn get_current_recalc_block(977 fn get_current_recalc_block(982 current_relay_block: T::BlockNumber,978 current_relay_block: BlockNumberFor<T>,983 config: &PalletConfiguration<T>,979 config: &PalletConfiguration<T>,984 ) -> T::BlockNumber {980 ) -> BlockNumberFor<T> {985 (current_relay_block / config.recalculation_interval) * config.recalculation_interval981 (current_relay_block / config.recalculation_interval) * config.recalculation_interval986 }982 }9879831028 /// - `staker`: staker account.1024 /// - `staker`: staker account.1029 pub fn cross_id_pending_unstake_per_block(1025 pub fn cross_id_pending_unstake_per_block(1030 staker: T::CrossAccountId,1026 staker: T::CrossAccountId,1031 ) -> Vec<(T::BlockNumber, BalanceOf<T>)> {1027 ) -> Vec<(BlockNumberFor<T>, BalanceOf<T>)> {1032 let mut unsorted_res = vec![];1028 let mut unsorted_res = vec![];1033 PendingUnstake::<T>::iter().for_each(|(block, pendings)| {1029 PendingUnstake::<T>::iter().for_each(|(block, pendings)| {1034 pendings.into_iter().for_each(|(id, amount)| {1030 pendings.into_iter().for_each(|(id, amount)| {pallets/app-promotion/src/types.rsdiffbeforeafterboth1use frame_support::{dispatch::DispatchResult};1use frame_support::dispatch::DispatchResult;22use frame_system::pallet_prelude::*;3use pallet_common::CollectionHandle;3use pallet_common::CollectionHandle;45use sp_runtime::{DispatchError, Perbill};4use pallet_configuration::AppPromomotionConfigurationOverride;6use up_data_structs::{CollectionId};5use pallet_evm_contract_helpers::{Config as EvmHelpersConfig, Pallet as EvmHelpersPallet};7use sp_std::borrow::ToOwned;6use sp_core::Get;8use pallet_evm_contract_helpers::{Pallet as EvmHelpersPallet, Config as EvmHelpersConfig};7use sp_runtime::{DispatchError, Perbill};9use pallet_configuration::{AppPromomotionConfigurationOverride};8use sp_std::borrow::ToOwned;10use sp_core::Get;9use up_data_structs::CollectionId;111012const MAX_NUMBER_PAYOUTS: u8 = 100;11const MAX_NUMBER_PAYOUTS: u8 = 100;13pub(crate) const DEFAULT_NUMBER_PAYOUTS: u8 = 20;12pub(crate) const DEFAULT_NUMBER_PAYOUTS: u8 = 20;114}113}115pub(crate) struct PalletConfiguration<T: crate::Config> {114pub(crate) struct PalletConfiguration<T: crate::Config> {116 /// In relay blocks.115 /// In relay blocks.117 pub recalculation_interval: T::BlockNumber,116 pub recalculation_interval: BlockNumberFor<T>,118 /// In parachain blocks.117 /// In parachain blocks.119 pub pending_interval: T::BlockNumber,118 pub pending_interval: BlockNumberFor<T>,120 /// Value for `RecalculationInterval` based on 0.05% per 24h.119 /// Value for `RecalculationInterval` based on 0.05% per 24h.121 pub interval_income: Perbill,120 pub interval_income: Perbill,122 /// Maximum allowable number of stakers calculated per call of the `app-promotion::PayoutStakers` extrinsic.121 /// Maximum allowable number of stakers calculated per call of the `app-promotion::PayoutStakers` extrinsic.pallets/balances-adapter/Cargo.tomldiffbeforeafterboth15sp-std = { workspace = true }15sp-std = { workspace = true }161617#Parity17#Parity18codec = { workspace = true, package = "parity-scale-codec" }18parity-scale-codec = { workspace = true }19scale-info = { workspace = true }19scale-info = { workspace = true }202021# Unique21# Uniquepallets/balances-adapter/src/common.rsdiffbeforeafterboth1use alloc::{vec, vec::Vec};1use alloc::{vec, vec::Vec};2use core::marker::PhantomData;2use core::marker::PhantomData;3use crate::{Config, NativeFungibleHandle, Pallet};34use frame_support::{fail, weights::Weight};4use frame_support::{fail, weights::Weight};5use pallet_balances::{weights::SubstrateWeight as BalancesWeight, WeightInfo};5use pallet_balances::{weights::SubstrateWeight as BalancesWeight, WeightInfo};6use pallet_common::{CommonCollectionOperations, CommonWeightInfo};6use pallet_common::{CommonCollectionOperations, CommonWeightInfo};7use up_data_structs::TokenId;7use up_data_structs::TokenId;89use crate::{Config, NativeFungibleHandle, Pallet};8109pub struct CommonWeights<T: Config>(PhantomData<T>);11pub struct CommonWeights<T: Config>(PhantomData<T>);1012pallets/balances-adapter/src/erc.rsdiffbeforeafterboth1use crate::{Config, NativeFungibleHandle, Pallet, SelfWeightOf};2use evm_coder::{abi::AbiType, generate_stubgen, solidity_interface, types::*};1use evm_coder::{abi::AbiType, generate_stubgen, solidity_interface, types::*};3use pallet_balances::WeightInfo;2use pallet_balances::WeightInfo;4use pallet_common::{3use pallet_common::{10 execution::{PreDispatch, Result},9 execution::{PreDispatch, Result},11 frontier_contract, WithRecorder,10 frontier_contract, WithRecorder,12};11};13use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};12use pallet_structure::{weights::WeightInfo as _, SelfWeightOf as StructureWeight};14use sp_core::{U256, Get};13use sp_core::{Get, U256};1415use crate::{Config, NativeFungibleHandle, Pallet, SelfWeightOf};151616frontier_contract! {17frontier_contract! {17 macro_rules! NativeFungibleHandle_result {...}18 macro_rules! NativeFungibleHandle_result {...}pallets/balances-adapter/src/lib.rsdiffbeforeafterboth4use core::ops::Deref;4use core::ops::Deref;556use frame_support::sp_runtime::DispatchResult;6use frame_support::sp_runtime::DispatchResult;7use pallet_evm_coder_substrate::{WithRecorder, SubstrateRecorder};7pub use pallet::*;8pub use pallet::*;8use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};9910pub mod common;10pub mod common;11pub mod erc;11pub mod erc;55}55}56#[frame_support::pallet]56#[frame_support::pallet]57pub mod pallet {57pub mod pallet {58 use super::*;59 use alloc::string::String;58 use alloc::string::String;5960 use frame_support::{60 use frame_support::{61 dispatch::PostDispatchInfo,61 dispatch::PostDispatchInfo,62 ensure,62 ensure,63 pallet_prelude::{DispatchResultWithPostInfo, Pays},63 pallet_prelude::*,64 traits::{64 traits::{65 Get,66 fungible::{Inspect, Mutate},65 fungible::{Inspect, Mutate},67 tokens::Preservation,66 tokens::Preservation,67 Get,68 },68 },69 };69 };70 use pallet_balances::WeightInfo;70 use pallet_balances::WeightInfo;74 use sp_runtime::DispatchError;74 use sp_runtime::DispatchError;75 use up_data_structs::{budget::Budget, mapping::TokenAddressMapping};75 use up_data_structs::{budget::Budget, mapping::TokenAddressMapping};7677 use super::*;767877 #[pallet::config]79 #[pallet::config]78 pub trait Config:80 pub trait Config:pallets/collator-selection/Cargo.tomldiffbeforeafterboth12targets = ["x86_64-unknown-linux-gnu"]12targets = ["x86_64-unknown-linux-gnu"]131314[dependencies]14[dependencies]15# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.16codec = { workspace = true, package = "parity-scale-codec" }15log = { workspace = true }1718log = { workspace = true }16parity-scale-codec = { workspace = true }19rand = { version = "0.8.5", features = ["std_rng"], default-features = false }17rand = { version = "0.8.5", default-features = false }20scale-info = { workspace = true }18scale-info = { workspace = true }21serde = { workspace = true }19serde = { workspace = true }222048 "frame-system/runtime-benchmarks",46 "frame-system/runtime-benchmarks",49]47]50std = [48std = [51 "codec/std",52 "frame-benchmarking/std",49 "frame-benchmarking/std",53 "frame-support/std",50 "frame-support/std",54 "frame-system/std",51 "frame-system/std",55 "log/std",52 "log/std",56 "pallet-authorship/std",53 "pallet-authorship/std",57 "pallet-session/std",54 "pallet-session/std",55 "parity-scale-codec/std",58 "rand/std",56 "rand/std",59 "scale-info/std",57 "scale-info/std",60 "sp-consensus-aura/std",58 "sp-consensus-aura/std",pallets/collator-selection/src/benchmarking.rsdiffbeforeafterboth323233//! Benchmarking setup for pallet-collator-selection33//! Benchmarking setup for pallet-collator-selection343435use super::*;3637#[allow(unused)]38use crate::{Pallet as CollatorSelection, BalanceOf};39use frame_benchmarking::{account, benchmarks, impl_benchmark_test_suite, whitelisted_caller};35use frame_benchmarking::{account, benchmarks, impl_benchmark_test_suite, whitelisted_caller};40use frame_support::{36use frame_support::{41 assert_ok,37 assert_ok,42 codec::Decode,43 traits::{38 traits::{44 EnsureOrigin,45 fungible::{Inspect, Mutate},39 fungible::{Inspect, Mutate},46 Get,40 EnsureOrigin, Get,47 },41 },48};42};49use frame_system::{EventRecord, RawOrigin};43use frame_system::{pallet_prelude::*, EventRecord, RawOrigin};50use pallet_authorship::EventHandler;44use pallet_authorship::EventHandler;51use pallet_session::{self as session, SessionManager};45use pallet_session::{self as session, SessionManager};46use parity_scale_codec::Decode;52use sp_std::prelude::*;47use sp_std::prelude::*;4849use super::*;50#[allow(unused)]51use crate::{BalanceOf, Pallet as CollatorSelection};535254const SEED: u32 = 0;53const SEED: u32 = 0;5554317 balance_unit::<T>() * 4u32.into(),316 balance_unit::<T>() * 4u32.into(),318 );317 );319 let author = account("author", 0, SEED);318 let author = account("author", 0, SEED);320 let new_block: T::BlockNumber = 10u32.into();319 let new_block: BlockNumberFor<T>= 10u32.into();321320322 frame_system::Pallet::<T>::set_block_number(new_block);321 frame_system::Pallet::<T>::set_block_number(new_block);323 assert!(T::Currency::balance(&author) == 0u32.into());322 assert!(T::Currency::balance(&author) == 0u32.into());338 register_validators::<T>(c);337 register_validators::<T>(c);339 register_candidates::<T>(c);338 register_candidates::<T>(c);340339341 let new_block: T::BlockNumber = 1800u32.into();340 let new_block: BlockNumberFor<T>= 1800u32.into();342 let zero_block: T::BlockNumber = 0u32.into();341 let zero_block: BlockNumberFor<T> = 0u32.into();343 let candidates = <Candidates<T>>::get();342 let candidates = <Candidates<T>>::get();344343345 let non_removals = c.saturating_sub(r);344 let non_removals = c.saturating_sub(r);pallets/collator-selection/src/lib.rsdiffbeforeafterboth96 <<T as Config>::Currency as Inspect<<T as frame_system::Config>::AccountId>>::Balance;96 <<T as Config>::Currency as Inspect<<T as frame_system::Config>::AccountId>>::Balance;97#[frame_support::pallet]97#[frame_support::pallet]98pub mod pallet {98pub mod pallet {99 use super::*;100 pub use crate::weights::WeightInfo;101 use core::ops::Div;99 use core::ops::Div;100102 use frame_support::{101 use frame_support::{103 dispatch::{DispatchClass, DispatchResultWithPostInfo},102 dispatch::{DispatchClass, DispatchResultWithPostInfo},104 inherent::Vec,105 pallet_prelude::*,103 pallet_prelude::*,106 sp_runtime::traits::{AccountIdConversion, CheckedSub, Saturating, Zero},104 sp_runtime::traits::{AccountIdConversion, CheckedSub, Saturating, Zero},107 traits::{105 traits::{108 EnsureOrigin,109 fungible::{Balanced, BalancedHold, Inspect, InspectHold, Mutate, MutateHold},106 fungible::{Balanced, BalancedHold, Inspect, Mutate, MutateHold},110 ValidatorRegistration,111 tokens::{Precision, Preservation},107 tokens::{Precision, Preservation},108 EnsureOrigin, ValidatorRegistration,112 },109 },113 BoundedVec, PalletId,110 BoundedVec, PalletId,114 };111 };115 use frame_system::pallet_prelude::*;112 use frame_system::pallet_prelude::*;116 use pallet_session::SessionManager;113 use pallet_session::SessionManager;117 use sp_runtime::{Perbill, traits::Convert};114 use sp_runtime::{traits::Convert, Perbill};118 use sp_staking::SessionIndex;115 use sp_staking::SessionIndex;116 use sp_std::vec::Vec;117118 use super::*;119 pub use crate::weights::WeightInfo;119120120 /// A convertor from collators id. Since this pallet does not have stash/controller, this is121 /// A convertor from collators id. Since this pallet does not have stash/controller, this is121 /// just identity.122 /// just identity.131 pub trait Config: frame_system::Config {132 pub trait Config: frame_system::Config {132 /// Overarching event type.133 /// Overarching event type.133 type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;134 type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;135 /// Overarching hold reason.136 type RuntimeHoldReason: From<HoldReason>;137134 type Currency: Mutate<Self::AccountId>138 type Currency: Mutate<Self::AccountId>135 + MutateHold<Self::AccountId>139 + MutateHold<Self::AccountId, Reason = Self::RuntimeHoldReason>136 + BalancedHold<Self::AccountId>;140 + BalancedHold<Self::AccountId>;137141138 /// Origin that can dictate updating parameters of this pallet.142 /// Origin that can dictate updating parameters of this pallet.164 /// The weight information of this pallet.168 /// The weight information of this pallet.165 type WeightInfo: WeightInfo;169 type WeightInfo: WeightInfo;166167 #[pallet::constant]168 type LicenceBondIdentifier: Get<<Self::Currency as InspectHold<Self::AccountId>>::Reason>;169170170 type DesiredCollators: Get<u32>;171 type DesiredCollators: Get<u32>;171172172 type LicenseBond: Get<BalanceOf<Self>>;173 type LicenseBond: Get<BalanceOf<Self>>;173174174 type KickThreshold: Get<Self::BlockNumber>;175 type KickThreshold: Get<BlockNumberFor<Self>>;175 }176 }177178 #[pallet::composite_enum]179 pub enum HoldReason {180 /// The funds are held as the license bond.181 LicenseBond,182 }176183177 #[pallet::pallet]184 #[pallet::pallet]178 pub struct Pallet<T>(_);185 pub struct Pallet<T>(_);199 #[pallet::storage]206 #[pallet::storage]200 #[pallet::getter(fn last_authored_block)]207 #[pallet::getter(fn last_authored_block)]201 pub type LastAuthoredBlock<T: Config> =208 pub type LastAuthoredBlock<T: Config> =202 StorageMap<_, Twox64Concat, T::AccountId, T::BlockNumber, ValueQuery>;209 StorageMap<_, Twox64Concat, T::AccountId, BlockNumberFor<T>, ValueQuery>;203210204 #[pallet::genesis_config]211 #[pallet::genesis_config]205 pub struct GenesisConfig<T: Config> {212 pub struct GenesisConfig<T: Config> {206 pub invulnerables: Vec<T::AccountId>,213 pub invulnerables: Vec<T::AccountId>,207 }214 }208215209 #[cfg(feature = "std")]210 impl<T: Config> Default for GenesisConfig<T> {216 impl<T: Config> Default for GenesisConfig<T> {211 fn default() -> Self {217 fn default() -> Self {212 Self {218 Self {216 }222 }217223218 #[pallet::genesis_build]224 #[pallet::genesis_build]219 impl<T: Config> GenesisBuild<T> for GenesisConfig<T> {225 impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {220 fn build(&self) {226 fn build(&self) {227 use sp_std::collections::btree_set::BTreeSet;228221 let duplicate_invulnerables = self229 let duplicate_invulnerables = self.invulnerables.iter().collect::<BTreeSet<_>>();222 .invulnerables223 .iter()224 .collect::<std::collections::BTreeSet<_>>();225 assert!(230 assert!(226 duplicate_invulnerables.len() == self.invulnerables.len(),231 duplicate_invulnerables.len() == self.invulnerables.len(),227 "duplicate invulnerables in genesis."232 "duplicate invulnerables in genesis."375380376 let deposit = T::LicenseBond::get();381 let deposit = T::LicenseBond::get();377382378 T::Currency::hold(&T::LicenceBondIdentifier::get(), &who, deposit)?;383 T::Currency::hold(&HoldReason::LicenseBond.into(), &who, deposit)?;379 LicenseDepositOf::<T>::insert(who.clone(), deposit);384 LicenseDepositOf::<T>::insert(who.clone(), deposit);380385381 Self::deposit_event(Event::LicenseObtained {386 Self::deposit_event(Event::LicenseObtained {538 let remaining = deposit - slashed;543 let remaining = deposit - slashed;539544540 let (imbalance, _) =545 let (imbalance, _) =541 T::Currency::slash(&T::LicenceBondIdentifier::get(), who, slashed);546 T::Currency::slash(&HoldReason::LicenseBond.into(), who, slashed);542 deposit_returned = remaining;547 deposit_returned = remaining;543548544 T::Currency::resolve(&T::TreasuryAccountId::get(), imbalance)549 T::Currency::resolve(&T::TreasuryAccountId::get(), imbalance)548 }553 }549554550 T::Currency::release(555 T::Currency::release(551 &T::LicenceBondIdentifier::get(),556 &HoldReason::LicenseBond.into(),552 who,557 who,553 deposit_returned,558 deposit_returned,554 Precision::Exact,559 Precision::Exact,608 /// Keep track of number of authored blocks per authority, uncles are counted as well since613 /// Keep track of number of authored blocks per authority, uncles are counted as well since609 /// they're a valid proof of being online.614 /// they're a valid proof of being online.610 impl<T: Config + pallet_authorship::Config>615 impl<T: Config + pallet_authorship::Config>611 pallet_authorship::EventHandler<T::AccountId, T::BlockNumber> for Pallet<T>616 pallet_authorship::EventHandler<T::AccountId, BlockNumberFor<T>> for Pallet<T>612 {617 {613 fn note_author(author: T::AccountId) {618 fn note_author(author: T::AccountId) {614 let pot = Self::account_id();619 let pot = Self::account_id();pallets/collator-selection/src/mock.rsdiffbeforeafterboth30// See the License for the specific language governing permissions and30// See the License for the specific language governing permissions and31// limitations under the License.31// limitations under the License.323233use super::*;34use crate as collator_selection;35use frame_support::{33use frame_support::{36 ord_parameter_types, parameter_types,34 ord_parameter_types, parameter_types,37 traits::{FindAuthor, GenesisBuild, ValidatorRegistration},35 traits::{ConstU32, FindAuthor, ValidatorRegistration},38 PalletId,36 PalletId,39};37};40use frame_system as system;38use frame_system as system;41use frame_system::EnsureSignedBy;39use frame_system::EnsureSignedBy;42use sp_core::H256;40use sp_core::{ConstBool, H256};43use sp_runtime::{41use sp_runtime::{44 testing::{Header, UintAuthorityId},42 testing::UintAuthorityId,45 traits::{BlakeTwo256, IdentityLookup, OpaqueKeys},43 traits::{BlakeTwo256, IdentityLookup, OpaqueKeys},46 Perbill, RuntimeAppPublic,44 BuildStorage, Perbill, RuntimeAppPublic,47};45};484649type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;47use super::*;48use crate as collator_selection;4950type Block = frame_system::mocking::MockBlock<Test>;50type Block = frame_system::mocking::MockBlockU32<Test>;515152// Configure a mock runtime to test the pallet.52// Configure a mock runtime to test the pallet.53frame_support::construct_runtime!(53frame_support::construct_runtime!(54 pub enum Test where54 pub enum Test {55 Block = Block,56 NodeBlock = Block,57 UncheckedExtrinsic = UncheckedExtrinsic,58 {59 System: frame_system::{Pallet, Call, Config, Storage, Event<T>},55 System: frame_system,60 Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent},56 Timestamp: pallet_timestamp,61 Session: pallet_session::{Pallet, Call, Storage, Event, Config<T>},57 Session: pallet_session,62 Aura: pallet_aura::{Pallet, Storage, Config<T>},58 Aura: pallet_aura,63 Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>},59 Balances: pallet_balances,64 CollatorSelection: collator_selection::{Pallet, Call, Storage, Event<T>},60 CollatorSelection: collator_selection,65 Authorship: pallet_authorship::{Pallet, Storage},61 Authorship: pallet_authorship,66 }62 }67);63);686469parameter_types! {65parameter_types! {70 pub const BlockHashCount: u64 = 250;66 pub const BlockHashCount: u32 = 250;71 pub const SS58Prefix: u8 = 42;67 pub const SS58Prefix: u8 = 42;72}68}736974impl system::Config for Test {70impl system::Config for Test {75 type BaseCallFilter = frame_support::traits::Everything;71 type BaseCallFilter = frame_support::traits::Everything;72 type Block = Block;76 type BlockWeights = ();73 type BlockWeights = ();77 type BlockLength = ();74 type BlockLength = ();78 type DbWeight = ();75 type DbWeight = ();79 type RuntimeOrigin = RuntimeOrigin;76 type RuntimeOrigin = RuntimeOrigin;80 type RuntimeCall = RuntimeCall;77 type RuntimeCall = RuntimeCall;81 type Index = u64;78 type Nonce = u64;82 type BlockNumber = u64;83 type Hash = H256;79 type Hash = H256;84 type Hashing = BlakeTwo256;80 type Hashing = BlakeTwo256;85 type AccountId = u64;81 type AccountId = u64;86 type Lookup = IdentityLookup<Self::AccountId>;82 type Lookup = IdentityLookup<Self::AccountId>;87 type Header = Header;88 type RuntimeEvent = RuntimeEvent;83 type RuntimeEvent = RuntimeEvent;89 type BlockHashCount = BlockHashCount;84 type BlockHashCount = BlockHashCount;90 type Version = ();85 type Version = ();95 type SystemWeightInfo = ();90 type SystemWeightInfo = ();96 type SS58Prefix = SS58Prefix;91 type SS58Prefix = SS58Prefix;97 type OnSetCode = ();92 type OnSetCode = ();98 type MaxConsumers = frame_support::traits::ConstU32<16>;93 type MaxConsumers = ConstU32<16>;99}94}10095101parameter_types! {96parameter_types! {115 type MaxLocks = ();110 type MaxLocks = ();116 type MaxReserves = MaxReserves;111 type MaxReserves = MaxReserves;117 type ReserveIdentifier = [u8; 8];112 type ReserveIdentifier = [u8; 8];118 type HoldIdentifier = [u8; 16];119 type FreezeIdentifier = [u8; 16];113 type FreezeIdentifier = [u8; 16];120 type MaxHolds = MaxHolds;114 type MaxHolds = MaxHolds;121 type MaxFreezes = MaxFreezes;115 type MaxFreezes = MaxFreezes;116 type RuntimeHoldReason = RuntimeHoldReason;122}117}123118124pub struct Author4;119pub struct Author4;151 type AuthorityId = sp_consensus_aura::sr25519::AuthorityId;146 type AuthorityId = sp_consensus_aura::sr25519::AuthorityId;152 type MaxAuthorities = MaxAuthorities;147 type MaxAuthorities = MaxAuthorities;153 type DisabledValidators = ();148 type DisabledValidators = ();149 type AllowMultipleBlocksPerSlot = ConstBool<true>;154}150}155151156sp_runtime::impl_opaque_keys! {152sp_runtime::impl_opaque_keys! {168164169parameter_types! {165parameter_types! {170 pub static SessionHandlerCollators: Vec<u64> = Vec::new();166 pub static SessionHandlerCollators: Vec<u64> = Vec::new();171 pub static SessionChangeBlock: u64 = 0;167 pub static SessionChangeBlock: u32 = 0;172}168}173169174pub struct TestSessionHandler;170pub struct TestSessionHandler;175impl pallet_session::SessionHandler<u64> for TestSessionHandler {171impl pallet_session::SessionHandler<u64> for TestSessionHandler {176 const KEY_TYPE_IDS: &'static [sp_runtime::KeyTypeId] = &[UintAuthorityId::ID];172 const KEY_TYPE_IDS: &'static [sp_runtime::KeyTypeId] = &[UintAuthorityId::ID];177 fn on_genesis_session<Ks: OpaqueKeys>(keys: &[(u64, Ks)]) {173 fn on_genesis_session<Ks: OpaqueKeys>(keys: &[(u64, Ks)]) {178 SessionHandlerCollators::set(keys.into_iter().map(|(a, _)| *a).collect::<Vec<_>>())174 SessionHandlerCollators::set(keys.iter().map(|(a, _)| *a).collect::<Vec<_>>())179 }175 }180 fn on_new_session<Ks: OpaqueKeys>(_: bool, keys: &[(u64, Ks)], _: &[(u64, Ks)]) {176 fn on_new_session<Ks: OpaqueKeys>(_: bool, keys: &[(u64, Ks)], _: &[(u64, Ks)]) {181 SessionChangeBlock::set(System::block_number());177 SessionChangeBlock::set(System::block_number());182 dbg!(keys.len());178 dbg!(keys.len());183 SessionHandlerCollators::set(keys.into_iter().map(|(a, _)| *a).collect::<Vec<_>>())179 SessionHandlerCollators::set(keys.iter().map(|(a, _)| *a).collect::<Vec<_>>())184 }180 }185 fn on_before_session_ending() {}181 fn on_before_session_ending() {}186 fn on_disabled(_: u32) {}182 fn on_disabled(_: u32) {}187}183}188184189parameter_types! {185parameter_types! {190 pub const Offset: u64 = 0;186 pub const Offset: u32 = 0;191 pub const Period: u64 = 10;187 pub const Period: u32 = 10;192}188}193189194impl pallet_session::Config for Test {190impl pallet_session::Config for Test {207parameter_types! {203parameter_types! {208 pub const MaxCollators: u32 = 5;204 pub const MaxCollators: u32 = 5;209 pub const LicenseBond: u64 = 10;205 pub const LicenseBond: u64 = 10;210 pub const KickThreshold: u64 = 10;206 pub const KickThreshold: u32 = 10;211 // the following values do not matter and are meaningless, etc.207 // the following values do not matter and are meaningless, etc.212 pub const DefaultWeightToFeeCoefficient: u64 = 100_000;208 pub const DefaultWeightToFeeCoefficient: u64 = 100_000;213 pub const DefaultMinGasPrice: u64 = 100_000;209 pub const DefaultMinGasPrice: u64 = 100_000;236232237impl Config for Test {233impl Config for Test {238 type RuntimeEvent = RuntimeEvent;234 type RuntimeEvent = RuntimeEvent;235 type RuntimeHoldReason = RuntimeHoldReason;239 type UpdateOrigin = EnsureSignedBy<RootAccount, u64>;236 type UpdateOrigin = EnsureSignedBy<RootAccount, u64>;240 type PotId = PotId;237 type PotId = PotId;241 type MaxCollators = MaxCollators;238 type MaxCollators = MaxCollators;244 type ValidatorId = <Self as frame_system::Config>::AccountId;241 type ValidatorId = <Self as frame_system::Config>::AccountId;245 type ValidatorIdOf = IdentityCollator;242 type ValidatorIdOf = IdentityCollator;246 type ValidatorRegistration = IsRegistered;243 type ValidatorRegistration = IsRegistered;247 type LicenceBondIdentifier = LicenceBondIdentifier;248 type Currency = Balances;244 type Currency = Balances;249 type DesiredCollators = MaxCollators;245 type DesiredCollators = MaxCollators;250 type LicenseBond = LicenseBond;246 type LicenseBond = LicenseBond;254250255pub fn new_test_ext() -> sp_io::TestExternalities {251pub fn new_test_ext() -> sp_io::TestExternalities {256 sp_tracing::try_init_simple();252 sp_tracing::try_init_simple();257 let mut t = frame_system::GenesisConfig::default()253 let mut t = <frame_system::GenesisConfig<Test>>::default()258 .build_storage::<Test>()254 .build_storage()259 .unwrap();255 .unwrap();260 let invulnerables = vec![1, 2];256 let invulnerables = vec![1, 2];261257290 t.into()286 t.into()291}287}292288293pub fn initialize_to_block(n: u64) {289pub fn initialize_to_block(n: u32) {294 for i in System::block_number() + 1..=n {290 for i in System::block_number() + 1..=n {295 System::set_block_number(i);291 System::set_block_number(i);296 <AllPalletsWithSystem as frame_support::traits::OnInitialize<u64>>::on_initialize(i);292 <AllPalletsWithSystem as frame_support::traits::OnInitialize<u32>>::on_initialize(i);297 }293 }298}294}299295pallets/collator-selection/src/tests.rsdiffbeforeafterboth30// See the License for the specific language governing permissions and30// See the License for the specific language governing permissions and31// limitations under the License.31// limitations under the License.323233use crate::{self as collator_selection, Config};34use crate::{mock::*, Error};35use frame_support::{33use frame_support::{36 assert_noop, assert_ok,34 assert_noop, assert_ok,37 traits::{fungible, GenesisBuild, OnInitialize},35 traits::{fungible, OnInitialize},38};36};37use scale_info::prelude::*;39use sp_runtime::{traits::BadOrigin, TokenError};38use sp_runtime::{traits::BadOrigin, BuildStorage, TokenError};3940use scale_info::prelude::*;40use crate::{self as collator_selection, mock::*, Config, Error};414142fn get_license_and_onboard(account_id: <Test as frame_system::Config>::AccountId) {42fn get_license_and_onboard(account_id: <Test as frame_system::Config>::AccountId) {43 assert_ok!(CollatorSelection::get_license(RuntimeOrigin::signed(43 assert_ok!(CollatorSelection::get_license(RuntimeOrigin::signed(464#[should_panic = "duplicate invulnerables in genesis."]464#[should_panic = "duplicate invulnerables in genesis."]465fn cannot_set_genesis_value_twice() {465fn cannot_set_genesis_value_twice() {466 sp_tracing::try_init_simple();466 sp_tracing::try_init_simple();467 let mut t = frame_system::GenesisConfig::default()467 let mut t = <frame_system::GenesisConfig<Test>>::default()468 .build_storage::<Test>()468 .build_storage()469 .unwrap();469 .unwrap();470 let invulnerables = vec![1, 1];470 let invulnerables = vec![1, 1];471471pallets/common/Cargo.tomldiffbeforeafterboth5version = "0.1.14"5version = "0.1.14"667[dependencies]7[dependencies]8# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.9codec = { workspace = true, package = "parity-scale-codec" }8parity-scale-codec = { workspace = true }1011scale-info = { workspace = true }9scale-info = { workspace = true }121021sp-core = { workspace = true }19sp-core = { workspace = true }22sp-runtime = { workspace = true }20sp-runtime = { workspace = true }23sp-std = { workspace = true }21sp-std = { workspace = true }22sp-weights = { workspace = true }24up-data-structs = { workspace = true }23up-data-structs = { workspace = true }25up-pov-estimate-rpc = { workspace = true }24up-pov-estimate-rpc = { workspace = true }262527[features]26[features]28default = ["std"]27default = ["std"]29runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks", "up-data-structs/runtime-benchmarks"]28runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks", "up-data-structs/runtime-benchmarks"]30std = [29std = [30 "evm-coder/std",31 "frame-support/std",31 "frame-support/std",32 "frame-system/std",32 "frame-system/std",33 "pallet-evm/std",33 "pallet-evm/std",34 "sp-runtime/std",34 "sp-runtime/std",35 "sp-std/std",35 "sp-std/std",36 "sp-weights/std",36 "up-data-structs/std",37 "up-data-structs/std",37 "up-pov-estimate-rpc/std",38 "up-pov-estimate-rpc/std",38 "evm-coder/std",39]39]40stubgen = ["evm-coder/stubgen", "up-data-structs/stubgen"]40stubgen = ["evm-coder/stubgen", "up-data-structs/stubgen"]41tests = []41tests = []pallets/common/src/benchmarking.rsdiffbeforeafterboth161617#![allow(missing_docs)]17#![allow(missing_docs)]181819use sp_std::vec::Vec;19use core::convert::TryInto;2021use frame_benchmarking::{account, benchmarks};20use crate::{Config, CollectionHandle, Pallet};22use frame_support::{23 pallet_prelude::ConstU32,24 traits::{fungible::Balanced, tokens::Precision, Get, Imbalance},25 BoundedVec,26};21use pallet_evm::account::CrossAccountId;27use pallet_evm::account::CrossAccountId;22use frame_benchmarking::{benchmarks, account};28use sp_runtime::{traits::Zero, DispatchError};29use sp_std::vec::Vec;23use up_data_structs::{30use up_data_structs::{24 CollectionMode, CreateCollectionData, CollectionId, Property, PropertyKey, PropertyValue,31 AccessMode, CollectionId, CollectionMode, CollectionPermissions, CreateCollectionData,32 NestingPermissions, PropertiesPermissionMap, Property, PropertyKey, PropertyValue,25 CollectionPermissions, NestingPermissions, AccessMode, PropertiesPermissionMap,33 MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_COLLECTION_NAME_LENGTH, MAX_PROPERTIES_PER_ITEM,26 MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,34 MAX_TOKEN_PREFIX_LENGTH,27 MAX_PROPERTIES_PER_ITEM,28};35};3629use frame_support::{37use crate::{CollectionHandle, Config, Pallet};30 traits::{Get, fungible::Balanced, Imbalance, tokens::Precision},31 pallet_prelude::ConstU32,32 BoundedVec,33};34use core::convert::TryInto;35use sp_runtime::{DispatchError, traits::Zero};363837const SEED: u32 = 1;39const SEED: u32 = 1;3840pallets/common/src/dispatch.rsdiffbeforeafterboth223use frame_support::{3use frame_support::{4 dispatch::{4 dispatch::{5 DispatchResultWithPostInfo, PostDispatchInfo, Weight, DispatchErrorWithPostInfo,5 DispatchErrorWithPostInfo, DispatchResult, DispatchResultWithPostInfo, Pays,6 DispatchResult,6 PostDispatchInfo,7 },7 },8 dispatch::Pays,9 traits::Get,8 traits::Get,10};9};11use sp_runtime::DispatchError;10use sp_runtime::DispatchError;11use sp_weights::Weight;12use up_data_structs::{CollectionId, CreateCollectionData};12use up_data_structs::{CollectionId, CreateCollectionData};131314use crate::{pallet::Config, CommonCollectionOperations};14use crate::{pallet::Config, CommonCollectionOperations};pallets/common/src/erc.rsdiffbeforeafterboth161617//! This module contains the implementation of pallet methods for evm.17//! This module contains the implementation of pallet methods for evm.181819pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId};19pub use pallet_evm::{20 account::CrossAccountId, PrecompileHandle, PrecompileOutput, PrecompileResult,21};20use pallet_evm_coder_substrate::{22use pallet_evm_coder_substrate::{21 abi::AbiType,23 abi::AbiType,22 solidity_interface, ToLog,24 dispatch_to_evm,23 types::*,24 execution::{Result, Error, PreDispatch},25 execution::{Error, PreDispatch, Result},25 frontier_contract,26 frontier_contract, solidity_interface,27 types::*,28 ToLog,26};29};27use pallet_evm_coder_substrate::dispatch_to_evm;28use sp_std::{vec, vec::Vec};30use sp_std::{vec, vec::Vec};29use up_data_structs::{31use up_data_structs::{30 CollectionMode, CollectionPermissions, OwnerRestrictedSet, Property, SponsoringRateLimit,32 CollectionMode, CollectionPermissions, OwnerRestrictedSet, Property, SponsoringRateLimit,31 SponsorshipState,33 SponsorshipState,32};34};333534use crate::{36use crate::{35 Pallet, CollectionHandle, Config, CollectionProperties, eth, SelfWeightOf, weights::WeightInfo,37 eth, weights::WeightInfo, CollectionHandle, CollectionProperties, Config, Pallet, SelfWeightOf,36};38};373938frontier_contract! {40frontier_contract! {727729728/// Contains static property keys and values.730/// Contains static property keys and values.729pub mod static_property {731pub mod static_property {732 use alloc::format;733730 use pallet_evm_coder_substrate::{734 use pallet_evm_coder_substrate::execution::{Error, Result};731 execution::{Result, Error},732 };733 use alloc::format;734735735 const EXPECT_CONVERT_ERROR: &str = "length < limit";736 const EXPECT_CONVERT_ERROR: &str = "length < limit";736737pallets/common/src/eth.rsdiffbeforeafterboth17//! The module contains a number of functions for converting and checking ethereum identifiers.17//! The module contains a number of functions for converting and checking ethereum identifiers.181819use alloc::format;19use alloc::format;20use sp_std::{vec, vec::Vec};2021use evm_coder::{21use evm_coder::{22 AbiCoder,23 types::{Address, String},22 types::{Address, String},23 AbiCoder,24};24};25pub use pallet_evm::{Config, account::CrossAccountId};25pub use pallet_evm::{account::CrossAccountId, Config};26use pallet_evm_coder_substrate::execution::Error;26use sp_core::{H160, U256};27use sp_core::{H160, U256};27use up_data_structs::{CollectionId, CollectionFlags};28use sp_std::{vec, vec::Vec};28use pallet_evm_coder_substrate::execution::Error;29use up_data_structs::{CollectionFlags, CollectionId};293030// 0x17c4e6453Cc49AAAaEACA894e6D9683e00000001 - collection 131// 0x17c4e6453Cc49AAAaEACA894e6D9683e00000001 - collection 131// TODO: Unhardcode prefix32// TODO: Unhardcode prefixpallets/common/src/helpers.rsdiffbeforeafterboth3//! The module contains helpers.3//! The module contains helpers.4//!4//!5use frame_support::{5use frame_support::{6 dispatch::{DispatchErrorWithPostInfo, PostDispatchInfo},6 pallet_prelude::DispatchResultWithPostInfo,7 pallet_prelude::DispatchResultWithPostInfo,7 weights::Weight,8 weights::Weight,8 dispatch::{DispatchErrorWithPostInfo, PostDispatchInfo},9};9};101011/// Add weight for a `DispatchResultWithPostInfo`11/// Add weight for a `DispatchResultWithPostInfo`pallets/common/src/lib.rsdiffbeforeafterboth54extern crate alloc;54extern crate alloc;555556use core::{56use core::{57 marker::PhantomData,57 ops::{Deref, DerefMut},58 ops::{Deref, DerefMut},58 slice::from_ref,59 slice::from_ref,59 marker::PhantomData,60};60};61use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};6162use sp_std::vec::Vec;63use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};64use evm_coder::ToLog;62use evm_coder::ToLog;65use frame_support::{63use frame_support::{66 dispatch::{DispatchErrorWithPostInfo, DispatchResultWithPostInfo, Weight, PostDispatchInfo},64 dispatch::{DispatchErrorWithPostInfo, DispatchResultWithPostInfo, Pays, PostDispatchInfo},67 ensure,65 ensure, fail,68 traits::{66 traits::{69 Get,70 fungible::{Balanced, Debt, Inspect},67 fungible::{Balanced, Debt, Inspect},71 tokens::{Imbalance, Precision, Preservation},68 tokens::{Imbalance, Precision, Preservation},69 Get,72 },70 },73 dispatch::Pays,74 transactional, fail,71 transactional,75};72};73pub use pallet::*;74use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};75use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};76use sp_core::H160;77use sp_runtime::{traits::Zero, ArithmeticError, DispatchError, DispatchResult};78use sp_std::vec::Vec;79use sp_weights::Weight;76use up_data_structs::{80use up_data_structs::{77 AccessMode, COLLECTION_NUMBER_LIMIT, Collection, RpcCollection, RpcCollectionFlags,81 budget::Budget, AccessMode, Collection, CollectionId, CollectionLimits, CollectionMode,78 CollectionId, CreateItemData, MAX_TOKEN_PREFIX_LENGTH, COLLECTION_ADMINS_LIMIT, TokenId,82 CollectionPermissions, CollectionProperties as CollectionPropertiesT, CollectionStats,79 TokenChild, CollectionStats, MAX_TOKEN_OWNERSHIP, CollectionMode, NFT_SPONSOR_TRANSFER_TIMEOUT,83 CreateCollectionData, CreateItemData, CreateItemExData, PhantomType, PropertiesError,80 FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, MAX_SPONSOR_TIMEOUT,84 PropertiesPermissionMap, Property, PropertyKey, PropertyKeyPermission, PropertyPermission,81 CUSTOM_DATA_LIMIT, CollectionLimits, CreateCollectionData, SponsorshipState, CreateItemExData,85 PropertyScope, PropertyValue, RpcCollection, RpcCollectionFlags, SponsoringRateLimit,82 SponsoringRateLimit, budget::Budget, PhantomType, Property,86 SponsorshipState, TokenChild, TokenData, TokenId, TokenOwnerError, TokenProperties,83 CollectionProperties as CollectionPropertiesT, TokenProperties, PropertiesPermissionMap,87 TrySetProperty, COLLECTION_ADMINS_LIMIT, COLLECTION_NUMBER_LIMIT, CUSTOM_DATA_LIMIT,84 PropertyKey, PropertyValue, PropertyPermission, PropertiesError, TokenOwnerError,88 FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, MAX_SPONSOR_TIMEOUT, MAX_TOKEN_OWNERSHIP,85 PropertyKeyPermission, TokenData, TrySetProperty, PropertyScope, CollectionPermissions,89 MAX_TOKEN_PREFIX_LENGTH, NFT_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,86};90};87use up_pov_estimate_rpc::PovInfo;91use up_pov_estimate_rpc::PovInfo;8889pub use pallet::*;90use sp_core::H160;91use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, traits::Zero};929293#[cfg(feature = "runtime-benchmarks")]93#[cfg(feature = "runtime-benchmarks")]94pub mod benchmarking;94pub mod benchmarking;401#[frame_support::pallet]401#[frame_support::pallet]402pub mod pallet {402pub mod pallet {403403404 use super::*;405 use dispatch::CollectionDispatch;404 use dispatch::CollectionDispatch;406 use frame_support::{Blake2_128Concat, pallet_prelude::*, storage::Key, traits::StorageVersion};405 use frame_support::{406 pallet_prelude::*, storage::Key, traits::StorageVersion, Blake2_128Concat,407 };408 use scale_info::TypeInfo;407 use up_data_structs::{TokenId, mapping::TokenAddressMapping};409 use up_data_structs::{mapping::TokenAddressMapping, TokenId};408 use scale_info::TypeInfo;410 use weights::WeightInfo;411409 use weights::WeightInfo;412 use super::*;410413411 #[pallet::config]414 #[pallet::config]412 pub trait Config:415 pub trait Config:463 #[pallet::genesis_config]466 #[pallet::genesis_config]464 pub struct GenesisConfig<T>(PhantomData<T>);467 pub struct GenesisConfig<T>(PhantomData<T>);465468466 #[cfg(feature = "std")]467 impl<T: Config> Default for GenesisConfig<T> {469 impl<T: Config> Default for GenesisConfig<T> {468 fn default() -> Self {470 fn default() -> Self {469 Self(Default::default())471 Self(Default::default())470 }472 }471 }473 }472474473 #[pallet::genesis_build]475 #[pallet::genesis_build]474 impl<T: Config> GenesisBuild<T> for GenesisConfig<T> {476 impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {475 fn build(&self) {477 fn build(&self) {476 StorageVersion::new(1).put::<Pallet<T>>();478 StorageVersion::new(1).put::<Pallet<T>>();477 }479 }886888887 /// Get the value. If it is called the first time, the value will be initialized.889 /// Get the value. If it is called the first time, the value will be initialized.888 pub fn value(&mut self) -> &T {890 pub fn value(&mut self) -> &T {889 self.compute_value_if_not_already();891 self.force_value();890 self.value.as_ref().unwrap()892 self.value.as_ref().unwrap()891 }893 }892894893 /// Get the value. If it is called the first time, the value will be initialized.895 /// Get the value. If it is called the first time, the value will be initialized.894 pub fn value_mut(&mut self) -> &mut T {896 pub fn value_mut(&mut self) -> &mut T {895 self.compute_value_if_not_already();897 self.force_value();896 self.value.as_mut().unwrap()898 self.value.as_mut().unwrap()897 }899 }898900899 fn into_inner(mut self) -> T {901 fn into_inner(mut self) -> T {900 self.compute_value_if_not_already();902 self.force_value();901 self.value.unwrap()903 self.value.unwrap()902 }904 }903905906 self.value.is_some()908 self.value.is_some()907 }909 }908910909 fn compute_value_if_not_already(&mut self) {911 fn force_value(&mut self) {910 if self.value.is_none() {912 if self.value.is_none() {911 self.value = Some(self.f.take().unwrap()())913 self.value = Some(self.f.take().unwrap()())912 }914 }2721#[cfg(any(feature = "tests", test))]2723#[cfg(any(feature = "tests", test))]2722#[allow(missing_docs)]2724#[allow(missing_docs)]2723pub mod tests {2725pub mod tests {2724 use crate::{DispatchResult, DispatchError, LazyValue, Config};2726 use crate::{Config, DispatchError, DispatchResult, LazyValue};272527272726 const fn to_bool(u: u8) -> bool {2728 const fn to_bool(u: u8) -> bool {2727 u != 02729 u != 0pallets/configuration/Cargo.tomldiffbeforeafterboth4version = "0.2.0"4version = "0.2.0"556[dependencies]6[dependencies]7# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.8codec = { workspace = true, package = "parity-scale-codec" }7parity-scale-codec = { workspace = true }9810fp-evm = { workspace = true }9fp-evm = { workspace = true }11frame-benchmarking = { workspace = true, optional = true }10frame-benchmarking = { workspace = true, optional = true }16sp-arithmetic = { workspace = true }15sp-arithmetic = { workspace = true }17sp-core = { workspace = true }16sp-core = { workspace = true }18sp-io = { workspace = true }17sp-io = { workspace = true }18sp-runtime = { workspace = true }19sp-std = { workspace = true }19sp-std = { workspace = true }20up-common = { workspace = true }20staging-xcm = { workspace = true }21xcm = { workspace = true }21up-common = { workspace = true }222223hex-literal = { workspace = true }23hex-literal = { workspace = true }24log = { workspace = true }242525[features]26[features]26default = ["std"]27default = ["std"]27runtime-benchmarks = ["frame-benchmarking"]28runtime-benchmarks = ["frame-benchmarking"]28std = [29std = [29 "codec/std",30 "fp-evm/std",30 "fp-evm/std",31 "frame-benchmarking/std",31 "frame-benchmarking/std",32 "frame-support/std",32 "frame-support/std",33 "frame-system/std",33 "frame-system/std",34 "parity-scale-codec/std",34 "sp-arithmetic/std",35 "sp-arithmetic/std",35 "sp-core/std",36 "sp-core/std",37 "sp-runtime/std",36 "sp-std/std",38 "sp-std/std",37]39]38try-runtime = ["frame-support/try-runtime"]40try-runtime = ["frame-support/try-runtime"]pallets/configuration/src/benchmarking.rsdiffbeforeafterboth161617//! Benchmarking setup for pallet-configuration17//! Benchmarking setup for pallet-configuration181819use super::*;19use frame_benchmarking::benchmarks;20use frame_benchmarking::benchmarks;20use frame_support::assert_ok;21use frame_system::{EventRecord, RawOrigin};21use frame_system::{pallet_prelude::*, EventRecord, RawOrigin};2222use frame_support::assert_ok;23use super::*;232424fn assert_last_event<T: Config>(generic_event: <T as Config>::RuntimeEvent) {25fn assert_last_event<T: Config>(generic_event: <T as Config>::RuntimeEvent) {25 let events = frame_system::Pallet::<T>::events();26 let events = frame_system::Pallet::<T>::events();52 }53 }535454 set_app_promotion_configuration_override {55 set_app_promotion_configuration_override {55 let configuration: AppPromotionConfiguration<T::BlockNumber> = Default::default();56 let configuration: AppPromotionConfiguration<BlockNumberFor<T>> = Default::default();56 }: {57 }: {57 assert_ok!(58 assert_ok!(58 <Pallet<T>>::set_app_promotion_configuration_override(RawOrigin::Root.into(), configuration)59 <Pallet<T>>::set_app_promotion_configuration_override(RawOrigin::Root.into(), configuration)82 }83 }838484 set_collator_selection_kick_threshold {85 set_collator_selection_kick_threshold {85 let threshold: Option<T::BlockNumber> = Some(900u32.into());86 let threshold: Option<BlockNumberFor<T>> = Some(900u32.into());86 }: {87 }: {87 assert_ok!(88 assert_ok!(88 <Pallet<T>>::set_collator_selection_kick_threshold(RawOrigin::Root.into(), threshold)89 <Pallet<T>>::set_collator_selection_kick_threshold(RawOrigin::Root.into(), threshold)pallets/configuration/src/lib.rsdiffbeforeafterboth202021use frame_support::{21use frame_support::{22 pallet,22 pallet,23 traits::Get,23 weights::{WeightToFeePolynomial, WeightToFeeCoefficients, WeightToFeeCoefficient, Weight},24 weights::{Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial},24 traits::Get,25 Parameter,26};25};26pub use pallet::*;27use codec::{Decode, Encode, MaxEncodedLen};27use parity_scale_codec::{Decode, Encode, MaxEncodedLen};28use scale_info::TypeInfo;28use scale_info::TypeInfo;29use smallvec::smallvec;29use sp_arithmetic::{30use sp_arithmetic::{30 per_things::{Perbill, PerThing},31 per_things::{PerThing, Perbill},31 traits::{BaseArithmetic, Unsigned},32 traits::{BaseArithmetic, Unsigned},32};33};33use smallvec::smallvec;3435pub use pallet::*;36use sp_core::U256;34use sp_core::U256;373538#[cfg(feature = "runtime-benchmarks")]36#[cfg(feature = "runtime-benchmarks")]413942#[pallet]40#[pallet]43mod pallet {41mod pallet {44 use super::*;42 use core::fmt::Debug;4345 use frame_support::{44 use frame_support::{pallet_prelude::*, traits::Get};46 traits::Get,47 pallet_prelude::*,48 log,49 dispatch::{Codec, fmt::Debug},50 };51 use frame_system::{pallet_prelude::OriginFor, ensure_root, pallet_prelude::*};45 use frame_system::{ensure_root, pallet_prelude::*};46 use parity_scale_codec::Codec;52 use sp_arithmetic::{FixedPointOperand, traits::AtLeast32BitUnsigned, Permill};47 use sp_arithmetic::{traits::AtLeast32BitUnsigned, FixedPointOperand, Permill};4849 use super::*;53 pub use crate::weights::WeightInfo;50 pub use crate::weights::WeightInfo;545155 #[pallet::config]52 #[pallet::config]80 #[pallet::constant]77 #[pallet::constant]81 type AppPromotionDailyRate: Get<Perbill>;78 type AppPromotionDailyRate: Get<Perbill>;82 #[pallet::constant]79 #[pallet::constant]83 type DayRelayBlocks: Get<Self::BlockNumber>;80 type DayRelayBlocks: Get<BlockNumberFor<Self>>;848185 #[pallet::constant]82 #[pallet::constant]86 type DefaultCollatorSelectionMaxCollators: Get<u32>;83 type DefaultCollatorSelectionMaxCollators: Get<u32>;87 #[pallet::constant]84 #[pallet::constant]88 type DefaultCollatorSelectionLicenseBond: Get<Self::Balance>;85 type DefaultCollatorSelectionLicenseBond: Get<Self::Balance>;89 #[pallet::constant]86 #[pallet::constant]90 type DefaultCollatorSelectionKickThreshold: Get<Self::BlockNumber>;87 type DefaultCollatorSelectionKickThreshold: Get<BlockNumberFor<Self>>;918892 /// The weight information of this pallet.89 /// The weight information of this pallet.93 type WeightInfo: WeightInfo;90 type WeightInfo: WeightInfo;103 bond_cost: Option<T::Balance>,100 bond_cost: Option<T::Balance>,104 },101 },105 NewCollatorKickThreshold {102 NewCollatorKickThreshold {106 length_in_blocks: Option<T::BlockNumber>,103 length_in_blocks: Option<BlockNumberFor<T>>,107 },104 },108 }105 }109106134 #[pallet::genesis_config]131 #[pallet::genesis_config]135 pub struct GenesisConfig<T>(PhantomData<T>);132 pub struct GenesisConfig<T>(PhantomData<T>);136133137 #[cfg(feature = "std")]138 impl<T: Config> Default for GenesisConfig<T> {134 impl<T: Config> Default for GenesisConfig<T> {139 fn default() -> Self {135 fn default() -> Self {140 Self(Default::default())136 Self(Default::default())141 }137 }142 }138 }143139144 #[pallet::genesis_build]140 #[pallet::genesis_build]145 impl<T: Config> GenesisBuild<T> for GenesisConfig<T> {141 impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {146 fn build(&self) {142 fn build(&self) {147 update_base_fee::<T>();143 update_base_fee::<T>();148 }144 }166162167 #[pallet::storage]163 #[pallet::storage]168 pub type AppPromomotionConfigurationOverride<T: Config> =164 pub type AppPromomotionConfigurationOverride<T: Config> =169 StorageValue<Value = AppPromotionConfiguration<T::BlockNumber>, QueryKind = ValueQuery>;165 StorageValue<Value = AppPromotionConfiguration<BlockNumberFor<T>>, QueryKind = ValueQuery>;170166171 #[pallet::storage]167 #[pallet::storage]172 pub type CollatorSelectionDesiredCollatorsOverride<T: Config> = StorageValue<168 pub type CollatorSelectionDesiredCollatorsOverride<T: Config> = StorageValue<184180185 #[pallet::storage]181 #[pallet::storage]186 pub type CollatorSelectionKickThresholdOverride<T: Config> = StorageValue<182 pub type CollatorSelectionKickThresholdOverride<T: Config> = StorageValue<187 Value = T::BlockNumber,183 Value = BlockNumberFor<T>,188 QueryKind = ValueQuery,184 QueryKind = ValueQuery,189 OnEmpty = T::DefaultCollatorSelectionKickThreshold,185 OnEmpty = T::DefaultCollatorSelectionKickThreshold,190 >;186 >;228 #[pallet::weight(T::WeightInfo::set_app_promotion_configuration_override())]224 #[pallet::weight(T::WeightInfo::set_app_promotion_configuration_override())]229 pub fn set_app_promotion_configuration_override(225 pub fn set_app_promotion_configuration_override(230 origin: OriginFor<T>,226 origin: OriginFor<T>,231 mut configuration: AppPromotionConfiguration<T::BlockNumber>,227 mut configuration: AppPromotionConfiguration<BlockNumberFor<T>>,232 ) -> DispatchResult {228 ) -> DispatchResult {233 ensure_root(origin)?;229 ensure_root(origin)?;234 if configuration.interval_income.is_some() {230 if configuration.interval_income.is_some() {287 #[pallet::weight(T::WeightInfo::set_collator_selection_kick_threshold())]283 #[pallet::weight(T::WeightInfo::set_collator_selection_kick_threshold())]288 pub fn set_collator_selection_kick_threshold(284 pub fn set_collator_selection_kick_threshold(289 origin: OriginFor<T>,285 origin: OriginFor<T>,290 threshold: Option<T::BlockNumber>,286 threshold: Option<BlockNumberFor<T>>,291 ) -> DispatchResult {287 ) -> DispatchResult {292 ensure_root(origin)?;288 ensure_root(origin)?;293 if let Some(threshold) = threshold {289 if let Some(threshold) = threshold {pallets/evm-coder-substrate/Cargo.tomldiffbeforeafterboth5version = "0.1.3"5version = "0.1.3"667[dependencies]7[dependencies]8# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.9codec = { workspace = true, package = "parity-scale-codec" }8parity-scale-codec = { workspace = true }10scale-info = { workspace = true }9scale-info = { workspace = true }111012evm-coder = { workspace = true }11evm-coder = { workspace = true }18pallet-evm = { workspace = true }17pallet-evm = { workspace = true }19sp-core = { workspace = true }18sp-core = { workspace = true }20sp-std = { workspace = true }19sp-std = { workspace = true }20sp-weights = { workspace = true }21up-data-structs = { workspace = true }21up-data-structs = { workspace = true }222223evm-coder-substrate-procedural = { path = "./procedural" }23evm-coder-substrate-procedural = { path = "./procedural" }24spez = "0.1.1"24spez = "0.1.2"252526[features]26[features]27default = ["std"]27default = ["std"]33 "pallet-evm/std",33 "pallet-evm/std",34 "sp-core/std",34 "sp-core/std",35 "sp-std/std",35 "sp-std/std",36 "sp-weights/std",36 'frame-benchmarking/std',37 'frame-benchmarking/std',37]38]38try-runtime = ["frame-support/try-runtime"]39try-runtime = ["frame-support/try-runtime"]pallets/evm-coder-substrate/procedural/src/lib.rsdiffbeforeafterboth1use std::result;1use std::result;223use proc_macro2::{TokenStream, Ident};3use proc_macro2::{Ident, TokenStream};4use quote::quote;4use quote::quote;5use syn::{5use syn::{6 Error, DeriveInput, Data, Attribute,6 parenthesized,7 parse::{Parse, ParseBuffer},7 parse::{Parse, ParseBuffer},8 spanned::Spanned,8 spanned::Spanned,9 Expr, parenthesized,9 Attribute, Data, DeriveInput, Error, Expr,10};10};111112type Result<T = TokenStream, E = syn::Error> = result::Result<T, E>;12type Result<T = TokenStream, E = syn::Error> = result::Result<T, E>;pallets/evm-coder-substrate/src/execution.rsdiffbeforeafterboth22use std::string::{String, ToString};22use std::string::{String, ToString};232324use evm_coder::ERC165Call;24use evm_coder::ERC165Call;25pub use evm_coder_substrate_procedural::PreDispatch;25use evm_core::{ExitError, ExitFatal};26use evm_core::{ExitError, ExitFatal};2627pub use frame_support::weights::Weight;27pub use frame_support::weights::Weight;28pub use evm_coder_substrate_procedural::PreDispatch;292830/// Execution error, should be convertible between EVM and Substrate.29/// Execution error, should be convertible between EVM and Substrate.31#[derive(Debug, Clone)]30#[derive(Debug, Clone)]pallets/evm-coder-substrate/src/lib.rsdiffbeforeafterboth22extern crate alloc;22extern crate alloc;23#[cfg(not(feature = "std"))]23#[cfg(not(feature = "std"))]24use alloc::format;24use alloc::format;25use core::marker::PhantomData;2625use execution::PreDispatch;27use execution::PreDispatch;26use frame_support::dispatch::Weight;28use frame_support::{2729 ensure, pallet_prelude::DispatchError, sp_runtime::ModuleError, traits::PalletInfo,30};28use core::marker::PhantomData;31use pallet_evm::{32 ExitError, ExitRevert, ExitSucceed, GasWeightMapping, PrecompileFailure, PrecompileHandle,33 PrecompileOutput, PrecompileResult,34};35use parity_scale_codec::Decode;36use sp_core::{Get, H160};29use sp_std::{cell::RefCell, vec::Vec};37use sp_std::{cell::RefCell, vec::Vec};3031use codec::Decode;38use sp_weights::Weight;32use frame_support::pallet_prelude::DispatchError;33use frame_support::traits::PalletInfo;34use frame_support::{ensure, sp_runtime::ModuleError};35use up_data_structs::budget;39use up_data_structs::budget;36use pallet_evm::{37 ExitError, ExitRevert, ExitSucceed, GasWeightMapping, PrecompileFailure, PrecompileOutput,38 PrecompileResult, PrecompileHandle,39};40use sp_core::{Get, H160};41// #[cfg(feature = "runtime-benchmarks")]40// #[cfg(feature = "runtime-benchmarks")]42// pub mod benchmarking;41// pub mod benchmarking;43pub mod execution;42pub mod execution;444345#[doc(hidden)]46pub use spez::spez;44pub use evm_coder::{abi, solidity_interface, types, Contract, ResultWithPostInfoOf, ToLog};4748use evm_coder::{45use evm_coder::{49 types::{Msg, Value},46 types::{Msg, Value},50 AbiEncode,47 AbiEncode,51};48};5253pub use pallet::*;49pub use pallet::*;50#[doc(hidden)]54pub use evm_coder::{ResultWithPostInfoOf, Contract, abi, solidity_interface, ToLog, types};51pub use spez::spez;555256#[frame_support::pallet]53#[frame_support::pallet]57pub mod pallet {54pub mod pallet {58 use super::*;5960 pub use frame_support::dispatch::DispatchResult;55 pub use frame_support::dispatch::DispatchResult;5657 use super::*;615862 /// DispatchError is opaque, but we need to somehow extract correct error in case of OutOfGas failure59 /// DispatchError is opaque, but we need to somehow extract correct error in case of OutOfGas failure63 /// So we have this pallet, which defines OutOfGas error, and knews its own id to check if DispatchError60 /// So we have this pallet, which defines OutOfGas error, and knews its own id to check if DispatchErrorpallets/evm-contract-helpers/Cargo.tomldiffbeforeafterboth18up-sponsorship = { workspace = true }18up-sponsorship = { workspace = true }191920# Locals20# Locals21# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.22codec = { workspace = true, package = "parity-scale-codec" }21evm-coder = { workspace = true }2324evm-coder = { workspace = true }22pallet-common = { workspace = true }25pallet-common = { workspace = true }23pallet-evm-coder-substrate = { workspace = true }26pallet-evm-coder-substrate = { workspace = true }24pallet-evm-transaction-payment = { workspace = true }27pallet-evm-transaction-payment = { workspace = true }25parity-scale-codec = { workspace = true }28up-data-structs = { workspace = true, features = ['serde1'] }26up-data-structs = { workspace = true, features = ['serde1'] }292730[features]28[features]pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth20use core::marker::PhantomData;20use core::marker::PhantomData;2121use evm_coder::{22use evm_coder::{22 abi::{AbiType, AbiEncode},23 abi::{AbiEncode, AbiType},23 generate_stubgen, solidity_interface,24 generate_stubgen, solidity_interface,24 types::*,25 types::*,25 ToLog,26 ToLog,26};27};28use frame_support::traits::Get;29use frame_system::pallet_prelude::*;27use pallet_common::eth;30use pallet_common::eth;28use pallet_evm::{31use pallet_evm::{29 ExitRevert, OnCreate, OnMethodCall, PrecompileResult, PrecompileFailure, PrecompileHandle,32 account::CrossAccountId, ExitRevert, OnCreate, OnMethodCall, PrecompileFailure,30 account::CrossAccountId,33 PrecompileHandle, PrecompileResult,31};34};32use pallet_evm_coder_substrate::{35use pallet_evm_coder_substrate::{33 SubstrateRecorder, WithRecorder, dispatch_to_evm,36 dispatch_to_evm,34 execution::{Result, PreDispatch},37 execution::{PreDispatch, Result},35 frontier_contract,38 frontier_contract, SubstrateRecorder, WithRecorder,36};39};37use pallet_evm_transaction_payment::CallContext;40use pallet_evm_transaction_payment::CallContext;38use sp_core::{H160, U256};41use sp_core::{H160, U256};42use sp_std::vec::Vec;39use up_data_structs::SponsorshipState;43use up_data_structs::SponsorshipState;44use up_sponsorship::SponsorshipHandler;4540use crate::{46use crate::{41 AllowlistEnabled, Config, Owner, Pallet, SponsorBasket, SponsoringFeeLimit,47 AllowlistEnabled, Config, Owner, Pallet, SponsorBasket, Sponsoring, SponsoringFeeLimit,42 SponsoringRateLimit, SponsoringModeT, Sponsoring,48 SponsoringModeT, SponsoringRateLimit,43};49};44use frame_support::traits::Get;45use up_sponsorship::SponsorshipHandler;46use sp_std::vec::Vec;475048frontier_contract! {51frontier_contract! {49 macro_rules! ContractHelpers_result {...}52 macro_rules! ContractHelpers_result {...}422 {425 {423 return None;426 return None;424 }427 }425 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;428 let block_number = <frame_system::Pallet<T>>::block_number() as BlockNumberFor<T>;426429427 if let Some(last_tx_block) = <SponsorBasket<T>>::get(contract_address, who.as_eth()) {430 if let Some(last_tx_block) = <SponsorBasket<T>>::get(contract_address, who.as_eth()) {428 let limit = <SponsoringRateLimit<T>>::get(contract_address);431 let limit = <SponsoringRateLimit<T>>::get(contract_address);pallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth18#![cfg_attr(not(feature = "std"), no_std)]18#![cfg_attr(not(feature = "std"), no_std)]19#![warn(missing_docs)]19#![warn(missing_docs)]202021use codec::{Decode, Encode, MaxEncodedLen};21pub use eth::*;22use evm_coder::AbiCoder;22use evm_coder::AbiCoder;23use frame_support::storage::bounded_btree_map::BoundedBTreeMap;23pub use pallet::*;24pub use pallet::*;24pub use eth::*;25use parity_scale_codec::{Decode, Encode, MaxEncodedLen};25use scale_info::TypeInfo;26use scale_info::TypeInfo;26use frame_support::storage::bounded_btree_map::BoundedBTreeMap;27pub mod eth;27pub mod eth;282829/// Maximum number of methods per contract that could have fee limit29/// Maximum number of methods per contract that could have fee limit30pub const MAX_FEE_LIMITED_METHODS: u32 = 5;30pub const MAX_FEE_LIMITED_METHODS: u32 = 5;313132#[frame_support::pallet]32#[frame_support::pallet]33pub mod pallet {33pub mod pallet {34 pub use super::*;34 use evm_coder::ToLog;35 use frame_support::{pallet_prelude::*, sp_runtime::DispatchResult};35 use frame_support::{pallet_prelude::*, sp_runtime::DispatchResult};36 use frame_system::{pallet_prelude::OriginFor, ensure_root};36 use frame_system::{ensure_root, pallet_prelude::*};37 use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};37 use sp_core::{H160, U256};38 use sp_core::{H160, U256};38 use sp_std::vec::Vec;39 use sp_std::vec::Vec;39 use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};40 use up_data_structs::SponsorshipState;40 use up_data_structs::SponsorshipState;4141 use evm_coder::ToLog;42 pub use super::*;424343 #[pallet::config]44 #[pallet::config]44 pub trait Config:45 pub trait Config:535454 /// In case of enabled sponsoring, but no sponsoring rate limit set,55 /// In case of enabled sponsoring, but no sponsoring rate limit set,55 /// this value will be used implicitly56 /// this value will be used implicitly56 type DefaultSponsoringRateLimit: Get<Self::BlockNumber>;57 type DefaultSponsoringRateLimit: Get<BlockNumberFor<Self>>;57 }58 }585959 #[pallet::error]60 #[pallet::error]115 pub(super) type SponsoringRateLimit<T: Config> = StorageMap<116 pub(super) type SponsoringRateLimit<T: Config> = StorageMap<116 Hasher = Twox128,117 Hasher = Twox128,117 Key = H160,118 Key = H160,118 Value = T::BlockNumber,119 Value = BlockNumberFor<T>,119 QueryKind = ValueQuery,120 QueryKind = ValueQuery,120 OnEmpty = T::DefaultSponsoringRateLimit,121 OnEmpty = T::DefaultSponsoringRateLimit,121 >;122 >;139 Key1 = H160,140 Key1 = H160,140 Hasher2 = Twox128,141 Hasher2 = Twox128,141 Key2 = H160,142 Key2 = H160,142 Value = T::BlockNumber,143 Value = BlockNumberFor<T>,143 QueryKind = OptionQuery,144 QueryKind = OptionQuery,144 >;145 >;145146393 }394 }394395395 /// Set duration between two sponsored contract calls396 /// Set duration between two sponsored contract calls396 pub fn set_sponsoring_rate_limit(contract: H160, rate_limit: T::BlockNumber) {397 pub fn set_sponsoring_rate_limit(contract: H160, rate_limit: BlockNumberFor<T>) {397 <SponsoringRateLimit<T>>::insert(contract, rate_limit);398 <SponsoringRateLimit<T>>::insert(contract, rate_limit);398 }399 }399400pallets/evm-migration/Cargo.tomldiffbeforeafterboth5version = "0.1.1"5version = "0.1.1"667[dependencies]7[dependencies]8# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.9codec = { workspace = true, package = "parity-scale-codec" }1011ethereum = { workspace = true }8ethereum = { workspace = true }12frame-benchmarking = { workspace = true, optional = true }9frame-benchmarking = { workspace = true, optional = true }13frame-support = { workspace = true }10frame-support = { workspace = true }14frame-system = { workspace = true }11frame-system = { workspace = true }15pallet-evm = { workspace = true }12pallet-evm = { workspace = true }13parity-scale-codec = { workspace = true }16scale-info = { workspace = true }14scale-info = { workspace = true }17sp-core = { workspace = true }15sp-core = { workspace = true }18sp-std = { workspace = true }16sp-io = { workspace = true }19sp-io = { workspace = true }17sp-std = { workspace = true }201821[features]19[features]22default = ["runtime-benchmarks", "std"]20default = ["runtime-benchmarks", "std"]23runtime-benchmarks = ["frame-benchmarking"]21runtime-benchmarks = ["frame-benchmarking"]24std = ["frame-benchmarking/std", "frame-support/std", "frame-system/std", "pallet-evm/std", "sp-core/std", "sp-std/std", "sp-io/std"]22std = [23 "frame-benchmarking/std",24 "frame-support/std",25 "frame-system/std",26 "pallet-evm/std",27 "sp-core/std",28 "sp-io/std",29 "sp-std/std",30]25try-runtime = ["frame-support/try-runtime"]31try-runtime = ["frame-support/try-runtime"]pallets/evm-migration/src/benchmarking.rsdiffbeforeafterboth161617#![allow(missing_docs)]17#![allow(missing_docs)]181819use super::{Call, Config, Pallet};20use frame_benchmarking::benchmarks;19use frame_benchmarking::benchmarks;21use frame_system::RawOrigin;20use frame_system::RawOrigin;22use sp_core::{H160, H256};21use sp_core::{H160, H256};23use sp_std::{vec::Vec, vec};22use sp_std::{vec, vec::Vec};2324use super::{Call, Config, Pallet};242525benchmarks! {26benchmarks! {26 where_clause { where <T as Config>::RuntimeEvent: codec::Encode }27 where_clause { where <T as Config>::RuntimeEvent: parity_scale_codec::Encode }272828 begin {29 begin {29 }: _(RawOrigin::Root, H160::default())30 }: _(RawOrigin::Root, H160::default())596060 insert_events {61 insert_events {61 let b in 0..200;62 let b in 0..200;62 use codec::Encode;63 use parity_scale_codec::Encode;63 let logs = (0..b).map(|_| <T as Config>::RuntimeEvent::from(crate::Event::<T>::TestEvent).encode()).collect::<Vec<_>>();64 let logs = (0..b).map(|_| <T as Config>::RuntimeEvent::from(crate::Event::<T>::TestEvent).encode()).collect::<Vec<_>>();64 }: _(RawOrigin::Root, logs)65 }: _(RawOrigin::Root, logs)65}66}pallets/evm-migration/src/lib.rsdiffbeforeafterboth27#[frame_support::pallet]27#[frame_support::pallet]28pub mod pallet {28pub mod pallet {29 use frame_support::{29 use frame_support::{pallet_prelude::*, traits::IsType};30 pallet_prelude::{*, DispatchResult},31 traits::IsType,32 };33 use frame_system::pallet_prelude::{*, OriginFor};30 use frame_system::pallet_prelude::*;31 use pallet_evm::{Pallet as PalletEvm, PrecompileHandle};34 use sp_core::{H160, H256};32 use sp_core::{H160, H256};35 use sp_std::vec::Vec;33 use sp_std::vec::Vec;3436 use super::weights::WeightInfo;35 use super::weights::WeightInfo;37 use pallet_evm::{PrecompileHandle, Pallet as PalletEvm};383639 #[pallet::config]37 #[pallet::config]40 pub trait Config: frame_system::Config + pallet_evm::Config {38 pub trait Config: frame_system::Config + pallet_evm::Config {pallets/evm-transaction-payment/Cargo.tomldiffbeforeafterboth5version = "0.1.1"5version = "0.1.1"667[dependencies]7[dependencies]8# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.9codec = { workspace = true, package = "parity-scale-codec" }8parity-scale-codec = { workspace = true }1011scale-info = { workspace = true }9scale-info = { workspace = true }1210pallets/evm-transaction-payment/src/lib.rsdiffbeforeafterboth202021use core::marker::PhantomData;21use core::marker::PhantomData;2222use fp_evm::WithdrawReason;23use fp_evm::{CheckEvmTransaction, FeeCalculator, TransactionValidationError, WithdrawReason};23use frame_support::traits::IsSubType;24use frame_support::{25 storage::with_transaction,26 traits::{Currency, Imbalance, IsSubType, OnUnbalanced},27};24pub use pallet::*;28pub use pallet::*;25use pallet_evm::{account::CrossAccountId, EnsureAddressOrigin};29use pallet_evm::{30 account::CrossAccountId, EnsureAddressOrigin, NegativeImbalanceOf, OnChargeEVMTransaction,31 OnCheckEvmTransaction,32};26use sp_core::{H160, U256};33use sp_core::{H160, U256};27use sp_runtime::{TransactionOutcome, DispatchError};34use sp_runtime::{traits::UniqueSaturatedInto, DispatchError, TransactionOutcome};28use up_sponsorship::SponsorshipHandler;35use up_sponsorship::SponsorshipHandler;293630#[frame_support::pallet]37#[frame_support::pallet]31pub mod pallet {38pub mod pallet {32 use super::*;3334 use sp_std::vec::Vec;39 use sp_std::vec::Vec;4041 use super::*;354236 /// Contains call data43 /// Contains call data37 pub struct CallContext {44 pub struct CallContext {53 pub struct Pallet<T>(_);60 pub struct Pallet<T>(_);54}61}556256/// Implements [`fp_evm::TransactionValidityHack`], which provides sponsor address to pallet-evm57pub struct TransactionValidityHack<T: Config>(PhantomData<*const T>);58impl<T: Config> fp_evm::TransactionValidityHack<T::CrossAccountId> for TransactionValidityHack<T> {63fn who_pays_fee<T: Config>(59 fn who_pays_fee(60 origin: H160,64 origin: H160,61 max_fee: U256,65 max_fee: U256,62 reason: &WithdrawReason,66 reason: &WithdrawReason,63 ) -> Option<T::CrossAccountId> {67) -> Option<T::CrossAccountId> {64 match reason {68 match reason {65 WithdrawReason::Call { target, input } => {69 WithdrawReason::Call { target, input, .. } => {66 let origin_sub = T::CrossAccountId::from_eth(origin);70 let origin_sub = T::CrossAccountId::from_eth(origin);67 let call_context = CallContext {71 let call_context = CallContext {68 contract_address: *target,72 contract_address: *target,74 _ => None,78 _ => None,75 }79 }76 }80}77}817882fn get_sponsor<T: Config>(83 source: H160,84 max_fee_per_gas: Option<U256>,85 gas_limit: u64,86 reason: &WithdrawReason,87 is_transactional: bool,88 is_check: bool,89) -> Option<T::CrossAccountId> {90 let accept_gas_fee = |gas_fee| {91 let (base_fee, _) = T::FeeCalculator::min_gas_price();92 // Metamask specifies base fee twice as much as chain reported minGasPrice93 // But we allow further leeway (why?), sponsored base_fee to be 2.1*minGasPrice, thus 21/10.94 base_fee <= gas_fee && gas_fee <= base_fee * 21 / 1095 };96 let (max_fee_per_gas, may_sponsor) = match (max_fee_per_gas, is_transactional) {97 (Some(max_fee_per_gas), _) => (max_fee_per_gas, accept_gas_fee(max_fee_per_gas)),98 // Gas price check is skipped for non-transactional calls that don't99 // define a `max_fee_per_gas` input.100 (None, false) => (Default::default(), true),101 _ => return None,102 };103104 let max_fee = max_fee_per_gas.saturating_mul(gas_limit.into());105106 // #[cfg(feature = "debug-logging")]107 // log::trace!(target: "sponsoring", "checking who will pay fee for {:?} {:?}", source, reason);108 with_transaction(|| {109 let result = may_sponsor110 .then(|| who_pays_fee::<T>(source, max_fee, reason))111 .flatten();112 if is_check {113 TransactionOutcome::Rollback(Ok::<_, DispatchError>(result))114 } else {115 TransactionOutcome::Commit(Ok(result))116 }117 })118 .ok()119 .flatten()120}79/// Implements sponsoring for evm calls performed from pallet-evm (via api.tx.ethereum.transact/api.tx.evm.call)121/// Implements sponsoring for evm calls performed from pallet-evm (via api.tx.ethereum.transact/api.tx.evm.call)80pub struct BridgeSponsorshipHandler<T>(PhantomData<T>);122pub struct BridgeSponsorshipHandler<T>(PhantomData<T>);81impl<T, C> SponsorshipHandler<T::AccountId, C> for BridgeSponsorshipHandler<T>123impl<T, C> SponsorshipHandler<T::AccountId, C> for BridgeSponsorshipHandler<T>121 }163 }122}164}165166/// Set transaction sponsor if available and enough balance.167pub struct TransactionValidity<T>(PhantomData<T>);168impl<T: Config> OnCheckEvmTransaction<T> for TransactionValidity<T> {169 fn on_check_evm_transaction(170 v: &mut CheckEvmTransaction,171 origin: &T::CrossAccountId,172 ) -> Result<(), TransactionValidationError> {173 let who = &v.who;174 let max_fee_per_gas = Some(v.transaction_fee_input()?.0);175 let gas_limit = v.transaction.gas_limit.low_u64();176 let reason = if let Some(to) = v.transaction.to {177 WithdrawReason::Call {178 target: to,179 input: v.transaction.input.clone(),180 max_fee_per_gas,181 gas_limit,182 is_transactional: v.config.is_transactional,183 is_check: true,184 }185 } else {186 WithdrawReason::Create187 };188 let sponsor = get_sponsor::<T>(189 *origin.as_eth(),190 max_fee_per_gas,191 gas_limit,192 &reason,193 v.config.is_transactional,194 true,195 )196 .as_ref()197 .map(pallet_evm::Pallet::<T>::account_basic_by_id)198 .map(|v| v.0);199 let fee = max_fee_per_gas200 .unwrap()201 .saturating_mul(v.transaction.gas_limit);202 if let Some(sponsor) = sponsor.as_ref() {203 if who.balance < v.transaction.value || sponsor.balance < fee {204 return Err(TransactionValidationError::BalanceTooLow);205 }206 } else {207 let total_payment = v.transaction.value.saturating_add(fee);208 if who.balance < total_payment {209 return Err(TransactionValidationError::BalanceTooLow);210 }211 }212213 let who = sponsor.unwrap_or_else(|| v.who.clone());214 v.who.balance = who.balance;215 Ok(())216 }217}218219/// Implements the transaction payment for a pallet implementing the `Currency`220/// trait (eg. the pallet_balances) using an unbalance handler (implementing221/// `OnUnbalanced`).222/// Similar to `CurrencyAdapter` of `pallet_transaction_payment`223pub struct WrappedEVMCurrencyAdapter<C, OU>(sp_std::marker::PhantomData<(C, OU)>);224impl<T, C, OU> OnChargeEVMTransaction<T> for WrappedEVMCurrencyAdapter<C, OU>225where226 T: Config,227 C: Currency<<T as frame_system::Config>::AccountId>,228 C::PositiveImbalance: Imbalance<229 <C as Currency<<T as frame_system::Config>::AccountId>>::Balance,230 Opposite = C::NegativeImbalance,231 >,232 C::NegativeImbalance: Imbalance<233 <C as Currency<<T as frame_system::Config>::AccountId>>::Balance,234 Opposite = C::PositiveImbalance,235 >,236 OU: OnUnbalanced<NegativeImbalanceOf<C, T>>,237 U256: UniqueSaturatedInto<<C as Currency<<T as frame_system::Config>::AccountId>>::Balance>,238{239 // Kept type as Option to satisfy bound of Default240 type LiquidityInfo = (Option<NegativeImbalanceOf<C, T>>, Option<T::CrossAccountId>);241242 fn withdraw_fee(243 who: &T::CrossAccountId,244 reason: WithdrawReason,245 fee: U256,246 ) -> Result<Self::LiquidityInfo, pallet_evm::Error<T>> {247 let sponsor = match reason {248 WithdrawReason::Call {249 max_fee_per_gas,250 gas_limit,251 is_transactional,252 is_check,253 ..254 } => get_sponsor::<T>(255 *who.as_eth(),256 max_fee_per_gas,257 gas_limit,258 &reason,259 is_transactional,260 is_check,261 ),262 _ => None,263 };264265 let who = sponsor.as_ref().unwrap_or(who);266 <pallet_evm::EVMCurrencyAdapter<C, OU> as OnChargeEVMTransaction<T>>::withdraw_fee(267 who, reason, fee,268 )269 .map(|li| (li, sponsor))270 }271272 fn correct_and_deposit_fee(273 who: &T::CrossAccountId,274 corrected_fee: U256,275 base_fee: U256,276 already_withdrawn: Self::LiquidityInfo,277 ) -> Self::LiquidityInfo {278 let (already_withdrawn, sponsor) = already_withdrawn;279 let who = sponsor.as_ref().unwrap_or(who);280 (281 <pallet_evm::EVMCurrencyAdapter<C, OU> as OnChargeEVMTransaction<T>>::correct_and_deposit_fee(282 who,283 corrected_fee,284 base_fee,285 already_withdrawn,286 ),287 None288 )289 }290291 fn pay_priority_fee(tip: Self::LiquidityInfo) {292 <pallet_evm::EVMCurrencyAdapter<C, OU> as OnChargeEVMTransaction<T>>::pay_priority_fee(293 tip.0,294 )295 }296}123297pallets/foreign-assets/Cargo.tomldiffbeforeafterboth5version = "0.1.0"5version = "0.1.0"667[dependencies]7[dependencies]8# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.9codec = { workspace = true, package = "parity-scale-codec" }8parity-scale-codec = { workspace = true }1011scale-info = { workspace = true }9scale-info = { workspace = true }121018pallet-balances = { features = ["insecure_zero_ed"], workspace = true }16pallet-balances = { features = ["insecure_zero_ed"], workspace = true }19pallet-common = { workspace = true }17pallet-common = { workspace = true }20pallet-fungible = { workspace = true }18pallet-fungible = { workspace = true }21serde = { workspace = true, optional = true }19serde = { workspace = true }22sp-runtime = { workspace = true }20sp-runtime = { workspace = true }23sp-std = { workspace = true }21sp-std = { workspace = true }24up-data-structs = { workspace = true }22staging-xcm = { workspace = true }25xcm = { workspace = true }23staging-xcm-executor = { workspace = true }26xcm-executor = { workspace = true }24up-data-structs = { workspace = true }272528[features]26[features]29default = ["std"]27default = ["std"]30runtime-benchmarks = ['frame-benchmarking', 'pallet-common/runtime-benchmarks']28runtime-benchmarks = ['frame-benchmarking', 'pallet-common/runtime-benchmarks']31std = [29std = [32 "codec/std",33 "frame-support/std",30 "frame-support/std",34 "frame-system/std",31 "frame-system/std",35 "log/std",32 "log/std",36 "orml-tokens/std",33 "orml-tokens/std",37 "pallet-balances/std",34 "pallet-balances/std",38 "pallet-common/std",35 "pallet-common/std",39 "pallet-fungible/std",36 "pallet-fungible/std",37 "parity-scale-codec/std",40 "scale-info/std",38 "scale-info/std",41 "serde",42 "sp-runtime/std",39 "sp-runtime/std",43 "sp-std/std",40 "sp-std/std",41 "staging-xcm-executor/std",44 "up-data-structs/std",42 "up-data-structs/std",45 "xcm-executor/std"46]43]47try-runtime = ["frame-support/try-runtime"]44try-runtime = ["frame-support/try-runtime"]4845pallets/foreign-assets/src/benchmarking.rsdiffbeforeafterboth161617#![allow(missing_docs)]17#![allow(missing_docs)]181819use super::{Config, Pallet, Call};19use frame_benchmarking::{account, benchmarks};20use frame_benchmarking::{benchmarks, account};20use frame_support::traits::Currency;21use frame_system::RawOrigin;21use frame_system::RawOrigin;22use crate::AssetMetadata;23use xcm::opaque::latest::Junction::Parachain;22use sp_std::{boxed::Box, vec::Vec};24use xcm::VersionedMultiLocation;23use staging_xcm::{opaque::latest::Junction::Parachain, v3::Junctions::X1, VersionedMultiLocation};25use xcm::v3::Junctions::X1;2426use frame_support::traits::Currency;25use super::{Call, Config, Pallet};27use sp_std::{vec::Vec, boxed::Box};26use crate::AssetMetadata;282729fn bounded<T: TryFrom<Vec<u8>>>(slice: &[u8]) -> T {28fn bounded<T: TryFrom<Vec<u8>>>(slice: &[u8]) -> T {30 T::try_from(slice.to_vec())29 T::try_from(slice.to_vec())pallets/foreign-assets/src/impl_fungibles.rsdiffbeforeafterboth161617//! Implementations for fungibles trait.17//! Implementations for fungibles trait.1819use super::*;20use frame_system::Config as SystemConfig;211822use frame_support::traits::tokens::{19use frame_support::traits::tokens::{23 DepositConsequence, WithdrawConsequence, Preservation, Fortitude, Provenance, Precision,20 DepositConsequence, Fortitude, Precision, Preservation, Provenance, WithdrawConsequence,24};21};25use pallet_common::CollectionHandle;22use frame_system::Config as SystemConfig;26use pallet_fungible::FungibleHandle;27use pallet_common::CommonCollectionOperations;23use pallet_common::{CollectionHandle, CommonCollectionOperations};28use up_data_structs::budget::Value;24use pallet_fungible::FungibleHandle;29use sp_runtime::traits::{CheckedAdd, CheckedSub};25use sp_runtime::traits::{CheckedAdd, CheckedSub};26use up_data_structs::budget::Value;2728use super::*;302931impl<T: Config> fungibles::Inspect<<T as SystemConfig>::AccountId> for Pallet<T>30impl<T: Config> fungibles::Inspect<<T as SystemConfig>::AccountId> for Pallet<T>32where31where33 T: orml_tokens::Config<CurrencyId = AssetIds>,32 T: orml_tokens::Config<CurrencyId = AssetId>,34 BalanceOf<T>: From<<T as pallet_balances::Config>::Balance>,33 BalanceOf<T>: From<<T as pallet_balances::Config>::Balance>,35 BalanceOf<T>: From<<T as orml_tokens::Config>::Balance>,34 BalanceOf<T>: From<<T as orml_tokens::Config>::Balance>,36 <T as pallet_balances::Config>::Balance: From<BalanceOf<T>>,35 <T as pallet_balances::Config>::Balance: From<BalanceOf<T>>,37 <T as orml_tokens::Config>::Balance: From<BalanceOf<T>>,36 <T as orml_tokens::Config>::Balance: From<BalanceOf<T>>,38{37{39 type AssetId = AssetIds;38 type AssetId = AssetId;40 type Balance = BalanceOf<T>;39 type Balance = BalanceOf<T>;414042 fn total_issuance(asset: Self::AssetId) -> Self::Balance {41 fn total_issuance(asset: Self::AssetId) -> Self::Balance {43 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible total_issuance");42 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible total_issuance");444345 match asset {44 match asset {46 AssetIds::NativeAssetId(NativeCurrency::Here) => {45 AssetId::NativeAssetId(NativeCurrency::Here) => {47 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::total_issuance()46 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::total_issuance()48 .into()47 .into()49 }48 }50 AssetIds::NativeAssetId(NativeCurrency::Parent) => {49 AssetId::NativeAssetId(NativeCurrency::Parent) => {51 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::total_issuance(50 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::total_issuance(52 AssetIds::NativeAssetId(NativeCurrency::Parent),51 AssetId::NativeAssetId(NativeCurrency::Parent),53 )52 )54 .into()53 .into()55 }54 }56 AssetIds::ForeignAssetId(fid) => {55 AssetId::ForeignAssetId(fid) => {57 let target_collection_id = match <AssetBinding<T>>::get(fid) {56 let target_collection_id = match <AssetBinding<T>>::get(fid) {58 Some(v) => v,57 Some(v) => v,59 None => return Zero::zero(),58 None => return Zero::zero(),71 fn minimum_balance(asset: Self::AssetId) -> Self::Balance {70 fn minimum_balance(asset: Self::AssetId) -> Self::Balance {72 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible minimum_balance");71 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible minimum_balance");73 match asset {72 match asset {74 AssetIds::NativeAssetId(NativeCurrency::Here) => {73 AssetId::NativeAssetId(NativeCurrency::Here) => {75 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::minimum_balance()74 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::minimum_balance()76 .into()75 .into()77 }76 }78 AssetIds::NativeAssetId(NativeCurrency::Parent) => {77 AssetId::NativeAssetId(NativeCurrency::Parent) => {79 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::minimum_balance(78 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::minimum_balance(80 AssetIds::NativeAssetId(NativeCurrency::Parent),79 AssetId::NativeAssetId(NativeCurrency::Parent),81 )80 )82 .into()81 .into()83 }82 }84 AssetIds::ForeignAssetId(fid) => {83 AssetId::ForeignAssetId(fid) => AssetMetadatas::<T>::get(AssetId::ForeignAssetId(fid))85 AssetMetadatas::<T>::get(AssetIds::ForeignAssetId(fid))86 .map(|x| x.minimal_balance)84 .map(|x| x.minimal_balance)87 .unwrap_or_else(Zero::zero)85 .unwrap_or_else(Zero::zero),88 }89 }86 }90 }87 }918892 fn balance(asset: Self::AssetId, who: &<T as SystemConfig>::AccountId) -> Self::Balance {89 fn balance(asset: Self::AssetId, who: &<T as SystemConfig>::AccountId) -> Self::Balance {93 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible balance");90 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible balance");94 match asset {91 match asset {95 AssetIds::NativeAssetId(NativeCurrency::Here) => {92 AssetId::NativeAssetId(NativeCurrency::Here) => {96 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::balance(who).into()93 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::balance(who).into()97 }94 }98 AssetIds::NativeAssetId(NativeCurrency::Parent) => {95 AssetId::NativeAssetId(NativeCurrency::Parent) => {99 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::balance(96 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::balance(100 AssetIds::NativeAssetId(NativeCurrency::Parent),97 AssetId::NativeAssetId(NativeCurrency::Parent),101 who,98 who,102 )99 )103 .into()100 .into()104 }101 }105 AssetIds::ForeignAssetId(fid) => {102 AssetId::ForeignAssetId(fid) => {106 let target_collection_id = match <AssetBinding<T>>::get(fid) {103 let target_collection_id = match <AssetBinding<T>>::get(fid) {107 Some(v) => v,104 Some(v) => v,108 None => return Zero::zero(),105 None => return Zero::zero(),133 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible reducible_balance");130 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible reducible_balance");134131135 match asset {132 match asset {136 AssetIds::NativeAssetId(NativeCurrency::Here) => {133 AssetId::NativeAssetId(NativeCurrency::Here) => {137 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::reducible_balance(134 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::reducible_balance(138 who,135 who,139 preservation,136 preservation,140 fortitude,137 fortitude,141 )138 )142 .into()139 .into()143 }140 }144 AssetIds::NativeAssetId(NativeCurrency::Parent) => {141 AssetId::NativeAssetId(NativeCurrency::Parent) => {145 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::reducible_balance(142 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::reducible_balance(146 AssetIds::NativeAssetId(NativeCurrency::Parent),143 AssetId::NativeAssetId(NativeCurrency::Parent),147 who,144 who,148 preservation,145 preservation,149 fortitude,146 fortitude,163 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible can_deposit");160 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible can_deposit");164161165 match asset {162 match asset {166 AssetIds::NativeAssetId(NativeCurrency::Here) => {163 AssetId::NativeAssetId(NativeCurrency::Here) => {167 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::can_deposit(164 <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::can_deposit(168 who,165 who,169 amount.into(),166 amount.into(),170 provenance,167 provenance,171 )168 )172 }169 }173 AssetIds::NativeAssetId(NativeCurrency::Parent) => {170 AssetId::NativeAssetId(NativeCurrency::Parent) => {174 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::can_deposit(171 <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::can_deposit(175 AssetIds::NativeAssetId(NativeCurrency::Parent),172 AssetId::NativeAssetId(NativeCurrency::Parent),176 who,173 who,177 amount.into(),174 amount.into(),178 provenance,175 provenance,219 };216 };220217221 match asset {218 match asset {222 AssetIds::NativeAssetId(NativeCurrency::Here) => {219 AssetId::NativeAssetId(NativeCurrency::Here) => {223 let this_amount: <T as pallet_balances::Config>::Balance = match value.try_into() {220 let this_amount: <T as pallet_balances::Config>::Balance = match value.try_into() {224 Ok(val) => val,221 Ok(val) => val,225 Err(_) => {222 Err(_) => {240 _ => WithdrawConsequence::BalanceLow,237 _ => WithdrawConsequence::BalanceLow,241 }238 }242 }239 }243 AssetIds::NativeAssetId(NativeCurrency::Parent) => {240 AssetId::NativeAssetId(NativeCurrency::Parent) => {244 let parent_amount: <T as orml_tokens::Config>::Balance = match value.try_into() {241 let parent_amount: <T as orml_tokens::Config>::Balance = match value.try_into() {245 Ok(val) => val,242 Ok(val) => val,246 Err(_) => {243 Err(_) => {247 return WithdrawConsequence::UnknownAsset;244 return WithdrawConsequence::UnknownAsset;248 }245 }249 };246 };250 match <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::can_withdraw(247 match <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::can_withdraw(251 AssetIds::NativeAssetId(NativeCurrency::Parent),248 AssetId::NativeAssetId(NativeCurrency::Parent),252 who,249 who,253 parent_amount,250 parent_amount,254 ) {251 ) {269 }266 }270 }267 }271268272 fn asset_exists(asset: AssetIds) -> bool {269 fn asset_exists(asset: AssetId) -> bool {273 match asset {270 match asset {274 AssetIds::NativeAssetId(_) => true,271 AssetId::NativeAssetId(_) => true,275 AssetIds::ForeignAssetId(fid) => <AssetBinding<T>>::contains_key(fid),272 AssetId::ForeignAssetId(fid) => <AssetBinding<T>>::contains_key(fid),276 }273 }277 }274 }278}275}279276280impl<T: Config> fungibles::Mutate<<T as SystemConfig>::AccountId> for Pallet<T>277impl<T: Config> fungibles::Mutate<<T as SystemConfig>::AccountId> for Pallet<T>281where278where282 T: orml_tokens::Config<CurrencyId = AssetIds>,279 T: orml_tokens::Config<CurrencyId = AssetId>,283 BalanceOf<T>: From<<T as pallet_balances::Config>::Balance>,280 BalanceOf<T>: From<<T as pallet_balances::Config>::Balance>,284 BalanceOf<T>: From<<T as orml_tokens::Config>::Balance>,281 BalanceOf<T>: From<<T as orml_tokens::Config>::Balance>,285 <T as pallet_balances::Config>::Balance: From<BalanceOf<T>>,282 <T as pallet_balances::Config>::Balance: From<BalanceOf<T>>,295 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible mint_into {:?}", asset);292 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible mint_into {:?}", asset);296293297 match asset {294 match asset {298 AssetIds::NativeAssetId(NativeCurrency::Here) => {295 AssetId::NativeAssetId(NativeCurrency::Here) => {299 <pallet_balances::Pallet<T> as fungible::Mutate<T::AccountId>>::mint_into(296 <pallet_balances::Pallet<T> as fungible::Mutate<T::AccountId>>::mint_into(300 who,297 who,301 amount.into(),298 amount.into(),302 )299 )303 .map(Into::into)300 .map(Into::into)304 }301 }305 AssetIds::NativeAssetId(NativeCurrency::Parent) => {302 AssetId::NativeAssetId(NativeCurrency::Parent) => {306 <orml_tokens::Pallet<T> as fungibles::Mutate<T::AccountId>>::mint_into(303 <orml_tokens::Pallet<T> as fungibles::Mutate<T::AccountId>>::mint_into(307 AssetIds::NativeAssetId(NativeCurrency::Parent),304 AssetId::NativeAssetId(NativeCurrency::Parent),308 who,305 who,309 amount.into(),306 amount.into(),310 )307 )311 .map(Into::into)308 .map(Into::into)312 }309 }313 AssetIds::ForeignAssetId(fid) => {310 AssetId::ForeignAssetId(fid) => {314 let target_collection_id = match <AssetBinding<T>>::get(fid) {311 let target_collection_id = match <AssetBinding<T>>::get(fid) {315 Some(v) => v,312 Some(v) => v,316 None => {313 None => {349 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible burn_from");346 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible burn_from");350347351 match asset {348 match asset {352 AssetIds::NativeAssetId(NativeCurrency::Here) => {349 AssetId::NativeAssetId(NativeCurrency::Here) => {353 <pallet_balances::Pallet<T> as fungible::Mutate<T::AccountId>>::burn_from(350 <pallet_balances::Pallet<T> as fungible::Mutate<T::AccountId>>::burn_from(354 who,351 who,355 amount.into(),352 amount.into(),358 )355 )359 .map(Into::into)356 .map(Into::into)360 }357 }361 AssetIds::NativeAssetId(NativeCurrency::Parent) => {358 AssetId::NativeAssetId(NativeCurrency::Parent) => {362 <orml_tokens::Pallet<T> as fungibles::Mutate<T::AccountId>>::burn_from(359 <orml_tokens::Pallet<T> as fungibles::Mutate<T::AccountId>>::burn_from(363 AssetIds::NativeAssetId(NativeCurrency::Parent),360 AssetId::NativeAssetId(NativeCurrency::Parent),364 who,361 who,365 amount.into(),362 amount.into(),366 precision,363 precision,367 fortitude,364 fortitude,368 )365 )369 .map(Into::into)366 .map(Into::into)370 }367 }371 AssetIds::ForeignAssetId(fid) => {368 AssetId::ForeignAssetId(fid) => {372 let target_collection_id = match <AssetBinding<T>>::get(fid) {369 let target_collection_id = match <AssetBinding<T>>::get(fid) {373 Some(v) => v,370 Some(v) => v,374 None => {371 None => {401 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible transfer");398 log::trace!(target: "fassets::impl_foreign_assets", "impl_fungible transfer");402399403 match asset {400 match asset {404 AssetIds::NativeAssetId(NativeCurrency::Here) => {401 AssetId::NativeAssetId(NativeCurrency::Here) => {405 match <pallet_balances::Pallet<T> as fungible::Mutate<T::AccountId>>::transfer(402 match <pallet_balances::Pallet<T> as fungible::Mutate<T::AccountId>>::transfer(406 source,403 source,407 dest,404 dest,414 )),411 )),415 }412 }416 }413 }417 AssetIds::NativeAssetId(NativeCurrency::Parent) => {414 AssetId::NativeAssetId(NativeCurrency::Parent) => {418 match <orml_tokens::Pallet<T> as fungibles::Mutate<T::AccountId>>::transfer(415 match <orml_tokens::Pallet<T> as fungibles::Mutate<T::AccountId>>::transfer(419 AssetIds::NativeAssetId(NativeCurrency::Parent),416 AssetId::NativeAssetId(NativeCurrency::Parent),420 source,417 source,421 dest,418 dest,422 amount.into(),419 amount.into(),426 Err(e) => Err(e),423 Err(e) => Err(e),427 }424 }428 }425 }429 AssetIds::ForeignAssetId(fid) => {426 AssetId::ForeignAssetId(fid) => {430 let target_collection_id = match <AssetBinding<T>>::get(fid) {427 let target_collection_id = match <AssetBinding<T>>::get(fid) {431 Some(v) => v,428 Some(v) => v,432 None => {429 None => {479476480impl<T: Config> fungibles::Unbalanced<<T as SystemConfig>::AccountId> for Pallet<T>477impl<T: Config> fungibles::Unbalanced<<T as SystemConfig>::AccountId> for Pallet<T>481where478where482 T: orml_tokens::Config<CurrencyId = AssetIds>,479 T: orml_tokens::Config<CurrencyId = AssetId>,483 BalanceOf<T>: From<<T as pallet_balances::Config>::Balance>,480 BalanceOf<T>: From<<T as pallet_balances::Config>::Balance>,484 BalanceOf<T>: From<<T as orml_tokens::Config>::Balance>,481 BalanceOf<T>: From<<T as orml_tokens::Config>::Balance>,485 <T as pallet_balances::Config>::Balance: From<BalanceOf<T>>,482 <T as pallet_balances::Config>::Balance: From<BalanceOf<T>>,pallets/foreign-assets/src/lib.rsdiffbeforeafterboth39 ensure,39 ensure,40 pallet_prelude::*,40 pallet_prelude::*,41 traits::{fungible, fungibles, Currency, EnsureOrigin},41 traits::{fungible, fungibles, Currency, EnsureOrigin},42 RuntimeDebug,43};42};44use frame_system::pallet_prelude::*;43use frame_system::pallet_prelude::*;45use up_data_structs::CollectionMode;44use pallet_common::erc::CrossAccountId;46use pallet_fungible::Pallet as PalletFungible;45use pallet_fungible::Pallet as PalletFungible;47use scale_info::TypeInfo;46use scale_info::TypeInfo;47use serde::{Deserialize, Serialize};48use sp_runtime::{48use sp_runtime::{49 traits::{One, Zero},49 traits::{One, Zero},50 ArithmeticError,50 ArithmeticError,51};51};52use sp_std::{boxed::Box, vec::Vec};52use sp_std::{boxed::Box, vec::Vec};53use up_data_structs::{CollectionId, TokenId, CreateCollectionData};53use staging_xcm::{latest::MultiLocation, VersionedMultiLocation};5455// NOTE: MultiLocation is used in storages, we will need to do migration if upgrade the54// NOTE: MultiLocation is used in storages, we will need to do migration if upgrade the56// MultiLocation to the XCM v3.55// MultiLocation to the XCM v3.57use xcm::opaque::latest::{prelude::XcmError, Weight};56use staging_xcm::{58use xcm::{latest::MultiLocation, VersionedMultiLocation};57 opaque::latest::{prelude::XcmError, Weight},58 v3::XcmContext,59};59use xcm_executor::{traits::WeightTrader, Assets};60use staging_xcm_executor::{traits::WeightTrader, Assets};6061use pallet_common::erc::CrossAccountId;6263#[cfg(feature = "std")]64use serde::{Deserialize, Serialize};61use up_data_structs::{CollectionId, CollectionMode, CreateCollectionData, TokenId};656266// TODO: Move to primitives63// TODO: Move to primitives67// Id of native currency.64// Id of native currency.79 Encode,76 Encode,80 Decode,77 Decode,81 TypeInfo,78 TypeInfo,79 Serialize,80 Deserialize,82)]81)]83#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]84pub enum NativeCurrency {82pub enum NativeCurrency {85 Here = 0,83 Here = 0,86 Parent = 1,84 Parent = 1,98 Encode,96 Encode,99 Decode,97 Decode,100 TypeInfo,98 TypeInfo,99 Serialize,100 Deserialize,101)]101)]102#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]103pub enum AssetIds {102pub enum AssetId {104 ForeignAssetId(ForeignAssetId),103 ForeignAssetId(ForeignAssetId),105 NativeAssetId(NativeCurrency),104 NativeAssetId(NativeCurrency),106}105}109 fn try_as_foreign(asset: T) -> Option<F>;108 fn try_as_foreign(asset: T) -> Option<F>;110}109}111110112impl TryAsForeign<AssetIds, ForeignAssetId> for AssetIds {111impl TryAsForeign<AssetId, ForeignAssetId> for AssetId {113 fn try_as_foreign(asset: AssetIds) -> Option<ForeignAssetId> {112 fn try_as_foreign(asset: AssetId) -> Option<ForeignAssetId> {114 match asset {113 match asset {115 AssetIds::ForeignAssetId(id) => Some(id),114 Self::ForeignAssetId(id) => Some(id),116 _ => None,115 _ => None,117 }116 }118 }117 }119}118}120119121pub type ForeignAssetId = u32;120pub type ForeignAssetId = u32;122pub type CurrencyId = AssetIds;121pub type CurrencyId = AssetId;123122124mod impl_fungibles;123mod impl_fungibles;125pub mod weights;124pub mod weights;151{150{152 fn get_asset_metadata(foreign_asset_id: ForeignAssetId) -> Option<AssetMetadata<BalanceOf<T>>> {151 fn get_asset_metadata(foreign_asset_id: ForeignAssetId) -> Option<AssetMetadata<BalanceOf<T>>> {153 log::trace!(target: "fassets::asset_metadatas", "call");152 log::trace!(target: "fassets::asset_metadatas", "call");154 Pallet::<T>::asset_metadatas(AssetIds::ForeignAssetId(foreign_asset_id))153 Pallet::<T>::asset_metadatas(AssetId::ForeignAssetId(foreign_asset_id))155 }154 }156155157 fn get_multi_location(foreign_asset_id: ForeignAssetId) -> Option<MultiLocation> {156 fn get_multi_location(foreign_asset_id: ForeignAssetId) -> Option<MultiLocation> {161160162 fn get_currency_id(multi_location: MultiLocation) -> Option<CurrencyId> {161 fn get_currency_id(multi_location: MultiLocation) -> Option<CurrencyId> {163 log::trace!(target: "fassets::get_currency_id", "call");162 log::trace!(target: "fassets::get_currency_id", "call");164 Pallet::<T>::location_to_currency_ids(multi_location).map(AssetIds::ForeignAssetId)163 Pallet::<T>::location_to_currency_ids(multi_location).map(AssetId::ForeignAssetId)165 }164 }166}165}167166231 },230 },232 /// The asset registered.231 /// The asset registered.233 AssetRegistered {232 AssetRegistered {234 asset_id: AssetIds,233 asset_id: AssetId,235 metadata: AssetMetadata<BalanceOf<T>>,234 metadata: AssetMetadata<BalanceOf<T>>,236 },235 },237 /// The asset updated.236 /// The asset updated.238 AssetUpdated {237 AssetUpdated {239 asset_id: AssetIds,238 asset_id: AssetId,240 metadata: AssetMetadata<BalanceOf<T>>,239 metadata: AssetMetadata<BalanceOf<T>>,241 },240 },242 }241 }253 #[pallet::storage]252 #[pallet::storage]254 #[pallet::getter(fn foreign_asset_locations)]253 #[pallet::getter(fn foreign_asset_locations)]255 pub type ForeignAssetLocations<T: Config> =254 pub type ForeignAssetLocations<T: Config> =256 StorageMap<_, Twox64Concat, ForeignAssetId, xcm::v3::MultiLocation, OptionQuery>;255 StorageMap<_, Twox64Concat, ForeignAssetId, staging_xcm::v3::MultiLocation, OptionQuery>;257256258 /// The storages for CurrencyIds.257 /// The storages for CurrencyIds.259 ///258 ///260 /// LocationToCurrencyIds: map MultiLocation => Option<ForeignAssetId>259 /// LocationToCurrencyIds: map MultiLocation => Option<ForeignAssetId>261 #[pallet::storage]260 #[pallet::storage]262 #[pallet::getter(fn location_to_currency_ids)]261 #[pallet::getter(fn location_to_currency_ids)]263 pub type LocationToCurrencyIds<T: Config> =262 pub type LocationToCurrencyIds<T: Config> =264 StorageMap<_, Twox64Concat, xcm::v3::MultiLocation, ForeignAssetId, OptionQuery>;263 StorageMap<_, Twox64Concat, staging_xcm::v3::MultiLocation, ForeignAssetId, OptionQuery>;265264266 /// The storages for AssetMetadatas.265 /// The storages for AssetMetadatas.267 ///266 ///268 /// AssetMetadatas: map AssetIds => Option<AssetMetadata>267 /// AssetMetadatas: map AssetIds => Option<AssetMetadata>269 #[pallet::storage]268 #[pallet::storage]270 #[pallet::getter(fn asset_metadatas)]269 #[pallet::getter(fn asset_metadatas)]271 pub type AssetMetadatas<T: Config> =270 pub type AssetMetadatas<T: Config> =272 StorageMap<_, Twox64Concat, AssetIds, AssetMetadata<BalanceOf<T>>, OptionQuery>;271 StorageMap<_, Twox64Concat, AssetId, AssetMetadata<BalanceOf<T>>, OptionQuery>;273272274 /// The storages for assets to fungible collection binding273 /// The storages for assets to fungible collection binding275 ///274 ///381 *maybe_location = Some(*location);380 *maybe_location = Some(*location);382381383 AssetMetadatas::<T>::try_mutate(382 AssetMetadatas::<T>::try_mutate(384 AssetIds::ForeignAssetId(foreign_asset_id),383 AssetId::ForeignAssetId(foreign_asset_id),385 |maybe_asset_metadatas| -> DispatchResult {384 |maybe_asset_metadatas| -> DispatchResult {386 ensure!(maybe_asset_metadatas.is_none(), Error::<T>::AssetIdExisted);385 ensure!(maybe_asset_metadatas.is_none(), Error::<T>::AssetIdExisted);387 *maybe_asset_metadatas = Some(metadata.clone());386 *maybe_asset_metadatas = Some(metadata.clone());413 .ok_or(Error::<T>::AssetIdNotExists)?;412 .ok_or(Error::<T>::AssetIdNotExists)?;414413415 AssetMetadatas::<T>::try_mutate(414 AssetMetadatas::<T>::try_mutate(416 AssetIds::ForeignAssetId(foreign_asset_id),415 AssetId::ForeignAssetId(foreign_asset_id),417 |maybe_asset_metadatas| -> DispatchResult {416 |maybe_asset_metadatas| -> DispatchResult {418 ensure!(417 ensure!(419 maybe_asset_metadatas.is_some(),418 maybe_asset_metadatas.is_some(),450 traits::{449 traits::{451 fungibles::Balanced, tokens::currency::Currency as CurrencyT, OnUnbalanced as OnUnbalancedT,450 fungibles::Balanced, tokens::currency::Currency as CurrencyT, OnUnbalanced as OnUnbalancedT,452 },451 },453 weights::{WeightToFeePolynomial, WeightToFee},452 weights::{WeightToFee, WeightToFeePolynomial},454};453};455454456pub struct FreeForAll<455pub struct FreeForAll<480 fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, XcmError> {479 fn buy_weight(480 &mut self,481 weight: Weight,482 payment: Assets,483 _xcm: &XcmContext,484 ) -> Result<Assets, XcmError> {481 log::trace!(target: "fassets::weight", "buy_weight weight: {:?}, payment: {:?}", weight, payment);485 log::trace!(target: "fassets::weight", "buy_weight weight: {:?}, payment: {:?}", weight, payment);482 Ok(payment)486 Ok(payment)pallets/fungible/Cargo.tomldiffbeforeafterboth5version = "0.1.11"5version = "0.1.11"667[dependencies]7[dependencies]8# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.9codec = { workspace = true, package = "parity-scale-codec" }8parity-scale-codec = { workspace = true }1011scale-info = { workspace = true }9scale-info = { workspace = true }1210pallets/fungible/src/benchmarking.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use super::*;17use frame_benchmarking::{account, benchmarks};18use crate::{Pallet, Config, FungibleHandle};18use pallet_common::{bench_init, benchmarking::create_collection_raw};1920use sp_std::prelude::*;19use sp_std::prelude::*;21use pallet_common::benchmarking::create_collection_raw;20use up_data_structs::{budget::Unlimited, CollectionMode, MAX_ITEMS_PER_BATCH};2122use frame_benchmarking::{benchmarks, account};22use super::*;23use up_data_structs::{CollectionMode, MAX_ITEMS_PER_BATCH, budget::Unlimited};23use crate::{Config, FungibleHandle, Pallet};24use pallet_common::bench_init;252426const SEED: u32 = 1;25const SEED: u32 = 1;2726pallets/fungible/src/common.rsdiffbeforeafterboth161617use core::marker::PhantomData;17use core::marker::PhantomData;181819use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight, traits::Get};19use frame_support::{20use up_data_structs::{20 dispatch::DispatchResultWithPostInfo, ensure, fail, traits::Get, weights::Weight,21 TokenId, CollectionId, CreateItemExData, budget::Budget, CreateItemData, TokenOwnerError,21};22};23use pallet_common::{22use pallet_common::{24 CommonCollectionOperations, CommonWeightInfo, RefungibleExtensions, with_weight,25 weights::WeightInfo as _, SelfWeightOf as PalletCommonWeightOf,23 weights::WeightInfo as _, with_weight, CommonCollectionOperations, CommonWeightInfo,24 RefungibleExtensions, SelfWeightOf as PalletCommonWeightOf,26};25};27use pallet_structure::Error as StructureError;26use pallet_structure::Error as StructureError;28use sp_runtime::{ArithmeticError, DispatchError};27use sp_runtime::{ArithmeticError, DispatchError};29use sp_std::{vec::Vec, vec};28use sp_std::{vec, vec::Vec};30use up_data_structs::{Property, PropertyKey, PropertyValue, PropertyKeyPermission};29use up_data_structs::{30 budget::Budget, CollectionId, CreateItemData, CreateItemExData, Property, PropertyKey,31 PropertyKeyPermission, PropertyValue, TokenId, TokenOwnerError,32};313332use crate::{34use crate::{33 Allowance, TotalSupply, Balance, Config, Error, FungibleHandle, Pallet, SelfWeightOf,35 weights::WeightInfo, Allowance, Balance, Config, Error, FungibleHandle, Pallet, SelfWeightOf,34 weights::WeightInfo,36 TotalSupply,35};37};363837pub struct CommonWeights<T: Config>(PhantomData<T>);39pub struct CommonWeights<T: Config>(PhantomData<T>);pallets/fungible/src/erc.rsdiffbeforeafterboth17//! ERC-20 standart support implementation.17//! ERC-20 standart support implementation.181819extern crate alloc;19extern crate alloc;20use core::char::{REPLACEMENT_CHARACTER, decode_utf16};20use core::{21use core::convert::TryInto;21 char::{decode_utf16, REPLACEMENT_CHARACTER},22use evm_coder::AbiCoder;22 convert::TryInto,23};2423use evm_coder::{abi::AbiType, ToLog, generate_stubgen, solidity_interface, types::*};25use evm_coder::{abi::AbiType, generate_stubgen, solidity_interface, types::*, AbiCoder, ToLog};24use up_data_structs::CollectionMode;25use pallet_common::{26use pallet_common::{26 CollectionHandle,27 erc::{CommonEvmHandler, PrecompileResult, CollectionCall},27 erc::{CollectionCall, CommonEvmHandler, PrecompileResult},28 eth::CrossAddress,28 eth::CrossAddress,29 CommonWeightInfo as _,29 CollectionHandle, CommonWeightInfo as _,30};30};31use sp_std::vec::Vec;32use pallet_evm::{account::CrossAccountId, PrecompileHandle};31use pallet_evm::{account::CrossAccountId, PrecompileHandle};33use pallet_evm_coder_substrate::{32use pallet_evm_coder_substrate::{34 call, dispatch_to_evm,33 call, dispatch_to_evm,35 execution::{PreDispatch, Result},34 execution::{PreDispatch, Result},36 frontier_contract,35 frontier_contract,37};36};38use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};37use pallet_structure::{weights::WeightInfo as _, SelfWeightOf as StructureWeight};39use sp_core::{U256, Get};38use sp_core::{Get, U256};39use sp_std::vec::Vec;40use up_data_structs::CollectionMode;404141use crate::{42use crate::{42 Allowance, Balance, Config, FungibleHandle, Pallet, TotalSupply, SelfWeightOf,43 common::CommonWeights, weights::WeightInfo, Allowance, Balance, Config, FungibleHandle, Pallet,43 weights::WeightInfo, common::CommonWeights,44 SelfWeightOf, TotalSupply,44};45};454646frontier_contract! {47frontier_contract! {pallets/fungible/src/lib.rsdiffbeforeafterboth81use core::ops::Deref;81use core::ops::Deref;8282use evm_coder::ToLog;83use evm_coder::ToLog;83use frame_support::{84use frame_support::{dispatch::PostDispatchInfo, ensure, pallet_prelude::*};84 ensure,85 pallet_prelude::{DispatchResultWithPostInfo, Pays},86 dispatch::PostDispatchInfo,87};88use pallet_evm::account::CrossAccountId;85pub use pallet::*;89use up_data_structs::{90 AccessMode, CollectionId, TokenId, CreateCollectionData, mapping::TokenAddressMapping,91 budget::Budget, PropertyKey, Property,92};93use pallet_common::{86use pallet_common::{87 eth::collection_id_to_address, helpers::add_weight_to_post_info,94 Error as CommonError, Event as CommonEvent, Pallet as PalletCommon,88 weights::WeightInfo as CommonWeightInfo, Error as CommonError, Event as CommonEvent,95 eth::collection_id_to_address, SelfWeightOf as PalletCommonWeightOf,89 Pallet as PalletCommon, SelfWeightOf as PalletCommonWeightOf,96 weights::WeightInfo as CommonWeightInfo, helpers::add_weight_to_post_info,97};90};98use pallet_evm::Pallet as PalletEvm;91use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};92use pallet_evm_coder_substrate::WithRecorder;99use pallet_structure::Pallet as PalletStructure;93use pallet_structure::Pallet as PalletStructure;100use pallet_evm_coder_substrate::WithRecorder;101use sp_core::H160;94use sp_core::H160;102use sp_runtime::{ArithmeticError, DispatchError, DispatchResult};95use sp_runtime::{ArithmeticError, DispatchError, DispatchResult};103use sp_std::{collections::btree_map::BTreeMap, vec::Vec};96use sp_std::{collections::btree_map::BTreeMap, vec::Vec};104use weights::WeightInfo;97use up_data_structs::{98 budget::Budget, mapping::TokenAddressMapping, AccessMode, CollectionId, CreateCollectionData,99 Property, PropertyKey, TokenId,100};105pub use pallet::*;101use weights::WeightInfo;106102107use crate::erc::ERC20Events;103use crate::erc::ERC20Events;108#[cfg(feature = "runtime-benchmarks")]104#[cfg(feature = "runtime-benchmarks")]116112117#[frame_support::pallet]113#[frame_support::pallet]118pub mod pallet {114pub mod pallet {119 use frame_support::{Blake2_128, Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key};115 use frame_support::{116 pallet_prelude::*, storage::Key, Blake2_128, Blake2_128Concat, Twox64Concat,117 };120 use up_data_structs::CollectionId;118 use up_data_structs::CollectionId;119pallets/gov-origins/Cargo.tomldiffbeforeafterboth23################################################################################23################################################################################24# Substrate Dependencies24# Substrate Dependencies252526# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.27parity-scale-codec = { workspace = true }26parity-scale-codec = { workspace = true }2829scale-info = { workspace = true }27scale-info = { workspace = true }pallets/gov-origins/src/lib.rsdiffbeforeafterbothno syntactic changes
pallets/identity/Cargo.tomldiffbeforeafterboth13targets = ["x86_64-unknown-linux-gnu"]13targets = ["x86_64-unknown-linux-gnu"]141415[dependencies]15[dependencies]16# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.17codec = { workspace = true, package = "parity-scale-codec", features = ["max-encoded-len"] }16parity-scale-codec = { workspace = true, features = ["max-encoded-len"] }181719enumflags2 = "0.7.4"18enumflags2 = "0.7.8"20frame-benchmarking = { workspace = true, optional = true }19frame-benchmarking = { workspace = true, optional = true }21frame-support = { workspace = true }20frame-support = { workspace = true }22frame-system = { workspace = true }21frame-system = { workspace = true }38 "sp-runtime/runtime-benchmarks",37 "sp-runtime/runtime-benchmarks",39]38]40std = [39std = [41 "codec/std",42 "frame-benchmarking?/std",40 "frame-benchmarking?/std",43 "frame-support/std",41 "frame-support/std",44 "frame-system/std",42 "frame-system/std",43 "pallet-balances/std",44 "parity-scale-codec/std",45 "scale-info/std",45 "scale-info/std",46 "sp-io/std",46 "sp-io/std",47 "sp-runtime/std",47 "sp-runtime/std",48 "sp-std/std",48 "sp-std/std",49 "pallet-balances/std",50]49]51try-runtime = ["frame-support/try-runtime"]50try-runtime = ["frame-support/try-runtime"]5251pallets/identity/src/benchmarking.rsdiffbeforeafterboth37#![cfg(feature = "runtime-benchmarks")]37#![cfg(feature = "runtime-benchmarks")]38#![allow(clippy::no_effect)]38#![allow(clippy::no_effect)]393940use super::*;4142use crate::Pallet as Identity;43use frame_benchmarking::{account, benchmarks, whitelisted_caller};40use frame_benchmarking::{account, benchmarks, whitelisted_caller};44use frame_support::{41use frame_support::{45 ensure, assert_ok,42 assert_ok, ensure,46 traits::{EnsureOrigin, Get},43 traits::{EnsureOrigin, Get},47};44};48use frame_system::RawOrigin;45use frame_system::RawOrigin;49use sp_runtime::traits::Bounded;46use sp_runtime::traits::Bounded;4748use super::*;49use crate::Pallet as Identity;505051const SEED: u32 = 0;51const SEED: u32 = 0;5252pallets/identity/src/lib.rsdiffbeforeafterboth95mod types;95mod types;96pub mod weights;96pub mod weights;979798use frame_support::{98use frame_support::traits::{BalanceStatus, Currency, OnUnbalanced, ReservableCurrency};99 traits::{BalanceStatus, Currency, OnUnbalanced, ReservableCurrency},99pub use pallet::*;100};101use sp_runtime::{100use sp_runtime::{102 BoundedVec,103 traits::{AppendZerosInput, Hash, Saturating, StaticLookup, Zero},101 traits::{AppendZerosInput, Hash, Saturating, StaticLookup, Zero},102 BoundedVec,104};103};105use sp_std::prelude::*;104use sp_std::prelude::*;106pub use weights::WeightInfo;107108pub use pallet::*;109pub use types::{105pub use types::{110 Data, IdentityField, IdentityFields, IdentityInfo, Judgement, RegistrarIndex, RegistrarInfo,106 Data, IdentityField, IdentityFields, IdentityInfo, Judgement, RegistrarIndex, RegistrarInfo,111 Registration,107 Registration,112};108};109pub use weights::WeightInfo;113110114pub type BalanceOf<T> =111pub type BalanceOf<T> =115 <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;112 <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;132129133#[frame_support::pallet]130#[frame_support::pallet]134pub mod pallet {131pub mod pallet {135 use super::*;136 use frame_support::pallet_prelude::*;132 use frame_support::pallet_prelude::*;137 use frame_system::pallet_prelude::*;133 use frame_system::pallet_prelude::*;134135 use super::*;138136139 #[pallet::config]137 #[pallet::config]140 pub trait Config: frame_system::Config {138 pub trait Config: frame_system::Config {pallets/identity/src/tests.rsdiffbeforeafterboth343435// Tests for Identity Pallet35// Tests for Identity Pallet363637use super::*;38use crate as pallet_identity;3940use codec::{Decode, Encode};41use frame_support::{37use frame_support::{42 assert_noop, assert_ok, ord_parameter_types, parameter_types,38 assert_noop, assert_ok, ord_parameter_types, parameter_types,43 traits::{ConstU32, ConstU64, EitherOfDiverse},39 traits::{ConstU32, ConstU64, EitherOfDiverse},44 BoundedVec,40 BoundedVec,45};41};46use frame_system::{EnsureRoot, EnsureSignedBy};42use frame_system::{EnsureRoot, EnsureSignedBy};43use parity_scale_codec::{Decode, Encode};47use sp_core::H256;44use sp_core::H256;48use sp_runtime::{45use sp_runtime::{49 testing::Header,50 traits::{BadOrigin, BlakeTwo256, IdentityLookup},46 traits::{BadOrigin, BlakeTwo256, IdentityLookup},47 BuildStorage,51};48};524953type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;50use super::*;51use crate as pallet_identity;5254type Block = frame_system::mocking::MockBlock<Test>;53type Block = frame_system::mocking::MockBlockU32<Test>;555456frame_support::construct_runtime!(55frame_support::construct_runtime!(57 pub enum Test where56 pub enum Test {58 Block = Block,59 NodeBlock = Block,60 UncheckedExtrinsic = UncheckedExtrinsic,61 {62 System: frame_system::{Pallet, Call, Config, Storage, Event<T>},57 System: frame_system,63 Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>},58 Balances: pallet_balances,64 Identity: pallet_identity::{Pallet, Call, Storage, Event<T>},59 Identity: pallet_identity,65 }60 }66);61);676271}66}72impl frame_system::Config for Test {67impl frame_system::Config for Test {73 type BaseCallFilter = frame_support::traits::Everything;68 type BaseCallFilter = frame_support::traits::Everything;69 type Block = Block;74 type BlockWeights = ();70 type BlockWeights = ();75 type BlockLength = ();71 type BlockLength = ();76 type RuntimeOrigin = RuntimeOrigin;72 type RuntimeOrigin = RuntimeOrigin;77 type Index = u64;73 type Nonce = u64;78 type BlockNumber = u64;79 type Hash = H256;74 type Hash = H256;80 type RuntimeCall = RuntimeCall;75 type RuntimeCall = RuntimeCall;81 type Hashing = BlakeTwo256;76 type Hashing = BlakeTwo256;82 type AccountId = u64;77 type AccountId = u64;83 type Lookup = IdentityLookup<Self::AccountId>;78 type Lookup = IdentityLookup<Self::AccountId>;84 type Header = Header;85 type RuntimeEvent = RuntimeEvent;79 type RuntimeEvent = RuntimeEvent;86 type BlockHashCount = ConstU64<250>;80 type BlockHashCount = ConstU32<250>;87 type DbWeight = ();81 type DbWeight = ();88 type Version = ();82 type Version = ();89 type PalletInfo = PalletInfo;83 type PalletInfo = PalletInfo;106 type MaxReserves = ();100 type MaxReserves = ();107 type ReserveIdentifier = [u8; 8];101 type ReserveIdentifier = [u8; 8];108 type WeightInfo = ();102 type WeightInfo = ();109 type HoldIdentifier = ();103 type RuntimeHoldReason = RuntimeHoldReason;110 type FreezeIdentifier = ();104 type FreezeIdentifier = ();111 type MaxHolds = ();105 type MaxHolds = ();112 type MaxFreezes = ();106 type MaxFreezes = ();139}133}140134141pub fn new_test_ext() -> sp_io::TestExternalities {135pub fn new_test_ext() -> sp_io::TestExternalities {142 let mut t = frame_system::GenesisConfig::default()136 let mut t = <frame_system::GenesisConfig<Test>>::default()143 .build_storage::<Test>()137 .build_storage()144 .unwrap();138 .unwrap();145 pallet_balances::GenesisConfig::<Test> {139 pallet_balances::GenesisConfig::<Test> {146 balances: vec![(1, 10), (2, 10), (3, 10), (10, 100), (20, 100), (30, 100)],140 balances: vec![(1, 10), (2, 10), (3, 10), (10, 100), (20, 100), (30, 100)],pallets/identity/src/types.rsdiffbeforeafterboth32// See the License for the specific language governing permissions and32// See the License for the specific language governing permissions and33// limitations under the License.33// limitations under the License.343435use super::*;36use codec::{Decode, Encode, MaxEncodedLen};37use enumflags2::{bitflags, BitFlags};35use enumflags2::{bitflags, BitFlags};38use frame_support::{36use frame_support::{39 traits::{ConstU32, Get},37 traits::{ConstU32, Get},40 BoundedVec, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound,38 BoundedVec, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound,41};39};40use parity_scale_codec::{Decode, Encode, MaxEncodedLen};42use scale_info::{41use scale_info::{43 build::{Fields, Variants},42 build::{Fields, Variants},44 meta_type, Path, Type, TypeInfo, TypeParameter,43 meta_type, Path, Type, TypeInfo, TypeParameter,45};44};46use sp_runtime::{traits::Zero, RuntimeDebug};45use sp_runtime::{traits::Zero, RuntimeDebug};47use sp_std::{fmt::Debug, iter::once, ops::Add, prelude::*};46use sp_std::{fmt::Debug, iter::once, ops::Add, prelude::*};4748use super::*;484949/// Either underlying data blob if it is at most 32 bytes, or a hash of it. If the data is greater50/// Either underlying data blob if it is at most 32 bytes, or a hash of it. If the data is greater50/// than 32-bytes then it will be truncated when encoding.51/// than 32-bytes then it will be truncated when encoding.77}78}787979impl Decode for Data {80impl Decode for Data {80 fn decode<I: codec::Input>(input: &mut I) -> sp_std::result::Result<Self, codec::Error> {81 fn decode<I: parity_scale_codec::Input>(82 input: &mut I,83 ) -> sp_std::result::Result<Self, parity_scale_codec::Error> {81 let b = input.read_byte()?;84 let b = input.read_byte()?;82 Ok(match b {85 Ok(match b {83 0 => Data::None,86 0 => Data::None,92 35 => Data::Sha256(<[u8; 32]>::decode(input)?),95 35 => Data::Sha256(<[u8; 32]>::decode(input)?),93 36 => Data::Keccak256(<[u8; 32]>::decode(input)?),96 36 => Data::Keccak256(<[u8; 32]>::decode(input)?),94 37 => Data::ShaThree256(<[u8; 32]>::decode(input)?),97 37 => Data::ShaThree256(<[u8; 32]>::decode(input)?),95 _ => return Err(codec::Error::from("invalid leading byte")),98 _ => return Err(parity_scale_codec::Error::from("invalid leading byte")),96 })99 })97 }100 }98}101}114 }117 }115 }118 }116}119}117impl codec::EncodeLike for Data {}120impl parity_scale_codec::EncodeLike for Data {}118121119/// Add a Raw variant with the given index and a fixed sized byte array122/// Add a Raw variant with the given index and a fixed sized byte array120macro_rules! data_raw_variants {123macro_rules! data_raw_variants {284 }287 }285}288}286impl Decode for IdentityFields {289impl Decode for IdentityFields {287 fn decode<I: codec::Input>(input: &mut I) -> sp_std::result::Result<Self, codec::Error> {290 fn decode<I: parity_scale_codec::Input>(291 input: &mut I,292 ) -> sp_std::result::Result<Self, parity_scale_codec::Error> {288 let field = u64::decode(input)?;293 let field = u64::decode(input)?;289 Ok(Self(294 Ok(Self(290 <BitFlags<IdentityField>>::from_bits(field).map_err(|_| "invalid value")?,295 <BitFlags<IdentityField>>::from_bits(field).map_err(|_| "invalid value")?,445 MaxAdditionalFields: Get<u32>,450 MaxAdditionalFields: Get<u32>,446 > Decode for Registration<Balance, MaxJudgements, MaxAdditionalFields>451 > Decode for Registration<Balance, MaxJudgements, MaxAdditionalFields>447{452{448 fn decode<I: codec::Input>(input: &mut I) -> sp_std::result::Result<Self, codec::Error> {453 fn decode<I: parity_scale_codec::Input>(454 input: &mut I,455 ) -> sp_std::result::Result<Self, parity_scale_codec::Error> {449 let (judgements, deposit, info) = Decode::decode(&mut AppendZerosInput::new(input))?;456 let (judgements, deposit, info) = Decode::decode(&mut AppendZerosInput::new(input))?;450 Ok(Self {457 Ok(Self {451 judgements,458 judgements,pallets/inflation/Cargo.tomldiffbeforeafterboth18default = ['std']18default = ['std']19runtime-benchmarks = ['frame-benchmarking']19runtime-benchmarks = ['frame-benchmarking']20std = [20std = [21 'codec/std',22 'frame-benchmarking/std',21 'frame-benchmarking/std',23 'frame-support/std',22 'frame-support/std',24 'frame-system/std',23 'frame-system/std',25 'pallet-balances/std',24 'pallet-balances/std',25 'parity-scale-codec/std',26 'sp-runtime/std',26 'sp-runtime/std',27 'sp-std/std',27 'sp-std/std',28]28]29try-runtime = ["frame-support/try-runtime"]29try-runtime = ["frame-support/try-runtime"]303031[dependencies]31[dependencies]32# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.33codec = { workspace = true, package = "parity-scale-codec" }32parity-scale-codec = { workspace = true }3435scale-info = { workspace = true }33scale-info = { workspace = true }3634pallets/inflation/src/benchmarking.rsdiffbeforeafterboth161617#![cfg(feature = "runtime-benchmarks")]17#![cfg(feature = "runtime-benchmarks")]181819use super::*;19use frame_benchmarking::benchmarks;20use crate::Pallet as Inflation;20use frame_support::{pallet_prelude::*, traits::Hooks};212122use frame_benchmarking::{benchmarks};22use super::*;23use frame_support::traits::OnInitialize;23use crate::Pallet as Inflation;242425benchmarks! {25benchmarks! {262627 on_initialize {27 on_initialize {28 let block1: T::BlockNumber = T::BlockNumber::from(1u32);28 let block1: BlockNumberFor<T> = 1u32.into();29 let block2: T::BlockNumber = T::BlockNumber::from(2u32);29 let block2: BlockNumberFor<T> = 2u32.into();30 Inflation::<T>::on_initialize(block1); // Create Treasury account30 <Inflation<T> as Hooks>::on_initialize(block1); // Create Treasury account31 }: { Inflation::<T>::on_initialize(block2); } // Benchmark deposit_into_existing path31 }: { <Inflation<T> as Hooks>::on_initialize(block2); } // Benchmark deposit_into_existing path323233}33}3434pallets/inflation/src/lib.rsdiffbeforeafterboth37#[cfg(test)]37#[cfg(test)]38mod tests;38mod tests;393940use frame_support::{40use frame_support::traits::{41 dispatch::{DispatchResult},42 traits::{43 fungible::{Balanced, Inspect, Mutate},41 fungible::{Balanced, Inspect, Mutate},44 Get,45 tokens::Precision,42 tokens::Precision,43 Get,46 },44};47};45use frame_system::pallet_prelude::BlockNumberFor;48pub use pallet::*;46pub use pallet::*;49use sp_runtime::{Perbill, traits::BlockNumberProvider};47use sp_runtime::{traits::BlockNumberProvider, Perbill};5051use sp_std::convert::TryInto;48use sp_std::convert::TryInto;5249615862#[frame_support::pallet]59#[frame_support::pallet]63pub mod pallet {60pub mod pallet {64 use super::*;65 use frame_support::pallet_prelude::*;61 use frame_support::pallet_prelude::*;66 use frame_system::pallet_prelude::*;62 use frame_system::pallet_prelude::*;6364 use super::*;676568 #[pallet::config]66 #[pallet::config]69 pub trait Config: frame_system::Config {67 pub trait Config: frame_system::Config {73 type TreasuryAccountId: Get<Self::AccountId>;71 type TreasuryAccountId: Get<Self::AccountId>;747275 // The block number provider73 // The block number provider76 type BlockNumberProvider: BlockNumberProvider<BlockNumber = Self::BlockNumber>;74 type BlockNumberProvider: BlockNumberProvider<BlockNumber = BlockNumberFor<Self>>;777578 /// Number of blocks that pass between treasury balance updates due to inflation76 /// Number of blocks that pass between treasury balance updates due to inflation79 #[pallet::constant]77 #[pallet::constant]80 type InflationBlockInterval: Get<Self::BlockNumber>;78 type InflationBlockInterval: Get<BlockNumberFor<Self>>;81 }79 }828083 #[pallet::pallet]81 #[pallet::pallet]95 /// Next target (relay) block when inflation will be applied93 /// Next target (relay) block when inflation will be applied96 #[pallet::storage]94 #[pallet::storage]97 pub type NextInflationBlock<T: Config> =95 pub type NextInflationBlock<T: Config> =98 StorageValue<Value = T::BlockNumber, QueryKind = ValueQuery>;96 StorageValue<Value = BlockNumberFor<T>, QueryKind = ValueQuery>;9997100 /// Next target (relay) block when inflation is recalculated98 /// Next target (relay) block when inflation is recalculated101 #[pallet::storage]99 #[pallet::storage]102 pub type NextRecalculationBlock<T: Config> =100 pub type NextRecalculationBlock<T: Config> =103 StorageValue<Value = T::BlockNumber, QueryKind = ValueQuery>;101 StorageValue<Value = BlockNumberFor<T>, QueryKind = ValueQuery>;104102105 /// Relay block when inflation has started103 /// Relay block when inflation has started106 #[pallet::storage]104 #[pallet::storage]107 pub type StartBlock<T: Config> = StorageValue<Value = T::BlockNumber, QueryKind = ValueQuery>;105 pub type StartBlock<T: Config> =106 StorageValue<Value = BlockNumberFor<T>, QueryKind = ValueQuery>;108107109 #[pallet::hooks]108 #[pallet::hooks]110 impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {109 impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {111 fn on_initialize(_: T::BlockNumber) -> Weight110 fn on_initialize(_: BlockNumberFor<T>) -> Weight112 where111 where113 <T as frame_system::Config>::BlockNumber: From<u32>,112 BlockNumberFor<T>: From<u32>,114 {113 {115 let mut consumed_weight = Weight::zero();114 let mut consumed_weight = Weight::zero();116 let mut add_weight = |reads, writes, weight| {115 let mut add_weight = |reads, writes, weight| {120119121 let block_interval: u32 = T::InflationBlockInterval::get().try_into().unwrap_or(0);120 let block_interval: u32 = T::InflationBlockInterval::get().try_into().unwrap_or(0);122 let current_relay_block = T::BlockNumberProvider::current_block_number();121 let current_relay_block = T::BlockNumberProvider::current_block_number();123 let next_inflation: T::BlockNumber = <NextInflationBlock<T>>::get();122 let next_inflation: BlockNumberFor<T> = <NextInflationBlock<T>>::get();124 add_weight(1, 0, Weight::from_parts(5_000_000, 0));123 add_weight(1, 0, Weight::from_parts(5_000_000, 0));125124126 // Apply inflation every InflationBlockInterval blocks125 // Apply inflation every InflationBlockInterval blocks129 // Recalculate inflation on the first block of the year (or if it is not initialized yet)128 // Recalculate inflation on the first block of the year (or if it is not initialized yet)130 // Do the "current_relay_block >= next_recalculation" check in the "current_relay_block >= next_inflation"129 // Do the "current_relay_block >= next_recalculation" check in the "current_relay_block >= next_inflation"131 // block because it saves InflationBlockInterval DB reads for NextRecalculationBlock.130 // block because it saves InflationBlockInterval DB reads for NextRecalculationBlock.132 let next_recalculation: T::BlockNumber = <NextRecalculationBlock<T>>::get();131 let next_recalculation: BlockNumberFor<T> = <NextRecalculationBlock<T>>::get();133 add_weight(1, 0, Weight::zero());132 add_weight(1, 0, Weight::zero());134 if current_relay_block >= next_recalculation {133 if current_relay_block >= next_recalculation {135 Self::recalculate_inflation(next_recalculation);134 Self::recalculate_inflation(next_recalculation);169 #[pallet::weight(Weight::from_parts(0, 0))]168 #[pallet::weight(Weight::from_parts(0, 0))]170 pub fn start_inflation(169 pub fn start_inflation(171 origin: OriginFor<T>,170 origin: OriginFor<T>,172 inflation_start_relay_block: T::BlockNumber,171 inflation_start_relay_block: BlockNumberFor<T>,173 ) -> DispatchResult172 ) -> DispatchResult174 where173 where175 <T as frame_system::Config>::BlockNumber: From<u32>,174 BlockNumberFor<T>: From<u32>,176 {175 {177 ensure_root(origin)?;176 ensure_root(origin)?;178177200}199}201200202impl<T: Config> Pallet<T> {201impl<T: Config> Pallet<T> {203 pub fn recalculate_inflation(recalculation_block: T::BlockNumber) {202 pub fn recalculate_inflation(recalculation_block: BlockNumberFor<T>) {204 let current_year: u32 = ((recalculation_block - <StartBlock<T>>::get())203 let current_year: u32 = ((recalculation_block - <StartBlock<T>>::get())205 / T::BlockNumber::from(YEAR))204 / BlockNumberFor::<T>::from(YEAR))206 .try_into()205 .try_into()207 .unwrap_or(0);206 .unwrap_or(0);208 let block_interval: u32 = T::InflationBlockInterval::get().try_into().unwrap_or(0);207 let block_interval: u32 = T::InflationBlockInterval::get().try_into().unwrap_or(0);pallets/inflation/src/tests.rsdiffbeforeafterboth161617#![cfg(test)]17#![cfg(test)]18#![allow(clippy::from_over_into)]18#![allow(clippy::from_over_into)]19use crate as pallet_inflation;2021use frame_support::{19use frame_support::{22 assert_ok, parameter_types,20 assert_ok, parameter_types,23 traits::{21 traits::{24 fungible::{Balanced, Inspect},22 fungible::{Balanced, Inspect},25 OnInitialize, Everything, ConstU32,26 tokens::Precision,23 tokens::Precision,24 ConstU32, Everything, OnInitialize,27 },25 },28 weights::Weight,26 weights::Weight,29};27};30use frame_system::RawOrigin;28use frame_system::RawOrigin;31use sp_core::H256;29use sp_core::H256;32use sp_runtime::{30use sp_runtime::{33 traits::{BlakeTwo256, BlockNumberProvider, IdentityLookup},31 traits::{BlakeTwo256, BlockNumberProvider, IdentityLookup},34 testing::Header,32 BuildStorage,35};33};363437type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;35use crate as pallet_inflation;3638type Block = frame_system::mocking::MockBlock<Test>;37type Block = frame_system::mocking::MockBlockU32<Test>;393839// 6-second blocks40// const YEAR: u32 = 2_629_800; // 12-second blocks41// Expected 100-block inflation for year 1 is 100 * 100_000_000 / YEAR = FIRST_YEAR_BLOCK_INFLATION40const YEAR: u64 = 5_259_600; // 6-second blocks42const YEAR: u32 = 5_259_600;41 // const YEAR: u64 = 2_629_800; // 12-second blocks42 // Expected 100-block inflation for year 1 is 100 * 100_000_000 / YEAR = FIRST_YEAR_BLOCK_INFLATION43const FIRST_YEAR_BLOCK_INFLATION: u64 = 1901;43const FIRST_YEAR_BLOCK_INFLATION: u64 = 1901;444445parameter_types! {45parameter_types! {57 type MaxLocks = MaxLocks;57 type MaxLocks = MaxLocks;58 type MaxReserves = ();58 type MaxReserves = ();59 type ReserveIdentifier = ();59 type ReserveIdentifier = ();60 type HoldIdentifier = ();61 type FreezeIdentifier = ();60 type FreezeIdentifier = ();62 type MaxHolds = ();61 type MaxHolds = ();63 type MaxFreezes = ();62 type MaxFreezes = ();63 type RuntimeHoldReason = RuntimeHoldReason;64}64}656566frame_support::construct_runtime!(66frame_support::construct_runtime!(67 pub enum Test where67 pub enum Test {68 Block = Block,69 NodeBlock = Block,70 UncheckedExtrinsic = UncheckedExtrinsic,71 {72 Balances: pallet_balances::{Pallet, Call, Storage},68 Balances: pallet_balances,73 System: frame_system::{Pallet, Call, Config, Storage, Event<T>},69 System: frame_system,74 Inflation: pallet_inflation::{Pallet, Call, Storage},70 Inflation: pallet_inflation,75 }71 }76);72);777378parameter_types! {74parameter_types! {79 pub const BlockHashCount: u64 = 250;75 pub const BlockHashCount: u32 = 250;80 pub BlockWeights: frame_system::limits::BlockWeights =76 pub BlockWeights: frame_system::limits::BlockWeights =81 frame_system::limits::BlockWeights::simple_max(Weight::from_parts(1024, 0));77 frame_system::limits::BlockWeights::simple_max(Weight::from_parts(1024, 0));82 pub const SS58Prefix: u8 = 42;78 pub const SS58Prefix: u8 = 42;83}79}848085impl frame_system::Config for Test {81impl frame_system::Config for Test {86 type BaseCallFilter = Everything;82 type BaseCallFilter = Everything;83 type Block = Block;87 type BlockWeights = ();84 type BlockWeights = ();88 type BlockLength = ();85 type BlockLength = ();89 type DbWeight = ();86 type DbWeight = ();90 type RuntimeOrigin = RuntimeOrigin;87 type RuntimeOrigin = RuntimeOrigin;91 type RuntimeCall = RuntimeCall;88 type RuntimeCall = RuntimeCall;92 type Index = u64;89 type Nonce = u64;93 type BlockNumber = u64;94 type Hash = H256;90 type Hash = H256;95 type Hashing = BlakeTwo256;91 type Hashing = BlakeTwo256;96 type AccountId = u64;92 type AccountId = u64;97 type Lookup = IdentityLookup<Self::AccountId>;93 type Lookup = IdentityLookup<Self::AccountId>;98 type Header = Header;99 type RuntimeEvent = ();94 type RuntimeEvent = ();100 type BlockHashCount = BlockHashCount;95 type BlockHashCount = BlockHashCount;101 type Version = ();96 type Version = ();112parameter_types! {107parameter_types! {113 pub TreasuryAccountId: u64 = 1234;108 pub TreasuryAccountId: u64 = 1234;114 pub const InflationBlockInterval: u32 = 100; // every time per how many blocks inflation is applied109 pub const InflationBlockInterval: u32 = 100; // every time per how many blocks inflation is applied115 pub static MockBlockNumberProvider: u64 = 0;110 pub static MockBlockNumberProvider: u32 = 0;116}111}117112118impl BlockNumberProvider for MockBlockNumberProvider {113impl BlockNumberProvider for MockBlockNumberProvider {119 type BlockNumber = u64;114 type BlockNumber = u32;120115121 fn current_block_number() -> Self::BlockNumber {116 fn current_block_number() -> Self::BlockNumber {122 Self::get()117 Self::get()131}126}132127133pub fn new_test_ext() -> sp_io::TestExternalities {128pub fn new_test_ext() -> sp_io::TestExternalities {134 frame_system::GenesisConfig::default()129 <frame_system::GenesisConfig<Test>>::default()135 .build_storage::<Test>()130 .build_storage()136 .unwrap()131 .unwrap()137 .into()132 .into()138}133}194fn inflation_second_deposit() {189fn inflation_second_deposit() {195 new_test_ext().execute_with(|| {190 new_test_ext().execute_with(|| {196 // Total issuance = 1_000_000_000191 // Total issuance = 1_000_000_000197 let initial_issuance: u64 = 1_000_000_000;192 let initial_issuance = 1_000_000_000;198 let _ = <Balances as Balanced<_>>::deposit(&1234, initial_issuance, Precision::Exact);193 let _ = <Balances as Balanced<_>>::deposit(&1234, initial_issuance, Precision::Exact);199 assert_eq!(Balances::free_balance(1234), initial_issuance);194 assert_eq!(Balances::free_balance(1234), initial_issuance);200 MockBlockNumberProvider::set(1);195 MockBlockNumberProvider::set(1);203 assert_ok!(Inflation::start_inflation(RawOrigin::Root.into(), 1));198 assert_ok!(Inflation::start_inflation(RawOrigin::Root.into(), 1));204199205 // Next inflation deposit happens when block is greater then or equal to NextInflationBlock200 // Next inflation deposit happens when block is greater then or equal to NextInflationBlock206 let mut block: u64 = 2;201 let mut block = 2;207 let balance_before: u64 = Balances::free_balance(1234);202 let balance_before = Balances::free_balance(1234);208 while block < <pallet_inflation::NextInflationBlock<Test>>::get() {203 while block < <pallet_inflation::NextInflationBlock<Test>>::get() {209 MockBlockNumberProvider::set(block as u64);204 MockBlockNumberProvider::set(block);210 Inflation::on_initialize(0);205 Inflation::on_initialize(0);211 block += 1;206 block += 1;212 }207 }213 let balance_just_before: u64 = Balances::free_balance(1234);208 let balance_just_before = Balances::free_balance(1234);214 assert_eq!(balance_before, balance_just_before);209 assert_eq!(balance_before, balance_just_before);215210216 // The block with inflation211 // The block with inflation217 MockBlockNumberProvider::set(block as u64);212 MockBlockNumberProvider::set(block);218 Inflation::on_initialize(0);213 Inflation::on_initialize(0);219 let balance_after: u64 = Balances::free_balance(1234);214 let balance_after = Balances::free_balance(1234);220 assert_eq!(balance_after - balance_just_before, block_inflation!());215 assert_eq!(balance_after - balance_just_before, block_inflation!());221 });216 });222}217}241 Inflation::on_initialize(0);236 Inflation::on_initialize(0);242 }237 }243 assert_eq!(238 assert_eq!(244 initial_issuance + (FIRST_YEAR_BLOCK_INFLATION * (YEAR / 100)),239 initial_issuance + (FIRST_YEAR_BLOCK_INFLATION * ((YEAR as u64) / 100)),245 <Balances as Inspect<_>>::total_issuance()240 <Balances as Inspect<_>>::total_issuance()246 );241 );247242250 let block_inflation_year_2 = block_inflation!();245 let block_inflation_year_2 = block_inflation!();251 // Expected 100-block inflation for year 2: 100 * 9.33% * initial issuance * 110% / YEAR == 1951246 // Expected 100-block inflation for year 2: 100 * 9.33% * initial issuance * 110% / YEAR == 1951252 let expecter_year_2_inflation: u64 = (initial_issuance247 let expecter_year_2_inflation: u64 = (initial_issuance253 + FIRST_YEAR_BLOCK_INFLATION * YEAR / 100)248 + FIRST_YEAR_BLOCK_INFLATION * (YEAR as u64) / 100)254 * 933 * 100 / (10000 * YEAR);249 * 933 * 100 / (10000 * (YEAR as u64));255 assert_eq!(block_inflation_year_2 / 10, expecter_year_2_inflation / 10); // divide by 10 for approx. equality250 assert_eq!(block_inflation_year_2 / 10, expecter_year_2_inflation / 10); // divide by 10 for approx. equality256 });251 });257}252}260fn inflation_start_large_kusama_block() {255fn inflation_start_large_kusama_block() {261 new_test_ext().execute_with(|| {256 new_test_ext().execute_with(|| {262 // Total issuance = 1_000_000_000257 // Total issuance = 1_000_000_000263 let initial_issuance: u64 = 1_000_000_000;258 let initial_issuance = 1_000_000_000;264 let start_block: u64 = 10457457;259 let start_block = 10457457;265 let _ = <Balances as Balanced<_>>::deposit(&1234, initial_issuance, Precision::Exact);260 let _ = <Balances as Balanced<_>>::deposit(&1234, initial_issuance, Precision::Exact);266 assert_eq!(Balances::free_balance(1234), initial_issuance);261 assert_eq!(Balances::free_balance(1234), initial_issuance);267 MockBlockNumberProvider::set(start_block);262 MockBlockNumberProvider::set(start_block);280 Inflation::on_initialize(0);275 Inflation::on_initialize(0);281 }276 }282 assert_eq!(277 assert_eq!(283 initial_issuance + (FIRST_YEAR_BLOCK_INFLATION * (YEAR / 100)),278 initial_issuance + (FIRST_YEAR_BLOCK_INFLATION * ((YEAR as u64) / 100)),284 <Balances as Inspect<_>>::total_issuance()279 <Balances as Inspect<_>>::total_issuance()285 );280 );286281289 let block_inflation_year_2 = block_inflation!();284 let block_inflation_year_2 = block_inflation!();290 // Expected 100-block inflation for year 2: 100 * 9.33% * initial issuance * 110% / YEAR == 1951285 // Expected 100-block inflation for year 2: 100 * 9.33% * initial issuance * 110% / YEAR == 1951291 let expecter_year_2_inflation: u64 = (initial_issuance286 let expecter_year_2_inflation: u64 = (initial_issuance292 + FIRST_YEAR_BLOCK_INFLATION * YEAR / 100)287 + FIRST_YEAR_BLOCK_INFLATION * (YEAR as u64) / 100)293 * 933 * 100 / (10000 * YEAR);288 * 933 * 100 / (10000 * (YEAR as u64));294 assert_eq!(block_inflation_year_2 / 10, expecter_year_2_inflation / 10); // divide by 10 for approx. equality289 assert_eq!(block_inflation_year_2 / 10, expecter_year_2_inflation / 10); // divide by 10 for approx. equality295 });290 });296}291}327#[test]322#[test]328fn inflation_rate_by_year() {323fn inflation_rate_by_year() {329 new_test_ext().execute_with(|| {324 new_test_ext().execute_with(|| {330 let payouts: u64 = YEAR / InflationBlockInterval::get() as u64;325 let payouts = (YEAR / InflationBlockInterval::get()) as u64;331326332 // Inflation starts at 10% and does down by 2/3% every year until year 9 (included),327 // Inflation starts at 10% and does down by 2/3% every year until year 9 (included),333 // then it is flat.328 // then it is flat.334 let payout_by_year: [u64; 11] = [1000, 933, 867, 800, 733, 667, 600, 533, 467, 400, 400];329 let payout_by_year: [u64; 11] = [1000, 933, 867, 800, 733, 667, 600, 533, 467, 400, 400];335330336 // For accuracy total issuance = payout0 * payouts * 10;331 // For accuracy total issuance = payout0 * payouts * 10;337 let initial_issuance: u64 = payout_by_year[0] * payouts * 10;332 let initial_issuance = payout_by_year[0] * payouts * 10;338 let _ = <Balances as Balanced<_>>::deposit(&1234, initial_issuance, Precision::Exact);333 let _ = <Balances as Balanced<_>>::deposit(&1234, initial_issuance, Precision::Exact);339 assert_eq!(Balances::free_balance(1234), initial_issuance);334 assert_eq!(Balances::free_balance(1234), initial_issuance);340335pallets/maintenance/Cargo.tomldiffbeforeafterboth10version = "0.1.0"10version = "0.1.0"111112[dependencies]12[dependencies]13# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.14codec = { workspace = true, package = "parity-scale-codec" }13parity-scale-codec = { workspace = true }1516scale-info = { workspace = true }14scale-info = { workspace = true }171518frame-benchmarking = { workspace = true, optional = true }16frame-benchmarking = { workspace = true, optional = true }19frame-support = { workspace = true }17frame-support = { workspace = true }20frame-system = { workspace = true }18frame-system = { workspace = true }21sp-core = { workspace = true }19sp-core = { workspace = true }20sp-runtime = { workspace = true }22sp-std = { workspace = true }21sp-std = { workspace = true }232224[features]23[features]25default = ["std"]24default = ["std"]26runtime-benchmarks = ["frame-benchmarking", "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks"]25runtime-benchmarks = ["frame-benchmarking", "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks"]27std = ["codec/std", "frame-benchmarking/std", "frame-support/std", "frame-system/std", "scale-info/std", "sp-core/std", "sp-std/std"]26std = [27 "frame-benchmarking/std",28 "frame-support/std",29 "frame-system/std",30 "parity-scale-codec/std",31 "scale-info/std",32 "sp-core/std",33 "sp-runtime/std",34 "sp-std/std",35]28try-runtime = ["frame-support/try-runtime"]36try-runtime = ["frame-support/try-runtime"]2937pallets/maintenance/src/benchmarking.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use super::*;18use crate::{Pallet as Maintenance, Config};1920use codec::Encode;21use frame_benchmarking::benchmarks;17use frame_benchmarking::benchmarks;22use frame_system::RawOrigin;23use frame_support::{ensure, pallet_prelude::Weight, traits::StorePreimage};18use frame_support::{ensure, pallet_prelude::Weight, traits::StorePreimage};19use frame_system::RawOrigin;20use parity_scale_codec::Encode;2122use super::*;23use crate::{Config, Pallet as Maintenance};242425benchmarks! {25benchmarks! {26 enable {26 enable {pallets/maintenance/src/lib.rsdiffbeforeafterboth27pub mod pallet {27pub mod pallet {282829 use frame_support::{dispatch::*, pallet_prelude::*};29 use frame_support::{30 use frame_support::traits::{QueryPreimage, StorePreimage, EnsureOrigin};30 dispatch::*,31 pallet_prelude::*,32 traits::{EnsureOrigin, QueryPreimage, StorePreimage},33 };31 use frame_system::pallet_prelude::*;34 use frame_system::pallet_prelude::*;32 use sp_core::H256;35 use sp_core::H256;36 use sp_runtime::traits::Dispatchable;333734 use crate::weights::WeightInfo;38 use crate::weights::WeightInfo;3539111 hash: H256,115 hash: H256,112 weight_bound: Weight,116 weight_bound: Weight,113 ) -> DispatchResultWithPostInfo {117 ) -> DispatchResultWithPostInfo {114 use codec::Decode;118 use parity_scale_codec::Decode;115119116 T::PreimageOrigin::ensure_origin(origin.clone())?;120 T::PreimageOrigin::ensure_origin(origin.clone())?;117121pallets/nonfungible/Cargo.tomldiffbeforeafterboth5version = "0.1.14"5version = "0.1.14"667[dependencies]7[dependencies]8# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.9codec = { workspace = true, package = "parity-scale-codec" }1011evm-coder = { workspace = true }8evm-coder = { workspace = true }12frame-benchmarking = { workspace = true, optional = true }9frame-benchmarking = { workspace = true, optional = true }16pallet-evm = { workspace = true }13pallet-evm = { workspace = true }17pallet-evm-coder-substrate = { workspace = true }14pallet-evm-coder-substrate = { workspace = true }18pallet-structure = { workspace = true }15pallet-structure = { workspace = true }16parity-scale-codec = { workspace = true }19scale-info = { workspace = true }17scale-info = { workspace = true }20sp-core = { workspace = true }18sp-core = { workspace = true }21sp-runtime = { workspace = true }19sp-runtime = { workspace = true }pallets/nonfungible/src/benchmarking.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use super::*;18use crate::{Pallet, Config, NonfungibleHandle};191620use frame_benchmarking::{benchmarks, account};17use frame_benchmarking::{account, benchmarks};21use pallet_common::{18use pallet_common::{22 bench_init,19 bench_init,23 benchmarking::{20 benchmarking::{24 create_collection_raw, property_key, property_value, load_is_admin_and_property_permissions,21 create_collection_raw, load_is_admin_and_property_permissions, property_key, property_value,25 },22 },26 CommonCollectionOperations,23 CommonCollectionOperations,27};24};28use sp_std::prelude::*;25use sp_std::prelude::*;29use up_data_structs::{26use up_data_structs::{30 CollectionMode, MAX_ITEMS_PER_BATCH, MAX_PROPERTIES_PER_ITEM, budget::Unlimited,27 budget::Unlimited, CollectionMode, PropertyPermission, MAX_ITEMS_PER_BATCH,31 PropertyPermission,28 MAX_PROPERTIES_PER_ITEM,32};29};3031use super::*;32use crate::{Config, NonfungibleHandle, Pallet};333334const SEED: u32 = 1;34const SEED: u32 = 1;3535pallets/nonfungible/src/common.rsdiffbeforeafterboth17use core::marker::PhantomData;17use core::marker::PhantomData;181819use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};19use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};20use up_data_structs::{21 TokenId, CreateItemExData, CollectionId, budget::Budget, Property, PropertyKey,22 PropertyKeyPermission, PropertyValue, TokenOwnerError,23};24use pallet_common::{20use pallet_common::{25 CommonCollectionOperations, CommonWeightInfo, RefungibleExtensions, with_weight,21 init_token_properties_delta, weights::WeightInfo as _, with_weight, CommonCollectionOperations,26 weights::WeightInfo as _, SelfWeightOf as PalletCommonWeightOf, init_token_properties_delta,22 CommonWeightInfo, RefungibleExtensions, SelfWeightOf as PalletCommonWeightOf,27};23};28use pallet_structure::Pallet as PalletStructure;24use pallet_structure::Pallet as PalletStructure;29use sp_runtime::DispatchError;25use sp_runtime::DispatchError;30use sp_std::{vec::Vec, vec};26use sp_std::{vec, vec::Vec};27use up_data_structs::{28 budget::Budget, CollectionId, CreateItemExData, Property, PropertyKey, PropertyKeyPermission,29 PropertyValue, TokenId, TokenOwnerError,30};313132use crate::{32use crate::{33 AccountBalance, Allowance, Config, CreateItemData, Error, NonfungibleHandle, Owned, Pallet,33 weights::WeightInfo, AccountBalance, Allowance, Config, CreateItemData, Error,34 SelfWeightOf, TokenData, weights::WeightInfo, TokensMinted, TokenProperties,34 NonfungibleHandle, Owned, Pallet, SelfWeightOf, TokenData, TokenProperties, TokensMinted,35};35};363637pub struct CommonWeights<T: Config>(PhantomData<T>);37pub struct CommonWeights<T: Config>(PhantomData<T>);pallets/nonfungible/src/erc.rsdiffbeforeafterboth232324use alloc::string::ToString;24use alloc::string::ToString;25use core::{25use core::{26 char::{REPLACEMENT_CHARACTER, decode_utf16},26 char::{decode_utf16, REPLACEMENT_CHARACTER},27 convert::TryInto,27 convert::TryInto,28};28};2929use evm_coder::{abi::AbiType, AbiCoder, ToLog, generate_stubgen, solidity_interface, types::*};30use evm_coder::{abi::AbiType, generate_stubgen, solidity_interface, types::*, AbiCoder, ToLog};30use frame_support::BoundedVec;31use frame_support::BoundedVec;31use up_data_structs::{32 TokenId, PropertyPermission, PropertyKeyPermission, Property, CollectionId, PropertyKey,33 CollectionPropertiesVec,34};35use pallet_evm_coder_substrate::{36 dispatch_to_evm, frontier_contract,37 execution::{Result, PreDispatch, Error},38};39use sp_std::{vec::Vec, vec};40use pallet_common::{32use pallet_common::{41 CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations,42 erc::{CommonEvmHandler, PrecompileResult, CollectionCall, static_property::key},33 erc::{static_property::key, CollectionCall, CommonEvmHandler, PrecompileResult},43 eth::{self, TokenUri},34 eth::{self, TokenUri},44 CommonWeightInfo,35 CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations, CommonWeightInfo,45};36};46use pallet_evm::{account::CrossAccountId, PrecompileHandle};37use pallet_evm::{account::CrossAccountId, PrecompileHandle};47use pallet_evm_coder_substrate::call;38use pallet_evm_coder_substrate::{39 call, dispatch_to_evm,40 execution::{Error, PreDispatch, Result},41 frontier_contract,42};48use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};43use pallet_structure::{weights::WeightInfo as _, SelfWeightOf as StructureWeight};49use sp_core::{U256, Get};44use sp_core::{Get, U256};45use sp_std::{vec, vec::Vec};46use up_data_structs::{47 CollectionId, CollectionPropertiesVec, Property, PropertyKey, PropertyKeyPermission,48 PropertyPermission, TokenId,49};505051use crate::{51use crate::{52 AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,52 common::CommonWeights, weights::WeightInfo, AccountBalance, Config, CreateItemData,53 TokenProperties, SelfWeightOf, weights::WeightInfo, common::CommonWeights,53 NonfungibleHandle, Pallet, SelfWeightOf, TokenData, TokenProperties, TokensMinted,54};54};555556/// Nft events.56/// Nft events.pallets/nonfungible/src/lib.rsdiffbeforeafterboth909091#![cfg_attr(not(feature = "std"), no_std)]91#![cfg_attr(not(feature = "std"), no_std)]9293use core::ops::Deref;929493use erc::ERC721Events;95use erc::ERC721Events;94use evm_coder::ToLog;96use evm_coder::ToLog;95use frame_support::{97use frame_support::{96 BoundedVec, ensure, fail, transactional,98 dispatch::{Pays, PostDispatchInfo},97 storage::with_transaction,99 ensure, fail,98 pallet_prelude::DispatchResultWithPostInfo,100 pallet_prelude::*,99 pallet_prelude::Weight,101 storage::with_transaction,100 dispatch::{PostDispatchInfo, Pays},102 transactional, BoundedVec,101};103};104pub use pallet::*;102use up_data_structs::{105use pallet_common::{103 AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData,104 mapping::TokenAddressMapping, budget::Budget, Property, PropertyKey, PropertyValue,106 eth::collection_id_to_address, helpers::add_weight_to_post_info,107 weights::WeightInfo as CommonWeightInfo, CollectionHandle, Error as CommonError,105 PropertyKeyPermission, PropertyScope, TokenChild, AuxPropertyValue, PropertiesPermissionMap,108 Event as CommonEvent, Pallet as PalletCommon, SelfWeightOf as PalletCommonWeightOf,106 TokenProperties as TokenPropertiesT,107};109};108use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};110use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};109use pallet_common::{111use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};110 Error as CommonError, Pallet as PalletCommon, Event as CommonEvent, CollectionHandle,111 eth::collection_id_to_address, SelfWeightOf as PalletCommonWeightOf,112 weights::WeightInfo as CommonWeightInfo, helpers::add_weight_to_post_info,113};114use pallet_structure::{Pallet as PalletStructure, Error as StructureError};112use pallet_structure::{Error as StructureError, Pallet as PalletStructure};115use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};113use parity_scale_codec::{Decode, Encode, MaxEncodedLen};114use scale_info::TypeInfo;116use sp_core::{Get, H160};115use sp_core::{Get, H160};117use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};116use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};118use sp_std::{vec::Vec, vec, collections::btree_map::BTreeMap};117use sp_std::{collections::btree_map::BTreeMap, vec, vec::Vec};119use core::ops::Deref;118use up_data_structs::{120use codec::{Encode, Decode, MaxEncodedLen};119 budget::Budget, mapping::TokenAddressMapping, AccessMode, AuxPropertyValue, CollectionId,121use scale_info::TypeInfo;120 CreateCollectionData, CreateNftExData, CustomDataLimit, PropertiesPermissionMap, Property,122121 PropertyKey, PropertyKeyPermission, PropertyScope, PropertyValue, TokenChild, TokenId,122 TokenProperties as TokenPropertiesT,123pub use pallet::*;123};124use weights::WeightInfo;124use weights::WeightInfo;125#[cfg(feature = "runtime-benchmarks")]125#[cfg(feature = "runtime-benchmarks")]126pub mod benchmarking;126pub mod benchmarking;147147148#[frame_support::pallet]148#[frame_support::pallet]149pub mod pallet {149pub mod pallet {150 use super::*;151 use frame_support::{150 use frame_support::{152 Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key, traits::StorageVersion,151 pallet_prelude::*, storage::Key, traits::StorageVersion, Blake2_128Concat, Twox64Concat,153 };152 };154 use up_data_structs::{CollectionId, TokenId};153 use up_data_structs::{CollectionId, TokenId};154155 use super::weights::WeightInfo;155 use super::{weights::WeightInfo, *};156156157 #[pallet::error]157 #[pallet::error]158 pub enum Error<T> {158 pub enum Error<T> {285 #[pallet::genesis_config]285 #[pallet::genesis_config]286 pub struct GenesisConfig<T>(PhantomData<T>);286 pub struct GenesisConfig<T>(PhantomData<T>);287287288 #[cfg(feature = "std")]289 impl<T: Config> Default for GenesisConfig<T> {288 impl<T: Config> Default for GenesisConfig<T> {290 fn default() -> Self {289 fn default() -> Self {291 Self(Default::default())290 Self(Default::default())292 }291 }293 }292 }294293295 #[pallet::genesis_build]294 #[pallet::genesis_build]296 impl<T: Config> GenesisBuild<T> for GenesisConfig<T> {295 impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {297 fn build(&self) {296 fn build(&self) {298 StorageVersion::new(1).put::<Pallet<T>>();297 StorageVersion::new(1).put::<Pallet<T>>();299 }298 }pallets/refungible/Cargo.tomldiffbeforeafterboth5version = "0.2.13"5version = "0.2.13"667[dependencies]7[dependencies]8# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.9codec = { workspace = true, package = "parity-scale-codec" }8parity-scale-codec = { workspace = true }1011scale-info = { workspace = true }9scale-info = { workspace = true }1210pallets/refungible/src/benchmarking.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use super::*;18use crate::{Pallet, Config, RefungibleHandle};191620use core::convert::TryInto;17use core::{convert::TryInto, iter::IntoIterator};21use core::iter::IntoIterator;1822use frame_benchmarking::{benchmarks, account};19use frame_benchmarking::{account, benchmarks};23use pallet_common::{20use pallet_common::{24 bench_init,21 bench_init,25 benchmarking::{22 benchmarking::{26 create_collection_raw, property_key, property_value, load_is_admin_and_property_permissions,23 create_collection_raw, load_is_admin_and_property_permissions, property_key, property_value,27 },24 },28};25};29use sp_std::prelude::*;26use sp_std::prelude::*;30use up_data_structs::{27use up_data_structs::{31 CollectionMode, MAX_ITEMS_PER_BATCH, MAX_PROPERTIES_PER_ITEM, budget::Unlimited,28 budget::Unlimited, CollectionMode, PropertyPermission, MAX_ITEMS_PER_BATCH,32 PropertyPermission,29 MAX_PROPERTIES_PER_ITEM,33};30};3132use super::*;33use crate::{Config, Pallet, RefungibleHandle};343435const SEED: u32 = 1;35const SEED: u32 = 1;3636pallets/refungible/src/common.rsdiffbeforeafterboth161617use core::marker::PhantomData;17use core::marker::PhantomData;181819use sp_std::collections::btree_map::BTreeMap;20use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight, traits::Get};19use frame_support::{21use up_data_structs::{20 dispatch::DispatchResultWithPostInfo, ensure, fail, traits::Get, weights::Weight,22 CollectionId, TokenId, CreateItemExData, budget::Budget, Property, PropertyKey, PropertyValue,21};23 PropertyKeyPermission, CreateRefungibleExMultipleOwners, CreateRefungibleExSingleOwner,24 TokenOwnerError,25};26use pallet_common::{22use pallet_common::{27 CommonCollectionOperations, CommonWeightInfo, RefungibleExtensions, with_weight,23 init_token_properties_delta, weights::WeightInfo as _, with_weight, CommonCollectionOperations,28 weights::WeightInfo as _, init_token_properties_delta,24 CommonWeightInfo, RefungibleExtensions,29};25};30use pallet_structure::{Pallet as PalletStructure, Error as StructureError};26use pallet_structure::{Error as StructureError, Pallet as PalletStructure};31use sp_runtime::{DispatchError};27use sp_runtime::DispatchError;32use sp_std::{vec::Vec, vec};28use sp_std::{collections::btree_map::BTreeMap, vec, vec::Vec};29use up_data_structs::{30 budget::Budget, CollectionId, CreateItemExData, CreateRefungibleExMultipleOwners,31 CreateRefungibleExSingleOwner, Property, PropertyKey, PropertyKeyPermission, PropertyValue,32 TokenId, TokenOwnerError,33};333434use crate::{35use crate::{35 AccountBalance, Allowance, Balance, Config, Error, Owned, Pallet, RefungibleHandle,36 weights::WeightInfo, AccountBalance, Allowance, Balance, Config, CreateItemData, Error, Owned,36 SelfWeightOf, weights::WeightInfo, TokensMinted, TotalSupply, CreateItemData, TokenProperties,37 Pallet, RefungibleHandle, SelfWeightOf, TokenProperties, TokensMinted, TotalSupply,37};38};383939macro_rules! max_weight_of {40macro_rules! max_weight_of {496 return Ok(false);497 return Ok(false);497 }498 }498499499 let is_bundle_owner = <PalletStructure<T>>::check_indirectly_owned(500 <PalletStructure<T>>::check_indirectly_owned(500 maybe_owner.clone(),501 maybe_owner.clone(),501 self.id,502 self.id,502 token,503 token,503 None,504 None,504 nesting_budget,505 nesting_budget,505 )?;506 )506507 Ok(is_bundle_owner)508 }507 }509508510 /// Returns 10 token in no particular order.509 /// Returns 10 token in no particular order.pallets/refungible/src/erc.rsdiffbeforeafterboth232324use alloc::string::ToString;24use alloc::string::ToString;25use core::{25use core::{26 char::{REPLACEMENT_CHARACTER, decode_utf16},26 char::{decode_utf16, REPLACEMENT_CHARACTER},27 convert::TryInto,27 convert::TryInto,28};28};2929use evm_coder::{abi::AbiType, AbiCoder, ToLog, generate_stubgen, solidity_interface, types::*};30use evm_coder::{abi::AbiType, generate_stubgen, solidity_interface, types::*, AbiCoder, ToLog};30use frame_support::{BoundedBTreeMap, BoundedVec};31use frame_support::{BoundedBTreeMap, BoundedVec};31use pallet_common::{32use pallet_common::{32 CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations,33 Error as CommonError,34 erc::{CommonEvmHandler, CollectionCall, static_property::key},33 erc::{static_property::key, CollectionCall, CommonEvmHandler},35 eth::{self, TokenUri},34 eth::{self, TokenUri},35 CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations,36 Error as CommonError,36};37};37use pallet_evm::{account::CrossAccountId, PrecompileHandle};38use pallet_evm::{account::CrossAccountId, PrecompileHandle};38use pallet_evm_coder_substrate::{39use pallet_evm_coder_substrate::{39 call, dispatch_to_evm,40 call, dispatch_to_evm,40 execution::{PreDispatch, Result, Error},41 execution::{Error, PreDispatch, Result},41 frontier_contract,42 frontier_contract,42};43};43use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};44use pallet_structure::{weights::WeightInfo as _, SelfWeightOf as StructureWeight};44use sp_core::{H160, U256, Get};45use sp_core::{Get, H160, U256};45use sp_std::{collections::btree_map::BTreeMap, vec::Vec, vec};46use sp_std::{collections::btree_map::BTreeMap, vec, vec::Vec};46use up_data_structs::{47use up_data_structs::{47 CollectionId, CollectionPropertiesVec, mapping::TokenAddressMapping, Property, PropertyKey,48 mapping::TokenAddressMapping, CollectionId, CollectionPropertiesVec, Property, PropertyKey,48 PropertyKeyPermission, PropertyPermission, TokenId, TokenOwnerError,49 PropertyKeyPermission, PropertyPermission, TokenId, TokenOwnerError,49};50};505151use crate::{52use crate::{52 AccountBalance, Balance, Config, CreateItemData, Pallet, RefungibleHandle, TokenProperties,53 weights::WeightInfo, AccountBalance, Balance, Config, CreateItemData, Pallet, RefungibleHandle,53 TokensMinted, TotalSupply, SelfWeightOf, weights::WeightInfo,54 SelfWeightOf, TokenProperties, TokensMinted, TotalSupply,54};55};555656frontier_contract! {57frontier_contract! {pallets/refungible/src/erc_token.rsdiffbeforeafterboth20//! Method implementations are mostly doing parameter conversion and calling Nonfungible Pallet methods.20//! Method implementations are mostly doing parameter conversion and calling Nonfungible Pallet methods.212122use core::{22use core::{23 char::{REPLACEMENT_CHARACTER, decode_utf16},23 char::{decode_utf16, REPLACEMENT_CHARACTER},24 convert::TryInto,24 convert::TryInto,25 ops::Deref,25 ops::Deref,26};26};2727use evm_coder::{abi::AbiType, ToLog, generate_stubgen, solidity_interface, types::*};28use evm_coder::{abi::AbiType, generate_stubgen, solidity_interface, types::*, ToLog};28use pallet_common::{29use pallet_common::{29 erc::{CommonEvmHandler, PrecompileResult},30 erc::{CommonEvmHandler, PrecompileResult},30 eth::{collection_id_to_address, CrossAddress},31 eth::{collection_id_to_address, CrossAddress},31 CommonWeightInfo,32 CommonWeightInfo,32};33};33use pallet_evm::{account::CrossAccountId, PrecompileHandle};34use pallet_evm::{account::CrossAccountId, PrecompileHandle};34use pallet_evm_coder_substrate::{35use pallet_evm_coder_substrate::{35 call, dispatch_to_evm, WithRecorder, frontier_contract,36 call, dispatch_to_evm,36 execution::{Result, PreDispatch},37 execution::{PreDispatch, Result},38 frontier_contract, WithRecorder,37};39};38use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};40use pallet_structure::{weights::WeightInfo as _, SelfWeightOf as StructureWeight};41use sp_core::U256;39use sp_std::vec::Vec;42use sp_std::vec::Vec;40use sp_core::U256;41use up_data_structs::TokenId;43use up_data_structs::TokenId;424443use crate::{45use crate::{44 Allowance, Balance, Config, Pallet, RefungibleHandle, TotalSupply, common::CommonWeights,46 common::CommonWeights, weights::WeightInfo, Allowance, Balance, Config, Pallet,45 SelfWeightOf, weights::WeightInfo,47 RefungibleHandle, SelfWeightOf, TotalSupply,46};48};474948/// Refungible token handle contains information about token's collection and id50/// Refungible token handle contains information about token's collection and idpallets/refungible/src/lib.rsdiffbeforeafterboth878788#![cfg_attr(not(feature = "std"), no_std)]88#![cfg_attr(not(feature = "std"), no_std)]8990use crate::erc_token::ERC20Events;91use crate::erc::ERC721Events;928993use core::{ops::Deref, cmp::Ordering};90use core::{cmp::Ordering, ops::Deref};9194use evm_coder::ToLog;92use evm_coder::ToLog;95use frame_support::{ensure, storage::with_transaction, transactional};93use frame_support::{ensure, storage::with_transaction, transactional};94pub use pallet::*;95use pallet_common::{96 eth::collection_id_to_address, Error as CommonError, Event as CommonEvent,97 Pallet as PalletCommon,98};96use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};99use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};97use pallet_evm_coder_substrate::WithRecorder;100use pallet_evm_coder_substrate::WithRecorder;98use pallet_common::{99 Error as CommonError, eth::collection_id_to_address, Event as CommonEvent,100 Pallet as PalletCommon,101};102use pallet_structure::Pallet as PalletStructure;101use pallet_structure::Pallet as PalletStructure;103use sp_core::{Get, H160};102use sp_core::{Get, H160};104use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};103use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};105use sp_std::{vec::Vec, vec, collections::btree_map::BTreeMap};104use sp_std::{collections::btree_map::BTreeMap, vec, vec::Vec};106use up_data_structs::{105use up_data_structs::{107 AccessMode, budget::Budget, CollectionId, CreateCollectionData, mapping::TokenAddressMapping,106 budget::Budget, mapping::TokenAddressMapping, AccessMode, CollectionId, CreateCollectionData,108 MAX_REFUNGIBLE_PIECES, Property, PropertyKey, PropertyKeyPermission, PropertyScope,107 CreateRefungibleExMultipleOwners, PropertiesPermissionMap, Property, PropertyKey,109 PropertyValue, TokenId, PropertiesPermissionMap, CreateRefungibleExMultipleOwners,108 PropertyKeyPermission, PropertyScope, PropertyValue, TokenId, TokenOwnerError,110 TokenOwnerError, TokenProperties as TokenPropertiesT,109 TokenProperties as TokenPropertiesT, MAX_REFUNGIBLE_PIECES,111};110};112111113pub use pallet::*;112use crate::{erc::ERC721Events, erc_token::ERC20Events};114#[cfg(feature = "runtime-benchmarks")]113#[cfg(feature = "runtime-benchmarks")]115pub mod benchmarking;114pub mod benchmarking;116pub mod common;115pub mod common;124123125#[frame_support::pallet]124#[frame_support::pallet]126pub mod pallet {125pub mod pallet {127 use super::*;128 use frame_support::{126 use frame_support::{129 Blake2_128, Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key,127 pallet_prelude::*, storage::Key, traits::StorageVersion, Blake2_128, Blake2_128Concat,130 traits::StorageVersion,128 Twox64Concat,131 };129 };132 use up_data_structs::{CollectionId, TokenId};130 use up_data_structs::{CollectionId, TokenId};131133 use super::weights::WeightInfo;132 use super::{weights::WeightInfo, *};134133135 #[pallet::error]134 #[pallet::error]136 pub enum Error<T> {135 pub enum Error<T> {pallets/scheduler-v2/Cargo.tomldiffbeforeafterbothno changes
pallets/scheduler-v2/src/benchmarking.rsdiffbeforeafterbothno changes
pallets/scheduler-v2/src/lib.rsdiffbeforeafterbothno changes
pallets/scheduler-v2/src/mock.rsdiffbeforeafterbothno changes
pallets/scheduler-v2/src/tests.rsdiffbeforeafterbothno changes
pallets/scheduler-v2/src/weights.rsdiffbeforeafterbothno changes
pallets/structure/Cargo.tomldiffbeforeafterboth4version = "0.1.2"4version = "0.1.2"556[dependencies]6[dependencies]7# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.8codec = { workspace = true, package = "parity-scale-codec" }7parity-scale-codec = { workspace = true }910scale-info = { workspace = true }8scale-info = { workspace = true }11915log = { workspace = true }13log = { workspace = true }16pallet-common = { workspace = true }14pallet-common = { workspace = true }17pallet-evm = { workspace = true }15pallet-evm = { workspace = true }16sp-runtime = { workspace = true }18sp-std = { workspace = true }17sp-std = { workspace = true }19up-data-structs = { workspace = true }18up-data-structs = { workspace = true }201927 "frame-system/std",26 "frame-system/std",28 "pallet-common/std",27 "pallet-common/std",29 "pallet-evm/std",28 "pallet-evm/std",30 "codec/std",29 "parity-scale-codec/std",31 "scale-info/std",30 "scale-info/std",31 "sp-runtime/std",32 "sp-std/std",32 "sp-std/std",33 "up-data-structs/std",33 "up-data-structs/std",34]34]pallets/structure/src/benchmarking.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use super::*;181619use frame_benchmarking::{benchmarks, account};17use frame_benchmarking::{account, benchmarks};20use frame_support::traits::{fungible::Balanced, Get, tokens::Precision};18use frame_support::traits::{fungible::Balanced, tokens::Precision, Get};21use up_data_structs::{22 CreateCollectionData, CollectionMode, CreateItemData, CreateNftData, budget::Unlimited,23};24use pallet_common::Config as CommonConfig;19use pallet_common::Config as CommonConfig;25use pallet_evm::account::CrossAccountId;20use pallet_evm::account::CrossAccountId;21use up_data_structs::{22 budget::Unlimited, CollectionMode, CreateCollectionData, CreateItemData, CreateNftData,23};2425use super::*;262627const SEED: u32 = 1;27const SEED: u32 = 1;2828pallets/structure/src/lib.rsdiffbeforeafterboth535354#![cfg_attr(not(feature = "std"), no_std)]54#![cfg_attr(not(feature = "std"), no_std)]555556use pallet_common::CommonCollectionOperations;56use frame_support::{57 dispatch::{DispatchResult, DispatchResultWithPostInfo},58 fail,59 pallet_prelude::*,60};57use pallet_common::{erc::CrossAccountId, eth::is_collection};61use pallet_common::{62 dispatch::CollectionDispatch, erc::CrossAccountId, eth::is_collection,63 CommonCollectionOperations,64};58use sp_std::collections::btree_set::BTreeSet;65use sp_std::collections::btree_set::BTreeSet;5960use frame_support::dispatch::{DispatchError, DispatchResult, DispatchResultWithPostInfo};61use frame_support::fail;62pub use pallet::*;63use pallet_common::{dispatch::CollectionDispatch};64use up_data_structs::{66use up_data_structs::{65 CollectionId, TokenId, mapping::TokenAddressMapping, budget::Budget, TokenOwnerError,67 budget::Budget, mapping::TokenAddressMapping, CollectionId, TokenId, TokenOwnerError,66};68};676968#[cfg(feature = "runtime-benchmarks")]70#[cfg(feature = "runtime-benchmarks")]69pub mod benchmarking;71pub mod benchmarking;70pub mod weights;72pub mod weights;7374pub use pallet::*;717572pub type SelfWeightOf<T> = <T as crate::Config>::WeightInfo;76pub type SelfWeightOf<T> = <T as crate::Config>::WeightInfo;737774#[frame_support::pallet]78#[frame_support::pallet]75pub mod pallet {79pub mod pallet {76 use frame_support::Parameter;77 use frame_support::dispatch::{GetDispatchInfo, UnfilteredDispatchable};80 use frame_support::{dispatch::GetDispatchInfo, traits::UnfilteredDispatchable, Parameter};78 use frame_support::pallet_prelude::*;798180 use super::*;82 use super::*;8183pallets/unique/Cargo.tomldiffbeforeafterboth19limit-testing = ["up-data-structs/limit-testing"]19limit-testing = ["up-data-structs/limit-testing"]20runtime-benchmarks = ['frame-benchmarking', 'pallet-common/runtime-benchmarks']20runtime-benchmarks = ['frame-benchmarking', 'pallet-common/runtime-benchmarks']21std = [21std = [22 'codec/std',23 'evm-coder/std',22 'evm-coder/std',24 'frame-benchmarking/std',23 'frame-benchmarking/std',25 'frame-support/std',24 'frame-support/std',29 'pallet-evm-coder-substrate/std',28 'pallet-evm-coder-substrate/std',30 'pallet-evm/std',29 'pallet-evm/std',31 'pallet-nonfungible/std',30 'pallet-nonfungible/std',31 'parity-scale-codec/std',32 'sp-runtime/std',32 'sp-runtime/std',33 'sp-std/std',33 'sp-std/std',34 'up-data-structs/std',34 'up-data-structs/std',39################################################################################39################################################################################40# Local Dependencies40# Local Dependencies41[dependencies]41[dependencies]42# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.43codec = { workspace = true, package = "parity-scale-codec" }42parity-scale-codec = { workspace = true }444345ethereum = { workspace = true }44ethereum = { workspace = true }46evm-coder = { workspace = true }45evm-coder = { workspace = true }pallets/unique/src/benchmarking.rsdiffbeforeafterboth161617#![cfg(feature = "runtime-benchmarks")]17#![cfg(feature = "runtime-benchmarks")]181819use super::*;19use frame_benchmarking::{account, benchmarks};20use crate::Pallet;21use frame_system::RawOrigin;22use frame_support::traits::{fungible::Balanced, Get, tokens::Precision};20use frame_support::traits::{fungible::Balanced, tokens::Precision, Get};23use frame_benchmarking::{benchmarks, account};21use frame_system::RawOrigin;24use sp_runtime::DispatchError;25use pallet_common::{22use pallet_common::{26 Config as CommonConfig,27 benchmarking::{create_data, create_u16_data},23 benchmarking::{create_data, create_u16_data},24 erc::CrossAccountId,25 Config as CommonConfig,28};26};27use sp_runtime::DispatchError;29use up_data_structs::{28use up_data_structs::{30 CollectionId, CollectionMode, MAX_COLLECTION_NAME_LENGTH, MAX_TOKEN_PREFIX_LENGTH,29 CollectionId, CollectionLimits, CollectionMode, MAX_COLLECTION_DESCRIPTION_LENGTH,31 MAX_COLLECTION_DESCRIPTION_LENGTH, CollectionLimits,30 MAX_COLLECTION_NAME_LENGTH, MAX_TOKEN_PREFIX_LENGTH,32};31};3233use pallet_common::erc::CrossAccountId;33use super::*;34use crate::Pallet;343535const SEED: u32 = 1;36const SEED: u32 = 1;3637pallets/unique/src/eth/mod.rsdiffbeforeafterboth161617//! Implementation of CollectionHelpers contract.17//! Implementation of CollectionHelpers contract.18//!18//!19use alloc::{collections::BTreeSet, format};19use core::marker::PhantomData;20use core::marker::PhantomData;2120use ethereum as _;22use ethereum as _;21use evm_coder::{abi::AbiType, generate_stubgen, solidity_interface, types::*};23use evm_coder::{abi::AbiType, generate_stubgen, solidity_interface, types::*};22use frame_support::{BoundedVec, traits::Get};24use frame_support::{traits::Get, BoundedVec};23use pallet_common::{25use pallet_common::{24 CollectionById,25 dispatch::CollectionDispatch,26 dispatch::CollectionDispatch,26 erc::{CollectionHelpersEvents, static_property::key},27 erc::{static_property::key, CollectionHelpersEvents},27 eth::{self, map_eth_to_id, collection_id_to_address},28 eth::{self, collection_id_to_address, map_eth_to_id},28 Pallet as PalletCommon, CollectionHandle,29 CollectionById, CollectionHandle, Pallet as PalletCommon,29};30};30use pallet_evm::{account::CrossAccountId, OnMethodCall, PrecompileHandle, PrecompileResult};31use pallet_evm::{account::CrossAccountId, OnMethodCall, PrecompileHandle, PrecompileResult};31use pallet_evm_coder_substrate::{32use pallet_evm_coder_substrate::{32 dispatch_to_evm, SubstrateRecorder, WithRecorder,33 dispatch_to_evm,33 execution::{PreDispatch, Result, Error},34 execution::{Error, PreDispatch, Result},34 frontier_contract,35 frontier_contract, SubstrateRecorder, WithRecorder,35};36};37use sp_std::vec::Vec;36use up_data_structs::{38use up_data_structs::{37 CollectionDescription, CollectionMode, CollectionName, CollectionPermissions,39 CollectionDescription, CollectionMode, CollectionName, CollectionPermissions,38 CollectionTokenPrefix, CreateCollectionData, NestingPermissions,40 CollectionTokenPrefix, CreateCollectionData, NestingPermissions,39};41};404241use crate::{weights::WeightInfo, Config, Pallet, SelfWeightOf};43use crate::{weights::WeightInfo, Config, Pallet, SelfWeightOf};4243use alloc::{format, collections::BTreeSet};44use sp_std::vec::Vec;454446frontier_contract! {45frontier_contract! {47 macro_rules! EvmCollectionHelpers_result {...}46 macro_rules! EvmCollectionHelpers_result {...}pallets/unique/src/lib.rsdiffbeforeafterboth737374extern crate alloc;74extern crate alloc;757576pub use pallet::*;77use frame_support::pallet_prelude::*;76use frame_support::pallet_prelude::*;78use frame_system::pallet_prelude::*;77use frame_system::pallet_prelude::*;78pub use pallet::*;79pub mod eth;79pub mod eth;808081#[cfg(feature = "runtime-benchmarks")]81#[cfg(feature = "runtime-benchmarks")]848485#[frame_support::pallet]85#[frame_support::pallet]86pub mod pallet {86pub mod pallet {87 use super::*;8889 use frame_support::{dispatch::DispatchResult, ensure, fail, BoundedVec, storage::Key};87 use frame_support::{dispatch::DispatchResult, ensure, fail, storage::Key, BoundedVec};90 use scale_info::TypeInfo;88 use frame_system::{ensure_root, ensure_signed};91 use frame_system::{ensure_signed, ensure_root};89 use pallet_common::{90 dispatch::{dispatch_tx, CollectionDispatch},91 CollectionHandle, CommonWeightInfo, Pallet as PalletCommon, RefungibleExtensionsWeightInfo,92 };93 use pallet_evm::account::CrossAccountId;94 use scale_info::TypeInfo;92 use sp_std::{vec, vec::Vec};95 use sp_std::{vec, vec::Vec};93 use up_data_structs::{96 use up_data_structs::{94 MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,97 budget, CollectionId, CollectionLimits, CollectionMode, CollectionPermissions,95 MAX_PROPERTIES_PER_ITEM, MAX_PROPERTY_KEY_LENGTH, MAX_PROPERTY_VALUE_LENGTH,98 CreateCollectionData, CreateItemData, CreateItemExData, Property, PropertyKey,96 MAX_COLLECTION_PROPERTIES_SIZE, COLLECTION_ADMINS_LIMIT, MAX_TOKEN_PROPERTIES_SIZE,97 CreateItemData, CollectionLimits, CollectionPermissions, CollectionId, CollectionMode,99 PropertyKeyPermission, TokenId, COLLECTION_ADMINS_LIMIT, MAX_COLLECTION_DESCRIPTION_LENGTH,98 TokenId, CreateCollectionData, CreateItemExData, budget, Property, PropertyKey,100 MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_PROPERTIES_SIZE, MAX_PROPERTIES_PER_ITEM,99 PropertyKeyPermission,101 MAX_PROPERTY_KEY_LENGTH, MAX_PROPERTY_VALUE_LENGTH, MAX_TOKEN_PREFIX_LENGTH,102 MAX_TOKEN_PROPERTIES_SIZE,100 };103 };101 use pallet_evm::account::CrossAccountId;104 use weights::WeightInfo;105102 use pallet_common::{106 use super::*;103 CollectionHandle, Pallet as PalletCommon, CommonWeightInfo, dispatch::dispatch_tx,104 dispatch::CollectionDispatch, RefungibleExtensionsWeightInfo,105 };106 use weights::WeightInfo;107107108 /// A maximum number of levels of depth in the token nesting tree.108 /// A maximum number of levels of depth in the token nesting tree.109 pub const NESTING_BUDGET: u32 = 5;109 pub const NESTING_BUDGET: u32 = 5;174 pub type CreateItemBasket<T: Config> = StorageMap<174 pub type CreateItemBasket<T: Config> = StorageMap<175 Hasher = Blake2_128Concat,175 Hasher = Blake2_128Concat,176 Key = (CollectionId, T::AccountId),176 Key = (CollectionId, T::AccountId),177 Value = T::BlockNumber,177 Value = BlockNumberFor<T>,178 QueryKind = OptionQuery,178 QueryKind = OptionQuery,179 >;179 >;180 /// Collection id (controlled?2), token id (controlled?2)180 /// Collection id (controlled?2), token id (controlled?2)185 Key1 = CollectionId,185 Key1 = CollectionId,186 Hasher2 = Blake2_128Concat,186 Hasher2 = Blake2_128Concat,187 Key2 = TokenId,187 Key2 = TokenId,188 Value = T::BlockNumber,188 Value = BlockNumberFor<T>,189 QueryKind = OptionQuery,189 QueryKind = OptionQuery,190 >;190 >;191 /// Collection id (controlled?2), owning user (real)191 /// Collection id (controlled?2), owning user (real)196 Key1 = CollectionId,196 Key1 = CollectionId,197 Hasher2 = Twox64Concat,197 Hasher2 = Twox64Concat,198 Key2 = T::AccountId,198 Key2 = T::AccountId,199 Value = T::BlockNumber,199 Value = BlockNumberFor<T>,200 QueryKind = OptionQuery,200 QueryKind = OptionQuery,201 >;201 >;202 /// Collection id (controlled?2), token id (controlled?2)202 /// Collection id (controlled?2), token id (controlled?2)208 Key<Blake2_128Concat, TokenId>,208 Key<Blake2_128Concat, TokenId>,209 Key<Twox64Concat, T::AccountId>,209 Key<Twox64Concat, T::AccountId>,210 ),210 ),211 Value = T::BlockNumber,211 Value = BlockNumberFor<T>,212 QueryKind = OptionQuery,212 QueryKind = OptionQuery,213 >;213 >;214 //#endregion214 //#endregion221 Key1 = CollectionId,221 Key1 = CollectionId,222 Hasher2 = Blake2_128Concat,222 Hasher2 = Blake2_128Concat,223 Key2 = TokenId,223 Key2 = TokenId,224 Value = T::BlockNumber,224 Value = BlockNumberFor<T>,225 QueryKind = OptionQuery,225 QueryKind = OptionQuery,226 >;226 >;227227233 Key1 = CollectionId,233 Key1 = CollectionId,234 Hasher2 = Blake2_128Concat,234 Hasher2 = Blake2_128Concat,235 Key2 = TokenId,235 Key2 = TokenId,236 Value = T::BlockNumber,236 Value = BlockNumberFor<T>,237 QueryKind = OptionQuery,237 QueryKind = OptionQuery,238 >;238 >;239 /// Last sponsoring of fungible tokens approval in a collection239 /// Last sponsoring of fungible tokens approval in a collection244 Key1 = CollectionId,244 Key1 = CollectionId,245 Hasher2 = Twox64Concat,245 Hasher2 = Twox64Concat,246 Key2 = T::AccountId,246 Key2 = T::AccountId,247 Value = T::BlockNumber,247 Value = BlockNumberFor<T>,248 QueryKind = OptionQuery,248 QueryKind = OptionQuery,249 >;249 >;250 /// Last sponsoring of RFT approval in a collection250 /// Last sponsoring of RFT approval in a collection256 Key<Blake2_128Concat, TokenId>,256 Key<Blake2_128Concat, TokenId>,257 Key<Twox64Concat, T::AccountId>,257 Key<Twox64Concat, T::AccountId>,258 ),258 ),259 Value = T::BlockNumber,259 Value = BlockNumberFor<T>,260 QueryKind = OptionQuery,260 QueryKind = OptionQuery,261 >;261 >;262262primitives/app_promotion_rpc/Cargo.tomldiffbeforeafterboth5version = "0.1.0"5version = "0.1.0"667[dependencies]7[dependencies]8codec = { workspace = true }8pallet-evm = { workspace = true }9pallet-evm = { workspace = true }9parity-scale-codec = { workspace = true }10sp-api = { workspace = true }10sp-api = { workspace = true }11sp-runtime = { workspace = true }11sp-runtime = { workspace = true }12sp-std = { workspace = true }12sp-std = { workspace = true }131314[features]14[features]15default = ["std"]15default = ["std"]16std = ["codec/std", "sp-api/std", "sp-runtime/std", "sp-std/std"]16std = ["parity-scale-codec/std", "sp-api/std", "sp-runtime/std", "sp-std/std"]1717primitives/app_promotion_rpc/src/lib.rsdiffbeforeafterboth161617#![cfg_attr(not(feature = "std"), no_std)]17#![cfg_attr(not(feature = "std"), no_std)]181819use sp_std::vec::Vec;20use codec::Decode;19use parity_scale_codec::Decode;21use sp_runtime::{20use sp_runtime::{22 DispatchError,23 traits::{AtLeast32BitUnsigned, Member},21 traits::{AtLeast32BitUnsigned, Member},22 DispatchError,24};23};24use sp_std::vec::Vec;252526type Result<T> = core::result::Result<T, DispatchError>;26type Result<T> = core::result::Result<T, DispatchError>;2727primitives/common/Cargo.tomldiffbeforeafterboth13std = [13std = [14 'cumulus-primitives-core/std',14 'cumulus-primitives-core/std',15 'fp-rpc/std',15 'fp-rpc/std',16 'fp-self-contained/std',16 'frame-support/std',17 'frame-support/std',17 'pallet-evm/std',18 'pallet-evm/std',18 'sp-consensus-aura/std',19 'sp-consensus-aura/std',24[dependencies]25[dependencies]25cumulus-primitives-core = { workspace = true }26cumulus-primitives-core = { workspace = true }26fp-rpc = { workspace = true }27fp-rpc = { workspace = true }28fp-self-contained = { workspace = true }27frame-support = { workspace = true }29frame-support = { workspace = true }28pallet-evm = { workspace = true }30pallet-evm = { workspace = true }29sp-consensus-aura = { workspace = true }31sp-consensus-aura = { workspace = true }primitives/common/src/constants.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use sp_runtime::Perbill;17use cumulus_primitives_core::relay_chain::MAX_POV_SIZE;18use frame_support::{18use frame_support::{19 parameter_types,19 parameter_types,20 weights::{Weight, constants::WEIGHT_REF_TIME_PER_SECOND},20 weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight},21};21};22use cumulus_primitives_core::relay_chain::MAX_POV_SIZE;22use sp_runtime::Perbill;2323use crate::types::{BlockNumber, Balance};24use crate::types::{Balance, BlockNumber};242525pub const MILLISECS_PER_BLOCK: u64 = 12000;26pub const MILLISECS_PER_BLOCK: u64 = 12000;26pub const MILLISECS_PER_RELAY_BLOCK: u64 = 6000;27pub const MILLISECS_PER_RELAY_BLOCK: u64 = 6000;272828pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK;29pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK;293030// These time units are defined in number of blocks.31// These time units are defined in number of blocks.31pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber);32pub const MINUTES: u32 = 60_000 / (MILLISECS_PER_BLOCK as u32);32pub const HOURS: BlockNumber = MINUTES * 60;33pub const HOURS: u32 = MINUTES * 60;33pub const DAYS: BlockNumber = HOURS * 24;34pub const DAYS: u32 = HOURS * 24;343535// These time units are defined in number of relay blocks.36// These time units are defined in number of relay blocks.36pub const RELAY_MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_RELAY_BLOCK as BlockNumber);37pub const RELAY_MINUTES: u32 = 60_000 / (MILLISECS_PER_RELAY_BLOCK as u32);37pub const RELAY_HOURS: BlockNumber = RELAY_MINUTES * 60;38pub const RELAY_HOURS: u32 = RELAY_MINUTES * 60;38pub const RELAY_DAYS: BlockNumber = RELAY_HOURS * 24;39pub const RELAY_DAYS: u32 = RELAY_HOURS * 24;394040pub const MICROUNIQUE: Balance = 1_000_000_000_000;41pub const MICROUNIQUE: Balance = 1_000_000_000_000;41pub const MILLIUNIQUE: Balance = 1_000 * MICROUNIQUE;42pub const MILLIUNIQUE: Balance = 1_000 * MICROUNIQUE;primitives/common/src/types.rsdiffbeforeafterboth161617use sp_runtime::{17use sp_runtime::{18 generic,18 generic,19 traits::{Verify, IdentifyAccount},19 traits::{IdentifyAccount, Verify},20 MultiSignature,20 MultiSignature,21};21};222227pub mod opaque {27pub mod opaque {28 pub use sp_runtime::{generic, traits::BlakeTwo256, OpaqueExtrinsic as UncheckedExtrinsic};28 pub use sp_runtime::{generic, traits::BlakeTwo256, OpaqueExtrinsic as UncheckedExtrinsic};292930 pub use super::{BlockNumber, Signature, AccountId, Balance, Index, Hash, AuraId};30 pub use super::{AccountId, AuraId, Balance, BlockNumber, Hash, Signature};313132 #[derive(Debug, Clone)]32 #[derive(Debug, Clone)]33 pub enum RuntimeId {33 pub enum RuntimeId {37 Unknown(sp_std::vec::Vec<u8>),37 Unknown(sp_std::vec::Vec<u8>),38 }38 }393940 /// Opaque block header type.41 pub type Header = generic::Header<BlockNumber, BlakeTwo256>;40 pub type Header = generic::Header<BlockNumber, BlakeTwo256>;424143 /// Opaque block type.44 pub type Block = generic::Block<Header, UncheckedExtrinsic>;42 pub type Block = generic::Block<Header, UncheckedExtrinsic>;454346 pub trait RuntimeInstance {44 pub trait RuntimeInstance {71pub type Balance = u128;69pub type Balance = u128;727073/// Index of a transaction in the chain.71/// Index of a transaction in the chain.74pub type Index = u32;72pub type Nonce = u32;757376/// A hash of some data used by the chain.74/// A hash of some data used by the chain.77pub type Hash = sp_core::H256;75pub type Hash = sp_core::H256;primitives/data-structs/Cargo.tomldiffbeforeafterboth9version = "0.2.2"9version = "0.2.2"101011[dependencies]11[dependencies]12# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.13codec = { workspace = true, package = "parity-scale-codec" }12bondrewd = { version = "0.1.14", features = ["derive"], default-features = false }1415derivative = { workspace = true }13derivative = { workspace = true }16frame-support = { workspace = true }14evm-coder = { workspace = true }17pallet-evm = { workspace = true }15frame-support = { workspace = true }18scale-info = { workspace = true }16pallet-evm = { workspace = true }19serde = { workspace = true, optional = true }17parity-scale-codec = { workspace = true }20sp-core = { workspace = true }18scale-info = { workspace = true }21sp-runtime = { workspace = true }19serde = { workspace = true }22sp-std = { workspace = true }20sp-core = { workspace = true }23bondrewd = { version = "0.1.14", features = ["derive"], default-features = false }21sp-runtime = { workspace = true }24struct-versioning = { workspace = true }22sp-std = { workspace = true }25evm-coder = { workspace = true }23struct-versioning = { workspace = true }262427[features]25[features]28default = ["std"]26default = ["std"]29limit-testing = []27limit-testing = []30runtime-benchmarks = []28runtime-benchmarks = []31serde1 = ["serde/alloc"]29serde1 = ["serde/alloc"]32std = [30std = [33 "codec/std",34 "frame-support/std",31 "frame-support/std",35 "pallet-evm/std",32 "pallet-evm/std",33 "parity-scale-codec/std",36 "serde/std",34 "serde/std",37 "serde1",35 "serde1",38 "sp-core/std",36 "sp-core/std",primitives/data-structs/src/bondrewd_codec.rsdiffbeforeafterboth5macro_rules! bondrewd_codec {5macro_rules! bondrewd_codec {6 ($T:ty) => {6 ($T:ty) => {7 impl Encode for $T {7 impl Encode for $T {8 fn encode_to<O: codec::Output + ?Sized>(&self, dest: &mut O) {8 fn encode_to<O: parity_scale_codec::Output + ?Sized>(&self, dest: &mut O) {9 dest.write(&self.into_bytes())9 dest.write(&self.into_bytes())10 }10 }11 }11 }12 impl codec::Decode for $T {12 impl parity_scale_codec::Decode for $T {13 fn decode<I: codec::Input + ?Sized>(from: &mut I) -> Result<Self, codec::Error> {13 fn decode<I: parity_scale_codec::Input + ?Sized>(14 from: &mut I,15 ) -> Result<Self, parity_scale_codec::Error> {14 let mut bytes = [0; Self::BYTE_SIZE];16 let mut bytes = [0; Self::BYTE_SIZE];15 from.read(&mut bytes)?;17 from.read(&mut bytes)?;16 Ok(Self::from_bytes(bytes))18 Ok(Self::from_bytes(bytes))primitives/data-structs/src/bounded.rsdiffbeforeafterboth181819use core::fmt;19use core::fmt;2020use sp_std::collections::{btree_map::BTreeMap, btree_set::BTreeSet};21use frame_support::{21use sp_std::vec::Vec;22 storage::{bounded_btree_map::BoundedBTreeMap, bounded_btree_set::BoundedBTreeSet},2223 BoundedVec,24};23use frame_support::{25use sp_std::{24 BoundedVec,25 storage::{bounded_btree_map::BoundedBTreeMap, bounded_btree_set::BoundedBTreeSet},26 collections::{btree_map::BTreeMap, btree_set::BTreeSet},27 vec::Vec,26};28};272928/// [`serde`] implementations for [`BoundedVec`].30/// [`serde`] implementations for [`BoundedVec`].29#[cfg(feature = "serde1")]30pub mod vec_serde {31pub mod vec_serde {31 use core::convert::TryFrom;32 use core::convert::TryFrom;3332 use frame_support::{BoundedVec, traits::Get};34 use frame_support::{traits::Get, BoundedVec};33 use serde::{35 use serde::{34 ser::{self, Serialize},36 de::{self, Deserialize, Error},35 de::{self, Deserialize, Error},37 ser::{self, Serialize},36 };38 };37 use sp_std::vec::Vec;39 use sp_std::vec::Vec;384066 (v as &Vec<V>).fmt(f)68 (v as &Vec<V>).fmt(f)67}69}687069#[cfg(feature = "serde1")]70#[allow(dead_code)]71#[allow(dead_code)]71/// [`serde`] implementations for [`BoundedBTreeMap`].72/// [`serde`] implementations for [`BoundedBTreeMap`].72pub mod map_serde {73pub mod map_serde {73 use core::convert::TryFrom;74 use core::convert::TryFrom;74 use sp_std::collections::btree_map::BTreeMap;7575 use frame_support::{traits::Get, storage::bounded_btree_map::BoundedBTreeMap};76 use frame_support::{storage::bounded_btree_map::BoundedBTreeMap, traits::Get};76 use serde::{77 use serde::{77 ser::{self, Serialize},78 de::{self, Deserialize, Error},78 de::{self, Deserialize, Error},79 ser::{self, Serialize},79 };80 };81 use sp_std::collections::btree_map::BTreeMap;80 pub fn serialize<D, K, V, S>(82 pub fn serialize<D, K, V, S>(81 value: &BoundedBTreeMap<K, V, S>,83 value: &BoundedBTreeMap<K, V, S>,82 serializer: D,84 serializer: D,117 (v as &BTreeMap<K, V>).fmt(f)119 (v as &BTreeMap<K, V>).fmt(f)118}120}119121120#[cfg(feature = "serde1")]121#[allow(dead_code)]122#[allow(dead_code)]122/// [`serde`] implementations for [`BoundedBTreeSet`].123/// [`serde`] implementations for [`BoundedBTreeSet`].123pub mod set_serde {124pub mod set_serde {124 use core::convert::TryFrom;125 use core::convert::TryFrom;125 use sp_std::collections::btree_set::BTreeSet;126126 use frame_support::{traits::Get, storage::bounded_btree_set::BoundedBTreeSet};127 use frame_support::{storage::bounded_btree_set::BoundedBTreeSet, traits::Get};127 use serde::{128 use serde::{128 ser::{self, Serialize},129 de::{self, Deserialize, Error},129 de::{self, Deserialize, Error},130 ser::{self, Serialize},130 };131 };132 use sp_std::collections::btree_set::BTreeSet;131 pub fn serialize<D, K, S>(133 pub fn serialize<D, K, S>(132 value: &BoundedBTreeSet<K, S>,134 value: &BoundedBTreeSet<K, S>,133 serializer: D,135 serializer: D,primitives/data-structs/src/lib.rsdiffbeforeafterboth26 ops::Deref,26 ops::Deref,27};27};2829use bondrewd::Bitfields;30use derivative::Derivative;31use evm_coder::AbiCoderFlags;28use frame_support::storage::{bounded_btree_map::BoundedBTreeMap, bounded_btree_set::BoundedBTreeSet};32use frame_support::{2933 storage::{bounded_btree_map::BoundedBTreeMap, bounded_btree_set::BoundedBTreeSet},30#[cfg(feature = "serde")]34 traits::ConstU32,35 BoundedVec,36};37use parity_scale_codec::{Decode, Encode, EncodeLike, MaxEncodedLen};38use scale_info::TypeInfo;31use serde::{Serialize, Deserialize};39use serde::{Deserialize, Serialize};3233use sp_core::U256;40use sp_core::U256;34use sp_runtime::{ArithmeticError, sp_std::prelude::Vec};41use sp_runtime::{sp_std::prelude::Vec, ArithmeticError};35use sp_std::collections::btree_set::BTreeSet;42use sp_std::collections::btree_set::BTreeSet;36use codec::{Decode, Encode, EncodeLike, MaxEncodedLen};37use frame_support::{BoundedVec, traits::ConstU32};38use derivative::Derivative;39use scale_info::TypeInfo;40use evm_coder::AbiCoderFlags;41use bondrewd::Bitfields;424343mod bondrewd_codec;44mod bondrewd_codec;44mod bounded;45mod bounded;153 Default,154 Default,154 TypeInfo,155 TypeInfo,155 MaxEncodedLen,156 MaxEncodedLen,157 Serialize,158 Deserialize,156)]159)]157#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]158pub struct CollectionId(pub u32);160pub struct CollectionId(pub u32);159impl EncodeLike<u32> for CollectionId {}161impl EncodeLike<u32> for CollectionId {}160impl EncodeLike<CollectionId> for u32 {}162impl EncodeLike<CollectionId> for u32 {}187 Default,189 Default,188 TypeInfo,190 TypeInfo,189 MaxEncodedLen,191 MaxEncodedLen,192 Serialize,193 Deserialize,190)]194)]191#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]192pub struct TokenId(pub u32);195pub struct TokenId(pub u32);193impl EncodeLike<u32> for TokenId {}196impl EncodeLike<u32> for TokenId {}194impl EncodeLike<TokenId> for u32 {}197impl EncodeLike<TokenId> for u32 {}221224222/// Token data.225/// Token data.223#[struct_versioning::versioned(version = 2, upper)]226#[struct_versioning::versioned(version = 2, upper)]224#[derive(Encode, Decode, Clone, PartialEq, TypeInfo)]227#[derive(Encode, Decode, Clone, PartialEq, TypeInfo, Serialize, Deserialize)]225#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]226pub struct TokenData<CrossAccountId> {228pub struct TokenData<CrossAccountId> {227 /// Properties of token.229 /// Properties of token.228 pub properties: Vec<Property>,230 pub properties: Vec<Property>,252/// Each collection can contain only one type of tokens at a time.254/// Each collection can contain only one type of tokens at a time.253/// This type helps to understand which tokens the collection contains.255/// This type helps to understand which tokens the collection contains.254#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]256#[derive(255#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]257 Encode, Decode, Eq, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen, Serialize, Deserialize,258)]256pub enum CollectionMode {259pub enum CollectionMode {257 /// Non fungible tokens.260 /// Non fungible tokens.280283281/// Access mode for some token operations.284/// Access mode for some token operations.282#[derive(Encode, Decode, Eq, Debug, Clone, Copy, PartialEq, TypeInfo, MaxEncodedLen)]285#[derive(283#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]286 Encode,287 Decode,288 Eq,289 Debug,290 Clone,291 Copy,292 PartialEq,293 TypeInfo,294 MaxEncodedLen,295 Serialize,296 Deserialize,297)]284pub enum AccessMode {298pub enum AccessMode {285 /// Access grant for owner and admins. Used as default.299 /// Access grant for owner and admins. Used as default.295309296// TODO: remove in future.310// TODO: remove in future.297#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]311#[derive(298#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]312 Encode, Decode, Eq, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen, Serialize, Deserialize,313)]299pub enum SchemaVersion {314pub enum SchemaVersion {300 ImageURL,315 ImageURL,307}322}308323309// TODO: unused type324// TODO: unused type310#[derive(Encode, Decode, Default, Debug, Clone, PartialEq, TypeInfo)]325#[derive(Encode, Decode, Default, Debug, Clone, PartialEq, TypeInfo, Serialize, Deserialize)]311#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]312pub struct Ownership<AccountId> {326pub struct Ownership<AccountId> {313 pub owner: AccountId,327 pub owner: AccountId,314 pub fraction: u128,328 pub fraction: u128,315}329}316330317/// The state of collection sponsorship.331/// The state of collection sponsorship.318#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]332#[derive(319#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]333 Encode, Decode, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen, Serialize, Deserialize,334)]320pub enum SponsorshipState<AccountId> {335pub enum SponsorshipState<AccountId> {321 /// The fees are applied to the transaction sender.336 /// The fees are applied to the transaction sender.444 pub meta_update_permission: MetaUpdatePermission,459 pub meta_update_permission: MetaUpdatePermission,445}460}446461447#[derive(Debug, Encode, Decode, Clone, PartialEq, TypeInfo)]462#[derive(Debug, Encode, Decode, Clone, PartialEq, TypeInfo, Serialize, Deserialize)]448#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]449pub struct RpcCollectionFlags {463pub struct RpcCollectionFlags {450 /// Is collection is foreign.464 /// Is collection is foreign.451 pub foreign: bool,465 pub foreign: bool,455469456/// Collection parameters, used in RPC calls (see [`Collection`] for the storage version).470/// Collection parameters, used in RPC calls (see [`Collection`] for the storage version).457#[struct_versioning::versioned(version = 2, upper)]471#[struct_versioning::versioned(version = 2, upper)]458#[derive(Debug, Encode, Decode, Clone, PartialEq, TypeInfo)]472#[derive(Debug, Encode, Decode, Clone, PartialEq, TypeInfo, Serialize, Deserialize)]459#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]460pub struct RpcCollection<AccountId> {473pub struct RpcCollection<AccountId> {461 /// Collection owner account.474 /// Collection owner account.462 pub owner: AccountId,475 pub owner: AccountId,538551539pub struct RawEncoded(Vec<u8>);552pub struct RawEncoded(Vec<u8>);540553541impl codec::Decode for RawEncoded {554impl parity_scale_codec::Decode for RawEncoded {542 fn decode<I: codec::Input>(input: &mut I) -> Result<Self, codec::Error> {555 fn decode<I: parity_scale_codec::Input>(556 input: &mut I,557 ) -> Result<Self, parity_scale_codec::Error> {543 let mut out = Vec::new();558 let mut out = Vec::new();544 while let Ok(v) = input.read_byte() {559 while let Ok(v) = input.read_byte() {545 out.push(v);560 out.push(v);613/// Update with `pallet_common::Pallet::clamp_limits`.628/// Update with `pallet_common::Pallet::clamp_limits`.614// IMPORTANT: When adding/removing fields from this struct - don't forget to also629// IMPORTANT: When adding/removing fields from this struct - don't forget to also615#[derive(Encode, Decode, Debug, Default, Clone, PartialEq, TypeInfo, MaxEncodedLen)]630#[derive(616#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]631 Encode,632 Decode,633 Debug,634 Default,635 Clone,636 PartialEq,637 TypeInfo,638 MaxEncodedLen,639 Serialize,640 Deserialize,641)]617// When adding/removing fields from this struct - don't forget to also update with `pallet_common::Pallet::clamp_limits`.642// When adding/removing fields from this struct - don't forget to also update with `pallet_common::Pallet::clamp_limits`.618// TODO: move `pallet_common::Pallet::clamp_limits` into `impl CollectionLimits`.643// TODO: move `pallet_common::Pallet::clamp_limits` into `impl CollectionLimits`.770///795///771/// Update with `pallet_common::Pallet::clamp_permissions`.796/// Update with `pallet_common::Pallet::clamp_permissions`.772#[derive(Encode, Decode, Debug, Default, Clone, PartialEq, TypeInfo, MaxEncodedLen)]797#[derive(773#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]798 Encode,799 Decode,800 Debug,801 Default,802 Clone,803 PartialEq,804 TypeInfo,805 MaxEncodedLen,806 Serialize,807 Deserialize,808)]774// When adding/removing fields from this struct - don't forget to also update `pallet_common::Pallet::clamp_permissions`.809// When adding/removing fields from this struct - don't forget to also update `pallet_common::Pallet::clamp_permissions`.775// TODO: move `pallet_common::Pallet::clamp_permissions` into `impl CollectionPermissions`.810// TODO: move `pallet_common::Pallet::clamp_permissions` into `impl CollectionPermissions`.822857823/// Wraper for collections set allowing nest.858/// Wraper for collections set allowing nest.824#[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative)]859#[derive(825#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]860 Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative, Serialize, Deserialize,861)]826#[derivative(Debug)]862#[derivative(Debug)]827pub struct OwnerRestrictedSet(863pub struct OwnerRestrictedSet(828 #[cfg_attr(feature = "serde1", serde(with = "bounded::set_serde"))]864 #[serde(with = "bounded::set_serde")]829 #[derivative(Debug(format_with = "bounded::set_debug"))]865 #[derivative(Debug(format_with = "bounded::set_debug"))]830 pub OwnerRestrictedSetInner,866 pub OwnerRestrictedSetInner,831);867);863899864/// Part of collection permissions, if set, defines who is able to nest tokens into other tokens.900/// Part of collection permissions, if set, defines who is able to nest tokens into other tokens.865#[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative)]901#[derive(866#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]902 Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative, Serialize, Deserialize,903)]867#[derivative(Debug)]904#[derivative(Debug)]868pub struct NestingPermissions {905pub struct NestingPermissions {882///919///883/// Used for [`collection limits`](CollectionLimits).920/// Used for [`collection limits`](CollectionLimits).884#[derive(Encode, Decode, Debug, Clone, Copy, PartialEq, TypeInfo, MaxEncodedLen)]921#[derive(885#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]922 Encode, Decode, Debug, Clone, Copy, PartialEq, TypeInfo, MaxEncodedLen, Serialize, Deserialize,923)]886pub enum SponsoringRateLimit {924pub enum SponsoringRateLimit {887 /// Sponsoring is disabled, and the collection sponsor will not pay for transactions925 /// Sponsoring is disabled, and the collection sponsor will not pay for transactions892930893/// Data used to describe an NFT at creation.931/// Data used to describe an NFT at creation.894#[derive(Encode, Decode, MaxEncodedLen, Default, PartialEq, Clone, Derivative, TypeInfo)]932#[derive(895#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]933 Encode,934 Decode,935 MaxEncodedLen,936 Default,937 PartialEq,938 Clone,939 Derivative,940 TypeInfo,941 Serialize,942 Deserialize,943)]896#[derivative(Debug)]944#[derivative(Debug)]897pub struct CreateNftData {945pub struct CreateNftData {898 /// Key-value pairs used to describe the token as metadata946 /// Key-value pairs used to describe the token as metadata899 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]947 #[serde(with = "bounded::vec_serde")]900 #[derivative(Debug(format_with = "bounded::vec_debug"))]948 #[derivative(Debug(format_with = "bounded::vec_debug"))]901 /// Properties that wil be assignet to created item.949 /// Properties that wil be assignet to created item.902 pub properties: CollectionPropertiesVec,950 pub properties: CollectionPropertiesVec,903}951}904952905/// Data used to describe a Fungible token at creation.953/// Data used to describe a Fungible token at creation.906#[derive(Encode, Decode, MaxEncodedLen, Default, Debug, Clone, PartialEq, TypeInfo)]954#[derive(907#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]955 Encode,956 Decode,957 MaxEncodedLen,958 Default,959 Debug,960 Clone,961 PartialEq,962 TypeInfo,963 Serialize,964 Deserialize,965)]908pub struct CreateFungibleData {966pub struct CreateFungibleData {909 /// Number of fungible coins minted967 /// Number of fungible coins minted910 pub value: u128,968 pub value: u128,911}969}912970913/// Data used to describe a Refungible token at creation.971/// Data used to describe a Refungible token at creation.914#[derive(Encode, Decode, MaxEncodedLen, Default, PartialEq, Clone, Derivative, TypeInfo)]972#[derive(915#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]973 Encode,974 Decode,975 MaxEncodedLen,976 Default,977 PartialEq,978 Clone,979 Derivative,980 TypeInfo,981 Serialize,982 Deserialize,983)]916#[derivative(Debug)]984#[derivative(Debug)]917pub struct CreateReFungibleData {985pub struct CreateReFungibleData {918 /// Number of pieces the RFT is split into986 /// Number of pieces the RFT is split into919 pub pieces: u128,987 pub pieces: u128,920988921 /// Key-value pairs used to describe the token as metadata989 /// Key-value pairs used to describe the token as metadata922 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]990 #[serde(with = "bounded::vec_serde")]923 #[derivative(Debug(format_with = "bounded::vec_debug"))]991 #[derivative(Debug(format_with = "bounded::vec_debug"))]924 pub properties: CollectionPropertiesVec,992 pub properties: CollectionPropertiesVec,925}993}926994927// TODO: remove this.995// TODO: remove this.928#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]996#[derive(929#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]997 Encode, Decode, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen, Serialize, Deserialize,998)]930pub enum MetaUpdatePermission {999pub enum MetaUpdatePermission {931 ItemOwner,1000 ItemOwner,936/// Enum holding data used for creation of all three item types.1005/// Enum holding data used for creation of all three item types.937/// Unified data for create item.1006/// Unified data for create item.938#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo)]1007#[derive(939#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]1008 Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo, Serialize, Deserialize,1009)]940pub enum CreateItemData {1010pub enum CreateItemData {941 /// Data for create NFT.1011 /// Data for create NFT.102610961027/// Token's address, dictated by its collection and token IDs.1097/// Token's address, dictated by its collection and token IDs.1028#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo)]1098#[derive(1029#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]1099 Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo, Serialize, Deserialize,1100)]1030// todo possibly rename to be used generally as an address pair1101// todo possibly rename to be used generally as an address pair1031pub struct TokenChild {1102pub struct TokenChild {103811091039/// Collection statistics.1110/// Collection statistics.1040#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo)]1111#[derive(1041#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]1112 Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo, Serialize, Deserialize,1113)]1042pub struct CollectionStats {1114pub struct CollectionStats {1043 /// Number of created items.1115 /// Number of created items.106011321061 fn type_info() -> scale_info::Type {1133 fn type_info() -> scale_info::Type {1062 use scale_info::{1134 use scale_info::{1063 Type, Path,1064 build::{FieldsBuilder, UnnamedFields},1135 build::{FieldsBuilder, UnnamedFields},1065 form::MetaForm,1136 form::MetaForm,1066 type_params,1137 type_params, Path, Type,1067 };1138 };1068 Type::builder()1139 Type::builder()1069 .path(Path::new("up_data_structs", "PhantomType"))1140 .path(Path::new("up_data_structs", "PhantomType"))109311641094/// Property permission.1165/// Property permission.1095#[derive(Encode, Decode, TypeInfo, Debug, MaxEncodedLen, PartialEq, Clone, Default)]1166#[derive(1096#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]1167 Encode,1168 Decode,1169 TypeInfo,1170 Debug,1171 MaxEncodedLen,1172 PartialEq,1173 Clone,1174 Default,1175 Serialize,1176 Deserialize,1177)]1097pub struct PropertyPermission {1178pub struct PropertyPermission {1098 /// Permission to change the property and property permission.1179 /// Permission to change the property and property permission.112012011121/// Property is simpl key-value record.1202/// Property is simpl key-value record.1122#[derive(Encode, Decode, Debug, TypeInfo, Clone, PartialEq, MaxEncodedLen)]1203#[derive(1123#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]1204 Encode, Decode, Debug, TypeInfo, Clone, PartialEq, MaxEncodedLen, Serialize, Deserialize,1205)]1124pub struct Property {1206pub struct Property {1125 /// Property key.1207 /// Property key.1126 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]1208 #[serde(with = "bounded::vec_serde")]1127 pub key: PropertyKey,1209 pub key: PropertyKey,112812101129 /// Property value.1211 /// Property value.1130 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]1212 #[serde(with = "bounded::vec_serde")]1131 pub value: PropertyValue,1213 pub value: PropertyValue,1132}1214}11331215113912211140/// Record for proprty key permission.1222/// Record for proprty key permission.1141#[derive(Encode, Decode, TypeInfo, Debug, MaxEncodedLen, PartialEq, Clone)]1223#[derive(1142#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]1224 Encode, Decode, TypeInfo, Debug, MaxEncodedLen, PartialEq, Clone, Serialize, Deserialize,1225)]1143pub struct PropertyKeyPermission {1226pub struct PropertyKeyPermission {1144 /// Key.1227 /// Key.1362 scoped_slice_size(PropertyScope::None, data)1445 scoped_slice_size(PropertyScope::None, data)1363}1446}1364fn scoped_slice_size(scope: PropertyScope, data: &[u8]) -> u32 {1447fn scoped_slice_size(scope: PropertyScope, data: &[u8]) -> u32 {1365 use codec::Compact;1448 use parity_scale_codec::Compact;1366 let prefix = scope.prefix();1449 let prefix = scope.prefix();1367 <Compact<u32>>::encoded_size(&Compact(data.len() as u32 + prefix.len() as u32)) as u321450 <Compact<u32>>::encoded_size(&Compact(data.len() as u32 + prefix.len() as u32)) as u321368 + data.len() as u321451 + data.len() as u32primitives/data-structs/src/mapping.rsdiffbeforeafterboth181819use core::marker::PhantomData;19use core::marker::PhantomData;202021use pallet_evm::account::CrossAccountId;21use sp_core::H160;22use sp_core::H160;222323use crate::{CollectionId, TokenId};24use crate::{CollectionId, TokenId};24use pallet_evm::account::CrossAccountId;252526/// Trait for mapping between token id and some `Address`.26/// Trait for mapping between token id and some `Address`.27pub trait TokenAddressMapping<Address> {27pub trait TokenAddressMapping<Address> {primitives/data-structs/src/migration.rsdiffbeforeafterboth17/// Storage migration is not required for this change, as SponsoringRateLimit has same encoding as Option<u32>17/// Storage migration is not required for this change, as SponsoringRateLimit has same encoding as Option<u32>18#[test]18#[test]19fn sponsoring_rate_limit_has_same_encoding_as_option_u32() {19fn sponsoring_rate_limit_has_same_encoding_as_option_u32() {20 use crate::SponsoringRateLimit;20 use parity_scale_codec::Encode;2121 use codec::Encode;22 use crate::SponsoringRateLimit;222323 fn limit_to_option(limit: SponsoringRateLimit) -> Option<u32> {24 fn limit_to_option(limit: SponsoringRateLimit) -> Option<u32> {24 match limit {25 match limit {414242#[test]43#[test]43fn collection_flags_have_same_encoding_as_bool() {44fn collection_flags_have_same_encoding_as_bool() {44 use crate::CollectionFlags;45 use parity_scale_codec::Encode;4645 use codec::Encode;47 use crate::CollectionFlags;464847 assert_eq!(49 assert_eq!(48 true.encode(),50 true.encode(),primitives/pov-estimate-rpc/Cargo.tomldiffbeforeafterboth5version = "0.1.0"5version = "0.1.0"667[dependencies]7[dependencies]8codec = { workspace = true }8parity-scale-codec = { workspace = true }9scale-info = { workspace = true }9scale-info = { workspace = true }10serde = { workspace = true, optional = true }10serde = { workspace = true, optional = true }11sp-api = { workspace = true }11sp-api = { workspace = true }151516[features]16[features]17default = ["std"]17default = ["std"]18std = ["codec/std", "scale-info/std", "serde/std", "sp-api/std", "sp-core/std", "sp-runtime/std", "sp-std/std"]18std = [19 "parity-scale-codec/std",20 "scale-info/std",21 "serde/std",22 "sp-api/std",23 "sp-core/std",24 "sp-runtime/std",25 "sp-std/std",26]1927primitives/pov-estimate-rpc/src/lib.rsdiffbeforeafterboth17#![cfg_attr(not(feature = "std"), no_std)]17#![cfg_attr(not(feature = "std"), no_std)]181819use scale_info::TypeInfo;19use scale_info::TypeInfo;20use sp_std::vec::Vec;2122#[cfg(feature = "std")]20#[cfg(feature = "std")]23use serde::Serialize;21use serde::Serialize;2425use sp_runtime::ApplyExtrinsicResult;22use sp_runtime::ApplyExtrinsicResult;23use sp_std::vec::Vec;262427#[cfg_attr(feature = "std", derive(Serialize))]25#[cfg_attr(feature = "std", derive(Serialize))]28#[derive(Debug, TypeInfo)]26#[derive(Debug, TypeInfo)]primitives/rpc/Cargo.tomldiffbeforeafterboth5version = "0.1.3"5version = "0.1.3"667[dependencies]7[dependencies]8codec = { workspace = true }8pallet-common = { workspace = true }9pallet-common = { workspace = true }9pallet-evm = { workspace = true }10pallet-evm = { workspace = true }10parity-scale-codec = { workspace = true }11sp-api = { workspace = true }11sp-api = { workspace = true }12sp-core = { workspace = true }12sp-core = { workspace = true }13sp-runtime = { workspace = true }13sp-runtime = { workspace = true }17[features]17[features]18default = ["std"]18default = ["std"]19std = [19std = [20 "codec/std",21 "pallet-common/std",20 "pallet-common/std",21 "parity-scale-codec/std",22 "sp-api/std",22 "sp-api/std",23 "sp-core/std",23 "sp-core/std",24 "sp-runtime/std",24 "sp-runtime/std",primitives/rpc/src/lib.rsdiffbeforeafterboth181819extern crate alloc;19extern crate alloc;202021use up_data_structs::{21use parity_scale_codec::Decode;22 CollectionId, TokenId, RawEncoded, RpcCollection, CollectionStats, CollectionLimits, Property,22use sp_runtime::DispatchError;23 PropertyKeyPermission, TokenData, TokenChild, TokenDataVersion1,24};2526use sp_std::vec::Vec;23use sp_std::vec::Vec;27use codec::Decode;24use up_data_structs::{28use sp_runtime::DispatchError;25 CollectionId, CollectionLimits, CollectionStats, Property, PropertyKeyPermission,26 RpcCollection, TokenChild, TokenData, TokenId,27};292830type Result<T> = core::result::Result<T, DispatchError>;29type Result<T> = core::result::Result<T, DispatchError>;313082 collection: CollectionId,81 collection: CollectionId,83 token_id: TokenId,82 token_id: TokenId,84 keys: Option<Vec<Vec<u8>>>83 keys: Option<Vec<Vec<u8>>>85 ) -> Result<TokenDataVersion1<CrossAccountId>>;84 ) -> Result<up_data_structs::TokenDataVersion1<CrossAccountId>>;868587 /// Total number of tokens in collection.86 /// Total number of tokens in collection.88 fn total_supply(collection: CollectionId) -> Result<u32>;87 fn total_supply(collection: CollectionId) -> Result<u32>;117 fn collection_by_id(collection: CollectionId) -> Result<Option<RpcCollection<AccountId>>>;116 fn collection_by_id(collection: CollectionId) -> Result<Option<RpcCollection<AccountId>>>;118117119 #[changed_in(3)]118 #[changed_in(3)]120 fn collection_by_id(collection: CollectionId) -> Result<Option<RawEncoded>>;119 fn collection_by_id(collection: CollectionId) -> Result<Option<up_data_structs::RawEncoded>>;121120122 /// Get collection stats.121 /// Get collection stats.123 fn collection_stats() -> Result<CollectionStats>;122 fn collection_stats() -> Result<CollectionStats>;runtime/common/config/ethereum.rsdiffbeforeafterboth1use sp_core::{U256, H160};2use frame_support::{1use frame_support::{2 parameter_types,3 traits::FindAuthor,3 weights::{Weight, constants::WEIGHT_REF_TIME_PER_SECOND},4 weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight},4 traits::{FindAuthor},5 parameter_types, ConsensusEngineId,5 ConsensusEngineId,6};6};7use pallet_ethereum::PostLogContent;8use pallet_evm::{EnsureAddressTruncated, HashedAddressMapping};9use sp_core::{H160, U256};7use sp_runtime::{RuntimeAppPublic, Perbill, traits::ConstU32};10use sp_runtime::{traits::ConstU32, Perbill, RuntimeAppPublic};11use up_common::constants::*;128use crate::{13use crate::{9 runtime_common::{14 runtime_common::{10 config::sponsoring::DefaultSponsoringRateLimit,15 config::sponsoring::DefaultSponsoringRateLimit,11 DealWithFees,12 dispatch::CollectionDispatchT,16 dispatch::CollectionDispatchT,13 ethereum::{precompiles::UniquePrecompiles, sponsoring::EvmSponsorshipHandler},17 ethereum::{precompiles::UniquePrecompiles, sponsoring::EvmSponsorshipHandler},18 DealWithFees,14 },19 },15 Runtime, Aura, Balances, RuntimeEvent, ChainId,20 Aura, Balances, ChainId, Runtime, RuntimeEvent,16};21};17use pallet_evm::{EnsureAddressTruncated, HashedAddressMapping};18use pallet_ethereum::PostLogContent;19use up_common::constants::*;202221pub type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;23pub type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;222487 type OnCreate = pallet_evm_contract_helpers::HelpersOnCreate<Self>;89 type OnCreate = pallet_evm_contract_helpers::HelpersOnCreate<Self>;88 type ChainId = ChainId;90 type ChainId = ChainId;89 type Runner = pallet_evm::runner::stack::Runner<Self>;91 type Runner = pallet_evm::runner::stack::Runner<Self>;90 type OnChargeTransaction = pallet_evm::EVMCurrencyAdapter<Balances, DealWithFees>;92 type OnChargeTransaction =91 type TransactionValidityHack = pallet_evm_transaction_payment::TransactionValidityHack<Self>;93 pallet_evm_transaction_payment::WrappedEVMCurrencyAdapter<Balances, DealWithFees>;92 type FindAuthor = EthereumFindAuthor<Aura>;94 type FindAuthor = EthereumFindAuthor<Aura>;93 type Timestamp = crate::Timestamp;95 type Timestamp = crate::Timestamp;94 type WeightInfo = pallet_evm::weights::SubstrateWeight<Self>;96 type WeightInfo = pallet_evm::weights::SubstrateWeight<Self>;95 type GasLimitPovSizeRatio = ProofSizePerGas;97 type GasLimitPovSizeRatio = ProofSizePerGas;98 type OnCheckEvmTransaction = pallet_evm_transaction_payment::TransactionValidity<Self>;96}99}9710098impl pallet_evm_migration::Config for Runtime {101impl pallet_evm_migration::Config for Runtime {runtime/common/config/governance/fellowship.rsdiffbeforeafterboth1use crate::{Preimage, Treasury, RuntimeCall, RuntimeEvent, Scheduler, FellowshipReferenda, Runtime};2use super::*;3use pallet_gov_origins::Origin as GovOrigins;1use pallet_gov_origins::Origin as GovOrigins;4use pallet_ranked_collective::{Config as RankedConfig, Rank, TallyOf};2use pallet_ranked_collective::{Config as RankedConfig, Rank, TallyOf};34use super::*;5use crate::{6 FellowshipReferenda, Preimage, Runtime, RuntimeCall, RuntimeEvent, Scheduler, Treasury,7};586pub const FELLOWSHIP_MODULE_ID: PalletId = PalletId(*b"flowship");9pub const FELLOWSHIP_MODULE_ID: PalletId = PalletId(*b"flowship");7pub const DEMOCRACY_TRACK_ID: u16 = 10;10pub const DEMOCRACY_TRACK_ID: u16 = 10;runtime/common/config/governance/mod.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{17use frame_support::{18 PalletId, parameter_types,18 pallet_prelude::*,19 parameter_types,19 traits::{20 traits::{20 EnsureOrigin, EqualPrivilegeOnly, EitherOfDiverse, EitherOf, MapSuccess, ConstU16, Polling,21 ConstU16, EitherOf, EitherOfDiverse, EnsureOrigin, EqualPrivilegeOnly, MapSuccess, Polling,21 },22 },22 weights::Weight,23 weights::Weight,23 pallet_prelude::*,24 PalletId,24};25};25use frame_system::{EnsureRoot, EnsureNever};26use frame_system::{EnsureNever, EnsureRoot};27use pallet_collective::EnsureProportionAtLeast;26use sp_runtime::{28use sp_runtime::{27 Perbill,29 morph_types,28 traits::{AccountIdConversion, ConstU32, Replace, CheckedSub, Convert},30 traits::{AccountIdConversion, CheckedSub, ConstU32, Convert, Replace},29 morph_types,31 Perbill,30};32};31use crate::{32 Runtime, RuntimeOrigin, RuntimeEvent, RuntimeCall, OriginCaller, Preimage, Balances, Treasury,33 Scheduler, Council, TechnicalCommittee,34};35pub use up_common::{33pub use up_common::{36 constants::{UNIQUE, DAYS, HOURS, MINUTES, CENTIUNIQUE},34 constants::{CENTIUNIQUE, DAYS, HOURS, MINUTES, UNIQUE},37 types::{AccountId, Balance, BlockNumber},35 types::{AccountId, Balance, BlockNumber},38};36};3739use pallet_collective::EnsureProportionAtLeast;38use crate::{39 Balances, Council, OriginCaller, Preimage, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin,40 Scheduler, TechnicalCommittee, Treasury,41};404241pub mod council;43pub mod council;42pub use council::*;44pub use council::*;runtime/common/config/orml.rsdiffbeforeafterboth20};20};21use frame_system::EnsureSigned;21use frame_system::EnsureSigned;22use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key};22use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key};23use sp_runtime::traits::Convert;23use pallet_foreign_assets::{CurrencyId, NativeCurrency};24use xcm::latest::{Weight, Junction::*, Junctions::*, MultiLocation};24use sp_runtime::traits::Convert;25use xcm_executor::XcmExecutor;26use sp_std::{vec, vec::Vec};25use sp_std::{vec, vec::Vec};27use pallet_foreign_assets::{CurrencyId, NativeCurrency};26use staging_xcm::latest::{Junction::*, Junctions::*, MultiLocation, Weight};27use staging_xcm_executor::XcmExecutor;28use up_common::{29 constants::*,30 types::{AccountId, Balance},31};3228use crate::{33use crate::{29 Runtime, RuntimeEvent, RelayChainBlockNumberProvider,30 runtime_common::config::{34 runtime_common::config::{31 xcm::{32 SelfLocation, Weigher, XcmExecutorConfig, UniversalLocation,33 xcm_assets::{CurrencyIdConvert},34 },35 pallets::TreasuryAccountId,35 pallets::TreasuryAccountId,36 substrate::{MaxLocks, MaxReserves},36 substrate::{MaxLocks, MaxReserves},37 xcm::{38 xcm_assets::CurrencyIdConvert, SelfLocation, UniversalLocation, Weigher,39 XcmExecutorConfig,40 },37 },41 },42 RelayChainBlockNumberProvider, Runtime, RuntimeEvent,38};43};3940use up_common::{41 types::{AccountId, Balance},42 constants::*,43};444445// Signed version of balance45// Signed version of balance46pub type Amount = i128;46pub type Amount = i128;runtime/common/config/pallets/app_promotion.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use crate::{18 runtime_common::config::pallets::{TreasuryAccountId, RelayChainBlockNumberProvider},19 Runtime, Balances, BlockNumber, Unique, RuntimeEvent, EvmContractHelpers, Maintenance,20};211622use frame_support::{parameter_types, PalletId};17use frame_support::{parameter_types, PalletId};23use sp_arithmetic::Perbill;18use sp_arithmetic::Perbill;24use up_common::{19use up_common::{25 constants::{UNIQUE, DAYS, RELAY_DAYS},20 constants::{DAYS, RELAY_DAYS, UNIQUE},26 types::Balance,21 types::Balance,27};22};2324use crate::{25 runtime_common::config::pallets::{RelayChainBlockNumberProvider, TreasuryAccountId},26 Balances, BlockNumber, EvmContractHelpers, Maintenance, Runtime, RuntimeEvent, Unique,27};282829parameter_types! {29parameter_types! {30 pub const AppPromotionId: PalletId = PalletId(*b"appstake");30 pub const AppPromotionId: PalletId = PalletId(*b"appstake");runtime/common/config/pallets/collator_selection.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{parameter_types, PalletId};17use frame_support::{parameter_types, PalletId};18use crate::{19 Balance, Balances, BlockNumber, Runtime, RuntimeEvent, Aura, Session, SessionKeys,20 CollatorSelection, Treasury,21 config::pallets::{MaxCollators, SessionPeriod, TreasuryAccountId},22};2324#[cfg(feature = "governance")]25use crate::config::governance;2627#[cfg(not(feature = "governance"))]18#[cfg(not(feature = "governance"))]28use frame_system::EnsureRoot;19use frame_system::EnsureRoot;2920use pallet_configuration::{21 CollatorSelectionDesiredCollatorsOverride, CollatorSelectionKickThresholdOverride,22 CollatorSelectionLicenseBondOverride,23};30use sp_runtime::Perbill;24use sp_runtime::Perbill;31use up_common::constants::{UNIQUE, MILLIUNIQUE};25use up_common::constants::{MILLIUNIQUE, UNIQUE};2627#[cfg(feature = "governance")]28use crate::config::governance;32use pallet_configuration::{29use crate::{33 CollatorSelectionKickThresholdOverride, CollatorSelectionLicenseBondOverride,30 config::pallets::{MaxCollators, SessionPeriod, TreasuryAccountId},34 CollatorSelectionDesiredCollatorsOverride,31 Aura, Balance, Balances, BlockNumber, CollatorSelection, Runtime, RuntimeEvent,32 RuntimeHoldReason, Session, SessionKeys, Treasury,35};33};36parameter_types! {34parameter_types! {37 pub const SessionOffset: BlockNumber = 0;35 pub const SessionOffset: BlockNumber = 0;107105108impl pallet_collator_selection::Config for Runtime {106impl pallet_collator_selection::Config for Runtime {109 type RuntimeEvent = RuntimeEvent;107 type RuntimeEvent = RuntimeEvent;108 type RuntimeHoldReason = RuntimeHoldReason;110 type Currency = Balances;109 type Currency = Balances;111 // We allow root only to execute privileged collator selection operations.110 // We allow root only to execute privileged collator selection operations.112111128 type ValidatorIdOf = pallet_collator_selection::IdentityCollator;127 type ValidatorIdOf = pallet_collator_selection::IdentityCollator;129 type ValidatorRegistration = Session;128 type ValidatorRegistration = Session;130 type WeightInfo = pallet_collator_selection::weights::SubstrateWeight<Runtime>;129 type WeightInfo = pallet_collator_selection::weights::SubstrateWeight<Runtime>;131 type LicenceBondIdentifier = LicenceBondIdentifier;132 type DesiredCollators = DesiredCollators;130 type DesiredCollators = DesiredCollators;133 type LicenseBond = LicenseBond;131 type LicenseBond = LicenseBond;134 type KickThreshold = KickThreshold;132 type KickThreshold = KickThreshold;runtime/common/config/pallets/foreign_asset.rsdiffbeforeafterboth1use crate::{Runtime, RuntimeEvent, Balances};2use up_common::types::AccountId;1use up_common::types::AccountId;23use crate::{Balances, Runtime, RuntimeEvent};344impl pallet_foreign_assets::Config for Runtime {5impl pallet_foreign_assets::Config for Runtime {5 type RuntimeEvent = RuntimeEvent;6 type RuntimeEvent = RuntimeEvent;runtime/common/config/pallets/mod.rsdiffbeforeafterboth161617use alloc::string::{String, ToString};17use alloc::string::{String, ToString};1818use frame_support::parameter_types;19use frame_support::{20 parameter_types,19use sp_runtime::traits::AccountIdConversion;21 traits::{ConstU32, ConstU64, Currency},22};20use crate::{23use sp_arithmetic::Perbill;21 runtime_common::{22 dispatch::CollectionDispatchT,23 config::{substrate::TreasuryModuleId, ethereum::EvmCollectionHelpersAddress},24 weights::CommonWeights,25 RelayChainBlockNumberProvider,26 },27 Runtime, RuntimeEvent, RuntimeCall, VERSION, TOKEN_SYMBOL, DECIMALS, Balances,28};29use frame_support::traits::{ConstU32, ConstU64, Currency};24use sp_runtime::traits::AccountIdConversion;30use up_common::{25use up_common::{26 constants::*,31 types::{AccountId, Balance, BlockNumber},27 types::{AccountId, Balance, BlockNumber},32 constants::*,33};28};34use up_data_structs::{29use up_data_structs::mapping::{CrossTokenAddressMapping, EvmTokenAddressMapping};35 mapping::{EvmTokenAddressMapping, CrossTokenAddressMapping},36};37use sp_arithmetic::Perbill;383039#[cfg(feature = "governance")]31#[cfg(feature = "governance")]40use crate::runtime_common::config::governance;32use crate::runtime_common::config::governance;4133use crate::{42#[cfg(feature = "unique-scheduler")]34 runtime_common::{35 config::{ethereum::EvmCollectionHelpersAddress, substrate::TreasuryModuleId},36 dispatch::CollectionDispatchT,37 weights::CommonWeights,38 RelayChainBlockNumberProvider,39 },40 Balances, Runtime, RuntimeCall, RuntimeEvent, DECIMALS, TOKEN_SYMBOL, VERSION,43pub mod scheduler;41};444245#[cfg(feature = "foreign-assets")]43#[cfg(feature = "foreign-assets")]46pub mod foreign_asset;44pub mod foreign_asset;runtime/common/config/pallets/preimage.rsdiffbeforeafterboth161617use frame_support::parameter_types;17use frame_support::parameter_types;18use frame_system::EnsureRoot;18use frame_system::EnsureRoot;19use up_common::constants::*;2019use crate::{AccountId, Balance, Balances, Runtime, RuntimeEvent};21use crate::{AccountId, Balance, Balances, Runtime, RuntimeEvent};20use up_common::constants::*;212222parameter_types! {23parameter_types! {23 pub PreimageBaseDeposit: Balance = 1000 * UNIQUE;24 pub PreimageBaseDeposit: Balance = 1000 * UNIQUE;runtime/common/config/pallets/scheduler.rsdiffbeforeafterbothno changes
runtime/common/config/parachain.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{weights::Weight, parameter_types};17use frame_support::{parameter_types, weights::Weight};18use up_common::constants::*;1918use crate::{Runtime, RuntimeEvent, XcmpQueue, DmpQueue};20use crate::{DmpQueue, Runtime, RuntimeEvent, XcmpQueue};19use up_common::constants::*;202121parameter_types! {22parameter_types! {22 pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4);23 pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4);runtime/common/config/sponsoring.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use crate::{18 runtime_common::{sponsoring::UniqueSponsorshipHandler},19 Runtime,20};21use frame_support::parameter_types;17use frame_support::parameter_types;22use sp_core::U256;18use sp_core::U256;23use up_common::{constants::*, types::BlockNumber};19use up_common::{constants::*, types::BlockNumber};2021use crate::{runtime_common::sponsoring::UniqueSponsorshipHandler, Runtime};242225parameter_types! {23parameter_types! {26 pub const DefaultSponsoringRateLimit: BlockNumber = 1 * DAYS;24 pub const DefaultSponsoringRateLimit: BlockNumber = 1 * DAYS;runtime/common/config/substrate.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{17use frame_support::{18 dispatch::DispatchClass,19 ord_parameter_types, parameter_types,18 traits::{Everything, ConstU32, NeverEnsureOrigin},20 traits::{ConstBool, ConstU32, Everything, NeverEnsureOrigin},19 weights::{21 weights::{20 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight},22 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight},21 ConstantMultiplier,23 ConstantMultiplier,22 },24 },23 dispatch::DispatchClass,24 parameter_types, ord_parameter_types, PalletId,25 PalletId,25};26};26use sp_runtime::{27 generic,28 traits::{BlakeTwo256, AccountIdLookup},29 Perbill, Permill, Percent,30};31use sp_arithmetic::traits::One;32use frame_system::{27use frame_system::{33 limits::{BlockLength, BlockWeights},28 limits::{BlockLength, BlockWeights},34 EnsureRoot, EnsureSignedBy,29 EnsureRoot, EnsureSignedBy,35};30};36use pallet_transaction_payment::{Multiplier, ConstFeeMultiplier};31use pallet_transaction_payment::{ConstFeeMultiplier, Multiplier};32use sp_arithmetic::traits::One;37use crate::{33use sp_runtime::{38 runtime_common::DealWithFees, Runtime, RuntimeEvent, RuntimeCall, RuntimeOrigin, OriginCaller,34 traits::{AccountIdLookup, BlakeTwo256},39 PalletInfo, System, Balances, SS58Prefix, Version,35 Perbill, Percent, Permill,40};36};37use sp_std::vec;41use up_common::{types::*, constants::*};38use up_common::{constants::*, types::*};3942use sp_std::vec;40use crate::{41 runtime_common::DealWithFees, Balances, Block, OriginCaller, PalletInfo, Runtime, RuntimeCall,42 RuntimeEvent, RuntimeHoldReason, RuntimeOrigin, SS58Prefix, System, Version,43};434444parameter_types! {45parameter_types! {45 pub const BlockHashCount: BlockNumber = 2400;46 pub const BlockHashCount: BlockNumber = 2400;76 type BaseCallFilter = Everything;77 type BaseCallFilter = Everything;77 /// Maximum number of block number to block hash mappings to keep (oldest pruned first).78 /// Maximum number of block number to block hash mappings to keep (oldest pruned first).78 type BlockHashCount = BlockHashCount;79 type BlockHashCount = BlockHashCount;79 /// The maximum length of a block (in bytes).80 /// The block type.80 type BlockLength = RuntimeBlockLength;81 type Block = Block;81 /// The index type for blocks.82 /// The maximum length of a block (in bytes).82 type BlockNumber = BlockNumber;83 type BlockLength = RuntimeBlockLength;83 /// The weight of the overhead invoked on the block import process, independent of the extrinsics included in that block.84 /// The weight of the overhead invoked on the block import process, independent of the extrinsics included in that block.84 type BlockWeights = RuntimeBlockWeights;85 type BlockWeights = RuntimeBlockWeights;85 /// The aggregated dispatch type that is available for extrinsics.86 /// The aggregated dispatch type that is available for extrinsics.92 type Hash = Hash;93 type Hash = Hash;93 /// The hashing algorithm used.94 /// The hashing algorithm used.94 type Hashing = BlakeTwo256;95 type Hashing = BlakeTwo256;95 /// The header type.96 type Header = generic::Header<BlockNumber, BlakeTwo256>;97 /// The index type for storing how many extrinsics an account has signed.96 /// The index type for storing how many extrinsics an account has signed.98 type Index = Index;97 type Nonce = Nonce;99 /// The lookup mechanism to get account ID from whatever is passed in dispatchers.98 /// The lookup mechanism to get account ID from whatever is passed in dispatchers.100 type Lookup = AccountIdLookup<AccountId, ()>;99 type Lookup = AccountIdLookup<AccountId, ()>;101 /// What to do if an account is fully reaped from the system.100 /// What to do if an account is fully reaped from the system.171 type ExistentialDeposit = ExistentialDeposit;170 type ExistentialDeposit = ExistentialDeposit;172 type AccountStore = System;171 type AccountStore = System;173 type WeightInfo = pallet_balances::weights::SubstrateWeight<Self>;172 type WeightInfo = pallet_balances::weights::SubstrateWeight<Self>;174 type HoldIdentifier = [u8; 16];173 type RuntimeHoldReason = RuntimeHoldReason;175 type FreezeIdentifier = [u8; 16];174 type FreezeIdentifier = [u8; 16];176 type MaxHolds = MaxHolds;175 type MaxHolds = MaxHolds;177 type MaxFreezes = MaxFreezes;176 type MaxFreezes = MaxFreezes;247 type AuthorityId = AuraId;246 type AuthorityId = AuraId;248 type DisabledValidators = ();247 type DisabledValidators = ();249 type MaxAuthorities = MaxAuthorities;248 type MaxAuthorities = MaxAuthorities;249 type AllowMultipleBlocksPerSlot = ConstBool<true>;250}250}251251252impl pallet_utility::Config for Runtime {252impl pallet_utility::Config for Runtime {runtime/common/config/test_pallets.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use crate::{Runtime, RuntimeEvent, RuntimeCall};17use crate::{Runtime, RuntimeCall, RuntimeEvent};181819impl pallet_test_utils::Config for Runtime {19impl pallet_test_utils::Config for Runtime {20 type RuntimeEvent = RuntimeEvent;20 type RuntimeEvent = RuntimeEvent;runtime/common/config/xcm/foreignassets.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{traits::Get, parameter_types};17use frame_support::{parameter_types, traits::Get};18use sp_runtime::traits::Convert;18use orml_traits::location::AbsoluteReserveProvider;19use xcm::latest::{prelude::*, MultiAsset, MultiLocation};19use orml_xcm_support::MultiNativeAsset;20use xcm_builder::{FungiblesAdapter, NoChecking, ConvertedConcreteId};20use pallet_foreign_assets::{21 AssetId, AssetIdMapping, CurrencyId, ForeignAssetId, FreeForAll, NativeCurrency, TryAsForeign,22 XcmForeignAssetIdMapping,23};21use xcm_executor::traits::{TransactAsset, Convert as ConvertXcm, JustTry};24use sp_runtime::traits::{Convert, MaybeEquivalence};22use pallet_foreign_assets::{23 AssetIds, AssetIdMapping, XcmForeignAssetIdMapping, NativeCurrency, FreeForAll, TryAsForeign,24 ForeignAssetId, CurrencyId,25};26use sp_std::{borrow::Borrow, marker::PhantomData};25use sp_std::marker::PhantomData;27use orml_traits::location::AbsoluteReserveProvider;26use staging_xcm::latest::{prelude::*, MultiAsset, MultiLocation};28use orml_xcm_support::MultiNativeAsset;29use crate::{Runtime, Balances, ParachainInfo, PolkadotXcm, ForeignAssets};27use staging_xcm_builder::{ConvertedConcreteId, FungiblesAdapter, NoChecking};3031use super::{LocationToAccountId, RelayLocation};28use staging_xcm_executor::traits::{JustTry, TransactAsset};3233use up_common::types::{AccountId, Balance};29use up_common::types::{AccountId, Balance};3031use super::{LocationToAccountId, RelayLocation};32use crate::{Balances, ForeignAssets, ParachainInfo, PolkadotXcm, Runtime};343335parameter_types! {34parameter_types! {36 pub CheckingAccount: AccountId = PolkadotXcm::check_account();35 pub CheckingAccount: AccountId = PolkadotXcm::check_account();37}36}383739pub struct AsInnerId<AssetId, ConvertAssetId>(PhantomData<(AssetId, ConvertAssetId)>);38pub struct AsInnerId<ConvertAssetId>(PhantomData<(AssetId, ConvertAssetId)>);40impl<AssetId: Clone + PartialEq, ConvertAssetId: ConvertXcm<AssetId, AssetId>>39impl<ConvertAssetId: MaybeEquivalence<AssetId, AssetId>> MaybeEquivalence<MultiLocation, AssetId>41 ConvertXcm<MultiLocation, AssetId> for AsInnerId<AssetId, ConvertAssetId>40 for AsInnerId<ConvertAssetId>42where43 AssetId: Borrow<AssetId>,44 AssetId: TryAsForeign<AssetId, ForeignAssetId>,45 AssetIds: Borrow<AssetId>,46{41{47 fn convert_ref(id: impl Borrow<MultiLocation>) -> Result<AssetId, ()> {42 fn convert(id: &MultiLocation) -> Option<AssetId> {48 let id = id.borrow();4950 log::trace!(43 log::trace!(51 target: "xcm::AsInnerId::Convert",44 target: "xcm::AsInnerId::Convert",58 let self_location = MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())));51 let self_location = MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())));595260 if *id == parent {53 if *id == parent {61 return ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Parent));54 return ConvertAssetId::convert(&AssetId::NativeAssetId(NativeCurrency::Parent));62 }55 }635664 if *id == here || *id == self_location {57 if *id == here || *id == self_location {65 return ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Here));58 return ConvertAssetId::convert(&AssetId::NativeAssetId(NativeCurrency::Here));66 }59 }676068 match XcmForeignAssetIdMapping::<Runtime>::get_currency_id(*id) {61 match XcmForeignAssetIdMapping::<Runtime>::get_currency_id(*id) {69 Some(AssetIds::ForeignAssetId(foreign_asset_id)) => {62 Some(AssetId::ForeignAssetId(foreign_asset_id)) => {70 ConvertAssetId::convert_ref(AssetIds::ForeignAssetId(foreign_asset_id))63 ConvertAssetId::convert(&AssetId::ForeignAssetId(foreign_asset_id))71 }64 }72 _ => Err(()),65 _ => None,73 }66 }74 }67 }756876 fn reverse_ref(what: impl Borrow<AssetId>) -> Result<MultiLocation, ()> {69 fn convert_back(asset_id: &AssetId) -> Option<MultiLocation> {77 log::trace!(70 log::trace!(78 target: "xcm::AsInnerId::Reverse",71 target: "xcm::AsInnerId::Reverse",79 "AsInnerId",72 "AsInnerId",80 );73 );8182 let asset_id = what.borrow();837484 let parent_id =75 let parent_id =85 ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Parent)).unwrap();76 ConvertAssetId::convert(&AssetId::NativeAssetId(NativeCurrency::Parent)).unwrap();86 let here_id =77 let here_id =87 ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Here)).unwrap();78 ConvertAssetId::convert(&AssetId::NativeAssetId(NativeCurrency::Here)).unwrap();887989 if asset_id.clone() == parent_id {80 if asset_id.clone() == parent_id {90 return Ok(MultiLocation::parent());81 return Some(MultiLocation::parent());91 }82 }928393 if asset_id.clone() == here_id {84 if asset_id.clone() == here_id {94 return Ok(MultiLocation::new(85 return Some(MultiLocation::new(95 1,86 1,96 X1(Parachain(ParachainInfo::get().into())),87 X1(Parachain(ParachainInfo::get().into())),97 ));88 ));98 }89 }999091 let fid =100 match <AssetId as TryAsForeign<AssetId, ForeignAssetId>>::try_as_foreign(asset_id.clone()) {92 <AssetId as TryAsForeign<AssetId, ForeignAssetId>>::try_as_foreign(asset_id.clone())?;101 Some(fid) => match XcmForeignAssetIdMapping::<Runtime>::get_multi_location(fid) {93 XcmForeignAssetIdMapping::<Runtime>::get_multi_location(fid)102 Some(location) => Ok(location),103 None => Err(()),104 },105 None => Err(()),106 }107 }94 }108}95}10996112 // Use this fungibles implementation:99 // Use this fungibles implementation:113 ForeignAssets,100 ForeignAssets,114 // Use this currency when it is a fungible asset matching the given location or name:101 // Use this currency when it is a fungible asset matching the given location or name:115 ConvertedConcreteId<AssetIds, Balance, AsInnerId<AssetIds, JustTry>, JustTry>,102 ConvertedConcreteId<AssetId, Balance, AsInnerId<JustTry>, JustTry>,116 // Convert an XCM MultiLocation into a local account id:103 // Convert an XCM MultiLocation into a local account id:117 LocationToAccountId,104 LocationToAccountId,118 // Our chain's account ID type (we can't get away without mentioning it explicitly):105 // Our chain's account ID type (we can't get away without mentioning it explicitly):154 what: &MultiAsset,141 what: &MultiAsset,155 who: &MultiLocation,142 who: &MultiLocation,156 maybe_context: Option<&XcmContext>,143 maybe_context: Option<&XcmContext>,157 ) -> Result<xcm_executor::Assets, XcmError> {144 ) -> Result<staging_xcm_executor::Assets, XcmError> {158 FungiblesTransactor::withdraw_asset(what, who, maybe_context)145 FungiblesTransactor::withdraw_asset(what, who, maybe_context)159 }146 }160147163 from: &MultiLocation,150 from: &MultiLocation,164 to: &MultiLocation,151 to: &MultiLocation,165 context: &XcmContext,152 context: &XcmContext,166 ) -> Result<xcm_executor::Assets, XcmError> {153 ) -> Result<staging_xcm_executor::Assets, XcmError> {167 FungiblesTransactor::internal_transfer_asset(what, from, to, context)154 FungiblesTransactor::internal_transfer_asset(what, from, to, context)168 }155 }169}156}179>;166>;180167181pub struct CurrencyIdConvert;168pub struct CurrencyIdConvert;182impl Convert<AssetIds, Option<MultiLocation>> for CurrencyIdConvert {169impl Convert<AssetId, Option<MultiLocation>> for CurrencyIdConvert {183 fn convert(id: AssetIds) -> Option<MultiLocation> {170 fn convert(id: AssetId) -> Option<MultiLocation> {184 match id {171 match id {185 AssetIds::NativeAssetId(NativeCurrency::Here) => Some(MultiLocation::new(172 AssetId::NativeAssetId(NativeCurrency::Here) => Some(MultiLocation::new(186 1,173 1,187 X1(Parachain(ParachainInfo::get().into())),174 X1(Parachain(ParachainInfo::get().into())),188 )),175 )),189 AssetIds::NativeAssetId(NativeCurrency::Parent) => Some(MultiLocation::parent()),176 AssetId::NativeAssetId(NativeCurrency::Parent) => Some(MultiLocation::parent()),190 AssetIds::ForeignAssetId(foreign_asset_id) => {177 AssetId::ForeignAssetId(foreign_asset_id) => {191 XcmForeignAssetIdMapping::<Runtime>::get_multi_location(foreign_asset_id)178 XcmForeignAssetIdMapping::<Runtime>::get_multi_location(foreign_asset_id)192 }179 }193 }180 }199 if location == MultiLocation::here()186 if location == MultiLocation::here()200 || location == MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())))187 || location == MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())))201 {188 {202 return Some(AssetIds::NativeAssetId(NativeCurrency::Here));189 return Some(AssetId::NativeAssetId(NativeCurrency::Here));203 }190 }204191205 if location == MultiLocation::parent() {192 if location == MultiLocation::parent() {206 return Some(AssetIds::NativeAssetId(NativeCurrency::Parent));193 return Some(AssetId::NativeAssetId(NativeCurrency::Parent));207 }194 }208195209 if let Some(currency_id) = XcmForeignAssetIdMapping::<Runtime>::get_currency_id(location) {196 if let Some(currency_id) = XcmForeignAssetIdMapping::<Runtime>::get_currency_id(location) {runtime/common/config/xcm/mod.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{17use frame_support::{18 parameter_types,18 traits::{Everything, Nothing, Get, ConstU32, ProcessMessageError, Contains},19 traits::{ConstU32, Contains, Everything, Get, Nothing, ProcessMessageError},19 parameter_types,20};20};21use frame_system::EnsureRoot;21use frame_system::EnsureRoot;22use pallet_xcm::XcmPassthrough;22use pallet_xcm::XcmPassthrough;23use polkadot_parachain::primitives::Sibling;23use polkadot_parachain_primitives::primitives::Sibling;24use xcm::latest::{prelude::*, Weight, MultiLocation};24use sp_std::marker::PhantomData;25use xcm::v3::Instruction;25use staging_xcm::{26 latest::{prelude::*, MultiLocation, Weight},27 v3::Instruction,28};26use xcm_builder::{29use staging_xcm_builder::{27 AccountId32Aliases, EnsureXcmOrigin, FixedWeightBounds, ParentAsSuperuser, RelayChainAsNative,30 AccountId32Aliases, EnsureXcmOrigin, FixedWeightBounds, ParentAsSuperuser, ParentIsPreset,28 SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative,31 RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia,29 SignedToAccountId32, SovereignSignedViaLocation, ParentIsPreset,32 SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation,30};33};31use xcm_executor::{XcmExecutor, traits::ShouldExecute};34use staging_xcm_executor::{35 traits::{Properties, ShouldExecute},36 XcmExecutor,37};32use sp_std::marker::PhantomData;38use up_common::types::AccountId;3933use crate::{40use crate::{34 Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, ParachainInfo, ParachainSystem, PolkadotXcm,41 xcm_barrier::Barrier, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem,35 XcmpQueue, xcm_barrier::Barrier, RelayNetwork, AllPalletsWithSystem, Balances,42 PolkadotXcm, RelayNetwork, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, XcmpQueue,36};43};3738use up_common::types::AccountId;394440#[cfg(feature = "foreign-assets")]45#[cfg(feature = "foreign-assets")]41pub mod foreignassets;46pub mod foreignassets;49#[cfg(not(feature = "foreign-assets"))]53#[cfg(not(feature = "foreign-assets"))]50pub use nativeassets as xcm_assets;54pub use nativeassets as xcm_assets;5152#[cfg(feature = "governance")]53use crate::runtime_common::config::governance;5455use xcm_assets::{AssetTransactor, IsReserve, Trader};55use xcm_assets::{AssetTransactor, IsReserve, Trader};5657#[cfg(feature = "governance")]58use crate::runtime_common::config::governance;565957parameter_types! {60parameter_types! {58 pub const RelayLocation: MultiLocation = MultiLocation::parent();61 pub const RelayLocation: MultiLocation = MultiLocation::parent();153 origin: &MultiLocation,156 origin: &MultiLocation,154 message: &mut [Instruction<Call>],157 message: &mut [Instruction<Call>],155 max_weight: Weight,158 max_weight: Weight,156 weight_credit: &mut Weight,159 properties: &mut Properties,157 ) -> Result<(), ProcessMessageError> {160 ) -> Result<(), ProcessMessageError> {158 Deny::try_pass(origin, message)?;161 Deny::try_pass(origin, message)?;159 Allow::should_execute(origin, message, max_weight, weight_credit)162 Allow::should_execute(origin, message, max_weight, properties)160 }163 }161}164}162165211}214}212215213pub struct XcmExecutorConfig<T>(PhantomData<T>);216pub struct XcmExecutorConfig<T>(PhantomData<T>);214impl<T> xcm_executor::Config for XcmExecutorConfig<T>217impl<T> staging_xcm_executor::Config for XcmExecutorConfig<T>215where218where216 T: pallet_configuration::Config,219 T: pallet_configuration::Config,217{220{240 type UniversalAliases = Nothing;243 type UniversalAliases = Nothing;241 type CallDispatcher = RuntimeCall;244 type CallDispatcher = RuntimeCall;242 type SafeCallFilter = XcmCallFilter;245 type SafeCallFilter = XcmCallFilter;246 type Aliasers = Nothing;243}247}244248245#[cfg(feature = "runtime-benchmarks")]249#[cfg(feature = "runtime-benchmarks")]runtime/common/config/xcm/nativeassets.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use cumulus_primitives_core::XcmContext;17use frame_support::{18use frame_support::{18 traits::{tokens::currency::Currency as CurrencyT, OnUnbalanced as OnUnbalancedT, Get},19 traits::{tokens::currency::Currency as CurrencyT, Get, OnUnbalanced as OnUnbalancedT},19 weights::WeightToFeePolynomial,20 weights::WeightToFeePolynomial,20};21};22use pallet_foreign_assets::{AssetIds, NativeCurrency};21use sp_runtime::traits::{CheckedConversion, Zero, Convert};23use sp_runtime::traits::{CheckedConversion, Convert, Zero};24use sp_std::marker::PhantomData;22use xcm::latest::{25use staging_xcm::latest::{23 AssetId::{Concrete},26 AssetId::Concrete, Error as XcmError, Fungibility::Fungible as XcmFungible, Junction::*,24 Fungibility::Fungible as XcmFungible,25 MultiAsset, Error as XcmError, Weight,26 Junction::*,27 MultiLocation,28 Junctions::*,27 Junctions::*, MultiAsset, MultiLocation, Weight,29};28};30use xcm_builder::{CurrencyAdapter, NativeAsset};29use staging_xcm_builder::{CurrencyAdapter, NativeAsset};31use xcm_executor::{30use staging_xcm_executor::{32 Assets,33 traits::{MatchesFungible, WeightTrader},31 traits::{MatchesFungible, WeightTrader},32 Assets,34};33};35use pallet_foreign_assets::{AssetIds, NativeCurrency};36use sp_std::marker::PhantomData;34use up_common::types::{AccountId, Balance};37use crate::{Balances, ParachainInfo};3538use super::{LocationToAccountId, RelayLocation};36use super::{LocationToAccountId, RelayLocation};3940use up_common::types::{AccountId, Balance};37use crate::{Balances, ParachainInfo};413842pub struct OnlySelfCurrency;39pub struct OnlySelfCurrency;43impl<B: TryFrom<u128>> MatchesFungible<B> for OnlySelfCurrency {40impl<B: TryFrom<u128>> MatchesFungible<B> for OnlySelfCurrency {109 fn buy_weight(&mut self, _weight: Weight, payment: Assets) -> Result<Assets, XcmError> {106 fn buy_weight(107 &mut self,108 _weight: Weight,109 payment: Assets,110 _xcm: &XcmContext,111 ) -> Result<Assets, XcmError> {110 Ok(payment)112 Ok(payment)111 }113 }runtime/common/construct_runtime.rsdiffbeforeafterboth19 () => {19 () => {20 frame_support::construct_runtime! {20 frame_support::construct_runtime! {212122 pub enum Runtime where22 pub enum Runtime {23 Block = Block,24 NodeBlock = opaque::Block,25 UncheckedExtrinsic = UncheckedExtrinsic26 {27 System: frame_system = 0,23 System: frame_system = 0,28 StateTrieMigration: pallet_state_trie_migration = 1,24 StateTrieMigration: pallet_state_trie_migration = 1,runtime/common/dispatch.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{dispatch::DispatchResult, ensure, fail};17use frame_support::{dispatch::DispatchResult, ensure, fail};18use pallet_balances_adapter::NativeFungibleHandle;19pub use pallet_common::dispatch::CollectionDispatch;20#[cfg(not(feature = "refungible"))]21use pallet_common::unsupported;22use pallet_common::{23 erc::CommonEvmHandler, eth::map_eth_to_id, CollectionById, CollectionHandle,24 CommonCollectionOperations,25};18use pallet_evm::{PrecompileHandle, PrecompileResult};26use pallet_evm::{PrecompileHandle, PrecompileResult};27use pallet_fungible::{FungibleHandle, Pallet as PalletFungible};28use pallet_nonfungible::{NonfungibleHandle, Pallet as PalletNonfungible};29use pallet_refungible::{30 erc_token::RefungibleTokenHandle, Pallet as PalletRefungible, RefungibleHandle,31};19use sp_core::H160;32use sp_core::H160;20use sp_runtime::DispatchError;33use sp_runtime::DispatchError;21use sp_std::{borrow::ToOwned, vec::Vec};34use sp_std::{borrow::ToOwned, vec::Vec};22use pallet_common::{23 CollectionById, CollectionHandle, CommonCollectionOperations, erc::CommonEvmHandler,24 eth::map_eth_to_id,25};26pub use pallet_common::dispatch::CollectionDispatch;27use pallet_fungible::{Pallet as PalletFungible, FungibleHandle};28use pallet_balances_adapter::NativeFungibleHandle;29use pallet_nonfungible::{Pallet as PalletNonfungible, NonfungibleHandle};30use pallet_refungible::{31 Pallet as PalletRefungible, RefungibleHandle, erc_token::RefungibleTokenHandle,32};33use up_data_structs::{35use up_data_structs::{34 CollectionMode, CreateCollectionData, MAX_DECIMAL_POINTS, mapping::TokenAddressMapping,36 mapping::TokenAddressMapping, CollectionId, CollectionMode, CreateCollectionData,35 CollectionId,37 MAX_DECIMAL_POINTS,36};38};3738#[cfg(not(feature = "refungible"))]39use pallet_common::unsupported;403941pub enum CollectionDispatchT<T>40pub enum CollectionDispatchT<T>42where41whereruntime/common/ethereum/precompiles/mod.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use pallet_evm::{Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, IsPrecompileResult};17use pallet_evm::{18 IsPrecompileResult, Precompile, PrecompileHandle, PrecompileResult, PrecompileSet,19};20use pallet_evm_precompile_simple::ECRecover;18use sp_core::H160;21use sp_core::H160;19use sp_std::marker::PhantomData;22use sp_std::marker::PhantomData;2021use pallet_evm_precompile_simple::{ECRecover};22use sr25519::Sr25519Precompile;23use sr25519::Sr25519Precompile;232424mod sr25519;25mod sr25519;runtime/common/ethereum/precompiles/sr25519.rsdiffbeforeafterboth17use fp_evm::{Context, ExitSucceed, PrecompileHandle, PrecompileOutput};17use fp_evm::{Context, ExitSucceed, PrecompileHandle, PrecompileOutput};18use pallet_evm::Precompile;18use pallet_evm::Precompile;19use sp_core::{crypto::UncheckedFrom, sr25519, H256};19use sp_core::{crypto::UncheckedFrom, sr25519, H256};20use sp_std::marker::PhantomData;20use sp_std::{marker::PhantomData, prelude::*};21use sp_std::prelude::*;222123use super::utils::{Bytes, EvmDataReader, EvmDataWriter, EvmResult, FunctionModifier, Gasometer};22use super::utils::{Bytes, EvmDataReader, EvmDataWriter, EvmResult, FunctionModifier, Gasometer};2423runtime/common/ethereum/precompiles/utils/data.rsdiffbeforeafterboth16// You should have received a copy of the GNU General Public License16// You should have received a copy of the GNU General Public License17// along with Utils. If not, see <http://www.gnu.org/licenses/>.17// along with Utils. If not, see <http://www.gnu.org/licenses/>.181819use super::{EvmResult, Gasometer};2021use sp_std::borrow::ToOwned;22use core::{any::type_name, ops::Range};19use core::{any::type_name, ops::Range};2023use sp_core::{H160, H256, U256};21use sp_core::{H160, H256, U256};24use sp_std::{convert::TryInto, vec, vec::Vec};22use sp_std::{borrow::ToOwned, convert::TryInto, vec, vec::Vec};2324use super::{EvmResult, Gasometer};252526/// The `address` type of Solidity.26/// The `address` type of Solidity.27/// H160 could represent 2 types of data (bytes20 and address) that are not encoded the same way.27/// H160 could represent 2 types of data (bytes20 and address) that are not encoded the same way.runtime/common/ethereum/precompiles/utils/macro/Cargo.tomldiffbeforeafterboth9proc-macro = true9proc-macro = true101011[dependencies]11[dependencies]12num_enum = { version = "0.5.3", default-features = false }12num_enum = { version = "0.7.0", default-features = false }13proc-macro2 = "1.0"13proc-macro2 = "1.0"14quote = "1.0"14quote = "1.0"15sha3 = "0.8"15sha3 = "0.8"runtime/common/ethereum/precompiles/utils/macro/src/lib.rsdiffbeforeafterboth19#![crate_type = "proc-macro"]19#![crate_type = "proc-macro"]20extern crate proc_macro;20extern crate proc_macro;2122use std::convert::TryInto;212322use proc_macro::TokenStream;24use proc_macro::TokenStream;23use proc_macro2::Literal;25use proc_macro2::Literal;24use quote::{quote, quote_spanned};26use quote::{quote, quote_spanned};25use sha3::{Digest, Keccak256};27use sha3::{Digest, Keccak256};26use std::convert::TryInto;27use syn::{parse_macro_input, spanned::Spanned, Expr, ExprLit, Ident, ItemEnum, Lit};28use syn::{parse_macro_input, spanned::Spanned, Expr, ExprLit, Ident, ItemEnum, Lit};282929/// This macro allows to associate to each variant of an enumeration a discriminant (of type u3230/// This macro allows to associate to each variant of an enumeration a discriminant (of type u32runtime/common/ethereum/precompiles/utils/mod.rsdiffbeforeafterboth16// You should have received a copy of the GNU General Public License16// You should have received a copy of the GNU General Public License17// along with Utils. If not, see <http://www.gnu.org/licenses/>.17// along with Utils. If not, see <http://www.gnu.org/licenses/>.181819use sp_std::borrow::ToOwned;20use fp_evm::{Context, ExitRevert, PrecompileFailure};19use fp_evm::{Context, ExitRevert, PrecompileFailure};21use sp_core::U256;20use sp_core::U256;22use sp_std::marker::PhantomData;21use sp_std::{borrow::ToOwned, marker::PhantomData};232224mod data;23mod data;2524runtime/common/ethereum/self_contained_call.rsdiffbeforeafterboth161617use sp_core::H160;17use sp_core::H160;18use sp_runtime::{18use sp_runtime::{19 traits::{Dispatchable, DispatchInfoOf, PostDispatchInfoOf},19 traits::{DispatchInfoOf, Dispatchable, PostDispatchInfoOf},20 transaction_validity::{TransactionValidityError, TransactionValidity, InvalidTransaction},20 transaction_validity::{InvalidTransaction, TransactionValidity, TransactionValidityError},21};21};2222use crate::{RuntimeOrigin, RuntimeCall, Maintenance};23use crate::{Maintenance, RuntimeCall, RuntimeOrigin};232424impl fp_self_contained::SelfContainedCall for RuntimeCall {25impl fp_self_contained::SelfContainedCall for RuntimeCall {25 type SignedInfo = H160;26 type SignedInfo = H160;runtime/common/ethereum/sponsoring.rsdiffbeforeafterboth181819use core::{convert::TryInto, marker::PhantomData};19use core::{convert::TryInto, marker::PhantomData};2020use evm_coder::{Call};21use evm_coder::Call;21use pallet_common::{CollectionHandle, eth::map_eth_to_id};22use pallet_common::{eth::map_eth_to_id, CollectionHandle};22use pallet_evm::account::CrossAccountId;23use pallet_evm::account::CrossAccountId;23use pallet_evm_transaction_payment::CallContext;24use pallet_evm_transaction_payment::CallContext;24use pallet_nonfungible::{25use pallet_fungible::{25 Config as NonfungibleConfig, Pallet as NonfungiblePallet, NonfungibleHandle,26 erc::{26 erc::{ERC20Call, UniqueFungibleCall},27 UniqueNFTCall, ERC721UniqueExtensionsCall, ERC721UniqueMintableCall, ERC721Call,27 Config as FungibleConfig,28 TokenPropertiesCall,29 },30};28};31use pallet_fungible::{29use pallet_nonfungible::{32 Config as FungibleConfig,33 erc::{UniqueFungibleCall, ERC20Call},30 erc::{31 ERC721Call, ERC721UniqueExtensionsCall, ERC721UniqueMintableCall, TokenPropertiesCall,32 UniqueNFTCall,33 },34 Config as NonfungibleConfig, NonfungibleHandle, Pallet as NonfungiblePallet,34};35};35use pallet_refungible::{36use pallet_refungible::{36 Config as RefungibleConfig,37 erc::UniqueRefungibleCall,37 erc::UniqueRefungibleCall,38 erc_token::{RefungibleTokenHandle, UniqueRefungibleTokenCall},38 erc_token::{RefungibleTokenHandle, UniqueRefungibleTokenCall},39 RefungibleHandle,39 Config as RefungibleConfig, RefungibleHandle,40};40};41use pallet_unique::Config as UniqueConfig;41use pallet_unique::Config as UniqueConfig;42use sp_std::prelude::*;42use sp_std::prelude::*;43use up_data_structs::{43use up_data_structs::{44 CollectionMode, CreateItemData, CreateNftData, mapping::TokenAddressMapping, TokenId,44 mapping::TokenAddressMapping, CollectionMode, CreateItemData, CreateNftData, TokenId,45};45};46use up_sponsorship::SponsorshipHandler;46use up_sponsorship::SponsorshipHandler;4747use crate::{Runtime, runtime_common::sponsoring::*};48use crate::{runtime_common::sponsoring::*, Runtime};484949mod refungible;50mod refungible;5051206}207}207208208mod common {209mod common {209 use super::*;210211 use pallet_common::erc::{CollectionCall};210 use pallet_common::erc::CollectionCall;211212 use super::*;212213213 pub fn collection_call_sponsor<T>(214 pub fn collection_call_sponsor<T>(214 call: CollectionCall<T>,215 call: CollectionCall<T>,runtime/common/ethereum/sponsoring/refungible.rsdiffbeforeafterboth19use pallet_common::CollectionHandle;19use pallet_common::CollectionHandle;20use pallet_evm::account::CrossAccountId;20use pallet_evm::account::CrossAccountId;21use pallet_fungible::Config as FungibleConfig;21use pallet_fungible::Config as FungibleConfig;22use pallet_refungible::Config as RefungibleConfig;22use pallet_nonfungible::Config as NonfungibleConfig;23use pallet_nonfungible::Config as NonfungibleConfig;23use pallet_refungible::{24 erc::{25 ERC721BurnableCall, ERC721Call, ERC721EnumerableCall, ERC721MetadataCall,26 ERC721UniqueExtensionsCall, ERC721UniqueMintableCall, TokenPropertiesCall,27 UniqueRefungibleCall,28 },29 erc_token::{30 ERC1633Call, ERC20Call, ERC20UniqueExtensionsCall, RefungibleTokenHandle,31 UniqueRefungibleTokenCall,32 },33 Config as RefungibleConfig,34};24use pallet_unique::Config as UniqueConfig;35use pallet_unique::Config as UniqueConfig;25use up_data_structs::{CreateItemData, CreateNftData, TokenId};36use up_data_structs::{CreateItemData, CreateNftData, TokenId};263727use super::common;38use super::common;28use crate::runtime_common::sponsoring::*;39use crate::runtime_common::sponsoring::*;2930use pallet_refungible::{31 erc::{32 ERC721BurnableCall, ERC721Call, ERC721EnumerableCall, ERC721MetadataCall,33 ERC721UniqueExtensionsCall, ERC721UniqueMintableCall, TokenPropertiesCall,34 UniqueRefungibleCall,35 },36 erc_token::{37 ERC1633Call, ERC20Call, ERC20UniqueExtensionsCall, RefungibleTokenHandle,38 UniqueRefungibleTokenCall,39 },40};414042pub fn call_sponsor<T>(41pub fn call_sponsor<T>(43 call: UniqueRefungibleCall<T>,42 call: UniqueRefungibleCall<T>,runtime/common/identity.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use scale_info::TypeInfo;17use parity_scale_codec::{Decode, Encode};18use codec::{Encode, Decode};18use scale_info::TypeInfo;19#[cfg(feature = "collator-selection")]19use up_common::types::AccountId;20use sp_runtime::transaction_validity::InvalidTransaction;20use crate::RuntimeCall;2122use sp_runtime::{21use sp_runtime::{23 traits::{DispatchInfoOf, SignedExtension},22 traits::{DispatchInfoOf, SignedExtension},24 transaction_validity::{TransactionValidity, ValidTransaction, TransactionValidityError},23 transaction_validity::{TransactionValidity, TransactionValidityError, ValidTransaction},25};24};2627#[cfg(feature = "collator-selection")]28use sp_runtime::transaction_validity::InvalidTransaction;25use up_common::types::AccountId;2627use crate::RuntimeCall;292830#[derive(Debug, Encode, Decode, PartialEq, Eq, Clone, TypeInfo)]29#[derive(Debug, Encode, Decode, PartialEq, Eq, Clone, TypeInfo)]31pub struct DisableIdentityCalls;30pub struct DisableIdentityCalls;runtime/common/instance.rsdiffbeforeafterboth1use crate::{2 runtime_common::{config::ethereum::CrossAccountId},3 Runtime,4};5use up_common::types::opaque::RuntimeInstance;1use up_common::types::opaque::RuntimeInstance;23use crate::{runtime_common::config::ethereum::CrossAccountId, Runtime};647impl RuntimeInstance for Runtime {5impl RuntimeInstance for Runtime {8 type CrossAccountId = CrossAccountId;6 type CrossAccountId = CrossAccountId;runtime/common/maintenance.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use scale_info::TypeInfo;18use codec::{Encode, Decode};17use parity_scale_codec::{Decode, Encode};19use up_common::types::AccountId;18use scale_info::TypeInfo;20use crate::{RuntimeCall, Maintenance};2122use sp_runtime::{19use sp_runtime::{23 traits::{DispatchInfoOf, SignedExtension},20 traits::{DispatchInfoOf, SignedExtension},24 transaction_validity::{21 transaction_validity::{25 TransactionValidity, ValidTransaction, InvalidTransaction, TransactionValidityError,22 InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,26 },23 },27};24};25use up_common::types::AccountId;2627use crate::{Maintenance, RuntimeCall};282829#[derive(Debug, Encode, Decode, PartialEq, Eq, Clone, TypeInfo)]29#[derive(Debug, Encode, Decode, PartialEq, Eq, Clone, TypeInfo)]30pub struct CheckMaintenance;30pub struct CheckMaintenance;67 | RuntimeCall::Structure(_)67 | RuntimeCall::Structure(_)68 | RuntimeCall::Unique(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),68 | RuntimeCall::Unique(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),6970 #[cfg(feature = "unique-scheduler")]71 RuntimeCall::Scheduler(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),726973 #[cfg(feature = "app-promotion")]70 #[cfg(feature = "app-promotion")]74 RuntimeCall::AppPromotion(_) => {71 RuntimeCall::AppPromotion(_) => {runtime/common/mod.rsdiffbeforeafterboth23pub mod maintenance;23pub mod maintenance;24pub mod runtime_apis;24pub mod runtime_apis;2526#[cfg(feature = "unique-scheduler")]27pub mod scheduler;282529pub mod sponsoring;26pub mod sponsoring;30#[allow(missing_docs)]27#[allow(missing_docs)]33#[cfg(test)]30#[cfg(test)]34pub mod tests;31pub mod tests;353236use sp_core::H160;37use frame_support::{33use frame_support::{38 traits::{Currency, OnUnbalanced, Imbalance},34 traits::{Currency, Imbalance, OnUnbalanced},39 weights::Weight,35 weights::Weight,40};36};41use sp_runtime::{37use sp_runtime::{42 generic,38 generic, impl_opaque_keys,43 traits::{BlakeTwo256, BlockNumberProvider},39 traits::{BlakeTwo256, BlockNumberProvider},44 impl_opaque_keys,45};40};46use sp_std::vec::Vec;41use sp_std::vec::Vec;4748#[cfg(feature = "std")]42#[cfg(feature = "std")]49use sp_version::NativeVersion;43use sp_version::NativeVersion;5051use crate::{52 Runtime, RuntimeCall, Balances, Treasury, Aura, Signature, AllPalletsWithSystem,53 InherentDataExt,54};55use up_common::types::{AccountId, BlockNumber};44use up_common::types::{AccountId, BlockNumber};4546use crate::{47 AllPalletsWithSystem, Aura, Balances, InherentDataExt, Runtime, RuntimeCall, Signature,48 Treasury,49};565057#[macro_export]51#[macro_export]58macro_rules! unsupported {52macro_rules! unsupported {635764/// The address format for describing accounts.58/// The address format for describing accounts.65pub type Address = sp_runtime::MultiAddress<AccountId, ()>;59pub type Address = sp_runtime::MultiAddress<AccountId, ()>;66/// Block header type as expected by this runtime.67pub type Header = generic::Header<BlockNumber, BlakeTwo256>;68/// Block type as expected by this runtime.69pub type Block = generic::Block<Header, UncheckedExtrinsic>;70/// A Block signed with a Justification60/// A Block signed with a Justification71pub type SignedBlock = generic::SignedBlock<Block>;61pub type SignedBlock = generic::SignedBlock<Block>;62/// Frontier wrapped extrinsic63pub type UncheckedExtrinsic =64 fp_self_contained::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;65/// Header type.66pub type Header = generic::Header<BlockNumber, BlakeTwo256>;67/// Block type.68pub type Block = generic::Block<Header, UncheckedExtrinsic>;72/// BlockId type as expected by this runtime.69/// BlockId type as expected by this runtime.73pub type BlockId = generic::BlockId<Block>;70pub type BlockId = generic::BlockId<Block>;7471103 pallet_ethereum::FakeTransactionFinalizer<Runtime>,100 pallet_ethereum::FakeTransactionFinalizer<Runtime>,104);101);105106/// Unchecked extrinsic type as expected by this runtime.107pub type UncheckedExtrinsic =108 fp_self_contained::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;109110/// Extrinsic type that has already been checked.111pub type CheckedExtrinsic =112 fp_self_contained::CheckedExtrinsic<AccountId, RuntimeCall, SignedExtra, H160>;113102114/// Executive: handles dispatch to the various modules.103/// Executive: handles dispatch to the various modules.115pub type Executive = frame_executive::Executive<104pub type Executive = frame_executive::Executive<180 }169 }181}170}182171183#[derive(codec::Encode, codec::Decode)]172#[derive(parity_scale_codec::Encode, parity_scale_codec::Decode)]184pub enum XCMPMessage<XAccountId, XBalance> {173pub enum XCMPMessage<XAccountId, XBalance> {185 /// Transfer tokens to the given account from the Parachain account.174 /// Transfer tokens to the given account from the Parachain account.186 TransferToken(XAccountId, XBalance),175 TransferToken(XAccountId, XBalance),191 fn on_runtime_upgrade() -> Weight {180 fn on_runtime_upgrade() -> Weight {192 #[cfg(feature = "collator-selection")]181 #[cfg(feature = "collator-selection")]193 {182 {194 use frame_support::{BoundedVec, storage::migration};183 use frame_support::{storage::migration, BoundedVec};184 use pallet_session::SessionManager;195 use sp_runtime::{traits::OpaqueKeys, RuntimeAppPublic};185 use sp_runtime::{traits::OpaqueKeys, RuntimeAppPublic};196 use pallet_session::SessionManager;186197 use crate::config::pallets::MaxCollators;187 use crate::config::pallets::MaxCollators;198188199 let mut weight = <Runtime as frame_system::Config>::DbWeight::get().reads(1);189 let mut weight = <Runtime as frame_system::Config>::DbWeight::get().reads(1);runtime/common/runtime_apis.rsdiffbeforeafterboth284 }283 }285284286 // fn random_seed() -> <Block as BlockT>::Hash {285 // fn random_seed() -> <Block as BlockT>::Hash {287 // RandomnessCollectiveFlip::random_seed().0286 // RandomnessCollectiveFlip::random_seed().0288 // }287 // }289 }288 }290289472 }471 }473 }472 }474475 impl fp_rpc::ConvertTransactionRuntimeApi<Block> for Runtime {476 fn convert_transaction(transaction: pallet_ethereum::Transaction) -> <Block as BlockT>::Extrinsic {477 UncheckedExtrinsic::new_unsigned(478 pallet_ethereum::Call::<Runtime>::transact { transaction }.into(),479 )480 }481 }482473483 impl sp_session::SessionKeys<Block> for Runtime {474 impl sp_session::SessionKeys<Block> for Runtime {484 fn decode_session_keys(475 fn decode_session_keys(508 }499 }509 }500 }510501511 impl frame_system_rpc_runtime_api::AccountNonceApi<Block, AccountId, Index> for Runtime {502 impl frame_system_rpc_runtime_api::AccountNonceApi<Block, AccountId, Nonce> for Runtime {512 fn account_nonce(account: AccountId) -> Index {503 fn account_nonce(account: AccountId) -> Nonce {513 System::account_nonce(account)504 System::account_nonce(account)514 }505 }515 }506 }529 }520 }530 }521 }531532 /*533 impl pallet_contracts_rpc_runtime_api::ContractsApi<Block, AccountId, Balance, BlockNumber, Hash>534 for Runtime535 {536 fn call(537 origin: AccountId,538 dest: AccountId,539 value: Balance,540 gas_limit: u64,541 input_data: Vec<u8>,542 ) -> pallet_contracts_primitives::ContractExecResult {543 Contracts::bare_call(origin, dest, value, gas_limit, input_data, false)544 }545546 fn instantiate(547 origin: AccountId,548 endowment: Balance,549 gas_limit: u64,550 code: pallet_contracts_primitives::Code<Hash>,551 data: Vec<u8>,552 salt: Vec<u8>,553 ) -> pallet_contracts_primitives::ContractInstantiateResult<AccountId, BlockNumber>554 {555 Contracts::bare_instantiate(origin, endowment, gas_limit, code, data, salt, true, false)556 }557558 fn get_storage(559 address: AccountId,560 key: [u8; 32],561 ) -> pallet_contracts_primitives::GetStorageResult {562 Contracts::get_storage(address, key)563 }564565 fn rent_projection(566 address: AccountId,567 ) -> pallet_contracts_primitives::RentProjectionResult<BlockNumber> {568 Contracts::rent_projection(address)569 }570 }571 */572522573 #[cfg(feature = "runtime-benchmarks")]523 #[cfg(feature = "runtime-benchmarks")]574 impl frame_benchmarking::Benchmark<Block> for Runtime {524 impl frame_benchmarking::Benchmark<Block> for Runtime {598 #[cfg(feature = "refungible")]548 #[cfg(feature = "refungible")]599 list_benchmark!(list, extra, pallet_refungible, Refungible);549 list_benchmark!(list, extra, pallet_refungible, Refungible);600601 #[cfg(feature = "unique-scheduler")]602 list_benchmark!(list, extra, pallet_unique_scheduler_v2, Scheduler);603550604 #[cfg(feature = "collator-selection")]551 #[cfg(feature = "collator-selection")]605 list_benchmark!(list, extra, pallet_collator_selection, CollatorSelection);552 list_benchmark!(list, extra, pallet_collator_selection, CollatorSelection);664 #[cfg(feature = "refungible")]611 #[cfg(feature = "refungible")]665 add_benchmark!(params, batches, pallet_refungible, Refungible);612 add_benchmark!(params, batches, pallet_refungible, Refungible);666667 #[cfg(feature = "unique-scheduler")]668 add_benchmark!(params, batches, pallet_unique_scheduler_v2, Scheduler);669613670 #[cfg(feature = "collator-selection")]614 #[cfg(feature = "collator-selection")]671 add_benchmark!(params, batches, pallet_collator_selection, CollatorSelection);615 add_benchmark!(params, batches, pallet_collator_selection, CollatorSelection);690 fn pov_estimate(uxt: Vec<u8>) -> ApplyExtrinsicResult {634 fn pov_estimate(uxt: Vec<u8>) -> ApplyExtrinsicResult {691 #[cfg(feature = "pov-estimate")]635 #[cfg(feature = "pov-estimate")]692 {636 {693 use codec::Decode;637 use parity_scale_codec::Decode;694638695 let uxt_decode = <<Block as BlockT>::Extrinsic as Decode>::decode(&mut &*uxt)639 let uxt_decode = <<Block as BlockT>::Extrinsic as Decode>::decode(&mut &*uxt)696 .map_err(|_| DispatchError::Other("failed to decode the extrinsic"));640 .map_err(|_| DispatchError::Other("failed to decode the extrinsic"));734 }678 }735 }679 }680681 /// Should never be used, yet still required because of https://github.com/paritytech/polkadot-sdk/issues/27682 /// Not allowed to panic, because rpc may be called using native runtime, thus causing thread panic.683 impl fp_rpc::ConvertTransactionRuntimeApi<Block> for Runtime {684 fn convert_transaction(685 transaction: pallet_ethereum::Transaction686 ) -> <Block as BlockT>::Extrinsic {687 UncheckedExtrinsic::new_unsigned(688 pallet_ethereum::Call::<Runtime>::transact { transaction }.into(),689 )690 }691 }736 }692 }737 }693 }738}694}runtime/common/scheduler.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use fp_self_contained::SelfContainedCall;17use frame_support::{18use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo};18 dispatch::{GetDispatchInfo, PostDispatchInfo, DispatchInfo},19use pallet_transaction_payment::ChargeTransactionPayment;19};20use pallet_unique_scheduler_v2::DispatchCall;21use parity_scale_codec::Encode;20use sp_runtime::{22use sp_runtime::{21 traits::{Dispatchable, Applyable, Member},23 traits::{Applyable, Dispatchable, Member},22 transaction_validity::TransactionValidityError,24 transaction_validity::TransactionValidityError,23 DispatchErrorWithPostInfo,25 DispatchErrorWithPostInfo,24};26};25use codec::Encode;27use up_common::types::AccountId;2826use crate::{Runtime, RuntimeCall, RuntimeOrigin, maintenance};29use crate::{maintenance, Runtime, RuntimeCall, RuntimeOrigin};27use up_common::types::AccountId;28use fp_self_contained::SelfContainedCall;29use pallet_unique_scheduler_v2::DispatchCall;30use pallet_transaction_payment::ChargeTransactionPayment;313032/// The SignedExtension to the basic transaction logic.31/// The SignedExtension to the basic transaction logic.33pub type SignedExtraScheduler = (32pub type SignedExtraScheduler = (runtime/common/sponsoring.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use core::marker::PhantomData;17use core::marker::PhantomData;18use up_sponsorship::SponsorshipHandler;1819use frame_support::{19use frame_support::traits::IsSubType;20 traits::{IsSubType},21};22use up_data_structs::{23 CollectionId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, NFT_SPONSOR_TRANSFER_TIMEOUT,24 REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, TokenId, CollectionMode, CreateItemData,25};26use sp_runtime::traits::Saturating;20use frame_system::pallet_prelude::*;27use pallet_common::{CollectionHandle};21use pallet_common::CollectionHandle;28use pallet_evm::account::CrossAccountId;22use pallet_evm::account::CrossAccountId;23use pallet_fungible::Config as FungibleConfig;24use pallet_nonfungible::Config as NonfungibleConfig;25use pallet_refungible::Config as RefungibleConfig;29use pallet_unique::{26use pallet_unique::{30 Call as UniqueCall, Config as UniqueConfig, FungibleApproveBasket, RefungibleApproveBasket,27 Call as UniqueCall, Config as UniqueConfig, CreateItemBasket, FungibleApproveBasket,31 NftApproveBasket, CreateItemBasket, ReFungibleTransferBasket, FungibleTransferBasket,28 FungibleTransferBasket, NftApproveBasket, NftTransferBasket, ReFungibleTransferBasket,32 NftTransferBasket, TokenPropertyBasket,29 RefungibleApproveBasket, TokenPropertyBasket,33};30};34use pallet_fungible::Config as FungibleConfig;31use sp_runtime::traits::Saturating;35use pallet_nonfungible::Config as NonfungibleConfig;32use up_data_structs::{33 CollectionId, CollectionMode, CreateItemData, TokenId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,34 NFT_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,35};36use pallet_refungible::Config as RefungibleConfig;36use up_sponsorship::SponsorshipHandler;373738pub trait Config: UniqueConfig + FungibleConfig + NonfungibleConfig + RefungibleConfig {}38pub trait Config: UniqueConfig + FungibleConfig + NonfungibleConfig + RefungibleConfig {}39impl<T> Config for T where T: UniqueConfig + FungibleConfig + NonfungibleConfig + RefungibleConfig {}39impl<T> Config for T where T: UniqueConfig + FungibleConfig + NonfungibleConfig + RefungibleConfig {}79 return None;79 return None;80 }80 }818182 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;82 let block_number = <frame_system::Pallet<T>>::block_number() as BlockNumberFor<T>;83 let limit = collection.limits.sponsored_data_rate_limit()?;83 let limit = collection.limits.sponsored_data_rate_limit()?;848485 if let Some(last_tx_block) = TokenPropertyBasket::<T>::get(collection.id, item_id) {85 if let Some(last_tx_block) = TokenPropertyBasket::<T>::get(collection.id, item_id) {123 }123 }124124125 // sponsor timeout125 // sponsor timeout126 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;126 let block_number = <frame_system::Pallet<T>>::block_number() as BlockNumberFor<T>;127 let limit = collection127 let limit = collection128 .limits128 .limits129 .sponsor_transfer_timeout(match collection.mode {129 .sponsor_transfer_timeout(match collection.mode {169 properties: &CreateItemData,169 properties: &CreateItemData,170) -> Option<()> {170) -> Option<()> {171 // sponsor timeout171 // sponsor timeout172 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;172 let block_number = <frame_system::Pallet<T>>::block_number() as BlockNumberFor<T>;173 let limit = collection173 let limit = collection174 .limits174 .limits175 .sponsor_transfer_timeout(match properties {175 .sponsor_transfer_timeout(match properties {195 item_id: &TokenId,195 item_id: &TokenId,196) -> Option<()> {196) -> Option<()> {197 // sponsor timeout197 // sponsor timeout198 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;198 let block_number = <frame_system::Pallet<T>>::block_number() as BlockNumberFor<T>;199 let limit = collection.limits.sponsor_approve_timeout();199 let limit = collection.limits.sponsor_approve_timeout();200200201 let last_tx_block = match collection.mode {201 let last_tx_block = match collection.mode {307pub trait SponsorshipPredict<T: Config> {307pub trait SponsorshipPredict<T: Config> {308 fn predict(collection: CollectionId, account: T::CrossAccountId, token: TokenId) -> Option<u64>308 fn predict(collection: CollectionId, account: T::CrossAccountId, token: TokenId) -> Option<u64>309 where309 where310 u64: From<<T as frame_system::Config>::BlockNumber>;310 u64: From<BlockNumberFor<T>>;311}311}312312313pub struct UniqueSponsorshipPredict<T>(PhantomData<T>);313pub struct UniqueSponsorshipPredict<T>(PhantomData<T>);314314315impl<T: Config> SponsorshipPredict<T> for UniqueSponsorshipPredict<T> {315impl<T: Config> SponsorshipPredict<T> for UniqueSponsorshipPredict<T> {316 fn predict(collection_id: CollectionId, who: T::CrossAccountId, token: TokenId) -> Option<u64>316 fn predict(collection_id: CollectionId, who: T::CrossAccountId, token: TokenId) -> Option<u64>317 where317 where318 u64: From<<T as frame_system::Config>::BlockNumber>,318 u64: From<BlockNumberFor<T>>,319 {319 {320 let collection = <CollectionHandle<T>>::try_get(collection_id).ok()?;320 let collection = <CollectionHandle<T>>::try_get(collection_id).ok()?;321 let _ = collection.sponsorship.sponsor()?;321 let _ = collection.sponsorship.sponsor()?;322322323 // sponsor timeout323 // sponsor timeout324 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;324 let block_number = <frame_system::Pallet<T>>::block_number() as BlockNumberFor<T>;325 let limit = collection325 let limit = collection326 .limits326 .limits327 .sponsor_transfer_timeout(match collection.mode {327 .sponsor_transfer_timeout(match collection.mode {runtime/common/tests/mod.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use sp_runtime::{BuildStorage, Storage};17use sp_core::{Pair, Public};18pub use sp_runtime::AccountId32 as AccountId;18use sp_core::{Public, Pair};19use sp_runtime::{BuildStorage, Storage};19use up_common::types::AuraId;20use up_common::types::AuraId;2120use crate::{Runtime, GenesisConfig, ParachainInfoConfig, RuntimeEvent, System};22use crate::{ParachainInfoConfig, Runtime, RuntimeEvent, RuntimeGenesisConfig, System};2122pub use sp_runtime::AccountId32 as AccountId;23pub type Balance = u128;23pub type Balance = u128;242425pub mod xcm;25pub mod xcm;626263#[cfg(feature = "collator-selection")]63#[cfg(feature = "collator-selection")]64fn make_basic_storage() -> Storage {64fn make_basic_storage() -> Storage {65 use sp_core::{sr25519};65 use sp_core::sr25519;66 use sp_runtime::traits::{IdentifyAccount, Verify};66 use sp_runtime::traits::{IdentifyAccount, Verify};6767 use crate::{AccountId, Signature, SessionKeys, CollatorSelectionConfig, SessionConfig};68 use crate::{AccountId, CollatorSelectionConfig, SessionConfig, SessionKeys, Signature};686969 type AccountPublic = <Signature as Verify>::Signer;70 type AccountPublic = <Signature as Verify>::Signer;707194 .map(|acc| get_account_id_from_seed::<sr25519::Public>(acc))95 .map(|acc| get_account_id_from_seed::<sr25519::Public>(acc))95 .collect::<Vec<_>>();96 .collect::<Vec<_>>();969797 let cfg = GenesisConfig {98 let cfg = RuntimeGenesisConfig {98 collator_selection: CollatorSelectionConfig { invulnerables },99 collator_selection: CollatorSelectionConfig { invulnerables },99 session: SessionConfig { keys },100 session: SessionConfig { keys },100 parachain_info: ParachainInfoConfig {101 parachain_info: ParachainInfoConfig {101 parachain_id: PARA_ID.into(),102 parachain_id: PARA_ID.into(),103 ..Default::default()102 },104 },103 ..GenesisConfig::default()105 ..Default::default()104 };106 };105107106 cfg.build_storage().unwrap()108 cfg.build_storage().unwrap()110fn make_basic_storage() -> Storage {112fn make_basic_storage() -> Storage {111 use crate::AuraConfig;113 use crate::AuraConfig;112114113 let cfg = GenesisConfig {115 let cfg = RuntimeGenesisConfig {114 aura: AuraConfig {116 aura: AuraConfig {115 authorities: vec![117 authorities: vec![116 get_from_seed::<AuraId>("Alice"),118 get_from_seed::<AuraId>("Alice"),119 },121 },120 parachain_info: ParachainInfoConfig {122 parachain_info: ParachainInfoConfig {121 parachain_id: PARA_ID.into(),123 parachain_id: PARA_ID.into(),124 ..Default::default()122 },125 },123 ..GenesisConfig::default()126 ..Default::default()124 };127 };125128126 cfg.build_storage().unwrap().into()129 cfg.build_storage().unwrap().into()runtime/common/tests/xcm.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use xcm::{17use frame_support::pallet_prelude::Weight;18 VersionedXcm,19 latest::{prelude::*, Error},20};21use codec::Encode;18use parity_scale_codec::Encode;22use crate::{Runtime, RuntimeCall, RuntimeOrigin, RuntimeEvent, PolkadotXcm};19use staging_xcm::{20 latest::{prelude::*, Error},21 VersionedXcm,22};2323use super::{new_test_ext, last_events, AccountId};24use super::{last_events, new_test_ext, AccountId};24use frame_support::{pallet_prelude::Weight};25use crate::{PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin};252626const ALICE: AccountId = AccountId::new([0u8; 32]);27const ALICE: AccountId = AccountId::new([0u8; 32]);27const BOB: AccountId = AccountId::new([1u8; 32]);28const BOB: AccountId = AccountId::new([1u8; 32]);515252 let xcm_event = &last_events(1)[0];53 let xcm_event = &last_events(1)[0];53 match xcm_event {54 match xcm_event {54 RuntimeEvent::PolkadotXcm(pallet_xcm::Event::<Runtime>::Attempted(55 RuntimeEvent::PolkadotXcm(pallet_xcm::Event::<Runtime>::Attempted {55 Outcome::Incomplete(_weight, Error::NoPermission),56 outcome: Outcome::Incomplete(_weight, Error::NoPermission),56 )) => { /* Pass */ }57 }) => { /* Pass */ }57 _ => panic!(58 _ => panic!(58 "Expected PolkadotXcm.Attempted(Incomplete(_weight, NoPermission)),\59 "Expected PolkadotXcm.Attempted(Incomplete(_weight, NoPermission)),\59 found: {xcm_event:#?}"60 found: {xcm_event:#?}"runtime/common/weights/mod.rsdiffbeforeafterboth161617use core::marker::PhantomData;17use core::marker::PhantomData;1818use frame_support::{weights::Weight};19use frame_support::weights::Weight;19use pallet_common::{CommonWeightInfo, dispatch::dispatch_weight, RefungibleExtensionsWeightInfo};20use pallet_balances_adapter::{2021 common::CommonWeights as NativeFungibleWeights, Config as NativeFungibleConfig,22};21use pallet_balances_adapter::{23use pallet_common::{dispatch::dispatch_weight, CommonWeightInfo, RefungibleExtensionsWeightInfo};22 Config as NativeFungibleConfig, common::CommonWeights as NativeFungibleWeights,23};24use pallet_fungible::{Config as FungibleConfig, common::CommonWeights as FungibleWeights};24use pallet_fungible::{common::CommonWeights as FungibleWeights, Config as FungibleConfig};25use pallet_nonfungible::{Config as NonfungibleConfig, common::CommonWeights as NonfungibleWeights};25use pallet_nonfungible::{2626 common::CommonWeights as NonfungibleWeights, Config as NonfungibleConfig,27};27#[cfg(feature = "refungible")]28#[cfg(feature = "refungible")]28use pallet_refungible::{29use pallet_refungible::{29 Config as RefungibleConfig, weights::WeightInfo, common::CommonWeights as RefungibleWeights,30 common::CommonWeights as RefungibleWeights, weights::WeightInfo, Config as RefungibleConfig,30};31};31use up_data_structs::{CreateItemExData, CreateItemData};32use up_data_structs::{CreateItemData, CreateItemExData};323333pub mod xcm;34pub mod xcm;3435runtime/opal/Cargo.tomldiffbeforeafterboth38 'pallet-app-promotion/runtime-benchmarks',38 'pallet-app-promotion/runtime-benchmarks',39 'pallet-balances/runtime-benchmarks',39 'pallet-balances/runtime-benchmarks',40 'pallet-collator-selection/runtime-benchmarks',40 'pallet-collator-selection/runtime-benchmarks',41 'pallet-collective/runtime-benchmarks',41 'pallet-common/runtime-benchmarks',42 'pallet-common/runtime-benchmarks',42 'pallet-configuration/runtime-benchmarks',43 'pallet-configuration/runtime-benchmarks',44 'pallet-democracy/runtime-benchmarks',43 'pallet-ethereum/runtime-benchmarks',45 'pallet-ethereum/runtime-benchmarks',44 'pallet-evm-coder-substrate/runtime-benchmarks',46 'pallet-evm-coder-substrate/runtime-benchmarks',45 'pallet-evm-migration/runtime-benchmarks',47 'pallet-evm-migration/runtime-benchmarks',48 'pallet-identity/runtime-benchmarks',50 'pallet-identity/runtime-benchmarks',49 'pallet-inflation/runtime-benchmarks',51 'pallet-inflation/runtime-benchmarks',50 'pallet-maintenance/runtime-benchmarks',52 'pallet-maintenance/runtime-benchmarks',53 'pallet-membership/runtime-benchmarks',51 'pallet-nonfungible/runtime-benchmarks',54 'pallet-nonfungible/runtime-benchmarks',52 'pallet-democracy/runtime-benchmarks',53 'pallet-collective/runtime-benchmarks',54 'pallet-ranked-collective/runtime-benchmarks',55 'pallet-ranked-collective/runtime-benchmarks',55 'pallet-membership/runtime-benchmarks',56 'pallet-referenda/runtime-benchmarks',56 'pallet-referenda/runtime-benchmarks',57 'pallet-refungible/runtime-benchmarks',57 'pallet-scheduler/runtime-benchmarks',58 'pallet-scheduler/runtime-benchmarks',58 'pallet-refungible/runtime-benchmarks',59 'pallet-structure/runtime-benchmarks',59 'pallet-structure/runtime-benchmarks',60 'pallet-timestamp/runtime-benchmarks',60 'pallet-timestamp/runtime-benchmarks',61 'pallet-unique/runtime-benchmarks',61 'pallet-utility/runtime-benchmarks',62 'pallet-utility/runtime-benchmarks',62 'pallet-unique-scheduler-v2/runtime-benchmarks',63 'pallet-unique/runtime-benchmarks',64 'pallet-xcm/runtime-benchmarks',63 'pallet-xcm/runtime-benchmarks',65 'sp-runtime/runtime-benchmarks',64 'sp-runtime/runtime-benchmarks',66 'xcm-builder/runtime-benchmarks',65 'staging-xcm-builder/runtime-benchmarks',67]66]68std = [67std = [69 'codec/std',70 'cumulus-pallet-aura-ext/std',68 'cumulus-pallet-aura-ext/std',71 'cumulus-pallet-parachain-system/std',69 'cumulus-pallet-parachain-system/std',72 'cumulus-pallet-xcm/std',70 'cumulus-pallet-xcm/std',80 'frame-try-runtime/std',78 'frame-try-runtime/std',81 'pallet-aura/std',79 'pallet-aura/std',82 'pallet-balances/std',80 'pallet-balances/std',81 'pallet-collective/std',83 'pallet-democracy/std',82 'pallet-democracy/std',84 'pallet-collective/std',83 'pallet-gov-origins/std',84 'pallet-membership/std',85 'pallet-ranked-collective/std',85 'pallet-ranked-collective/std',86 'pallet-membership/std',87 'pallet-referenda/std',86 'pallet-referenda/std',88 'pallet-gov-origins/std',89 'pallet-scheduler/std',87 'pallet-scheduler/std',88 'parity-scale-codec/std',90 # 'pallet-contracts/std',89 # 'pallet-contracts/std',91 # 'pallet-contracts-primitives/std',90 # 'pallet-contracts-primitives/std',92 # 'pallet-contracts-rpc-runtime-api/std',91 # 'pallet-contracts-rpc-runtime-api/std',121 'pallet-structure/std',120 'pallet-structure/std',122 'pallet-sudo/std',121 'pallet-sudo/std',123 'pallet-timestamp/std',122 'pallet-timestamp/std',124 'pallet-utility/std',125 'pallet-transaction-payment-rpc-runtime-api/std',123 'pallet-transaction-payment-rpc-runtime-api/std',126 'pallet-transaction-payment/std',124 'pallet-transaction-payment/std',127 'pallet-treasury/std',125 'pallet-treasury/std',128 'pallet-unique-scheduler-v2/std',129 'pallet-unique/std',126 'pallet-unique/std',127 'pallet-utility/std',130 'parachain-info/std',128 'parachain-info/std',131 'serde',129 'serde',132 'sp-api/std',130 'sp-api/std',140 'sp-std/std',138 'sp-std/std',141 'sp-transaction-pool/std',139 'sp-transaction-pool/std',142 'sp-version/std',140 'sp-version/std',141 'staging-xcm-builder/std',142 'staging-xcm-executor/std',143 'staging-xcm/std',143 'up-common/std',144 'up-common/std',144 'up-data-structs/std',145 'up-data-structs/std',145 'up-pov-estimate-rpc/std',146 'up-pov-estimate-rpc/std',146 'up-rpc/std',147 'up-rpc/std',147 'up-sponsorship/std',148 'up-sponsorship/std',148 'xcm-builder/std',149 'xcm-executor/std',150 'xcm/std',151149152 "orml-tokens/std",150 "orml-tokens/std",153 "orml-traits/std",151 "orml-traits/std",187 'pallet-base-fee/try-runtime',185 'pallet-base-fee/try-runtime',188 'pallet-charge-transaction/try-runtime',186 'pallet-charge-transaction/try-runtime',189 'pallet-collective/try-runtime',187 'pallet-collective/try-runtime',188 'pallet-collective/try-runtime',190 'pallet-common/try-runtime',189 'pallet-common/try-runtime',191 'pallet-configuration/try-runtime',190 'pallet-configuration/try-runtime',192 'pallet-democracy/try-runtime',191 'pallet-democracy/try-runtime',192 'pallet-democracy/try-runtime',193 'pallet-ethereum/try-runtime',193 'pallet-ethereum/try-runtime',194 'pallet-evm-coder-substrate/try-runtime',194 'pallet-evm-coder-substrate/try-runtime',195 'pallet-evm-contract-helpers/try-runtime',195 'pallet-evm-contract-helpers/try-runtime',198 'pallet-evm/try-runtime',198 'pallet-evm/try-runtime',199 'pallet-foreign-assets/try-runtime',199 'pallet-foreign-assets/try-runtime',200 'pallet-fungible/try-runtime',200 'pallet-fungible/try-runtime',201 'pallet-gov-origins/try-runtime',201 'pallet-inflation/try-runtime',202 'pallet-inflation/try-runtime',202 'pallet-maintenance/try-runtime',203 'pallet-maintenance/try-runtime',203 'pallet-membership/try-runtime',204 'pallet-membership/try-runtime',205 'pallet-membership/try-runtime',204 'pallet-nonfungible/try-runtime',206 'pallet-nonfungible/try-runtime',205 'pallet-democracy/try-runtime',206 'pallet-collective/try-runtime',207 'pallet-ranked-collective/try-runtime',207 'pallet-ranked-collective/try-runtime',208 'pallet-membership/try-runtime',209 'pallet-referenda/try-runtime',208 'pallet-referenda/try-runtime',210 'pallet-gov-origins/try-runtime',209 'pallet-refungible/try-runtime',211 'pallet-scheduler/try-runtime',210 'pallet-scheduler/try-runtime',212 'pallet-refungible/try-runtime',213 'pallet-scheduler/try-runtime',211 'pallet-scheduler/try-runtime',214 'pallet-structure/try-runtime',212 'pallet-structure/try-runtime',215 'pallet-sudo/try-runtime',213 'pallet-sudo/try-runtime',216 'pallet-test-utils?/try-runtime',214 'pallet-test-utils?/try-runtime',217 'pallet-timestamp/try-runtime',215 'pallet-timestamp/try-runtime',218 'pallet-utility/try-runtime',219 'pallet-transaction-payment/try-runtime',216 'pallet-transaction-payment/try-runtime',220 'pallet-treasury/try-runtime',217 'pallet-treasury/try-runtime',221 'pallet-unique-scheduler-v2/try-runtime',222 'pallet-unique/try-runtime',218 'pallet-unique/try-runtime',219 'pallet-utility/try-runtime',223 'pallet-xcm/try-runtime',220 'pallet-xcm/try-runtime',224 'parachain-info/try-runtime',221 'parachain-info/try-runtime',225]222]226223227app-promotion = []224app-promotion = []228collator-selection = []225collator-selection = []229foreign-assets = []226foreign-assets = []230governance = []227gov-test-timings = []231gov-test-timings = []228governance = []232preimage = []229preimage = []233refungible = []230refungible = []234unique-scheduler = []235session-test-timings = []231session-test-timings = []236232237################################################################################233################################################################################238# local dependencies234# local dependencies239235240[dependencies]236[dependencies]241# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.242codec = { workspace = true, package = "parity-scale-codec" }243244cumulus-pallet-aura-ext = { workspace = true }237cumulus-pallet-aura-ext = { workspace = true }245cumulus-pallet-dmp-queue = { workspace = true }238cumulus-pallet-dmp-queue = { workspace = true }266pallet-state-trie-migration = { workspace = true }259pallet-state-trie-migration = { workspace = true }267pallet-sudo = { workspace = true }260pallet-sudo = { workspace = true }268pallet-timestamp = { workspace = true }261pallet-timestamp = { workspace = true }269pallet-utility = { workspace = true }262pallet-transaction-payment = { workspace = true }270pallet-transaction-payment = { workspace = true }263pallet-transaction-payment-rpc-runtime-api = { workspace = true }271pallet-transaction-payment-rpc-runtime-api = { workspace = true }264pallet-treasury = { workspace = true }272pallet-treasury = { workspace = true }265pallet-utility = { workspace = true }273pallet-xcm = { workspace = true }266pallet-xcm = { workspace = true }274parachain-info = { workspace = true }267parachain-info = { workspace = true }275polkadot-parachain = { workspace = true }268parity-scale-codec = { workspace = true }269polkadot-parachain-primitives = { workspace = true }276smallvec = { workspace = true }270smallvec = { workspace = true }277sp-api = { workspace = true }271sp-api = { workspace = true }278sp-arithmetic = { workspace = true }272sp-arithmetic = { workspace = true }287sp-std = { workspace = true }281sp-std = { workspace = true }288sp-transaction-pool = { workspace = true }282sp-transaction-pool = { workspace = true }289sp-version = { workspace = true }283sp-version = { workspace = true }290xcm = { workspace = true }284staging-xcm = { workspace = true }291xcm-builder = { workspace = true }285staging-xcm-builder = { workspace = true }292xcm-executor = { workspace = true }286staging-xcm-executor = { workspace = true }293287294app-promotion-rpc = { workspace = true }288app-promotion-rpc = { workspace = true }295derivative = { workspace = true }289derivative = { workspace = true }304pallet-base-fee = { workspace = true }298pallet-base-fee = { workspace = true }305pallet-charge-transaction = { workspace = true }299pallet-charge-transaction = { workspace = true }306pallet-collator-selection = { workspace = true }300pallet-collator-selection = { workspace = true }301pallet-collective = { workspace = true }307pallet-common = { workspace = true }302pallet-common = { workspace = true }308pallet-configuration = { workspace = true }303pallet-configuration = { workspace = true }304pallet-democracy = { workspace = true }309pallet-ethereum = { workspace = true }305pallet-ethereum = { workspace = true }310pallet-evm = { workspace = true }306pallet-evm = { workspace = true }311pallet-evm-coder-substrate = { workspace = true }307pallet-evm-coder-substrate = { workspace = true }315pallet-evm-transaction-payment = { workspace = true }311pallet-evm-transaction-payment = { workspace = true }316pallet-foreign-assets = { workspace = true }312pallet-foreign-assets = { workspace = true }317pallet-fungible = { workspace = true }313pallet-fungible = { workspace = true }318pallet-identity = { workspace = true }314pallet-gov-origins = { workspace = true }319pallet-inflation = { workspace = true }315pallet-identity = { workspace = true }320pallet-maintenance = { workspace = true }316pallet-inflation = { workspace = true }321pallet-nonfungible = { workspace = true }317pallet-maintenance = { workspace = true }322pallet-democracy = { workspace = true }318pallet-membership = { workspace = true }323pallet-collective = { workspace = true }319pallet-nonfungible = { workspace = true }324pallet-ranked-collective = { workspace = true }320pallet-ranked-collective = { workspace = true }325pallet-membership = { workspace = true }326pallet-referenda = { workspace = true }321pallet-referenda = { workspace = true }327pallet-gov-origins = { workspace = true }322pallet-refungible = { workspace = true }328pallet-scheduler = { workspace = true }323pallet-scheduler = { workspace = true }329pallet-refungible = { workspace = true }330pallet-structure = { workspace = true }324pallet-structure = { workspace = true }331pallet-unique = { workspace = true }325pallet-unique = { workspace = true }332pallet-unique-scheduler-v2 = { workspace = true }333precompile-utils-macro = { workspace = true }326precompile-utils-macro = { workspace = true }334scale-info = { workspace = true }327scale-info = { workspace = true }335up-common = { workspace = true }328up-common = { workspace = true }runtime/opal/src/lib.rsdiffbeforeafterboth272728extern crate alloc;28extern crate alloc;292930use frame_support::parameter_types;30use ::staging_xcm::latest::NetworkId;3132use sp_version::RuntimeVersion;31use frame_support::parameter_types;33use sp_runtime::create_runtime_str;32use sp_runtime::create_runtime_str;3435use up_common::types::*;33use sp_version::RuntimeVersion;3637use ::xcm::latest::NetworkId;34use up_common::types::*;383539mod runtime_common;36mod runtime_common;403752 spec_name: create_runtime_str!("opal"),49 spec_name: create_runtime_str!("opal"),53 impl_name: create_runtime_str!("opal"),50 impl_name: create_runtime_str!("opal"),54 authoring_version: 1,51 authoring_version: 1,55 spec_version: 943061,52 spec_version: 10010062,56 impl_version: 0,53 impl_version: 0,57 apis: RUNTIME_API_VERSIONS,54 apis: RUNTIME_API_VERSIONS,58 transaction_version: 3,55 transaction_version: 3,runtime/opal/src/xcm_barrier.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{match_types, traits::Everything};17use frame_support::{match_types, traits::Everything};18use xcm::latest::{Junctions::*, MultiLocation};18use staging_xcm::latest::{Junctions::*, MultiLocation};19use xcm_builder::{AllowTopLevelPaidExecutionFrom, TakeWeightCredit, AllowExplicitUnpaidExecutionFrom};19use staging_xcm_builder::{20 AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, TakeWeightCredit,21};202221match_types! {23match_types! {runtime/quartz/Cargo.tomldiffbeforeafterboth32 'pallet-balances/runtime-benchmarks',32 'pallet-balances/runtime-benchmarks',33 'pallet-collator-selection/runtime-benchmarks',33 'pallet-collator-selection/runtime-benchmarks',34 'pallet-collective/runtime-benchmarks',34 'pallet-collective/runtime-benchmarks',35 'pallet-collective/runtime-benchmarks',35 'pallet-common/runtime-benchmarks',36 'pallet-common/runtime-benchmarks',36 'pallet-configuration/runtime-benchmarks',37 'pallet-configuration/runtime-benchmarks',37 'pallet-democracy/runtime-benchmarks',38 'pallet-democracy/runtime-benchmarks',39 'pallet-democracy/runtime-benchmarks',38 'pallet-ethereum/runtime-benchmarks',40 'pallet-ethereum/runtime-benchmarks',39 'pallet-evm-coder-substrate/runtime-benchmarks',41 'pallet-evm-coder-substrate/runtime-benchmarks',40 'pallet-evm-migration/runtime-benchmarks',42 'pallet-evm-migration/runtime-benchmarks',44 'pallet-inflation/runtime-benchmarks',46 'pallet-inflation/runtime-benchmarks',45 'pallet-maintenance/runtime-benchmarks',47 'pallet-maintenance/runtime-benchmarks',46 'pallet-membership/runtime-benchmarks',48 'pallet-membership/runtime-benchmarks',49 'pallet-membership/runtime-benchmarks',47 'pallet-nonfungible/runtime-benchmarks',50 'pallet-nonfungible/runtime-benchmarks',48 'pallet-democracy/runtime-benchmarks',49 'pallet-collective/runtime-benchmarks',50 'pallet-ranked-collective/runtime-benchmarks',51 'pallet-ranked-collective/runtime-benchmarks',51 'pallet-membership/runtime-benchmarks',52 'pallet-referenda/runtime-benchmarks',52 'pallet-referenda/runtime-benchmarks',53 'pallet-scheduler/runtime-benchmarks',54 'pallet-refungible/runtime-benchmarks',53 'pallet-refungible/runtime-benchmarks',55 'pallet-scheduler/runtime-benchmarks',54 'pallet-scheduler/runtime-benchmarks',55 'pallet-scheduler/runtime-benchmarks',56 'pallet-structure/runtime-benchmarks',56 'pallet-structure/runtime-benchmarks',57 'pallet-timestamp/runtime-benchmarks',57 'pallet-timestamp/runtime-benchmarks',58 'pallet-unique/runtime-benchmarks',58 'pallet-utility/runtime-benchmarks',59 'pallet-utility/runtime-benchmarks',59 'pallet-unique/runtime-benchmarks',60 'pallet-xcm/runtime-benchmarks',60 'pallet-xcm/runtime-benchmarks',61 'sp-runtime/runtime-benchmarks',61 'sp-runtime/runtime-benchmarks',62 'xcm-builder/runtime-benchmarks',62 'staging-xcm-builder/runtime-benchmarks',63]63]64std = [64std = [65 'codec/std',66 'cumulus-pallet-aura-ext/std',65 'cumulus-pallet-aura-ext/std',67 'cumulus-pallet-parachain-system/std',66 'cumulus-pallet-parachain-system/std',68 'cumulus-pallet-xcm/std',67 'cumulus-pallet-xcm/std',81 'pallet-democracy/std',80 'pallet-democracy/std',82 'pallet-membership/std',81 'pallet-membership/std',83 'pallet-scheduler/std',82 'pallet-scheduler/std',83 'parity-scale-codec/std',84 # 'pallet-contracts/std',84 # 'pallet-contracts/std',85 # 'pallet-contracts-primitives/std',85 # 'pallet-contracts-primitives/std',86 # 'pallet-contracts-rpc-runtime-api/std',86 # 'pallet-contracts-rpc-runtime-api/std',99 'pallet-base-fee/std',99 'pallet-base-fee/std',100 'pallet-charge-transaction/std',100 'pallet-charge-transaction/std',101 'pallet-collator-selection/std',101 'pallet-collator-selection/std',102 'pallet-collective/std',102 'pallet-common/std',103 'pallet-common/std',103 'pallet-configuration/std',104 'pallet-configuration/std',105 'pallet-democracy/std',104 'pallet-ethereum/std',106 'pallet-ethereum/std',105 'pallet-evm-coder-substrate/std',107 'pallet-evm-coder-substrate/std',106 'pallet-evm-contract-helpers/std',108 'pallet-evm-contract-helpers/std',107 'pallet-evm-migration/std',109 'pallet-evm-migration/std',108 'pallet-evm-transaction-payment/std',110 'pallet-evm-transaction-payment/std',109 'pallet-evm/std',111 'pallet-evm/std',110 'pallet-fungible/std',112 'pallet-fungible/std',113 'pallet-gov-origins/std',111 'pallet-inflation/std',114 'pallet-inflation/std',115 'pallet-membership/std',112 'pallet-nonfungible/std',116 'pallet-nonfungible/std',113 'pallet-democracy/std',114 'pallet-collective/std',115 'pallet-ranked-collective/std',117 'pallet-ranked-collective/std',116 'pallet-membership/std',117 'pallet-referenda/std',118 'pallet-referenda/std',118 'pallet-gov-origins/std',119 'pallet-refungible/std',119 'pallet-scheduler/std',120 'pallet-scheduler/std',120 'pallet-refungible/std',121 'pallet-structure/std',121 'pallet-structure/std',122 'pallet-sudo/std',122 'pallet-sudo/std',123 'pallet-timestamp/std',123 'pallet-timestamp/std',124 'pallet-utility/std',125 'pallet-transaction-payment-rpc-runtime-api/std',124 'pallet-transaction-payment-rpc-runtime-api/std',126 'pallet-transaction-payment/std',125 'pallet-transaction-payment/std',127 'pallet-treasury/std',126 'pallet-treasury/std',128 'pallet-unique/std',127 'pallet-unique/std',128 'pallet-utility/std',129 'parachain-info/std',129 'parachain-info/std',130 'serde',130 'serde',131 'sp-api/std',131 'sp-api/std',139 'sp-std/std',139 'sp-std/std',140 'sp-transaction-pool/std',140 'sp-transaction-pool/std',141 'sp-version/std',141 'sp-version/std',142 'staging-xcm-builder/std',143 'staging-xcm-executor/std',144 'staging-xcm/std',142 'up-common/std',145 'up-common/std',143 'up-data-structs/std',146 'up-data-structs/std',144 'up-pov-estimate-rpc/std',147 'up-pov-estimate-rpc/std',145 'up-rpc/std',148 'up-rpc/std',146 'up-sponsorship/std',149 'up-sponsorship/std',147 'xcm-builder/std',148 'xcm-executor/std',149 'xcm/std',150150151 "orml-tokens/std",151 "orml-tokens/std",152 "orml-traits/std",152 "orml-traits/std",181 'pallet-balances-adapter/try-runtime',181 'pallet-balances-adapter/try-runtime',182 'pallet-balances/try-runtime',182 'pallet-balances/try-runtime',183 'pallet-charge-transaction/try-runtime',183 'pallet-charge-transaction/try-runtime',184 'pallet-collective/try-runtime',184 'pallet-common/try-runtime',185 'pallet-common/try-runtime',185 'pallet-configuration/try-runtime',186 'pallet-configuration/try-runtime',187 'pallet-democracy/try-runtime',186 'pallet-ethereum/try-runtime',188 'pallet-ethereum/try-runtime',187 'pallet-evm-coder-substrate/try-runtime',189 'pallet-evm-coder-substrate/try-runtime',188 'pallet-evm-contract-helpers/try-runtime',190 'pallet-evm-contract-helpers/try-runtime',191 'pallet-evm/try-runtime',193 'pallet-evm/try-runtime',192 'pallet-foreign-assets/try-runtime',194 'pallet-foreign-assets/try-runtime',193 'pallet-fungible/try-runtime',195 'pallet-fungible/try-runtime',196 'pallet-gov-origins/try-runtime',194 'pallet-inflation/try-runtime',197 'pallet-inflation/try-runtime',195 'pallet-maintenance/try-runtime',198 'pallet-maintenance/try-runtime',199 'pallet-membership/try-runtime',196 'pallet-nonfungible/try-runtime',200 'pallet-nonfungible/try-runtime',197 'pallet-democracy/try-runtime',198 'pallet-collective/try-runtime',199 'pallet-ranked-collective/try-runtime',201 'pallet-ranked-collective/try-runtime',200 'pallet-membership/try-runtime',201 'pallet-referenda/try-runtime',202 'pallet-referenda/try-runtime',202 'pallet-gov-origins/try-runtime',203 'pallet-refungible/try-runtime',203 'pallet-scheduler/try-runtime',204 'pallet-scheduler/try-runtime',204 'pallet-refungible/try-runtime',205 'pallet-structure/try-runtime',205 'pallet-structure/try-runtime',206 'pallet-sudo/try-runtime',206 'pallet-sudo/try-runtime',207 'pallet-timestamp/try-runtime',207 'pallet-timestamp/try-runtime',208 'pallet-utility/try-runtime',209 'pallet-transaction-payment/try-runtime',208 'pallet-transaction-payment/try-runtime',210 'pallet-treasury/try-runtime',209 'pallet-treasury/try-runtime',211 'pallet-unique/try-runtime',210 'pallet-unique/try-runtime',211 'pallet-utility/try-runtime',212 'pallet-xcm/try-runtime',212 'pallet-xcm/try-runtime',213 'parachain-info/try-runtime',213 'parachain-info/try-runtime',214]214]215215216app-promotion = []216app-promotion = []217collator-selection = []217collator-selection = []218foreign-assets = []218foreign-assets = []219gov-test-timings = []219governance = []220governance = []220preimage = []221preimage = []221refungible = []222refungible = []222unique-scheduler = []223gov-test-timings = []224session-test-timings = []223session-test-timings = []225224226################################################################################225################################################################################227# local dependencies226# local dependencies228227229[dependencies]228[dependencies]230# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.231codec = { workspace = true, package = "parity-scale-codec" }232233cumulus-pallet-aura-ext = { workspace = true }229cumulus-pallet-aura-ext = { workspace = true }234cumulus-pallet-dmp-queue = { workspace = true }230cumulus-pallet-dmp-queue = { workspace = true }255pallet-state-trie-migration = { workspace = true }251pallet-state-trie-migration = { workspace = true }256pallet-sudo = { workspace = true }252pallet-sudo = { workspace = true }257pallet-timestamp = { workspace = true }253pallet-timestamp = { workspace = true }258pallet-utility = { workspace = true }254pallet-transaction-payment = { workspace = true }259pallet-transaction-payment = { workspace = true }255pallet-transaction-payment-rpc-runtime-api = { workspace = true }260pallet-transaction-payment-rpc-runtime-api = { workspace = true }256pallet-treasury = { workspace = true }261pallet-treasury = { workspace = true }257pallet-utility = { workspace = true }262pallet-xcm = { workspace = true }258pallet-xcm = { workspace = true }263parachain-info = { workspace = true }259parachain-info = { workspace = true }264polkadot-parachain = { workspace = true }260parity-scale-codec = { workspace = true }261polkadot-parachain-primitives = { workspace = true }265smallvec = { workspace = true }262smallvec = { workspace = true }266sp-api = { workspace = true }263sp-api = { workspace = true }267sp-arithmetic = { workspace = true }264sp-arithmetic = { workspace = true }276sp-std = { workspace = true }273sp-std = { workspace = true }277sp-transaction-pool = { workspace = true }274sp-transaction-pool = { workspace = true }278sp-version = { workspace = true }275sp-version = { workspace = true }279xcm = { workspace = true }276staging-xcm = { workspace = true }280xcm-builder = { workspace = true }277staging-xcm-builder = { workspace = true }281xcm-executor = { workspace = true }278staging-xcm-executor = { workspace = true }282279283app-promotion-rpc = { workspace = true }280app-promotion-rpc = { workspace = true }284derivative = { workspace = true }281derivative = { workspace = true }287pallet-app-promotion = { workspace = true }284pallet-app-promotion = { workspace = true }288pallet-balances-adapter = { workspace = true }285pallet-balances-adapter = { workspace = true }289pallet-collator-selection = { workspace = true }286pallet-collator-selection = { workspace = true }290pallet-common = { workspace = true }287pallet-collective = { workspace = true }291pallet-configuration = { workspace = true }288pallet-common = { workspace = true }292pallet-fungible = { workspace = true }289pallet-configuration = { workspace = true }293pallet-identity = { workspace = true }290pallet-democracy = { workspace = true }294pallet-inflation = { workspace = true }291pallet-fungible = { workspace = true }295pallet-nonfungible = { workspace = true }292pallet-gov-origins = { workspace = true }296pallet-democracy = { workspace = true }293pallet-identity = { workspace = true }297pallet-collective = { workspace = true }294pallet-inflation = { workspace = true }298pallet-ranked-collective = { workspace = true }295pallet-membership = { workspace = true }299pallet-membership = { workspace = true }296pallet-nonfungible = { workspace = true }300pallet-referenda = { workspace = true }297pallet-ranked-collective = { workspace = true }301pallet-gov-origins = { workspace = true }298pallet-referenda = { workspace = true }302pallet-scheduler = { workspace = true }299pallet-refungible = { workspace = true }303pallet-refungible = { workspace = true }300pallet-scheduler = { workspace = true }304pallet-structure = { workspace = true }301pallet-structure = { workspace = true }305pallet-unique = { workspace = true }302pallet-unique = { workspace = true }306scale-info = { workspace = true }303scale-info = { workspace = true }312evm-coder = { workspace = true }309evm-coder = { workspace = true }313fp-rpc = { workspace = true }310fp-rpc = { workspace = true }314fp-self-contained = { workspace = true }311fp-self-contained = { workspace = true }315num_enum = { version = "0.5.3", default-features = false }312num_enum = { version = "0.7.0", default-features = false }316pallet-base-fee = { workspace = true }313pallet-base-fee = { workspace = true }317pallet-charge-transaction = { workspace = true }314pallet-charge-transaction = { workspace = true }318pallet-ethereum = { workspace = true }315pallet-ethereum = { workspace = true }runtime/quartz/src/lib.rsdiffbeforeafterboth272728extern crate alloc;28extern crate alloc;292930use frame_support::parameter_types;30use ::staging_xcm::latest::NetworkId;3132use sp_version::RuntimeVersion;31use frame_support::parameter_types;33use sp_runtime::create_runtime_str;32use sp_runtime::create_runtime_str;3435use up_common::types::*;33use sp_version::RuntimeVersion;3637use ::xcm::latest::NetworkId;34use up_common::types::*;383539mod runtime_common;36mod runtime_common;403754 impl_name: create_runtime_str!("quartz"),51 impl_name: create_runtime_str!("quartz"),555256 authoring_version: 1,53 authoring_version: 1,57 spec_version: 943061,54 spec_version: 10010062,58 impl_version: 0,55 impl_version: 0,59 apis: RUNTIME_API_VERSIONS,56 apis: RUNTIME_API_VERSIONS,60 transaction_version: 3,57 transaction_version: 3,67 impl_name: create_runtime_str!("sapphire"),64 impl_name: create_runtime_str!("sapphire"),686569 authoring_version: 1,66 authoring_version: 1,70 spec_version: 943061,67 spec_version: 10010062,71 impl_version: 0,68 impl_version: 0,72 apis: RUNTIME_API_VERSIONS,69 apis: RUNTIME_API_VERSIONS,73 transaction_version: 3,70 transaction_version: 3,runtime/quartz/src/xcm_barrier.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{match_types, traits::Everything};17use frame_support::{match_types, traits::Everything};18use xcm::latest::{Junctions::*, MultiLocation};18use staging_xcm::latest::{Junctions::*, MultiLocation};19use xcm_builder::{19use staging_xcm_builder::{20 AllowKnownQueryResponses, AllowSubscriptionsFrom, TakeWeightCredit,20 AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom,21 AllowTopLevelPaidExecutionFrom, AllowExplicitUnpaidExecutionFrom,21 AllowTopLevelPaidExecutionFrom, TakeWeightCredit,22};22};232324use crate::PolkadotXcm;24use crate::PolkadotXcm;runtime/tests/Cargo.tomldiffbeforeafterboth373738pallet-evm-coder-substrate = { workspace = true }38pallet-evm-coder-substrate = { workspace = true }393940codec = { workspace = true, package = "parity-scale-codec" }40parity-scale-codec = { workspace = true }41scale-info = { workspace = true }41scale-info = { workspace = true }424243evm-coder = { workspace = true }43evm-coder = { workspace = true }44up-sponsorship = { workspace = true }44staging-xcm = { workspace = true }45xcm = { workspace = true }45up-sponsorship = { workspace = true }464647[dev-dependencies]47[dev-dependencies]48pallet-common = { workspace = true, features = ["tests"] }48pallet-common = { workspace = true, features = ["tests"] }runtime/tests/src/dispatch.rsdiffbeforeafterbothno changes
runtime/tests/src/lib.rsdiffbeforeafterboth161617#![allow(clippy::from_over_into)]17#![allow(clippy::from_over_into)]181819use sp_core::{H160, H256, U256};20use frame_support::{19use frame_support::{20 pallet_prelude::Weight,21 parameter_types,21 parameter_types,22 traits::{Everything, ConstU32, ConstU64, fungible::Inspect},22 traits::{fungible::Inspect, ConstU32, ConstU64, Everything},23 weights::IdentityFee,23 weights::IdentityFee,24 pallet_prelude::Weight,25};24};26use sp_runtime::{25use frame_system as system;27 traits::{BlakeTwo256, IdentityLookup},28 testing::Header,29};30use pallet_transaction_payment::CurrencyAdapter;26use pallet_ethereum::PostLogContent;31use frame_system as system;32use pallet_evm::{27use pallet_evm::{33 AddressMapping, account::CrossAccountId, EnsureAddressNever, SubstrateBlockHashMapping,28 account::CrossAccountId, AddressMapping, BackwardsAddressMapping, EnsureAddressNever,34 BackwardsAddressMapping,29 SubstrateBlockHashMapping,35};30};36use pallet_ethereum::PostLogContent;31use pallet_transaction_payment::CurrencyAdapter;37use codec::{Encode, Decode, MaxEncodedLen};32use parity_scale_codec::{Decode, Encode, MaxEncodedLen};38use scale_info::TypeInfo;33use scale_info::TypeInfo;3934use sp_core::{H160, H256, U256};35use sp_runtime::{36 traits::{BlakeTwo256, IdentityLookup},37 BuildStorage,38};40use up_data_structs::mapping::{CrossTokenAddressMapping, EvmTokenAddressMapping};39use up_data_structs::mapping::{CrossTokenAddressMapping, EvmTokenAddressMapping};414042#[path = "../../common/dispatch.rs"]43mod dispatch;41mod dispatch;444245use dispatch::CollectionDispatchT;43use dispatch::CollectionDispatchT;464447#[path = "../../common/weights/mod.rs"]48mod weights;45mod weights;494650use weights::CommonWeights;47use weights::CommonWeights;514852type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;53type Block = frame_system::mocking::MockBlock<Test>;49type Block = frame_system::mocking::MockBlockU32<Test>;545055#[cfg(test)]51#[cfg(test)]56mod tests;52mod tests;575358// Configure a mock runtime to test the pallet.54// Configure a mock runtime to test the pallet.59frame_support::construct_runtime!(55frame_support::construct_runtime!(60 pub enum Test where56 pub enum Test {61 Block = Block,62 NodeBlock = Block,63 UncheckedExtrinsic = UncheckedExtrinsic,64 {65 System: frame_system,57 System: frame_system,66 Timestamp: pallet_timestamp,58 Timestamp: pallet_timestamp,67 Unique: pallet_unique::{Pallet, Call, Storage},59 Unique: pallet_unique,68 Balances: pallet_balances::{Pallet, Call, Storage, Event<T>},60 Balances: pallet_balances,69 Common: pallet_common::{Pallet, Storage, Event<T>},61 Common: pallet_common,70 Fungible: pallet_fungible::{Pallet, Storage},62 Fungible: pallet_fungible,71 Refungible: pallet_refungible::{Pallet, Storage},63 Refungible: pallet_refungible,72 Nonfungible: pallet_nonfungible::{Pallet, Storage},64 Nonfungible: pallet_nonfungible,73 Structure: pallet_structure::{Pallet, Storage, Event<T>},65 Structure: pallet_structure,74 TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event<T>},66 TransactionPayment: pallet_transaction_payment,75 Ethereum: pallet_ethereum::{Pallet, Config, Call, Storage, Event, Origin},67 Ethereum: pallet_ethereum,76 EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>},68 EVM: pallet_evm,77 }69 }78);70);797180parameter_types! {72parameter_types! {81 pub const BlockHashCount: u64 = 250;73 pub const BlockHashCount: u32 = 250;82 pub const SS58Prefix: u8 = 42;74 pub const SS58Prefix: u8 = 42;83}75}847685impl system::Config for Test {77impl system::Config for Test {86 type RuntimeEvent = RuntimeEvent;78 type RuntimeEvent = RuntimeEvent;87 type BaseCallFilter = Everything;79 type BaseCallFilter = Everything;80 type Block = Block;88 type BlockWeights = ();81 type BlockWeights = ();89 type BlockLength = ();82 type BlockLength = ();90 type DbWeight = ();83 type DbWeight = ();91 type RuntimeOrigin = RuntimeOrigin;84 type RuntimeOrigin = RuntimeOrigin;92 type RuntimeCall = RuntimeCall;85 type RuntimeCall = RuntimeCall;93 type Index = u64;86 type Nonce = u64;94 type BlockNumber = u64;95 type Hash = H256;87 type Hash = H256;96 type Hashing = BlakeTwo256;88 type Hashing = BlakeTwo256;97 type AccountId = u64;89 type AccountId = u64;98 type Lookup = IdentityLookup<Self::AccountId>;90 type Lookup = IdentityLookup<Self::AccountId>;99 type Header = Header;100 type BlockHashCount = BlockHashCount;91 type BlockHashCount = BlockHashCount;101 type Version = ();92 type Version = ();102 type PalletInfo = PalletInfo;93 type PalletInfo = PalletInfo;127 type MaxFreezes = MaxLocks;118 type MaxFreezes = MaxLocks;128 type FreezeIdentifier = [u8; 8];119 type FreezeIdentifier = [u8; 8];129 type MaxHolds = MaxLocks;120 type MaxHolds = MaxLocks;130 type HoldIdentifier = [u8; 8];121 type RuntimeHoldReason = RuntimeHoldReason;131}122}132123133parameter_types! {124parameter_types! {240 type OnMethodCall = ();231 type OnMethodCall = ();241 type OnCreate = ();232 type OnCreate = ();242 type OnChargeTransaction = ();233 type OnChargeTransaction = ();234 type OnCheckEvmTransaction = ();243 type FindAuthor = ();235 type FindAuthor = ();244 type BlockHashMapping = SubstrateBlockHashMapping<Self>;236 type BlockHashMapping = SubstrateBlockHashMapping<Self>;245 type TransactionValidityHack = ();246 type Timestamp = Timestamp;237 type Timestamp = Timestamp;247 type GasLimitPovSizeRatio = ConstU64<0>;238 type GasLimitPovSizeRatio = ConstU64<0>;248}239}305296306// Build genesis storage according to the mock runtime.297// Build genesis storage according to the mock runtime.307pub fn new_test_ext() -> sp_io::TestExternalities {298pub fn new_test_ext() -> sp_io::TestExternalities {308 system::GenesisConfig::default()299 <system::GenesisConfig<Test>>::default()309 .build_storage::<Test>()300 .build_storage()310 .unwrap()301 .unwrap()311 .into()302 .into()312}303}runtime/tests/src/tests.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617// Tests to be written here17// Tests to be written here18use crate::{Test, TestCrossAccountId, CollectionCreationPrice, RuntimeOrigin, Unique, new_test_ext};19use up_data_structs::{20 COLLECTION_NUMBER_LIMIT, CollectionId, CreateItemData, CreateFungibleData, CreateNftData,21 CreateReFungibleData, MAX_DECIMAL_POINTS, COLLECTION_ADMINS_LIMIT, TokenId,22 MAX_TOKEN_OWNERSHIP, CreateCollectionData, CollectionMode, AccessMode, CollectionPermissions,23 PropertyKeyPermission, PropertyPermission, Property, CollectionPropertiesVec,24 CollectionPropertiesPermissionsVec,25};26use frame_support::{assert_noop, assert_ok, assert_err};18use frame_support::{assert_err, assert_noop, assert_ok};27use sp_std::convert::TryInto;19use pallet_common::Error as CommonError;28use pallet_evm::account::CrossAccountId;20use pallet_evm::account::CrossAccountId;29use pallet_common::Error as CommonError;21use pallet_unique::Error as UniqueError;30use pallet_unique::Error as UniqueError;22use sp_std::convert::TryInto;23use up_data_structs::{24 AccessMode, CollectionId, CollectionMode, CollectionPermissions,25 CollectionPropertiesPermissionsVec, CollectionPropertiesVec, CreateCollectionData,26 CreateFungibleData, CreateItemData, CreateNftData, CreateReFungibleData, Property,27 PropertyKeyPermission, PropertyPermission, TokenId, COLLECTION_ADMINS_LIMIT,28 COLLECTION_NUMBER_LIMIT, MAX_DECIMAL_POINTS, MAX_TOKEN_OWNERSHIP,29};3031use crate::{32 new_test_ext, CollectionCreationPrice, RuntimeOrigin, Test, TestCrossAccountId, Unique,33};313432fn add_balance(user: u64, value: u64) {35fn add_balance(user: u64, value: u64) {33 const DONOR_USER: u64 = 999;36 const DONOR_USER: u64 = 999;2617}2620}261826212619mod check_token_permissions {2622mod check_token_permissions {2620 use super::*;2623 use pallet_common::LazyValue;26242621 use pallet_common::LazyValue;2625 use super::*;262226262623 fn test<FTE: FnOnce() -> bool>(2627 fn test<FTE: FnOnce() -> bool>(2624 i: usize,2628 i: usize,runtime/tests/src/weightsdiffbeforeafterbothno changes
runtime/unique/Cargo.tomldiffbeforeafterboth29 'pallet-balances/runtime-benchmarks',29 'pallet-balances/runtime-benchmarks',30 'pallet-collator-selection/runtime-benchmarks',30 'pallet-collator-selection/runtime-benchmarks',31 'pallet-collective/runtime-benchmarks',31 'pallet-collective/runtime-benchmarks',32 'pallet-collective/runtime-benchmarks',32 'pallet-common/runtime-benchmarks',33 'pallet-common/runtime-benchmarks',33 'pallet-configuration/runtime-benchmarks',34 'pallet-configuration/runtime-benchmarks',34 'pallet-democracy/runtime-benchmarks',35 'pallet-democracy/runtime-benchmarks',36 'pallet-democracy/runtime-benchmarks',35 'pallet-ethereum/runtime-benchmarks',37 'pallet-ethereum/runtime-benchmarks',36 'pallet-evm-coder-substrate/runtime-benchmarks',38 'pallet-evm-coder-substrate/runtime-benchmarks',37 'pallet-evm-migration/runtime-benchmarks',39 'pallet-evm-migration/runtime-benchmarks',41 'pallet-inflation/runtime-benchmarks',43 'pallet-inflation/runtime-benchmarks',42 'pallet-maintenance/runtime-benchmarks',44 'pallet-maintenance/runtime-benchmarks',43 'pallet-membership/runtime-benchmarks',45 'pallet-membership/runtime-benchmarks',46 'pallet-membership/runtime-benchmarks',44 'pallet-nonfungible/runtime-benchmarks',47 'pallet-nonfungible/runtime-benchmarks',45 'pallet-democracy/runtime-benchmarks',46 'pallet-collective/runtime-benchmarks',47 'pallet-ranked-collective/runtime-benchmarks',48 'pallet-ranked-collective/runtime-benchmarks',48 'pallet-membership/runtime-benchmarks',49 'pallet-referenda/runtime-benchmarks',49 'pallet-referenda/runtime-benchmarks',50 'pallet-scheduler/runtime-benchmarks',51 'pallet-refungible/runtime-benchmarks',50 'pallet-refungible/runtime-benchmarks',52 'pallet-scheduler/runtime-benchmarks',51 'pallet-scheduler/runtime-benchmarks',52 'pallet-scheduler/runtime-benchmarks',53 'pallet-structure/runtime-benchmarks',53 'pallet-structure/runtime-benchmarks',54 'pallet-timestamp/runtime-benchmarks',54 'pallet-timestamp/runtime-benchmarks',55 'pallet-unique/runtime-benchmarks',55 'pallet-utility/runtime-benchmarks',56 'pallet-utility/runtime-benchmarks',56 'pallet-unique/runtime-benchmarks',57 'pallet-xcm/runtime-benchmarks',57 'pallet-xcm/runtime-benchmarks',58 'sp-runtime/runtime-benchmarks',58 'sp-runtime/runtime-benchmarks',59 'staging-xcm-builder/runtime-benchmarks',59 'up-data-structs/runtime-benchmarks',60 'up-data-structs/runtime-benchmarks',60 'xcm-builder/runtime-benchmarks',61]61]62std = [62std = [63 'codec/std',64 'cumulus-pallet-aura-ext/std',63 'cumulus-pallet-aura-ext/std',65 'cumulus-pallet-parachain-system/std',64 'cumulus-pallet-parachain-system/std',66 'cumulus-pallet-xcm/std',65 'cumulus-pallet-xcm/std',78 'pallet-democracy/std',77 'pallet-democracy/std',79 'pallet-membership/std',78 'pallet-membership/std',80 'pallet-scheduler/std',79 'pallet-scheduler/std',80 'parity-scale-codec/std',81 # 'pallet-contracts/std',81 # 'pallet-contracts/std',82 # 'pallet-contracts-primitives/std',82 # 'pallet-contracts-primitives/std',83 # 'pallet-contracts-rpc-runtime-api/std',83 # 'pallet-contracts-rpc-runtime-api/std',97 'pallet-base-fee/std',97 'pallet-base-fee/std',98 'pallet-charge-transaction/std',98 'pallet-charge-transaction/std',99 'pallet-collator-selection/std',99 'pallet-collator-selection/std',100 'pallet-collective/std',100 'pallet-common/std',101 'pallet-common/std',101 'pallet-configuration/std',102 'pallet-configuration/std',103 'pallet-democracy/std',102 'pallet-ethereum/std',104 'pallet-ethereum/std',103 'pallet-evm-coder-substrate/std',105 'pallet-evm-coder-substrate/std',104 'pallet-evm-contract-helpers/std',106 'pallet-evm-contract-helpers/std',105 'pallet-evm-migration/std',107 'pallet-evm-migration/std',106 'pallet-evm-transaction-payment/std',108 'pallet-evm-transaction-payment/std',107 'pallet-evm/std',109 'pallet-evm/std',108 'pallet-fungible/std',110 'pallet-fungible/std',111 'pallet-gov-origins/std',109 'pallet-inflation/std',112 'pallet-inflation/std',113 'pallet-membership/std',110 'pallet-nonfungible/std',114 'pallet-nonfungible/std',111 'pallet-democracy/std',112 'pallet-collective/std',113 'pallet-ranked-collective/std',115 'pallet-ranked-collective/std',114 'pallet-membership/std',115 'pallet-referenda/std',116 'pallet-referenda/std',116 'pallet-gov-origins/std',117 'pallet-refungible/std',117 'pallet-scheduler/std',118 'pallet-scheduler/std',118 'pallet-refungible/std',119 'pallet-structure/std',119 'pallet-structure/std',120 'pallet-sudo/std',120 'pallet-sudo/std',121 'pallet-timestamp/std',121 'pallet-timestamp/std',122 'pallet-utility/std',123 'pallet-transaction-payment-rpc-runtime-api/std',122 'pallet-transaction-payment-rpc-runtime-api/std',124 'pallet-transaction-payment/std',123 'pallet-transaction-payment/std',125 'pallet-treasury/std',124 'pallet-treasury/std',126 'pallet-unique/std',125 'pallet-unique/std',126 'pallet-utility/std',127 'parachain-info/std',127 'parachain-info/std',128 'sp-api/std',128 'sp-api/std',129 'sp-block-builder/std',129 'sp-block-builder/std',136 'sp-std/std',136 'sp-std/std',137 'sp-transaction-pool/std',137 'sp-transaction-pool/std',138 'sp-version/std',138 'sp-version/std',139 'staging-xcm-builder/std',140 'staging-xcm-executor/std',141 'staging-xcm/std',139 'up-common/std',142 'up-common/std',140 'up-data-structs/std',143 'up-data-structs/std',141 'up-pov-estimate-rpc/std',144 'up-pov-estimate-rpc/std',142 'up-rpc/std',145 'up-rpc/std',143 'up-sponsorship/std',146 'up-sponsorship/std',144 'xcm-builder/std',145 'xcm-executor/std',146 'xcm/std',147147148 "orml-tokens/std",148 "orml-tokens/std",149 "orml-traits/std",149 "orml-traits/std",180 'pallet-balances/try-runtime',180 'pallet-balances/try-runtime',181 'pallet-charge-transaction/try-runtime',181 'pallet-charge-transaction/try-runtime',182 'pallet-collective/try-runtime',182 'pallet-collective/try-runtime',183 'pallet-collective/try-runtime',183 'pallet-common/try-runtime',184 'pallet-common/try-runtime',184 'pallet-configuration/try-runtime',185 'pallet-configuration/try-runtime',185 'pallet-democracy/try-runtime',186 'pallet-democracy/try-runtime',187 'pallet-democracy/try-runtime',186 'pallet-ethereum/try-runtime',188 'pallet-ethereum/try-runtime',187 'pallet-evm-coder-substrate/try-runtime',189 'pallet-evm-coder-substrate/try-runtime',188 'pallet-evm-contract-helpers/try-runtime',190 'pallet-evm-contract-helpers/try-runtime',191 'pallet-evm/try-runtime',193 'pallet-evm/try-runtime',192 'pallet-foreign-assets/try-runtime',194 'pallet-foreign-assets/try-runtime',193 'pallet-fungible/try-runtime',195 'pallet-fungible/try-runtime',196 'pallet-gov-origins/try-runtime',194 'pallet-inflation/try-runtime',197 'pallet-inflation/try-runtime',195 'pallet-maintenance/try-runtime',198 'pallet-maintenance/try-runtime',196 'pallet-membership/try-runtime',199 'pallet-membership/try-runtime',200 'pallet-membership/try-runtime',197 'pallet-nonfungible/try-runtime',201 'pallet-nonfungible/try-runtime',198 'pallet-democracy/try-runtime',199 'pallet-collective/try-runtime',200 'pallet-ranked-collective/try-runtime',202 'pallet-ranked-collective/try-runtime',201 'pallet-membership/try-runtime',202 'pallet-referenda/try-runtime',203 'pallet-referenda/try-runtime',203 'pallet-gov-origins/try-runtime',204 'pallet-refungible/try-runtime',204 'pallet-scheduler/try-runtime',205 'pallet-scheduler/try-runtime',205 'pallet-refungible/try-runtime',206 'pallet-scheduler/try-runtime',206 'pallet-scheduler/try-runtime',207 'pallet-structure/try-runtime',207 'pallet-structure/try-runtime',208 'pallet-sudo/try-runtime',208 'pallet-sudo/try-runtime',209 'pallet-timestamp/try-runtime',209 'pallet-timestamp/try-runtime',210 'pallet-utility/try-runtime',211 'pallet-transaction-payment/try-runtime',210 'pallet-transaction-payment/try-runtime',212 'pallet-treasury/try-runtime',211 'pallet-treasury/try-runtime',213 'pallet-unique/try-runtime',212 'pallet-unique/try-runtime',213 'pallet-utility/try-runtime',214 'pallet-xcm/try-runtime',214 'pallet-xcm/try-runtime',215 'parachain-info/try-runtime',215 'parachain-info/try-runtime',216]216]219app-promotion = []219app-promotion = []220collator-selection = []220collator-selection = []221foreign-assets = []221foreign-assets = []222gov-test-timings = []222governance = []223governance = []223preimage = []224preimage = []224refungible = []225refungible = []225unique-scheduler = []226gov-test-timings = []227session-test-timings = []226session-test-timings = []228227229################################################################################228################################################################################230# local dependencies229# local dependencies231230232[dependencies]231[dependencies]233# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.234codec = { workspace = true, package = "parity-scale-codec" }235236cumulus-pallet-aura-ext = { workspace = true }232cumulus-pallet-aura-ext = { workspace = true }237cumulus-pallet-dmp-queue = { workspace = true }233cumulus-pallet-dmp-queue = { workspace = true }258pallet-state-trie-migration = { workspace = true }254pallet-state-trie-migration = { workspace = true }259pallet-sudo = { workspace = true }255pallet-sudo = { workspace = true }260pallet-timestamp = { workspace = true }256pallet-timestamp = { workspace = true }261pallet-utility = { workspace = true }257pallet-transaction-payment = { workspace = true }262pallet-transaction-payment = { workspace = true }258pallet-transaction-payment-rpc-runtime-api = { workspace = true }263pallet-transaction-payment-rpc-runtime-api = { workspace = true }259pallet-treasury = { workspace = true }264pallet-treasury = { workspace = true }260pallet-utility = { workspace = true }265pallet-xcm = { workspace = true }261pallet-xcm = { workspace = true }266parachain-info = { workspace = true }262parachain-info = { workspace = true }267polkadot-parachain = { workspace = true }263parity-scale-codec = { workspace = true }264polkadot-parachain-primitives = { workspace = true }268smallvec = { workspace = true }265smallvec = { workspace = true }269sp-api = { workspace = true }266sp-api = { workspace = true }270sp-arithmetic = { workspace = true }267sp-arithmetic = { workspace = true }279sp-std = { workspace = true }276sp-std = { workspace = true }280sp-transaction-pool = { workspace = true }277sp-transaction-pool = { workspace = true }281sp-version = { workspace = true }278sp-version = { workspace = true }282xcm = { workspace = true }279staging-xcm = { workspace = true }283xcm-builder = { workspace = true }280staging-xcm-builder = { workspace = true }284xcm-executor = { workspace = true }281staging-xcm-executor = { workspace = true }285282286app-promotion-rpc = { workspace = true }283app-promotion-rpc = { workspace = true }287derivative = { workspace = true }284derivative = { workspace = true }288log = { workspace = true }285log = { workspace = true }289pallet-app-promotion = { workspace = true }286pallet-app-promotion = { workspace = true }290pallet-balances-adapter = { workspace = true }287pallet-balances-adapter = { workspace = true }291pallet-collator-selection = { workspace = true }288pallet-collator-selection = { workspace = true }292pallet-common = { workspace = true }289pallet-collective = { workspace = true }293pallet-configuration = { workspace = true }290pallet-common = { workspace = true }294pallet-fungible = { workspace = true }291pallet-configuration = { workspace = true }295pallet-identity = { workspace = true }292pallet-democracy = { workspace = true }296pallet-inflation = { workspace = true }293pallet-fungible = { workspace = true }297pallet-nonfungible = { workspace = true }294pallet-gov-origins = { workspace = true }298pallet-democracy = { workspace = true }295pallet-identity = { workspace = true }299pallet-collective = { workspace = true }296pallet-inflation = { workspace = true }300pallet-ranked-collective = { workspace = true }297pallet-membership = { workspace = true }301pallet-membership = { workspace = true }298pallet-nonfungible = { workspace = true }302pallet-referenda = { workspace = true }299pallet-ranked-collective = { workspace = true }303pallet-gov-origins = { workspace = true }300pallet-referenda = { workspace = true }304pallet-scheduler = { workspace = true }301pallet-refungible = { workspace = true }305pallet-refungible = { workspace = true }302pallet-scheduler = { workspace = true }306pallet-structure = { workspace = true }303pallet-structure = { workspace = true }307pallet-unique = { workspace = true }304pallet-unique = { workspace = true }308scale-info = { workspace = true }305scale-info = { workspace = true }runtime/unique/src/lib.rsdiffbeforeafterboth272728extern crate alloc;28extern crate alloc;292930use frame_support::parameter_types;30use ::staging_xcm::latest::NetworkId;3132use sp_version::RuntimeVersion;31use frame_support::parameter_types;33use sp_runtime::create_runtime_str;32use sp_runtime::create_runtime_str;3435use up_common::types::*;33use sp_version::RuntimeVersion;3637use ::xcm::latest::NetworkId;34use up_common::types::*;383539mod runtime_common;36mod runtime_common;403752 spec_name: create_runtime_str!("unique"),49 spec_name: create_runtime_str!("unique"),53 impl_name: create_runtime_str!("unique"),50 impl_name: create_runtime_str!("unique"),54 authoring_version: 1,51 authoring_version: 1,55 spec_version: 943061,52 spec_version: 10010062,56 impl_version: 0,53 impl_version: 0,57 apis: RUNTIME_API_VERSIONS,54 apis: RUNTIME_API_VERSIONS,58 transaction_version: 3,55 transaction_version: 3,runtime/unique/src/xcm_barrier.rsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::{match_types, traits::Everything};17use frame_support::{match_types, traits::Everything};18use xcm::latest::{Junctions::*, MultiLocation};18use staging_xcm::latest::{Junctions::*, MultiLocation};19use xcm_builder::{19use staging_xcm_builder::{20 AllowKnownQueryResponses, AllowSubscriptionsFrom, TakeWeightCredit,20 AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom,21 AllowTopLevelPaidExecutionFrom, AllowExplicitUnpaidExecutionFrom,21 AllowTopLevelPaidExecutionFrom, TakeWeightCredit,22};22};232324use crate::PolkadotXcm;24use crate::PolkadotXcm;test-pallets/utils/Cargo.tomldiffbeforeafterboth6version = "0.1.0"6version = "0.1.0"778[dependencies]8[dependencies]9# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it.10codec = { workspace = true, package = "parity-scale-codec" }9frame-support = { workspace = true }1112frame-support = { workspace = true }10frame-system = { workspace = true }13frame-system = { workspace = true }11parity-scale-codec = { workspace = true }14scale-info = { workspace = true }12scale-info = { workspace = true }15# pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }16pallet-unique-scheduler-v2 = { workspace = true }13sp-runtime = { workspace = true }17sp-std = { workspace = true }14sp-std = { workspace = true }181519[features]16[features]20default = ["std"]17default = ["std"]21std = [18std = [22 "codec/std",23 "frame-support/std",19 "frame-support/std",24 "frame-system/std",20 "frame-system/std",25 "pallet-unique-scheduler-v2/std",21 "parity-scale-codec/std",26 "scale-info/std",22 "scale-info/std",23 "sp-runtime/std",27 "sp-std/std",24 "sp-std/std",28]25]29try-runtime = ["frame-support/try-runtime", "pallet-unique-scheduler-v2/try-runtime"]26try-runtime = ["frame-support/try-runtime"]3027test-pallets/utils/src/lib.rsdiffbeforeafterboth161617#![cfg_attr(not(feature = "std"), no_std)]17#![cfg_attr(not(feature = "std"), no_std)]181819pub use pallet::*;20use frame_support::pallet_prelude::*;19use frame_support::pallet_prelude::*;21use frame_system::pallet_prelude::*;20use frame_system::pallet_prelude::*;21pub use pallet::*;222223#[frame_support::pallet(dev_mode)]23#[frame_support::pallet(dev_mode)]24pub mod pallet {24pub mod pallet {25 use frame_support::{25 use frame_support::{26 pallet_prelude::*,27 dispatch::{Dispatchable, GetDispatchInfo, PostDispatchInfo},26 dispatch::{GetDispatchInfo, PostDispatchInfo},27 pallet_prelude::*,28 traits::{UnfilteredDispatchable, IsSubType, OriginTrait},28 traits::{IsSubType, OriginTrait, UnfilteredDispatchable},29 };29 };30 use frame_system::pallet_prelude::*;30 use frame_system::pallet_prelude::*;31 use sp_runtime::traits::Dispatchable;31 use sp_std::vec::Vec;32 use sp_std::vec::Vec;32 // use pallet_unique_scheduler_v2::{TaskName, Pallet as SchedulerPallet};333334 #[pallet::config]34 #[pallet::config]35 pub trait Config: frame_system::Config /*+ pallet_unique_scheduler_v2::Config*/ {35 pub trait Config: frame_system::Config /*+ pallet_unique_scheduler_v2::Config*/ {tests/src/util/frankenstein.tsdiffbeforeafterbothno changes
tests/src/util/playgrounds/unique.xcm.tsdiffbeforeafterboth244 await this.helper.executeExtrinsic(signer, 'api.tx.assets.create', [assetId, admin, minimalBalance], true);244 await this.helper.executeExtrinsic(signer, 'api.tx.assets.create', [assetId, admin, minimalBalance], true);245 }245 }246247 async forceCreate(signer: TSigner, assetId: number | bigint, admin: string, minimalBalance: bigint, isSufficient = true) {248 await this.helper.executeExtrinsic(signer, 'api.tx.assets.forceCreate', [assetId, admin, isSufficient, minimalBalance], true);249 }246250247 async setMetadata(signer: TSigner, assetId: number | bigint, name: string, symbol: string, decimals: number) {251 async setMetadata(signer: TSigner, assetId: number | bigint, name: string, symbol: string, decimals: number) {248 await this.helper.executeExtrinsic(signer, 'api.tx.assets.setMetadata', [assetId, name, symbol, decimals], true);252 await this.helper.executeExtrinsic(signer, 'api.tx.assets.setMetadata', [assetId, name, symbol, decimals], true);tests/src/xcm/lowLevelXcmQuartz.test.tsdiffbeforeafterboth243 await usingShidenPlaygrounds(shidenUrl, async (helper) => {243 await usingShidenPlaygrounds(shidenUrl, async (helper) => {244 if(!(await helper.callRpc('api.query.assets.asset', [QTZ_ASSET_ID_ON_SHIDEN])).toJSON()) {244 if(!(await helper.callRpc('api.query.assets.asset', [QTZ_ASSET_ID_ON_SHIDEN])).toJSON()) {245 console.log('1. Create foreign asset and metadata');245 console.log('1. Create foreign asset and metadata');246 await helper.assets.create(246 await helper.getSudo().assets.forceCreate(247 alice,247 alice,248 QTZ_ASSET_ID_ON_SHIDEN,248 QTZ_ASSET_ID_ON_SHIDEN,249 alice.address,249 alice.address,tests/src/xcm/lowLevelXcmUnique.test.tsdiffbeforeafterboth309 await usingAstarPlaygrounds(astarUrl, async (helper) => {309 await usingAstarPlaygrounds(astarUrl, async (helper) => {310 if(!(await helper.callRpc('api.query.assets.asset', [UNQ_ASSET_ID_ON_ASTAR])).toJSON()) {310 if(!(await helper.callRpc('api.query.assets.asset', [UNQ_ASSET_ID_ON_ASTAR])).toJSON()) {311 console.log('1. Create foreign asset and metadata');311 console.log('1. Create foreign asset and metadata');312 await helper.assets.create(312 await helper.getSudo().assets.forceCreate(313 alice,313 alice,314 UNQ_ASSET_ID_ON_ASTAR,314 UNQ_ASSET_ID_ON_ASTAR,315 alice.address,315 alice.address,tests/src/xcm/xcmQuartz.test.tsdiffbeforeafterboth1290 const shidenInitialBalance = 1n * (10n ** SHIDEN_DECIMALS); // 1 SHD, existential deposit required to actually create the account on Shiden1290 const shidenInitialBalance = 1n * (10n ** SHIDEN_DECIMALS); // 1 SHD, existential deposit required to actually create the account on Shiden1291 const unitsPerSecond = 500_451_000_000_000_000_000n; // The value is taken from the live Shiden1291 const unitsPerSecond = 500_451_000_000_000_000_000n; // The value is taken from the live Shiden1292 const qtzToShidenTransferred = 10n * (10n ** QTZ_DECIMALS); // 10 QTZ1292 const qtzToShidenTransferred = 10n * (10n ** QTZ_DECIMALS); // 10 QTZ1293 const qtzToShidenArrived = 9_999_999_999_088_000_000n; // 9.999 ... QTZ, Shiden takes a commision in foreign tokens1293 const qtzToShidenArrived = 7_998_196_000_000_000_000n; // 7.99 ... QTZ, Shiden takes a commision in foreign tokens129412941295 // Shiden -> Quartz1295 // Shiden -> Quartz1296 const qtzFromShidenTransfered = 5n * (10n ** QTZ_DECIMALS); // 5 QTZ1296 const qtzFromShidenTransfered = 5n * (10n ** QTZ_DECIMALS); // 5 QTZ1297 const qtzOnShidenLeft = qtzToShidenArrived - qtzFromShidenTransfered; // 4.999_999_999_088_000_000n QTZ1297 const qtzOnShidenLeft = qtzToShidenArrived - qtzFromShidenTransfered; // 2.99 ... QTZ129812981299 let balanceAfterQuartzToShidenXCM: bigint;1299 let balanceAfterQuartzToShidenXCM: bigint;130013001311 await usingShidenPlaygrounds(shidenUrl, async (helper) => {1311 await usingShidenPlaygrounds(shidenUrl, async (helper) => {1312 if(!(await helper.callRpc('api.query.assets.asset', [QTZ_ASSET_ID_ON_SHIDEN])).toJSON()) {1312 if(!(await helper.callRpc('api.query.assets.asset', [QTZ_ASSET_ID_ON_SHIDEN])).toJSON()) {1313 console.log('1. Create foreign asset and metadata');1313 console.log('1. Create foreign asset and metadata');1314 await helper.assets.create(1314 await helper.getSudo().assets.forceCreate(1315 alice,1315 alice,1316 QTZ_ASSET_ID_ON_SHIDEN,1316 QTZ_ASSET_ID_ON_SHIDEN,1317 alice.address,1317 alice.address,tests/src/xcm/xcmUnique.test.tsdiffbeforeafterboth1518 const astarInitialBalance = 1n * (10n ** ASTAR_DECIMALS); // 1 ASTR, existential deposit required to actually create the account on Astar.1518 const astarInitialBalance = 1n * (10n ** ASTAR_DECIMALS); // 1 ASTR, existential deposit required to actually create the account on Astar.1519 const unitsPerSecond = 9_451_000_000_000_000_000n; // The value is taken from the live Astar1519 const unitsPerSecond = 9_451_000_000_000_000_000n; // The value is taken from the live Astar1520 const unqToAstarTransferred = 10n * (10n ** UNQ_DECIMALS); // 10 UNQ1520 const unqToAstarTransferred = 10n * (10n ** UNQ_DECIMALS); // 10 UNQ1521 const unqToAstarArrived = 9_999_999_999_088_000_000n; // 9.999 ... UNQ, Astar takes a commision in foreign tokens1521 const unqToAstarArrived = 9_962_196_000_000_000_000n; // 9.962 ... UNQ, Astar takes a commision in foreign tokens152215221523 // Astar -> Unique1523 // Astar -> Unique1524 const unqFromAstarTransfered = 5n * (10n ** UNQ_DECIMALS); // 5 UNQ1524 const unqFromAstarTransfered = 5n * (10n ** UNQ_DECIMALS); // 5 UNQ1525 const unqOnAstarLeft = unqToAstarArrived - unqFromAstarTransfered; // 4.999_999_999_088_000_000n UNQ1525 const unqOnAstarLeft = unqToAstarArrived - unqFromAstarTransfered; // 4.962_219_600_000_000_000n UNQ152615261527 let balanceAfterUniqueToAstarXCM: bigint;1527 let balanceAfterUniqueToAstarXCM: bigint;152815281539 await usingAstarPlaygrounds(astarUrl, async (helper) => {1539 await usingAstarPlaygrounds(astarUrl, async (helper) => {1540 if(!(await helper.callRpc('api.query.assets.asset', [UNQ_ASSET_ID_ON_ASTAR])).toJSON()) {1540 if(!(await helper.callRpc('api.query.assets.asset', [UNQ_ASSET_ID_ON_ASTAR])).toJSON()) {1541 console.log('1. Create foreign asset and metadata');1541 console.log('1. Create foreign asset and metadata');1542 await helper.assets.create(1542 await helper.getSudo().assets.forceCreate(1543 alice,1543 alice,1544 UNQ_ASSET_ID_ON_ASTAR,1544 UNQ_ASSET_ID_ON_ASTAR,1545 alice.address,1545 alice.address,