diff --git a/parachain/Cargo.lock b/parachain/Cargo.lock index 908e8da5dc..ec83f64fe5 100644 --- a/parachain/Cargo.lock +++ b/parachain/Cargo.lock @@ -447,6 +447,28 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "assets-common" +version = "0.17.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "impl-trait-for-tuples", + "log", + "pallet-asset-conversion", + "pallet-xcm", + "parachains-common", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -739,7 +761,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "hash-db", "log", @@ -952,7 +974,7 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -1720,7 +1742,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "clap", "parity-scale-codec", @@ -1737,7 +1759,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1760,7 +1782,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.17.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-client-collator", @@ -1805,7 +1827,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1835,7 +1857,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "anyhow", "async-trait", @@ -1850,7 +1872,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1876,7 +1898,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1898,7 +1920,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1924,7 +1946,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1961,7 +1983,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -1978,7 +2000,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1995,7 +2017,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.16.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2031,7 +2053,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -2042,7 +2064,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -2055,7 +2077,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2070,7 +2092,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.16.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2095,7 +2117,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2108,7 +2130,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2124,7 +2146,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2140,7 +2162,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -2150,7 +2172,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.15.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -2160,7 +2182,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.16.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2179,7 +2201,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2203,7 +2225,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2222,7 +2244,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "async-trait", @@ -2257,7 +2279,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2296,7 +2318,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -3400,7 +3422,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", ] @@ -3527,7 +3549,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-support-procedural", @@ -3551,7 +3573,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "42.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "Inflector", "array-bytes", @@ -3601,7 +3623,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "14.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -3612,7 +3634,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3628,7 +3650,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "aquamarine", "frame-support", @@ -3658,7 +3680,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.5.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "docify", @@ -3673,7 +3695,7 @@ dependencies = [ [[package]] name = "frame-support" version = "37.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "aquamarine", "array-bytes", @@ -3714,7 +3736,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "30.0.4" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "Inflector", "cfg-expr", @@ -3733,7 +3755,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.1.0", @@ -3745,7 +3767,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "proc-macro2", "quote", @@ -3755,7 +3777,7 @@ dependencies = [ [[package]] name = "frame-system" version = "37.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cfg-if", "docify", @@ -3775,7 +3797,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -3789,7 +3811,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "parity-scale-codec", @@ -3799,7 +3821,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "parity-scale-codec", @@ -6233,7 +6255,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "log", @@ -6252,7 +6274,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -7215,7 +7237,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7250,7 +7272,7 @@ dependencies = [ [[package]] name = "pallet-asset-rate" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7264,7 +7286,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7281,7 +7303,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7318,7 +7340,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -7334,7 +7356,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -7349,7 +7371,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -7362,7 +7384,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7385,7 +7407,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "aquamarine", "docify", @@ -7406,7 +7428,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "frame-benchmarking", @@ -7421,7 +7443,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -7440,7 +7462,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -7480,7 +7502,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7530,7 +7552,7 @@ dependencies = [ [[package]] name = "pallet-broker" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "frame-benchmarking", @@ -7564,7 +7586,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7595,7 +7617,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7614,7 +7636,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7630,7 +7652,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7662,7 +7684,7 @@ dependencies = [ [[package]] name = "pallet-delegated-staking" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -7675,7 +7697,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7692,7 +7714,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7714,7 +7736,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7727,7 +7749,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8129,7 +8151,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "frame-benchmarking", @@ -8147,7 +8169,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8219,7 +8241,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8256,7 +8278,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8275,7 +8297,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8310,7 +8332,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8326,7 +8348,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "40.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "environmental", "frame-benchmarking", @@ -8345,7 +8367,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8362,7 +8384,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8377,7 +8399,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8392,7 +8414,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -8410,7 +8432,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8430,7 +8452,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -8440,7 +8462,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -8456,7 +8478,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8506,6 +8528,25 @@ dependencies = [ "sp-api", ] +[[package]] +name = "pallet-omni-bridge" +version = "0.1.0" +dependencies = [ + "frame-support", + "frame-system", + "hex", + "pallet-assets", + "pallet-balances", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-keyring", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-parachain-staking" version = "0.1.0" @@ -8533,7 +8574,7 @@ dependencies = [ [[package]] name = "pallet-parameters" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "frame-benchmarking", @@ -8569,7 +8610,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8585,7 +8626,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8599,7 +8640,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8617,7 +8658,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8631,7 +8672,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8649,7 +8690,7 @@ dependencies = [ [[package]] name = "pallet-root-testing" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -8663,7 +8704,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "frame-benchmarking", @@ -8701,7 +8742,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -8722,7 +8763,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8738,7 +8779,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8755,7 +8796,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8777,7 +8818,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -8788,7 +8829,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "log", "sp-arithmetic", @@ -8797,7 +8838,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "sp-api", @@ -8807,7 +8848,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8823,7 +8864,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "frame-benchmarking", @@ -8869,7 +8910,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "36.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "frame-benchmarking", @@ -8888,7 +8929,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -8906,7 +8947,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "37.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -8921,7 +8962,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -8937,7 +8978,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -8949,7 +8990,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "36.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "frame-benchmarking", @@ -8967,7 +9008,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "37.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9003,7 +9044,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9017,7 +9058,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9031,7 +9072,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "16.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -9055,7 +9096,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-benchmarking", "frame-support", @@ -9073,7 +9114,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -9231,6 +9272,7 @@ checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" name = "paseo-parachain-runtime" version = "0.1.0" dependencies = [ + "assets-common", "core-primitives", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", @@ -9306,6 +9348,7 @@ dependencies = [ "pallet-multisig", "pallet-omni-account", "pallet-omni-account-runtime-api", + "pallet-omni-bridge", "pallet-parachain-staking", "pallet-pool-proposal", "pallet-preimage", @@ -9522,7 +9565,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polkadot-approval-distribution" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "futures 0.3.30", @@ -9542,7 +9585,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "always-assert", "futures 0.3.30", @@ -9558,7 +9601,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "derive_more", "fatality", @@ -9582,7 +9625,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "fatality", @@ -9615,7 +9658,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cfg-if", "clap", @@ -9643,7 +9686,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "fatality", @@ -9665,7 +9708,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9676,7 +9719,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "derive_more", "fatality", @@ -9701,7 +9744,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -9715,7 +9758,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "futures-timer", @@ -9737,7 +9780,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "always-assert", "async-trait", @@ -9760,7 +9803,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "parity-scale-codec", @@ -9778,7 +9821,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "derive_more", @@ -9811,7 +9854,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "futures 0.3.30", @@ -9833,7 +9876,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "fatality", @@ -9853,7 +9896,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "polkadot-node-subsystem", @@ -9868,7 +9911,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -9891,7 +9934,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "polkadot-node-metrics", @@ -9905,7 +9948,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "futures-timer", @@ -9922,7 +9965,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "fatality", "futures 0.3.30", @@ -9941,7 +9984,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -9958,7 +10001,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "16.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "fatality", "futures 0.3.30", @@ -9972,7 +10015,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "fatality", @@ -9990,7 +10033,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "always-assert", "array-bytes", @@ -10019,7 +10062,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "polkadot-node-primitives", @@ -10035,7 +10078,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cpu-time", "futures 0.3.30", @@ -10061,7 +10104,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "polkadot-node-metrics", @@ -10076,7 +10119,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "lazy_static", "log", @@ -10095,7 +10138,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bs58 0.5.1", "futures 0.3.30", @@ -10114,7 +10157,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -10140,7 +10183,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "bounded-vec", @@ -10163,7 +10206,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -10173,7 +10216,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "bitvec", @@ -10203,7 +10246,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "derive_more", @@ -10239,7 +10282,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -10261,7 +10304,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bounded-collections", "derive_more", @@ -10277,7 +10320,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "hex-literal", @@ -10303,7 +10346,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -10338,7 +10381,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "16.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitvec", "frame-benchmarking", @@ -10388,7 +10431,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bs58 0.5.1", "frame-benchmarking", @@ -10400,7 +10443,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "16.0.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -10447,7 +10490,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "frame-benchmarking", @@ -10565,7 +10608,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "arrayvec 0.7.4", "bitvec", @@ -10588,7 +10631,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -11640,7 +11683,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "binary-merkle-tree", "bitvec", @@ -11740,7 +11783,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "polkadot-primitives", @@ -11817,6 +11860,7 @@ dependencies = [ "pallet-message-queue", "pallet-multisig", "pallet-omni-account", + "pallet-omni-bridge", "pallet-teebag", "pallet-transaction-payment", "pallet-treasury", @@ -12123,7 +12167,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "log", "sp-core", @@ -12134,7 +12178,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -12164,7 +12208,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "futures-timer", @@ -12186,7 +12230,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "sp-api", @@ -12201,7 +12245,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "docify", @@ -12228,7 +12272,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -12239,7 +12283,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "chrono", @@ -12280,7 +12324,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "fnv", "futures 0.3.30", @@ -12307,7 +12351,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "hash-db", "kvdb", @@ -12333,7 +12377,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -12357,7 +12401,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -12386,7 +12430,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "fork-tree", @@ -12422,7 +12466,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "jsonrpsee", @@ -12444,7 +12488,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12480,7 +12524,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "jsonrpsee", @@ -12500,7 +12544,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "fork-tree", "parity-scale-codec", @@ -12513,7 +12557,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.29.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "ahash", "array-bytes", @@ -12557,7 +12601,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "finality-grandpa", "futures 0.3.30", @@ -12577,7 +12621,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -12600,7 +12644,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -12623,7 +12667,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "polkavm", "sc-allocator", @@ -12636,7 +12680,7 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "log", "polkavm", @@ -12647,7 +12691,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "anyhow", "cfg-if", @@ -12665,7 +12709,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "ansi_term", "futures 0.3.30", @@ -12682,7 +12726,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "parking_lot 0.12.3", @@ -12696,7 +12740,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "arrayvec 0.7.4", @@ -12725,7 +12769,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.44.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12776,7 +12820,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -12794,7 +12838,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "ahash", "futures 0.3.30", @@ -12813,7 +12857,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12834,7 +12878,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12871,7 +12915,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "futures 0.3.30", @@ -12890,7 +12934,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.12.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bs58 0.5.1", "ed25519-dalek", @@ -12907,7 +12951,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "bytes", @@ -12941,7 +12985,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12950,7 +12994,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "jsonrpsee", @@ -12982,7 +13026,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13002,7 +13046,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "16.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "forwarded-header-value", "futures 0.3.30", @@ -13024,7 +13068,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "futures 0.3.30", @@ -13056,7 +13100,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "directories", @@ -13120,7 +13164,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "log", "parity-scale-codec", @@ -13131,7 +13175,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "clap", "fs4", @@ -13144,7 +13188,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13163,7 +13207,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "derive_more", "futures 0.3.30", @@ -13184,7 +13228,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "chrono", "futures 0.3.30", @@ -13204,7 +13248,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "ansi_term", "chrono", @@ -13234,7 +13278,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -13245,7 +13289,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -13272,7 +13316,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -13288,7 +13332,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-channel 1.9.0", "futures 0.3.30", @@ -13768,7 +13812,7 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "enumn", "parity-scale-codec", @@ -13975,7 +14019,7 @@ dependencies = [ [[package]] name = "sp-api" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "hash-db", @@ -13997,7 +14041,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "Inflector", "blake2 0.10.6", @@ -14011,7 +14055,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -14023,7 +14067,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "integer-sqrt", @@ -14037,7 +14081,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -14049,7 +14093,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "sp-api", "sp-inherents", @@ -14059,7 +14103,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "37.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "futures 0.3.30", "parity-scale-codec", @@ -14078,7 +14122,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "futures 0.3.30", @@ -14093,7 +14137,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "parity-scale-codec", @@ -14109,7 +14153,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "parity-scale-codec", @@ -14127,7 +14171,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "lazy_static", "parity-scale-codec", @@ -14147,7 +14191,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "finality-grandpa", "log", @@ -14164,7 +14208,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -14175,7 +14219,7 @@ dependencies = [ [[package]] name = "sp-core" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "bitflags 1.3.2", @@ -14221,7 +14265,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "blake2b_simd", "byteorder", @@ -14234,7 +14278,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "quote", "sp-crypto-hashing", @@ -14244,7 +14288,7 @@ dependencies = [ [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -14253,7 +14297,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "proc-macro2", "quote", @@ -14263,7 +14307,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "environmental", "parity-scale-codec", @@ -14273,7 +14317,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -14285,7 +14329,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -14298,7 +14342,7 @@ dependencies = [ [[package]] name = "sp-io" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bytes", "docify", @@ -14324,7 +14368,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "sp-core", "sp-runtime", @@ -14334,7 +14378,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -14345,7 +14389,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "thiserror", "zstd 0.12.4", @@ -14354,7 +14398,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -14364,7 +14408,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -14375,7 +14419,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "log", "parity-scale-codec", @@ -14392,7 +14436,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -14405,7 +14449,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "sp-api", "sp-core", @@ -14415,7 +14459,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "backtrace", "lazy_static", @@ -14425,7 +14469,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "rustc-hash", "serde", @@ -14435,7 +14479,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "39.0.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "either", @@ -14461,7 +14505,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -14480,7 +14524,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "Inflector", "expander", @@ -14493,7 +14537,7 @@ dependencies = [ [[package]] name = "sp-session" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "scale-info", @@ -14507,7 +14551,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -14520,7 +14564,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "hash-db", "log", @@ -14540,7 +14584,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -14564,12 +14608,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" [[package]] name = "sp-storage" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14581,7 +14625,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "parity-scale-codec", @@ -14593,7 +14637,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "tracing", @@ -14604,7 +14648,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "sp-api", "sp-runtime", @@ -14613,7 +14657,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "async-trait", "parity-scale-codec", @@ -14627,7 +14671,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "ahash", "hash-db", @@ -14650,7 +14694,7 @@ dependencies = [ [[package]] name = "sp-version" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14667,7 +14711,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -14678,7 +14722,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -14690,7 +14734,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -14766,7 +14810,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -14779,7 +14823,7 @@ dependencies = [ [[package]] name = "staging-xcm" version = "14.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "array-bytes", "bounded-collections", @@ -14797,7 +14841,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "16.0.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", @@ -14818,7 +14862,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "environmental", "frame-benchmarking", @@ -14939,7 +14983,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -14964,7 +15008,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" [[package]] name = "substrate-fixed" @@ -14980,7 +15024,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -15000,7 +15044,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "http-body-util", "hyper 1.5.1", @@ -15014,7 +15058,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -15041,7 +15085,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "build-helper", "cargo_metadata", @@ -15588,7 +15632,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "coarsetime", "polkadot-primitives", @@ -15599,7 +15643,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "expander", "proc-macro-crate 3.1.0", @@ -16406,7 +16450,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "binary-merkle-tree", "bitvec", @@ -16512,7 +16556,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "polkadot-primitives", @@ -16921,7 +16965,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "10.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "Inflector", "proc-macro2", @@ -16932,7 +16976,7 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" version = "0.3.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "parity-scale-codec", @@ -16946,7 +16990,7 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#f2081f6657f011634a483e3a4c91e54150c974c7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2407#fb9b95d64aa442a1ce6ffba51777243729a783c9" dependencies = [ "frame-support", "frame-system", diff --git a/parachain/Cargo.toml b/parachain/Cargo.toml index 1f7d120a9d..3d7e8c27a3 100644 --- a/parachain/Cargo.toml +++ b/parachain/Cargo.toml @@ -27,6 +27,7 @@ members = [ 'pallets/xcm-asset-manager', 'pallets/omni-account', 'pallets/omni-account/runtime-api', + 'pallets/omni-bridge', 'precompiles/assets-erc20', 'precompiles/bridge-transfer', 'precompiles/collab-ai/aiusd-convertor', @@ -253,6 +254,7 @@ cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/p pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false } parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false } parachains-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false } +assets-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false } substrate-fixed = { git = "https://github.com/encointer/substrate-fixed", default-features = false } @@ -283,6 +285,7 @@ pallet-group = { path = "pallets/group", default-features = false } pallet-identity-management = { path = "pallets/identity-management", default-features = false } pallet-omni-account = { path = "pallets/omni-account", default-features = false } pallet-omni-account-runtime-api = { path = "pallets/omni-account/runtime-api", default-features = false } +pallet-omni-bridge = { path = "pallets/omni-bridge", default-features = false } pallet-parachain-staking = { path = "pallets/parachain-staking", default-features = false } pallet-score-staking = { path = "pallets/score-staking", default-features = false } pallet-teebag = { path = "pallets/teebag", default-features = false } diff --git a/parachain/node/src/chain_specs/paseo.rs b/parachain/node/src/chain_specs/paseo.rs index d72874568d..c58585c25d 100644 --- a/parachain/node/src/chain_specs/paseo.rs +++ b/parachain/node/src/chain_specs/paseo.rs @@ -19,8 +19,8 @@ use core_primitives::PASEO_PARA_ID; use cumulus_primitives_core::ParaId; use paseo_parachain_runtime::{ AccountId, AuraId, Balance, BalancesConfig, BitacrossConfig, CouncilMembershipConfig, - DeveloperCommitteeMembershipConfig, ParachainInfoConfig, ParachainStakingConfig, - PolkadotXcmConfig, RuntimeGenesisConfig, SessionConfig, SudoConfig, + DeveloperCommitteeMembershipConfig, OmniBridgeConfig, ParachainInfoConfig, + ParachainStakingConfig, PolkadotXcmConfig, RuntimeGenesisConfig, SessionConfig, SudoConfig, TechnicalCommitteeMembershipConfig, TeebagConfig, TeebagOperationalMode, VCManagementConfig, WASM_BINARY, }; @@ -227,8 +227,12 @@ fn generate_genesis( admin: Some(root_key.clone()), mode: TeebagOperationalMode::Development, }, - bitacross: BitacrossConfig { admin: Some(root_key) }, + bitacross: BitacrossConfig { admin: Some(root_key.clone()) }, score_staking: Default::default(), + omni_bridge: OmniBridgeConfig { + admin: Some(root_key.clone()), + default_relayers: vec![root_key], + }, }; serde_json::to_value(&config).expect("Could not build genesis config") diff --git a/parachain/pallets/omni-bridge/Cargo.toml b/parachain/pallets/omni-bridge/Cargo.toml new file mode 100644 index 0000000000..8377f5f642 --- /dev/null +++ b/parachain/pallets/omni-bridge/Cargo.toml @@ -0,0 +1,50 @@ +[package] +authors = ['Trust Computing GmbH '] +version = "0.1.0" +edition = "2021" +homepage = 'https://litentry.com' +name = 'pallet-omni-bridge' +repository = 'https://github.com/litentry/heima' + +[dependencies] +parity-scale-codec = { workspace = true } +scale-info = { workspace = true } + +frame-support = { workspace = true } +frame-system = { workspace = true } +sp-core = { workspace = true } +sp-io = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } + +[dev-dependencies] +sp-keyring = { workspace = true } +sp-io = { workspace = true, features = ["std"] } +frame-system = { workspace = true, features = ["std"] } +pallet-assets = { workspace = true, features = ["std"] } +pallet-balances = { workspace = true, features = ["std"] } +pallet-timestamp = { workspace = true, features = ["std"] } +hex = { workspace = true } + +[features] +default = ["std"] +runtime-benchmarks = [ + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", +] +std = [ + "parity-scale-codec/std", + "scale-info/std", + "sp-core/std", + "sp-io/std", + "sp-std/std", + "sp-runtime/std", + "frame-support/std", + "frame-system/std", +] +try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "sp-runtime/try-runtime", +] diff --git a/parachain/pallets/omni-bridge/src/lib.rs b/parachain/pallets/omni-bridge/src/lib.rs new file mode 100644 index 0000000000..0a1e70da25 --- /dev/null +++ b/parachain/pallets/omni-bridge/src/lib.rs @@ -0,0 +1,710 @@ +// Copyright 2020-2024 Trust Computing GmbH. +// This file is part of Litentry. +// +// Litentry is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Litentry is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Litentry. If not, see . + +#![cfg_attr(not(feature = "std"), no_std)] +#![allow(clippy::too_many_arguments)] + +use frame_support::{ + pallet_prelude::*, + traits::{ + fungibles::{Balanced, Create, Mutate, Refund}, + tokens::{Balance, Fortitude, Precision, Preservation}, + AccountTouch, + }, + PalletId, +}; +use frame_system::{ensure_root, ensure_signed, pallet_prelude::*}; +use sp_core::H256; +use sp_io::hashing::blake2_256; +use sp_runtime::traits::AccountIdConversion; +use sp_std::{prelude::*, vec}; + +pub use pallet::*; + +#[cfg(test)] +mod mock; + +#[cfg(test)] +mod tests; + +const MODULE_ID: PalletId = PalletId(*b"hm/ombrg"); +const DEFAULT_RELAYER_THRESHOLD: u32 = 1; + +// TODO: maybe using xcm Location is better +// but we'd need enums for all foreign types, or use GeneralIndex +#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum ChainType { + Heima, // this chain + Ethereum(u32), // with chain id +} + +// We assume "chain + asset-id" can uniquely identify an asset that can +// be bridged out/in +#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] +pub struct ChainAsset { + pub chain: ChainType, + pub asset: AssetKind, +} + +impl ChainAsset { + pub fn to_resource_id(&self) -> ResourceId { + self.using_encoded(blake2_256) + } +} + +pub type Nonce = u64; +pub type ResourceId = [u8; 32]; // to be compatible with chainsafe's contract +pub type PayOutRequestHash = H256; + +// payin request by user (from user to foreign chain) - better name? +#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] +pub struct PayInRequest { + pub asset: AssetKind, + pub dest_chain: ChainType, + pub dest_account: Vec, + pub amount: Balance, +} + +// payout request by relayer (from foreign chain to user) - better name? +#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] +pub struct PayOutRequest { + pub source_chain: ChainType, + pub nonce: Nonce, + pub resource_id: ResourceId, + pub dest_account: AccountId, + pub amount: Balance, +} + +impl PayOutRequest { + pub fn hash(&self) -> PayOutRequestHash { + self.using_encoded(blake2_256).into() + } +} + +#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] +pub struct PayOutVote { + pub ayes: Vec, + pub nays: Vec, + pub status: VoteStatus, +} + +#[derive(PartialEq, Eq, Clone, Encode, Default, Decode, RuntimeDebug, TypeInfo)] +pub enum VoteStatus { + #[default] + Pending, + Passed, + Failed, +} + +impl PayOutVote { + /// Try to finalize the vote, return the updated status + pub fn try_finalize(&mut self, threshold: u32, total: u32) -> VoteStatus { + if self.ayes.len() >= threshold as usize { + self.status = VoteStatus::Passed; + VoteStatus::Passed + } else if total >= threshold && self.nays.len() as u32 + threshold > total { + self.status = VoteStatus::Failed; + VoteStatus::Failed + } else { + VoteStatus::Pending + } + } + + pub fn is_finalized(&self) -> bool { + self.status == VoteStatus::Passed || self.status == VoteStatus::Failed + } + + pub fn has_voted(&self, who: &AccountId) -> bool { + self.ayes.contains(who) || self.nays.contains(who) + } +} + +#[frame_support::pallet] +pub mod pallet { + use super::*; + + /// The current storage version. + const STORAGE_VERSION: StorageVersion = StorageVersion::new(0); + + #[pallet::pallet] + #[pallet::storage_version(STORAGE_VERSION)] + #[pallet::without_storage_info] + pub struct Pallet(_); + + #[pallet::config] + pub trait Config: frame_system::Config { + /// The overarching event type. + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + + /// Treasury account to receive the bridging fee + type TreasuryAccount: Get; + + /// The scalar type of balance of some asset + type Balance: Balance; + + type AssetKind: Parameter + MaxEncodedLen; + + type Assets: Create + + Mutate + + AccountTouch + + Balanced + + Refund; + + // origin to manage Relayer Admin + type SetAdminOrigin: EnsureOrigin; + } + + #[pallet::storage] + #[pallet::getter(fn admin)] + pub type Admin = StorageValue<_, T::AccountId, OptionQuery>; + + #[pallet::storage] + #[pallet::getter(fn relayers)] + pub type Relayers = + CountedStorageMap<_, Twox64Concat, T::AccountId, (), OptionQuery>; + + #[pallet::type_value] + pub fn DefaultRelayerThresholdValue() -> u32 { + DEFAULT_RELAYER_THRESHOLD + } + + #[pallet::storage] + #[pallet::getter(fn relayer_threshold)] + pub type RelayerThreshold = StorageValue<_, u32, ValueQuery, DefaultRelayerThresholdValue>; + + #[pallet::storage] + #[pallet::getter(fn asset_symbol)] + pub type ResourceIds = + StorageMap<_, Twox64Concat, ResourceId, ChainAsset, OptionQuery>; + + #[pallet::storage] + #[pallet::getter(fn pay_in_pair)] + pub type PayInPair = + StorageMap<_, Blake2_128Concat, (T::AssetKind, ChainType), (), OptionQuery>; + + // TODO: later we can allow pay the fee with other assets + #[pallet::storage] + #[pallet::getter(fn pay_in_fee)] + pub type PayInFee = StorageDoubleMap< + _, + Blake2_128Concat, + T::AssetKind, + Blake2_128Concat, + ChainType, + T::Balance, + OptionQuery, + >; + + #[pallet::storage] + #[pallet::getter(fn pay_in_nonce)] + pub type PayInNonce = StorageMap<_, Twox64Concat, ChainType, Nonce, ValueQuery>; + + /// Finalized nonce for a given `ChainType` - we track this to avoid storing finalized + /// requests in the chain storage indefinitely. + /// + /// Payout request whose nonce is smaller or equal to this nonce, should be considered finalized + /// and can thus be removed from storage. + /// + /// This nonce should only be pumped if **all** previous requests are finalized too. + #[pallet::storage] + #[pallet::getter(fn finalized_pay_out_nonce)] + pub type FinalizedPayOutNonce = + StorageMap<_, Twox64Concat, ChainType, Nonce, ValueQuery>; + + /// Finalized (highest) nonce for a vote, it should always be greater than or equal to FinalizedPayOutNonce + /// It doesn't mean all votes with smaller nonce are finalized, it just provides an upper bound + /// when bumping FinalizedPayOutNonce + #[pallet::storage] + #[pallet::getter(fn finalized_vote_nonce)] + pub type FinalizedVoteNonce = + StorageMap<_, Twox64Concat, ChainType, Nonce, ValueQuery>; + + #[pallet::storage] + #[pallet::getter(fn pay_out_hashes)] + pub type PayOutHashes = StorageDoubleMap< + _, + Twox64Concat, + ChainType, + Twox64Concat, + Nonce, + Vec, + OptionQuery, + >; + + #[pallet::storage] + #[pallet::getter(fn pay_out_votes)] + pub type PayOutVotes = + StorageMap<_, Blake2_128Concat, PayOutRequestHash, PayOutVote, OptionQuery>; + + #[pallet::storage] + #[pallet::getter(fn pay_out_requests)] + pub type PayOutRequests = StorageMap< + _, + Blake2_128Concat, + PayOutRequestHash, + PayOutRequest, + OptionQuery, + >; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + /// Admins was set + AdminSet { new_admin: Option }, + /// Relayer added + RelayerAdded { who: T::AccountId }, + /// Relayer removed + RelayerRemoved { who: T::AccountId }, + /// Relayer threshold set + RelayerThresholdSet { threshold: u32 }, + /// Some pay in pair is added + PayInPairAdded { asset: T::AssetKind, dest_chain: ChainType }, + /// Some pay in pair is removed + PayInPairRemoved { asset: T::AssetKind, dest_chain: ChainType }, + /// Some resource id is set + ResourceIdSet { resource_id: ResourceId, chain_asset: ChainAsset }, + /// Some resource id is removed + ResourceIdRemoved { resource_id: ResourceId }, + /// PayIn fee is set + PayInFeeSet { asset: T::AssetKind, dest_chain: ChainType, fee: T::Balance }, + /// The payout nonce for global finalization is updated + FinalizedPayOutNonceUpdated { source_chain: ChainType, nonce: Nonce }, + /// The finalized vote nonce is updated + FinalizedVoteNonceUpdated { source_chain: ChainType, nonce: Nonce }, + /// Someone paid in tokens, they will be paid out on the other side of the bridge + /// This event together with payout events don't have nested structure to: + /// 1. have a clearer display + /// 2. apply any required adjustments (e.g. amount) + PaidIn { + source_account: T::AccountId, + nonce: Nonce, + asset: T::AssetKind, + resource_id: ResourceId, + dest_chain: ChainType, + dest_account: Vec, + amount: T::Balance, + }, + /// Some payout request is voted + PayOutVoted { + who: T::AccountId, // relayer + source_chain: ChainType, + nonce: Nonce, + asset: T::AssetKind, + dest_account: T::AccountId, + amount: T::Balance, + aye: bool, + }, + /// Some payout request is rejected + PayOutRejected { + source_chain: ChainType, + nonce: Nonce, + asset: T::AssetKind, + dest_account: T::AccountId, + amount: T::Balance, + }, + /// Some payout request is successfully executed + PaidOut { + source_chain: ChainType, + nonce: Nonce, + asset: T::AssetKind, + dest_account: T::AccountId, + amount: T::Balance, + }, + } + + #[pallet::error] + pub enum Error { + RequireAdminOrRoot, + RequireRelayer, + ThresholdInvalid, + ChainTypeInvalid, + ResourceIdNotExist, + PayInNonceOverflow, + PayInPairNotAllowed, + PayInPairNotExist, + PayInFeeNotSet, + PayInAmountTooLow, + PayOutNonceFinalized, + PayOutVoteFinalized, + PayOutVoteCommitted, + FinalizedPayOutNonceOverflow, + } + + #[pallet::genesis_config] + pub struct GenesisConfig { + pub admin: Option, + pub default_relayers: Vec, + } + + impl Default for GenesisConfig { + fn default() -> Self { + Self { admin: None, default_relayers: vec![] } + } + } + + #[pallet::genesis_build] + impl BuildGenesisConfig for GenesisConfig { + fn build(&self) { + if let Some(ref admin) = self.admin { + Admin::::put(admin); + } + for r in &self.default_relayers { + Relayers::::insert(r, ()); + } + } + } + + #[pallet::call] + impl Pallet { + #[pallet::call_index(0)] + #[pallet::weight((2 * T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn set_admin( + origin: OriginFor, + new_admin: T::AccountId, + ) -> DispatchResultWithPostInfo { + T::SetAdminOrigin::ensure_origin(origin)?; + Admin::::put(new_admin.clone()); + Self::deposit_event(Event::AdminSet { new_admin: Some(new_admin) }); + Ok(Pays::No.into()) + } + + #[pallet::call_index(1)] + #[pallet::weight((T::DbWeight::get().write, DispatchClass::Normal, Pays::Yes))] + pub fn pay_in( + origin: OriginFor, + req: PayInRequest, + ) -> DispatchResultWithPostInfo { + let who = ensure_signed(origin)?; + let nonce = Self::next_pay_in_nonce(&req.dest_chain)?; + ensure!( + PayInPair::::get((&req.asset, &req.dest_chain)).is_some(), + Error::::PayInPairNotAllowed + ); + + // Note the resource_id is always calculated from this chain + let resource_id = + ChainAsset { asset: req.asset.clone(), chain: ChainType::Heima }.to_resource_id(); + + let fee = PayInFee::::get(&req.asset, &req.dest_chain) + .ok_or(Error::::PayInFeeNotSet)?; + let burn_amount = T::Assets::burn_from( + req.asset.clone(), + &who, + req.amount, + Preservation::Expendable, + Precision::Exact, + Fortitude::Polite, + )?; + ensure!(burn_amount > fee, Error::::PayInAmountTooLow); + + // TODO: we could define a `OnChargeFee` trait and outsource the fee charging to runtime + T::Assets::mint_into(req.asset.clone(), &T::TreasuryAccount::get(), fee)?; + + Self::deposit_event(Event::PaidIn { + source_account: who, + nonce, + asset: req.asset, + resource_id, + dest_chain: req.dest_chain, + dest_account: req.dest_account, + amount: burn_amount - fee, + }); + Ok(().into()) + } + + #[pallet::call_index(2)] + #[pallet::weight((T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn request_pay_out( + origin: OriginFor, + req: PayOutRequest, + aye: bool, + ) -> DispatchResultWithPostInfo { + let who = ensure_signed(origin)?; + ensure!(Self::is_relayer(&who), Error::::RequireRelayer); + ensure!(req.source_chain != ChainType::Heima, Error::::ChainTypeInvalid); + ensure!( + req.nonce > FinalizedPayOutNonce::::get(&req.source_chain), + Error::::PayOutNonceFinalized + ); + + let hash = req.hash(); + let chain_asset = + ResourceIds::::get(req.resource_id).ok_or(Error::::ResourceIdNotExist)?; + ensure!(chain_asset.chain == ChainType::Heima, Error::::ChainTypeInvalid); + + // vote + let mut vote = match PayOutVotes::::get(hash) { + Some(v) => v, + None => PayOutVote { ayes: vec![], nays: vec![], status: VoteStatus::Pending }, + }; + + ensure!(!vote.is_finalized(), Error::::PayOutVoteFinalized); + ensure!(!vote.has_voted(&who), Error::::PayOutVoteCommitted); + + if aye { + vote.ayes.push(who.clone()); + } else { + vote.nays.push(who.clone()); + } + + Self::deposit_event(Event::PayOutVoted { + who: who.clone(), + source_chain: req.source_chain.clone(), + nonce: req.nonce, + asset: chain_asset.asset.clone(), + dest_account: req.dest_account.clone(), + amount: req.amount, + aye, + }); + + // try to finalise + let threshold = Self::relayer_threshold(); + let total = Relayers::::count(); + + let status = vote.try_finalize(threshold, total); + PayOutVotes::::insert(hash, vote.clone()); + PayOutRequests::::insert(hash, req.clone()); + let mut hashes = match PayOutHashes::::get(&req.source_chain, req.nonce) { + Some(hashes) => hashes, + None => vec![hash], + }; + + if !hashes.contains(&hash) { + hashes.push(hash); + } + PayOutHashes::::insert(&req.source_chain, req.nonce, hashes); + + match status { + VoteStatus::Passed => Self::do_pay_out( + req.source_chain.clone(), + req.nonce, + chain_asset.asset.clone(), + req.dest_account.clone(), + req.amount, + )?, + VoteStatus::Failed => Self::deposit_event(Event::PayOutRejected { + source_chain: req.source_chain.clone(), + nonce: req.nonce, + asset: chain_asset.asset, + dest_account: req.dest_account.clone(), + amount: req.amount, + }), + _ => (), + } + + if vote.is_finalized() { + Self::do_post_finalize(&req)?; + } + + Ok(Pays::No.into()) + } + + #[pallet::call_index(3)] + #[pallet::weight((T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn add_relayer(origin: OriginFor, who: T::AccountId) -> DispatchResultWithPostInfo { + Self::ensure_admin_or_root(origin)?; + Relayers::::insert(&who, ()); + Self::deposit_event(Event::RelayerAdded { who }); + Ok(Pays::No.into()) + } + + #[pallet::call_index(4)] + #[pallet::weight((T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn remove_relayer( + origin: OriginFor, + who: T::AccountId, + ) -> DispatchResultWithPostInfo { + Self::ensure_admin_or_root(origin)?; + ensure!(Self::is_relayer(&who), Error::::RequireRelayer); + Relayers::::remove(&who); + Self::deposit_event(Event::RelayerRemoved { who }); + Ok(Pays::No.into()) + } + + #[pallet::call_index(5)] + #[pallet::weight((T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn set_pay_in_fee( + origin: OriginFor, + asset: T::AssetKind, + dest_chain: ChainType, + fee: T::Balance, + ) -> DispatchResultWithPostInfo { + Self::ensure_admin_or_root(origin)?; + PayInFee::::insert(&asset, &dest_chain, fee); + Self::deposit_event(Event::PayInFeeSet { asset, dest_chain, fee }); + Ok(Pays::No.into()) + } + + #[pallet::call_index(6)] + #[pallet::weight((2 * T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn set_resource_id( + origin: OriginFor, + resource_id: ResourceId, + chain_asset: ChainAsset, + ) -> DispatchResultWithPostInfo { + Self::ensure_admin_or_root(origin.clone())?; + ResourceIds::::insert(resource_id, chain_asset.clone()); + Self::deposit_event(Event::ResourceIdSet { resource_id, chain_asset }); + Ok(Pays::No.into()) + } + + #[pallet::call_index(7)] + #[pallet::weight((2 * T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn remove_resource_id( + origin: OriginFor, + resource_id: ResourceId, + ) -> DispatchResultWithPostInfo { + Self::ensure_admin_or_root(origin)?; + ensure!(ResourceIds::::contains_key(resource_id), Error::::ResourceIdNotExist); + ResourceIds::::remove(resource_id); + Self::deposit_event(Event::ResourceIdRemoved { resource_id }); + Ok(Pays::No.into()) + } + + #[pallet::call_index(8)] + #[pallet::weight((2 * T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn set_relayer_threshold( + origin: OriginFor, + threshold: u32, + ) -> DispatchResultWithPostInfo { + Self::ensure_admin_or_root(origin)?; + ensure!(threshold > 0, Error::::ThresholdInvalid); + RelayerThreshold::::put(threshold); + Self::deposit_event(Event::RelayerThresholdSet { threshold }); + Ok(Pays::No.into()) + } + + #[pallet::call_index(9)] + #[pallet::weight((2 * T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn add_pay_in_pair( + origin: OriginFor, + asset: T::AssetKind, + dest_chain: ChainType, + ) -> DispatchResultWithPostInfo { + Self::ensure_admin_or_root(origin)?; + PayInPair::::insert((&asset, &dest_chain), ()); + Self::deposit_event(Event::PayInPairAdded { asset, dest_chain }); + Ok(Pays::No.into()) + } + + #[pallet::call_index(10)] + #[pallet::weight((2 * T::DbWeight::get().write, DispatchClass::Normal, Pays::No))] + pub fn remove_pay_in_pair( + origin: OriginFor, + asset: T::AssetKind, + dest_chain: ChainType, + ) -> DispatchResultWithPostInfo { + Self::ensure_admin_or_root(origin)?; + ensure!( + PayInPair::::get((&asset, &dest_chain)).is_some(), + Error::::PayInPairNotExist + ); + PayInPair::::remove((&asset, &dest_chain)); + Self::deposit_event(Event::PayInPairRemoved { asset, dest_chain }); + Ok(Pays::No.into()) + } + } + + impl Pallet { + fn ensure_admin_or_root(origin: OriginFor) -> DispatchResult { + ensure!( + ensure_root(origin.clone()).is_ok() + || Some(ensure_signed(origin)?) == Self::admin(), + Error::::RequireAdminOrRoot + ); + Ok(()) + } + + /// The derived AccountId for the pallet + pub fn account_id() -> T::AccountId { + MODULE_ID.into_account_truncating() + } + + pub fn is_relayer(who: &T::AccountId) -> bool { + Relayers::::contains_key(who) + } + + fn next_pay_in_nonce(chain: &ChainType) -> Result> { + let nonce = Self::pay_in_nonce(chain); + let nonce = nonce.checked_add(1).ok_or(Error::::PayInNonceOverflow)?; + PayInNonce::::insert(chain, nonce); + Ok(nonce) + } + + fn do_pay_out( + source_chain: ChainType, + nonce: Nonce, + asset: T::AssetKind, + dest_account: T::AccountId, + amount: T::Balance, + ) -> DispatchResult { + // do actual payout + T::Assets::mint_into(asset.clone(), &dest_account, amount)?; + Self::deposit_event(Event::PaidOut { + source_chain, + nonce, + asset, + dest_account, + amount, + }); + Ok(()) + } + + fn do_post_finalize(req: &PayOutRequest) -> DispatchResult { + if req.nonce > Self::finalized_vote_nonce(&req.source_chain) { + FinalizedVoteNonce::::insert(&req.source_chain, req.nonce); + Self::deposit_event(Event::FinalizedVoteNonceUpdated { + source_chain: req.source_chain.clone(), + nonce: req.nonce, + }); + } + // Try to bump FinalizedPayOutNonce until a non-finalized vote + // TODO: weight-related: shall we set a max diff to avoid infinite/too many loops? + let mut n = Self::finalized_pay_out_nonce(&req.source_chain); + while n < Self::finalized_vote_nonce(&req.source_chain) { + let next_n = n.checked_add(1).ok_or(Error::::FinalizedPayOutNonceOverflow)?; + // we are lenient that we don't require `vote` to exist - in practice, it would mean + // some relayer didn't follow monotonically increasing pay out nonce (for some reason) + if let Some(hashes) = PayOutHashes::::get(&req.source_chain, next_n) { + if hashes.iter().any(|h| { + PayOutVotes::::get(h).map_or_else(|| false, |v| v.is_finalized()) + }) { + for h in hashes { + PayOutVotes::::remove(h); + PayOutRequests::::remove(h); + } + PayOutHashes::::remove(&req.source_chain, next_n); + n = next_n; + } else { + // nothing to do + break; + } + } else { + break; + } + } + + if n > Self::finalized_pay_out_nonce(&req.source_chain) { + FinalizedPayOutNonce::::insert(&req.source_chain, n); + Self::deposit_event(Event::FinalizedPayOutNonceUpdated { + source_chain: req.source_chain.clone(), + nonce: n, + }); + } + Ok(()) + } + } +} diff --git a/parachain/pallets/omni-bridge/src/mock.rs b/parachain/pallets/omni-bridge/src/mock.rs new file mode 100644 index 0000000000..f55a3c0354 --- /dev/null +++ b/parachain/pallets/omni-bridge/src/mock.rs @@ -0,0 +1,241 @@ +// Copyright 2020-2024 Trust Computing GmbH. +// This file is part of Litentry. +// +// Litentry is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Litentry is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Litentry. If not, see . + +use crate::{ + self as pallet_omni_bridge, ChainAsset, ChainType, Nonce, PayInRequest, PayOutRequest, + ResourceId, +}; +pub use frame_support::{ + assert_ok, derive_impl, parameter_types, + traits::{ + fungible::{self, NativeFromLeft, NativeOrWithId}, + AsEnsureOriginWithArg, ConstU32, ConstU64, + }, +}; +use sp_keyring::AccountKeyring; +use sp_runtime::{ + traits::{IdentifyAccount, IdentityLookup, Verify}, + BuildStorage, +}; + +pub type Signature = sp_runtime::MultiSignature; +pub type AccountId = <::Signer as IdentifyAccount>::AccountId; +pub type Balance = u64; +pub type AssetId = u32; + +pub const TEST_ASSET: AssetId = 1; + +pub fn alice() -> AccountId { + AccountKeyring::Alice.to_account_id() +} + +pub fn bob() -> AccountId { + AccountKeyring::Bob.to_account_id() +} + +pub fn charlie() -> AccountId { + AccountKeyring::Charlie.to_account_id() +} + +pub fn dave() -> AccountId { + AccountKeyring::Dave.to_account_id() +} + +pub fn native_pay_in_request() -> PayInRequest, Balance> { + new_pay_in_request(NativeOrWithId::Native, 10) +} + +pub fn asset_pay_in_request() -> PayInRequest, Balance> { + new_pay_in_request(NativeOrWithId::WithId(TEST_ASSET), 10) +} + +pub fn new_chain_asset(asset: NativeOrWithId) -> ChainAsset> { + ChainAsset { chain: ChainType::Heima, asset } +} + +pub fn native_resource_id() -> ResourceId { + new_chain_asset(NativeOrWithId::Native).to_resource_id() +} + +pub fn asset_resource_id() -> ResourceId { + new_chain_asset(NativeOrWithId::WithId(TEST_ASSET)).to_resource_id() +} + +pub fn native_pay_out_request(nonce: Nonce) -> PayOutRequest { + new_pay_out_request(nonce, NativeOrWithId::Native, 10) +} + +pub fn asset_pay_out_request(nonce: Nonce) -> PayOutRequest { + new_pay_out_request(nonce, NativeOrWithId::WithId(TEST_ASSET), 10) +} + +frame_support::construct_runtime!( + pub enum Test + { + System: frame_system, + Balances: pallet_balances, + Timestamp: pallet_timestamp, + Assets: pallet_assets, + OmniBridge: pallet_omni_bridge, + } +); + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl frame_system::Config for Test { + type AccountId = AccountId; + type Block = frame_system::mocking::MockBlock; + type AccountData = pallet_balances::AccountData; + type Lookup = IdentityLookup; +} + +parameter_types! { + pub const ExistentialDeposit: Balance = 1; +} + +#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig)] +impl pallet_balances::Config for Test { + type Balance = Balance; + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; +} + +impl pallet_timestamp::Config for Test { + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = ConstU64<10000>; + type WeightInfo = (); +} + +impl pallet_assets::Config for Test { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type AssetIdParameter = AssetId; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = frame_system::EnsureRoot; + type AssetDeposit = ConstU64<1>; + type AssetAccountDeposit = ConstU64<10>; + type MetadataDepositBase = ConstU64<1>; + type MetadataDepositPerByte = ConstU64<1>; + type ApprovalDeposit = ConstU64<1>; + type StringLimit = ConstU32<50>; + type Freezer = (); + type WeightInfo = (); + type CallbackHandle = (); + type Extra = (); + type RemoveItemsLimit = ConstU32<5>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); +} + +parameter_types! { + pub TreasuryAccount: AccountId = dave(); // Dave as the treasury +} + +// Keep it same as real runtime +impl pallet_omni_bridge::Config for Test { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetKind = NativeOrWithId; + type Assets = + fungible::UnionOf, AccountId>; + type TreasuryAccount = TreasuryAccount; + type SetAdminOrigin = frame_system::EnsureRoot; +} + +pub fn new_test_ext(should_init: bool) -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); + pallet_balances::GenesisConfig:: { + balances: vec![(alice(), 50), (bob(), 50), (charlie(), 50)], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext: sp_io::TestExternalities = t.into(); + ext.execute_with(|| { + System::set_block_number(1); + assert_ok!(OmniBridge::set_admin(RuntimeOrigin::root(), alice())); + assert_ok!(OmniBridge::add_relayer(RuntimeOrigin::signed(alice()), alice())); + assert_ok!(OmniBridge::add_relayer(RuntimeOrigin::signed(alice()), bob())); + assert_ok!(OmniBridge::add_relayer(RuntimeOrigin::signed(alice()), charlie())); + assert_ok!(Assets::force_create(RuntimeOrigin::root(), TEST_ASSET, bob(), true, 1)); + assert_ok!(Assets::mint(RuntimeOrigin::signed(bob()), TEST_ASSET, alice(), 100)); + assert_ok!(Assets::mint(RuntimeOrigin::signed(bob()), TEST_ASSET, bob(), 100)); + + if should_init { + assert_ok!(OmniBridge::set_resource_id( + RuntimeOrigin::signed(alice()), + new_chain_asset(NativeOrWithId::Native).to_resource_id(), + new_chain_asset(NativeOrWithId::Native) + )); + assert_ok!(OmniBridge::add_pay_in_pair( + RuntimeOrigin::signed(alice()), + NativeOrWithId::Native, + ChainType::Ethereum(0) + )); + assert_ok!(OmniBridge::set_pay_in_fee( + RuntimeOrigin::signed(alice()), + NativeOrWithId::Native, + ChainType::Ethereum(0), + 2 + )); + assert_ok!(OmniBridge::set_resource_id( + RuntimeOrigin::signed(alice()), + new_chain_asset(NativeOrWithId::WithId(TEST_ASSET)).to_resource_id(), + new_chain_asset(NativeOrWithId::WithId(TEST_ASSET)) + )); + assert_ok!(OmniBridge::add_pay_in_pair( + RuntimeOrigin::signed(alice()), + NativeOrWithId::WithId(TEST_ASSET), + ChainType::Ethereum(0) + )); + assert_ok!(OmniBridge::set_pay_in_fee( + RuntimeOrigin::signed(alice()), + NativeOrWithId::WithId(TEST_ASSET), + ChainType::Ethereum(0), + 3 + )); + } + }); + ext +} + +pub fn new_pay_in_request( + asset: NativeOrWithId, + amount: Balance, +) -> PayInRequest, Balance> { + PayInRequest { + asset, + dest_chain: ChainType::Ethereum(0), + dest_account: [1u8; 20].to_vec(), + amount, + } +} + +pub fn new_pay_out_request( + nonce: Nonce, + asset: NativeOrWithId, + amount: Balance, +) -> PayOutRequest { + PayOutRequest { + source_chain: ChainType::Ethereum(0), + nonce, + resource_id: new_chain_asset(asset).to_resource_id(), + dest_account: alice(), + amount, + } +} diff --git a/parachain/pallets/omni-bridge/src/tests.rs b/parachain/pallets/omni-bridge/src/tests.rs new file mode 100644 index 0000000000..561812b753 --- /dev/null +++ b/parachain/pallets/omni-bridge/src/tests.rs @@ -0,0 +1,637 @@ +// Copyright 2020-2024 Trust Computing GmbH. +// This file is part of Litentry. +// +// Litentry is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Litentry is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Litentry. If not, see . + +use crate::{mock::*, *}; +use frame_support::{assert_noop, assert_ok}; + +#[test] +fn default_threshold_works() { + new_test_ext(false).execute_with(|| { + assert_eq!(OmniBridge::relayer_threshold(), 1); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 0); + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 0); + assert_eq!( + hex::encode(native_resource_id()), + "9ee6dfb61a2fb903df487c401663825643bb825d41695e63df8af6162ab145a6".to_string() + ); + }); +} + +#[test] +fn pay_in_with_pay_in_pair_not_listed_fails() { + new_test_ext(false).execute_with(|| { + assert_noop!( + OmniBridge::pay_in(RuntimeOrigin::signed(alice()), native_pay_in_request()), + Error::::PayInPairNotAllowed + ); + }); +} + +#[test] +fn pay_in_with_pay_in_fee_not_set_fails() { + new_test_ext(false).execute_with(|| { + assert_ok!(OmniBridge::add_pay_in_pair( + RuntimeOrigin::signed(alice()), + NativeOrWithId::Native, + ChainType::Ethereum(0) + )); + assert_noop!( + OmniBridge::pay_in(RuntimeOrigin::signed(alice()), native_pay_in_request()), + Error::::PayInFeeNotSet + ); + }); +} + +#[test] +fn pay_in_with_too_low_pay_in_amount_fails() { + new_test_ext(true).execute_with(|| { + assert_ok!(OmniBridge::set_pay_in_fee( + RuntimeOrigin::signed(alice()), + NativeOrWithId::Native, + ChainType::Ethereum(0), + 11 // the requested pay-in amount can't cover the fee + )); + assert_noop!( + OmniBridge::pay_in(RuntimeOrigin::signed(alice()), native_pay_in_request()), + Error::::PayInAmountTooLow + ); + }); +} + +#[test] +fn pay_in_with_insufficient_funds_fails() { + new_test_ext(true).execute_with(|| { + let pay_in_request = new_pay_in_request(NativeOrWithId::Native, 51); + assert_noop!( + OmniBridge::pay_in(RuntimeOrigin::signed(alice()), pay_in_request), + DispatchError::Token(sp_runtime::TokenError::FundsUnavailable) + ); + }); +} + +#[test] +fn pay_in_works() { + new_test_ext(true).execute_with(|| { + assert_ok!(OmniBridge::pay_in(RuntimeOrigin::signed(alice()), native_pay_in_request())); + System::assert_last_event( + Event::PaidIn { + source_account: alice(), + nonce: 1, + asset: NativeOrWithId::Native, + resource_id: native_resource_id(), + dest_chain: ChainType::Ethereum(0), + dest_account: [1u8; 20].to_vec(), + amount: 8, // 10(amount) - 2(fee) + } + .into(), + ); + + assert_ok!(OmniBridge::pay_in(RuntimeOrigin::signed(alice()), asset_pay_in_request())); + System::assert_last_event( + Event::PaidIn { + source_account: alice(), + nonce: 2, // increased + asset: NativeOrWithId::WithId(TEST_ASSET), + resource_id: asset_resource_id(), + dest_chain: ChainType::Ethereum(0), + dest_account: [1u8; 20].to_vec(), + amount: 7, // 10(amount) - 3(fee) + } + .into(), + ); + + assert_eq!(Balances::free_balance(dave()), 2); // native pay-in fee + assert_eq!(Assets::balance(TEST_ASSET, dave()), 3); // asset pay-in fee + + assert_eq!(Balances::free_balance(alice()), 40); + assert_eq!(Assets::balance(TEST_ASSET, alice()), 90); + }); +} + +#[test] +fn pay_out_with_not_relayer_fails() { + new_test_ext(true).execute_with(|| { + assert_noop!( + OmniBridge::request_pay_out( + RuntimeOrigin::signed(dave()), + native_pay_out_request(1), + true, + ), + Error::::RequireRelayer + ); + }); +} + +#[test] +fn pay_out_with_wrong_source_chain_fails() { + new_test_ext(true).execute_with(|| { + let mut req = native_pay_out_request(1); + req.source_chain = ChainType::Heima; + assert_noop!( + OmniBridge::request_pay_out(RuntimeOrigin::signed(alice()), req, true,), + Error::::ChainTypeInvalid + ); + }); +} + +#[test] +fn pay_out_with_threshold_1_works() { + new_test_ext(true).execute_with(|| { + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(alice()), + native_pay_out_request(1), + true, + )); + let hash1 = native_pay_out_request(1).hash(); + assert_eq!(Balances::free_balance(alice()), 60); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 1); + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 1); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 1), None); + assert_eq!(OmniBridge::pay_out_votes(hash1), None); + assert_eq!(OmniBridge::pay_out_requests(hash1), None); + + System::assert_has_event( + Event::PayOutVoted { + who: alice(), + source_chain: ChainType::Ethereum(0), + nonce: 1, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + aye: true, + } + .into(), + ); + System::assert_has_event( + Event::PaidOut { + source_chain: ChainType::Ethereum(0), + nonce: 1, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + } + .into(), + ); + + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(bob()), + asset_pay_out_request(2), + true, + )); + let hash2 = asset_pay_out_request(2).hash(); + assert_eq!(Assets::balance(TEST_ASSET, alice()), 110); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 2); + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 2); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 2), None); + assert_eq!(OmniBridge::pay_out_votes(hash2), None); + assert_eq!(OmniBridge::pay_out_requests(hash2), None); + + // alice relaying the same request will error out + assert_noop!( + OmniBridge::request_pay_out( + RuntimeOrigin::signed(alice()), + asset_pay_out_request(2), + true, + ), + Error::::PayOutNonceFinalized + ); + + // bob requests with nay + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(bob()), + native_pay_out_request(3), + false, + )); + let hash3 = native_pay_out_request(3).hash(); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 2); + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 2); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 3), Some(vec![hash3])); + assert_eq!( + OmniBridge::pay_out_votes(hash3), + Some(PayOutVote { ayes: vec![], nays: vec![bob()], status: VoteStatus::Pending }) + ); + assert_eq!(OmniBridge::pay_out_requests(hash3), Some(native_pay_out_request(3))); + + // charlie approves it + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(charlie()), + native_pay_out_request(3), + true, + )); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 3); + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 3); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 2), None); + assert_eq!(OmniBridge::pay_out_votes(hash3), None); + assert_eq!(OmniBridge::pay_out_requests(hash3), None); + + assert_eq!(Balances::free_balance(alice()), 70); + System::assert_has_event( + Event::PaidOut { + source_chain: ChainType::Ethereum(0), + nonce: 3, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + } + .into(), + ); + + // charlie sends request with non-consecutive nonce (3 -> 6), which is allowed here, + // but it probably implies some internal error with charlie + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(charlie()), + native_pay_out_request(6), + true, + )); + let hash4 = native_pay_out_request(4).hash(); + let hash5 = native_pay_out_request(5).hash(); + let hash6 = native_pay_out_request(6).hash(); + + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 3); // blocked at 3 + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 6); // updated + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 4), None); + assert_eq!(OmniBridge::pay_out_votes(hash4), None); + assert_eq!(OmniBridge::pay_out_requests(hash4), None); + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 5), None); + assert_eq!(OmniBridge::pay_out_votes(hash5), None); + assert_eq!(OmniBridge::pay_out_requests(hash5), None); + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 6), Some(vec![hash6])); + assert_eq!( + OmniBridge::pay_out_votes(hash6), + Some(PayOutVote { ayes: vec![charlie()], nays: vec![], status: VoteStatus::Passed }) + ); + assert_eq!(OmniBridge::pay_out_requests(hash6), Some(native_pay_out_request(6))); + + assert_eq!(Balances::free_balance(alice()), 80); + + // alice sends request with nonce 4 + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(alice()), + native_pay_out_request(4), + true, + )); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 4); // updated to 4 + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 6); // unchanged + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 4), None); + assert_eq!(OmniBridge::pay_out_votes(hash4), None); + assert_eq!(OmniBridge::pay_out_requests(hash4), None); + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 5), None); + assert_eq!(OmniBridge::pay_out_votes(hash5), None); + assert_eq!(OmniBridge::pay_out_requests(hash5), None); + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 6), Some(vec![hash6])); + assert_eq!( + OmniBridge::pay_out_votes(hash6), + Some(PayOutVote { ayes: vec![charlie()], nays: vec![], status: VoteStatus::Passed }) + ); + assert_eq!(OmniBridge::pay_out_requests(hash6), Some(native_pay_out_request(6))); + + assert_eq!(Balances::free_balance(alice()), 90); + + // bob sends request with nonce 5 + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(alice()), + native_pay_out_request(5), + true, + )); + + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 6); // updated to 6 + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 6); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 4), None); + assert_eq!(OmniBridge::pay_out_votes(hash4), None); + assert_eq!(OmniBridge::pay_out_requests(hash4), None); + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 5), None); + assert_eq!(OmniBridge::pay_out_votes(hash5), None); + assert_eq!(OmniBridge::pay_out_requests(hash5), None); + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 6), None); + assert_eq!(OmniBridge::pay_out_votes(hash6), None); + assert_eq!(OmniBridge::pay_out_requests(hash6), None); + + assert_eq!(Balances::free_balance(alice()), 100); + }); +} + +#[test] +fn pay_out_with_threshold_2_works() { + new_test_ext(true).execute_with(|| { + assert_ok!(OmniBridge::set_relayer_threshold(RuntimeOrigin::root(), 2)); + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(alice()), + native_pay_out_request(1), + true, + )); + let hash1 = native_pay_out_request(1).hash(); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 0); + assert_eq!(Balances::free_balance(alice()), 50); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 1), Some(vec![hash1])); + assert_eq!( + OmniBridge::pay_out_votes(hash1), + Some(PayOutVote { ayes: vec![alice()], nays: vec![], status: VoteStatus::Pending }) + ); + assert_eq!(OmniBridge::pay_out_requests(hash1), Some(native_pay_out_request(1))); + System::assert_has_event( + Event::PayOutVoted { + who: alice(), + source_chain: ChainType::Ethereum(0), + nonce: 1, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + aye: true, + } + .into(), + ); + + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(bob()), + native_pay_out_request(1), + false, + )); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 0); + assert_eq!(Balances::free_balance(alice()), 50); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 1), Some(vec![hash1])); + assert_eq!( + OmniBridge::pay_out_votes(hash1), + Some(PayOutVote { + ayes: vec![alice()], + nays: vec![bob()], + status: VoteStatus::Pending, + }) + ); + assert_eq!(OmniBridge::pay_out_requests(hash1), Some(native_pay_out_request(1))); + System::assert_has_event( + Event::PayOutVoted { + who: bob(), + source_chain: ChainType::Ethereum(0), + nonce: 1, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + aye: false, + } + .into(), + ); + + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(charlie()), + native_pay_out_request(1), + true, + )); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 1); + assert_eq!(Balances::free_balance(alice()), 60); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 1), None); + assert_eq!(OmniBridge::pay_out_votes(hash1), None); + assert_eq!(OmniBridge::pay_out_requests(hash1), None); + System::assert_has_event( + Event::PayOutVoted { + who: charlie(), + source_chain: ChainType::Ethereum(0), + nonce: 1, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + aye: true, + } + .into(), + ); + System::assert_has_event( + Event::PaidOut { + source_chain: ChainType::Ethereum(0), + nonce: 1, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + } + .into(), + ); + + // alice requests with nonce 2, but a different request (with bob and charlie) + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(alice()), + asset_pay_out_request(2), + true, + )); + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(bob()), + native_pay_out_request(2), + true, + )); + + let hash2_asset = asset_pay_out_request(2).hash(); + let hash2_native = native_pay_out_request(2).hash(); + + // both requests are recorded + assert_eq!( + OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 2), + Some(vec![hash2_asset, hash2_native]) + ); + assert_eq!( + OmniBridge::pay_out_votes(hash2_asset), + Some(PayOutVote { ayes: vec![alice()], nays: vec![], status: VoteStatus::Pending }) + ); + assert_eq!( + OmniBridge::pay_out_votes(hash2_native), + Some(PayOutVote { ayes: vec![bob()], nays: vec![], status: VoteStatus::Pending }) + ); + assert_eq!(OmniBridge::pay_out_requests(hash2_asset), Some(asset_pay_out_request(2))); + assert_eq!(OmniBridge::pay_out_requests(hash2_native), Some(native_pay_out_request(2))); + + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(charlie()), + native_pay_out_request(2), + true, + )); + + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 2); // updated to 2 + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 2); + + assert_eq!(Balances::free_balance(alice()), 70); + assert_eq!(Assets::balance(TEST_ASSET, alice()), 100); + + // should be fully cleaned up + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 2), None); + assert_eq!(OmniBridge::pay_out_votes(hash2_asset), None); + assert_eq!(OmniBridge::pay_out_votes(hash2_native), None); + assert_eq!(OmniBridge::pay_out_requests(hash2_asset), None); + assert_eq!(OmniBridge::pay_out_requests(hash2_native), None); + }); +} + +#[test] +fn pay_out_with_threshold_2_fail_fast_works() { + new_test_ext(true).execute_with(|| { + assert_ok!(OmniBridge::set_relayer_threshold(RuntimeOrigin::root(), 2)); + let hash1 = native_pay_out_request(1).hash(); + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(alice()), + native_pay_out_request(1), + false, + )); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 0); + assert_eq!(Balances::free_balance(alice()), 50); + + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(bob()), + native_pay_out_request(1), + false, + )); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 1); + assert_eq!(Balances::free_balance(alice()), 50); + + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 1), None); + assert_eq!(OmniBridge::pay_out_votes(hash1), None); + assert_eq!(OmniBridge::pay_out_requests(hash1), None); + + System::assert_has_event( + Event::PayOutRejected { + source_chain: ChainType::Ethereum(0), + nonce: 1, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + } + .into(), + ); + }); +} + +// this test: +// - alice relays payout request 1, 2, 3 - all with aye +// - charlie relays payout request 1 with nay, 2 and 3 with aye +// - bob relays payout request with 1 with nay later +#[test] +fn pay_out_with_ahead_of_relayer_works() { + new_test_ext(true).execute_with(|| { + use std::collections::HashMap; + + let mut hashes = HashMap::new(); + for i in 1..4 { + hashes.insert(i, native_pay_out_request(i).hash()); + } + + assert_ok!(OmniBridge::set_relayer_threshold(RuntimeOrigin::root(), 2)); + for i in 1..4 { + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(alice()), + native_pay_out_request(i), + true, + )); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 0); + assert_eq!(Balances::free_balance(alice()), 50); + assert_eq!( + OmniBridge::pay_out_votes(hashes[&i]), + Some(PayOutVote { ayes: vec![alice()], nays: vec![], status: VoteStatus::Pending }) + ); + assert_eq!(OmniBridge::pay_out_requests(hashes[&i]), Some(native_pay_out_request(i))); + assert_eq!( + OmniBridge::pay_out_hashes(ChainType::Ethereum(0), i), + Some(vec![hashes[&i]]) + ); + } + + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(charlie()), + native_pay_out_request(1), + false, + )); + assert_eq!( + OmniBridge::pay_out_votes(hashes[&1]), + Some(PayOutVote { + ayes: vec![alice()], + nays: vec![charlie()], + status: VoteStatus::Pending, + }) + ); + + for i in 2..4 { + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(charlie()), + native_pay_out_request(i), + true, + )); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 0); // not updated + // request with nonce 2 and 3 should be passed and executed + assert_eq!( + OmniBridge::pay_out_votes(hashes[&i]), + Some(PayOutVote { + ayes: vec![alice(), charlie()], + nays: vec![], + status: VoteStatus::Passed, + }) + ); + assert_eq!( + OmniBridge::pay_out_hashes(ChainType::Ethereum(0), i), + Some(vec![hashes[&i]]) + ); + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), i); + System::assert_has_event( + Event::FinalizedVoteNonceUpdated { source_chain: ChainType::Ethereum(0), nonce: i } + .into(), + ); + } + assert_eq!( + OmniBridge::pay_out_votes(hashes[&1]), + Some(PayOutVote { + ayes: vec![alice()], + nays: vec![charlie()], + status: VoteStatus::Pending, + }) + ); + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), 1), Some(vec![hashes[&1]])); + + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 3); + assert_eq!(Balances::free_balance(alice()), 70); + + assert_ok!(OmniBridge::request_pay_out( + RuntimeOrigin::signed(bob()), + native_pay_out_request(1), + false, + )); + assert_eq!(Balances::free_balance(alice()), 70); + assert_eq!(OmniBridge::finalized_vote_nonce(ChainType::Ethereum(0)), 3); + assert_eq!(OmniBridge::finalized_pay_out_nonce(ChainType::Ethereum(0)), 3); // updated to 3 + + // should be fully cleaned up + for i in 1..4 { + assert_eq!(OmniBridge::pay_out_hashes(ChainType::Ethereum(0), i), None); + assert_eq!(OmniBridge::pay_out_votes(hashes[&i]), None); + assert_eq!(OmniBridge::pay_out_requests(hashes[&i]), None); + } + System::assert_has_event( + Event::FinalizedPayOutNonceUpdated { source_chain: ChainType::Ethereum(0), nonce: 3 } + .into(), + ); + System::assert_has_event( + Event::PayOutRejected { + source_chain: ChainType::Ethereum(0), + nonce: 1, + asset: NativeOrWithId::Native, + dest_account: alice(), + amount: 10, + } + .into(), + ); + }); +} diff --git a/parachain/runtime/common/Cargo.toml b/parachain/runtime/common/Cargo.toml index d77a81b179..7413fb56d0 100644 --- a/parachain/runtime/common/Cargo.toml +++ b/parachain/runtime/common/Cargo.toml @@ -49,6 +49,7 @@ pallet-asset-manager = { workspace = true } pallet-extrinsic-filter = { workspace = true } pallet-group = { workspace = true } pallet-omni-account = { workspace = true } +pallet-omni-bridge = { workspace = true } pallet-teebag = { workspace = true } [features] @@ -72,6 +73,7 @@ std = [ "pallet-message-queue/std", "pallet-multisig/std", "pallet-omni-account/std", + "pallet-omni-bridge/std", "pallet-teebag/std", "pallet-transaction-payment/std", "pallet-treasury/std", @@ -90,6 +92,8 @@ std = [ "xcm-builder/std", "xcm-executor/std", "xcm/std", + "polkadot-parachain-primitives/std", + "scale-info/std", ] runtime-benchmarks = [ @@ -116,6 +120,7 @@ runtime-benchmarks = [ "sp-runtime/runtime-benchmarks", "xcm-builder/runtime-benchmarks", "xcm-executor/runtime-benchmarks", + "pallet-omni-bridge/runtime-benchmarks", ] try-runtime = [ @@ -140,6 +145,7 @@ try-runtime = [ "parachain-info/try-runtime", "polkadot-runtime-parachains/try-runtime", "sp-runtime/try-runtime", + "pallet-omni-bridge/try-runtime", ] tests = ["std", "xcm-simulator"] diff --git a/parachain/runtime/common/src/lib.rs b/parachain/runtime/common/src/lib.rs index e7f498b08e..1c048a33f3 100644 --- a/parachain/runtime/common/src/lib.rs +++ b/parachain/runtime/common/src/lib.rs @@ -301,3 +301,29 @@ where } pub type EnsureOmniAccount = pallet_omni_account::EnsureOmniAccount; + +pub struct EnsureOmniBridgeRelayer(PhantomData); +impl EnsureOrigin for EnsureOmniBridgeRelayer +where + T: frame_system::Config + pallet_omni_bridge::Config, + ::AccountId: From<[u8; 32]>, + ::Hash: From<[u8; 32]>, +{ + type Success = T::AccountId; + fn try_origin(o: T::RuntimeOrigin) -> Result { + o.into().and_then(|o| match o { + frame_system::RawOrigin::Signed(who) + if pallet_omni_bridge::Relayers::::get(&who).is_some() => + { + Ok(who) + }, + r => Err(T::RuntimeOrigin::from(r)), + }) + } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + let zero_account_id: T::AccountId = [0u8; 32].into(); + Ok((frame_system::RawOrigin::Signed(zero_account_id)).into()) + } +} diff --git a/parachain/runtime/litentry/src/asset_config.rs b/parachain/runtime/litentry/src/asset_config.rs index 535a05c253..b47c56a1a4 100644 --- a/parachain/runtime/litentry/src/asset_config.rs +++ b/parachain/runtime/litentry/src/asset_config.rs @@ -14,9 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Litentry. If not, see . -use super::{ - weights, AccountId, AssetId, Balance, Balances, Runtime, RuntimeEvent, TreasuryPalletId, -}; +use super::{weights, AccountId, AssetId, Balance, Balances, Runtime, RuntimeEvent}; use crate::{ constants::currency::deposit, precompiles::ASSET_PRECOMPILE_ADDRESS_PREFIX, Decode, Encode, }; @@ -33,7 +31,6 @@ use runtime_common::{ }; use scale_info::TypeInfo; use sp_core::{ConstU128, H160}; -use sp_runtime::traits::AccountIdConversion; use sp_std::prelude::*; pub fn get_all_module_accounts() -> Vec { @@ -51,10 +48,6 @@ impl> pallet_assets::BenchmarkHelper. use super::{ - weights, AccountId, AssetId, Balance, Balances, Runtime, RuntimeEvent, TreasuryPalletId, + weights, AccountId, AssetId, Balance, Balances, EnsureRootOrAllTechnicalCommittee, Runtime, + RuntimeEvent, }; use crate::{ constants::currency::deposit, precompiles::ASSET_PRECOMPILE_ADDRESS_PREFIX, Decode, Encode, @@ -24,16 +25,11 @@ use frame_support::{ parameter_types, traits::{AsEnsureOriginWithArg, ConstU32, NeverEnsureOrigin}, }; -use frame_system::EnsureRoot; use pallet_evm_precompile_assets_erc20::AddressToAssetId; use parity_scale_codec::Compact; -use runtime_common::{ - currency::{DOLLARS, EXISTENTIAL_DEPOSIT}, - EnsureRootOrHalfCouncil, -}; +use runtime_common::currency::{DOLLARS, EXISTENTIAL_DEPOSIT}; use scale_info::TypeInfo; use sp_core::{ConstU128, H160}; -use sp_runtime::traits::AccountIdConversion; use sp_std::prelude::*; pub fn get_all_module_accounts() -> Vec { @@ -51,10 +47,6 @@ impl> pallet_assets::BenchmarkHelper>; - type ForceOrigin = EnsureRoot; + type CreateOrigin = AsEnsureOriginWithArg>; // will be created internally for now + type ForceOrigin = EnsureRootOrAllTechnicalCommittee; type AssetDeposit = AssetDeposit; type MetadataDepositBase = MetadataDepositBase; type MetadataDepositPerByte = MetadataDepositPerByte; @@ -102,7 +92,7 @@ impl pallet_assets::Config for Runtime { type StringLimit = AssetsStringLimit; type Freezer = (); type Extra = (); - type WeightInfo = pallet_assets::weights::SubstrateWeight; + type WeightInfo = (); type RemoveItemsLimit = ConstU32<1000>; type AssetIdParameter = Compact; type CallbackHandle = (); @@ -120,7 +110,7 @@ impl pallet_asset_manager::Config for Runtime { type Balance = Balance; type AssetId = AssetId; type ForeignAssetType = ForeignAssetType; // TODO - type ForeignAssetModifierOrigin = EnsureRootOrHalfCouncil; + type ForeignAssetModifierOrigin = EnsureRootOrAllTechnicalCommittee; type Currency = Balances; type WeightInfo = weights::pallet_asset_manager::WeightInfo; } diff --git a/parachain/runtime/paseo/src/lib.rs b/parachain/runtime/paseo/src/lib.rs index 107e9cfc55..b476273f2d 100644 --- a/parachain/runtime/paseo/src/lib.rs +++ b/parachain/runtime/paseo/src/lib.rs @@ -32,7 +32,7 @@ use frame_support::{ genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ - fungible::{Balanced, Credit, HoldConsideration}, + fungible::{self, Balanced, Credit, HoldConsideration, NativeFromLeft, NativeOrWithId}, tokens::imbalance::ResolveTo, tokens::{PayFromAccount, UnityAssetBalanceConversion}, ConstBool, ConstU128, ConstU32, ConstU64, ConstU8, Contains, ContainsLengthBound, @@ -235,7 +235,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_name: create_runtime_str!("paseo-parachain"), authoring_version: 1, // same versioning-mechanism as polkadot: use last digit for minor updates - spec_version: 9221, + spec_version: 9223, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -723,7 +723,7 @@ impl pallet_treasury::Config for Runtime { type BurnDestination = (); type SpendFunds = Bounties; type MaxApprovals = ConstU32<64>; - type AssetKind = (); // Only native asset is supported + type AssetKind = (); // Only native asset is supported - TODO: expand it to MultiAssets when required type Beneficiary = AccountId; type BeneficiaryLookup = IdentityLookup; type Paymaster = PayFromAccount>; @@ -1255,6 +1255,16 @@ impl pallet_omni_account::Config for Runtime { type Permission = OmniAccountPermission; } +impl pallet_omni_bridge::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetKind = NativeOrWithId; // No XCM assets for now + type Assets = + fungible::UnionOf, AccountId>; + type TreasuryAccount = TreasuryAccount; + type SetAdminOrigin = EnsureRootOrHalfCouncil; +} + impl pallet_bitacross::Config for Runtime { type RuntimeEvent = RuntimeEvent; type TEECallOrigin = EnsureEnclaveSigner; @@ -1474,6 +1484,7 @@ construct_runtime! { AssetsHandler: pallet_assets_handler = 76, OmniAccount: pallet_omni_account = 84, + OmniBridge: pallet_omni_bridge = 85, // TEE Teebag: pallet_teebag = 93, @@ -1596,6 +1607,7 @@ impl Contains for NormalModeFilter { RuntimeCall::EvmAssertions(_) | RuntimeCall::ScoreStaking(_) | RuntimeCall::OmniAccount(_) | + RuntimeCall::OmniBridge(_) | // CollabAI RuntimeCall::Curator(_) | RuntimeCall::Guardian(_) |