diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock index 27c9b3e760..c386277e29 100644 --- a/polkadot/Cargo.lock +++ b/polkadot/Cargo.lock @@ -1862,7 +1862,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", ] @@ -1880,7 +1880,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -1899,7 +1899,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "Inflector", "chrono", @@ -1922,7 +1922,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -1935,7 +1935,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -1950,7 +1950,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "serde", @@ -1961,7 +1961,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "bitflags", "frame-metadata", @@ -1987,7 +1987,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -1999,7 +1999,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -2011,7 +2011,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "proc-macro2", "quote", @@ -2021,7 +2021,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-metadata", "frame-support", @@ -2041,7 +2041,7 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -2058,7 +2058,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -2072,7 +2072,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "sp-api", @@ -2081,7 +2081,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "parity-scale-codec", @@ -4465,7 +4465,7 @@ checksum = "13370dae44474229701bb69b90b4f4dca6404cb0357a2d50d635f1171dc3aa7b" [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4480,7 +4480,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4494,7 +4494,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4517,7 +4517,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4546,7 +4546,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4560,7 +4560,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4576,7 +4576,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4591,7 +4591,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4611,7 +4611,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4628,7 +4628,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4649,7 +4649,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4664,7 +4664,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4683,7 +4683,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4699,7 +4699,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4714,7 +4714,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4731,7 +4731,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4747,7 +4747,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4765,7 +4765,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4780,7 +4780,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4793,7 +4793,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4809,7 +4809,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4831,7 +4831,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4846,7 +4846,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4859,7 +4859,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "enumflags2", "frame-support", @@ -4873,7 +4873,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4888,7 +4888,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4907,7 +4907,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4923,7 +4923,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4936,7 +4936,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4960,7 +4960,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -4971,7 +4971,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -4984,7 +4984,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5002,7 +5002,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5017,7 +5017,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-support", "frame-system", @@ -5033,7 +5033,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5050,7 +5050,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5061,7 +5061,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5077,7 +5077,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-benchmarking", "frame-support", @@ -5092,7 +5092,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "enumflags2", "frame-benchmarking", @@ -7312,7 +7312,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "env_logger 0.8.2", "hex-literal", @@ -7597,7 +7597,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "derive_more", @@ -7626,7 +7626,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "futures-timer 3.0.2", @@ -7649,7 +7649,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7665,7 +7665,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7686,7 +7686,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -7697,7 +7697,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "chrono", "fdlimit", @@ -7735,7 +7735,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "fnv", @@ -7769,7 +7769,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "blake2-rfc", "hash-db", @@ -7799,7 +7799,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parking_lot 0.11.1", "sc-client-api", @@ -7811,7 +7811,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "derive_more", @@ -7857,7 +7857,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "futures 0.3.14", @@ -7881,7 +7881,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7894,7 +7894,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "futures 0.3.14", @@ -7922,7 +7922,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "sc-client-api", "sp-authorship", @@ -7933,7 +7933,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "lazy_static", @@ -7963,7 +7963,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "parity-scale-codec", @@ -7980,7 +7980,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "log", "parity-scale-codec", @@ -7995,7 +7995,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "log", "parity-scale-codec", @@ -8013,7 +8013,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "derive_more", @@ -8053,7 +8053,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "finality-grandpa", @@ -8077,7 +8077,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "futures 0.3.14", @@ -8098,7 +8098,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "ansi_term 0.12.1", "futures 0.3.14", @@ -8116,7 +8116,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "derive_more", @@ -8136,7 +8136,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "hash-db", "lazy_static", @@ -8155,7 +8155,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-std", "async-trait", @@ -8208,7 +8208,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "futures-timer 3.0.2", @@ -8225,7 +8225,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "bytes 0.5.6", "fnv", @@ -8253,7 +8253,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "libp2p", @@ -8266,7 +8266,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8275,7 +8275,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "hash-db", @@ -8310,7 +8310,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "futures 0.3.14", @@ -8335,7 +8335,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.1.29", "jsonrpc-core", @@ -8353,7 +8353,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "directories", @@ -8417,7 +8417,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "log", "parity-scale-codec", @@ -8432,7 +8432,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8452,7 +8452,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "chrono", "futures 0.3.14", @@ -8472,7 +8472,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8509,7 +8509,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8520,7 +8520,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "futures 0.3.14", @@ -8542,7 +8542,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "futures-diagnose", @@ -8973,7 +8973,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "log", "sp-core", @@ -8985,7 +8985,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "hash-db", "log", @@ -9002,7 +9002,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -9014,7 +9014,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "serde", @@ -9026,7 +9026,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "integer-sqrt", "num-traits", @@ -9040,7 +9040,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "sp-api", @@ -9052,7 +9052,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "parity-scale-codec", @@ -9064,7 +9064,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "sp-api", @@ -9076,7 +9076,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "log", @@ -9094,7 +9094,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "serde", "serde_json", @@ -9103,7 +9103,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "futures 0.3.14", @@ -9130,7 +9130,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "merlin", @@ -9152,7 +9152,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -9162,7 +9162,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9174,7 +9174,7 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "base58", "blake2-rfc", @@ -9218,7 +9218,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -9227,7 +9227,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "proc-macro2", "quote", @@ -9237,7 +9237,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "environmental", "parity-scale-codec", @@ -9248,7 +9248,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "finality-grandpa", "log", @@ -9265,7 +9265,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9279,7 +9279,7 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "hash-db", @@ -9303,7 +9303,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "lazy_static", "sp-core", @@ -9314,7 +9314,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "derive_more", @@ -9331,7 +9331,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "ruzstd", "zstd", @@ -9340,7 +9340,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "serde", @@ -9353,7 +9353,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -9364,7 +9364,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "sp-api", "sp-core", @@ -9374,7 +9374,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "backtrace", ] @@ -9382,7 +9382,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "rustc-hash", "serde", @@ -9393,7 +9393,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "either", "hash256-std-hasher", @@ -9414,7 +9414,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9431,7 +9431,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9443,7 +9443,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "serde", "serde_json", @@ -9452,7 +9452,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "sp-api", @@ -9465,7 +9465,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9475,7 +9475,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "hash-db", "log", @@ -9498,12 +9498,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9516,7 +9516,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "log", "sp-core", @@ -9529,7 +9529,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9546,7 +9546,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "erased-serde", "log", @@ -9564,7 +9564,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "derive_more", "futures 0.3.14", @@ -9580,7 +9580,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "hash-db", "memory-db", @@ -9594,7 +9594,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "futures-core", @@ -9606,7 +9606,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9618,7 +9618,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9775,7 +9775,7 @@ dependencies = [ [[package]] name = "substrate-browser-utils" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "chrono", "console_error_panic_hook", @@ -9801,7 +9801,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "platforms", ] @@ -9809,7 +9809,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.14", @@ -9832,7 +9832,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-std", "derive_more", @@ -9846,7 +9846,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "async-trait", "futures 0.1.29", @@ -9875,7 +9875,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "futures 0.3.14", "substrate-test-utils-derive", @@ -9885,7 +9885,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "proc-macro-crate 1.0.0", "quote", @@ -10627,7 +10627,7 @@ checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#462653636821f542fd99beed25e817b7f14c38c9" +source = "git+https://github.com/paritytech/substrate#d47d16207b6aa6f4682e056953d114eebc2ffbf6" dependencies = [ "frame-try-runtime", "log", diff --git a/polkadot/runtime/kusama/src/lib.rs b/polkadot/runtime/kusama/src/lib.rs index 2d8dee911a..548683ed56 100644 --- a/polkadot/runtime/kusama/src/lib.rs +++ b/polkadot/runtime/kusama/src/lib.rs @@ -52,7 +52,7 @@ use runtime_parachains::scheduler as parachains_scheduler; use runtime_parachains::reward_points as parachains_reward_points; use runtime_parachains::runtime_api_impl::v1 as parachains_runtime_api_impl; -use xcm::v0::{MultiLocation, NetworkId, BodyId, Xcm}; +use xcm::v0::{MultiLocation, NetworkId, BodyId, Xcm, MultiAsset}; use xcm_builder::{ AccountId32Aliases, ChildParachainConvertsVia, SovereignSignedViaLocation, CurrencyAdapter as XcmCurrencyAdapter, ChildParachainAsNative, SignedAccountId32AsNative, ChildSystemParachainAsSuperuser, LocationInverter, @@ -1217,6 +1217,8 @@ impl pallet_xcm::Config for Runtime { // ...but they must match our filter, which requires them to be a simple withdraw + teleport. type XcmExecuteFilter = OnlyWithdrawTeleportForAccounts; type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = All<(MultiLocation, Vec)>; + type Weigher = FixedWeightBounds; } construct_runtime! { diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs index 8b734c7ea6..1965d4006e 100644 --- a/polkadot/runtime/rococo/src/lib.rs +++ b/polkadot/runtime/rococo/src/lib.rs @@ -110,7 +110,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("rococo"), impl_name: create_runtime_str!("parity-rococo-v1.5"), authoring_version: 0, - spec_version: 9000, + spec_version: 9001, impl_version: 0, #[cfg(not(feature = "disable-runtime-api"))] apis: RUNTIME_API_VERSIONS, @@ -714,6 +714,8 @@ impl pallet_xcm::Config for Runtime { // ...but they must match our filter, which requires them to be a simple withdraw + teleport. type XcmExecuteFilter = OnlyWithdrawTeleportForAccounts; type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = All<(MultiLocation, Vec)>; + type Weigher = FixedWeightBounds; } impl parachains_session_info::Config for Runtime {} diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index 54dd317b7b..b773d71897 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -53,7 +53,7 @@ use runtime_parachains::scheduler as parachains_scheduler; use runtime_parachains::reward_points as parachains_reward_points; use runtime_parachains::runtime_api_impl::v1 as parachains_runtime_api_impl; -use xcm::v0::{MultiLocation, NetworkId, Xcm}; +use xcm::v0::{MultiLocation, NetworkId, Xcm, MultiAsset}; use xcm_executor::XcmExecutor; use xcm_builder::{ AccountId32Aliases, ChildParachainConvertsVia, SovereignSignedViaLocation, CurrencyAdapter as XcmCurrencyAdapter, @@ -922,6 +922,8 @@ impl pallet_xcm::Config for Runtime { // ...but they must match our filter, which requires them to be a simple withdraw + teleport. type XcmExecuteFilter = OnlyWithdrawTeleportForAccounts; type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = All<(MultiLocation, Vec)>; + type Weigher = FixedWeightBounds; } construct_runtime! { diff --git a/polkadot/xcm/pallet-xcm/src/lib.rs b/polkadot/xcm/pallet-xcm/src/lib.rs index 028cc61beb..b15a6f491f 100644 --- a/polkadot/xcm/pallet-xcm/src/lib.rs +++ b/polkadot/xcm/pallet-xcm/src/lib.rs @@ -18,9 +18,9 @@ #![cfg_attr(not(feature = "std"), no_std)] -use sp_std::{marker::PhantomData, convert::TryInto, boxed::Box}; +use sp_std::{prelude::*, marker::PhantomData, convert::TryInto, boxed::Box, vec}; use codec::{Encode, Decode}; -use xcm::v0::{BodyId, OriginKind, MultiLocation, Junction::Plurality}; +use xcm::v0::prelude::*; use xcm_executor::traits::ConvertOrigin; use sp_runtime::{RuntimeDebug, traits::BadOrigin}; use frame_support::traits::{EnsureOrigin, OriginTrait, Filter, Get, Contains}; @@ -32,7 +32,7 @@ pub mod pallet { use super::*; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; - use xcm::v0::{Xcm, MultiLocation, Error as XcmError, SendXcm, ExecuteXcm}; + use xcm_executor::traits::WeightBounds; #[pallet::pallet] #[pallet::generate_store(pub(super) trait Store)] @@ -51,8 +51,9 @@ pub mod pallet { /// The type used to actually dispatch an XCM to its destination. type XcmRouter: SendXcm; - /// Required origin for executing XCM messages. If successful, the it resolves to `MultiLocation` - /// which exists as an interior location within this chain's XCM context. + /// Required origin for executing XCM messages, includng the teleport functionality. If successful, + /// the it resolves to `MultiLocation` which exists as an interior location within this chain's XCM + /// context. type ExecuteXcmOrigin: EnsureOrigin; /// Our XCM filter which messages to be executed using `XcmExecutor` must pass. @@ -60,6 +61,12 @@ pub mod pallet { /// Something to execute an XCM message. type XcmExecutor: ExecuteXcm; + + /// Our XCM filter which messages to be executed using `XcmExecutor` must pass. + type XcmTeleportFilter: Contains<(MultiLocation, Vec)>; + + /// Means of measuring the weight consumed by an XCM message locally. + type Weigher: WeightBounds; } #[pallet::event] @@ -75,6 +82,8 @@ pub mod pallet { SendFailure, /// The message execution fails the filter. Filtered, + /// The message's weight could not be determined. + UnweighableMessage, } #[pallet::hooks] @@ -82,7 +91,7 @@ pub mod pallet { #[pallet::call] impl Pallet { - #[pallet::weight(1_000)] + #[pallet::weight(100_000_000)] fn send(origin: OriginFor, dest: MultiLocation, message: Xcm<()>) -> DispatchResult { let origin_location = T::SendXcmOrigin::ensure_origin(origin)?; Self::send_xcm(origin_location.clone(), dest.clone(), message.clone()) @@ -94,6 +103,66 @@ pub mod pallet { Ok(()) } + /// Teleport some assets from the local chain to some destination chain. + /// + /// - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + /// - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send + /// from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain. + /// - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be + /// an `AccountId32` value. + /// - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the + /// `dest` side. + /// - `dest_weight`: Equal to the total weight on `dest` of the XCM message + /// `Teleport { assets, effects: [ BuyExecution{..}, DepositAsset{..} ] }`. + #[pallet::weight({ + let mut message = Xcm::WithdrawAsset { + assets: assets.clone(), + effects: sp_std::vec![ InitiateTeleport { + assets: sp_std::vec![ All ], + dest: dest.clone(), + effects: sp_std::vec![], + } ] + }; + T::Weigher::weight(&mut message).map_or(Weight::max_value(), |w| 100_000_000 + w) + })] + fn teleport_assets( + origin: OriginFor, + dest: MultiLocation, + beneficiary: MultiLocation, + assets: Vec, + dest_weight: Weight, + ) -> DispatchResult { + let origin_location = T::ExecuteXcmOrigin::ensure_origin(origin)?; + let value = (origin_location, assets); + ensure!(T::XcmTeleportFilter::contains(&value), Error::::Filtered); + let (origin_location, assets) = value; + let mut message = Xcm::WithdrawAsset { + assets, + effects: vec![ + InitiateTeleport { + assets: vec![ All ], + dest, + effects: vec![ + BuyExecution { + fees: All, + // Zero weight for additional XCM (since there are none to execute) + weight: 0, + debt: dest_weight, + halt_on_error: false, + xcm: vec![], + }, + DepositAsset { assets: vec![ All ], dest: beneficiary }, + ], + }, + ], + }; + let weight = T::Weigher::weight(&mut message) + .map_err(|()| Error::::UnweighableMessage)?; + let outcome = T::XcmExecutor::execute_xcm_in_credit(origin_location, message, weight, weight); + Self::deposit_event(Event::Attempted(outcome)); + Ok(()) + } + /// Execute an XCM message from a local, signed, origin. /// /// An event is deposited indicating whether `msg` could be executed completely or only @@ -105,7 +174,7 @@ pub mod pallet { /// /// NOTE: A successful return to this does *not* imply that the `msg` was executed successfully /// to completion; only that *some* of it was executed. - #[pallet::weight(max_weight.saturating_add(1_000u64))] + #[pallet::weight(max_weight.saturating_add(100_000_000u64))] fn execute(origin: OriginFor, message: Box>, max_weight: Weight) -> DispatchResult { diff --git a/polkadot/xcm/src/v0/mod.rs b/polkadot/xcm/src/v0/mod.rs index 96fde3b588..76a32a7add 100644 --- a/polkadot/xcm/src/v0/mod.rs +++ b/polkadot/xcm/src/v0/mod.rs @@ -33,6 +33,16 @@ pub use multi_location::MultiLocation; pub use order::Order; pub use traits::{Error, Result, SendXcm, ExecuteXcm, Outcome}; +/// A prelude for importing all types typically used when interacting with XCM messages. +pub mod prelude { + pub use super::junction::{Junction::*, NetworkId, BodyId, BodyPart}; + pub use super::multi_asset::{MultiAsset::{self, *}, AssetInstance::{self, *}}; + pub use super::multi_location::MultiLocation::{self, *}; + pub use super::order::Order::{self, *}; + pub use super::traits::{Error as XcmError, Result as XcmResult, SendXcm, ExecuteXcm, Outcome}; + pub use super::{Xcm::{self, *}, OriginKind}; +} + // TODO: #2841 #XCMENCODE Efficient encodings for Vec, Vec, using initial byte values 128+ to encode // the number of items in the vector. diff --git a/polkadot/xcm/src/v0/traits.rs b/polkadot/xcm/src/v0/traits.rs index f0df7db03e..47613a7ec0 100644 --- a/polkadot/xcm/src/v0/traits.rs +++ b/polkadot/xcm/src/v0/traits.rs @@ -126,14 +126,34 @@ impl Outcome { } } +/// Type of XCM message executor. pub trait ExecuteXcm { - type Call; - fn execute_xcm(origin: MultiLocation, message: Xcm, weight_limit: Weight) -> Outcome; + /// Execute some XCM `message` from `origin` using no more than `weight_limit` weight. The weight limit is + /// a basic hard-limit and the implementation may place further restrictions or requirements on weight and + /// other aspects. + fn execute_xcm(origin: MultiLocation, message: Xcm, weight_limit: Weight) -> Outcome { + Self::execute_xcm_in_credit(origin, message, weight_limit, 0) + } + + /// Execute some XCM `message` from `origin` using no more than `weight_limit` weight. + /// + /// Some amount of `weight_credit` may be provided which, depending on the implementation, may allow + /// execution without associated payment. + fn execute_xcm_in_credit( + origin: MultiLocation, + message: Xcm, + weight_limit: Weight, + weight_credit: Weight, + ) -> Outcome; } impl ExecuteXcm for () { - type Call = C; - fn execute_xcm(_origin: MultiLocation, _message: Xcm, _weight_limit: Weight) -> Outcome { + fn execute_xcm_in_credit( + _origin: MultiLocation, + _message: Xcm, + _weight_limit: Weight, + _weight_credit: Weight, + ) -> Outcome { Outcome::Error(Error::Unimplemented) } } diff --git a/polkadot/xcm/xcm-builder/src/weight.rs b/polkadot/xcm/xcm-builder/src/weight.rs index f855d23a40..529f0c7cb1 100644 --- a/polkadot/xcm/xcm-builder/src/weight.rs +++ b/polkadot/xcm/xcm-builder/src/weight.rs @@ -32,7 +32,8 @@ impl, C: Decode + GetDispatchInfo> WeightBounds for FixedWeigh Xcm::RelayedFrom { ref mut message, .. } => T::get() + Self::shallow(message.as_mut())?, Xcm::WithdrawAsset { effects, .. } | Xcm::ReserveAssetDeposit { effects, .. } - | Xcm::TeleportAsset { effects, .. } => { + | Xcm::TeleportAsset { effects, .. } + => { let inner: Weight = effects.iter_mut() .map(|effect| match effect { Order::BuyExecution { .. } => { diff --git a/polkadot/xcm/xcm-executor/src/lib.rs b/polkadot/xcm/xcm-executor/src/lib.rs index 3a43eef872..c99bf6d05f 100644 --- a/polkadot/xcm/xcm-executor/src/lib.rs +++ b/polkadot/xcm/xcm-executor/src/lib.rs @@ -40,8 +40,12 @@ pub use config::Config; pub struct XcmExecutor(PhantomData); impl ExecuteXcm for XcmExecutor { - type Call = Config::Call; - fn execute_xcm(origin: MultiLocation, message: Xcm, weight_limit: Weight) -> Outcome { + fn execute_xcm_in_credit( + origin: MultiLocation, + message: Xcm, + weight_limit: Weight, + mut weight_credit: Weight, + ) -> Outcome { // TODO: #2841 #HARDENXCM We should identify recursive bombs here and bail. let mut message = Xcm::::from(message); let shallow_weight = match Config::Weigher::shallow(&mut message) { @@ -60,7 +64,7 @@ impl ExecuteXcm for XcmExecutor { return Outcome::Error(XcmError::WeightLimitReached(maximum_weight)); } let mut trader = Config::Trader::new(); - let result = Self::do_execute_xcm(origin, true, message, &mut 0, Some(shallow_weight), &mut trader); + let result = Self::do_execute_xcm(origin, true, message, &mut weight_credit, Some(shallow_weight), &mut trader); drop(trader); match result { Ok(surplus) => Outcome::Complete(maximum_weight.saturating_sub(surplus)), diff --git a/polkadot/xcm/xcm-executor/src/traits/weight.rs b/polkadot/xcm/xcm-executor/src/traits/weight.rs index 5fd8963090..abfd9ee07f 100644 --- a/polkadot/xcm/xcm-executor/src/traits/weight.rs +++ b/polkadot/xcm/xcm-executor/src/traits/weight.rs @@ -15,7 +15,7 @@ // along with Polkadot. If not, see . use sp_std::result::Result; -use xcm::v0::{Xcm, MultiAsset, Error}; +use xcm::v0::{Xcm, MultiAsset, MultiLocation, Error}; use frame_support::weights::Weight; use crate::Assets; @@ -43,6 +43,18 @@ pub trait WeightBounds { /// any internal effects. Inner XCM messages may be executed by: /// - Order::BuyExecution fn deep(message: &mut Xcm) -> Result; + + /// Return the total weight for executing `message`. + fn weight(message: &mut Xcm) -> Result { + Self::shallow(message)?.checked_add(Self::deep(message)?).ok_or(()) + } +} + +/// A means of getting approximate weight consumption for a given destination message executor and a +/// message. +pub trait UniversalWeigher { + /// Get the upper limit of weight required for `dest` to execute `message`. + fn weigh(dest: MultiLocation, message: Xcm<()>) -> Result; } /// Charge for weight in order to execute XCM.