diff --git a/Cargo.lock b/Cargo.lock index 79764ca1..d134d115 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,18 +23,18 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.28.1", + "gimli 0.31.1", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aead" @@ -48,9 +48,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -68,28 +68,17 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle 2.5.0", -] - -[[package]] -name = "ahash" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" -dependencies = [ - "getrandom 0.2.12", - "once_cell", - "version_check", + "subtle 2.6.1", ] [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.12", + "getrandom", "once_cell", "version_check", "zerocopy", @@ -97,18 +86,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "android-tzdata" @@ -136,47 +125,48 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -184,9 +174,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95" [[package]] name = "approx" @@ -199,16 +189,16 @@ dependencies = [ [[package]] name = "aquamarine" -version = "0.3.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.82", ] [[package]] @@ -251,18 +241,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ark-ed-on-bls12-381-bandersnatch" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-std", -] - [[package]] name = "ark-ff" version = "0.4.2" @@ -319,35 +297,6 @@ dependencies = [ "hashbrown 0.13.2", ] -[[package]] -name = "ark-scale" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bd73bb6ddb72630987d37fa963e99196896c0d0ea81b7c894567e74a2f83af" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "ark-secret-scalar" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=4b09416#4b09416fd23383ec436ddac127d58c7b7cd392c6" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", - "ark-transcript", - "digest 0.10.7", - "rand_core 0.6.4", - "zeroize", -] - [[package]] name = "ark-serialize" version = "0.4.2" @@ -378,60 +327,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-transcript" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=4b09416#4b09416fd23383ec436ddac127d58c7b7cd392c6" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "digest 0.10.7", - "rand_core 0.6.4", - "sha3", + "rand", ] [[package]] name = "array-bytes" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" - -[[package]] -name = "array-bytes" -version = "6.2.2" +version = "6.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" +checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.5.2" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] -name = "arrayvec" -version = "0.7.4" +name = "asn1-rs" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive 0.4.0", + "asn1-rs-impl 0.1.0", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] [[package]] name = "asn1-rs" -version = "0.5.2" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", + "asn1-rs-derive 0.5.1", + "asn1-rs-impl 0.2.0", "displaydoc", "nom", "num-traits", @@ -449,7 +389,19 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.82", + "synstructure 0.13.1", ] [[package]] @@ -463,6 +415,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.82", +] + [[package]] name = "assert_matches" version = "1.5.0" @@ -482,9 +445,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.0" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb41eb19024a91746eba0773aa5e16036045bbf45733766661099e182ea6a744" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" dependencies = [ "async-lock", "cfg-if", @@ -493,32 +456,32 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 0.38.30", + "rustix 0.38.37", "slab", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 4.0.3", + "event-listener 5.3.1", "event-listener-strategy", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -531,7 +494,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] @@ -544,78 +507,52 @@ dependencies = [ ] [[package]] -name = "atomic-write-file" -version = "0.1.2" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" -dependencies = [ - "nix 0.27.1", - "rand 0.8.5", -] +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] -name = "atty" -version = "0.2.14" +name = "attohttpc" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", + "http 0.2.12", + "log", + "url", ] [[package]] name = "auto_impl" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.82", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line 0.21.0", - "cc", + "addr2line 0.24.2", "cfg-if", "libc", "miniz_oxide", - "object 0.32.2", + "object 0.36.5", "rustc-demangle", -] - -[[package]] -name = "bandersnatch_vrfs" -version = "0.0.1" -source = "git+https://github.com/w3f/ring-vrf?rev=4b09416#4b09416fd23383ec436ddac127d58c7b7cd392c6" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff", - "ark-serialize", - "ark-std", - "dleq_vrf", - "fflonk", - "merlin 3.0.0", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "ring 0.1.0", - "sha2 0.10.8", - "zeroize", + "windows-targets 0.52.6", ] [[package]] @@ -642,6 +579,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "base64ct" version = "1.6.0" @@ -687,7 +630,7 @@ dependencies = [ "fp-rpc-debug", "fp-storage", "frame-benchmarking", - "futures 0.3.30", + "futures 0.3.31", "sc-chain-spec", "sc-client-api", "sc-consensus-grandpa", @@ -702,6 +645,7 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-core", + "sp-io", "sp-runtime", "substrate-prometheus-endpoint", "tokio", @@ -724,10 +668,7 @@ name = "bifrost-dev-constants" version = "1.0.0" dependencies = [ "bifrost-common-constants", - "bp-core", "frame-support", - "pallet-evm", - "sp-core", ] [[package]] @@ -752,7 +693,7 @@ dependencies = [ "fp-storage", "frame-benchmarking", "frame-benchmarking-cli", - "futures 0.3.30", + "futures 0.3.31", "hex-literal", "jsonrpsee", "pallet-bfc-staking", @@ -815,7 +756,6 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", - "hex-literal", "num_enum", "pallet-aura", "pallet-authorship", @@ -841,6 +781,7 @@ dependencies = [ "pallet-offences", "pallet-preimage", "pallet-relay-manager", + "pallet-safe-mode", "pallet-scheduler", "pallet-session", "pallet-sudo", @@ -848,6 +789,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", + "pallet-tx-pause", "pallet-utility", "parity-scale-codec", "precompile-balance", @@ -883,10 +825,7 @@ name = "bifrost-mainnet-constants" version = "1.0.0" dependencies = [ "bifrost-common-constants", - "bp-core", "frame-support", - "pallet-evm", - "sp-core", ] [[package]] @@ -911,7 +850,7 @@ dependencies = [ "fp-storage", "frame-benchmarking", "frame-benchmarking-cli", - "futures 0.3.30", + "futures 0.3.31", "hex-literal", "jsonrpsee", "pallet-bfc-staking", @@ -973,7 +912,6 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", - "hex-literal", "num_enum", "pallet-aura", "pallet-authorship", @@ -999,6 +937,7 @@ dependencies = [ "pallet-offences", "pallet-preimage", "pallet-relay-manager", + "pallet-safe-mode", "pallet-scheduler", "pallet-session", "pallet-sudo", @@ -1006,6 +945,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", + "pallet-tx-pause", "pallet-utility", "parity-scale-codec", "precompile-balance", @@ -1038,7 +978,7 @@ dependencies = [ [[package]] name = "bifrost-node" -version = "2.0.0" +version = "2.0.1" dependencies = [ "bifrost-common-node", "bifrost-dev-node", @@ -1053,6 +993,7 @@ dependencies = [ "sc-cli", "sc-consensus-grandpa", "sc-service", + "sp-runtime", "substrate-build-script-utils", ] @@ -1061,10 +1002,7 @@ name = "bifrost-testnet-constants" version = "1.0.0" dependencies = [ "bifrost-common-constants", - "bp-core", "frame-support", - "pallet-evm", - "sp-core", ] [[package]] @@ -1089,7 +1027,7 @@ dependencies = [ "fp-storage", "frame-benchmarking", "frame-benchmarking-cli", - "futures 0.3.30", + "futures 0.3.31", "hex-literal", "jsonrpsee", "pallet-bfc-staking", @@ -1151,7 +1089,6 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", - "hex-literal", "num_enum", "pallet-aura", "pallet-authorship", @@ -1177,6 +1114,7 @@ dependencies = [ "pallet-offences", "pallet-preimage", "pallet-relay-manager", + "pallet-safe-mode", "pallet-scheduler", "pallet-session", "pallet-sudo", @@ -1184,6 +1122,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", + "pallet-tx-pause", "pallet-utility", "parity-scale-codec", "precompile-balance", @@ -1235,20 +1174,20 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.16", + "prettyplease 0.2.24", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "bitcoin" -version = "0.31.1" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd00f3c09b5f21fb357abe32d29946eb8bb7a0862bae62c0b5e4a692acbbe73c" +checksum = "6c85783c2fe40083ea54a33aa2f0ba58831d90fcd190f5bdc47e74e84d2a96ae" dependencies = [ "bech32", "bitcoin-internals", @@ -1256,7 +1195,7 @@ dependencies = [ "core2 0.3.3", "hex-conservative", "hex_lit", - "secp256k1 0.28.2", + "secp256k1", ] [[package]] @@ -1284,9 +1223,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitvec" @@ -1328,7 +1267,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec", "constant_time_eq", ] @@ -1339,35 +1278,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec", "constant_time_eq", ] [[package]] name = "blake3" -version = "1.5.0" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec", "cc", "cfg-if", "constant_time_eq", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -1386,20 +1313,11 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "bounded-collections" -version = "0.1.9" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd" +checksum = "db436177db0d505b1507f03aca56a41442ae6efdf8b6eaa855d73e52c5b078dc" dependencies = [ "log", "parity-scale-codec", @@ -1424,7 +1342,6 @@ name = "bp-core" version = "0.0.1" dependencies = [ "fp-account", - "fp-self-contained", "sp-core", "sp-runtime", ] @@ -1433,11 +1350,9 @@ dependencies = [ name = "bp-staking" version = "0.0.1" dependencies = [ - "fp-self-contained", "frame-support", "parity-scale-codec", "scale-info", - "sp-core", "sp-runtime", "sp-staking", "sp-std", @@ -1451,34 +1366,13 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "tinyvec", ] -[[package]] -name = "bstr" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" -dependencies = [ - "lazy_static", - "memchr", - "regex-automata 0.1.10", -] - -[[package]] -name = "bstr" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "build-helper" version = "0.1.1" @@ -1490,9 +1384,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -1508,9 +1402,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" [[package]] name = "byteorder" @@ -1520,9 +1414,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "bzip2-sys" @@ -1547,18 +1441,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.6" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ "serde", ] @@ -1571,7 +1465,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.21", + "semver 1.0.23", "serde", "serde_json", "thiserror", @@ -1585,12 +1479,13 @@ checksum = "fd6c0e7b807d60291f42f33f58480c0bfafe28ed08286446f45e463728cf9c1c" [[package]] name = "cc" -version = "1.0.83" +version = "1.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -1604,9 +1499,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.6" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6100bc57b6209840798d95cb2775684849d332f7bd788db2a8c8caf7ef82a41a" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", ] @@ -1659,16 +1554,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.32" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41daef31d7a747c5c847246f36de49ced6f7403b4cdabc807a97b5cc184cda7a" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.6", ] [[package]] @@ -1679,9 +1574,22 @@ checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" dependencies = [ "core2 0.4.0", "multibase", - "multihash", + "multihash 0.17.0", + "serde", + "unsigned-varint 0.7.2", +] + +[[package]] +name = "cid" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" +dependencies = [ + "core2 0.4.0", + "multibase", + "multihash 0.18.1", "serde", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -1706,9 +1614,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", @@ -1717,9 +1625,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.18" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", "clap_derive", @@ -1727,33 +1635,34 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", "clap_lex", "strsim", + "terminal_size", ] [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "codespan-reporting" @@ -1767,35 +1676,29 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] -name = "comfy-table" -version = "7.1.0" +name = "combine" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ - "strum 0.25.0", - "strum_macros 0.25.3", - "unicode-width", + "bytes", + "memchr", ] [[package]] -name = "common" -version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224" +name = "comfy-table" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "fflonk", - "getrandom_or_panic", - "merlin 3.0.0", - "rand_chacha 0.3.1", + "strum 0.26.3", + "strum_macros 0.26.4", + "unicode-width", ] [[package]] @@ -1806,9 +1709,9 @@ checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -1822,6 +1725,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", + "unicode-width", "windows-sys 0.52.0", ] @@ -1833,9 +1737,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -1846,16 +1750,16 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.12", + "getrandom", "once_cell", "tiny-keccak", ] [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "constcat" @@ -1881,9 +1785,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -1914,9 +1818,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -1945,7 +1849,7 @@ dependencies = [ "gimli 0.27.3", "hashbrown 0.13.2", "log", - "regalloc2", + "regalloc2 0.6.1", "smallvec", "target-lexicon", ] @@ -2021,9 +1925,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.0.1" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" dependencies = [ "crc-catalog", ] @@ -2036,9 +1940,9 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] @@ -2073,9 +1977,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -2090,8 +1994,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", - "rand_core 0.6.4", - "subtle 2.5.0", + "rand_core", + "subtle 2.6.1", "zeroize", ] @@ -2102,7 +2006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array 0.14.7", - "rand_core 0.6.4", + "rand_core", "typenum", ] @@ -2123,68 +2027,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] -name = "crypto-mac" -version = "0.11.0" +name = "ctr" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.5.0", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ "cipher 0.4.4", ] [[package]] name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle 2.5.0", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle 2.5.0", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "platforms", "rustc_version", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -2196,14 +2063,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "cxx" -version = "1.0.115" +version = "1.0.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de00f15a6fa069c99b88c5c78c4541d0e7899a33b86f7480e23df2431fce0bc" +checksum = "cbdc8cca144dce1c4981b5c9ab748761619979e515c3d53b5df385c677d1d007" dependencies = [ "cc", "cxxbridge-flags", @@ -2213,9 +2080,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.115" +version = "1.0.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a71e1e631fa2f2f5f92e8b0d860a00c198c6771623a6cefcc863e3554f0d8d6" +checksum = "c5764c3142ab44fcf857101d12c0ddf09c34499900557c764f5ad0597159d1fc" dependencies = [ "cc", "codespan-reporting", @@ -2223,37 +2090,50 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "cxxbridge-flags" -version = "1.0.115" +version = "1.0.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3fed61d56ba497c4efef9144dfdbaa25aa58f2f6b3a7cf441d4591c583745c" +checksum = "d422aff542b4fa28c2ce8e5cc202d42dbf24702345c1fba3087b2d3f8a1b90ff" [[package]] name = "cxxbridge-macro" -version = "1.0.115" +version = "1.0.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8908e380a8efd42150c017b0cfa31509fc49b6d47f7cb6b33e93ffb8f4e3661e" +checksum = "a1719100f31492cd6adeeab9a0f46cdbc846e615fdb66d7b398aa46ec7fdd06f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", ] [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-encoding-macro" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2261,9 +2141,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" dependencies = [ "data-encoding", "syn 1.0.109", @@ -2271,9 +2151,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -2285,7 +2165,21 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs", + "asn1-rs 0.5.2", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der-parser" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" +dependencies = [ + "asn1-rs 0.6.2", "displaydoc", "nom", "num-bigint", @@ -2315,26 +2209,26 @@ dependencies = [ [[package]] name = "derive-syn-parse" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.82", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.82", ] [[package]] @@ -2370,7 +2264,7 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -2417,46 +2311,29 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", -] - -[[package]] -name = "dleq_vrf" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=4b09416#4b09416fd23383ec436ddac127d58c7b7cd392c6" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-scale", - "ark-secret-scalar", - "ark-serialize", - "ark-std", - "ark-transcript", - "arrayvec 0.7.4", - "rand_core 0.6.4", - "zeroize", + "syn 2.0.82", ] [[package]] name = "docify" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" dependencies = [ "common-path", "derive-syn-parse", @@ -2464,9 +2341,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.48", + "syn 2.0.82", "termcolor", - "toml 0.8.2", + "toml 0.8.19", "walkdir", ] @@ -2511,9 +2388,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -2525,6 +2402,7 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", + "serdect", "signature", "spki", ] @@ -2541,38 +2419,39 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek", "ed25519", - "rand_core 0.6.4", + "rand_core", "serde", "sha2 0.10.8", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] [[package]] name = "ed25519-zebra" -version = "3.1.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 3.2.0", - "hashbrown 0.12.3", + "curve25519-dalek", + "ed25519", + "hashbrown 0.14.5", "hex", - "rand_core 0.6.4", - "sha2 0.9.9", + "rand_core", + "sha2 0.10.8", "zeroize", ] [[package]] name = "either" -version = "1.9.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" dependencies = [ "serde", ] @@ -2590,9 +2469,10 @@ dependencies = [ "generic-array 0.14.7", "group", "pkcs8", - "rand_core 0.6.4", + "rand_core", "sec1", - "subtle 2.5.0", + "serdect", + "subtle 2.6.1", "zeroize", ] @@ -2608,30 +2488,42 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "enum-as-inner" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.82", +] + [[package]] name = "enumflags2" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -2661,9 +2553,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2696,20 +2588,20 @@ dependencies = [ [[package]] name = "ethereum" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89fb87a9e103f71b903b80b670200b54cc67a07578f070681f1fffb7396fb7" +checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" dependencies = [ "bytes", "ethereum-types", - "hash-db 0.15.2", + "hash-db", "hash256-std-hasher", "parity-scale-codec", "rlp", "scale-info", "serde", "sha3", - "triehash", + "trie-root", ] [[package]] @@ -2736,29 +2628,29 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "4.0.3" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "event-listener-strategy" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 4.0.3", - "pin-project-lite 0.2.13", + "event-listener 5.3.1", + "pin-project-lite", ] [[package]] name = "evm" -version = "0.39.1" -source = "git+https://github.com/bifrost-platform/evm?branch=bifrost-polkadot-v1.3.0#e14df5ea28a431ed17a828c6c2597e0ccedfb0e7" +version = "0.41.2" +source = "git+https://github.com/bifrost-platform/evm?branch=bifrost-polkadot-stable2407#e5ae66a5884d8b0914b4872c862dbb92e2bb05f8" dependencies = [ "auto_impl", "environmental", @@ -2777,8 +2669,8 @@ dependencies = [ [[package]] name = "evm-core" -version = "0.39.0" -source = "git+https://github.com/bifrost-platform/evm?branch=bifrost-polkadot-v1.3.0#e14df5ea28a431ed17a828c6c2597e0ccedfb0e7" +version = "0.41.0" +source = "git+https://github.com/bifrost-platform/evm?branch=bifrost-polkadot-stable2407#e5ae66a5884d8b0914b4872c862dbb92e2bb05f8" dependencies = [ "parity-scale-codec", "primitive-types", @@ -2788,8 +2680,8 @@ dependencies = [ [[package]] name = "evm-gasometer" -version = "0.39.0" -source = "git+https://github.com/bifrost-platform/evm?branch=bifrost-polkadot-v1.3.0#e14df5ea28a431ed17a828c6c2597e0ccedfb0e7" +version = "0.41.0" +source = "git+https://github.com/bifrost-platform/evm?branch=bifrost-polkadot-stable2407#e5ae66a5884d8b0914b4872c862dbb92e2bb05f8" dependencies = [ "environmental", "evm-core", @@ -2799,8 +2691,8 @@ dependencies = [ [[package]] name = "evm-runtime" -version = "0.39.0" -source = "git+https://github.com/bifrost-platform/evm?branch=bifrost-polkadot-v1.3.0#e14df5ea28a431ed17a828c6c2597e0ccedfb0e7" +version = "0.41.0" +source = "git+https://github.com/bifrost-platform/evm?branch=bifrost-polkadot-stable2407#e5ae66a5884d8b0914b4872c862dbb92e2bb05f8" dependencies = [ "auto_impl", "environmental", @@ -2812,7 +2704,7 @@ dependencies = [ [[package]] name = "evm-tracer" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum-types", "evm", @@ -2835,44 +2727,46 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", ] [[package]] name = "expander" -version = "2.0.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" dependencies = [ "blake2 0.10.6", + "file-guard", "fs-err", + "prettyplease 0.2.24", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] -name = "fake-simd" -version = "0.1.2" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fallible-iterator" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fc-api" version = "1.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "async-trait", "fp-storage", @@ -2884,7 +2778,7 @@ dependencies = [ [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "async-trait", "fp-consensus", @@ -2900,7 +2794,7 @@ dependencies = [ [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "async-trait", "ethereum", @@ -2909,12 +2803,12 @@ dependencies = [ "fp-consensus", "fp-rpc", "fp-storage", - "futures 0.3.30", + "futures 0.3.31", "kvdb-rocksdb", "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-client-db", "smallvec", @@ -2923,7 +2817,6 @@ dependencies = [ "sp-core", "sp-database", "sp-runtime", - "sp-storage", "sqlx", "tokio", ] @@ -2931,7 +2824,7 @@ dependencies = [ [[package]] name = "fc-evm-tracing" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum-types", "fp-rpc-debug", @@ -2940,22 +2833,23 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", + "sp-runtime", "sp-std", ] [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "fc-db", "fc-storage", "fp-consensus", "fp-rpc", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-utils", "sp-api", @@ -2969,7 +2863,7 @@ dependencies = [ [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", @@ -2981,7 +2875,7 @@ dependencies = [ "fp-evm", "fp-rpc", "fp-storage", - "futures 0.3.30", + "futures 0.3.31", "hex", "jsonrpsee", "libsecp256k1", @@ -2989,13 +2883,12 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "prometheus", - "rand 0.8.5", + "rand", "rlp", "rustc_version", "sc-client-api", "sc-consensus-aura", "sc-network", - "sc-network-common", "sc-network-sync", "sc-rpc", "sc-service", @@ -3010,6 +2903,7 @@ dependencies = [ "sp-consensus", "sp-consensus-aura", "sp-core", + "sp-externalities", "sp-inherents", "sp-io", "sp-runtime", @@ -3025,25 +2919,29 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", "jsonrpsee", + "rlp", "rustc-hex", "serde", "serde_json", + "sp-crypto-hashing", ] [[package]] name = "fc-rpc-core-debug" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ + "ethereum", "ethereum-types", "fc-evm-tracing", + "fc-rpc-core", "fc-rpc-core-types", - "futures 0.3.30", + "futures 0.3.31", "jsonrpsee", "serde", "serde_json", @@ -3053,12 +2951,12 @@ dependencies = [ [[package]] name = "fc-rpc-core-trace" version = "0.6.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum-types", "fc-evm-tracing", "fc-rpc-core-types", - "futures 0.3.30", + "futures 0.3.31", "jsonrpsee", "serde", "serde_json", @@ -3067,7 +2965,7 @@ dependencies = [ [[package]] name = "fc-rpc-core-txpool" version = "0.6.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", @@ -3080,7 +2978,7 @@ dependencies = [ [[package]] name = "fc-rpc-core-types" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum-types", "serde", @@ -3090,7 +2988,7 @@ dependencies = [ [[package]] name = "fc-rpc-debug" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", @@ -3104,7 +3002,7 @@ dependencies = [ "fc-storage", "fp-rpc", "fp-rpc-debug", - "futures 0.3.30", + "futures 0.3.31", "hex-literal", "jsonrpsee", "sc-client-api", @@ -3121,7 +3019,7 @@ dependencies = [ [[package]] name = "fc-rpc-trace" version = "0.6.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", @@ -3134,7 +3032,7 @@ dependencies = [ "fc-storage", "fp-rpc", "fp-rpc-debug", - "futures 0.3.30", + "futures 0.3.31", "jsonrpsee", "log", "sc-client-api", @@ -3157,7 +3055,7 @@ dependencies = [ [[package]] name = "fc-rpc-txpool" version = "0.6.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum-types", "fc-rpc", @@ -3180,7 +3078,7 @@ dependencies = [ [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", @@ -3189,7 +3087,6 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sp-api", - "sp-blockchain", "sp-io", "sp-runtime", "sp-storage", @@ -3197,11 +3094,12 @@ dependencies = [ [[package]] name = "fdlimit" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", + "thiserror", ] [[package]] @@ -3210,28 +3108,25 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core 0.6.4", - "subtle 2.5.0", + "rand_core", + "subtle 2.6.1", ] [[package]] -name = "fflonk" -version = "0.1.0" -source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "merlin 3.0.0", -] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] -name = "fiat-crypto" -version = "0.2.5" +name = "file-guard" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" +dependencies = [ + "libc", + "winapi", +] [[package]] name = "file-per-thread-logger" @@ -3245,14 +3140,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", + "libredox", + "windows-sys 0.59.0", ] [[package]] @@ -3262,12 +3157,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" dependencies = [ "either", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "scale-info", ] @@ -3278,7 +3173,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -3289,17 +3184,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "flate2" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" -dependencies = [ - "crc32fast", - "libz-sys", - "miniz_oxide", -] - [[package]] name = "float-cmp" version = "0.9.0" @@ -3311,9 +3195,9 @@ dependencies = [ [[package]] name = "flume" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" dependencies = [ "futures-core", "futures-sink", @@ -3326,6 +3210,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -3343,8 +3233,8 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "13.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", ] @@ -3358,10 +3248,20 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "forwarded-header-value" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" +dependencies = [ + "nonempty", + "thiserror", +] + [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "hex", "impl-serde", @@ -3374,38 +3274,36 @@ dependencies = [ "sp-io", "sp-runtime", "sp-runtime-interface", - "sp-std", + "staging-xcm", ] [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "parity-scale-codec", "sp-core", "sp-runtime", - "sp-std", ] [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", "fp-evm", "frame-support", "parity-scale-codec", - "sp-std", ] [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "evm", "frame-support", @@ -3415,13 +3313,12 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std", ] [[package]] name = "fp-ext" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum-types", "fp-rpc-evm-tracing-events", @@ -3434,7 +3331,7 @@ dependencies = [ [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", @@ -3445,13 +3342,12 @@ dependencies = [ "sp-core", "sp-runtime", "sp-state-machine", - "sp-std", ] [[package]] name = "fp-rpc-debug" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "environmental", "ethereum", @@ -3469,7 +3365,7 @@ dependencies = [ [[package]] name = "fp-rpc-evm-tracing-events" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "environmental", "ethereum", @@ -3484,7 +3380,7 @@ dependencies = [ [[package]] name = "fp-rpc-txpool" version = "0.6.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "parity-scale-codec", @@ -3498,7 +3394,7 @@ dependencies = [ [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "frame-support", "parity-scale-codec", @@ -3510,7 +3406,7 @@ dependencies = [ [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "parity-scale-codec", "serde", @@ -3524,8 +3420,8 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-support", "frame-support-procedural", @@ -3542,18 +3438,17 @@ dependencies = [ "sp-io", "sp-runtime", "sp-runtime-interface", - "sp-std", "sp-storage", "static_assertions", ] [[package]] name = "frame-benchmarking-cli" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "42.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "Inflector", - "array-bytes 6.2.2", + "array-bytes", "chrono", "clap", "comfy-table", @@ -3562,14 +3457,15 @@ dependencies = [ "frame-system", "gethostname", "handlebars", - "itertools 0.10.5", + "itertools 0.11.0", "lazy_static", "linked-hash-map", "log", "parity-scale-codec", - "rand 0.8.5", + "rand", "rand_pcg", "sc-block-builder", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", @@ -3583,6 +3479,7 @@ dependencies = [ "sp-core", "sp-database", "sp-externalities", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keystore", @@ -3597,9 +3494,10 @@ dependencies = [ [[package]] name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "aquamarine", "frame-support", "frame-system", "frame-try-runtime", @@ -3609,7 +3507,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", "sp-tracing", ] @@ -3627,10 +3524,11 @@ dependencies = [ [[package]] name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "aquamarine", + "array-bytes", "bitflags 1.3.2", "docify", "environmental", @@ -3649,7 +3547,7 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-core", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-genesis-builder", "sp-inherents", @@ -3667,51 +3565,52 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "30.0.2" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", "expander", "frame-support-procedural-tools", - "itertools 0.10.5", + "itertools 0.11.0", "macro_magic", - "proc-macro-warning", + "proc-macro-warning 1.0.2", "proc-macro2", "quote", - "sp-core-hashing", - "syn 2.0.48", + "sp-crypto-hashing", + "syn 2.0.82", ] [[package]] name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "13.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 1.1.3", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "12.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.1.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "cfg-if", + "docify", "frame-support", "log", "parity-scale-codec", @@ -3727,8 +3626,8 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-benchmarking", "frame-support", @@ -3737,28 +3636,27 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std", ] [[package]] name = "frame-system-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "docify", "parity-scale-codec", "sp-api", ] [[package]] name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-support", "parity-scale-codec", "sp-api", "sp-runtime", - "sp-std", ] [[package]] @@ -3794,9 +3692,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -3807,11 +3705,21 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-bounded" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b07bbbe7d7e78809544c6f718d875627addc73a7c3582447abc052cd3dc67e0" +dependencies = [ + "futures-timer", + "futures-util", +] + [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -3819,15 +3727,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -3843,70 +3751,69 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "futures-rustls" -version = "0.22.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" +checksum = "35bd3cf68c183738046838e300353e4716c674dc5e56890de4826801a6622a28" dependencies = [ "futures-io", - "rustls 0.20.9", - "webpki", + "rustls 0.21.12", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures 0.1.31", "futures-channel", @@ -3916,7 +3823,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite", "pin-utils", "slab", ] @@ -3962,24 +3869,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", ] [[package]] @@ -3988,16 +3884,17 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand_core 0.6.4", + "rand", + "rand_core", ] [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "polyval", ] @@ -4007,7 +3904,7 @@ version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" dependencies = [ - "fallible-iterator", + "fallible-iterator 0.2.0", "indexmap 1.9.3", "stable_deref_trait", ] @@ -4017,6 +3914,16 @@ name = "gimli" version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator 0.3.0", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" @@ -4025,16 +3932,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] -name = "globset" -version = "0.4.14" +name = "governor" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ - "aho-corasick", - "bstr 1.9.0", - "log", - "regex-automata 0.4.4", - "regex-syntax 0.8.2", + "cfg-if", + "dashmap", + "futures 0.3.31", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand", + "smallvec", + "spinning_top", ] [[package]] @@ -4044,23 +3958,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core 0.6.4", - "subtle 2.5.0", + "rand_core", + "subtle 2.6.1", ] [[package]] name = "h2" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http", - "indexmap 2.1.0", + "http 0.2.12", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -4069,9 +4002,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", @@ -4081,12 +4014,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "hash-db" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" - [[package]] name = "hash-db" version = "0.16.0" @@ -4107,9 +4034,6 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.7", -] [[package]] name = "hashbrown" @@ -4117,17 +4041,28 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.7", + "ahash", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" dependencies = [ - "ahash 0.8.7", "allocator-api2", + "equivalent", + "foldhash", ] [[package]] @@ -4136,7 +4071,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -4148,20 +4083,23 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.3.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hex" @@ -4174,9 +4112,9 @@ dependencies = [ [[package]] name = "hex-conservative" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" dependencies = [ "core2 0.3.3", ] @@ -4212,16 +4150,6 @@ dependencies = [ "digest 0.9.0", ] -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.0", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -4264,9 +4192,20 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -4280,21 +4219,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", - "pin-project-lite 0.2.13", + "http 0.2.12", + "pin-project-lite", ] [[package]] -name = "http-range-header" -version = "0.3.1" +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -4310,28 +4266,48 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.28" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.13", - "socket2 0.5.5", + "pin-project-lite", + "socket2 0.5.7", "tokio", "tower-service", "tracing", "want", ] +[[package]] +name = "hyper" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", +] + [[package]] name = "hyper-rustls" version = "0.24.2" @@ -4339,20 +4315,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http", - "hyper", + "http 0.2.12", + "hyper 0.14.31", "log", - "rustls 0.21.10", + "rustls 0.21.12", "rustls-native-certs", "tokio", "tokio-rustls", ] +[[package]] +name = "hyper-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.5.0", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "iana-time-zone" -version = "0.1.59" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4382,6 +4374,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "idna" version = "0.5.0" @@ -4411,7 +4413,7 @@ dependencies = [ "async-io", "core-foundation", "fnv", - "futures 0.3.30", + "futures 0.3.31", "if-addrs", "ipnet", "log", @@ -4421,6 +4423,25 @@ dependencies = [ "windows", ] +[[package]] +name = "igd-next" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" +dependencies = [ + "async-trait", + "attohttpc", + "bytes", + "futures 0.3.31", + "http 0.2.12", + "hyper 0.14.31", + "log", + "rand", + "tokio", + "url", + "xmltree", +] + [[package]] name = "impl-codec" version = "0.6.0" @@ -4461,18 +4482,18 @@ dependencies = [ [[package]] name = "include_dir" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" dependencies = [ "proc-macro2", "quote", @@ -4491,12 +4512,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.15.0", ] [[package]] @@ -4510,9 +4531,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -4532,7 +4553,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.4", + "hermit-abi 0.3.9", "libc", "windows-sys 0.48.0", ] @@ -4549,7 +4570,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.5", + "socket2 0.5.7", "widestring", "windows-sys 0.48.0", "winreg", @@ -4557,21 +4578,27 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is-terminal" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi 0.3.4", - "rustix 0.38.30", + "hermit-abi 0.4.0", + "libc", "windows-sys 0.52.0", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.10.5" @@ -4583,71 +4610,80 @@ dependencies = [ [[package]] name = "itertools" -version = "0.12.0" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.16.3" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b" +checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" dependencies = [ "jsonrpsee-core", "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types", + "tokio", "tracing", ] [[package]] name = "jsonrpsee-core" -version = "0.16.3" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5dde66c53d6dcdc8caea1874a45632ec0fcf5b437789f1e45766a1512ce803" +checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b" dependencies = [ "anyhow", - "arrayvec 0.7.4", "async-trait", "beef", - "futures-channel", + "bytes", "futures-util", - "globset", - "hyper", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", "jsonrpsee-types", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "rustc-hash", "serde", "serde_json", - "soketto", "thiserror", "tokio", "tracing", @@ -4655,32 +4691,38 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.16.3" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a" +checksum = "7895f186d5921065d96e16bd795e5ca89ac8356ec423fafc6e3d7cf8ec11aee4" dependencies = [ - "heck", - "proc-macro-crate 1.1.3", + "heck 0.5.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.82", ] [[package]] name = "jsonrpsee-server" -version = "0.16.3" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4d945a6008c9b03db3354fb3c83ee02d2faa9f2e755ec1dfb69c3551b8f4ba" +checksum = "654afab2e92e5d88ebd8a39d6074483f3f2bfdf91c5ac57fe285e7127cdd4f51" dependencies = [ - "futures-channel", + "anyhow", "futures-util", - "http", - "hyper", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.0", + "hyper-util", "jsonrpsee-core", "jsonrpsee-types", + "pin-project", + "route-recognizer", "serde", "serde_json", "soketto", + "thiserror", "tokio", "tokio-stream", "tokio-util", @@ -4690,28 +4732,28 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.16.3" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245ba8e5aa633dd1c1e4fae72bce06e71f42d34c14a2767c6b4d173b57bee5e5" +checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af" dependencies = [ - "anyhow", "beef", + "http 1.1.0", "serde", "serde_json", "thiserror", - "tracing", ] [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", "once_cell", + "serdect", "sha2 0.10.8", ] @@ -4746,7 +4788,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] @@ -4757,7 +4799,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "regex", "rocksdb", "smallvec", @@ -4765,11 +4807,11 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.5.2", + "spin 0.9.8", ] [[package]] @@ -4780,18 +4822,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.152" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.6", ] [[package]] @@ -4802,14 +4844,15 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libp2p" -version = "0.51.4" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" +checksum = "e94495eb319a85b70a68b85e2389a95bb3555c71c49025b78c691a854a7e6464" dependencies = [ "bytes", - "futures 0.3.30", + "either", + "futures 0.3.31", "futures-timer", - "getrandom 0.2.12", + "getrandom", "instant", "libp2p-allow-block-list", "libp2p-connection-limits", @@ -4826,18 +4869,21 @@ dependencies = [ "libp2p-request-response", "libp2p-swarm", "libp2p-tcp", + "libp2p-upnp", "libp2p-wasm-ext", "libp2p-websocket", "libp2p-yamux", - "multiaddr", + "multiaddr 0.18.2", "pin-project", + "rw-stream-sink", + "thiserror", ] [[package]] name = "libp2p-allow-block-list" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" +checksum = "55b46558c5c0bf99d3e2a1a38fd54ff5476ca66dd1737b12466a1824dd219311" dependencies = [ "libp2p-core", "libp2p-identity", @@ -4847,9 +4893,9 @@ dependencies = [ [[package]] name = "libp2p-connection-limits" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +checksum = "2f5107ad45cb20b2f6c3628c7b6014b996fcb13a88053f4569c872c6e30abf58" dependencies = [ "libp2p-core", "libp2p-identity", @@ -4859,55 +4905,58 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.39.2" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" +checksum = "dd44289ab25e4c9230d9246c475a22241e301b23e8f4061d3bdef304a1a99713" dependencies = [ "either", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "instant", "libp2p-identity", "log", - "multiaddr", - "multihash", + "multiaddr 0.18.2", + "multihash 0.19.1", "multistream-select", "once_cell", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand 0.8.5", + "rand", "rw-stream-sink", "smallvec", "thiserror", - "unsigned-varint", + "unsigned-varint 0.7.2", "void", ] [[package]] name = "libp2p-dns" -version = "0.39.0" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" +checksum = "e6a18db73084b4da2871438f6239fef35190b05023de7656e877c18a00541a3b" dependencies = [ - "futures 0.3.30", + "async-trait", + "futures 0.3.31", "libp2p-core", + "libp2p-identity", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "smallvec", "trust-dns-resolver", ] [[package]] name = "libp2p-identify" -version = "0.42.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" +checksum = "45a96638a0a176bec0a4bcaebc1afa8cf909b114477209d7456ade52c61cd9cd" dependencies = [ "asynchronous-codec", "either", - "futures 0.3.30", + "futures 0.3.31", + "futures-bounded", "futures-timer", "libp2p-core", "libp2p-identity", @@ -4923,34 +4972,34 @@ dependencies = [ [[package]] name = "libp2p-identity" -version = "0.1.3" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" +checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8" dependencies = [ - "bs58 0.4.0", + "bs58 0.5.1", "ed25519-dalek", - "log", - "multiaddr", - "multihash", + "hkdf", + "multihash 0.19.1", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "thiserror", + "tracing", "zeroize", ] [[package]] name = "libp2p-kad" -version = "0.43.3" +version = "0.44.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" +checksum = "16ea178dabba6dde6ffc260a8e0452ccdc8f79becf544946692fff9d412fc29d" dependencies = [ - "arrayvec 0.7.4", + "arrayvec", "asynchronous-codec", "bytes", "either", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "instant", "libp2p-core", @@ -4958,144 +5007,157 @@ dependencies = [ "libp2p-swarm", "log", "quick-protobuf", - "rand 0.8.5", + "quick-protobuf-codec", + "rand", "sha2 0.10.8", "smallvec", "thiserror", "uint", - "unsigned-varint", + "unsigned-varint 0.7.2", "void", ] [[package]] name = "libp2p-mdns" -version = "0.43.1" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" +checksum = "42a2567c305232f5ef54185e9604579a894fd0674819402bb0ac0246da82f52a" dependencies = [ "data-encoding", - "futures 0.3.30", + "futures 0.3.31", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "smallvec", - "socket2 0.4.10", + "socket2 0.5.7", "tokio", - "trust-dns-proto", + "trust-dns-proto 0.22.0", "void", ] [[package]] name = "libp2p-metrics" -version = "0.12.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" +checksum = "239ba7d28f8d0b5d77760dc6619c05c7e88e74ec8fbbe97f856f20a56745e620" dependencies = [ + "instant", "libp2p-core", "libp2p-identify", + "libp2p-identity", "libp2p-kad", "libp2p-ping", "libp2p-swarm", + "once_cell", "prometheus-client", ] [[package]] name = "libp2p-noise" -version = "0.42.2" +version = "0.43.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" +checksum = "d2eeec39ad3ad0677551907dd304b2f13f17208ccebe333bef194076cd2e8921" dependencies = [ "bytes", - "curve25519-dalek 3.2.0", - "futures 0.3.30", + "curve25519-dalek", + "futures 0.3.31", "libp2p-core", "libp2p-identity", "log", + "multiaddr 0.18.2", + "multihash 0.19.1", "once_cell", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "snow", "static_assertions", "thiserror", - "x25519-dalek 1.1.1", + "x25519-dalek", "zeroize", ] [[package]] name = "libp2p-ping" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" +checksum = "e702d75cd0827dfa15f8fd92d15b9932abe38d10d21f47c50438c71dd1b5dae3" dependencies = [ "either", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "instant", "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "void", ] [[package]] name = "libp2p-quic" -version = "0.7.0-alpha.3" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" +checksum = "130d451d83f21b81eb7b35b360bc7972aeafb15177784adc56528db082e6b927" dependencies = [ "bytes", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-tls", "log", - "parking_lot 0.12.1", - "quinn-proto", - "rand 0.8.5", - "rustls 0.20.9", + "parking_lot 0.12.3", + "quinn 0.10.2", + "rand", + "ring 0.16.20", + "rustls 0.21.12", + "socket2 0.5.7", "thiserror", "tokio", ] [[package]] name = "libp2p-request-response" -version = "0.24.1" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" +checksum = "d8e3b4d67870478db72bac87bfc260ee6641d0734e0e3e275798f089c3fecfd4" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "instant", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand 0.8.5", + "log", + "rand", "smallvec", + "void", ] [[package]] name = "libp2p-swarm" -version = "0.42.2" +version = "0.43.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" +checksum = "580189e0074af847df90e75ef54f3f30059aedda37ea5a1659e8b9fca05c0141" dependencies = [ "either", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "instant", "libp2p-core", "libp2p-identity", "libp2p-swarm-derive", "log", - "rand 0.8.5", + "multistream-select", + "once_cell", + "rand", "smallvec", "tokio", "void", @@ -5103,90 +5165,111 @@ dependencies = [ [[package]] name = "libp2p-swarm-derive" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" +checksum = "c4d5ec2a3df00c7836d7696c136274c9c59705bac69133253696a6c932cd1d74" dependencies = [ - "heck", + "heck 0.4.1", + "proc-macro-warning 0.4.2", + "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.82", ] [[package]] name = "libp2p-tcp" -version = "0.39.0" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" +checksum = "b558dd40d1bcd1aaaed9de898e9ec6a436019ecc2420dd0016e712fbb61c5508" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "if-watch", "libc", "libp2p-core", + "libp2p-identity", "log", - "socket2 0.4.10", + "socket2 0.5.7", "tokio", ] [[package]] name = "libp2p-tls" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" +checksum = "8218d1d5482b122ccae396bbf38abdcb283ecc96fa54760e1dfd251f0546ac61" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "futures-rustls", "libp2p-core", "libp2p-identity", "rcgen", "ring 0.16.20", - "rustls 0.20.9", + "rustls 0.21.12", + "rustls-webpki", "thiserror", - "webpki", - "x509-parser", + "x509-parser 0.15.1", "yasna", ] +[[package]] +name = "libp2p-upnp" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82775a47b34f10f787ad3e2a22e2c1541e6ebef4fe9f28f3ac553921554c94c1" +dependencies = [ + "futures 0.3.31", + "futures-timer", + "igd-next", + "libp2p-core", + "libp2p-swarm", + "log", + "tokio", + "void", +] + [[package]] name = "libp2p-wasm-ext" -version = "0.39.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" +checksum = "1e5d8e3a9e07da0ef5b55a9f26c009c8fb3c725d492d8bb4b431715786eea79c" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "js-sys", "libp2p-core", - "parity-send-wrapper", + "send_wrapper", "wasm-bindgen", "wasm-bindgen-futures", ] [[package]] name = "libp2p-websocket" -version = "0.41.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" +checksum = "004ee9c4a4631435169aee6aad2f62e3984dc031c43b6d29731e8e82a016c538" dependencies = [ "either", - "futures 0.3.30", + "futures 0.3.31", "futures-rustls", "libp2p-core", + "libp2p-identity", "log", - "parking_lot 0.12.1", - "quicksink", + "parking_lot 0.12.3", + "pin-project-lite", "rw-stream-sink", "soketto", + "thiserror", "url", "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.43.1" +version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" +checksum = "8eedcb62824c4300efb9cfd4e2a6edaf3ca097b9e68b36dabe45a44469fd6a85" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "libp2p-core", "log", "thiserror", @@ -5195,13 +5278,13 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.7", ] [[package]] @@ -5232,7 +5315,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.5", + "rand", "serde", "sha2 0.9.9", "typenum", @@ -5246,7 +5329,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -5280,9 +5363,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.14" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "pkg-config", @@ -5315,9 +5398,9 @@ dependencies = [ [[package]] name = "linregress" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" +checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7" dependencies = [ "nalgebra", ] @@ -5330,9 +5413,9 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lioness" @@ -5346,11 +5429,66 @@ dependencies = [ "keystream", ] +[[package]] +name = "litep2p" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f46c51c205264b834ceed95c8b195026e700494bc3991aaba3b4ea9e20626d9" +dependencies = [ + "async-trait", + "bs58 0.4.0", + "bytes", + "cid 0.10.1", + "ed25519-dalek", + "futures 0.3.31", + "futures-timer", + "hex-literal", + "indexmap 2.6.0", + "libc", + "mockall 0.12.1", + "multiaddr 0.17.1", + "multihash 0.17.0", + "network-interface", + "nohash-hasher", + "parking_lot 0.12.3", + "pin-project", + "prost 0.12.6", + "prost-build 0.11.9", + "quinn 0.9.4", + "rand", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", + "serde", + "sha2 0.10.8", + "simple-dns", + "smallvec", + "snow", + "socket2 0.5.7", + "static_assertions", + "str0m", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tokio-util", + "tracing", + "trust-dns-resolver", + "uint", + "unsigned-varint 0.8.0", + "url", + "webpki", + "x25519-dalek", + "x509-parser 0.16.0", + "yasna", + "zeroize", +] + [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -5358,17 +5496,17 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" -version = "0.10.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.13.2", + "hashbrown 0.15.0", ] [[package]] @@ -5382,19 +5520,18 @@ dependencies = [ [[package]] name = "lz4" -version = "1.24.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" +checksum = "4d1febb2b4a79ddd1980eede06a8f7902197960aa0383ffcfdd62fe723036725" dependencies = [ - "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.9.4" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ "cc", "libc", @@ -5411,50 +5548,50 @@ dependencies = [ [[package]] name = "macro_magic" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d" +checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "macro_magic_core" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" +checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" dependencies = [ "const-random", "derive-syn-parse", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "macro_magic_core_macros" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" +checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "macro_magic_macros" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" +checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -5465,9 +5602,9 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] name = "matchers" -version = "0.0.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ "regex-automata 0.1.10", ] @@ -5480,9 +5617,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" dependencies = [ "autocfg", "rawpointer", @@ -5490,9 +5627,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memfd" @@ -5500,7 +5637,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.30", + "rustix 0.38.37", ] [[package]] @@ -5512,6 +5649,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.8.0" @@ -5527,19 +5673,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" dependencies = [ - "hash-db 0.16.0", -] - -[[package]] -name = "merlin" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", + "hash-db", ] [[package]] @@ -5550,7 +5684,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core 0.6.4", + "rand_core", "zeroize", ] @@ -5562,9 +5696,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniscript" -version = "11.0.0" +version = "11.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86a23dd3ad145a980e231185d114399f25a0a307d2cd918010ddda6334323df9" +checksum = "3127e10529a57a8f7fa9b1332c4c2f72baadaca6777798f910dff3c922620b14" dependencies = [ "bech32", "bitcoin", @@ -5573,22 +5707,23 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", ] [[package]] name = "mio" -version = "0.8.10" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi 0.3.9", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "wasi", + "windows-sys 0.52.0", ] [[package]] @@ -5598,20 +5733,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec", "bitflags 1.3.2", "blake2 0.10.6", "c2-chacha", - "curve25519-dalek 4.1.1", + "curve25519-dalek", "either", "hashlink", "lioness", "log", - "parking_lot 0.12.1", - "rand 0.8.5", - "rand_chacha 0.3.1", + "parking_lot 0.12.3", + "rand", + "rand_chacha", "rand_distr", - "subtle 2.5.0", + "subtle 2.6.1", "thiserror", "zeroize", ] @@ -5626,8 +5761,23 @@ dependencies = [ "downcast", "fragile", "lazy_static", - "mockall_derive", - "predicates", + "mockall_derive 0.11.4", + "predicates 2.1.5", + "predicates-tree", +] + +[[package]] +name = "mockall" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive 0.12.1", + "predicates 3.1.2", "predicates-tree", ] @@ -5643,6 +5793,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "mockall_derive" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.82", +] + [[package]] name = "multiaddr" version = "0.17.1" @@ -5654,11 +5816,30 @@ dependencies = [ "data-encoding", "log", "multibase", - "multihash", + "multihash 0.17.0", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint 0.7.2", + "url", +] + +[[package]] +name = "multiaddr" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "libp2p-identity", + "multibase", + "multihash 0.19.1", "percent-encoding", "serde", "static_assertions", - "unsigned-varint", + "unsigned-varint 0.8.0", "url", ] @@ -5687,7 +5868,34 @@ dependencies = [ "multihash-derive", "sha2 0.10.8", "sha3", - "unsigned-varint", + "unsigned-varint 0.7.2", +] + +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2 0.4.0", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.8", + "sha3", + "unsigned-varint 0.7.2", +] + +[[package]] +name = "multihash" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +dependencies = [ + "core2 0.4.0", + "unsigned-varint 0.7.2", ] [[package]] @@ -5701,7 +5909,7 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -5710,29 +5918,34 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + [[package]] name = "multistream-select" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" +checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" dependencies = [ "bytes", - "futures 0.3.30", + "futures 0.3.31", "log", "pin-project", "smallvec", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] name = "nalgebra" -version = "0.32.3" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +checksum = "3bf139e93ad757869338ad85239cb1d6c067b23b94e5846e637ca6328ee4be60" dependencies = [ "approx", "matrixmultiply", - "nalgebra-macros", "num-complex", "num-rational", "num-traits", @@ -5740,33 +5953,21 @@ dependencies = [ "typenum", ] -[[package]] -name = "nalgebra-macros" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "names" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -5823,7 +6024,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ "bytes", - "futures 0.3.30", + "futures 0.3.31", "log", "netlink-packet-core", "netlink-sys", @@ -5833,39 +6034,46 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ "bytes", - "futures 0.3.30", + "futures 0.3.31", "libc", "log", "tokio", ] [[package]] -name = "nix" -version = "0.24.3" +name = "network-interface" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" dependencies = [ - "bitflags 1.3.2", - "cfg-if", + "cc", "libc", + "thiserror", + "winapi", ] [[package]] name = "nix" -version = "0.27.1" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags 2.4.2", + "bitflags 1.3.2", "cfg-if", "libc", ] +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -5882,17 +6090,39 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonempty" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + [[package]] name = "normalize-line-endings" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ "num-bigint", "num-complex", @@ -5904,49 +6134,53 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-format" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "arrayvec 0.7.4", + "arrayvec", "itoa", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -5955,11 +6189,10 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -5967,9 +6200,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", "libm", @@ -5981,29 +6214,29 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.4", + "hermit-abi 0.3.9", "libc", ] [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 2.0.1", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -6027,20 +6260,38 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +dependencies = [ + "memchr", +] + [[package]] name = "oid-registry" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs", + "asn1-rs 0.5.2", +] + +[[package]] +name = "oid-registry" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" +dependencies = [ + "asn1-rs 0.6.2", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -6050,17 +6301,17 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -6077,7 +6328,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -6086,14 +6337,24 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-src" +version = "300.3.2+3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +dependencies = [ + "cc", +] + [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", + "openssl-src", "pkg-config", "vcpkg", ] @@ -6104,10 +6365,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "36.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-support", "frame-system", @@ -6118,13 +6385,12 @@ dependencies = [ "sp-application-crypto", "sp-consensus-aura", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-support", "frame-system", @@ -6132,14 +6398,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "38.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6147,13 +6413,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-base-fee" version = "1.0.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "fp-evm", "frame-support", @@ -6174,13 +6439,10 @@ dependencies = [ "frame-system", "impl-serde", "log", - "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "similar-asserts", "sp-core", - "sp-io", "sp-runtime", "sp-staking", "sp-std", @@ -6196,7 +6458,6 @@ dependencies = [ "frame-system", "log", "pallet-authorship", - "pallet-balances", "pallet-bfc-offences", "pallet-im-online", "pallet-relay-manager", @@ -6204,9 +6465,6 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "similar-asserts", - "sp-core", - "sp-io", "sp-runtime", "sp-staking", "sp-std", @@ -6222,13 +6480,10 @@ dependencies = [ "frame-system", "impl-serde", "log", - "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "similar-asserts", "sp-core", - "sp-io", "sp-runtime", "sp-std", ] @@ -6237,7 +6492,7 @@ dependencies = [ name = "pallet-btc-registration-pool" version = "1.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes", "bp-btc-relay", "frame-support", "frame-system", @@ -6255,7 +6510,7 @@ dependencies = [ name = "pallet-btc-socket-queue" version = "1.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes", "bp-btc-relay", "bp-staking", "ethabi-decode", @@ -6275,8 +6530,8 @@ dependencies = [ [[package]] name = "pallet-collective" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6287,13 +6542,12 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-democracy" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6305,13 +6559,12 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "ethereum", "ethereum-types", @@ -6328,13 +6581,12 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "environmental", "evm", @@ -6343,24 +6595,21 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "hash-db 0.16.0", - "hex", + "hash-db", "hex-literal", "impl-trait-for-tuples", "log", "parity-scale-codec", - "rlp", "scale-info", "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-evm-precompile-blake2" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "fp-evm", ] @@ -6368,7 +6617,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-bn128" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "fp-evm", "sp-core", @@ -6378,7 +6627,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-modexp" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "fp-evm", "num", @@ -6387,7 +6636,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "fp-evm", "ripemd", @@ -6396,8 +6645,8 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6414,29 +6663,28 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", ] [[package]] name = "pallet-identity" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-im-online" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "36.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6450,13 +6698,12 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std", ] [[package]] name = "pallet-membership" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6467,13 +6714,12 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-offences" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "36.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-support", "frame-system", @@ -6484,13 +6730,12 @@ dependencies = [ "serde", "sp-runtime", "sp-staking", - "sp-std", ] [[package]] name = "pallet-preimage" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6501,7 +6746,20 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", +] + +[[package]] +name = "pallet-proxy" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", ] [[package]] @@ -6514,24 +6772,38 @@ dependencies = [ "frame-support", "frame-system", "log", - "pallet-balances", "pallet-membership", "pallet-session", "parity-scale-codec", "scale-info", "serde", - "similar-asserts", - "sp-core", - "sp-io", "sp-runtime", "sp-staking", "sp-std", ] +[[package]] +name = "pallet-safe-mode" +version = "18.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-balances", + "pallet-proxy", + "pallet-utility", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-runtime", +] + [[package]] name = "pallet-scheduler" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "38.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "docify", "frame-benchmarking", @@ -6542,14 +6814,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", "sp-weights", ] [[package]] name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-support", "frame-system", @@ -6564,14 +6835,13 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std", "sp-trie", ] [[package]] name = "pallet-sudo" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "docify", "frame-benchmarking", @@ -6581,13 +6851,12 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "36.0.1" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "docify", "frame-benchmarking", @@ -6599,15 +6868,14 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std", "sp-storage", "sp-timestamp", ] [[package]] name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-support", "frame-system", @@ -6617,13 +6885,12 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "40.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6638,8 +6905,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6650,8 +6917,8 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "36.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "docify", "frame-benchmarking", @@ -6664,13 +6931,29 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std", +] + +[[package]] +name = "pallet-tx-pause" +version = "18.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-balances", + "pallet-proxy", + "pallet-utility", + "parity-scale-codec", + "scale-info", + "sp-runtime", ] [[package]] name = "pallet-utility" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6680,7 +6963,19 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", +] + +[[package]] +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes", + "rand", + "rand_core", + "serde", + "unicode-normalization", ] [[package]] @@ -6696,9 +6991,9 @@ dependencies = [ "libc", "log", "lz4", - "memmap2", - "parking_lot 0.12.1", - "rand 0.8.5", + "memmap2 0.5.10", + "parking_lot 0.12.3", + "rand", "siphasher", "snap", "winapi", @@ -6706,11 +7001,11 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ - "arrayvec 0.7.4", + "arrayvec", "bitvec", "byte-slice-cast", "bytes", @@ -6721,22 +7016,16 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 2.0.1", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", ] -[[package]] -name = "parity-send-wrapper" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" - [[package]] name = "parity-wasm" version = "0.45.0" @@ -6745,9 +7034,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -6762,12 +7051,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.9", + "parking_lot_core 0.9.10", ] [[package]] @@ -6786,15 +7075,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.7", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -6804,27 +7093,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" [[package]] -name = "paste" -version = "1.0.14" +name = "password-hash" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core", + "subtle 2.6.1", +] [[package]] -name = "pbkdf2" -version = "0.8.0" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac 0.11.0", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", + "password-hash", ] [[package]] @@ -6850,9 +7142,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.6" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", "thiserror", @@ -6861,9 +7153,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.6" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde" +checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" dependencies = [ "pest", "pest_generator", @@ -6871,22 +7163,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.6" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275" +checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "pest_meta" -version = "2.7.6" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d" +checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" dependencies = [ "once_cell", "pest", @@ -6895,45 +7187,39 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.1.0", + "indexmap 2.6.0", ] [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -6953,28 +7239,106 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "polkavm" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" +dependencies = [ + "libc", + "log", + "polkavm-assembler", + "polkavm-common", + "polkavm-linux-raw", +] + +[[package]] +name = "polkavm-assembler" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" +dependencies = [ + "polkavm-derive-impl-macro", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" +dependencies = [ + "polkavm-common", + "proc-macro2", + "quote", + "syn 2.0.82", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" +dependencies = [ + "polkavm-derive-impl", + "syn 2.0.82", +] + +[[package]] +name = "polkavm-linker" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" +dependencies = [ + "gimli 0.28.1", + "hashbrown 0.14.5", + "log", + "object 0.32.2", + "polkavm-common", + "regalloc2 0.9.3", + "rustc-demangle", +] [[package]] -name = "platforms" -version = "3.3.0" +name = "polkavm-linux-raw" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" +checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" [[package]] name = "polling" -version = "3.3.2" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ "cfg-if", "concurrent-queue", - "pin-project-lite 0.2.13", - "rustix 0.38.30", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix 0.38.37", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6984,22 +7348,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" + [[package]] name = "powerfmt" version = "0.2.0" @@ -7008,29 +7378,24 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "precompile-balance" version = "1.0.0" dependencies = [ - "derive_more", "fp-evm", "frame-support", "frame-system", - "num_enum", "pallet-balances", "pallet-evm", - "pallet-timestamp", - "parity-scale-codec", "precompile-utils", - "scale-info", - "serde", - "sha3", "sp-core", - "sp-io", "sp-runtime", "sp-std", ] @@ -7040,23 +7405,13 @@ name = "precompile-bfc-offences" version = "1.0.0" dependencies = [ "bp-staking", - "derive_more", "fp-evm", "frame-support", "frame-system", - "num_enum", - "pallet-balances", "pallet-bfc-offences", "pallet-evm", - "pallet-timestamp", - "parity-scale-codec", "precompile-utils", - "scale-info", - "serde", - "sha3", "sp-core", - "sp-io", - "sp-runtime", "sp-staking", "sp-std", ] @@ -7066,23 +7421,13 @@ name = "precompile-bfc-staking" version = "1.0.0" dependencies = [ "bp-staking", - "derive_more", "fp-evm", "frame-support", "frame-system", - "num_enum", - "pallet-balances", "pallet-bfc-staking", "pallet-evm", - "pallet-timestamp", - "parity-scale-codec", "precompile-utils", - "rustc-hex", - "scale-info", - "serde", - "sha3", "sp-core", - "sp-io", "sp-runtime", "sp-std", ] @@ -7098,10 +7443,8 @@ dependencies = [ "frame-system", "pallet-btc-registration-pool", "pallet-evm", - "parity-scale-codec", "precompile-utils", "sp-core", - "sp-io", "sp-runtime", "sp-std", ] @@ -7117,10 +7460,8 @@ dependencies = [ "frame-system", "pallet-btc-socket-queue", "pallet-evm", - "parity-scale-codec", "precompile-utils", "sp-core", - "sp-io", "sp-runtime", "sp-std", ] @@ -7129,24 +7470,14 @@ dependencies = [ name = "precompile-collective" version = "1.0.0" dependencies = [ - "derive_more", "fp-evm", "frame-support", "frame-system", - "hex-literal", - "num_enum", - "pallet-balances", "pallet-collective", "pallet-evm", - "pallet-scheduler", - "pallet-timestamp", - "parity-scale-codec", "precompile-utils", - "scale-info", - "serde", "sha3", "sp-core", - "sp-io", "sp-runtime", "sp-std", ] @@ -7155,25 +7486,14 @@ dependencies = [ name = "precompile-governance" version = "1.0.0" dependencies = [ - "derive_more", "fp-evm", "frame-support", "frame-system", - "hex-literal", - "num_enum", - "pallet-balances", "pallet-democracy", "pallet-evm", "pallet-preimage", - "pallet-scheduler", - "pallet-timestamp", - "parity-scale-codec", "precompile-utils", - "scale-info", - "serde", - "sha3", "sp-core", - "sp-io", "sp-runtime", "sp-std", ] @@ -7183,22 +7503,13 @@ name = "precompile-relay-manager" version = "1.0.0" dependencies = [ "bp-staking", - "derive_more", "fp-evm", "frame-support", "frame-system", - "num_enum", - "pallet-balances", "pallet-evm", "pallet-relay-manager", - "pallet-timestamp", - "parity-scale-codec", "precompile-utils", - "scale-info", - "serde", - "sha3", "sp-core", - "sp-io", "sp-runtime", "sp-std", ] @@ -7206,7 +7517,7 @@ dependencies = [ [[package]] name = "precompile-utils" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "environmental", "evm", @@ -7223,20 +7534,21 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-weights", + "staging-xcm", ] [[package]] name = "precompile-utils-macro" version = "0.1.0" -source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-v1.3.0#b265b1cfd1586a17513578fc933e206e343dac40" +source = "git+https://github.com/bifrost-platform/bifrost-frontier?branch=bifrost-polkadot-stable2407#51386f0ff788101ccbb9c997deb39cfb02e0419d" dependencies = [ "case", "num_enum", - "prettyplease 0.2.16", + "prettyplease 0.2.24", "proc-macro2", "quote", - "sp-core-hashing", + "sp-crypto-hashing", "syn 1.0.109", ] @@ -7254,17 +7566,27 @@ dependencies = [ "regex", ] +[[package]] +name = "predicates" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" +dependencies = [ + "anstyle", + "predicates-core", +] + [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" dependencies = [ "predicates-core", "termtree", @@ -7282,12 +7604,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "910d41a655dac3b764f1ade94821093d3610248694320cd072303a8eedcf221d" dependencies = [ "proc-macro2", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -7316,12 +7638,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit", ] [[package]] @@ -7348,6 +7669,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-warning" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.82", +] + [[package]] name = "proc-macro-warning" version = "1.0.2" @@ -7356,41 +7688,41 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "thiserror", ] [[package]] name = "prometheus-client" -version = "0.19.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" +checksum = "3c99afa9a01501019ac3a14d71d9f94050346f55ca471ce90c799a15c58f61e2" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus-client-derive-encode", ] @@ -7402,7 +7734,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -7412,7 +7744,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", ] [[package]] @@ -7422,21 +7764,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools 0.10.5", "lazy_static", "log", - "multimap", + "multimap 0.8.3", "petgraph", "prettyplease 0.1.25", - "prost", - "prost-types", + "prost 0.11.9", + "prost-types 0.11.9", "regex", "syn 1.0.109", "tempfile", "which", ] +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap 0.10.0", + "once_cell", + "petgraph", + "prettyplease 0.2.24", + "prost 0.12.6", + "prost-types 0.12.6", + "regex", + "syn 2.0.82", + "tempfile", +] + [[package]] name = "prost-derive" version = "0.11.9" @@ -7450,24 +7813,61 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.82", +] + +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost 0.11.9", +] + [[package]] name = "prost-types" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" dependencies = [ - "prost", + "prost 0.12.6", ] [[package]] name = "psm" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" dependencies = [ "cc", ] +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi", + "web-sys", + "winapi", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -7485,26 +7885,51 @@ dependencies = [ [[package]] name = "quick-protobuf-codec" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +checksum = "f8ededb1cd78531627244d51dd0c7139fbe736c7d57af0092a76f0ffb2f56e98" dependencies = [ "asynchronous-codec", "bytes", "quick-protobuf", "thiserror", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] -name = "quicksink" -version = "0.1.2" +name = "quinn" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" +checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" dependencies = [ - "futures-core", - "futures-sink", - "pin-project-lite 0.1.12", + "bytes", + "pin-project-lite", + "quinn-proto 0.9.6", + "quinn-udp 0.3.2", + "rustc-hash", + "rustls 0.20.9", + "thiserror", + "tokio", + "tracing", + "webpki", +] + +[[package]] +name = "quinn" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" +dependencies = [ + "bytes", + "futures-io", + "pin-project-lite", + "quinn-proto 0.10.6", + "quinn-udp 0.4.1", + "rustc-hash", + "rustls 0.21.12", + "thiserror", + "tokio", + "tracing", ] [[package]] @@ -7514,7 +7939,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "ring 0.16.20", "rustc-hash", "rustls 0.20.9", @@ -7526,52 +7951,72 @@ dependencies = [ ] [[package]] -name = "quote" -version = "1.0.35" +name = "quinn-proto" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" dependencies = [ - "proc-macro2", + "bytes", + "rand", + "ring 0.16.20", + "rustc-hash", + "rustls 0.21.12", + "slab", + "thiserror", + "tinyvec", + "tracing", ] [[package]] -name = "radium" -version = "0.7.0" +name = "quinn-udp" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" +dependencies = [ + "libc", + "quinn-proto 0.9.6", + "socket2 0.4.10", + "tracing", + "windows-sys 0.42.0", +] [[package]] -name = "rand" -version = "0.7.3" +name = "quinn-udp" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ - "getrandom 0.1.16", + "bytes", "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", + "socket2 0.5.7", + "tracing", + "windows-sys 0.48.0", ] [[package]] -name = "rand" -version = "0.8.5" +name = "quote" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", + "proc-macro2", ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "libc", + "rand_chacha", + "rand_core", ] [[package]] @@ -7581,16 +8026,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -7599,7 +8035,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.12", + "getrandom", ] [[package]] @@ -7609,25 +8045,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "rand_pcg" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" dependencies = [ - "rand_core 0.5.1", + "rand_core", ] [[package]] -name = "rand_pcg" -version = "0.3.1" +name = "raw-cpuid" +version = "11.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +checksum = "1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0" dependencies = [ - "rand_core 0.6.4", + "bitflags 2.6.0", ] [[package]] @@ -7638,9 +8074,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -7679,42 +8115,42 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.12", + "getrandom", "libredox", "thiserror", ] [[package]] name = "ref-cast" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -7729,16 +8165,29 @@ dependencies = [ "smallvec", ] +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" -version = "1.10.3" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.4", - "regex-syntax 0.8.2", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -7752,13 +8201,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.4" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.5", ] [[package]] @@ -7769,9 +8218,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "resolv-conf" @@ -7790,23 +8239,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle 2.5.0", -] - -[[package]] -name = "ring" -version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "blake2 0.10.6", - "common", - "fflonk", - "merlin 3.0.0", + "subtle 2.6.1", ] [[package]] @@ -7826,16 +8259,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", - "getrandom 0.2.12", + "cfg-if", + "getrandom", "libc", "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7879,6 +8313,12 @@ dependencies = [ "librocksdb-sys", ] +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + [[package]] name = "rpassword" version = "7.3.1" @@ -7896,11 +8336,11 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "log", "netlink-packet-route", "netlink-proto", - "nix 0.24.3", + "nix", "thiserror", "tokio", ] @@ -7917,9 +8357,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -7935,11 +8375,11 @@ checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.21", + "semver 1.0.23", ] [[package]] @@ -7967,14 +8407,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys 0.4.13", + "linux-raw-sys 0.4.14", "windows-sys 0.52.0", ] @@ -7984,7 +8424,6 @@ version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ - "log", "ring 0.16.20", "sct", "webpki", @@ -7992,12 +8431,12 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.17.7", + "ring 0.17.8", "rustls-webpki", "sct", ] @@ -8029,38 +8468,38 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rw-stream-sink" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" +checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "pin-project", "static_assertions", ] [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "safe_arch" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a" dependencies = [ "bytemuck", ] @@ -8076,8 +8515,8 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "29.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "log", "sp-core", @@ -8087,15 +8526,14 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.44.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", "sc-block-builder", - "sc-client-api", "sc-proposer-metrics", "sc-telemetry", "sc-transaction-pool-api", @@ -8110,25 +8548,29 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.42.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", - "sc-client-api", "sp-api", "sp-block-builder", "sp-blockchain", "sp-core", "sp-inherents", "sp-runtime", + "sp-trie", ] [[package]] name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "memmap2", + "array-bytes", + "docify", + "log", + "memmap2 0.9.5", + "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", "sc-executor", @@ -8138,36 +8580,42 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", + "sp-crypto-hashing", + "sp-genesis-builder", + "sp-io", "sp-runtime", "sp-state-machine", + "sp-tracing", ] [[package]] name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "12.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.46.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", + "array-bytes", "chrono", "clap", "fdlimit", - "futures 0.3.30", + "futures 0.3.31", + "itertools 0.11.0", "libp2p-identity", "log", "names", + "parity-bip39", "parity-scale-codec", - "rand 0.8.5", + "rand", "regex", "rpassword", "sc-client-api", @@ -8189,20 +8637,19 @@ dependencies = [ "sp-runtime", "sp-version", "thiserror", - "tiny-bip39", "tokio", ] [[package]] name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "fnv", - "futures 0.3.30", + "futures 0.3.31", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -8222,10 +8669,10 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.44.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "hash-db 0.16.0", + "hash-db", "kvdb", "kvdb-memorydb", "kvdb-rocksdb", @@ -8233,7 +8680,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-state-db", "schnellru", @@ -8248,17 +8695,16 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", - "futures 0.3.30", - "futures-timer", - "libp2p-identity", + "futures 0.3.31", "log", - "mockall", - "parking_lot 0.12.1", + "mockall 0.11.4", + "parking_lot 0.12.3", "sc-client-api", + "sc-network-types", "sc-utils", "serde", "sp-api", @@ -8273,11 +8719,11 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.44.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "log", "parity-scale-codec", "sc-block-builder", @@ -8302,18 +8748,18 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.44.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", "fork-tree", - "futures 0.3.30", + "futures 0.3.31", "log", "num-bigint", "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-consensus-epochs", @@ -8328,6 +8774,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", + "sp-crypto-hashing", "sp-inherents", "sp-keystore", "sp-runtime", @@ -8337,8 +8784,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8350,21 +8797,21 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.29.1" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "ahash 0.8.7", - "array-bytes 6.2.2", + "ahash", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -8372,6 +8819,8 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-gossip", + "sc-network-sync", + "sc-network-types", "sc-telemetry", "sc-transaction-pool-api", "sc-utils", @@ -8383,6 +8832,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -8391,11 +8841,11 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.29.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "finality-grandpa", - "futures 0.3.30", + "futures 0.3.31", "jsonrpsee", "log", "parity-scale-codec", @@ -8411,12 +8861,12 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.45.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "assert_matches", "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "jsonrpsee", "log", @@ -8446,11 +8896,11 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", @@ -8469,12 +8919,13 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.40.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-executor-common", + "sc-executor-polkavm", "sc-executor-wasmtime", "schnellru", "sp-api", @@ -8491,9 +8942,10 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.35.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "polkavm", "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", @@ -8501,16 +8953,27 @@ dependencies = [ "wasm-instrument", ] +[[package]] +name = "sc-executor-polkavm" +version = "0.32.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" +dependencies = [ + "log", + "polkavm", + "sc-executor-common", + "sp-wasm-interface", +] + [[package]] name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.35.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "anyhow", "cfg-if", "libc", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rustix 0.36.17", "sc-allocator", "sc-executor-common", @@ -8521,27 +8984,28 @@ dependencies = [ [[package]] name = "sc-informant" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "ansi_term", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", "sc-client-api", "sc-network", "sc-network-common", + "sc-network-sync", "sp-blockchain", "sp-runtime", ] [[package]] name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "33.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", - "parking_lot 0.12.1", + "array-bytes", + "parking_lot 0.12.3", "serde_json", "sp-application-crypto", "sp-core", @@ -8551,22 +9015,23 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.1.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.14.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 4.2.0", - "arrayvec 0.7.4", + "array-bytes", + "arrayvec", "blake2 0.10.6", - "futures 0.3.30", + "bytes", + "futures 0.3.31", "futures-timer", - "libp2p-identity", "log", "mixnet", - "multiaddr", + "multiaddr 0.18.2", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-network", + "sc-network-types", "sc-transaction-pool-api", "sp-api", "sp-consensus", @@ -8579,31 +9044,38 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.44.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", + "array-bytes", "async-channel", "async-trait", "asynchronous-codec", "bytes", + "cid 0.9.0", "either", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "ip_network", "libp2p", "linked_hash_set", + "litep2p", "log", - "mockall", + "mockall 0.11.4", + "once_cell", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "partial_sort", "pin-project", - "rand 0.8.5", + "prost 0.12.6", + "prost-build 0.12.6", + "rand", "sc-client-api", "sc-network-common", + "sc-network-types", "sc-utils", + "schnellru", "serde", "serde_json", "smallvec", @@ -8613,43 +9085,27 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", - "unsigned-varint", + "tokio", + "tokio-stream", + "unsigned-varint 0.7.2", + "void", "wasm-timer", "zeroize", ] -[[package]] -name = "sc-network-bitswap" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" -dependencies = [ - "async-channel", - "cid", - "futures 0.3.30", - "libp2p-identity", - "log", - "prost", - "prost-build", - "sc-client-api", - "sc-network", - "sp-blockchain", - "sp-runtime", - "thiserror", - "unsigned-varint", -] - [[package]] name = "sc-network-common" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", "bitflags 1.3.2", - "futures 0.3.30", + "futures 0.3.31", "libp2p-identity", "parity-scale-codec", - "prost-build", + "prost-build 0.12.6", "sc-consensus", + "sc-network-types", "sp-consensus", "sp-consensus-grandpa", "sp-runtime", @@ -8657,16 +9113,17 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.44.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "ahash 0.8.7", - "futures 0.3.30", + "ahash", + "futures 0.3.31", "futures-timer", - "libp2p", "log", "sc-network", "sc-network-common", + "sc-network-sync", + "sc-network-types", "schnellru", "sp-runtime", "substrate-prometheus-endpoint", @@ -8675,19 +9132,19 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", + "array-bytes", "async-channel", - "futures 0.3.30", - "libp2p-identity", + "futures 0.3.31", "log", "parity-scale-codec", - "prost", - "prost-build", + "prost 0.12.6", + "prost-build 0.12.6", "sc-client-api", "sc-network", + "sc-network-types", "sp-blockchain", "sp-core", "sp-runtime", @@ -8696,25 +9153,26 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", + "array-bytes", "async-channel", "async-trait", "fork-tree", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "libp2p", "log", - "mockall", + "mockall 0.11.4", "parity-scale-codec", - "prost", - "prost-build", + "prost 0.12.6", + "prost-build 0.12.6", "sc-client-api", "sc-consensus", "sc-network", "sc-network-common", + "sc-network-types", "sc-utils", "schnellru", "smallvec", @@ -8726,49 +9184,68 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", "tokio-stream", ] [[package]] name = "sc-network-transactions" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", - "futures 0.3.30", - "libp2p", + "array-bytes", + "futures 0.3.31", "log", "parity-scale-codec", "sc-network", "sc-network-common", + "sc-network-sync", + "sc-network-types", "sc-utils", "sp-consensus", "sp-runtime", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-network-types" +version = "0.12.1" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" +dependencies = [ + "bs58 0.5.1", + "ed25519-dalek", + "libp2p-identity", + "litep2p", + "log", + "multiaddr 0.18.2", + "multihash 0.19.1", + "rand", + "thiserror", + "zeroize", +] + [[package]] name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "39.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", + "array-bytes", "bytes", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "hyper", + "hyper 0.14.31", "hyper-rustls", - "libp2p", "log", "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "sc-client-api", "sc-network", "sc-network-common", + "sc-network-types", "sc-transaction-pool-api", "sc-utils", "sp-api", @@ -8783,8 +9260,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.18.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8792,14 +9269,14 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "39.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -8824,8 +9301,8 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8844,12 +9321,19 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" -dependencies = [ - "http", +version = "16.0.2" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" +dependencies = [ + "forwarded-header-value", + "futures 0.3.31", + "governor", + "http 1.1.0", + "http-body-util", + "hyper 1.5.0", + "ip_network", "jsonrpsee", "log", + "serde", "serde_json", "substrate-prometheus-endpoint", "tokio", @@ -8859,25 +9343,29 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.44.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", - "futures 0.3.30", + "array-bytes", + "futures 0.3.31", "futures-util", "hex", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", + "rand", "sc-chain-spec", "sc-client-api", + "sc-rpc", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "sp-api", "sp-blockchain", "sp-core", + "sp-rpc", "sp-runtime", "sp-version", "thiserror", @@ -8887,21 +9375,20 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.45.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", - "sc-block-builder", + "rand", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -8910,11 +9397,11 @@ dependencies = [ "sc-informant", "sc-keystore", "sc-network", - "sc-network-bitswap", "sc-network-common", "sc-network-light", "sc-network-sync", "sc-network-transactions", + "sc-network-types", "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", @@ -8924,6 +9411,7 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "serde_json", "sp-api", @@ -8951,46 +9439,49 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.36.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sp-core", ] [[package]] name = "sc-sysinfo" -version = "6.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "futures 0.3.30", + "derive_more", + "futures 0.3.31", "libc", "log", - "rand 0.8.5", + "rand", "rand_pcg", "regex", "sc-telemetry", "serde", "serde_json", "sp-core", + "sp-crypto-hashing", "sp-io", "sp-std", ] [[package]] name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "24.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "chrono", - "futures 0.3.30", + "futures 0.3.31", "libp2p", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", + "sc-network", "sc-utils", "serde", "serde_json", @@ -9000,16 +9491,17 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "ansi_term", - "atty", "chrono", + "is-terminal", "lazy_static", "libc", "log", - "parking_lot 0.12.1", + "parity-scale-codec", + "parking_lot 0.12.3", "regex", "rustc-hash", "sc-client-api", @@ -9029,27 +9521,27 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "11.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "linked-hash-map", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-transaction-pool-api", "sc-utils", @@ -9057,6 +9549,7 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-runtime", "sp-tracing", "sp-transaction-pool", @@ -9066,11 +9559,11 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "log", "parity-scale-codec", "serde", @@ -9082,24 +9575,24 @@ dependencies = [ [[package]] name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "17.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-channel", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "lazy_static", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus", "sp-arithmetic", ] [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "bitvec", "cfg-if", @@ -9111,11 +9604,11 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -9123,39 +9616,40 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "schnellru" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ - "ahash 0.8.7", + "ahash", "cfg-if", "hashbrown 0.13.2", ] [[package]] name = "schnorrkel" -version = "0.9.1" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ + "aead", "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", - "merlin 2.0.1", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle 2.5.0", + "arrayvec", + "curve25519-dalek", + "getrandom_or_panic", + "merlin", + "rand_core", + "serde_bytes", + "sha2 0.10.8", + "subtle 2.6.1", "zeroize", ] @@ -9177,10 +9671,25 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] +[[package]] +name = "sctp-proto" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24" +dependencies = [ + "bytes", + "crc", + "fxhash", + "log", + "rand", + "slab", + "thiserror", +] + [[package]] name = "sec1" version = "0.7.3" @@ -9191,19 +9700,11 @@ dependencies = [ "der", "generic-array 0.14.7", "pkcs8", - "subtle 2.5.0", + "serdect", + "subtle 2.6.1", "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" -dependencies = [ - "secp256k1-sys 0.6.1", -] - [[package]] name = "secp256k1" version = "0.28.2" @@ -9211,16 +9712,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "bitcoin_hashes", - "secp256k1-sys 0.9.2", -] - -[[package]] -name = "secp256k1-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" -dependencies = [ - "cc", + "secp256k1-sys", ] [[package]] @@ -9243,11 +9735,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -9256,9 +9748,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -9275,9 +9767,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] @@ -9288,69 +9780,102 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" -version = "1.0.195" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_spanned" -version = "0.6.5" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "serdect" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ + "base16ct", "serde", ] [[package]] name = "sha-1" -version = "0.9.8" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "block-buffer 0.9.0", "cfg-if", "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.0", + "digest 0.10.7", + "sha1-asm", ] [[package]] -name = "sha2" -version = "0.8.2" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha1-asm" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" +dependencies = [ + "cc", ] [[package]] @@ -9363,7 +9888,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -9404,9 +9929,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -9418,14 +9943,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", - "rand_core 0.6.4", + "rand_core", ] [[package]] name = "simba" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" dependencies = [ "approx", "num-complex", @@ -9435,24 +9960,19 @@ dependencies = [ ] [[package]] -name = "similar" -version = "2.4.0" +name = "simple-dns" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" +checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694" dependencies = [ - "bstr 0.2.17", - "unicode-segmentation", + "bitflags 2.6.0", ] [[package]] -name = "similar-asserts" -version = "1.5.0" +name = "simple-mermaid" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e041bb827d1bfca18f213411d51b665309f1afb37a04a5d1464530e13779fc0f" -dependencies = [ - "console", - "similar", -] +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" [[package]] name = "siphasher" @@ -9477,9 +9997,9 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "snap" @@ -9489,19 +10009,19 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "snow" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ "aes-gcm", "blake2 0.10.6", "chacha20poly1305", - "curve25519-dalek 4.1.1", - "rand_core 0.6.4", - "ring 0.17.7", + "curve25519-dalek", + "rand_core", + "ring 0.17.8", "rustc_version", "sha2 0.10.8", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -9516,37 +10036,37 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "soketto" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", "bytes", - "flate2", - "futures 0.3.30", - "http", + "futures 0.3.31", + "http 1.1.0", "httparse", "log", - "rand 0.8.5", - "sha-1", + "rand", + "sha1", ] [[package]] name = "sp-api" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "hash-db 0.16.0", + "docify", + "hash-db", "log", "parity-scale-codec", "scale-info", @@ -9555,8 +10075,8 @@ dependencies = [ "sp-externalities", "sp-metadata-ir", "sp-runtime", + "sp-runtime-interface", "sp-state-machine", - "sp-std", "sp-trie", "sp-version", "thiserror", @@ -9564,81 +10084,80 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "20.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "Inflector", "blake2 0.10.6", "expander", - "proc-macro-crate 1.1.3", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "sp-application-crypto" -version = "23.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "38.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", - "sp-std", ] [[package]] name = "sp-arithmetic" -version = "16.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "26.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "docify", "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std", "static_assertions", ] [[package]] name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "sp-api", "sp-inherents", "sp-runtime", - "sp-std", ] [[package]] name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.1" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "futures 0.3.30", - "log", + "futures 0.3.31", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "schnellru", "sp-api", "sp-consensus", + "sp-core", "sp-database", "sp-runtime", "sp-state-machine", "thiserror", + "tracing", ] [[package]] name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.40.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "log", "sp-core", "sp-inherents", @@ -9649,8 +10168,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.40.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", "parity-scale-codec", @@ -9660,14 +10179,13 @@ dependencies = [ "sp-consensus-slots", "sp-inherents", "sp-runtime", - "sp-std", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.40.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", "parity-scale-codec", @@ -9679,14 +10197,13 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std", "sp-timestamp", ] [[package]] name = "sp-consensus-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "21.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "finality-grandpa", "log", @@ -9698,54 +10215,52 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", - "sp-std", ] [[package]] name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.40.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std", "sp-timestamp", ] [[package]] name = "sp-core" -version = "21.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "array-bytes 6.2.2", - "bandersnatch_vrfs", + "array-bytes", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", - "bs58 0.5.0", + "bs58 0.5.1", "dyn-clonable", "ed25519-zebra", - "futures 0.3.30", - "hash-db 0.16.0", + "futures 0.3.31", + "hash-db", "hash256-std-hasher", "impl-serde", - "lazy_static", + "itertools 0.11.0", + "k256", "libsecp256k1", "log", - "merlin 2.0.1", + "merlin", + "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "paste", "primitive-types", - "rand 0.8.5", - "regex", + "rand", "scale-info", "schnorrkel", - "secp256k1 0.24.3", + "secp256k1", "secrecy", "serde", - "sp-core-hashing", + "sp-crypto-hashing", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -9754,16 +10269,15 @@ dependencies = [ "ss58-registry", "substrate-bip39", "thiserror", - "tiny-bip39", "tracing", "w3f-bls", "zeroize", ] [[package]] -name = "sp-core-hashing" -version = "9.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +name = "sp-crypto-hashing" +version = "0.1.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "blake2b_simd", "byteorder", @@ -9774,88 +10288,89 @@ dependencies = [ ] [[package]] -name = "sp-core-hashing-proc-macro" -version = "9.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "quote", - "sp-core-hashing", - "syn 2.0.48", + "sp-crypto-hashing", + "syn 2.0.82", ] [[package]] name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "10.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] name = "sp-debug-derive" -version = "8.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "14.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "sp-externalities" -version = "0.19.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.29.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "environmental", "parity-scale-codec", - "sp-std", "sp-storage", ] [[package]] name = "sp-genesis-builder" -version = "0.1.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.15.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "parity-scale-codec", + "scale-info", "serde_json", "sp-api", "sp-runtime", - "sp-std", ] [[package]] name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", "thiserror", ] [[package]] name = "sp-io" -version = "23.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "38.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "bytes", + "docify", "ed25519-dalek", "libsecp256k1", "log", "parity-scale-codec", + "polkavm-derive", "rustversion", - "secp256k1 0.24.3", + "secp256k1", "sp-core", + "sp-crypto-hashing", "sp-externalities", "sp-keystore", "sp-runtime-interface", "sp-state-machine", - "sp-std", "sp-tracing", "sp-trie", "tracing", @@ -9864,31 +10379,29 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "24.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "39.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "lazy_static", "sp-core", "sp-runtime", - "strum 0.24.1", + "strum 0.26.3", ] [[package]] name = "sp-keystore" -version = "0.27.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.40.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sp-core", "sp-externalities", - "thiserror", ] [[package]] name = "sp-maybe-compressed-blob" -version = "4.1.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "11.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "thiserror", "zstd 0.12.4", @@ -9896,31 +10409,29 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.1.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.7.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "frame-metadata", "parity-scale-codec", "scale-info", - "sp-std", ] [[package]] name = "sp-mixnet" -version = "0.1.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.12.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-std", ] [[package]] name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "sp-api", "sp-core", @@ -9929,8 +10440,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "8.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "13.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "backtrace", "lazy_static", @@ -9939,8 +10450,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "6.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "32.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "rustc-hash", "serde", @@ -9949,34 +10460,39 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "24.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "39.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "docify", "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", + "num-traits", "parity-scale-codec", "paste", - "rand 0.8.5", + "rand", "scale-info", "serde", + "simple-mermaid", "sp-application-crypto", "sp-arithmetic", "sp-core", "sp-io", "sp-std", "sp-weights", + "tracing", ] [[package]] name = "sp-runtime-interface" -version = "17.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "28.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", + "polkavm-derive", "primitive-types", "sp-externalities", "sp-runtime-interface-proc-macro", @@ -9989,20 +10505,21 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "11.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "18.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "Inflector", - "proc-macro-crate 1.1.3", + "expander", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "35.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", "scale-info", @@ -10011,13 +10528,12 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std", ] [[package]] name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10025,24 +10541,22 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std", ] [[package]] name = "sp-state-machine" -version = "0.28.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.43.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "hash-db 0.16.0", + "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "smallvec", "sp-core", "sp-externalities", "sp-panic-handler", - "sp-std", "sp-trie", "thiserror", "tracing", @@ -10051,66 +10565,63 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "18.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "aes-gcm", - "curve25519-dalek 4.1.1", + "curve25519-dalek", "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sha2 0.10.8", "sp-api", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-externalities", "sp-runtime", "sp-runtime-interface", - "sp-std", "thiserror", - "x25519-dalek 2.0.0", + "x25519-dalek", ] [[package]] name = "sp-std" -version = "8.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "14.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" [[package]] name = "sp-storage" -version = "13.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "21.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", "sp-debug-derive", - "sp-std", ] [[package]] name = "sp-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", - "sp-std", "thiserror", ] [[package]] name = "sp-tracing" -version = "10.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "17.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", - "sp-std", "tracing", "tracing-core", "tracing-subscriber", @@ -10118,8 +10629,8 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "sp-api", "sp-runtime", @@ -10127,8 +10638,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "34.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "async-trait", "parity-scale-codec", @@ -10136,28 +10647,26 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std", "sp-trie", ] [[package]] name = "sp-trie" -version = "22.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "ahash 0.8.7", - "hash-db 0.16.0", - "hashbrown 0.13.2", + "ahash", + "hash-db", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "scale-info", "schnellru", "sp-core", - "sp-std", + "sp-externalities", "thiserror", "tracing", "trie-db", @@ -10166,15 +10675,15 @@ dependencies = [ [[package]] name = "sp-version" -version = "22.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "37.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-runtime", "sp-std", "sp-version-proc-macro", @@ -10183,41 +10692,39 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "8.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "14.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "sp-wasm-interface" -version = "14.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "21.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std", "wasmtime", ] [[package]] name = "sp-weights" -version = "20.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "31.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", "sp-arithmetic", - "sp-core", "sp-debug-derive", - "sp-std", ] [[package]] @@ -10235,6 +10742,15 @@ dependencies = [ "lock_api", ] +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.7.3" @@ -10247,20 +10763,19 @@ dependencies = [ [[package]] name = "sqlformat" -version = "0.2.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" +checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" dependencies = [ - "itertools 0.12.0", "nom", "unicode_categories", ] [[package]] name = "sqlx" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf" +checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" dependencies = [ "sqlx-core", "sqlx-macros", @@ -10269,17 +10784,16 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" +checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" dependencies = [ - "ahash 0.8.7", + "ahash", "atoi", "byteorder", "bytes", "crc", "crossbeam-queue", - "dotenvy", "either", "event-listener 2.5.3", "futures-channel", @@ -10289,7 +10803,7 @@ dependencies = [ "futures-util", "hashlink", "hex", - "indexmap 2.1.0", + "indexmap 2.6.0", "log", "memchr", "native-tls", @@ -10309,9 +10823,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5" +checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" dependencies = [ "proc-macro2", "quote", @@ -10322,14 +10836,13 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841" +checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" dependencies = [ - "atomic-write-file", "dotenvy", "either", - "heck", + "heck 0.4.1", "hex", "once_cell", "proc-macro2", @@ -10347,9 +10860,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490" +checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" dependencies = [ "atoi", "flume", @@ -10370,9 +10883,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.46.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1114ee5900b8569bbc8b1a014a942f937b752af4b44f4607430b5f86cedaac0" +checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8" dependencies = [ "Inflector", "num-format", @@ -10389,6 +10902,24 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "staging-xcm" +version = "14.1.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" +dependencies = [ + "array-bytes", + "bounded-collections", + "derivative", + "environmental", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-weights", + "xcm-procedural", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -10423,26 +10954,46 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "str0m" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" +dependencies = [ + "combine", + "crc", + "fastrand", + "hmac 0.12.1", + "once_cell", + "openssl", + "openssl-sys", + "sctp-proto", + "serde", + "sha-1", + "thiserror", + "tracing", +] + [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros 0.24.3", -] [[package]] name = "strum" -version = "0.25.0" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] [[package]] name = "strum_macros" @@ -10450,7 +11001,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -10459,27 +11010,26 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "substrate-bip39" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" +version = "0.6.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", + "hmac 0.12.1", + "pbkdf2", "schnorrkel", - "sha2 0.9.9", + "sha2 0.10.8", "zeroize", ] @@ -10492,19 +11042,20 @@ dependencies = [ "byteorder", "crunchy", "lazy_static", - "rand 0.8.5", + "rand", "rustc-hex", ] [[package]] name = "substrate-build-script-utils" -version = "3.0.0" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "11.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" [[package]] name = "substrate-fixed" version = "0.5.9" -source = "git+https://github.com/encointer/substrate-fixed#a75f3ba3f7c7893fb420500639cc055f964b1b88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e83ba2b4f68f12ec6b0f55bac0a23a5bcaaf2676f1109c7a5ead6121c7f0622" dependencies = [ "parity-scale-codec", "scale-info", @@ -10513,11 +11064,12 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "38.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ + "docify", "frame-system-rpc-runtime-api", - "futures 0.3.30", + "futures 0.3.31", "jsonrpsee", "log", "parity-scale-codec", @@ -10532,10 +11084,12 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "0.17.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "hyper", + "http-body-util", + "hyper 1.5.0", + "hyper-util", "log", "prometheus", "thiserror", @@ -10554,18 +11108,19 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-v1.3.0#617cb3adbb3fbc69b2ebc62bb6ddefb0ab7e58f6" +version = "24.0.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" dependencies = [ - "ansi_term", "build-helper", "cargo_metadata", + "console", "filetime", "parity-wasm", + "polkavm-linker", "sp-maybe-compressed-blob", - "strum 0.24.1", + "strum 0.26.3", "tempfile", - "toml 0.7.8", + "toml 0.8.19", "walkdir", "wasm-opt", ] @@ -10578,9 +11133,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -10595,25 +11150,36 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "unicode-ident", + "syn 1.0.109", + "unicode-xid", ] [[package]] name = "synstructure" -version = "0.12.6" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "unicode-xid", + "syn 2.0.82", ] [[package]] @@ -10645,9 +11211,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.13" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "target_info" @@ -10657,15 +11223,15 @@ checksum = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" [[package]] name = "tempfile" -version = "3.9.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", - "redox_syscall 0.4.1", - "rustix 0.38.30", - "windows-sys 0.52.0", + "once_cell", + "rustix 0.38.37", + "windows-sys 0.59.0", ] [[package]] @@ -10677,6 +11243,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef" +dependencies = [ + "rustix 0.38.37", + "windows-sys 0.59.0", +] + [[package]] name = "termtree" version = "0.4.1" @@ -10685,22 +11261,22 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -10711,9 +11287,9 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -10740,12 +11316,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.31" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", + "num-conv", "powerfmt", "serde", "time-core", @@ -10760,32 +11337,14 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] -[[package]] -name = "tiny-bip39" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" -dependencies = [ - "anyhow", - "hmac 0.12.1", - "once_cell", - "pbkdf2 0.11.0", - "rand 0.8.5", - "rustc-hash", - "sha2 0.10.8", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -10797,9 +11356,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -10812,32 +11371,31 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite 0.2.13", + "parking_lot 0.12.3", + "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2 0.5.7", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -10846,35 +11404,49 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.10", + "rustls 0.21.12", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite", "tokio", "tokio-util", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "tungstenite", +] + [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.13", + "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -10888,57 +11460,32 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - -[[package]] -name = "toml" -version = "0.8.2" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.2", + "toml_edit", ] [[package]] name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ - "indexmap 2.1.0", "serde", - "serde_spanned", - "toml_datetime", - "winnow", ] [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", @@ -10951,6 +11498,10 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", "tower-layer", "tower-service", "tracing", @@ -10958,33 +11509,31 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite 0.2.13", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "pin-project-lite", "tower-layer", "tower-service", ] [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -10993,7 +11542,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", - "pin-project-lite 0.2.13", + "pin-project-lite", "tracing-attributes", "tracing-core", ] @@ -11006,7 +11555,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -11031,56 +11580,41 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", "tracing-core", ] -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - [[package]] name = "tracing-subscriber" -version = "0.2.25" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ - "ansi_term", - "chrono", - "lazy_static", "matchers", - "parking_lot 0.11.2", + "nu-ansi-term", + "once_cell", + "parking_lot 0.12.3", "regex", - "serde", - "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", - "tracing-serde", ] [[package]] name = "trie-db" -version = "0.28.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" +checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f" dependencies = [ - "hash-db 0.16.0", - "hashbrown 0.13.2", + "hash-db", "log", "rustc-hex", "smallvec", @@ -11092,17 +11626,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ - "hash-db 0.16.0", -] - -[[package]] -name = "triehash" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" -dependencies = [ - "hash-db 0.15.2", - "rlp", + "hash-db", ] [[package]] @@ -11114,14 +11638,14 @@ dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner", + "enum-as-inner 0.5.1", "futures-channel", "futures-io", "futures-util", "idna 0.2.3", "ipnet", "lazy_static", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "thiserror", @@ -11131,24 +11655,50 @@ dependencies = [ "url", ] +[[package]] +name = "trust-dns-proto" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.1", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + [[package]] name = "trust-dns-resolver" -version = "0.22.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" +checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" dependencies = [ "cfg-if", "futures-util", "ipconfig", - "lazy_static", "lru-cache", - "parking_lot 0.12.1", + "once_cell", + "parking_lot 0.12.3", + "rand", "resolv-conf", "smallvec", "thiserror", "tokio", "tracing", - "trust-dns-proto", + "trust-dns-proto 0.23.2", ] [[package]] @@ -11163,6 +11713,26 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "twox-hash" version = "1.6.3" @@ -11171,7 +11741,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -11183,9 +11753,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -11201,15 +11771,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" @@ -11222,21 +11792,21 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unicode_categories" @@ -11251,7 +11821,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -11266,6 +11836,16 @@ dependencies = [ "futures-util", ] +[[package]] +name = "unsigned-varint" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" +dependencies = [ + "bytes", + "tokio-util", +] + [[package]] name = "untrusted" version = "0.7.1" @@ -11280,9 +11860,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna 0.5.0", @@ -11295,11 +11875,17 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" @@ -11315,9 +11901,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "void" @@ -11327,9 +11913,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "w3f-bls" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7335e4c132c28cc43caef6adb339789e599e39adbe78da0c4d547fad48cbc331" +checksum = "6a48c48447120a85b0bdb897ba9426a7aa15b4229498a2e19103e8c9368dd4b2" dependencies = [ "ark-bls12-377", "ark-bls12-381", @@ -11340,9 +11926,9 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_core 0.6.4", + "rand", + "rand_chacha", + "rand_core", "sha2 0.10.8", "sha3", "thiserror", @@ -11351,9 +11937,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -11368,12 +11954,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -11382,34 +11962,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.40" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -11419,9 +12000,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11429,37 +12010,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-instrument" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" +checksum = "2a47ecb37b9734d1085eaa5ae1a81e60801fd8c28d4cabdd8aedb982021918bc" dependencies = [ "parity-wasm", ] [[package]] name = "wasm-opt" -version = "0.116.0" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" dependencies = [ "anyhow", "libc", @@ -11501,7 +12082,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -11695,7 +12276,7 @@ dependencies = [ "memfd", "memoffset", "paste", - "rand 0.8.5", + "rand", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -11717,9 +12298,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.67" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -11731,18 +12312,15 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] [[package]] name = "webpki-roots" -version = "0.22.6" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "which" @@ -11753,14 +12331,14 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.30", + "rustix 0.38.37", ] [[package]] name = "wide" -version = "0.7.14" +version = "0.7.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b31891d644eba1789fb6715f27fbc322e4bdf2ecdc412ede1993246159271613" +checksum = "b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690" dependencies = [ "bytemuck", "safe_arch", @@ -11768,9 +12346,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -11790,11 +12368,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -11828,7 +12406,22 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -11855,7 +12448,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -11890,17 +12492,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -11917,9 +12520,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -11935,9 +12538,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -11953,9 +12556,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -11971,9 +12580,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -11989,9 +12598,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -12007,9 +12616,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -12025,15 +12634,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.34" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -12059,56 +12668,88 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "1.1.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "curve25519-dalek 3.2.0", - "rand_core 0.5.1", + "curve25519-dalek", + "rand_core", + "serde", "zeroize", ] [[package]] -name = "x25519-dalek" -version = "2.0.0" +name = "x509-parser" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" dependencies = [ - "curve25519-dalek 4.1.1", - "rand_core 0.6.4", - "serde", - "zeroize", + "asn1-rs 0.5.2", + "data-encoding", + "der-parser 8.2.0", + "lazy_static", + "nom", + "oid-registry 0.6.1", + "rusticata-macros", + "thiserror", + "time", ] [[package]] name = "x509-parser" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "asn1-rs", - "base64 0.13.1", + "asn1-rs 0.6.2", "data-encoding", - "der-parser", + "der-parser 9.0.0", "lazy_static", "nom", - "oid-registry", + "oid-registry 0.7.1", "rusticata-macros", "thiserror", "time", ] +[[package]] +name = "xcm-procedural" +version = "10.1.0" +source = "git+https://github.com/bifrost-platform/polkadot-sdk?branch=bifrost-polkadot-stable2407#d8e2d11864ca21deb9a753b86cb2396b1c531acb" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.82", +] + +[[package]] +name = "xml-rs" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" + +[[package]] +name = "xmltree" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" +dependencies = [ + "xml-rs", +] + [[package]] name = "yamux" -version = "0.10.2" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" +checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "log", "nohash-hasher", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "pin-project", + "rand", "static_assertions", ] @@ -12123,29 +12764,30 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -12158,7 +12800,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.82", ] [[package]] @@ -12201,9 +12843,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index b4320480..f7b940e1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,51 +40,38 @@ repository = "https://github.com/bifrost-platform/bifrost-node" [workspace.dependencies] # General -substrate-fixed = { git = "https://github.com/encointer/substrate-fixed", default-features = false } -parity-scale-codec = { version = "3.6.4", default-features = false, features = [ +substrate-fixed = { version = "0.5.9", default-features = false } +parity-scale-codec = { version = "3.6.12", default-features = false, features = [ "derive", ] } -scale-info = { version = "2.9.0", default-features = false, features = [ +scale-info = { version = "2.11.3", default-features = false, features = [ "derive", + "serde", ] } -evm = { git = "https://github.com/bifrost-platform/evm", default-features = false, branch = "bifrost-polkadot-v1.3.0" } -environmental = { version = "1.1.2", default-features = false } -clap = { version = "4.0.9", features = ["derive"] } +evm = { git = "https://github.com/bifrost-platform/evm", branch = "bifrost-polkadot-stable2407", default-features = false } +clap = { version = "4.5", features = ["derive"] } hex = { version = "0.4.3", default-features = false } rlp = { version = "0.5.2", default-features = false } sha3 = { version = "0.10", default-features = false } -num_enum = { version = "0.7.0", default-features = false } +num_enum = { version = "0.7.2", default-features = false } impl-serde = { version = "0.4.0", default-features = false } -blake2-rfc = { version = "0.2.18", default-features = false } -libsecp256k1 = { version = "0.7.1", default-features = false } -serde = { version = "1.0.101", default-features = false } -jsonrpsee = { version = "0.16.3", default-features = false } -rustc-hex = { version = "2.0.1", default-features = false } -log = { version = "0.4.20", default-features = false } +serde = { version = "1.0", default-features = false } +jsonrpsee = { version = "0.23.2", default-features = false } +log = { version = "0.4.21", default-features = false } miniscript = { version = "11.0.0", default-features = false, features = [ "no-std", ] } ethabi-decode = { version = "1.0.0", default-features = false } -impl-trait-for-tuples = "0.2.2" -similar-asserts = "1.1.0" -prettyplease = "0.1.18" hex-literal = "0.4.1" -derive_more = "0.99" -proc-macro2 = "1.0" serde_json = "1.0" -futures = "0.3.28" -tokio = "1.32.0" -paste = "1.0.8" -affix = "0.1.2" -quote = "1.0" -case = "1.0" -syn = "1.0" +futures = "0.3.30" +tokio = "1.40.0" array-bytes = "6.1" # Bifrost Primitive +bp-btc-relay = { default-features = false, path = "primitives/btc-relay" } bp-core = { default-features = false, path = "primitives/core" } bp-staking = { default-features = false, path = "primitives/bfc-staking" } -bp-btc-relay = { default-features = false, path = "primitives/btc-relay" } # Bifrost Runtime bifrost-common-constants = { default-features = false, path = "runtime/common/constants" } @@ -121,117 +108,119 @@ precompile-btc-registration-pool = { default-features = false, path = "precompil precompile-btc-socket-queue = { default-features = false, path = "precompiles/btc-socket-queue" } # Substrate Client -sc-cli = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-client-api = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-rpc = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-rpc-api = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-transaction-pool = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-transaction-pool-api = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-chain-spec = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-consensus = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-consensus-aura = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-consensus-grandpa = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-consensus-grandpa-rpc = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-consensus-manual-seal = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-network = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-network-sync = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-service = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-executor = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-telemetry = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-basic-authorship = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -substrate-prometheus-endpoint = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sc-offchain = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } +sc-cli = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-client-api = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-rpc = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-rpc-api = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-transaction-pool = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-transaction-pool-api = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-chain-spec = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-consensus = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-consensus-aura = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-consensus-grandpa = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-consensus-grandpa-rpc = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-consensus-manual-seal = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-network = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-network-sync = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-service = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-executor = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-telemetry = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-basic-authorship = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +substrate-prometheus-endpoint = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sc-offchain = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } # Substrate Primitive -sp-io = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-api = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-block-builder = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-blockchain = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-consensus = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-consensus-aura = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-consensus-grandpa = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-core = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-inherents = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-offchain = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-runtime = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-runtime-interface = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-session = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-std = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-transaction-pool = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-version = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-staking = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-keystore = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-timestamp = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -sp-genesis-builder = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } +sp-io = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-api = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-block-builder = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-blockchain = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-consensus = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-consensus-aura = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-consensus-grandpa = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-core = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-inherents = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-offchain = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-runtime = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-runtime-interface = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-session = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-std = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-transaction-pool = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-version = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-staking = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-keystore = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-timestamp = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +sp-genesis-builder = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } # Substrate FRAME -substrate-frame-rpc-system = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -frame-system = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -frame-support = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -frame-executive = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -frame-benchmarking = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -frame-benchmarking-cli = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -frame-system-benchmarking = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-aura = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-balances = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-grandpa = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-sudo = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-timestamp = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-transaction-payment = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-transaction-payment-rpc = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-scheduler = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-session = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-authorship = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-utility = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-collective = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-democracy = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-membership = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-im-online = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-offences = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-treasury = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-identity = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -pallet-preimage = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } +substrate-frame-rpc-system = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +frame-system = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +frame-support = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +frame-executive = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +frame-benchmarking = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +frame-benchmarking-cli = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +frame-system-benchmarking = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-aura = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-balances = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-grandpa = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-sudo = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-timestamp = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-transaction-payment = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-transaction-payment-rpc = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-scheduler = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-session = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-authorship = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-utility = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-collective = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-democracy = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-membership = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-im-online = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-offences = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-treasury = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-identity = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-preimage = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-safe-mode = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +pallet-tx-pause = { default-features = false, git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } # Substrate Builds -substrate-wasm-builder = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } -substrate-build-script-utils = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-v1.3.0" } +substrate-wasm-builder = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } +substrate-build-script-utils = { git = "https://github.com/bifrost-platform/polkadot-sdk", branch = "bifrost-polkadot-stable2407" } # Frontier Client -fc-db = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fc-rpc = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0", features = [ +fc-db = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fc-rpc = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407", features = [ "txpool", ] } -fc-mapping-sync = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fc-rpc-core = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fc-rpc-debug = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fc-rpc-trace = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fc-rpc-txpool = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fc-api = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } +fc-mapping-sync = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fc-rpc-core = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fc-rpc-debug = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fc-rpc-trace = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fc-rpc-txpool = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fc-api = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } # Frontier Primitive -fp-self-contained = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fp-account = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fp-storage = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fp-evm = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fp-ext = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fp-rpc = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fp-rpc-debug = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fp-rpc-txpool = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -fp-rpc-evm-tracing-events = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } +fp-self-contained = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fp-account = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fp-storage = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fp-evm = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fp-ext = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fp-rpc = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fp-rpc-debug = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fp-rpc-txpool = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +fp-rpc-evm-tracing-events = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } # Frontier Runtime -evm-tracer = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } +evm-tracer = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } # Frontier FRAME -pallet-evm = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -pallet-ethereum = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -pallet-base-fee = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -pallet-evm-precompile-bn128 = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -pallet-evm-precompile-modexp = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } -pallet-evm-precompile-blake2 = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } +pallet-evm = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +pallet-ethereum = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +pallet-base-fee = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +pallet-evm-precompile-bn128 = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +pallet-evm-precompile-modexp = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } +pallet-evm-precompile-blake2 = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } # Frontier Utilities -precompile-utils = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-v1.3.0" } +precompile-utils = { default-features = false, git = "https://github.com/bifrost-platform/bifrost-frontier", branch = "bifrost-polkadot-stable2407" } diff --git a/node/common/Cargo.toml b/node/common/Cargo.toml index 6b5c382b..5c9f64c2 100644 --- a/node/common/Cargo.toml +++ b/node/common/Cargo.toml @@ -34,6 +34,7 @@ frame-benchmarking = { workspace = true, features = ["std"] } sp-core = { workspace = true, features = ["std"] } sp-runtime = { workspace = true, features = ["std"] } sp-api = { workspace = true, features = ["std"] } +sp-io = { workspace = true, features = ["std"] } sp-blockchain = { workspace = true } sp-block-builder = { workspace = true, features = ["std"] } diff --git a/node/common/src/rpc.rs b/node/common/src/rpc.rs index fdf87660..32fb6b7f 100644 --- a/node/common/src/rpc.rs +++ b/node/common/src/rpc.rs @@ -2,17 +2,14 @@ use crate::cli_opt::EthApi as EthApiCmd; use std::{collections::BTreeMap, sync::Arc}; -use fc_rpc::{ - EthBlockDataCacheTask, OverrideHandle, RuntimeApiStorageOverride, SchemaV1Override, - SchemaV2Override, SchemaV3Override, StorageOverride, -}; +use fc_rpc::{EthBlockDataCacheTask, StorageOverride}; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use sc_client_api::{backend::Backend, StorageProvider}; use sc_consensus_grandpa::{ FinalityProofProvider, GrandpaJustificationStream, SharedAuthoritySet, SharedVoterState, }; use sc_consensus_manual_seal::EngineCommand; -use sc_network::NetworkService; +use sc_network::service::traits::NetworkService; use sc_network_sync::SyncingService; use sc_rpc::SubscriptionTaskExecutor; use sc_rpc_api::DenyUnsafe; @@ -20,10 +17,6 @@ use sc_service::TaskManager; use sc_transaction_pool::{ChainApi, Pool}; use bp_core::{BlockNumber, Hash, Header}; -use fp_rpc::{self, EthereumRuntimeRPCApi}; -use fp_storage::EthereumStorageSchema; -use sp_api::ProvideRuntimeApi; -use sp_blockchain::HeaderBackend; use sp_core::H256; use sp_runtime::{generic, traits::Block as BlockT, OpaqueExtrinsic as UncheckedExtrinsic}; @@ -41,35 +34,6 @@ where fc_rpc::frontier_backend_client::SystemAccountId20StorageOverride; } -/// Override storage -pub fn overrides_handle(client: Arc) -> Arc> -where - B: BlockT, - C: ProvideRuntimeApi, - C::Api: EthereumRuntimeRPCApi, - C: HeaderBackend + StorageProvider + 'static, - BE: Backend + 'static, -{ - let mut overrides_map = BTreeMap::new(); - overrides_map.insert( - EthereumStorageSchema::V1, - Box::new(SchemaV1Override::new(client.clone())) as Box>, - ); - overrides_map.insert( - EthereumStorageSchema::V2, - Box::new(SchemaV2Override::new(client.clone())) as Box>, - ); - overrides_map.insert( - EthereumStorageSchema::V3, - Box::new(SchemaV3Override::new(client.clone())) as Box>, - ); - - Arc::new(OverrideHandle { - schemas: overrides_map, - fallback: Box::new(RuntimeApiStorageOverride::new(client.clone())), - }) -} - /// Extra dependencies for GRANDPA pub struct GrandpaDeps { /// Voting round info. @@ -105,7 +69,7 @@ pub struct FullDevDeps { /// The Node authority flag pub is_authority: bool, /// Network service - pub network: Arc>, + pub network: Arc, /// EthFilterApi pool. pub filter_pool: FilterPool, /// List of optional RPC extensions. @@ -119,7 +83,7 @@ pub struct FullDevDeps { /// Fee history cache. pub fee_history_cache: FeeHistoryCache, /// Ethereum data access overrides. - pub overrides: Arc>, + pub overrides: Arc>, /// Cache for Ethereum block data. pub block_data_cache: Arc>, /// Manual seal command sink @@ -157,7 +121,7 @@ pub struct FullDeps { /// The Node authority flag pub is_authority: bool, /// Network service - pub network: Arc>, + pub network: Arc, /// EthFilterApi pool. pub filter_pool: FilterPool, /// List of optional RPC extensions. @@ -171,7 +135,7 @@ pub struct FullDeps { /// Fee history cache. pub fee_history_cache: FeeHistoryCache, /// Ethereum data access overrides. - pub overrides: Arc>, + pub overrides: Arc>, /// Cache for Ethereum block data. pub block_data_cache: Arc>, /// Maximum number of logs in one query. @@ -190,9 +154,9 @@ pub struct SpawnTasksParams<'a, B: BlockT, C, BE> { pub task_manager: &'a TaskManager, pub client: Arc, pub substrate_backend: Arc, - pub frontier_backend: fc_db::Backend, + pub frontier_backend: Arc>, pub filter_pool: Option, - pub overrides: Arc>, + pub overrides: Arc>, pub fee_history_limit: u64, pub fee_history_cache: FeeHistoryCache, } diff --git a/node/common/src/service.rs b/node/common/src/service.rs index 21a9010b..c4994559 100644 --- a/node/common/src/service.rs +++ b/node/common/src/service.rs @@ -3,6 +3,7 @@ use crate::cli_opt::{BackendTypeConfig, RpcConfig}; use std::{path::Path, sync::Arc}; use fc_db::DatabaseSource; +use fc_rpc::StorageOverrideHandler; use sc_client_api::{ backend::{Backend, StateBackend}, AuxStore, StorageProvider, @@ -14,8 +15,13 @@ use sp_api::ProvideRuntimeApi; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; use sp_runtime::traits::BlakeTwo256; +/// Only enable the benchmarking host functions when we actually want to benchmark. +#[cfg(feature = "runtime-benchmarks")] pub type HostFunctions = - (frame_benchmarking::benchmarking::HostFunctions, fp_ext::bifrost_ext::HostFunctions); + (sp_io::SubstrateHostFunctions, frame_benchmarking::benchmarking::HostFunctions); +/// Otherwise we use empty host functions for ext host functions. +#[cfg(not(feature = "runtime-benchmarks"))] +pub type HostFunctions = (sp_io::SubstrateHostFunctions, fp_ext::bifrost_ext::HostFunctions); /// Configure frontier database. pub fn frontier_database_dir(config: &Configuration, path: &str) -> std::path::PathBuf { @@ -28,7 +34,7 @@ pub fn open_frontier_backend( client: Arc, config: &Configuration, rpc_config: &RpcConfig, -) -> Result, String> +) -> Result, String> where C: ProvideRuntimeApi + StorageProvider + AuxStore, C: HeaderBackend + HeaderMetadata, @@ -38,32 +44,34 @@ where BE::State: StateBackend, { let frontier_backend = match rpc_config.frontier_backend_type { - BackendTypeConfig::KeyValue => fc_db::Backend::KeyValue(fc_db::kv::Backend::::new( - client, - &fc_db::kv::DatabaseSettings { - source: match config.database { - DatabaseSource::RocksDb { .. } => DatabaseSource::RocksDb { - path: frontier_database_dir(config, "db"), - cache_size: 0, - }, - DatabaseSource::ParityDb { .. } => { - DatabaseSource::ParityDb { path: frontier_database_dir(config, "paritydb") } - }, - DatabaseSource::Auto { .. } => DatabaseSource::Auto { - rocksdb_path: frontier_database_dir(config, "db"), - paritydb_path: frontier_database_dir(config, "paritydb"), - cache_size: 0, - }, - _ => { - return Err( - "Supported db sources: `rocksdb` | `paritydb` | `auto`".to_string() - ) + BackendTypeConfig::KeyValue => { + fc_db::Backend::KeyValue(Arc::new(fc_db::kv::Backend::::new( + client, + &fc_db::kv::DatabaseSettings { + source: match config.database { + DatabaseSource::RocksDb { .. } => DatabaseSource::RocksDb { + path: frontier_database_dir(config, "db"), + cache_size: 0, + }, + DatabaseSource::ParityDb { .. } => DatabaseSource::ParityDb { + path: frontier_database_dir(config, "paritydb"), + }, + DatabaseSource::Auto { .. } => DatabaseSource::Auto { + rocksdb_path: frontier_database_dir(config, "db"), + paritydb_path: frontier_database_dir(config, "paritydb"), + cache_size: 0, + }, + _ => { + return Err( + "Supported db sources: `rocksdb` | `paritydb` | `auto`".to_string() + ) + }, }, }, - }, - )?), + )?)) + }, BackendTypeConfig::Sql { pool_size, num_ops_timeout, thread_count, cache_size } => { - let overrides = crate::rpc::overrides_handle(client.clone()); + let overrides = Arc::new(StorageOverrideHandler::::new(client.clone())); let sqlite_db_path = frontier_database_dir(config, "sql"); std::fs::create_dir_all(&sqlite_db_path).expect("failed creating sql db directory"); let backend = futures::executor::block_on(fc_db::sql::Backend::new( @@ -82,7 +90,7 @@ where overrides.clone(), )) .unwrap_or_else(|err| panic!("failed creating sql backend: {:?}", err)); - fc_db::Backend::Sql(backend) + fc_db::Backend::Sql(Arc::new(backend)) }, }; diff --git a/node/common/src/tracing.rs b/node/common/src/tracing.rs index 24be9139..8d250c2c 100644 --- a/node/common/src/tracing.rs +++ b/node/common/src/tracing.rs @@ -12,11 +12,11 @@ use sc_client_api::{backend::Backend, BlockOf, BlockchainEvents, StateBackend, S use substrate_prometheus_endpoint::Registry as PrometheusRegistry; use tokio::sync::Semaphore; -use sp_api::{BlockT, HeaderT, ProvideRuntimeApi}; +use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; use sp_core::H256; -use sp_runtime::traits::BlakeTwo256; +use sp_runtime::traits::{BlakeTwo256, Block as BlockT, Header as HeaderT}; use std::{sync::Arc, time::Duration}; @@ -66,9 +66,9 @@ where let (debug_task, debug_requester) = DebugHandler::task( Arc::clone(¶ms.client), Arc::clone(¶ms.substrate_backend), - match params.frontier_backend { - fc_db::Backend::KeyValue(b) => Arc::new(b), - fc_db::Backend::Sql(b) => Arc::new(b), + match &*params.frontier_backend { + fc_db::Backend::KeyValue(b) => b.clone(), + fc_db::Backend::Sql(b) => b.clone(), }, Arc::clone(&permit_pool), Arc::clone(¶ms.overrides), diff --git a/node/core/Cargo.toml b/node/core/Cargo.toml index b3f26615..4182be8c 100644 --- a/node/core/Cargo.toml +++ b/node/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bifrost-node" -version = "2.0.0" +version = "2.0.1" description = "The node client implementation for Bifrost" authors = { workspace = true } homepage = { workspace = true } @@ -19,6 +19,9 @@ name = "bifrost-node" # third-party dependencies clap = { workspace = true } +# substrate primitive dependencies +sp-runtime = { workspace = true, features = ["std"] } + # substrate client dependencies sc-cli = { workspace = true } sc-service = { workspace = true } diff --git a/node/core/src/command.rs b/node/core/src/command.rs index 5db084f9..9d5962e1 100644 --- a/node/core/src/command.rs +++ b/node/core/src/command.rs @@ -64,12 +64,12 @@ impl SubstrateCli for Cli { fn load_spec(&self, id: &str) -> Result, String> { Ok(match id { - "dev" => Box::new(bifrost_dev_node::chain_spec::development_config()?), - "testnet-local" => Box::new(bifrost_testnet_node::chain_spec::testnet_config()?), + "dev" => Box::new(bifrost_dev_node::chain_spec::development_config()), + "testnet-local" => Box::new(bifrost_testnet_node::chain_spec::testnet_config()), "testnet" => Box::new(bifrost_testnet_node::chain_spec::ChainSpec::from_json_file( std::path::PathBuf::from("./specs/bifrost-testnet.json"), )?), - "mainnet-local" => Box::new(bifrost_mainnet_node::chain_spec::mainnet_config()?), + "mainnet-local" => Box::new(bifrost_mainnet_node::chain_spec::mainnet_config()), "mainnet" => Box::new(bifrost_mainnet_node::chain_spec::ChainSpec::from_json_file( std::path::PathBuf::from("./specs/bifrost-mainnet.json"), )?), @@ -294,7 +294,9 @@ pub fn run() -> sc_cli::Result<()> { ); } - cmd.run::(config) + cmd.run_with_spec::, ()>(Some( + config.chain_spec, + )) }, BenchmarkCmd::Block(cmd) => { let PartialComponents { client, .. } = diff --git a/node/dev/src/chain_spec.rs b/node/dev/src/chain_spec.rs index a17f09ac..78e89efa 100644 --- a/node/dev/src/chain_spec.rs +++ b/node/dev/src/chain_spec.rs @@ -8,16 +8,18 @@ use bifrost_dev_runtime as devnet; use fp_evm::GenesisAccount; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; +use sc_chain_spec::Properties; use sc_service::ChainType; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_consensus_grandpa::AuthorityId as GrandpaId; -use sp_core::{Pair, Public}; -use sp_runtime::{BoundedVec, Perbill}; +use sp_core::{Pair, Public, H160}; +use sp_runtime::Perbill; use hex_literal::hex; +use std::collections::BTreeMap; /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// Generate a crypto pair from seed. pub fn get_from_seed(seed: &str) -> ::Public { @@ -56,110 +58,95 @@ pub fn inflation_config() -> InflationInfo { } } -pub fn development_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or_else(|| "Development wasm not available".to_string())?; +fn properties() -> Properties { + let mut properties = Properties::new(); + properties.insert("tokenDecimals".into(), 18.into()); + properties.insert("tokenSymbol".into(), "BFC".into()); + properties +} - Ok(ChainSpec::from_genesis( - // Name - "Bifrost Development", - // ID - "dev", - ChainType::Development, - move || { - development_genesis( - wasm_binary, - // Validator candidates - vec![( - // Stash account - AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), - // Controller account - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Relayer account - AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), - get_from_seed::("Alice"), - get_from_seed::("Alice"), - get_from_seed::("Alice"), - 1_000 * BFC * SUPPLY_FACTOR, - )], - // Nominations - vec![], - // Council Members - vec![ - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), - AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), - ], - // Technical Committee Members - vec![ - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), - AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), - ], - // Relay Executives - vec![AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58"))], - // Sudo account +pub fn development_config() -> ChainSpec { + ChainSpec::builder(WASM_BINARY.expect("WASM not available"), Default::default()) + .with_name("Bifrost Development") + .with_id("dev") + .with_chain_type(ChainType::Development) + .with_properties(properties()) + .with_genesis_config_patch(development_genesis( + // Validator candidates + vec![( + // Stash account + AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), + // Controller account AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Socket queue authority + // Relayer account + AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), + get_from_seed::("Alice"), + get_from_seed::("Alice"), + get_from_seed::("Alice"), + 1_000 * BFC * SUPPLY_FACTOR, + )], + // Nominations + vec![], + // Council Members + vec![ AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Pre-funded accounts - vec![ - // Stash accounts - AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), - AccountId::from(hex!("fc9B16D9ADe4712E762503C5801F59f2011D9Ad1")), - AccountId::from(hex!("FA374f977f325Aa41c7EC7e98306ee531F8A2c32")), - AccountId::from(hex!("C548bFa03FF5be8096Be0FAa2dbC66c3bC440258")), - AccountId::from(hex!("E9dfCCE5F48A8896fC79A3e674E96443057ed2F4")), - AccountId::from(hex!("761058f6Ffe8cC41fb40Bdc56FCcc2067bc5b5F2")), - AccountId::from(hex!("ca1134B75604209B66a94e9Bc3278b978FbEE708")), - AccountId::from(hex!("C7b701010559703508997Bd029A0F2aE689BEF20")), - AccountId::from(hex!("7b5e2523fF3B55f4bf122D41D4202Fc2F469a27B")), - AccountId::from(hex!("5f01df1aB45ef0542F04234DDCE70Aa455a83fC4")), - // Controller accounts - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), - AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), - AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")), - AccountId::from(hex!("Ff64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB")), - AccountId::from(hex!("C0F0f4ab324C46e55D02D0033343B4Be8A55532d")), - AccountId::from(hex!("7BF369283338E12C90514468aa3868A551AB2929")), - AccountId::from(hex!("931f3600a299fd9B24cEfB3BfF79388D19804BeA")), - AccountId::from(hex!("C41C5F1123ECCd5ce233578B2e7ebd5693869d73")), - AccountId::from(hex!("2898FE7a42Be376C8BC7AF536A940F7Fd5aDd423")), - // Relayer accounts - AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), - AccountId::from(hex!("12159710B13fe31Cca949BcAfB190772Fb0E220C")), - AccountId::from(hex!("6E574113B9A9105ba6B5877379a25b4Fc8327c5A")), - AccountId::from(hex!("a7e19a783c6BB2A3732CcAD33DDD022B0aE8A439")), - AccountId::from(hex!("7Bd2836681618e229BE5E6912B6969Ae3565A5C5")), - AccountId::from(hex!("8e0Ed0855D3E5244E4302CAA2154F6FFDeeAFA9f")), - AccountId::from(hex!("f0d9Abf34208681da3BBc84A59d4244506D3D012")), - AccountId::from(hex!("4EA8C2D0826Bc3242d093A05c92a3771c43B919A")), - AccountId::from(hex!("f4fc2d9Be3D6e19cCAfd575dE7CB290A585A1a22")), - AccountId::from(hex!("962dBf2aecF6545f552373487127976fD5B55105")), - ], - ) - }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - // Fork ID - None, - // Properties - Some( - serde_json::from_str("{\"tokenDecimals\": 18, \"tokenSymbol\": \"BFC\"}") - .expect("Provided valid json map"), - ), - // Extensions - None, - )) + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), + ], + // Technical Committee Members + vec![ + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), + ], + // Relay Executives + vec![AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58"))], + // Sudo account + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Socket queue authority + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Pre-funded accounts + vec![ + // Stash accounts + AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), + AccountId::from(hex!("fc9B16D9ADe4712E762503C5801F59f2011D9Ad1")), + AccountId::from(hex!("FA374f977f325Aa41c7EC7e98306ee531F8A2c32")), + AccountId::from(hex!("C548bFa03FF5be8096Be0FAa2dbC66c3bC440258")), + AccountId::from(hex!("E9dfCCE5F48A8896fC79A3e674E96443057ed2F4")), + AccountId::from(hex!("761058f6Ffe8cC41fb40Bdc56FCcc2067bc5b5F2")), + AccountId::from(hex!("ca1134B75604209B66a94e9Bc3278b978FbEE708")), + AccountId::from(hex!("C7b701010559703508997Bd029A0F2aE689BEF20")), + AccountId::from(hex!("7b5e2523fF3B55f4bf122D41D4202Fc2F469a27B")), + AccountId::from(hex!("5f01df1aB45ef0542F04234DDCE70Aa455a83fC4")), + // Controller accounts + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), + AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")), + AccountId::from(hex!("Ff64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB")), + AccountId::from(hex!("C0F0f4ab324C46e55D02D0033343B4Be8A55532d")), + AccountId::from(hex!("7BF369283338E12C90514468aa3868A551AB2929")), + AccountId::from(hex!("931f3600a299fd9B24cEfB3BfF79388D19804BeA")), + AccountId::from(hex!("C41C5F1123ECCd5ce233578B2e7ebd5693869d73")), + AccountId::from(hex!("2898FE7a42Be376C8BC7AF536A940F7Fd5aDd423")), + // Relayer accounts + AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), + AccountId::from(hex!("12159710B13fe31Cca949BcAfB190772Fb0E220C")), + AccountId::from(hex!("6E574113B9A9105ba6B5877379a25b4Fc8327c5A")), + AccountId::from(hex!("a7e19a783c6BB2A3732CcAD33DDD022B0aE8A439")), + AccountId::from(hex!("7Bd2836681618e229BE5E6912B6969Ae3565A5C5")), + AccountId::from(hex!("8e0Ed0855D3E5244E4302CAA2154F6FFDeeAFA9f")), + AccountId::from(hex!("f0d9Abf34208681da3BBc84A59d4244506D3D012")), + AccountId::from(hex!("4EA8C2D0826Bc3242d093A05c92a3771c43B919A")), + AccountId::from(hex!("f4fc2d9Be3D6e19cCAfd575dE7CB290A585A1a22")), + AccountId::from(hex!("962dBf2aecF6545f552373487127976fD5B55105")), + ], + )) + .build() } /// Configure initial storage state for FRAME modules. fn development_genesis( - wasm_binary: &[u8], initial_validators: Vec<( AccountId, AccountId, @@ -176,95 +163,72 @@ fn development_genesis( root_key: AccountId, authority: AccountId, endowed_accounts: Vec, -) -> devnet::RuntimeGenesisConfig { +) -> serde_json::Value { let revert_bytecode = vec![0x60, 0x00, 0x60, 0x00, 0xFD]; - devnet::RuntimeGenesisConfig { - system: devnet::SystemConfig { - // Add Wasm runtime to storage. - code: wasm_binary.to_vec(), - ..Default::default() - }, - balances: devnet::BalancesConfig { - balances: endowed_accounts + + serde_json::json!({ + "balances": { + "balances": endowed_accounts .iter() .cloned() .map(|k| (k, 100_000_000_000 * BFC)) - .collect(), + .collect::>() }, - session: devnet::SessionConfig { - keys: initial_validators + "session": { + "keys": initial_validators .iter() .map(|x| { (x.1.clone(), x.1.clone(), session_keys(x.3.clone(), x.4.clone(), x.5.clone())) }) - .collect::>(), + .collect::>() }, - aura: Default::default(), - grandpa: Default::default(), - im_online: Default::default(), - sudo: devnet::SudoConfig { key: Some(root_key) }, - transaction_payment: Default::default(), - evm: devnet::EVMConfig { - // We need _some_ code inserted at the precompile address so that - // the evm will actually call the address. - accounts: devnet::Precompiles::used_addresses() - .map(|addr| { - ( - addr.into(), - GenesisAccount { - nonce: Default::default(), - balance: Default::default(), - storage: Default::default(), - code: revert_bytecode.clone(), - }, - ) - }) - .collect(), - ..Default::default() + "sudo": { + "key": Some(root_key) + }, + "evm": { + "accounts": + // We need _some_ code inserted at the precompile address so that + // the evm will actually call the address. + devnet::Precompiles::used_addresses() + .map(|addr| { + ( + addr.into(), + GenesisAccount { + nonce: Default::default(), + balance: Default::default(), + storage: Default::default(), + code: revert_bytecode.clone(), + }, + ) + }) + .collect::>() + }, + "baseFee": { + "baseFeePerGas": sp_core::U256::from(1_000 * GWEI * SUPPLY_FACTOR), + "elasticity": sp_runtime::Permill::zero() }, - ethereum: Default::default(), - base_fee: devnet::BaseFeeConfig::new( - sp_core::U256::from(1_000 * GWEI * SUPPLY_FACTOR), - sp_runtime::Permill::zero(), - ), - relay_manager: Default::default(), - bfc_staking: devnet::BfcStakingConfig { - candidates: initial_validators + "bfcStaking": { + "candidates": initial_validators .iter() .cloned() .map(|(stash, controller, relayer, _, _, _, bond)| { (stash, controller, relayer, bond) }) - .collect(), - nominations: initial_nominators, - inflation_config: inflation_config(), - }, - bfc_utility: Default::default(), - bfc_offences: Default::default(), - democracy: Default::default(), - council: Default::default(), - technical_committee: Default::default(), - relay_executive: Default::default(), - council_membership: devnet::CouncilMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_council_members.clone()) - .expect("Membership must be initialized."), + .collect::>(), + "nominations": initial_nominators, + "inflationConfig": inflation_config() }, - technical_membership: devnet::TechnicalMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_tech_committee_members.clone()) - .expect("Membership must be initialized"), + "councilMembership": { + "members": initial_council_members.clone() }, - relay_executive_membership: devnet::RelayExecutiveMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_relay_executives.clone()) - .expect("Membership must be initialized"), + "technicalMembership": { + "members": initial_tech_committee_members.clone() }, - treasury: Default::default(), - btc_registration_pool: Default::default(), - btc_socket_queue: devnet::BtcSocketQueueConfig { - authority: Some(authority), - ..Default::default() + "relayExecutiveMembership": { + "members": initial_relay_executives.clone() }, - } + "btcSocketQueue": { + "authority": Some(authority) + } + }) } diff --git a/node/dev/src/service.rs b/node/dev/src/service.rs index 7978a340..ec990a5b 100644 --- a/node/dev/src/service.rs +++ b/node/dev/src/service.rs @@ -9,19 +9,19 @@ use std::{collections::BTreeMap, sync::Arc, time::Duration}; use bifrost_common_node::{ cli_opt::{EthApi as EthApiCmd, RpcConfig}, rpc::{FullDevDeps, GrandpaDeps, SpawnTasksParams, TracingConfig}, - service::open_frontier_backend, + service::{open_frontier_backend, HostFunctions}, tracing::{spawn_tracing_tasks, RpcRequesters}, }; use fc_mapping_sync::{kv::MappingSyncWorker, SyncStrategy}; -use fc_rpc::EthTask; +use fc_rpc::{EthTask, StorageOverrideHandler}; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use sc_client_api::{Backend, BlockBackend, BlockchainEvents}; use sc_consensus_aura::{ImportQueueParams, SlotProportion, StartAuraParams}; use sc_consensus_manual_seal::EngineCommand; -pub use sc_executor::NativeElseWasmExecutor; -use sc_network::NetworkService; +pub use sc_executor::WasmExecutor; +use sc_network::service::traits::NetworkService; use sc_network_sync::SyncingService; use sc_rpc_api::DenyUnsafe; use sc_service::{ @@ -32,9 +32,8 @@ use sc_telemetry::{Telemetry, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use bp_core::*; -use sp_api::NumberFor; use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; -use sp_runtime::traits::Block as BlockT; +use sp_runtime::traits::{Block as BlockT, NumberFor}; /// The minimum period of blocks on which justifications will be /// imported and generated. @@ -63,8 +62,7 @@ pub mod dev { } /// The full client type definition. -type FullClient = - sc_service::TFullClient>; +type FullClient = sc_service::TFullClient>; /// The full backend type definition. type FullBackend = sc_service::TFullBackend; @@ -77,7 +75,8 @@ pub type TransactionPool = sc_transaction_pool::FullPool; /// Builds a new service for a full client. pub fn new_full(config: Configuration, rpc_config: RpcConfig) -> Result { - new_full_base(config, rpc_config).map(|NewFullBase { task_manager, .. }| task_manager) + new_full_base::>(config, rpc_config) + .map(|NewFullBase { task_manager, .. }| task_manager) } /// Builds a new service for test client. @@ -85,7 +84,8 @@ pub fn new_manual( config: Configuration, rpc_config: RpcConfig, ) -> Result { - new_manual_base(config, rpc_config).map(|NewFullBase { task_manager, .. }| task_manager) + new_manual_base::>(config, rpc_config) + .map(|NewFullBase { task_manager, .. }| task_manager) } /// Result of [`new_full_base`]. @@ -95,7 +95,7 @@ pub struct NewFullBase { /// The client instance of the node. pub client: Arc, /// The networking service of the node. - pub network: Arc::Hash>>, + pub network: Arc, /// The transaction pool of the node. pub transaction_pool: Arc, /// The rpc handlers of the node. @@ -116,8 +116,8 @@ pub struct RpcExtensionsBuilder<'a> { pub backend: Arc, pub select_chain: FullSelectChain, pub transaction_pool: Arc, - pub network: Arc::Hash>>, - pub frontier_backend: fc_db::Backend, + pub network: Arc, + pub frontier_backend: Arc>, pub sync_service: Arc>, pub command_sink: Option>>, @@ -141,7 +141,7 @@ pub fn new_partial( FullSelectChain, >, sc_consensus_grandpa::LinkHalf, - fc_db::Backend, + fc_db::Backend, Option, ), >, @@ -158,7 +158,7 @@ pub fn new_partial( }) .transpose()?; - let executor = sc_service::new_native_or_wasm_executor(&config); + let executor = sc_service::new_wasm_executor(config); let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( @@ -231,10 +231,13 @@ pub fn new_partial( } /// Creates a full service from the configuration. -pub fn new_full_base( +pub fn new_full_base( config: Configuration, rpc_config: RpcConfig, -) -> Result { +) -> Result +where + NB: sc_network::NetworkBackend::Hash>, +{ let sc_service::PartialComponents { client, backend, @@ -246,7 +249,12 @@ pub fn new_full_base( other: (grandpa_block_import, grandpa_link, frontier_backend, mut telemetry), } = new_partial(&config, &rpc_config)?; - let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); + let mut net_config = + sc_network::config::FullNetworkConfiguration::<_, _, NB>::new(&config.network); + let peer_store_handle = net_config.peer_store_handle(); + let metrics = NB::register_notification_metrics( + config.prometheus_config.as_ref().map(|cfg| &cfg.registry), + ); let shared_voter_state = sc_consensus_grandpa::SharedVoterState::empty(); let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name( @@ -254,9 +262,14 @@ pub fn new_full_base( &config.chain_spec, ); - net_config.add_notification_protocol(sc_consensus_grandpa::grandpa_peers_set_config( - grandpa_protocol_name.clone(), - )); + let (grandpa_protocol_config, grandpa_notification_service) = + sc_consensus_grandpa::grandpa_peers_set_config::<_, NB>( + grandpa_protocol_name.clone(), + metrics.clone(), + peer_store_handle, + ); + + net_config.add_notification_protocol(grandpa_protocol_config); let warp_sync = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( backend.clone(), @@ -275,6 +288,7 @@ pub fn new_full_base( block_announce_validator_builder: None, warp_sync_params: Some(WarpSyncParams::WithProvider(warp_sync)), block_relay: None, + metrics, })?; if config.offchain_worker.enabled { @@ -289,7 +303,7 @@ pub fn new_full_base( transaction_pool: Some(OffchainTransactionPoolFactory::new( transaction_pool.clone(), )), - network_provider: network.clone(), + network_provider: Arc::new(network.clone()), enable_http_requests: true, custom_extensions: |_| vec![], }) @@ -320,7 +334,7 @@ pub fn new_full_base( select_chain: select_chain.clone(), transaction_pool: transaction_pool.clone(), network: network.clone(), - frontier_backend: frontier_backend.clone(), + frontier_backend: Arc::new(frontier_backend), command_sink: None, sync_service: sync_service.clone(), }, @@ -406,6 +420,7 @@ pub fn new_full_base( config: grandpa_config, link: grandpa_link, network: network.clone(), + notification_service: grandpa_notification_service, telemetry: telemetry.as_ref().map(|x| x.handle()), voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(), prometheus_registry, @@ -426,10 +441,13 @@ pub fn new_full_base( } /// Creates a test service from the configuration. -pub fn new_manual_base( +pub fn new_manual_base( config: Configuration, rpc_config: RpcConfig, -) -> Result { +) -> Result +where + NB: sc_network::NetworkBackend::Hash>, +{ use sc_consensus_manual_seal::{ consensus::{aura::AuraConsensusDataProvider, timestamp::SlotTimestampProvider}, run_manual_seal, ManualSealParams, @@ -446,7 +464,12 @@ pub fn new_manual_base( other: (grandpa_block_import, grandpa_link, frontier_backend, mut telemetry), } = new_partial(&config, &rpc_config)?; - let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); + let mut net_config = + sc_network::config::FullNetworkConfiguration::<_, _, NB>::new(&config.network); + let peer_store_handle = net_config.peer_store_handle(); + let metrics = NB::register_notification_metrics( + config.prometheus_config.as_ref().map(|cfg| &cfg.registry), + ); let shared_voter_state = sc_consensus_grandpa::SharedVoterState::empty(); let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name( @@ -454,9 +477,14 @@ pub fn new_manual_base( &config.chain_spec, ); - net_config.add_notification_protocol(sc_consensus_grandpa::grandpa_peers_set_config( - grandpa_protocol_name.clone(), - )); + let (grandpa_protocol_config, grandpa_notification_service) = + sc_consensus_grandpa::grandpa_peers_set_config::<_, NB>( + grandpa_protocol_name.clone(), + metrics.clone(), + peer_store_handle, + ); + + net_config.add_notification_protocol(grandpa_protocol_config); let warp_sync = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( backend.clone(), @@ -475,6 +503,7 @@ pub fn new_manual_base( block_announce_validator_builder: None, warp_sync_params: Some(WarpSyncParams::WithProvider(warp_sync)), block_relay: None, + metrics, })?; if config.offchain_worker.enabled { @@ -489,7 +518,7 @@ pub fn new_manual_base( transaction_pool: Some(OffchainTransactionPoolFactory::new( transaction_pool.clone(), )), - network_provider: network.clone(), + network_provider: Arc::new(network.clone()), enable_http_requests: true, custom_extensions: |_| vec![], }) @@ -532,7 +561,7 @@ pub fn new_manual_base( select_chain: select_chain.clone(), transaction_pool: transaction_pool.clone(), network: network.clone(), - frontier_backend: frontier_backend.clone(), + frontier_backend: Arc::new(frontier_backend), command_sink: Some(command_sink.clone()), sync_service: sync_service.clone(), }, @@ -599,6 +628,7 @@ pub fn new_manual_base( config: grandpa_config, link: grandpa_link, network: network.clone(), + notification_service: grandpa_notification_service, telemetry: telemetry.as_ref().map(|x| x.handle()), voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(), prometheus_registry, @@ -649,7 +679,7 @@ pub fn build_rpc_extensions_builder( let filter_pool: FilterPool = Arc::new(std::sync::Mutex::new(BTreeMap::new())); let ethapi_cmd = rpc_config.ethapi.clone(); - let overrides = bifrost_common_node::rpc::overrides_handle(client.clone()); + let overrides = Arc::new(StorageOverrideHandler::::new(client.clone())); let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( builder.spawn_handle, @@ -708,7 +738,7 @@ pub fn build_rpc_extensions_builder( ), ); - match frontier_backend.clone() { + match &*frontier_backend { fc_db::Backend::KeyValue(b) => { // Frontier offchain DB task. Essential. // Maps emulated ethereum data to substrate native data. @@ -721,7 +751,7 @@ pub fn build_rpc_extensions_builder( client.clone(), backend.clone(), overrides.clone(), - Arc::new(b), + b.clone(), 3, 0, SyncStrategy::Normal, @@ -738,7 +768,7 @@ pub fn build_rpc_extensions_builder( fc_mapping_sync::sql::SyncWorker::run( client.clone(), backend.clone(), - Arc::new(b), + b.clone(), client.import_notification_stream(), fc_mapping_sync::sql::SyncWorkerConfig { read_notification_timeout: Duration::from_secs(10), @@ -787,9 +817,9 @@ pub fn build_rpc_extensions_builder( ethapi_cmd: ethapi_cmd.clone(), network: network.clone(), backend: backend.clone(), - frontier_backend: match frontier_backend.clone() { - fc_db::Backend::KeyValue(b) => Arc::new(b), - fc_db::Backend::Sql(b) => Arc::new(b), + frontier_backend: match &*frontier_backend { + fc_db::Backend::KeyValue(b) => b.clone(), + fc_db::Backend::Sql(b) => b.clone(), }, fee_history_limit: rpc_config.fee_history_limit, fee_history_cache: fee_history_cache.clone(), diff --git a/node/mainnet/src/chain_spec.rs b/node/mainnet/src/chain_spec.rs index ec64c227..8ee0b26c 100644 --- a/node/mainnet/src/chain_spec.rs +++ b/node/mainnet/src/chain_spec.rs @@ -7,16 +7,18 @@ use bifrost_mainnet_runtime as mainnet; use fp_evm::GenesisAccount; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; +use sc_chain_spec::Properties; use sc_service::ChainType; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_consensus_grandpa::AuthorityId as GrandpaId; -use sp_core::{Pair, Public}; -use sp_runtime::{BoundedVec, Perbill}; +use sp_core::{Pair, Public, H160}; +use sp_runtime::Perbill; use hex_literal::hex; +use std::collections::BTreeMap; /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// Generate a crypto pair from key. pub fn inspect_key(key: &str) -> ::Public { @@ -62,83 +64,68 @@ pub fn inflation_config() -> InflationInfo { } } -pub fn mainnet_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or_else(|| "Mainnet wasm not available".to_string())?; +fn properties() -> Properties { + let mut properties = Properties::new(); + properties.insert("tokenDecimals".into(), 18.into()); + properties.insert("tokenSymbol".into(), "BFC".into()); + properties +} - Ok(ChainSpec::from_genesis( - // Name - "Bifrost Mainnet", - // ID - "mainnet", - ChainType::Live, - move || { - mainnet_genesis( - wasm_binary, - // Validator candidates - vec![( - // Stash account - AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), - // Controller account - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Relayer account - AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), - get_from_seed::("Alice"), - get_from_seed::("Alice"), - get_from_seed::("Alice"), - 4_000_000 * BFC * SUPPLY_FACTOR, - )], - // Nominations - vec![], - // Council Members - vec![ - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), - AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), - ], - // Technical Committee Members - vec![ - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), - AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), - ], - // Relay Executives - vec![AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58"))], - // Sudo account +pub fn mainnet_config() -> ChainSpec { + ChainSpec::builder(WASM_BINARY.expect("WASM not available"), Default::default()) + .with_name("Bifrost Mainnet") + .with_id("mainnet") + .with_chain_type(ChainType::Live) + .with_properties(properties()) + .with_genesis_config_patch(mainnet_genesis( + // Validator candidates + vec![( + // Stash account + AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), + // Controller account AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Socket queue authority + // Relayer account + AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), + get_from_seed::("Alice"), + get_from_seed::("Alice"), + get_from_seed::("Alice"), + 4_000_000 * BFC * SUPPLY_FACTOR, + )], + // Nominations + vec![], + // Council Members + vec![ AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Pre-funded accounts - vec![ - // Stash accounts - AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), - // Controller accounts - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Relayer accounts - AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), - ], - ) - }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - // Fork ID - None, - // Properties - Some( - serde_json::from_str("{\"tokenDecimals\": 18, \"tokenSymbol\": \"BFC\"}") - .expect("Provided valid json map"), - ), - // Extensions - None, - )) + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), + ], + // Technical Committee Members + vec![ + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), + ], + // Relay Executives + vec![AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58"))], + // Sudo account + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Socket queue authority + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Pre-funded accounts + vec![ + // Stash accounts + AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), + // Controller accounts + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Relayer accounts + AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), + ], + )) + .build() } /// Configure initial storage state for FRAME modules. fn mainnet_genesis( - wasm_binary: &[u8], initial_validators: Vec<( AccountId, AccountId, @@ -155,91 +142,72 @@ fn mainnet_genesis( root_key: AccountId, authority: AccountId, endowed_accounts: Vec, -) -> mainnet::RuntimeGenesisConfig { +) -> serde_json::Value { let revert_bytecode = vec![0x60, 0x00, 0x60, 0x00, 0xFD]; - mainnet::RuntimeGenesisConfig { - system: mainnet::SystemConfig { - // Add Wasm runtime to storage. - code: wasm_binary.to_vec(), - ..Default::default() - }, - balances: mainnet::BalancesConfig { - balances: endowed_accounts.iter().cloned().map(|k| (k, 10_000_000 * BFC)).collect(), + + serde_json::json!({ + "balances": { + "balances": endowed_accounts + .iter() + .cloned() + .map(|k| (k, 10_000_000 * BFC)) + .collect::>() }, - session: mainnet::SessionConfig { - keys: initial_validators + "session": { + "keys": initial_validators .iter() .map(|x| { (x.1.clone(), x.1.clone(), session_keys(x.3.clone(), x.4.clone(), x.5.clone())) }) - .collect::>(), + .collect::>() }, - aura: Default::default(), - grandpa: Default::default(), - im_online: Default::default(), - sudo: mainnet::SudoConfig { key: Some(root_key) }, - transaction_payment: Default::default(), - evm: mainnet::EVMConfig { - // We need _some_ code inserted at the precompile address so that - // the evm will actually call the address. - accounts: mainnet::Precompiles::used_addresses() - .map(|addr| { - ( - addr.into(), - GenesisAccount { - nonce: Default::default(), - balance: Default::default(), - storage: Default::default(), - code: revert_bytecode.clone(), - }, - ) - }) - .collect(), - ..Default::default() + "sudo": { + "key": Some(root_key) + }, + "evm": { + "accounts": + // We need _some_ code inserted at the precompile address so that + // the evm will actually call the address. + mainnet::Precompiles::used_addresses() + .map(|addr| { + ( + addr.into(), + GenesisAccount { + nonce: Default::default(), + balance: Default::default(), + storage: Default::default(), + code: revert_bytecode.clone(), + }, + ) + }) + .collect::>() + }, + "baseFee": { + "baseFeePerGas": sp_core::U256::from(1_000 * GWEI * SUPPLY_FACTOR), + "elasticity": sp_runtime::Permill::zero() }, - ethereum: Default::default(), - base_fee: mainnet::BaseFeeConfig::new( - sp_core::U256::from(1_000 * GWEI * SUPPLY_FACTOR), - sp_runtime::Permill::zero(), - ), - relay_manager: Default::default(), - bfc_staking: mainnet::BfcStakingConfig { - candidates: initial_validators + "bfcStaking": { + "candidates": initial_validators .iter() .cloned() .map(|(stash, controller, relayer, _, _, _, bond)| { (stash, controller, relayer, bond) }) - .collect(), - nominations: initial_nominators, - inflation_config: inflation_config(), - }, - bfc_utility: Default::default(), - bfc_offences: Default::default(), - democracy: Default::default(), - council: Default::default(), - technical_committee: Default::default(), - relay_executive: Default::default(), - council_membership: mainnet::CouncilMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_council_members.clone()) - .expect("Membership must be initialized."), + .collect::>(), + "nominations": initial_nominators, + "inflationConfig": inflation_config() }, - technical_membership: mainnet::TechnicalMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_tech_committee_members.clone()) - .expect("Membership must be initialized"), + "councilMembership": { + "members": initial_council_members.clone() }, - relay_executive_membership: mainnet::RelayExecutiveMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_relay_executives.clone()) - .expect("Membership must be initialized"), + "technicalMembership": { + "members": initial_tech_committee_members.clone() }, - treasury: Default::default(), - btc_registration_pool: Default::default(), - btc_socket_queue: mainnet::BtcSocketQueueConfig { - authority: Some(authority), - ..Default::default() + "relayExecutiveMembership": { + "members": initial_relay_executives.clone() }, - } + "btcSocketQueue": { + "authority": Some(authority) + } + }) } diff --git a/node/mainnet/src/service.rs b/node/mainnet/src/service.rs index 8e9c52ab..2f0367c1 100644 --- a/node/mainnet/src/service.rs +++ b/node/mainnet/src/service.rs @@ -9,18 +9,18 @@ use std::{collections::BTreeMap, sync::Arc, time::Duration}; use bifrost_common_node::{ cli_opt::{EthApi as EthApiCmd, RpcConfig}, rpc::{FullDeps, GrandpaDeps, SpawnTasksParams, TracingConfig}, - service::open_frontier_backend, + service::{open_frontier_backend, HostFunctions}, tracing::{spawn_tracing_tasks, RpcRequesters}, }; use fc_mapping_sync::{kv::MappingSyncWorker, SyncStrategy}; -use fc_rpc::EthTask; +use fc_rpc::{EthTask, StorageOverrideHandler}; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use sc_client_api::{Backend, BlockBackend, BlockchainEvents}; use sc_consensus_aura::{ImportQueueParams, SlotProportion, StartAuraParams}; -pub use sc_executor::NativeElseWasmExecutor; -use sc_network::NetworkService; +pub use sc_executor::WasmExecutor; +use sc_network::service::traits::NetworkService; use sc_network_sync::SyncingService; use sc_rpc_api::DenyUnsafe; use sc_service::{ @@ -31,9 +31,8 @@ use sc_telemetry::{Telemetry, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use bp_core::*; -use sp_api::NumberFor; use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; -use sp_runtime::traits::Block as BlockT; +use sp_runtime::traits::{Block as BlockT, NumberFor}; /// The minimum period of blocks on which justifications will be /// imported and generated. @@ -62,11 +61,7 @@ pub mod mainnet { } /// The full client type definition. -type FullClient = sc_service::TFullClient< - Block, - mainnet::RuntimeApi, - NativeElseWasmExecutor, ->; +type FullClient = sc_service::TFullClient>; /// The full backend type definition. type FullBackend = sc_service::TFullBackend; @@ -79,7 +74,8 @@ pub type TransactionPool = sc_transaction_pool::FullPool; /// Builds a new service for a full client. pub fn new_full(config: Configuration, rpc_config: RpcConfig) -> Result { - new_full_base(config, rpc_config).map(|NewFullBase { task_manager, .. }| task_manager) + new_full_base::>(config, rpc_config) + .map(|NewFullBase { task_manager, .. }| task_manager) } /// Result of [`new_full_base`]. @@ -89,7 +85,7 @@ pub struct NewFullBase { /// The client instance of the node. pub client: Arc, /// The networking service of the node. - pub network: Arc::Hash>>, + pub network: Arc, /// The transaction pool of the node. pub transaction_pool: Arc, /// The rpc handlers of the node. @@ -110,8 +106,8 @@ pub struct RpcExtensionsBuilder<'a> { pub backend: Arc, pub select_chain: FullSelectChain, pub transaction_pool: Arc, - pub network: Arc::Hash>>, - pub frontier_backend: fc_db::Backend, + pub network: Arc, + pub frontier_backend: Arc>, pub sync_service: Arc>, } @@ -133,7 +129,7 @@ pub fn new_partial( FullSelectChain, >, sc_consensus_grandpa::LinkHalf, - fc_db::Backend, + fc_db::Backend, Option, ), >, @@ -150,7 +146,7 @@ pub fn new_partial( }) .transpose()?; - let executor = sc_service::new_native_or_wasm_executor(&config); + let executor = sc_service::new_wasm_executor(config); let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( @@ -223,10 +219,13 @@ pub fn new_partial( } /// Creates a full service from the configuration. -pub fn new_full_base( +pub fn new_full_base( config: Configuration, rpc_config: RpcConfig, -) -> Result { +) -> Result +where + NB: sc_network::NetworkBackend::Hash>, +{ let sc_service::PartialComponents { client, backend, @@ -238,7 +237,12 @@ pub fn new_full_base( other: (grandpa_block_import, grandpa_link, frontier_backend, mut telemetry), } = new_partial(&config, &rpc_config)?; - let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); + let mut net_config = + sc_network::config::FullNetworkConfiguration::<_, _, NB>::new(&config.network); + let peer_store_handle = net_config.peer_store_handle(); + let metrics = NB::register_notification_metrics( + config.prometheus_config.as_ref().map(|cfg| &cfg.registry), + ); let shared_voter_state = sc_consensus_grandpa::SharedVoterState::empty(); let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name( @@ -246,9 +250,14 @@ pub fn new_full_base( &config.chain_spec, ); - net_config.add_notification_protocol(sc_consensus_grandpa::grandpa_peers_set_config( - grandpa_protocol_name.clone(), - )); + let (grandpa_protocol_config, grandpa_notification_service) = + sc_consensus_grandpa::grandpa_peers_set_config::<_, NB>( + grandpa_protocol_name.clone(), + metrics.clone(), + peer_store_handle, + ); + + net_config.add_notification_protocol(grandpa_protocol_config); let warp_sync = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( backend.clone(), @@ -267,6 +276,7 @@ pub fn new_full_base( block_announce_validator_builder: None, warp_sync_params: Some(WarpSyncParams::WithProvider(warp_sync)), block_relay: None, + metrics, })?; if config.offchain_worker.enabled { @@ -281,7 +291,7 @@ pub fn new_full_base( transaction_pool: Some(OffchainTransactionPoolFactory::new( transaction_pool.clone(), )), - network_provider: network.clone(), + network_provider: Arc::new(network.clone()), enable_http_requests: true, custom_extensions: |_| vec![], }) @@ -312,7 +322,7 @@ pub fn new_full_base( select_chain: select_chain.clone(), transaction_pool: transaction_pool.clone(), network: network.clone(), - frontier_backend: frontier_backend.clone(), + frontier_backend: Arc::new(frontier_backend), sync_service: sync_service.clone(), }, ); @@ -397,6 +407,7 @@ pub fn new_full_base( config: grandpa_config, link: grandpa_link, network: network.clone(), + notification_service: grandpa_notification_service, telemetry: telemetry.as_ref().map(|x| x.handle()), voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(), prometheus_registry, @@ -446,7 +457,7 @@ pub fn build_rpc_extensions_builder( let filter_pool: FilterPool = Arc::new(std::sync::Mutex::new(BTreeMap::new())); let ethapi_cmd = rpc_config.ethapi.clone(); - let overrides = bifrost_common_node::rpc::overrides_handle(client.clone()); + let overrides = Arc::new(StorageOverrideHandler::::new(client.clone())); let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( builder.spawn_handle, @@ -505,7 +516,7 @@ pub fn build_rpc_extensions_builder( ), ); - match frontier_backend.clone() { + match &*frontier_backend.clone() { fc_db::Backend::KeyValue(b) => { // Frontier offchain DB task. Essential. // Maps emulated ethereum data to substrate native data. @@ -518,7 +529,7 @@ pub fn build_rpc_extensions_builder( client.clone(), backend.clone(), overrides.clone(), - Arc::new(b), + b.clone(), 3, 0, SyncStrategy::Normal, @@ -535,7 +546,7 @@ pub fn build_rpc_extensions_builder( fc_mapping_sync::sql::SyncWorker::run( client.clone(), backend.clone(), - Arc::new(b), + b.clone(), client.import_notification_stream(), fc_mapping_sync::sql::SyncWorkerConfig { read_notification_timeout: Duration::from_secs(10), @@ -584,9 +595,9 @@ pub fn build_rpc_extensions_builder( ethapi_cmd: ethapi_cmd.clone(), network: network.clone(), backend: backend.clone(), - frontier_backend: match frontier_backend.clone() { - fc_db::Backend::KeyValue(b) => Arc::new(b), - fc_db::Backend::Sql(b) => Arc::new(b), + frontier_backend: match &*frontier_backend { + fc_db::Backend::KeyValue(b) => b.clone(), + fc_db::Backend::Sql(b) => b.clone(), }, fee_history_limit: rpc_config.fee_history_limit, fee_history_cache: fee_history_cache.clone(), diff --git a/node/testnet/src/chain_spec.rs b/node/testnet/src/chain_spec.rs index b7a45a46..cab6c410 100644 --- a/node/testnet/src/chain_spec.rs +++ b/node/testnet/src/chain_spec.rs @@ -7,16 +7,18 @@ use bifrost_testnet_runtime as testnet; use fp_evm::GenesisAccount; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; +use sc_chain_spec::Properties; use sc_service::ChainType; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_consensus_grandpa::AuthorityId as GrandpaId; -use sp_core::{Pair, Public}; -use sp_runtime::{BoundedVec, Perbill}; +use sp_core::{Pair, Public, H160}; +use sp_runtime::Perbill; use hex_literal::hex; +use std::collections::BTreeMap; /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// Generate a crypto pair from key. pub fn inspect_key(key: &str) -> ::Public { @@ -62,83 +64,68 @@ pub fn inflation_config() -> InflationInfo { } } -pub fn testnet_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or_else(|| "Testnet wasm not available".to_string())?; +fn properties() -> Properties { + let mut properties = Properties::new(); + properties.insert("tokenDecimals".into(), 18.into()); + properties.insert("tokenSymbol".into(), "BFC".into()); + properties +} - Ok(ChainSpec::from_genesis( - // Name - "Bifrost Testnet", - // ID - "testnet", - ChainType::Live, - move || { - testnet_genesis( - wasm_binary, - // Validator candidates - vec![( - // Stash account - AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), - // Controller account - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Relayer account - AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), - get_from_seed::("Alice"), - get_from_seed::("Alice"), - get_from_seed::("Alice"), - 100_000 * BFC * SUPPLY_FACTOR, - )], - // Nominations - vec![], - // Council Members - vec![ - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), - AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), - ], - // Technical Committee Members - vec![ - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), - AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), - ], - // Relay Executives - vec![AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58"))], - // Sudo account +pub fn testnet_config() -> ChainSpec { + ChainSpec::builder(WASM_BINARY.expect("WASM not available"), Default::default()) + .with_name("Bifrost Testnet") + .with_id("testnet") + .with_chain_type(ChainType::Live) + .with_properties(properties()) + .with_genesis_config_patch(testnet_genesis( + // Validator candidates + vec![( + // Stash account + AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), + // Controller account AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Socket queue authority + // Relayer account + AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), + get_from_seed::("Alice"), + get_from_seed::("Alice"), + get_from_seed::("Alice"), + 100_000 * BFC * SUPPLY_FACTOR, + )], + // Nominations + vec![], + // Council Members + vec![ AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Pre-funded accounts - vec![ - // Stash accounts - AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), - // Controller accounts - AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), - // Relayer accounts - AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), - ], - ) - }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - // Fork ID - None, - // Properties - Some( - serde_json::from_str("{\"tokenDecimals\": 18, \"tokenSymbol\": \"BFC\"}") - .expect("Provided valid json map"), - ), - // Extensions - None, - )) + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), + ], + // Technical Committee Members + vec![ + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), + ], + // Relay Executives + vec![AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58"))], + // Sudo account + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Socket queue authority + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Pre-funded accounts + vec![ + // Stash accounts + AccountId::from(hex!("912F9D002E46DF70C78495D29Faa523c2c0382a2")), + // Controller accounts + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Relayer accounts + AccountId::from(hex!("d6D3f3a35Fab64F69b7885D6162e81B62e44bF58")), + ], + )) + .build() } /// Configure initial storage state for FRAME modules. fn testnet_genesis( - wasm_binary: &[u8], initial_validators: Vec<( AccountId, AccountId, @@ -155,91 +142,72 @@ fn testnet_genesis( root_key: AccountId, authority: AccountId, endowed_accounts: Vec, -) -> testnet::RuntimeGenesisConfig { +) -> serde_json::Value { let revert_bytecode = vec![0x60, 0x00, 0x60, 0x00, 0xFD]; - testnet::RuntimeGenesisConfig { - system: testnet::SystemConfig { - // Add Wasm runtime to storage. - code: wasm_binary.to_vec(), - ..Default::default() - }, - balances: testnet::BalancesConfig { - balances: endowed_accounts.iter().cloned().map(|k| (k, 200_000 * BFC)).collect(), + + serde_json::json!({ + "balances": { + "balances": endowed_accounts + .iter() + .cloned() + .map(|k| (k, 200_000 * BFC)) + .collect::>() }, - session: testnet::SessionConfig { - keys: initial_validators + "session": { + "keys": initial_validators .iter() .map(|x| { (x.1.clone(), x.1.clone(), session_keys(x.3.clone(), x.4.clone(), x.5.clone())) }) - .collect::>(), + .collect::>() }, - aura: Default::default(), - grandpa: Default::default(), - im_online: Default::default(), - sudo: testnet::SudoConfig { key: Some(root_key) }, - transaction_payment: Default::default(), - evm: testnet::EVMConfig { - // We need _some_ code inserted at the precompile address so that - // the evm will actually call the address. - accounts: testnet::Precompiles::used_addresses() - .map(|addr| { - ( - addr.into(), - GenesisAccount { - nonce: Default::default(), - balance: Default::default(), - storage: Default::default(), - code: revert_bytecode.clone(), - }, - ) - }) - .collect(), - ..Default::default() + "sudo": { + "key": Some(root_key) + }, + "evm": { + "accounts": + // We need _some_ code inserted at the precompile address so that + // the evm will actually call the address. + testnet::Precompiles::used_addresses() + .map(|addr| { + ( + addr.into(), + GenesisAccount { + nonce: Default::default(), + balance: Default::default(), + storage: Default::default(), + code: revert_bytecode.clone(), + }, + ) + }) + .collect::>() + }, + "baseFee": { + "baseFeePerGas": sp_core::U256::from(1_000 * GWEI * SUPPLY_FACTOR), + "elasticity": sp_runtime::Permill::zero() }, - ethereum: Default::default(), - base_fee: testnet::BaseFeeConfig::new( - sp_core::U256::from(1_000 * GWEI * SUPPLY_FACTOR), - sp_runtime::Permill::zero(), - ), - relay_manager: Default::default(), - bfc_staking: testnet::BfcStakingConfig { - candidates: initial_validators + "bfcStaking": { + "candidates": initial_validators .iter() .cloned() .map(|(stash, controller, relayer, _, _, _, bond)| { (stash, controller, relayer, bond) }) - .collect(), - nominations: initial_nominators, - inflation_config: inflation_config(), - }, - bfc_utility: Default::default(), - bfc_offences: Default::default(), - democracy: Default::default(), - council: Default::default(), - technical_committee: Default::default(), - relay_executive: Default::default(), - council_membership: testnet::CouncilMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_council_members.clone()) - .expect("Membership must be initialized."), + .collect::>(), + "nominations": initial_nominators, + "inflationConfig": inflation_config() }, - technical_membership: testnet::TechnicalMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_tech_committee_members.clone()) - .expect("Membership must be initialized"), + "councilMembership": { + "members": initial_council_members.clone() }, - relay_executive_membership: testnet::RelayExecutiveMembershipConfig { - phantom: Default::default(), - members: BoundedVec::try_from(initial_relay_executives.clone()) - .expect("Membership must be initialized"), + "technicalMembership": { + "members": initial_tech_committee_members.clone() }, - treasury: Default::default(), - btc_registration_pool: Default::default(), - btc_socket_queue: testnet::BtcSocketQueueConfig { - authority: Some(authority), - ..Default::default() + "relayExecutiveMembership": { + "members": initial_relay_executives.clone() }, - } + "btcSocketQueue": { + "authority": Some(authority) + } + }) } diff --git a/node/testnet/src/service.rs b/node/testnet/src/service.rs index 40ac52e1..a628f77f 100644 --- a/node/testnet/src/service.rs +++ b/node/testnet/src/service.rs @@ -9,18 +9,18 @@ use std::{collections::BTreeMap, sync::Arc, time::Duration}; use bifrost_common_node::{ cli_opt::{EthApi as EthApiCmd, RpcConfig}, rpc::{FullDeps, GrandpaDeps, SpawnTasksParams, TracingConfig}, - service::open_frontier_backend, + service::{open_frontier_backend, HostFunctions}, tracing::{spawn_tracing_tasks, RpcRequesters}, }; use fc_mapping_sync::{kv::MappingSyncWorker, SyncStrategy}; -use fc_rpc::EthTask; +use fc_rpc::{EthTask, StorageOverrideHandler}; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use sc_client_api::{Backend, BlockBackend, BlockchainEvents}; use sc_consensus_aura::{ImportQueueParams, SlotProportion, StartAuraParams}; -pub use sc_executor::NativeElseWasmExecutor; -use sc_network::NetworkService; +pub use sc_executor::WasmExecutor; +use sc_network::service::traits::NetworkService; use sc_network_sync::SyncingService; use sc_rpc_api::DenyUnsafe; use sc_service::{ @@ -31,9 +31,8 @@ use sc_telemetry::{Telemetry, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use bp_core::*; -use sp_api::NumberFor; use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; -use sp_runtime::traits::Block as BlockT; +use sp_runtime::traits::{Block as BlockT, NumberFor}; /// The minimum period of blocks on which justifications will be /// imported and generated. @@ -62,11 +61,7 @@ pub mod testnet { } /// The full client type definition. -type FullClient = sc_service::TFullClient< - Block, - testnet::RuntimeApi, - NativeElseWasmExecutor, ->; +type FullClient = sc_service::TFullClient>; /// The full backend type definition. type FullBackend = sc_service::TFullBackend; @@ -79,7 +74,8 @@ pub type TransactionPool = sc_transaction_pool::FullPool; /// Builds a new service for a full client. pub fn new_full(config: Configuration, rpc_config: RpcConfig) -> Result { - new_full_base(config, rpc_config).map(|NewFullBase { task_manager, .. }| task_manager) + new_full_base::>(config, rpc_config) + .map(|NewFullBase { task_manager, .. }| task_manager) } /// Result of [`new_full_base`]. @@ -89,7 +85,7 @@ pub struct NewFullBase { /// The client instance of the node. pub client: Arc, /// The networking service of the node. - pub network: Arc::Hash>>, + pub network: Arc, /// The transaction pool of the node. pub transaction_pool: Arc, /// The rpc handlers of the node. @@ -110,8 +106,8 @@ pub struct RpcExtensionsBuilder<'a> { pub backend: Arc, pub select_chain: FullSelectChain, pub transaction_pool: Arc, - pub network: Arc::Hash>>, - pub frontier_backend: fc_db::Backend, + pub network: Arc, + pub frontier_backend: Arc>, pub sync_service: Arc>, } @@ -133,7 +129,7 @@ pub fn new_partial( FullSelectChain, >, sc_consensus_grandpa::LinkHalf, - fc_db::Backend, + fc_db::Backend, Option, ), >, @@ -150,7 +146,7 @@ pub fn new_partial( }) .transpose()?; - let executor = sc_service::new_native_or_wasm_executor(&config); + let executor = sc_service::new_wasm_executor(config); let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( @@ -223,10 +219,13 @@ pub fn new_partial( } /// Creates a full service from the configuration. -pub fn new_full_base( +pub fn new_full_base( config: Configuration, rpc_config: RpcConfig, -) -> Result { +) -> Result +where + NB: sc_network::NetworkBackend::Hash>, +{ let sc_service::PartialComponents { client, backend, @@ -238,7 +237,12 @@ pub fn new_full_base( other: (grandpa_block_import, grandpa_link, frontier_backend, mut telemetry), } = new_partial(&config, &rpc_config)?; - let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); + let mut net_config = + sc_network::config::FullNetworkConfiguration::<_, _, NB>::new(&config.network); + let peer_store_handle = net_config.peer_store_handle(); + let metrics = NB::register_notification_metrics( + config.prometheus_config.as_ref().map(|cfg| &cfg.registry), + ); let shared_voter_state = sc_consensus_grandpa::SharedVoterState::empty(); let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name( @@ -246,9 +250,14 @@ pub fn new_full_base( &config.chain_spec, ); - net_config.add_notification_protocol(sc_consensus_grandpa::grandpa_peers_set_config( - grandpa_protocol_name.clone(), - )); + let (grandpa_protocol_config, grandpa_notification_service) = + sc_consensus_grandpa::grandpa_peers_set_config::<_, NB>( + grandpa_protocol_name.clone(), + metrics.clone(), + peer_store_handle, + ); + + net_config.add_notification_protocol(grandpa_protocol_config); let warp_sync = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( backend.clone(), @@ -267,6 +276,7 @@ pub fn new_full_base( block_announce_validator_builder: None, warp_sync_params: Some(WarpSyncParams::WithProvider(warp_sync)), block_relay: None, + metrics, })?; if config.offchain_worker.enabled { @@ -281,7 +291,7 @@ pub fn new_full_base( transaction_pool: Some(OffchainTransactionPoolFactory::new( transaction_pool.clone(), )), - network_provider: network.clone(), + network_provider: Arc::new(network.clone()), enable_http_requests: true, custom_extensions: |_| vec![], }) @@ -312,7 +322,7 @@ pub fn new_full_base( select_chain: select_chain.clone(), transaction_pool: transaction_pool.clone(), network: network.clone(), - frontier_backend: frontier_backend.clone(), + frontier_backend: Arc::new(frontier_backend), sync_service: sync_service.clone(), }, ); @@ -397,6 +407,7 @@ pub fn new_full_base( config: grandpa_config, link: grandpa_link, network: network.clone(), + notification_service: grandpa_notification_service, telemetry: telemetry.as_ref().map(|x| x.handle()), voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(), prometheus_registry, @@ -446,7 +457,7 @@ pub fn build_rpc_extensions_builder( let filter_pool: FilterPool = Arc::new(std::sync::Mutex::new(BTreeMap::new())); let ethapi_cmd = rpc_config.ethapi.clone(); - let overrides = bifrost_common_node::rpc::overrides_handle(client.clone()); + let overrides = Arc::new(StorageOverrideHandler::::new(client.clone())); let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( builder.spawn_handle, @@ -505,7 +516,7 @@ pub fn build_rpc_extensions_builder( ), ); - match frontier_backend.clone() { + match &*frontier_backend.clone() { fc_db::Backend::KeyValue(b) => { // Frontier offchain DB task. Essential. // Maps emulated ethereum data to substrate native data. @@ -518,7 +529,7 @@ pub fn build_rpc_extensions_builder( client.clone(), backend.clone(), overrides.clone(), - Arc::new(b), + b.clone(), 3, 0, SyncStrategy::Normal, @@ -535,7 +546,7 @@ pub fn build_rpc_extensions_builder( fc_mapping_sync::sql::SyncWorker::run( client.clone(), backend.clone(), - Arc::new(b), + b.clone(), client.import_notification_stream(), fc_mapping_sync::sql::SyncWorkerConfig { read_notification_timeout: Duration::from_secs(10), @@ -584,9 +595,9 @@ pub fn build_rpc_extensions_builder( ethapi_cmd: ethapi_cmd.clone(), network: network.clone(), backend: backend.clone(), - frontier_backend: match frontier_backend.clone() { - fc_db::Backend::KeyValue(b) => Arc::new(b), - fc_db::Backend::Sql(b) => Arc::new(b), + frontier_backend: match &*frontier_backend { + fc_db::Backend::KeyValue(b) => b.clone(), + fc_db::Backend::Sql(b) => b.clone(), }, fee_history_limit: rpc_config.fee_history_limit, fee_history_cache: fee_history_cache.clone(), diff --git a/pallets/bfc-offences/Cargo.toml b/pallets/bfc-offences/Cargo.toml index 4f94de9e..444f8ddd 100644 --- a/pallets/bfc-offences/Cargo.toml +++ b/pallets/bfc-offences/Cargo.toml @@ -27,27 +27,19 @@ sp-staking = { workspace = true } # Bifrost bp-staking = { workspace = true } -[dev-dependencies] -similar-asserts = { workspace = true } - -pallet-balances = { workspace = true, features = ["insecure_zero_ed", "std"] } -sp-core = { workspace = true, features = ["std"] } -sp-io = { workspace = true, features = ["std"] } - [features] default = ["std"] std = [ + "serde/std", "impl-serde/std", "scale-info/std", "parity-scale-codec/std", "frame-benchmarking/std", "frame-support/std", "frame-system/std", - "serde", "sp-runtime/std", "sp-std/std", "sp-core/std", - "sp-io/std", "sp-staking/std", "bp-staking/std", ] diff --git a/pallets/bfc-offences/src/migrations.rs b/pallets/bfc-offences/src/migrations.rs index 4184faf0..a66e9fdb 100644 --- a/pallets/bfc-offences/src/migrations.rs +++ b/pallets/bfc-offences/src/migrations.rs @@ -14,7 +14,7 @@ pub mod v3_update { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let onchain = Pallet::::on_chain_storage_version(); if current == 3 && onchain == 0 { @@ -44,7 +44,7 @@ pub mod v3 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); // (previous) let onchain = StorageVersion::::get(); let onchain = Pallet::::on_chain_storage_version(); diff --git a/pallets/bfc-offences/src/pallet/impls.rs b/pallets/bfc-offences/src/pallet/impls.rs index 96adc2ef..d0d74575 100644 --- a/pallets/bfc-offences/src/pallet/impls.rs +++ b/pallets/bfc-offences/src/pallet/impls.rs @@ -62,7 +62,7 @@ impl OffenceHandler> for Pallet { bond: BalanceOf, ) -> BalanceOf { // slash bonds only if activated - if Self::is_slash_active() { + if IsSlashActive::::get() { let slash_amount = slash_fraction * bond; // slash the validator's reserved self bond // the slashed imbalance will be reserved to the treasury @@ -76,7 +76,7 @@ impl OffenceHandler> for Pallet { fn refresh_offences(session_index: SessionIndex) { >::iter().for_each(|offences| { if (session_index - offences.1.latest_offence_session_index) - > Self::offence_expiration_in_sessions() + > OffenceExpirationInSessions::::get() { >::remove(&offences.0); } @@ -86,8 +86,8 @@ impl OffenceHandler> for Pallet { fn is_offence_count_exceeds(count: u32, tier: TierType) -> bool { // if offence count exceeds the configured limit return match tier { - TierType::Full => count > Self::full_maximum_offence_count(), - _ => count > Self::basic_maximum_offence_count(), + TierType::Full => count > FullMaximumOffenceCount::::get(), + _ => count > BasicMaximumOffenceCount::::get(), }; } } diff --git a/pallets/bfc-offences/src/pallet/mod.rs b/pallets/bfc-offences/src/pallet/mod.rs index 5db5471c..72c390bd 100644 --- a/pallets/bfc-offences/src/pallet/mod.rs +++ b/pallets/bfc-offences/src/pallet/mod.rs @@ -77,33 +77,27 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn validator_offences)] /// The current offence state of a specific validator pub type ValidatorOffences = StorageMap<_, Twox64Concat, T::AccountId, ValidatorOffenceInfo>, OptionQuery>; #[pallet::storage] - #[pallet::getter(fn offence_expiration_in_sessions)] /// The current offence expiration in sessions pub type OffenceExpirationInSessions = StorageValue<_, SessionIndex, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn full_maximum_offence_count)] /// The current maximum offence count for all full nodes pub type FullMaximumOffenceCount = StorageValue<_, OffenceCount, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn basic_maximum_offence_count)] /// The current maximum offence count for all basic nodes pub type BasicMaximumOffenceCount = StorageValue<_, OffenceCount, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn is_offence_active)] /// The current activation of validator offence management pub type IsOffenceActive = StorageValue<_, bool, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn is_slash_active)] /// The current activation of validator slashing pub type IsSlashActive = StorageValue<_, bool, ValueQuery>; diff --git a/pallets/bfc-staking/Cargo.toml b/pallets/bfc-staking/Cargo.toml index 6b5bdf18..0dddb82b 100644 --- a/pallets/bfc-staking/Cargo.toml +++ b/pallets/bfc-staking/Cargo.toml @@ -10,7 +10,7 @@ repository = { workspace = true } [dependencies] log = { workspace = true } -serde = { workspace = true, features = ["std"] } +serde = { workspace = true } substrate-fixed = { workspace = true } # Substrate @@ -31,13 +31,6 @@ pallet-relay-manager = { workspace = true } pallet-bfc-offences = { workspace = true } bp-staking = { workspace = true } -[dev-dependencies] -similar-asserts = { workspace = true } - -pallet-balances = { workspace = true, features = ["insecure_zero_ed", "std"] } -sp-core = { workspace = true, features = ["std"] } -sp-io = { workspace = true, features = ["std"] } - [features] default = ["std"] std = [ @@ -54,7 +47,6 @@ std = [ "sp-runtime/std", "sp-std/std", "sp-staking/std", - "sp-io/std", "bp-staking/std", ] runtime-benchmarks = ["frame-benchmarking"] diff --git a/pallets/bfc-staking/src/inflation.rs b/pallets/bfc-staking/src/inflation.rs index 988683b0..17c6bc39 100644 --- a/pallets/bfc-staking/src/inflation.rs +++ b/pallets/bfc-staking/src/inflation.rs @@ -1,9 +1,6 @@ //! Helper methods for computing issuance based on inflation -use crate::{ - pallet::pallet::{Config, Pallet}, - BalanceOf, -}; +use crate::{pallet::pallet::Config, BalanceOf, Round}; use serde::{Deserialize, Serialize}; @@ -24,7 +21,7 @@ const SECONDS_PER_BLOCK: u32 = 3; pub const BLOCKS_PER_YEAR: u32 = SECONDS_PER_YEAR / SECONDS_PER_BLOCK; pub fn rounds_per_year() -> u32 { - let blocks_per_round = >::round().round_length; + let blocks_per_round = >::get().round_length; BLOCKS_PER_YEAR / blocks_per_round } diff --git a/pallets/bfc-staking/src/lib.rs b/pallets/bfc-staking/src/lib.rs index abd1123e..148e7bee 100644 --- a/pallets/bfc-staking/src/lib.rs +++ b/pallets/bfc-staking/src/lib.rs @@ -177,8 +177,8 @@ impl Convert { fn convert(validator: T::AccountId) -> Option>> { - let round = Pallet::::round(); - Some(Pallet::::at_stake(round.current_round_index, &validator)) + let round = >::get(); + Some(>::get(round.current_round_index, &validator)) } } diff --git a/pallets/bfc-staking/src/migrations.rs b/pallets/bfc-staking/src/migrations.rs index 28fdca1d..1c8df9ec 100644 --- a/pallets/bfc-staking/src/migrations.rs +++ b/pallets/bfc-staking/src/migrations.rs @@ -12,7 +12,7 @@ pub mod v5 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let onchain = Pallet::::on_chain_storage_version(); if current == 5 && onchain == 4 { @@ -107,7 +107,7 @@ pub mod v4 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); // (previous) let onchain = StorageVersion::::get(); let onchain = Pallet::::on_chain_storage_version(); diff --git a/pallets/bfc-staking/src/pallet/impls.rs b/pallets/bfc-staking/src/pallet/impls.rs index 2f4aa9a4..8f93593c 100644 --- a/pallets/bfc-staking/src/pallet/impls.rs +++ b/pallets/bfc-staking/src/pallet/impls.rs @@ -18,7 +18,7 @@ use sp_runtime::{ Perbill, Permill, }; use sp_staking::{ - offence::{DisableStrategy, OffenceDetails, OnOffenceHandler}, + offence::{OffenceDetails, OnOffenceHandler}, SessionIndex, }; use sp_std::{collections::btree_set::BTreeSet, vec, vec::Vec}; @@ -33,13 +33,13 @@ use frame_support::{ impl Pallet { /// Verifies if the given account is a nominator pub fn is_nominator(acc: &T::AccountId) -> bool { - Self::nominator_state(acc).is_some() + NominatorState::::get(acc).is_some() } /// Verifies if the given account is a candidate pub fn is_candidate(acc: &T::AccountId, tier: TierType) -> bool { let mut is_candidate = false; - if let Some(state) = Self::candidate_info(acc) { + if let Some(state) = CandidateInfo::::get(acc) { is_candidate = match tier { TierType::Full | TierType::Basic => state.tier == tier, TierType::All => true, @@ -51,7 +51,7 @@ impl Pallet { /// Verifies if the given account is a selected candidate for the current round pub fn is_selected_candidate(acc: &T::AccountId, tier: TierType) -> bool { let mut is_selected_candidate = false; - match Self::selected_candidates().contains(acc) { + match SelectedCandidates::::get().contains(acc) { true => { is_selected_candidate = Self::is_candidate(acc, tier); }, @@ -62,15 +62,15 @@ impl Pallet { /// Verifies if the given account has already requested for controller account update pub fn is_controller_set_requested(controller: &T::AccountId) -> bool { - let round = Self::round(); - let controller_sets = Self::delayed_controller_sets(round.current_round_index); + let round = Round::::get(); + let controller_sets = DelayedControllerSets::::get(round.current_round_index); controller_sets.into_iter().any(|c| c.old == *controller) } /// Verifies if the given account has already requested for commission rate update pub fn is_commission_set_requested(who: &T::AccountId) -> bool { - let round = Self::round(); - let commission_sets = Self::delayed_commission_sets(round.current_round_index); + let round = Round::::get(); + let commission_sets = DelayedCommissionSets::::get(round.current_round_index); if commission_sets.is_empty() { return false; } @@ -83,7 +83,7 @@ impl Pallet { old: T::AccountId, new: T::AccountId, ) -> DispatchResult { - let round = Self::round(); + let round = Round::::get(); >::try_mutate( round.current_round_index, |controller_sets| -> DispatchResult { @@ -100,7 +100,7 @@ impl Pallet { old: Perbill, new: Perbill, ) -> DispatchResult { - let round = Self::round(); + let round = Round::::get(); >::try_mutate( round.current_round_index, |commission_sets| -> DispatchResult { @@ -113,7 +113,7 @@ impl Pallet { /// Remove the given `who` from the `DelayedControllerSets` of the current round. pub fn remove_controller_set(who: &T::AccountId) -> DispatchResult { - let round = Self::round(); + let round = Round::::get(); >::mutate(round.current_round_index, |controller_set| { controller_set.retain(|c| c.old != *who); }); @@ -122,7 +122,7 @@ impl Pallet { /// Remove the given `who` from the `DelayedCommissionSets` of the current round. pub fn remove_commission_set(who: &T::AccountId) -> DispatchResult { - let round = Self::round(); + let round = Round::::get(); >::mutate(round.current_round_index, |commission_sets| { commission_sets.retain(|c| c.who != *who); }); @@ -141,7 +141,7 @@ impl Pallet { /// Get vectorized & sorted by voting power in descending order `CandidatePool` pub fn get_sorted_candidates() -> Vec>> { - let mut candidates = Self::candidate_pool() + let mut candidates = CandidatePool::::get() .into_iter() .map(|(owner, amount)| Bond { owner, amount }) .collect::>>>(); @@ -227,7 +227,7 @@ impl Pallet { /// Compute round issuance based on the total amount of stake of the current round pub fn compute_issuance(staked: BalanceOf) -> BalanceOf { - let config = Self::inflation_config(); + let config = InflationConfig::::get(); let round_issuance = Range { min: config.round.min * staked, ideal: config.round.ideal * staked, @@ -244,7 +244,7 @@ impl Pallet { /// Compute the majority of the selected candidates pub fn compute_majority() -> u32 { - ((Self::selected_candidates().len() as u32) / 2) + 1 + ((SelectedCandidates::::get().len() as u32) / 2) + 1 } /// Remove nomination from candidate state @@ -254,10 +254,10 @@ impl Pallet { nominator: T::AccountId, amount: BalanceOf, ) -> DispatchResult { - let mut state = Self::candidate_info(&candidate).ok_or(Error::::CandidateDNE)?; + let mut state = CandidateInfo::::get(&candidate).ok_or(Error::::CandidateDNE)?; state.rm_nomination_if_exists::(&candidate, nominator.clone(), amount)?; T::Currency::unreserve(&nominator, amount); - let new_total_locked = Self::total().saturating_sub(amount); + let new_total_locked = Total::::get().saturating_sub(amount); >::put(new_total_locked); let new_total = state.voting_power; >::insert(&candidate, state); @@ -278,7 +278,7 @@ impl Pallet { return; } let round_to_payout = now - delay; - let total_points = Self::points(round_to_payout); + let total_points = Points::::get(round_to_payout); if total_points.is_zero() { return; } @@ -291,7 +291,7 @@ impl Pallet { let payout = DelayedPayout { round_issuance, total_staking_reward: round_issuance, - validator_commission: Self::default_basic_validator_commission(), + validator_commission: DefaultBasicValidatorCommission::::get(), }; >::insert(round_to_payout, payout); } @@ -303,7 +303,7 @@ impl Pallet { stash: T::AccountId, reward: BalanceOf, ) -> Result<(), DispatchError> { - if let Some(mut validator_state) = Self::candidate_info(&controller) { + if let Some(mut validator_state) = CandidateInfo::::get(&controller) { // mint rewards to the validators stash account Self::mint_reward(reward, stash); // increment the awarded tokens of this validator @@ -330,7 +330,7 @@ impl Pallet { nominator: T::AccountId, reward: BalanceOf, ) -> Result<(), DispatchError> { - if let Some(mut nominator_state) = Self::nominator_state(&nominator) { + if let Some(mut nominator_state) = NominatorState::::get(&nominator) { // the nominator must be active (not leaving) // and not revoking/decreasing the current validator if nominator_state.is_active() @@ -379,7 +379,7 @@ impl Pallet { } let round_to_payout = now - delay; - if let Some(payout_info) = Self::delayed_payouts(round_to_payout) { + if let Some(payout_info) = DelayedPayouts::::get(round_to_payout) { let result = Self::pay_one_validator_reward(round_to_payout, payout_info); if result.0.is_none() { // result.0 indicates whether or not a payout was made @@ -402,7 +402,7 @@ impl Pallet { new: &T::AccountId, ) { nominators.into_iter().for_each(|n| { - if let Some(mut nominator) = Self::nominator_state(n) { + if let Some(mut nominator) = NominatorState::::get(n) { nominator.replace_nominations(old, new); nominator.replace_requests(old, new); >::insert(n, nominator); @@ -415,7 +415,7 @@ impl Pallet { let delayed_round = now - 1; let commission_sets = >::take(delayed_round); commission_sets.into_iter().for_each(|c| { - if let Some(mut candidate) = Self::candidate_info(&c.who) { + if let Some(mut candidate) = CandidateInfo::::get(&c.who) { candidate.set_commission(c.new); >::insert(&c.who, candidate); } @@ -428,7 +428,7 @@ impl Pallet { let delayed_round = now - 1; let controller_sets = >::take(delayed_round); controller_sets.into_iter().for_each(|c| { - if let Some(candidate) = Self::candidate_info(&c.old) { + if let Some(candidate) = CandidateInfo::::get(&c.old) { // replace `CandidateInfo` >::remove(&c.old); >::insert(&c.new, candidate.clone()); @@ -490,14 +490,14 @@ impl Pallet { round_to_payout: RoundIndex, payout_info: DelayedPayout>, ) -> (Option<(T::AccountId, BalanceOf)>, Weight) { - let total_points = Self::points(round_to_payout); + let total_points = Points::::get(round_to_payout); if total_points.is_zero() { return (None, Weight::from_parts(0u64, 0u64)); } if let Some((validator, pts)) = >::iter_prefix(round_to_payout).drain().next() { - if let Some(state) = Self::candidate_info(&validator) { + if let Some(state) = CandidateInfo::::get(&validator) { let validator_issuance = state.commission * payout_info.round_issuance; // compute contribution percentage from given round total points @@ -568,7 +568,7 @@ impl Pallet { let mut basic_candidates = vec![]; candidates.into_iter().for_each(|candidate| { - if let Some(state) = Self::candidate_info(&candidate.owner) { + if let Some(state) = CandidateInfo::::get(&candidate.owner) { match state.tier { TierType::Full => { if state.bond >= T::MinFullCandidateStk::get() { @@ -586,12 +586,12 @@ impl Pallet { let full_validators = Self::get_top_n_candidates( full_candidates, - Self::max_full_selected() as usize, + MaxFullSelected::::get() as usize, T::MinFullValidatorStk::get(), ); let basic_validators = Self::get_top_n_candidates( basic_candidates, - Self::max_basic_selected() as usize, + MaxBasicSelected::::get() as usize, T::MinBasicValidatorStk::get(), ); @@ -624,9 +624,9 @@ impl Pallet { (0u32, 0u32, BalanceOf::::zero()); // snapshot exposure for round for weighting reward distribution for validator in validators.iter() { - let mut state = Self::candidate_info(validator) + let mut state = CandidateInfo::::get(validator) .expect("all members of CandidateQ must be candidates"); - let top_nominations = Self::top_nominations(validator) + let top_nominations = TopNominations::::get(validator) .expect("all members of CandidateQ must be candidates"); validator_count += 1u32; @@ -704,18 +704,18 @@ impl Pallet { /// Updates the block productivity and increases block points of the block author pub(crate) fn note_author(author: &T::AccountId) { - let round = Self::round(); + let round = Round::::get(); let round_index = round.current_round_index; let current_block = round.current_block; - if let Some(mut state) = Self::candidate_info(author) { + if let Some(mut state) = CandidateInfo::::get(author) { // rounds current block increases after block authoring state.set_last_block(current_block + BlockNumberFor::::from(1u32)); state.increment_blocks_produced(); >::insert(author, state); } - let score_plus_5 = Self::awarded_pts(round_index, &author) + 5; + let score_plus_5 = AwardedPts::::get(round_index, &author) + 5; >::insert(round_index, author, score_plus_5); >::mutate(round_index, |x: &mut RewardPoint| *x += 5); } @@ -738,7 +738,7 @@ impl Pallet { validators: BoundedBTreeSet>, ) { >::mutate(|cached_selected_candidates| { - if Self::storage_cache_lifetime() <= cached_selected_candidates.len() as u32 { + if StorageCacheLifetime::::get() <= cached_selected_candidates.len() as u32 { cached_selected_candidates.pop_first(); } cached_selected_candidates.insert(now, validators); @@ -748,9 +748,9 @@ impl Pallet { /// Refresh the latest rounds cached selected candidates to the current state fn refresh_latest_cached_selected_candidates() { >::mutate(|cached_selected_candidates| { - let candidates = Self::selected_candidates(); + let candidates = SelectedCandidates::::get(); cached_selected_candidates - .entry(Self::round().current_round_index) + .entry(Round::::get().current_round_index) .and_modify(|c| *c = candidates.clone()) .or_insert(candidates); }); @@ -759,9 +759,9 @@ impl Pallet { /// Refresh the latest rounds cached majority to the current state fn refresh_latest_cached_majority() { >::mutate(|cached_majority| { - let majority = Self::majority(); + let majority = Majority::::get(); cached_majority - .entry(Self::round().current_round_index) + .entry(Round::::get().current_round_index) .and_modify(|m| *m = majority) .or_insert(majority); }); @@ -769,8 +769,8 @@ impl Pallet { /// Refresh the `Majority` and `CachedMajority` based on the new selected candidates pub fn refresh_majority(now: RoundIndex) { - let mut cached_majority = Self::cached_majority(); - if Self::storage_cache_lifetime() <= cached_majority.len() as u32 { + let mut cached_majority = CachedMajority::::get(); + if StorageCacheLifetime::::get() <= cached_majority.len() as u32 { cached_majority.pop_first(); } let majority: u32 = Self::compute_majority(); @@ -783,7 +783,7 @@ impl Pallet { /// - decrease the productivity if the validator produced zero blocks in the current session pub fn compute_productivity(session_validators: Vec) { session_validators.iter().for_each(|validator| { - if let Some(mut state) = Self::candidate_info(validator) { + if let Some(mut state) = CandidateInfo::::get(validator) { if state.productivity_status == ProductivityStatus::Idle { state.decrement_productivity::(); } @@ -815,16 +815,16 @@ impl Pallet { /// Refresh the current staking state of the network of the current round pub fn refresh_total_snapshot(now: RoundIndex) { - let selected_candidates = Self::selected_candidates(); + let selected_candidates = SelectedCandidates::::get(); let mut snapshot: TotalSnapshot> = TotalSnapshot::default(); for candidate in >::iter() { let owner = candidate.0; let state = candidate.1; let top_nominations = - Self::top_nominations(&owner).expect("Candidate must have top nominations"); - let bottom_nominations = - Self::bottom_nominations(&owner).expect("Candidate must have bottom nominations"); + TopNominations::::get(&owner).expect("Candidate must have top nominations"); + let bottom_nominations = BottomNominations::::get(&owner) + .expect("Candidate must have bottom nominations"); if selected_candidates.contains(&owner) { snapshot.increment_active_self_bond(state.bond); @@ -864,7 +864,7 @@ impl Pallet { // remove from candidate pool Self::remove_from_candidate_pool(who); // update candidate info - let mut candidate_state = Self::candidate_info(who).expect("CandidateInfo must exist"); + let mut candidate_state = CandidateInfo::::get(who).expect("CandidateInfo must exist"); candidate_state.kick_out(); CandidateInfo::::insert(who, &candidate_state); // remove from selected candidates @@ -890,7 +890,8 @@ impl Pallet { offender_slash: BalanceOf, _nominators_slash: &Vec<(T::AccountId, BalanceOf)>, ) { - let mut candidate_state = Self::candidate_info(offender).expect("CandidateInfo must exist"); + let mut candidate_state = + CandidateInfo::::get(offender).expect("CandidateInfo must exist"); candidate_state.slash_bond(offender_slash); candidate_state.slash_voting_power(offender_slash); @@ -908,7 +909,7 @@ impl Pallet { } } - let new_total_locked = Self::total().saturating_sub(offender_slash); + let new_total_locked = Total::::get().saturating_sub(offender_slash); >::put(new_total_locked); CandidateInfo::::insert(offender, candidate_state); } @@ -921,7 +922,7 @@ impl Pallet { basic_validators: Vec, ) { // update round - let mut round = Self::round(); + let mut round = Round::::get(); round.update_round::(now); let now = round.current_round_index; // handle delayed relayer update requests @@ -943,7 +944,7 @@ impl Pallet { // refresh productivity rate per block Self::refresh_productivity_per_block(validator_count, round.round_length); // snapshot total stake and storage state - >::insert(now, Self::total()); + >::insert(now, Total::::get()); >::remove(now - 1); // handle delayed controller update requests Self::handle_delayed_controller_sets(now); @@ -968,7 +969,7 @@ where fn note_author(author: T::AccountId) { Pallet::::note_author(&author); - if let Some(mut state) = Self::candidate_info(&author) { + if let Some(mut state) = CandidateInfo::::get(&author) { state.productivity_status = ProductivityStatus::Active; >::insert(&author, state); } @@ -998,7 +999,7 @@ where // Update to a new session let new_session = new_index - 1; Session::::put(new_session); - let mut round = Self::round(); + let mut round = Round::::get(); round.update_session::(now, new_session); >::put(round); @@ -1022,7 +1023,7 @@ where // Check and refresh if any validator offences has expired T::OffenceHandler::refresh_offences(new_index - 1); - let validators = Self::selected_candidates(); + let validators = SelectedCandidates::::get(); if validators.is_empty() { if new_index <= 1 { None @@ -1045,7 +1046,7 @@ where impl ShouldEndSession> for Pallet { fn should_end_session(now: BlockNumberFor) -> bool { - let round = Self::round(); + let round = Round::::get(); // always update when a new round should start round.should_update(now) } @@ -1070,7 +1071,7 @@ impl EstimateNextSessionRotation> for Pallet { fn estimate_next_session_rotation( _now: BlockNumberFor, ) -> (Option>, Weight) { - let round = Self::round(); + let round = Round::::get(); ( Some(round.first_round_block + round.round_length.into()), @@ -1107,12 +1108,11 @@ where >], slash_fraction: &[Perbill], slash_session: SessionIndex, - _disable_strategy: DisableStrategy, ) -> Weight { - let round = Self::round(); + let round = Round::::get(); for (details, slash_fraction) in offenders.iter().zip(slash_fraction) { let (controller, _snapshot) = &details.offender; - if let Some(candidate_state) = Self::candidate_info(controller) { + if let Some(candidate_state) = CandidateInfo::::get(controller) { // prevent offence handling if the validator is already kicked out (due to session // update delay) if candidate_state.is_kicked_out() { diff --git a/pallets/bfc-staking/src/pallet/mod.rs b/pallets/bfc-staking/src/pallet/mod.rs index 6d2537a2..1481224d 100644 --- a/pallets/bfc-staking/src/pallet/mod.rs +++ b/pallets/bfc-staking/src/pallet/mod.rs @@ -446,65 +446,53 @@ pub mod pallet { } #[pallet::storage] - #[pallet::getter(fn session)] /// Current session index of current round pub type Session = StorageValue<_, SessionIndex, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn round)] /// Current round index and next round scheduled transition - pub(crate) type Round = StorageValue<_, RoundInfo>, ValueQuery>; + pub type Round = StorageValue<_, RoundInfo>, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn storage_cache_lifetime)] /// The max storage lifetime for storage data to be cached pub type StorageCacheLifetime = StorageValue<_, u32, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn default_full_validator_commission)] /// Default commission rate for full validators pub type DefaultFullValidatorCommission = StorageValue<_, Perbill, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn default_basic_validator_commission)] /// Default commission rate for basic validators pub type DefaultBasicValidatorCommission = StorageValue<_, Perbill, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn min_full_validator_commission)] /// Maximum commission rate for full validators pub type MaxFullValidatorCommission = StorageValue<_, Perbill, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn min_basic_validator_commission)] /// Maximum commission rate for basic validators pub type MaxBasicValidatorCommission = StorageValue<_, Perbill, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn max_total_selected)] /// The maximum node candidates selected every round pub type MaxTotalSelected = StorageValue<_, u32, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn max_full_selected)] /// The maximum full node candidates selected every round pub type MaxFullSelected = StorageValue<_, u32, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn max_basic_selected)] /// The maximum basic node candidates selected every round pub type MaxBasicSelected = StorageValue<_, u32, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn productivity_per_block)] /// The productivity rate per block in the current round pub type ProductivityPerBlock = StorageValue<_, Perbill, ValueQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn nominator_state)] /// Get nominator state associated with an account if account is nominating else None - pub(crate) type NominatorState = StorageMap< + pub type NominatorState = StorageMap< _, Twox64Concat, T::AccountId, @@ -513,7 +501,6 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn candidate_info)] /// Get validator candidate info associated with an account if account is candidate else None pub type CandidateInfo = StorageMap< _, @@ -524,15 +511,13 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn bonded_stash)] /// Map from all locked "stash" accounts to the controller account. pub type BondedStash = StorageMap<_, Twox64Concat, T::AccountId, T::AccountId>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn top_nominations)] /// Top nominations for validator candidate - pub(crate) type TopNominations = StorageMap< + pub type TopNominations = StorageMap< _, Twox64Concat, T::AccountId, @@ -542,9 +527,8 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn bottom_nominations)] /// Bottom nominations for validator candidate - pub(crate) type BottomNominations = StorageMap< + pub type BottomNominations = StorageMap< _, Twox64Concat, T::AccountId, @@ -553,26 +537,22 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn selected_candidates)] /// The active validator set (full and basic) selected for the current round. This storage is sorted by address. pub type SelectedCandidates = StorageValue<_, BoundedBTreeSet>, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn selected_full_candidates)] /// The active full validator set selected for the current round. This storage is sorted by address. pub type SelectedFullCandidates = StorageValue<_, BoundedBTreeSet>, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn selected_basic_candidates)] /// The active basic validator set selected for the current round. This storage is sorted by address. pub type SelectedBasicCandidates = StorageValue<_, BoundedBTreeSet>, ValueQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn cached_selected_candidates)] /// The cached active validator set selected from previous rounds. This storage is sorted by address. pub type CachedSelectedCandidates = StorageValue< _, @@ -581,25 +561,21 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn majority)] /// The majority of the current active validator set pub type Majority = StorageValue<_, u32, ValueQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn cached_majority)] /// The cached majority based on the active validator set selected from previous rounds pub type CachedMajority = StorageValue<_, BTreeMap, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn total)] /// Total capital locked by this staking pallet - pub(crate) type Total = StorageValue<_, BalanceOf, ValueQuery>; + pub type Total = StorageValue<_, BalanceOf, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn candidate_pool)] /// The pool of validator candidates, each with their total voting power. - pub(crate) type CandidatePool = StorageValue< + pub type CandidatePool = StorageValue< _, BoundedBTreeMap, ConstU32>, ValueQuery, @@ -607,7 +583,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn at_stake)] /// Snapshot of validator nomination stake at the start of the round pub type AtStake = StorageDoubleMap< _, @@ -620,19 +595,16 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn total_at_stake)] /// Snapshot of the network state at the start of the round pub type TotalAtStake = StorageMap<_, Twox64Concat, RoundIndex, TotalSnapshot>, OptionQuery>; #[pallet::storage] - #[pallet::getter(fn delayed_payouts)] /// Delayed reward payouts pub type DelayedPayouts = StorageMap<_, Twox64Concat, RoundIndex, DelayedPayout>, OptionQuery>; #[pallet::storage] - #[pallet::getter(fn delayed_controller_sets)] /// Delayed new controller account set requests pub type DelayedControllerSets = StorageMap< _, @@ -643,7 +615,6 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn delayed_commission_sets)] /// Delayed candidate commission rate set requests pub type DelayedCommissionSets = StorageMap< _, @@ -654,22 +625,18 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn staked)] /// Total counted stake for selected candidates in the round pub type Staked = StorageMap<_, Twox64Concat, RoundIndex, BalanceOf, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn inflation_config)] /// Inflation configuration pub type InflationConfig = StorageValue<_, InflationInfo>, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn points)] /// Total points awarded to validators for block production in the round pub type Points = StorageMap<_, Twox64Concat, RoundIndex, RewardPoint, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn awarded_pts)] /// Points for each validator per round pub type AwardedPts = StorageDoubleMap< _, @@ -682,7 +649,6 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn awarded_tokens)] /// The amount of awarded tokens to validators and nominators since genesis pub type AwardedTokens = StorageValue<_, BalanceOf, ValueQuery>; @@ -1092,7 +1058,7 @@ pub mod pallet { relayer: Option, ) -> DispatchResultWithPostInfo { let stash = ensure_signed(origin)?; - let controller = Self::bonded_stash(&stash).ok_or(Error::::StashDNE)?; + let controller = BondedStash::::get(&stash).ok_or(Error::::StashDNE)?; let mut state = >::get(&controller).ok_or(Error::::CandidateDNE)?; let old = state.tier; ensure!(old != new, Error::::NoWritingSameValue); @@ -1291,7 +1257,7 @@ pub mod pallet { candidate_nomination_count: u32, ) -> DispatchResultWithPostInfo { let stash = ensure_signed(origin)?; - let controller = Self::bonded_stash(&stash).ok_or(Error::::StashDNE)?; + let controller = BondedStash::::get(&stash).ok_or(Error::::StashDNE)?; let state = >::get(&controller).ok_or(Error::::CandidateDNE)?; ensure!( state.nomination_count <= candidate_nomination_count, @@ -1392,7 +1358,7 @@ pub mod pallet { new: T::AccountId, ) -> DispatchResultWithPostInfo { let stash = ensure_signed(origin)?; - let old = Self::bonded_stash(&stash).ok_or(Error::::StashDNE)?; + let old = BondedStash::::get(&stash).ok_or(Error::::StashDNE)?; let state = >::get(&old).ok_or(Error::::CandidateDNE)?; ensure!(new != old, Error::::NoWritingSameValue); ensure!(!Self::is_candidate(&new, TierType::All), Error::::AlreadyPaired); @@ -1541,7 +1507,7 @@ pub mod pallet { more: BalanceOf, ) -> DispatchResultWithPostInfo { let stash = ensure_signed(origin)?; - let controller = Self::bonded_stash(&stash).ok_or(Error::::StashDNE)?; + let controller = BondedStash::::get(&stash).ok_or(Error::::StashDNE)?; let mut state = >::get(&controller).ok_or(Error::::CandidateDNE)?; // check that caller can reserve the amount before any changes to storage ensure!(T::Currency::can_reserve(&stash, more), Error::::InsufficientBalance); @@ -1578,7 +1544,7 @@ pub mod pallet { /// - origin should be the stash account pub fn execute_candidate_bond_less(origin: OriginFor) -> DispatchResultWithPostInfo { let stash = ensure_signed(origin)?; - let controller = Self::bonded_stash(&stash).ok_or(Error::::StashDNE)?; + let controller = BondedStash::::get(&stash).ok_or(Error::::StashDNE)?; let mut state = >::get(&controller).ok_or(Error::::CandidateDNE)?; state.execute_bond_less::(stash.clone(), controller.clone())?; >::insert(&controller, state); diff --git a/pallets/bfc-utility/Cargo.toml b/pallets/bfc-utility/Cargo.toml index c6470dd6..b9b1d25e 100644 --- a/pallets/bfc-utility/Cargo.toml +++ b/pallets/bfc-utility/Cargo.toml @@ -23,27 +23,19 @@ sp-runtime = { workspace = true } sp-std = { workspace = true } sp-core = { workspace = true } -[dev-dependencies] -similar-asserts = { workspace = true } - -pallet-balances = { workspace = true, features = ["insecure_zero_ed", "std"] } -sp-core = { workspace = true, features = ["std"] } -sp-io = { workspace = true, features = ["std"] } - [features] default = ["std"] std = [ - "impl-serde/std", - "scale-info/std", - "parity-scale-codec/std", - "frame-benchmarking/std", - "frame-support/std", - "frame-system/std", - "serde", - "sp-runtime/std", - "sp-std/std", - "sp-core/std", - "sp-io/std", + "serde/std", + "impl-serde/std", + "scale-info/std", + "parity-scale-codec/std", + "frame-benchmarking/std", + "frame-support/std", + "frame-system/std", + "sp-runtime/std", + "sp-std/std", + "sp-core/std", ] runtime-benchmarks = ["frame-benchmarking"] try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/bfc-utility/src/migrations.rs b/pallets/bfc-utility/src/migrations.rs index 9dd8443c..72242b2d 100644 --- a/pallets/bfc-utility/src/migrations.rs +++ b/pallets/bfc-utility/src/migrations.rs @@ -14,7 +14,7 @@ pub mod v3_update { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let onchain = Pallet::::on_chain_storage_version(); if current == 3 && onchain == 0 { @@ -42,7 +42,7 @@ pub mod v3 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); // (previous) let onchain = StorageVersion::::get(); let onchain = Pallet::::on_chain_storage_version(); diff --git a/pallets/btc-registration-pool/src/migrations.rs b/pallets/btc-registration-pool/src/migrations.rs index 7e3290c4..38502908 100644 --- a/pallets/btc-registration-pool/src/migrations.rs +++ b/pallets/btc-registration-pool/src/migrations.rs @@ -16,7 +16,7 @@ pub mod init_v1 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let onchain = Pallet::::on_chain_storage_version(); if current == 1 && onchain == 0 { diff --git a/pallets/btc-registration-pool/src/pallet/impls.rs b/pallets/btc-registration-pool/src/pallet/impls.rs index dd71c79e..1603bc33 100644 --- a/pallets/btc-registration-pool/src/pallet/impls.rs +++ b/pallets/btc-registration-pool/src/pallet/impls.rs @@ -28,7 +28,7 @@ use super::pallet::*; impl PoolManager for Pallet { fn get_refund_address(who: &T::AccountId) -> Option { - if let Some(relay_target) = Self::registration_pool(Self::current_round(), who) { + if let Some(relay_target) = RegistrationPool::::get(CurrentRound::::get(), who) { Some(relay_target.refund_address) } else { None @@ -36,7 +36,7 @@ impl PoolManager for Pallet { } fn get_vault_address(who: &T::AccountId) -> Option { - if let Some(relay_target) = Self::registration_pool(Self::current_round(), who) { + if let Some(relay_target) = RegistrationPool::::get(CurrentRound::::get(), who) { match relay_target.vault.address { AddressState::Pending => None, AddressState::Generated(address) => Some(address), @@ -47,7 +47,7 @@ impl PoolManager for Pallet { } fn get_system_vault(round: u32) -> Option { - if let Some(vault) = Self::system_vault(round) { + if let Some(vault) = SystemVault::::get(round) { match vault.address { AddressState::Pending => None, AddressState::Generated(address) => Some(address), @@ -66,11 +66,11 @@ impl PoolManager for Pallet { } fn get_service_state() -> MigrationSequence { - Self::service_state() + ServiceState::::get() } fn get_current_round() -> u32 { - Self::current_round() + CurrentRound::::get() } fn add_migration_tx(txid: H256) { @@ -96,14 +96,14 @@ impl PoolManager for Pallet { } fn replace_authority(old: &T::AccountId, new: &T::AccountId) { - let round = Self::current_round(); + let round = CurrentRound::::get(); // move pre-submitted pub keys from old to new let pre_submitted_pub_keys = >::take(round, old); if !pre_submitted_pub_keys.is_empty() { >::insert(round, new, pre_submitted_pub_keys); } // replace authority in system vault (if it's pending) - if let Some(mut vault) = Self::system_vault(round) { + if let Some(mut vault) = SystemVault::::get(round) { if vault.address == AddressState::Pending { vault.replace_authority(old, new); } @@ -120,7 +120,7 @@ impl PoolManager for Pallet { impl Pallet { /// Get the `m` value. pub fn get_m() -> u32 { - Self::m_n_ratio().mul_ceil(Self::get_n()) + MultiSigRatio::::get().mul_ceil(Self::get_n()) } /// Get the `n` value. diff --git a/pallets/btc-registration-pool/src/pallet/mod.rs b/pallets/btc-registration-pool/src/pallet/mod.rs index 7fcb90f6..268a241c 100644 --- a/pallets/btc-registration-pool/src/pallet/mod.rs +++ b/pallets/btc-registration-pool/src/pallet/mod.rs @@ -144,25 +144,21 @@ pub mod pallet { } #[pallet::storage] - #[pallet::getter(fn current_round)] /// The current round of the registration pool. pub type CurrentRound = StorageValue<_, PoolRound, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn service_state)] /// The migration sequence of the registration pool. pub type ServiceState = StorageValue<_, MigrationSequence, ValueQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn system_vault)] /// The system vault account that is used for fee refunds. pub type SystemVault = StorageMap<_, Twox64Concat, PoolRound, MultiSigAccount, OptionQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn registration_pool)] /// Registered addresses that are permitted to relay Bitcoin. pub type RegistrationPool = StorageDoubleMap< _, @@ -174,7 +170,6 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn bonded_vault)] /// Mapped Bitcoin vault addresses. The key is the vault address and the value is the user's Bifrost address. /// For system vault, the value will be set to the precompile address. pub type BondedVault = StorageDoubleMap< @@ -188,7 +183,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn bonded_refund)] /// Mapped Bitcoin refund addresses. The key is the refund address and the value is the user's Bifrost address(s). pub type BondedRefund = StorageDoubleMap< _, @@ -201,7 +195,6 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn bonded_pub_key)] /// Mapped public keys used for vault account generation. The key is the public key and the value is user's Bifrost address. /// For system vault, the value will be set to the precompile address. pub type BondedPubKey = @@ -209,7 +202,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn bonded_descriptor)] /// Mapped descriptors. The key is the vault address and the value is the descriptor. pub type BondedDescriptor = StorageDoubleMap< _, @@ -221,13 +213,11 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn m_n_ratio)] /// The minimum required ratio of signatures to unlock the vault account's txo. pub type MultiSigRatio = StorageValue<_, Percent, ValueQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn presubmitted_pubkeys)] /// The public keys that are pre-submitted by the relay executives. pub type PreSubmittedPubKeys = StorageDoubleMap< _, @@ -240,8 +230,6 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn max_presubmission)] - /// The maximum number of pre-submitted public keys. pub type MaxPreSubmission = StorageValue<_, u32, ValueQuery>; #[pallet::storage] @@ -300,13 +288,13 @@ pub mod pallet { new: UnboundedBytes, ) -> DispatchResultWithPostInfo { ensure!( - Self::service_state() == MigrationSequence::Normal, + ServiceState::::get() == MigrationSequence::Normal, Error::::UnderMaintenance ); let who = ensure_signed(origin)?; let new: BoundedBitcoinAddress = Self::get_checked_bitcoin_address(&new)?; - let current_round = Self::current_round(); + let current_round = CurrentRound::::get(); let relay_target = >::get(current_round, &who).ok_or(Error::::UserDNE)?; @@ -340,14 +328,14 @@ pub mod pallet { refund_address: UnboundedBytes, ) -> DispatchResultWithPostInfo { ensure!( - Self::service_state() == MigrationSequence::Normal, + ServiceState::::get() == MigrationSequence::Normal, Error::::UnderMaintenance ); let who = ensure_signed(origin)?; let refund_address: BoundedBitcoinAddress = Self::get_checked_bitcoin_address(&refund_address)?; - let current_round = Self::current_round(); + let current_round = CurrentRound::::get(); ensure!( !>::contains_key(current_round, &refund_address), @@ -417,14 +405,14 @@ pub mod pallet { ensure!( matches!( - Self::service_state(), + >::get(), MigrationSequence::Normal | MigrationSequence::PrepareNextSystemVault ), Error::::UnderMaintenance ); - let target_round = - if migration_prepare { Self::current_round() + 1 } else { Self::current_round() }; + let current_round = CurrentRound::::get(); + let target_round = if migration_prepare { current_round + 1 } else { current_round }; ensure!( >::get(target_round).is_none(), @@ -452,13 +440,13 @@ pub mod pallet { ensure_none(origin)?; ensure!( - Self::service_state() == MigrationSequence::Normal, + ServiceState::::get() == MigrationSequence::Normal, Error::::UnderMaintenance ); let VaultKeySubmission { authority_id, who, pub_key, pool_round } = key_submission; - let current_round = Self::current_round(); + let current_round = >::get(); ensure!(current_round == pool_round, Error::::PoolRoundOutdated); let mut relay_target = @@ -515,15 +503,16 @@ pub mod pallet { // make sure this cannot be executed by a signed transaction. ensure_none(origin)?; - let service_state = Self::service_state(); + let service_state = ServiceState::::get(); + let current_round = CurrentRound::::get(); let target_round; - match Self::service_state() { + match service_state { MigrationSequence::Normal => { - target_round = Self::current_round(); + target_round = current_round; }, MigrationSequence::PrepareNextSystemVault => { - target_round = Self::current_round() + 1; + target_round = current_round + 1; }, MigrationSequence::SetExecutiveMembers | MigrationSequence::UTXOTransfer => { return Err(Error::::UnderMaintenance)?; @@ -597,13 +586,13 @@ pub mod pallet { ensure_none(origin)?; ensure!( - Self::service_state() == MigrationSequence::Normal, + ServiceState::::get() == MigrationSequence::Normal, Error::::UnderMaintenance ); let VaultKeyPreSubmission { authority_id, pub_keys, pool_round } = key_submission; - let current_round = Self::current_round(); + let current_round = >::get(); ensure!(current_round == pool_round, Error::::PoolRoundOutdated); // validate public keys @@ -614,9 +603,9 @@ pub mod pallet { ); } - let mut presubmitted = Self::presubmitted_pubkeys(current_round, &authority_id); + let mut presubmitted = >::get(current_round, &authority_id); ensure!( - presubmitted.len() + pub_keys.len() <= Self::max_presubmission() as usize, + presubmitted.len() + pub_keys.len() <= MaxPreSubmission::::get() as usize, Error::::OutOfRange ); @@ -650,11 +639,11 @@ pub mod pallet { ensure_root(origin.clone())?; ensure!( - Self::service_state() == MigrationSequence::Normal, + ServiceState::::get() == MigrationSequence::Normal, Error::::UnderMaintenance ); - let current_round = Self::current_round(); + let current_round = CurrentRound::::get(); let vault_address: BoundedBitcoinAddress = Self::get_checked_bitcoin_address(&vault_address)?; @@ -663,15 +652,15 @@ pub mod pallet { if who == H160::from_low_u64_be(ADDRESS_U64).into() { // system vault let system_vault = - >::get(Self::current_round()).ok_or(Error::::VaultDNE)?; + >::get(current_round).ok_or(Error::::VaultDNE)?; for pubkey in system_vault.pub_keys() { >::remove(current_round, &pubkey); } - >::remove(Self::current_round()); + >::remove(current_round); } else { // user let target = - Self::registration_pool(current_round, &who).ok_or(Error::::UserDNE)?; + RegistrationPool::::get(current_round, &who).ok_or(Error::::UserDNE)?; for pubkey in target.vault.pub_keys() { >::remove(current_round, &pubkey); } @@ -699,7 +688,7 @@ pub mod pallet { pub fn migration_control(origin: OriginFor) -> DispatchResultWithPostInfo { ensure_root(origin.clone())?; - match Self::service_state() { + match ServiceState::::get() { MigrationSequence::Normal => { ensure!( T::SocketQueue::is_ready_for_migrate(), @@ -750,10 +739,10 @@ pub mod pallet { ensure_root(origin)?; ensure!( - Self::service_state() == MigrationSequence::Normal, + ServiceState::::get() == MigrationSequence::Normal, Error::::UnderMaintenance ); - ensure!(round < Self::current_round(), Error::::OutOfRange); + ensure!(round < CurrentRound::::get(), Error::::OutOfRange); // remove all data related to the round >::remove(round); @@ -796,7 +785,7 @@ pub mod pallet { // we only permit ratio that is higher than 50% ensure!(new >= Percent::from_percent(50), Error::::OutOfRange); - let old = Self::m_n_ratio(); + let old = MultiSigRatio::::get(); ensure!(new != old, Error::::NoWritingSameValue); >::set(new); @@ -816,13 +805,13 @@ pub mod pallet { ensure_none(origin)?; ensure!( - Self::service_state() == MigrationSequence::Normal, + ServiceState::::get() == MigrationSequence::Normal, Error::::UnderMaintenance ); let SetRefundsApproval { refund_sets, pool_round, .. } = approval; - let current_round = Self::current_round(); + let current_round = CurrentRound::::get(); ensure!(current_round == pool_round, Error::::PoolRoundOutdated); for refund_set in &refund_sets { diff --git a/pallets/btc-socket-queue/src/migrations.rs b/pallets/btc-socket-queue/src/migrations.rs index 135d0028..b979c62f 100644 --- a/pallets/btc-socket-queue/src/migrations.rs +++ b/pallets/btc-socket-queue/src/migrations.rs @@ -14,7 +14,7 @@ pub mod init_v2 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let onchain = Pallet::::on_chain_storage_version(); if current == 2 && onchain == 0 { @@ -50,7 +50,7 @@ pub mod v2 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let onchain = Pallet::::on_chain_storage_version(); weight = weight.saturating_add(T::DbWeight::get().reads(2)); @@ -143,7 +143,7 @@ pub mod init_v1 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let onchain = Pallet::::on_chain_storage_version(); if current == 1 && onchain == 0 { diff --git a/pallets/btc-socket-queue/src/pallet/impls.rs b/pallets/btc-socket-queue/src/pallet/impls.rs index ee0f4a91..f993cdaf 100644 --- a/pallets/btc-socket-queue/src/pallet/impls.rs +++ b/pallets/btc-socket-queue/src/pallet/impls.rs @@ -356,7 +356,7 @@ where ) { return Err(Error::::InvalidSocketMessage.into()); } - if Self::socket_messages(&msg.req_id.sequence).is_some() { + if SocketMessages::::get(&msg.req_id.sequence).is_some() { return Err(Error::::SocketMessageAlreadySubmitted.into()); } @@ -374,7 +374,9 @@ where deserialized_msgs.push(msg.clone()); serialized_msgs.push(serialized_msg.clone()); msg_sequences.push(msg.req_id.sequence); - amount = amount.checked_add(msg.params.amount).unwrap(); + amount = amount + .checked_add(msg.params.amount) + .ok_or_else(|| >::U256OverFlowed)?; } // verify psbt output let psbt_amount = U256::from(output.value.to_sat()); diff --git a/pallets/btc-socket-queue/src/pallet/mod.rs b/pallets/btc-socket-queue/src/pallet/mod.rs index e97c7039..b391c31a 100644 --- a/pallets/btc-socket-queue/src/pallet/mod.rs +++ b/pallets/btc-socket-queue/src/pallet/mod.rs @@ -76,6 +76,8 @@ pub mod pallet { SocketDNE, /// The socket message does not exist. SocketMessageDNE, + /// U256 overflowed. + U256OverFlowed, /// The user does not exist. UserDNE, /// The system vault does not exist. @@ -138,23 +140,19 @@ pub mod pallet { } #[pallet::storage] - #[pallet::getter(fn socket_contract)] /// The `Socket` contract address. pub type Socket = StorageValue<_, T::AccountId, OptionQuery>; #[pallet::storage] - #[pallet::getter(fn bitcoin_socket_contract)] /// The `BitcoinSocket` contract address. pub type BitcoinSocket = StorageValue<_, T::AccountId, OptionQuery>; #[pallet::storage] - #[pallet::getter(fn authority)] /// The core authority address. The account that is permitted to submit unsigned PSBT's. pub type Authority = StorageValue<_, T::AccountId, OptionQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn socket_messages)] /// The submitted `SocketMessage` instances. /// key: Request sequence ID. /// value: @@ -164,7 +162,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn pending_requests)] /// Pending outbound requests that are not ready to be finalized. /// key: The pending PSBT's txid. /// value: The PSBT information. @@ -173,7 +170,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn finalized_requests)] /// Finalized outbound requests. /// key: The finalized PSBT's txid. /// value: The PSBT information. @@ -182,7 +178,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn executed_requests)] /// Outbound requests that has been broadcasted to the Bitcoin network. /// key: The executed PSBT's txid. /// value: The PSBT information. @@ -191,7 +186,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn rollback_requests)] /// Pending or approved rollback requests. /// key: The PSBT's txid. /// value: The rollback information. @@ -200,7 +194,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn bonded_outbound_tx)] /// Mapped outbound txids. /// key: The PSBT's txid. /// value: The composed socket messages. @@ -208,7 +201,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn bonded_rollback_outputs)] /// Mapped rollback outputs. /// key #1: The rollback transaction txid. /// key #2: The rollback transaction output index. diff --git a/pallets/relay-manager/Cargo.toml b/pallets/relay-manager/Cargo.toml index 403552d7..d44f1040 100644 --- a/pallets/relay-manager/Cargo.toml +++ b/pallets/relay-manager/Cargo.toml @@ -28,25 +28,17 @@ pallet-membership = { workspace = true } bp-btc-relay = { workspace = true } bp-staking = { workspace = true } -[dev-dependencies] -similar-asserts = { workspace = true } - -pallet-balances = { workspace = true, features = ["insecure_zero_ed", "std"] } -sp-core = { workspace = true, features = ["std"] } -sp-io = { workspace = true, features = ["std"] } - [features] default = ["std"] std = [ + "serde/std", "scale-info/std", "parity-scale-codec/std", "frame-benchmarking/std", "frame-support/std", "frame-system/std", - "serde", "sp-runtime/std", "sp-std/std", - "sp-io/std", "sp-staking/std", "pallet-session/std", "pallet-membership/std", diff --git a/pallets/relay-manager/src/migrations.rs b/pallets/relay-manager/src/migrations.rs index 428aa10d..8ba6b56d 100644 --- a/pallets/relay-manager/src/migrations.rs +++ b/pallets/relay-manager/src/migrations.rs @@ -19,7 +19,7 @@ pub mod v4 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); // (previous) let onchain = StorageVersion::::get(); let onchain = Pallet::::on_chain_storage_version(); diff --git a/pallets/relay-manager/src/pallet/impls.rs b/pallets/relay-manager/src/pallet/impls.rs index 92d387d2..cdc57640 100644 --- a/pallets/relay-manager/src/pallet/impls.rs +++ b/pallets/relay-manager/src/pallet/impls.rs @@ -18,11 +18,11 @@ use sp_std::{vec, vec::Vec}; impl Authorities for Pallet { fn is_authority(who: &T::AccountId) -> bool { - Self::selected_relayers().contains(who) + SelectedRelayers::::get().contains(who) } fn count() -> usize { - Self::selected_relayers().len() + SelectedRelayers::::get().len() } fn majority() -> u32 { @@ -53,10 +53,10 @@ where } fn refresh_relayer_pool() { - let pool = Self::relayer_pool(); + let pool = RelayerPool::::get(); pool.iter().for_each(|r| { let mut relayer_state = - Self::relayer_state(&r.relayer).expect("RelayerState must exist"); + RelayerState::::get(&r.relayer).expect("RelayerState must exist"); if !relayer_state.is_kicked_out() { relayer_state.go_offline(); } @@ -69,10 +69,10 @@ where Self::refresh_relayer_pool(); for controller in selected_candidates { - if let Some(relayer) = Self::bonded_controller(&controller) { + if let Some(relayer) = BondedController::::get(&controller) { selected_relayers.try_insert(relayer.clone()).expect(>::TooManySelectedRelayers.as_str()); let mut relayer_state = - Self::relayer_state(&relayer).expect("RelayerState must exist"); + RelayerState::::get(&relayer).expect("RelayerState must exist"); relayer_state.go_online(); >::insert(&relayer, relayer_state); Self::deposit_event(Event::RelayerChosen { @@ -88,12 +88,12 @@ where } fn refresh_cached_selected_relayers(round: RoundIndex, relayers: BoundedBTreeSet>) { - let mut cached_selected_relayers = Self::cached_selected_relayers(); - let mut cached_initial_selected_relayers = Self::cached_initial_selected_relayers(); - if Self::storage_cache_lifetime() <= cached_selected_relayers.len() as u32 { + let mut cached_selected_relayers = CachedSelectedRelayers::::get(); + let mut cached_initial_selected_relayers = CachedInitialSelectedRelayers::::get(); + if StorageCacheLifetime::::get() <= cached_selected_relayers.len() as u32 { cached_selected_relayers.pop_first(); } - if Self::storage_cache_lifetime() <= cached_initial_selected_relayers.len() as u32 { + if StorageCacheLifetime::::get() <= cached_initial_selected_relayers.len() as u32 { cached_initial_selected_relayers.pop_first(); } cached_selected_relayers.insert(round, relayers.clone()); @@ -103,12 +103,12 @@ where } fn refresh_majority(round: RoundIndex) { - let mut cached_majority = Self::cached_majority(); - let mut cached_initial_majority = Self::cached_initial_majority(); - if Self::storage_cache_lifetime() <= cached_majority.len() as u32 { + let mut cached_majority = CachedMajority::::get(); + let mut cached_initial_majority = CachedInitialMajority::::get(); + if StorageCacheLifetime::::get() <= cached_majority.len() as u32 { cached_majority.pop_first(); } - if Self::storage_cache_lifetime() <= cached_initial_majority.len() as u32 { + if StorageCacheLifetime::::get() <= cached_initial_majority.len() as u32 { cached_initial_majority.pop_first(); } let majority: u32 = Self::compute_majority(); @@ -124,7 +124,7 @@ where if let Some(relayer) = >::take(&old) { >::insert(&new, relayer.clone()); let mut relayer_state = - Self::relayer_state(&relayer).expect("RelayerState must exist"); + RelayerState::::get(&relayer).expect("RelayerState must exist"); relayer_state.set_controller(new.clone()); >::insert(&relayer, relayer_state); Self::remove_from_relayer_pool(&new, false); @@ -140,9 +140,9 @@ where } fn kickout_relayer(controller: &T::AccountId) { - if let Some(relayer) = Self::bonded_controller(controller) { + if let Some(relayer) = BondedController::::get(controller) { let mut relayer_state = - Self::relayer_state(&relayer).expect("RelayerState must exist"); + RelayerState::::get(&relayer).expect("RelayerState must exist"); relayer_state.kick_out(); >::insert(&relayer, relayer_state); @@ -166,7 +166,7 @@ where .enumerate() .filter(|(_, id)| { let controller: T::AccountId = id.clone().into(); - if let Some(relayer) = Self::bonded_controller(&controller) { + if let Some(relayer) = BondedController::::get(&controller) { !Self::is_heartbeat_pulsed(&relayer) } else { false @@ -175,9 +175,9 @@ where .filter_map(|(_, id)| { let controller: T::AccountId = id.clone().into(); let relayer = - Self::bonded_controller(&controller).expect("BondedController must exist"); + BondedController::::get(&controller).expect("BondedController must exist"); let mut relayer_state = - Self::relayer_state(&relayer).expect("RelayerState must exist"); + RelayerState::::get(&relayer).expect("RelayerState must exist"); relayer_state.go_offline(); >::insert(&relayer, relayer_state); >::IdentificationOf::convert( @@ -194,7 +194,7 @@ where if offenders.is_empty() { Self::deposit_event(Event::::AllGood); } else { - if Self::is_heartbeat_offence_active() { + if IsHeartbeatOffenceActive::::get() { let validator_set_count = current_validators.len() as u32; let offence = UnresponsivenessOffence { session_index, @@ -238,7 +238,7 @@ where impl Pallet { /// Verifies if the given account is a (candidate) relayer pub fn is_relayer(relayer: &T::AccountId) -> bool { - if Self::relayer_state(relayer).is_some() { + if RelayerState::::get(relayer).is_some() { return true; } false @@ -248,22 +248,22 @@ impl Pallet { /// the beginning of the current round pub fn is_selected_relayer(relayer: &T::AccountId, is_initial: bool) -> bool { if is_initial { - Self::initial_selected_relayers().contains(relayer) + InitialSelectedRelayers::::get().contains(relayer) } else { - Self::selected_relayers().contains(relayer) + SelectedRelayers::::get().contains(relayer) } } /// Verifies if the given account has already requested for relayer account update pub fn is_relayer_set_requested(relayer: T::AccountId) -> bool { - let round = Self::round(); - let relayer_sets = Self::delayed_relayer_sets(round); + let round = Round::::get(); + let relayer_sets = DelayedRelayerSets::::get(round); relayer_sets.into_iter().any(|r| r.old == relayer) } /// Compute majority based on the current selected relayers fn compute_majority() -> u32 { - ((Self::selected_relayers().len() as u32) / 2) + 1 + ((SelectedRelayers::::get().len() as u32) / 2) + 1 } /// Verifies the existence of the given relayer and controller account. If it is both not bonded @@ -280,7 +280,7 @@ impl Pallet { /// Sets the liveness of the requested relayer to `true`. pub fn pulse_heartbeat(relayer: &T::AccountId) -> bool { let session_index = T::ValidatorSet::session_index(); - if !Self::received_heartbeats(session_index, relayer) { + if !ReceivedHeartbeats::::get(session_index, relayer) { >::insert(session_index, relayer, true); return true; } @@ -291,7 +291,7 @@ impl Pallet { /// `true` if the given relayer sent a heartbeat in the current session. pub fn is_heartbeat_pulsed(relayer: &T::AccountId) -> bool { let session_index = T::ValidatorSet::session_index(); - Self::received_heartbeats(session_index, relayer) + ReceivedHeartbeats::::get(session_index, relayer) } /// Remove the given `relayer` from the `SelectedRelayers`. Returns `true` if the relayer has @@ -311,7 +311,7 @@ impl Pallet { /// Adds a new relayer address update request. The state reflection will be applied in the next round. pub fn add_to_relayer_sets(old: T::AccountId, new: T::AccountId) -> DispatchResult { - let round = Self::round(); + let round = Round::::get(); >::try_mutate(round, |relayer_sets| -> DispatchResult { Ok(relayer_sets .try_push(DelayedRelayerSet::new(old, new)) @@ -321,7 +321,7 @@ impl Pallet { /// Remove the given `who` from the `DelayedRelayerSets` of the current round. pub fn remove_relayer_set(who: &T::AccountId) -> DispatchResult { - let round = Self::round(); + let round = Round::::get(); >::mutate(round, |relayer_set| { relayer_set.retain(|r| r.old != *who); }); @@ -330,9 +330,9 @@ impl Pallet { /// Refresh the latest rounds cached selected relayers to the current state fn refresh_latest_cached_relayers() { - let round = Self::round(); + let round = Round::::get(); >::mutate(|cached_selected_relayers| { - let selected_relayers = Self::selected_relayers(); + let selected_relayers = SelectedRelayers::::get(); cached_selected_relayers .entry(round) .and_modify(|s| *s = selected_relayers.clone()) @@ -342,7 +342,7 @@ impl Pallet { /// Refresh the latest rounds cached majority to the current state fn refresh_latest_cached_majority() { - let round = Self::round(); + let round = Round::::get(); >::mutate(|cached_majority| { let majority = Self::majority(); cached_majority.entry(round).and_modify(|m| *m = majority).or_insert(majority); @@ -353,7 +353,7 @@ impl Pallet { /// the given `acc` references to the relayer account or not. It it's not, it represents the /// bonded controller account. Returns `true` if the relayer has been removed. fn remove_from_relayer_pool(acc: &T::AccountId, is_relayer: bool) -> bool { - let mut pool = Self::relayer_pool(); + let mut pool = RelayerPool::::get(); let prev_len = pool.len(); pool.retain(|r| if is_relayer { r.relayer != *acc } else { r.controller != *acc }); let curr_len = pool.len(); diff --git a/pallets/relay-manager/src/pallet/mod.rs b/pallets/relay-manager/src/pallet/mod.rs index 287741bc..b200831e 100644 --- a/pallets/relay-manager/src/pallet/mod.rs +++ b/pallets/relay-manager/src/pallet/mod.rs @@ -114,29 +114,24 @@ pub mod pallet { } #[pallet::storage] - #[pallet::getter(fn storage_cache_lifetime)] /// The max storage lifetime for storage data to be cached pub type StorageCacheLifetime = StorageValue<_, u32, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn round)] /// The current round index pub type Round = StorageValue<_, RoundIndex, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn bonded_controller)] /// Mapped controller accounts to the relayer account. /// key: controller, value: relayer pub type BondedController = StorageMap<_, Twox64Concat, T::AccountId, T::AccountId>; #[pallet::storage] - #[pallet::getter(fn relayer_pool)] /// The pool of relayers of the current round (including selected and non-selected relayers) pub type RelayerPool = StorageValue<_, BoundedVec, ConstU32>, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn relayer_state)] /// The current state of a specific relayer pub type RelayerState = StorageMap< _, @@ -147,13 +142,11 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn selected_relayers)] /// The active relayer set selected for the current round. This storage is sorted by address. pub type SelectedRelayers = StorageValue<_, BoundedBTreeSet>, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn initial_selected_relayers)] /// The active relayer set selected at the beginning of the current round. This storage is sorted by address. /// This is used to differentiate with kicked out relayers. pub type InitialSelectedRelayers = @@ -161,7 +154,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn cached_selected_relayers)] /// The cached active relayer set selected from previous rounds. This storage is sorted by address. pub type CachedSelectedRelayers = StorageValue< _, @@ -171,7 +163,6 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn cached_initial_selected_relayers)] /// The cached active relayer set selected from the beginning of each previous rounds. This storage is sorted by address. /// This is used to differentiate with kicked out relayers. pub type CachedInitialSelectedRelayers = StorageValue< @@ -181,32 +172,27 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn majority)] /// The majority of the current active relayer set pub type Majority = StorageValue<_, u32, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn initial_majority)] /// The majority of the current active relayer set at the beginning of the current round. /// This is used to differentiate with kicked out relayers. pub type InitialMajority = StorageValue<_, u32, ValueQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn cached_majority)] /// The cached majority based on the active relayer set selected from previous rounds pub type CachedMajority = StorageValue<_, BTreeMap, ValueQuery>; #[pallet::storage] #[pallet::unbounded] - #[pallet::getter(fn cached_initial_majority)] /// The cached majority based on the active relayer set selected from the beginning of each previous rounds. /// This is used to differentiate with kicked out relayers. pub type CachedInitialMajority = StorageValue<_, BTreeMap, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn received_heartbeats)] /// The received heartbeats of a specific relayer in the current session pub type ReceivedHeartbeats = StorageDoubleMap< _, @@ -219,17 +205,14 @@ pub mod pallet { >; #[pallet::storage] - #[pallet::getter(fn is_heartbeat_offence_active)] /// The activation of relayer heartbeat offence management pub type IsHeartbeatOffenceActive = StorageValue<_, bool, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn heartbeat_slash_fraction)] /// The slash fraction for heartbeat offences pub type HeartbeatSlashFraction = StorageValue<_, Perbill, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn delayed_relayer_sets)] /// Delayed relayer address update requests pub type DelayedRelayerSets = StorageMap< _, @@ -332,7 +315,7 @@ pub mod pallet { /// - origin should be the controller account pub fn set_relayer(origin: OriginFor, new: T::AccountId) -> DispatchResultWithPostInfo { let controller = ensure_signed(origin)?; - let old = Self::bonded_controller(&controller).ok_or(Error::::ControllerDNE)?; + let old = BondedController::::get(&controller).ok_or(Error::::ControllerDNE)?; ensure!(old != new, Error::::NoWritingSameValue); ensure!(Self::is_relayer(&old), Error::::RelayerDNE); ensure!(!Self::is_relayer(&new), Error::::RelayerAlreadyJoined); @@ -351,7 +334,8 @@ pub mod pallet { /// - origin should be the controller account. pub fn cancel_relayer_set(origin: OriginFor) -> DispatchResultWithPostInfo { let controller = ensure_signed(origin)?; - let relayer = Self::bonded_controller(&controller).ok_or(Error::::ControllerDNE)?; + let relayer = + BondedController::::get(&controller).ok_or(Error::::ControllerDNE)?; ensure!(Self::is_relayer_set_requested(controller.clone()), Error::::RelayerSetDNE); Self::remove_relayer_set(&relayer)?; Self::deposit_event(Event::RelayerSetCancelled { relayer }); diff --git a/precompiles/balance/Cargo.toml b/precompiles/balance/Cargo.toml index dc5d3b37..329520e4 100644 --- a/precompiles/balance/Cargo.toml +++ b/precompiles/balance/Cargo.toml @@ -9,17 +9,13 @@ license = { workspace = true } repository = { workspace = true } [dependencies] -num_enum = { workspace = true } - # Bifrost precompile-utils = { workspace = true } # Substrate -parity-scale-codec = { workspace = true, features = ["max-encoded-len"] } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-io = { workspace = true } sp-std = { workspace = true } sp-runtime = { workspace = true } pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } @@ -28,24 +24,14 @@ pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } fp-evm = { workspace = true } pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } -[dev-dependencies] -derive_more = { workspace = true } -serde = { workspace = true } -sha3 = { workspace = true } - -# Substrate -pallet-timestamp = { workspace = true, features = ["std"] } -sp-runtime = { workspace = true, features = ["std"] } -scale-info = { workspace = true } - [features] default = ["std"] std = [ - "parity-scale-codec/std", "fp-evm/std", "frame-support/std", "frame-system/std", "pallet-balances/std", + "pallet-evm/std", "precompile-utils/std", "sp-core/std", "sp-std/std", diff --git a/precompiles/balance/src/lib.rs b/precompiles/balance/src/lib.rs index c0d6b96c..21692d14 100644 --- a/precompiles/balance/src/lib.rs +++ b/precompiles/balance/src/lib.rs @@ -2,8 +2,7 @@ use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; -use fp_evm::PrecompileHandle; -use precompile_utils::{substrate::RuntimeHelper, EvmResult}; +use precompile_utils::prelude::*; use sp_core::{H160, U256}; use sp_runtime::traits::Dispatchable; diff --git a/precompiles/bfc-offences/Cargo.toml b/precompiles/bfc-offences/Cargo.toml index a78e32cc..2348b025 100644 --- a/precompiles/bfc-offences/Cargo.toml +++ b/precompiles/bfc-offences/Cargo.toml @@ -9,50 +9,33 @@ license = { workspace = true } repository = { workspace = true } [dependencies] -num_enum = { workspace = true } - # Bifrost pallet-bfc-offences = { workspace = true } precompile-utils = { workspace = true } bp-staking = { workspace = true } # Substrate -parity-scale-codec = { workspace = true, features = ["max-encoded-len"] } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-io = { workspace = true } sp-std = { workspace = true } -sp-runtime = { workspace = true } sp-staking = { workspace = true } # Frontier fp-evm = { workspace = true } pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } -[dev-dependencies] -derive_more = { workspace = true } -serde = { workspace = true } -sha3 = { workspace = true } - -# Substrate -pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } -pallet-timestamp = { workspace = true, features = ["std"] } -sp-runtime = { workspace = true, features = ["std"] } -scale-info = { workspace = true } - [features] default = ["std"] std = [ - "parity-scale-codec/std", "fp-evm/std", "frame-support/std", "frame-system/std", "pallet-bfc-offences/std", + "pallet-evm/std", "precompile-utils/std", "sp-core/std", "sp-std/std", - "sp-runtime/std", "sp-staking/std", "bp-staking/std", ] diff --git a/precompiles/bfc-offences/src/lib.rs b/precompiles/bfc-offences/src/lib.rs index 3f4db5e8..67067bfb 100644 --- a/precompiles/bfc-offences/src/lib.rs +++ b/precompiles/bfc-offences/src/lib.rs @@ -5,14 +5,11 @@ use pallet_evm::AddressMapping; use precompile_utils::prelude::*; use bp_staking::TierType; -use fp_evm::PrecompileHandle; use sp_core::{H160, H256}; use sp_std::{collections::btree_set::BTreeSet, marker::PhantomData, vec, vec::Vec}; mod types; -use types::{ - EvmValidatorOffenceOf, EvmValidatorOffencesOf, OffencesOf, ValidatorOffence, ValidatorOffences, -}; +use types::{EvmValidatorOffenceOf, EvmValidatorOffencesOf, ValidatorOffence, ValidatorOffences}; /// A precompile to wrap the functionality from pallet_bfc_offences pub struct BfcOffencesPrecompile(PhantomData); @@ -41,14 +38,18 @@ where let mut maximum_offence_count = vec![]; match tier { TierType::Full => { - maximum_offence_count.push(OffencesOf::::full_maximum_offence_count()); + maximum_offence_count + .push(pallet_bfc_offences::FullMaximumOffenceCount::::get()); }, TierType::Basic => { - maximum_offence_count.push(OffencesOf::::basic_maximum_offence_count()); + maximum_offence_count + .push(pallet_bfc_offences::BasicMaximumOffenceCount::::get()); }, TierType::All => { - maximum_offence_count.push(OffencesOf::::full_maximum_offence_count()); - maximum_offence_count.push(OffencesOf::::basic_maximum_offence_count()); + maximum_offence_count + .push(pallet_bfc_offences::FullMaximumOffenceCount::::get()); + maximum_offence_count + .push(pallet_bfc_offences::BasicMaximumOffenceCount::::get()); }, } @@ -66,7 +67,7 @@ where handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - if let Some(offence) = OffencesOf::::validator_offences(&validator) { + if let Some(offence) = pallet_bfc_offences::ValidatorOffences::::get(&validator) { Ok(ValidatorOffence::::set_offence(validator, offence).into()) } else { Ok(ValidatorOffence::::set_empty(validator).into()) @@ -92,7 +93,7 @@ where let mut validator_offences = ValidatorOffences::::default(); unique_validators.clone().into_iter().for_each(|v| { - if let Some(offence) = OffencesOf::::validator_offences(&v) { + if let Some(offence) = pallet_bfc_offences::ValidatorOffences::::get(&v) { validator_offences .insert_offence(ValidatorOffence::::set_offence(v, offence)); } else { diff --git a/precompiles/bfc-offences/src/types.rs b/precompiles/bfc-offences/src/types.rs index bea8e1d2..c451fad3 100644 --- a/precompiles/bfc-offences/src/types.rs +++ b/precompiles/bfc-offences/src/types.rs @@ -12,8 +12,6 @@ pub type BalanceOf = <::Currenc ::AccountId, >>::Balance; -pub type OffencesOf = pallet_bfc_offences::Pallet; - pub type EvmValidatorOffenceOf = (Address, RoundIndex, SessionIndex, OffenceCount); pub type EvmValidatorOffencesOf = diff --git a/precompiles/bfc-staking/Cargo.toml b/precompiles/bfc-staking/Cargo.toml index b261f67a..a7c43601 100644 --- a/precompiles/bfc-staking/Cargo.toml +++ b/precompiles/bfc-staking/Cargo.toml @@ -9,20 +9,15 @@ license = { workspace = true } repository = { workspace = true } [dependencies] -num_enum = { workspace = true } -rustc-hex = { workspace = true } - # Bifrost pallet-bfc-staking = { workspace = true } bp-staking = { workspace = true } precompile-utils = { workspace = true } # Substrate -parity-scale-codec = { workspace = true, features = ["max-encoded-len"] } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-io = { workspace = true } sp-std = { workspace = true } sp-runtime = { workspace = true } @@ -30,21 +25,9 @@ sp-runtime = { workspace = true } fp-evm = { workspace = true } pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } -[dev-dependencies] -derive_more = { workspace = true } -serde = { workspace = true } -sha3 = { workspace = true } - -# Substrate -pallet-balances = { workspace = true, features = ["insecure_zero_ed", "std"] } -pallet-timestamp = { workspace = true, features = ["std"] } -sp-runtime = { workspace = true, features = ["std"] } -scale-info = { workspace = true } - [features] default = ["std"] std = [ - "parity-scale-codec/std", "fp-evm/std", "frame-support/std", "frame-system/std", diff --git a/precompiles/bfc-staking/src/lib.rs b/precompiles/bfc-staking/src/lib.rs index 2383aa13..df5b251c 100644 --- a/precompiles/bfc-staking/src/lib.rs +++ b/precompiles/bfc-staking/src/lib.rs @@ -15,7 +15,6 @@ use pallet_evm::AddressMapping; use precompile_utils::prelude::*; use bp_staking::{RoundIndex, TierType, MAX_AUTHORITIES}; -use fp_evm::PrecompileHandle; use sp_core::{H160, U256}; use sp_runtime::{traits::Dispatchable, Perbill}; use sp_std::{ @@ -209,8 +208,10 @@ where #[precompile::view] fn validator_seats(handle: &mut impl PrecompileHandle) -> EvmResult<(U256, U256)> { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let full_validator_seats: U256 = >::max_full_selected().into(); - let basic_validator_seats: U256 = >::max_basic_selected().into(); + let full_validator_seats: U256 = + pallet_bfc_staking::MaxFullSelected::::get().into(); + let basic_validator_seats: U256 = + pallet_bfc_staking::MaxBasicSelected::::get().into(); Ok((full_validator_seats, basic_validator_seats)) } @@ -269,7 +270,7 @@ where #[precompile::view] fn round_info(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let round_info = StakingOf::::round(); + let round_info = pallet_bfc_staking::Round::::get(); Ok(( round_info.current_round_index, @@ -290,7 +291,7 @@ where #[precompile::view] fn latest_round(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let round_info = StakingOf::::round(); + let round_info = pallet_bfc_staking::Round::::get(); Ok(round_info.current_round_index) } @@ -301,7 +302,7 @@ where #[precompile::view] fn majority(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let majority: u32 = StakingOf::::majority(); + let majority: u32 = pallet_bfc_staking::Majority::::get(); Ok(majority) } @@ -318,7 +319,9 @@ where ) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - if let Some(previous_majority) = >::cached_majority().get(&round_index) { + if let Some(previous_majority) = + pallet_bfc_staking::CachedMajority::::get().get(&round_index) + { Ok(previous_majority.clone()) } else { Err(RevertReason::read_out_of_bounds("round_index").into()) @@ -332,7 +335,7 @@ where #[precompile::view] fn points(handle: &mut impl PrecompileHandle, round_index: RoundIndex) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let points: u32 = StakingOf::::points(round_index); + let points: u32 = pallet_bfc_staking::Points::::get(round_index); Ok(points) } @@ -351,7 +354,7 @@ where let validator = Runtime::AddressMapping::into_account_id(validator.0); handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let points = >::awarded_pts(round_index, &validator); + let points = pallet_bfc_staking::AwardedPts::::get(round_index, &validator); Ok(points) } @@ -362,7 +365,7 @@ where #[precompile::view] fn rewards(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let rewards = >::awarded_tokens() + let rewards = pallet_bfc_staking::AwardedTokens::::get() .try_into() .map_err(|_| revert("Amount is too large for provided balance type"))?; @@ -377,7 +380,7 @@ where fn total(handle: &mut impl PrecompileHandle, round_index: RoundIndex) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; let mut total = TotalStake::::default(); - if let Some(stake) = >::total_at_stake(round_index) { + if let Some(stake) = pallet_bfc_staking::TotalAtStake::::get(round_index) { total.set_stake(stake); } else { return Err(RevertReason::read_out_of_bounds("round_index").into()); @@ -393,7 +396,7 @@ where #[precompile::view] fn inflation_config(handle: &mut impl PrecompileHandle) -> EvmResult<(u32, u32, u32)> { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let inflation = >::inflation_config(); + let inflation = pallet_bfc_staking::InflationConfig::::get(); Ok(( inflation.annual.min.deconstruct(), @@ -409,8 +412,8 @@ where #[precompile::view] fn inflation_rate(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let inflation = >::inflation_config(); - let total_stake = >::total(); + let inflation = pallet_bfc_staking::InflationConfig::::get(); + let total_stake = pallet_bfc_staking::Total::::get(); let inflation_rate = { if total_stake <= inflation.expect.min { @@ -454,12 +457,12 @@ where return Err(RevertReason::custom("Request vectors length does not match").into()); } - let selected_candidates = >::selected_candidates(); + let selected_candidates = pallet_bfc_staking::SelectedCandidates::::get(); if selected_candidates.len() < 1 { return Err(RevertReason::custom("Empty selected candidates").into()); } - let total_stake = >::total(); + let total_stake = pallet_bfc_staking::Total::::get(); let round_issuance = >::compute_issuance(total_stake); let validator_contribution_pct = Perbill::from_percent(100 / (selected_candidates.len() as u32) + 1); @@ -469,7 +472,7 @@ where let mut estimated_yearly_return: Vec = vec![]; for (idx, candidate) in candidates.iter().enumerate() { - if let Some(state) = >::candidate_info(&candidate) { + if let Some(state) = pallet_bfc_staking::CandidateInfo::::get(&candidate) { let validator_issuance = state.commission * round_issuance; let commission = validator_contribution_pct * validator_issuance; let amount_due = total_reward_amount - commission; @@ -586,7 +589,7 @@ where #[precompile::view] fn candidate_count(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let candidate_count: u32 = >::candidate_pool().len() as u32; + let candidate_count: u32 = pallet_bfc_staking::CandidatePool::::get().len() as u32; Ok(candidate_count) } @@ -604,9 +607,9 @@ where handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; let raw_selected_candidates = match tier { - 2 => StakingOf::::selected_full_candidates().into_inner(), - 1 => StakingOf::::selected_basic_candidates().into_inner(), - _ => StakingOf::::selected_candidates().into_inner(), + 2 => pallet_bfc_staking::SelectedFullCandidates::::get().into_inner(), + 1 => pallet_bfc_staking::SelectedBasicCandidates::::get().into_inner(), + _ => pallet_bfc_staking::SelectedCandidates::::get().into_inner(), }; let selected_candidates = raw_selected_candidates .into_iter() @@ -671,7 +674,7 @@ where let mut candidate_state = CandidateStates::::default(); let mut is_existed: bool = false; - if let Some(state) = >::candidate_info(&candidate) { + if let Some(state) = pallet_bfc_staking::CandidateInfo::::get(&candidate) { let mut new = CandidateState::::default(); new.set_state(candidate, state); candidate_state.insert_state(new); @@ -785,7 +788,7 @@ where let mut amount: U256 = zero.into(); let mut when_executable: u32 = zero.into(); - if let Some(state) = >::candidate_info(&candidate) { + if let Some(state) = pallet_bfc_staking::CandidateInfo::::get(&candidate) { if let Some(request) = state.request { amount = request.amount.into(); when_executable = request.when_executable.into(); @@ -812,7 +815,9 @@ where let mut nominators: Vec
= vec![]; let mut nomination_amounts: Vec = vec![]; - if let Some(top_nominations) = >::top_nominations(&candidate) { + if let Some(top_nominations) = + pallet_bfc_staking::TopNominations::::get(&candidate) + { for nomination in top_nominations.nominations { nominators.push(Address(nomination.owner.into())); nomination_amounts.push(nomination.amount.into()); @@ -840,7 +845,9 @@ where let mut nominators: Vec
= vec![]; let mut nomination_amounts: Vec = vec![]; - if let Some(bottom_nominations) = >::bottom_nominations(&candidate) { + if let Some(bottom_nominations) = + pallet_bfc_staking::BottomNominations::::get(&candidate) + { for nomination in bottom_nominations.nominations { nominators.push(Address(nomination.owner.into())); nomination_amounts.push(nomination.amount.into()); @@ -864,12 +871,13 @@ where let candidate = Runtime::AddressMapping::into_account_id(candidate.0); handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let result = if let Some(state) = >::candidate_info(&candidate) { - let candidate_nomination_count: u32 = state.nomination_count; - candidate_nomination_count - } else { - 0u32 - }; + let result = + if let Some(state) = pallet_bfc_staking::CandidateInfo::::get(&candidate) { + let candidate_nomination_count: u32 = state.nomination_count; + candidate_nomination_count + } else { + 0u32 + }; Ok(result) } @@ -891,7 +899,7 @@ where handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; let mut nominator_state = NominatorState::::default(); - if let Some(state) = >::nominator_state(&nominator) { + if let Some(state) = pallet_bfc_staking::NominatorState::::get(&nominator) { nominator_state.set_state(state); }; @@ -919,7 +927,7 @@ where let mut when_executables: Vec = vec![]; let mut actions: Vec = vec![]; - if let Some(state) = >::nominator_state(&nominator) { + if let Some(state) = pallet_bfc_staking::NominatorState::::get(&nominator) { revocations_count = state.requests.revocations_count.into(); less_total = state.requests.less_total.into(); @@ -960,12 +968,13 @@ where let nominator = Runtime::AddressMapping::into_account_id(nominator.0); handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let result = if let Some(state) = >::nominator_state(&nominator) { - let nominator_nomination_count: u32 = state.nominations.len() as u32; - nominator_nomination_count - } else { - 0u32 - }; + let result = + if let Some(state) = pallet_bfc_staking::NominatorState::::get(&nominator) { + let nominator_nomination_count: u32 = state.nominations.len() as u32; + nominator_nomination_count + } else { + 0u32 + }; Ok(result) } @@ -1345,7 +1354,8 @@ where fn get_previous_selected_candidates( round_index: &RoundIndex, ) -> EvmResult>> { - let previous_selected_candidates = >::cached_selected_candidates(); + let previous_selected_candidates = + pallet_bfc_staking::CachedSelectedCandidates::::get(); if let Some(previous_selected_candidates) = previous_selected_candidates.get(round_index) { Ok(previous_selected_candidates.clone()) } else { @@ -1364,9 +1374,9 @@ where let selected_candidates: BoundedBTreeSet> = match tier { - TierType::Full => StakingOf::::selected_full_candidates(), - TierType::Basic => StakingOf::::selected_basic_candidates(), - TierType::All => StakingOf::::selected_candidates(), + TierType::Full => pallet_bfc_staking::SelectedFullCandidates::::get(), + TierType::Basic => pallet_bfc_staking::SelectedBasicCandidates::::get(), + TierType::All => pallet_bfc_staking::SelectedCandidates::::get(), }; return if is_complete { diff --git a/precompiles/btc-registration-pool/Cargo.toml b/precompiles/btc-registration-pool/Cargo.toml index ca5c1dce..5399aa74 100644 --- a/precompiles/btc-registration-pool/Cargo.toml +++ b/precompiles/btc-registration-pool/Cargo.toml @@ -15,11 +15,9 @@ precompile-utils = { workspace = true } bp-btc-relay = { workspace = true } # Substrate -parity-scale-codec = { workspace = true, features = ["max-encoded-len"] } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-io = { workspace = true } sp-std = { workspace = true } sp-runtime = { workspace = true } @@ -31,12 +29,12 @@ pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } [features] default = ["std"] std = [ - "parity-scale-codec/std", "fp-evm/std", "fp-account/std", "frame-support/std", "frame-system/std", "pallet-btc-registration-pool/std", + "pallet-evm/std", "precompile-utils/std", "sp-core/std", "sp-std/std", diff --git a/precompiles/btc-registration-pool/src/lib.rs b/precompiles/btc-registration-pool/src/lib.rs index 6ede2680..f06858e2 100644 --- a/precompiles/btc-registration-pool/src/lib.rs +++ b/precompiles/btc-registration-pool/src/lib.rs @@ -19,8 +19,6 @@ use types::{ RegistrationInfo, }; -type BtcRegistrationPoolOf = pallet_btc_registration_pool::Pallet; - /// Solidity selector of the VaultPending log, which is the Keccak of the Log signature. pub(crate) const SELECTOR_LOG_VAULT_PENDING: [u8; 32] = keccak256!("VaultPending(address,string)"); @@ -60,7 +58,8 @@ where let target_round = Self::target_round(pool_round); if user_bfc_address == Address(handle.context().address) { - if let Some(system_vault) = BtcRegistrationPoolOf::::system_vault(target_round) + if let Some(system_vault) = + pallet_btc_registration_pool::SystemVault::::get(target_round) { info.user_bfc_address = Address(handle.context().address); for (authority_id, pub_key) in system_vault.pub_keys.iter() { @@ -76,8 +75,10 @@ where } else { let user_bfc_address = Runtime::AddressMapping::into_account_id(user_bfc_address.0); if let Some(relay_target) = - BtcRegistrationPoolOf::::registration_pool(target_round, &user_bfc_address) - { + pallet_btc_registration_pool::RegistrationPool::::get( + target_round, + &user_bfc_address, + ) { info.user_bfc_address = Address(user_bfc_address.into()); info.refund_address = BitcoinAddressString::from(relay_target.refund_address.into_inner()); @@ -141,7 +142,9 @@ where let mut user_bfc_addresses: Vec
= vec![]; let mut refund_addresses: Vec = vec![]; - if let Some(system_vault) = BtcRegistrationPoolOf::::system_vault(target_round) { + if let Some(system_vault) = + pallet_btc_registration_pool::SystemVault::::get(target_round) + { if matches!(system_vault.address, AddressState::Pending) { user_bfc_addresses.push(Address(handle.context().address)); refund_addresses.push(BitcoinAddressString::from(vec![])); @@ -242,7 +245,8 @@ where let mut vault_address = BitcoinAddressString::from(vec![]); if user_bfc_address == Address(handle.context().address) { - if let Some(system_vault) = BtcRegistrationPoolOf::::system_vault(target_round) + if let Some(system_vault) = + pallet_btc_registration_pool::SystemVault::::get(target_round) { match system_vault.address { AddressState::Pending => (), @@ -254,7 +258,7 @@ where } else { let user_bfc_address = Runtime::AddressMapping::into_account_id(user_bfc_address.0); - match BtcRegistrationPoolOf::::registration_pool( + match pallet_btc_registration_pool::RegistrationPool::::get( target_round, user_bfc_address, ) { @@ -300,7 +304,7 @@ where handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; let user_bfc_address = Runtime::AddressMapping::into_account_id(user_bfc_address.0); - let refund_address = match BtcRegistrationPoolOf::::registration_pool( + let refund_address = match pallet_btc_registration_pool::RegistrationPool::::get( Self::target_round(pool_round), user_bfc_address, ) { @@ -326,7 +330,7 @@ where Self::convert_string_to_bitcoin_address(vault_address).in_field("vault_address")?; Ok( - match BtcRegistrationPoolOf::::bonded_vault( + match pallet_btc_registration_pool::BondedVault::::get( Self::target_round(pool_round), vault_address, ) { @@ -365,7 +369,7 @@ where Self::convert_string_to_bitcoin_address(vault_address).in_field("vault_address")?; Ok( - match BtcRegistrationPoolOf::::bonded_descriptor( + match pallet_btc_registration_pool::BondedDescriptor::::get( Self::target_round(pool_round), vault_address, ) { @@ -381,7 +385,8 @@ where handle: &mut impl PrecompileHandle, refund_address: BitcoinAddressString, ) -> EvmResult { - if BtcRegistrationPoolOf::::service_state() != MigrationSequence::Normal { + if pallet_btc_registration_pool::ServiceState::::get() != MigrationSequence::Normal + { return Err(RevertReason::custom("Service is under maintenance").into()); } @@ -414,7 +419,8 @@ where handle: &mut impl PrecompileHandle, refund_address: BitcoinAddressString, ) -> EvmResult { - if BtcRegistrationPoolOf::::service_state() != MigrationSequence::Normal { + if pallet_btc_registration_pool::ServiceState::::get() != MigrationSequence::Normal + { return Err(RevertReason::custom("Service is under maintenance").into()); } @@ -442,7 +448,7 @@ where /// Get current round of the BTC registration pool. fn get_current_round() -> PoolRound { - BtcRegistrationPoolOf::::current_round() + pallet_btc_registration_pool::CurrentRound::::get() } /// Get the target round of the BTC registration pool. diff --git a/precompiles/btc-socket-queue/Cargo.toml b/precompiles/btc-socket-queue/Cargo.toml index 2bdc1c2f..6de8ca8e 100644 --- a/precompiles/btc-socket-queue/Cargo.toml +++ b/precompiles/btc-socket-queue/Cargo.toml @@ -15,11 +15,9 @@ precompile-utils = { workspace = true } bp-btc-relay = { workspace = true } # Substrate -parity-scale-codec = { workspace = true, features = ["max-encoded-len"] } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-io = { workspace = true } sp-std = { workspace = true } sp-runtime = { workspace = true } @@ -31,12 +29,12 @@ pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } [features] default = ["std"] std = [ - "parity-scale-codec/std", "fp-evm/std", "fp-account/std", "frame-support/std", "frame-system/std", "pallet-btc-socket-queue/std", + "pallet-evm/std", "precompile-utils/std", "sp-core/std", "sp-std/std", diff --git a/precompiles/btc-socket-queue/src/lib.rs b/precompiles/btc-socket-queue/src/lib.rs index b531946e..5a42ad67 100644 --- a/precompiles/btc-socket-queue/src/lib.rs +++ b/precompiles/btc-socket-queue/src/lib.rs @@ -15,8 +15,6 @@ use sp_std::{marker::PhantomData, vec, vec::Vec}; mod types; use types::{BitcoinAddressString, EvmRollbackRequestOf, RollbackRequest}; -type BtcSocketQueueOf = pallet_btc_socket_queue::Pallet; - /// A precompile to wrap the functionality from `pallet_btc_socket_queue`. pub struct BtcSocketQueuePrecompile(PhantomData); @@ -44,9 +42,11 @@ where let authority_id = Runtime::AddressMapping::into_account_id(authority_id.0); - if let Some(pending_request) = BtcSocketQueueOf::::pending_requests(txid) { + if let Some(pending_request) = + pallet_btc_socket_queue::PendingRequests::::get(txid) + { if let Some(submitted) = pending_request.signed_psbts.get(&authority_id) { - Ok(UnboundedBytes::from(submitted.clone()) == signed_psbt) + Ok(UnboundedBytes::from(submitted.clone()).as_bytes() == signed_psbt.as_bytes()) } else { Ok(false) } @@ -108,7 +108,7 @@ where let mut result = RollbackRequest::default(); - if let Some(request) = BtcSocketQueueOf::::rollback_requests(txid) { + if let Some(request) = pallet_btc_socket_queue::RollbackRequests::::get(txid) { result.unsigned_psbt = request.unsigned_psbt.into(); result.who = Address(request.who.into()); result.txid = request.txid; @@ -135,7 +135,7 @@ where ) -> EvmResult> { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - Ok(match BtcSocketQueueOf::::bonded_outbound_tx(txid) { + Ok(match pallet_btc_socket_queue::BondedOutboundTx::::get(txid) { Some(socket_messages) => { socket_messages.into_iter().map(|m| UnboundedBytes::from(m)).collect() }, @@ -149,7 +149,7 @@ where fn sequence_to_tx_id(handle: &mut impl PrecompileHandle, sequence: U256) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - Ok(match BtcSocketQueueOf::::socket_messages(sequence) { + Ok(match pallet_btc_socket_queue::SocketMessages::::get(sequence) { Some((txid, _)) => txid, None => H256::zero(), }) @@ -165,7 +165,7 @@ where ) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - Ok(match BtcSocketQueueOf::::bonded_rollback_outputs(txid, vout) { + Ok(match pallet_btc_socket_queue::BondedRollbackOutputs::::get(txid, vout) { Some(psbt_txid) => psbt_txid, None => H256::zero(), }) @@ -182,7 +182,7 @@ where Ok(sequences .into_iter() - .filter(|seq| BtcSocketQueueOf::::socket_messages(seq).is_none()) + .filter(|seq| pallet_btc_socket_queue::SocketMessages::::get(seq).is_none()) .collect()) } } diff --git a/precompiles/collective/Cargo.toml b/precompiles/collective/Cargo.toml index 731eb0b9..13173c6c 100644 --- a/precompiles/collective/Cargo.toml +++ b/precompiles/collective/Cargo.toml @@ -10,17 +10,14 @@ repository = { workspace = true } [dependencies] sha3 = { workspace = true } -num_enum = { workspace = true } # Bifrost precompile-utils = { workspace = true } # Substrate -parity-scale-codec = { workspace = true, features = ["max-encoded-len"] } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-io = { workspace = true } sp-std = { workspace = true } sp-runtime = { workspace = true } pallet-collective = { workspace = true } @@ -29,23 +26,9 @@ pallet-collective = { workspace = true } fp-evm = { workspace = true } pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } -[dev-dependencies] -hex-literal = { workspace = true } -derive_more = { workspace = true } -serde = { workspace = true } -sha3 = { workspace = true } - -# Substrate -pallet-balances = { workspace = true, features = ["insecure_zero_ed", "std"] } -pallet-timestamp = { workspace = true, features = ["std"] } -pallet-scheduler = { workspace = true, features = ["std"] } -sp-runtime = { workspace = true, features = ["std"] } -scale-info = { workspace = true } - [features] default = ["std"] std = [ - "parity-scale-codec/std", "fp-evm/std", "frame-support/std", "frame-system/std", @@ -53,6 +36,6 @@ std = [ "pallet-evm/std", "precompile-utils/std", "sp-core/std", - "sp-io/std", "sp-std/std", + "sp-runtime/std", ] diff --git a/precompiles/collective/src/lib.rs b/precompiles/collective/src/lib.rs index 510de88b..8c9e9fcc 100644 --- a/precompiles/collective/src/lib.rs +++ b/precompiles/collective/src/lib.rs @@ -47,7 +47,7 @@ where fn members(handle: &mut impl PrecompileHandle) -> EvmResult> { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let members = CollectiveOf::::members() + let members = pallet_collective::Members::::get() .into_iter() .map(|member| Address(member.into())) .collect::>(); diff --git a/precompiles/governance/Cargo.toml b/precompiles/governance/Cargo.toml index 0e94c583..f947f681 100644 --- a/precompiles/governance/Cargo.toml +++ b/precompiles/governance/Cargo.toml @@ -9,18 +9,13 @@ license = { workspace = true } repository = { workspace = true } [dependencies] -sha3 = { workspace = true } -num_enum = { workspace = true } - # Bifrost precompile-utils = { workspace = true } # Substrate -parity-scale-codec = { workspace = true, features = ["max-encoded-len"] } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-io = { workspace = true } sp-std = { workspace = true } sp-runtime = { workspace = true } pallet-democracy = { workspace = true } @@ -30,23 +25,9 @@ pallet-preimage = { workspace = true } fp-evm = { workspace = true } pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } -[dev-dependencies] -hex-literal = { workspace = true } -derive_more = { workspace = true } -serde = { workspace = true } -sha3 = { workspace = true } - -# Substrate -pallet-balances = { workspace = true, features = ["insecure_zero_ed", "std"] } -pallet-timestamp = { workspace = true, features = ["std"] } -pallet-scheduler = { workspace = true, features = ["std"] } -sp-runtime = { workspace = true, features = ["std"] } -scale-info = { workspace = true } - [features] default = ["std"] std = [ - "parity-scale-codec/std", "fp-evm/std", "frame-support/std", "frame-system/std", @@ -55,6 +36,6 @@ std = [ "pallet-evm/std", "precompile-utils/std", "sp-core/std", - "sp-io/std", "sp-std/std", + "sp-runtime/std", ] diff --git a/precompiles/governance/src/lib.rs b/precompiles/governance/src/lib.rs index 442494ad..8a85f14a 100644 --- a/precompiles/governance/src/lib.rs +++ b/precompiles/governance/src/lib.rs @@ -25,8 +25,8 @@ use sp_std::{ mod types; use types::{ - AccountVotes, BalanceOf, DemocracyOf, EvmAccountVotes, EvmVotingOf, - GetEncodedProposalSizeLimit, HashOf, ReferendaVotes, + AccountVotes, BalanceOf, EvmAccountVotes, EvmVotingOf, GetEncodedProposalSizeLimit, HashOf, + ReferendaVotes, }; /// A precompile to wrap the functionality from governance related pallets. @@ -56,7 +56,7 @@ where #[precompile::view] fn public_prop_count(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let prop_count = DemocracyOf::::public_prop_count(); + let prop_count = pallet_democracy::PublicPropCount::::get(); Ok(prop_count) } @@ -75,7 +75,7 @@ where let mut initial_deposit: U256 = zero.into(); let mut depositors: Vec
= vec![]; - if let Some(deposit_of) = DemocracyOf::::deposit_of(prop_index) { + if let Some(deposit_of) = pallet_democracy::DepositOf::::get(prop_index) { initial_deposit = deposit_of.1.into(); for depositor in deposit_of.0 { depositors.push(Address(depositor.into())); @@ -93,7 +93,7 @@ where handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; let mut referenda_votes = ReferendaVotes::::default(ref_index); - let _ref_status = match DemocracyOf::::referendum_info(ref_index) { + let _ref_status = match pallet_democracy::ReferendumInfoOf::::get(ref_index) { Some(ReferendumInfo::Ongoing(ref_status)) => ref_status, Some(ReferendumInfo::Finished { .. }) => Err(revert("Referendum is finished"))?, None => Err(revert("Unknown referendum"))?, @@ -183,7 +183,7 @@ where #[precompile::view] fn lowest_unbaked(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let lowest_unbaked = DemocracyOf::::lowest_unbaked(); + let lowest_unbaked = pallet_democracy::LowestUnbaked::::get(); Ok(lowest_unbaked.into()) } @@ -196,7 +196,7 @@ where ref_index: u32, ) -> EvmResult<(U256, H256, u8, U256, U256, U256, U256)> { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let ref_status = match DemocracyOf::::referendum_info(ref_index) { + let ref_status = match pallet_democracy::ReferendumInfoOf::::get(ref_index) { Some(ReferendumInfo::Ongoing(ref_status)) => ref_status, Some(ReferendumInfo::Finished { .. }) => Err(revert("Referendum is finished"))?, None => Err(revert("Unknown referendum"))?, @@ -227,7 +227,7 @@ where ref_index: u32, ) -> EvmResult<(bool, U256)> { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let (approved, end) = match DemocracyOf::::referendum_info(ref_index) { + let (approved, end) = match pallet_democracy::ReferendumInfoOf::::get(ref_index) { Some(ReferendumInfo::Ongoing(_)) => Err(revert("Referendum is ongoing"))?, Some(ReferendumInfo::Finished { approved, end }) => (approved, end), None => Err(revert("Unknown referendum"))?, @@ -243,7 +243,7 @@ where handle.record_log_costs_manual(2, 32)?; handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let _prop_count = DemocracyOf::::public_prop_count(); + let _prop_count = pallet_democracy::PublicPropCount::::get(); let value = Self::u256_to_amount(value).in_field("value")?; diff --git a/precompiles/governance/src/types.rs b/precompiles/governance/src/types.rs index c938953e..aa31ae4a 100644 --- a/precompiles/governance/src/types.rs +++ b/precompiles/governance/src/types.rs @@ -17,8 +17,6 @@ pub type BalanceOf = <::Currency a pub type HashOf = ::Hash; -pub type DemocracyOf = pallet_democracy::Pallet; - pub type EvmVotingOf = (U256, Vec
, Vec, Vec, Vec); pub type EvmAccountVotes = (Vec, Vec, Vec, Vec, U256, U256, U256, U256); diff --git a/precompiles/relay-manager/Cargo.toml b/precompiles/relay-manager/Cargo.toml index 8cdb4b5a..1341a286 100644 --- a/precompiles/relay-manager/Cargo.toml +++ b/precompiles/relay-manager/Cargo.toml @@ -9,19 +9,15 @@ license = { workspace = true } repository = { workspace = true } [dependencies] -num_enum = { workspace = true } - # Bifrost pallet-relay-manager = { workspace = true } precompile-utils = { workspace = true } bp-staking = { workspace = true } # Substrate -parity-scale-codec = { workspace = true, features = ["max-encoded-len"] } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-io = { workspace = true } sp-std = { workspace = true } sp-runtime = { workspace = true } @@ -29,25 +25,14 @@ sp-runtime = { workspace = true } fp-evm = { workspace = true } pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } -[dev-dependencies] -derive_more = { workspace = true } -serde = { workspace = true } -sha3 = { workspace = true } - -# Substrate -pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } -pallet-timestamp = { workspace = true, features = ["std"] } -sp-runtime = { workspace = true, features = ["std"] } -scale-info = { workspace = true } - [features] default = ["std"] std = [ - "parity-scale-codec/std", "fp-evm/std", "frame-support/std", "frame-system/std", "pallet-relay-manager/std", + "pallet-evm/std", "precompile-utils/std", "sp-core/std", "sp-std/std", diff --git a/precompiles/relay-manager/src/lib.rs b/precompiles/relay-manager/src/lib.rs index 04e593ed..c4f2dfb4 100644 --- a/precompiles/relay-manager/src/lib.rs +++ b/precompiles/relay-manager/src/lib.rs @@ -1,8 +1,10 @@ #![cfg_attr(not(feature = "std"), no_std)] -use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; -use frame_support::pallet_prelude::ConstU32; -use frame_support::BoundedBTreeSet; +use frame_support::{ + dispatch::{GetDispatchInfo, PostDispatchInfo}, + pallet_prelude::ConstU32, + BoundedBTreeSet, +}; use pallet_evm::AddressMapping; use pallet_relay_manager::Call as RelayManagerCall; @@ -78,7 +80,7 @@ where } if is_complete { - let selected_relayers = RelayManagerOf::::selected_relayers(); + let selected_relayers = pallet_relay_manager::SelectedRelayers::::get(); if selected_relayers.len() != unique_relayers.len() { return Ok(false); } @@ -133,9 +135,9 @@ where is_initial: bool, ) -> EvmResult>> { let previous_selected_relayers = if is_initial { - RelayManagerOf::::cached_initial_selected_relayers() + pallet_relay_manager::CachedInitialSelectedRelayers::::get() } else { - RelayManagerOf::::cached_selected_relayers() + pallet_relay_manager::CachedSelectedRelayers::::get() }; if let Some(previous_selected_relayers) = previous_selected_relayers.get(round_index) { @@ -218,8 +220,8 @@ where ) -> EvmResult> { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; let selected_relayers = match is_initial { - true => RelayManagerOf::::initial_selected_relayers(), - false => RelayManagerOf::::selected_relayers(), + true => pallet_relay_manager::InitialSelectedRelayers::::get(), + false => pallet_relay_manager::SelectedRelayers::::get(), }; let result = selected_relayers @@ -254,7 +256,7 @@ where #[precompile::view] fn relayer_pool(handle: &mut impl PrecompileHandle) -> EvmResult<(Vec
, Vec
)> { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let relayer_pool = RelayManagerOf::::relayer_pool(); + let relayer_pool = pallet_relay_manager::RelayerPool::::get(); let mut relayers: Vec
= vec![]; let mut controllers: Vec
= vec![]; @@ -272,8 +274,8 @@ where fn majority(handle: &mut impl PrecompileHandle, is_initial: bool) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; let majority = match is_initial { - true => RelayManagerOf::::initial_majority(), - false => RelayManagerOf::::majority(), + true => pallet_relay_manager::InitialMajority::::get(), + false => pallet_relay_manager::Majority::::get(), }; Ok(majority.into()) @@ -289,8 +291,8 @@ where ) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; let cached_majority = match is_initial { - true => RelayManagerOf::::cached_initial_majority(), - false => RelayManagerOf::::cached_majority(), + true => pallet_relay_manager::CachedInitialMajority::::get(), + false => pallet_relay_manager::CachedMajority::::get(), }; if let Some(majority) = cached_majority.get(&round_index) { @@ -305,7 +307,7 @@ where #[precompile::view] fn latest_round(handle: &mut impl PrecompileHandle) -> EvmResult { handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let round = RelayManagerOf::::round(); + let round = pallet_relay_manager::Round::::get(); Ok(round) } @@ -321,7 +323,7 @@ where handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - if let Some(state) = RelayManagerOf::::relayer_state(&relayer) { + if let Some(state) = pallet_relay_manager::RelayerState::::get(&relayer) { let mut new = RelayerState::::default(); new.set_state(relayer, state); Ok(new.into()) diff --git a/primitives/bfc-staking/Cargo.toml b/primitives/bfc-staking/Cargo.toml index fb4fb4cc..6aaeeb9b 100644 --- a/primitives/bfc-staking/Cargo.toml +++ b/primitives/bfc-staking/Cargo.toml @@ -13,9 +13,7 @@ scale-info = { workspace = true } parity-scale-codec = { workspace = true } frame-support = { workspace = true } -fp-self-contained = { workspace = true } sp-std = { workspace = true } -sp-core = { workspace = true } sp-runtime = { workspace = true } sp-staking = { workspace = true } @@ -24,9 +22,8 @@ default = ["std"] std = [ "scale-info/std", "parity-scale-codec/std", - "fp-self-contained/std", + "frame-support/std", "sp-std/std", - "sp-core/std", "sp-runtime/std", "sp-staking/std", ] diff --git a/primitives/core/Cargo.toml b/primitives/core/Cargo.toml index 5274d095..b900b0eb 100644 --- a/primitives/core/Cargo.toml +++ b/primitives/core/Cargo.toml @@ -10,15 +10,9 @@ repository = { workspace = true } [dependencies] fp-account = { workspace = true } -fp-self-contained = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } [features] default = ["std"] -std = [ - "fp-account/std", - "fp-self-contained/std", - "sp-core/std", - "sp-runtime/std", -] +std = ["fp-account/std", "sp-core/std", "sp-runtime/std"] diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index 3d65708d..c4ab337b 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -19,5 +19,13 @@ sp-runtime = { workspace = true } sp-std = { workspace = true } [features] -std = ["frame-support/std", "sp-core/std", "sp-runtime/std", "sp-std/std"] +default = ["std"] +std = [ + "parity-scale-codec/std", + "frame-system/std", + "frame-support/std", + "sp-core/std", + "sp-runtime/std", + "sp-std/std", +] try-runtime = ["frame-support/try-runtime"] diff --git a/runtime/common/constants/Cargo.toml b/runtime/common/constants/Cargo.toml index 82c8c0f4..4e315804 100644 --- a/runtime/common/constants/Cargo.toml +++ b/runtime/common/constants/Cargo.toml @@ -13,4 +13,4 @@ bp-core = { workspace = true } [features] default = ["std"] -std = [] +std = ["bp-core/std"] diff --git a/runtime/common/constants/src/lib.rs b/runtime/common/constants/src/lib.rs index 6971d5a7..fe5038d2 100644 --- a/runtime/common/constants/src/lib.rs +++ b/runtime/common/constants/src/lib.rs @@ -1,3 +1,5 @@ +#![cfg_attr(not(feature = "std"), no_std)] + pub mod currency { use bp_core::Balance; diff --git a/runtime/common/src/apis.rs b/runtime/common/src/apis.rs index 13b1a4b8..c11c4b21 100644 --- a/runtime/common/src/apis.rs +++ b/runtime/common/src/apis.rs @@ -11,7 +11,7 @@ macro_rules! impl_common_runtime_apis { fn execute_block(block: Block) { Executive::execute_block(block); } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -57,10 +57,24 @@ macro_rules! impl_common_runtime_apis { Executive::offchain_worker(header) } } + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) + } + + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] + } + } impl fp_rpc_debug::DebugRuntimeApi for Runtime { fn trace_transaction( extrinsics: Vec<::Extrinsic>, traced_transaction: &EthereumTransaction, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, @@ -68,6 +82,14 @@ macro_rules! impl_common_runtime_apis { #[cfg(feature = "evm-tracing")] { use evm_tracer::tracer::EvmTracer; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + // After pallet message queue was introduced, this must be done only after + // enabling XCM tracing by setting ETHEREUM_XCM_TRACING_STORAGE_KEY + // in the storage + Executive::initialize_block(header); + // Apply the a subset of extrinsics: all the substrate-specific or ethereum // transactions that preceded the requested transaction. for ext in extrinsics.into_iter() { @@ -95,6 +117,7 @@ macro_rules! impl_common_runtime_apis { fn trace_block( extrinsics: Vec<::Extrinsic>, known_transactions: Vec, + header: &::Header, ) -> Result< (), sp_runtime::DispatchError, @@ -102,8 +125,17 @@ macro_rules! impl_common_runtime_apis { #[cfg(feature = "evm-tracing")] { use evm_tracer::tracer::EvmTracer; + let mut config = ::config().clone(); config.estimate = true; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + // After pallet message queue was introduced, this must be done only after + // enabling XCM tracing by setting ETHEREUM_XCM_TRACING_STORAGE_KEY + // in the storage + Executive::initialize_block(header); + // Apply all extrinsics. Ethereum extrinsics are traced. for ext in extrinsics.into_iter() { match &ext.0.function { @@ -128,6 +160,89 @@ macro_rules! impl_common_runtime_apis { "Missing `evm-tracing` compile time feature flag.", )) } + fn trace_call( + header: &::Header, + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError> { + #[cfg(feature = "evm-tracing")] + { + use evm_tracer::tracer::EvmTracer; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + Executive::initialize_block(header); + + EvmTracer::new().trace(|| { + let is_transactional = false; + let validate = true; + let without_base_extrinsic_weight = true; + + // Estimated encoded transaction size must be based on the heaviest transaction + // type (EIP1559Transaction) to be compatible with all transaction types. + let mut estimated_transaction_len = data.len() + + // pallet ethereum index: 1 + // transact call index: 1 + // Transaction enum variant: 1 + // chain_id 8 bytes + // nonce: 32 + // max_priority_fee_per_gas: 32 + // max_fee_per_gas: 32 + // gas_limit: 32 + // action: 21 (enum varianrt + call address) + // value: 32 + // access_list: 1 (empty vec size) + // 65 bytes signature + 258; + + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + + let _ = ::Runner::call( + from, + to, + data, + value, + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + weight_limit, + proof_size_base_cost, + ::config(), + ); + }); + Ok(()) + } + #[cfg(not(feature = "evm-tracing"))] + Err(sp_runtime::DispatchError::Other( + "Missing `evm-tracing` compile time feature flag.", + )) + } } impl fp_rpc_txpool::TxPoolRuntimeApi for Runtime { fn extrinsic_filter( @@ -322,6 +437,9 @@ macro_rules! impl_common_runtime_apis { pallet_ethereum::CurrentTransactionStatuses::::get() ) } + fn initialize_pending_block(header: &::Header) { + Executive::initialize_block(header); + } } impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { fn convert_transaction( @@ -337,7 +455,7 @@ macro_rules! impl_common_runtime_apis { sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) } fn authorities() -> Vec { - Aura::authorities().into_inner() + pallet_aura::Authorities::::get().into_inner() } } impl sp_session::SessionKeys for Runtime { @@ -439,15 +557,6 @@ macro_rules! impl_common_runtime_apis { Ok(batches) } } - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() - } - - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) - } - } } }; } diff --git a/runtime/dev/Cargo.toml b/runtime/dev/Cargo.toml index af8d14d3..0d76c69f 100644 --- a/runtime/dev/Cargo.toml +++ b/runtime/dev/Cargo.toml @@ -16,7 +16,6 @@ targets = ["x86_64-unknown-linux-gnu"] # third-party dependencies parity-scale-codec = { workspace = true } scale-info = { workspace = true } -hex-literal = { workspace = true, optional = true } rlp = { workspace = true, optional = true } sha3 = { workspace = true, optional = true } num_enum = { workspace = true } @@ -54,20 +53,22 @@ pallet-offences = { workspace = true } pallet-treasury = { workspace = true } pallet-identity = { workspace = true } pallet-preimage = { workspace = true } +pallet-safe-mode = { workspace = true } +pallet-tx-pause = { workspace = true } # substrate primitives sp-io = { workspace = true } sp-api = { workspace = true } sp-block-builder = { workspace = true } -sp-consensus-aura = { workspace = true } -sp-core = { workspace = true } +sp-consensus-aura = { workspace = true, features = ["serde"] } +sp-core = { workspace = true, features = ["serde"] } sp-inherents = { workspace = true } sp-offchain = { workspace = true } -sp-runtime = { workspace = true } +sp-runtime = { workspace = true, features = ["serde"] } sp-session = { workspace = true } sp-std = { workspace = true } sp-transaction-pool = { workspace = true } -sp-version = { workspace = true } +sp-version = { workspace = true, features = ["serde"] } sp-genesis-builder = { workspace = true } # Frontier @@ -115,6 +116,7 @@ std = [ "parity-scale-codec/std", "scale-info/std", "bifrost-common-runtime/std", + "bifrost-dev-constants/std", "bp-core/std", "frame-executive/std", "frame-support/std", @@ -148,6 +150,12 @@ std = [ "pallet-offences/std", "pallet-identity/std", "pallet-preimage/std", + "pallet-safe-mode/std", + "pallet-tx-pause/std", + "pallet-evm-precompile-simple/std", + "pallet-evm-precompile-bn128/std", + "pallet-evm-precompile-modexp/std", + "pallet-evm-precompile-blake2/std", "sp-api/std", "sp-consensus-aura/std", "sp-block-builder/std", @@ -160,6 +168,7 @@ std = [ "sp-io/std", "sp-transaction-pool/std", "sp-version/std", + "sp-genesis-builder/std", "fp-self-contained/std", "fp-evm/std", "fp-rpc/std", @@ -169,19 +178,19 @@ std = [ "fp-account/std", "evm-tracer/std", "precompile-utils/std", + "precompile-bfc-staking/std", + "precompile-bfc-offences/std", + "precompile-relay-manager/std", + "precompile-governance/std", + "precompile-collective/std", + "precompile-balance/std", + "precompile-btc-registration-pool/std", + "precompile-btc-socket-queue/std", "substrate-wasm-builder", ] -evm-tracing = [ - "rlp", - "sha3", - "evm-tracer", - "sp-io/disable_oom", - "sp-io/disable_panic_handler", - "fp-rpc-evm-tracing-events", -] +evm-tracing = ["rlp", "sha3", "evm-tracer", "fp-rpc-evm-tracing-events"] runtime-wasm = [] runtime-benchmarks = [ - "hex-literal", "sp-runtime/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", diff --git a/runtime/dev/build.rs b/runtime/dev/build.rs index c2db024a..21fd2533 100644 --- a/runtime/dev/build.rs +++ b/runtime/dev/build.rs @@ -4,10 +4,6 @@ fn main() { #[cfg(target_arch = "aarch64")] std::env::set_var("CFLAGS", "-mcpu=mvp"); - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build(); + substrate_wasm_builder::WasmBuilder::build_using_defaults(); } } diff --git a/runtime/dev/constants/Cargo.toml b/runtime/dev/constants/Cargo.toml index c1af6a20..682b4e52 100644 --- a/runtime/dev/constants/Cargo.toml +++ b/runtime/dev/constants/Cargo.toml @@ -11,13 +11,10 @@ repository = { workspace = true } [dependencies] # Bifrost bifrost-common-constants = { workspace = true } -bp-core = { workspace = true } # Substrate -sp-core = { workspace = true } frame-support = { workspace = true } -pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } [features] default = ["std"] -std = ["pallet-evm/std", "sp-core/std", "frame-support/std"] +std = ["bifrost-common-constants/std", "frame-support/std"] diff --git a/runtime/dev/constants/src/lib.rs b/runtime/dev/constants/src/lib.rs index c149ed87..986ba927 100644 --- a/runtime/dev/constants/src/lib.rs +++ b/runtime/dev/constants/src/lib.rs @@ -1,3 +1,5 @@ +#![cfg_attr(not(feature = "std"), no_std)] + pub use bifrost_common_constants::{currency, time}; pub mod fee { diff --git a/runtime/dev/src/lib.rs b/runtime/dev/src/lib.rs index fd93f835..d42dad2b 100644 --- a/runtime/dev/src/lib.rs +++ b/runtime/dev/src/lib.rs @@ -20,6 +20,7 @@ use fp_rpc_txpool::TxPoolResponse; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{crypto::KeyTypeId, ConstBool, ConstU64, OpaqueMetadata, H160, H256, U256}; +use sp_genesis_builder::PresetId; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; use sp_runtime::{ @@ -33,7 +34,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, }; -pub use sp_runtime::{Perbill, Percent, Permill}; +pub use sp_runtime::{traits, ExtrinsicInclusionMode, Perbill, Percent, Permill}; use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -49,27 +50,30 @@ use pallet_ethereum::{ }; use pallet_evm::{ Account as EVMAccount, EVMCurrencyAdapter, EnsureAddressNever, EnsureAddressRoot, - FeeCalculator, IdentityAddressMapping, Runner, + FeeCalculator, GasWeightMapping, IdentityAddressMapping, Runner, }; use pallet_grandpa::{ fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, }; -use pallet_identity::simple::IdentityInfo; +use pallet_identity::legacy::IdentityInfo; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; pub use pallet_timestamp::Call as TimestampCall; +#[allow(deprecated)] use pallet_transaction_payment::CurrencyAdapter; pub use frame_support::{ - construct_runtime, + derive_impl, dispatch::{DispatchClass, GetDispatchInfo}, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, pallet_prelude::Get, parameter_types, traits::{ fungible::HoldConsideration, - tokens::{PayFromAccount, UnityAssetBalanceConversion}, + tokens::{ + fungible::Credit, imbalance::ResolveTo, PayFromAccount, UnityAssetBalanceConversion, + }, ConstU128, ConstU32, ConstU8, Contains, Currency, EitherOfDiverse, EqualPrivilegeOnly, - FindAuthor, Imbalance, KeyOwnerProofSystem, LinearStoragePrice, LockIdentifier, + FindAuthor, Imbalance, InsideBoth, KeyOwnerProofSystem, LinearStoragePrice, LockIdentifier, NeverEnsureOrigin, OnFinalize, OnUnbalanced, Randomness, StorageInfo, }, weights::{ @@ -81,7 +85,7 @@ pub use frame_support::{ }, ConsensusEngineId, PalletId, StorageValue, }; -use frame_system::{EnsureRoot, EnsureSigned}; +use frame_system::{EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; mod precompiles; pub use precompiles::BifrostPrecompiles; @@ -107,6 +111,12 @@ pub type SignedExtra = ( pub type UncheckedExtrinsic = fp_self_contained::UncheckedExtrinsic; +/// All migrations executed on runtime upgrade as a nested tuple of types implementing `OnRuntimeUpgrade`. +type Migrations = ( + pallet_identity::migration::versioned::V0ToV1, + pallet_grandpa::migrations::MigrateV4ToV5, +); + /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -114,6 +124,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, + Migrations, >; /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know @@ -144,7 +155,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // The version of the authorship interface. authoring_version: 1, // The version of the runtime spec. - spec_version: 370, + spec_version: 371, // The version of the implementation of the spec. impl_version: 1, // A list of supported runtime APIs along with their versions. @@ -181,9 +192,10 @@ parameter_types! { } /// The System pallet defines the core data types used in a Substrate runtime +#[derive_impl(frame_system::config_preludes::SolochainDefaultConfig)] impl frame_system::Config for Runtime { /// The basic call filter to use in dispatchable. - type BaseCallFilter = frame_support::traits::Everything; + type BaseCallFilter = InsideBoth; /// The block type for the runtime. type Block = Block; /// Block & extrinsics weights: base values and limits. @@ -192,8 +204,6 @@ impl frame_system::Config for Runtime { type BlockLength = BlockLength; /// The identifier used to distinguish between accounts. type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; /// The lookup mechanism to get the account ID from whatever is passed in dispatchers. type Lookup = IdentityLookup; /// The index type for storing how many extrinsics an account has signed. @@ -202,10 +212,6 @@ impl frame_system::Config for Runtime { type Hash = Hash; /// The hashing algorithm used. type Hashing = BlakeTwo256; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - /// The ubiquitous origin type. - type RuntimeOrigin = RuntimeOrigin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// The weight of database operations that the runtime can invoke. @@ -214,22 +220,67 @@ impl frame_system::Config for Runtime { type Version = Version; /// Provides information about the pallet setup in the runtime. type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); /// The data to be stored in an account. type AccountData = pallet_balances::AccountData; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); /// The maximum number of consumers allowed on a single account. type MaxConsumers = ConstU32<16>; } +/// Calls that can bypass the safe-mode pallet. +pub struct SafeModeWhitelistedCalls; +impl Contains for SafeModeWhitelistedCalls { + fn contains(call: &RuntimeCall) -> bool { + match call { + RuntimeCall::System(_) + | RuntimeCall::Sudo(_) + | RuntimeCall::Timestamp(_) + | RuntimeCall::SafeMode(_) + | RuntimeCall::TxPause(_) + | RuntimeCall::ImOnline(pallet_im_online::Call::heartbeat { .. }) + | RuntimeCall::RelayManager(pallet_relay_manager::Call::heartbeat { .. }) => true, + _ => false, + } + } +} + +impl pallet_tx_pause::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PauseOrigin = EnsureRoot; + type UnpauseOrigin = EnsureRoot; + type WhitelistedCalls = (); + type MaxNameLen = ConstU32<256>; + type WeightInfo = pallet_tx_pause::weights::SubstrateWeight; +} + +parameter_types! { + pub const EnterDuration: BlockNumber = 2 * MINUTES; + pub const EnterDepositAmount: Balance = 2_000 * BFC; + pub const ExtendDuration: BlockNumber = 1 * MINUTES; + pub const ExtendDepositAmount: Balance = 1_000 * BFC; + pub const ReleaseDelay: u32 = 1 * MINUTES; +} + +impl pallet_safe_mode::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type WhitelistedCalls = SafeModeWhitelistedCalls; + type EnterDuration = EnterDuration; + type EnterDepositAmount = EnterDepositAmount; + type ExtendDuration = ExtendDuration; + type ExtendDepositAmount = ExtendDepositAmount; + type ForceEnterOrigin = EnsureRootWithSuccess; + type ForceExtendOrigin = EnsureRootWithSuccess; + type ForceExitOrigin = EnsureRoot; + type ForceDepositOrigin = EnsureRoot; + type ReleaseDelay = ReleaseDelay; + type Notify = (); + type WeightInfo = pallet_safe_mode::weights::SubstrateWeight; +} + parameter_types! { pub const MaxAuthorities: u32 = 1_000; } @@ -240,6 +291,7 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; } /// Provides the GRANDPA block finality gadget. @@ -268,7 +320,7 @@ impl pallet_timestamp::Config for Runtime { /// Provides functionality for handling accounts and balances. impl pallet_balances::Config for Runtime { type MaxLocks = ConstU32<50>; - type MaxReserves = (); + type MaxReserves = ConstU32<50>; type ReserveIdentifier = [u8; 8]; type Balance = Balance; type RuntimeEvent = RuntimeEvent; @@ -277,10 +329,9 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; type FreezeIdentifier = (); - type MaxFreezes = (); - type MaxHolds = ConstU32<1>; + type MaxFreezes = ConstU32<0>; type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = (); + type RuntimeFreezeReason = RuntimeFreezeReason; } pub struct DealWithFees(sp_std::marker::PhantomData); @@ -316,6 +367,7 @@ parameter_types! { /// Provides the basic logic needed to pay the absolute minimum amount needed for a transaction to /// be included. +#[allow(deprecated)] impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = CurrencyAdapter>; @@ -623,19 +675,11 @@ parameter_types! { impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - type ApproveOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionAtLeast, - >; type RejectOrigin = EitherOfDiverse< EnsureRoot, pallet_collective::EnsureProportionMoreThan, >; type RuntimeEvent = RuntimeEvent; - type OnSlash = Treasury; - type ProposalBond = ProposalBond; - type ProposalBondMinimum = ProposalBondMinimum; - type ProposalBondMaximum = (); type SpendPeriod = SpendPeriod; type Burn = (); type BurnDestination = (); @@ -655,11 +699,14 @@ impl pallet_treasury::Config for Runtime { parameter_types! { pub const BasicDeposit: Balance = 100 * BFC; - pub const FieldDeposit: Balance = 100 * BFC; + pub const ByteDeposit: Balance = 100 * BFC; pub const SubAccountDeposit: Balance = 100 * BFC; pub const MaxSubAccounts: u32 = 100; pub const MaxAdditionalFields: u32 = 100; pub const MaxRegistrars: u32 = 20; + pub const PendingUsernameExpiration: u32 = 1 * MINUTES; + pub const MaxSuffixLength: u32 = 7; + pub const MaxUsernameLength: u32 = 32; } /// The module that manages account identities and registrar judgements. @@ -667,15 +714,20 @@ impl pallet_identity::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type BasicDeposit = BasicDeposit; - type FieldDeposit = FieldDeposit; + type ByteDeposit = ByteDeposit; type SubAccountDeposit = SubAccountDeposit; type MaxSubAccounts = MaxSubAccounts; - type MaxAdditionalFields = MaxAdditionalFields; type IdentityInformation = IdentityInfo; type MaxRegistrars = MaxRegistrars; type Slashed = Treasury; type ForceOrigin = EnsureRoot; type RegistrarOrigin = EnsureRoot; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot; + type PendingUsernameExpiration = PendingUsernameExpiration; + type MaxSuffixLength = MaxSuffixLength; + type MaxUsernameLength = MaxUsernameLength; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -866,7 +918,8 @@ impl> FindAuthor for FindAuthorAccountId { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = Aura::authorities()[author_index as usize].clone(); + let authority_id = + pallet_aura::Authorities::::get()[author_index as usize].clone(); let queued_keys = >::queued_keys(); for key in queued_keys { if key.1.aura == authority_id { @@ -1001,62 +1054,127 @@ impl pallet_btc_registration_pool::Config for Runtime { } // Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub struct Runtime { - // System - System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - - // Block - Aura: pallet_aura::{Pallet, Storage, Config} = 3, - - // Consensus - Authorship: pallet_authorship::{Pallet, Storage} = 4, - Session: pallet_session::{Pallet, Call, Storage, Config, Event} = 5, - Historical: pallet_session::historical::{Pallet} = 6, - Offences: pallet_offences::{Pallet, Storage, Event} = 7, - ImOnline: pallet_im_online::{Pallet, Call, Storage, ValidateUnsigned, Config, Event} = 8, - Grandpa: pallet_grandpa::{Pallet, Call, Storage, ValidateUnsigned, Config, Event} = 9, - - // Monetary - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Config, Event} = 11, - - // Staking - RelayManager: pallet_relay_manager::{Pallet, Call, Storage, Config, Event} = 20, - BfcStaking: pallet_bfc_staking::{Pallet, Call, Storage, Config, Event} = 21, - BfcUtility: pallet_bfc_utility::{Pallet, Call, Storage, Config, Event} = 22, - BfcOffences: pallet_bfc_offences::{Pallet, Call, Storage, Config, Event} = 23, - - // Utility - Utility: pallet_utility::{Pallet, Call, Event} = 30, - Identity: pallet_identity::{Pallet, Call, Storage, Event} = 31, - - // Ethereum - EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 40, - Ethereum: pallet_ethereum::{Pallet, Call, Storage, Event, Origin, Config} = 41, - BaseFee: pallet_base_fee::{Pallet, Call, Storage, Config, Event} = 42, - - // Governance - Scheduler: pallet_scheduler::{Pallet, Storage, Event, Call} = 50, - Democracy: pallet_democracy::{Pallet, Storage, Config, Event, Call} = 51, - Council: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 52, - TechnicalCommittee: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 53, - CouncilMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 54, - TechnicalMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 55, - Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event} = 56, - Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 57, - RelayExecutive: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 58, - RelayExecutiveMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 59, - - // Bitcoin - BtcSocketQueue: pallet_btc_socket_queue::{Pallet, Call, Storage, ValidateUnsigned, Event, Config} = 60, - BtcRegistrationPool: pallet_btc_registration_pool::{Pallet, Call, Storage, ValidateUnsigned, Event, Config} = 61, - - // Temporary - Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event} = 99, - } -); +#[frame_support::runtime] +mod runtime { + #[runtime::runtime] + #[runtime::derive( + RuntimeCall, + RuntimeEvent, + RuntimeError, + RuntimeOrigin, + RuntimeFreezeReason, + RuntimeHoldReason, + RuntimeSlashReason, + RuntimeLockId, + RuntimeTask + )] + pub struct Runtime; + + #[runtime::pallet_index(0)] + pub type System = frame_system; + + #[runtime::pallet_index(2)] + pub type Timestamp = pallet_timestamp; + + #[runtime::pallet_index(3)] + pub type Aura = pallet_aura; + + #[runtime::pallet_index(4)] + pub type Authorship = pallet_authorship; + + #[runtime::pallet_index(5)] + pub type Session = pallet_session; + + #[runtime::pallet_index(6)] + pub type Historical = pallet_session::historical; + + #[runtime::pallet_index(7)] + pub type Offences = pallet_offences; + + #[runtime::pallet_index(8)] + pub type ImOnline = pallet_im_online; + + #[runtime::pallet_index(9)] + pub type Grandpa = pallet_grandpa; + + #[runtime::pallet_index(10)] + pub type Balances = pallet_balances; + + #[runtime::pallet_index(11)] + pub type TransactionPayment = pallet_transaction_payment; + + #[runtime::pallet_index(20)] + pub type RelayManager = pallet_relay_manager; + + #[runtime::pallet_index(21)] + pub type BfcStaking = pallet_bfc_staking; + + #[runtime::pallet_index(22)] + pub type BfcUtility = pallet_bfc_utility; + + #[runtime::pallet_index(23)] + pub type BfcOffences = pallet_bfc_offences; + + #[runtime::pallet_index(30)] + pub type Utility = pallet_utility; + + #[runtime::pallet_index(31)] + pub type Identity = pallet_identity; + + #[runtime::pallet_index(32)] + pub type SafeMode = pallet_safe_mode; + + #[runtime::pallet_index(33)] + pub type TxPause = pallet_tx_pause; + + #[runtime::pallet_index(40)] + pub type EVM = pallet_evm; + + #[runtime::pallet_index(41)] + pub type Ethereum = pallet_ethereum; + + #[runtime::pallet_index(42)] + pub type BaseFee = pallet_base_fee; + + #[runtime::pallet_index(50)] + pub type Scheduler = pallet_scheduler; + + #[runtime::pallet_index(51)] + pub type Democracy = pallet_democracy; + + #[runtime::pallet_index(52)] + pub type Council = pallet_collective; + + #[runtime::pallet_index(53)] + pub type TechnicalCommittee = pallet_collective; + + #[runtime::pallet_index(54)] + pub type CouncilMembership = pallet_membership; + + #[runtime::pallet_index(55)] + pub type TechnicalMembership = pallet_membership; + + #[runtime::pallet_index(56)] + pub type Treasury = pallet_treasury; + + #[runtime::pallet_index(57)] + pub type Preimage = pallet_preimage; + + #[runtime::pallet_index(58)] + pub type RelayExecutive = pallet_collective; + + #[runtime::pallet_index(59)] + pub type RelayExecutiveMembership = pallet_membership; + + #[runtime::pallet_index(60)] + pub type BtcSocketQueue = pallet_btc_socket_queue; + + #[runtime::pallet_index(61)] + pub type BtcRegistrationPool = pallet_btc_registration_pool; + + #[runtime::pallet_index(99)] + pub type Sudo = pallet_sudo; +} bifrost_common_runtime::impl_common_runtime_apis!(); bifrost_common_runtime::impl_self_contained_call!(); diff --git a/runtime/mainnet/Cargo.toml b/runtime/mainnet/Cargo.toml index 17e4c4c1..249aa377 100644 --- a/runtime/mainnet/Cargo.toml +++ b/runtime/mainnet/Cargo.toml @@ -16,7 +16,6 @@ targets = ["x86_64-unknown-linux-gnu"] # third-party dependencies parity-scale-codec = { workspace = true } scale-info = { workspace = true } -hex-literal = { workspace = true, optional = true } rlp = { workspace = true, optional = true } sha3 = { workspace = true, optional = true } num_enum = { workspace = true } @@ -54,20 +53,22 @@ pallet-offences = { workspace = true } pallet-treasury = { workspace = true } pallet-identity = { workspace = true } pallet-preimage = { workspace = true } +pallet-safe-mode = { workspace = true } +pallet-tx-pause = { workspace = true } # substrate primitives sp-io = { workspace = true } sp-api = { workspace = true } sp-block-builder = { workspace = true } -sp-consensus-aura = { workspace = true } -sp-core = { workspace = true } +sp-consensus-aura = { workspace = true, features = ["serde"] } +sp-core = { workspace = true, features = ["serde"] } sp-inherents = { workspace = true } sp-offchain = { workspace = true } -sp-runtime = { workspace = true } +sp-runtime = { workspace = true, features = ["serde"] } sp-session = { workspace = true } sp-std = { workspace = true } sp-transaction-pool = { workspace = true } -sp-version = { workspace = true } +sp-version = { workspace = true, features = ["serde"] } sp-genesis-builder = { workspace = true } # Frontier @@ -115,6 +116,7 @@ std = [ "parity-scale-codec/std", "scale-info/std", "bifrost-common-runtime/std", + "bifrost-mainnet-constants/std", "bp-core/std", "frame-executive/std", "frame-support/std", @@ -148,6 +150,12 @@ std = [ "pallet-offences/std", "pallet-identity/std", "pallet-preimage/std", + "pallet-safe-mode/std", + "pallet-tx-pause/std", + "pallet-evm-precompile-simple/std", + "pallet-evm-precompile-bn128/std", + "pallet-evm-precompile-modexp/std", + "pallet-evm-precompile-blake2/std", "sp-api/std", "sp-consensus-aura/std", "sp-block-builder/std", @@ -160,6 +168,7 @@ std = [ "sp-io/std", "sp-transaction-pool/std", "sp-version/std", + "sp-genesis-builder/std", "fp-self-contained/std", "fp-evm/std", "fp-rpc/std", @@ -171,17 +180,9 @@ std = [ "precompile-utils/std", "substrate-wasm-builder", ] -evm-tracing = [ - "rlp", - "sha3", - "evm-tracer", - "sp-io/disable_oom", - "sp-io/disable_panic_handler", - "fp-rpc-evm-tracing-events", -] +evm-tracing = ["rlp", "sha3", "evm-tracer", "fp-rpc-evm-tracing-events"] runtime-wasm = [] runtime-benchmarks = [ - "hex-literal", "sp-runtime/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", diff --git a/runtime/mainnet/build.rs b/runtime/mainnet/build.rs index c2db024a..21fd2533 100644 --- a/runtime/mainnet/build.rs +++ b/runtime/mainnet/build.rs @@ -4,10 +4,6 @@ fn main() { #[cfg(target_arch = "aarch64")] std::env::set_var("CFLAGS", "-mcpu=mvp"); - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build(); + substrate_wasm_builder::WasmBuilder::build_using_defaults(); } } diff --git a/runtime/mainnet/constants/Cargo.toml b/runtime/mainnet/constants/Cargo.toml index 8cb0b623..6fafb1fe 100644 --- a/runtime/mainnet/constants/Cargo.toml +++ b/runtime/mainnet/constants/Cargo.toml @@ -11,13 +11,10 @@ repository = { workspace = true } [dependencies] # Bifrost bifrost-common-constants = { workspace = true } -bp-core = { workspace = true } # Substrate -sp-core = { workspace = true } frame-support = { workspace = true } -pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } [features] default = ["std"] -std = ["pallet-evm/std", "sp-core/std", "frame-support/std"] +std = ["bifrost-common-constants/std", "frame-support/std"] diff --git a/runtime/mainnet/constants/src/lib.rs b/runtime/mainnet/constants/src/lib.rs index c149ed87..986ba927 100644 --- a/runtime/mainnet/constants/src/lib.rs +++ b/runtime/mainnet/constants/src/lib.rs @@ -1,3 +1,5 @@ +#![cfg_attr(not(feature = "std"), no_std)] + pub use bifrost_common_constants::{currency, time}; pub mod fee { diff --git a/runtime/mainnet/src/lib.rs b/runtime/mainnet/src/lib.rs index cef478d9..619ce05f 100644 --- a/runtime/mainnet/src/lib.rs +++ b/runtime/mainnet/src/lib.rs @@ -20,6 +20,7 @@ use fp_rpc_txpool::TxPoolResponse; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{crypto::KeyTypeId, ConstBool, ConstU64, OpaqueMetadata, H160, H256, U256}; +use sp_genesis_builder::PresetId; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; use sp_runtime::{ @@ -33,7 +34,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, }; -pub use sp_runtime::{Perbill, Percent, Permill}; +pub use sp_runtime::{traits, ExtrinsicInclusionMode, Perbill, Percent, Permill}; use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -47,29 +48,32 @@ use pallet_ethereum::{ }; use pallet_evm::{ Account as EVMAccount, EVMCurrencyAdapter, EnsureAddressNever, EnsureAddressRoot, - FeeCalculator, IdentityAddressMapping, Runner, + FeeCalculator, GasWeightMapping, IdentityAddressMapping, Runner, }; use pallet_grandpa::{ fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, }; -use pallet_identity::simple::IdentityInfo; +use pallet_identity::legacy::IdentityInfo; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; pub use pallet_timestamp::Call as TimestampCall; +#[allow(deprecated)] use pallet_transaction_payment::CurrencyAdapter; use parity_scale_codec::{Decode, Encode}; pub use frame_support::{ - construct_runtime, + derive_impl, dispatch::{DispatchClass, GetDispatchInfo}, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, pallet_prelude::Get, parameter_types, traits::{ fungible::HoldConsideration, - tokens::{PayFromAccount, UnityAssetBalanceConversion}, + tokens::{ + fungible::Credit, imbalance::ResolveTo, PayFromAccount, UnityAssetBalanceConversion, + }, ConstU128, ConstU32, ConstU8, Contains, Currency, EitherOfDiverse, EqualPrivilegeOnly, - FindAuthor, Imbalance, KeyOwnerProofSystem, LinearStoragePrice, LockIdentifier, + FindAuthor, Imbalance, InsideBoth, KeyOwnerProofSystem, LinearStoragePrice, LockIdentifier, NeverEnsureOrigin, OnFinalize, OnUnbalanced, Randomness, StorageInfo, }, weights::{ @@ -81,7 +85,7 @@ pub use frame_support::{ }, ConsensusEngineId, PalletId, StorageValue, }; -use frame_system::{EnsureRoot, EnsureSigned}; +use frame_system::{EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; mod precompiles; pub use precompiles::BifrostPrecompiles; @@ -145,7 +149,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // The version of the authorship interface. authoring_version: 1, // The version of the runtime spec. - spec_version: 2026, + spec_version: 2027, // The version of the implementation of the spec. impl_version: 1, // A list of supported runtime APIs along with their versions. @@ -181,9 +185,10 @@ parameter_types! { } /// The System pallet defines the core data types used in a Substrate runtime +#[derive_impl(frame_system::config_preludes::SolochainDefaultConfig)] impl frame_system::Config for Runtime { /// The basic call filter to use in dispatchable. - type BaseCallFilter = frame_support::traits::Everything; + type BaseCallFilter = InsideBoth; /// The block type for the runtime. type Block = Block; /// Block & extrinsics weights: base values and limits. @@ -192,8 +197,6 @@ impl frame_system::Config for Runtime { type BlockLength = BlockLength; /// The identifier used to distinguish between accounts. type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; /// The lookup mechanism to get the account ID from whatever is passed in dispatchers. type Lookup = IdentityLookup; /// The index type for storing how many extrinsics an account has signed. @@ -202,10 +205,6 @@ impl frame_system::Config for Runtime { type Hash = Hash; /// The hashing algorithm used. type Hashing = BlakeTwo256; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - /// The ubiquitous origin type. - type RuntimeOrigin = RuntimeOrigin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// The weight of database operations that the runtime can invoke. @@ -214,22 +213,67 @@ impl frame_system::Config for Runtime { type Version = Version; /// Provides information about the pallet setup in the runtime. type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); /// The data to be stored in an account. type AccountData = pallet_balances::AccountData; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); /// The maximum number of consumers allowed on a single account. type MaxConsumers = ConstU32<16>; } +/// Calls that can bypass the safe-mode pallet. +pub struct SafeModeWhitelistedCalls; +impl Contains for SafeModeWhitelistedCalls { + fn contains(call: &RuntimeCall) -> bool { + match call { + RuntimeCall::System(_) + | RuntimeCall::Sudo(_) + | RuntimeCall::Timestamp(_) + | RuntimeCall::SafeMode(_) + | RuntimeCall::TxPause(_) + | RuntimeCall::ImOnline(pallet_im_online::Call::heartbeat { .. }) + | RuntimeCall::RelayManager(pallet_relay_manager::Call::heartbeat { .. }) => true, + _ => false, + } + } +} + +impl pallet_tx_pause::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PauseOrigin = EnsureRoot; + type UnpauseOrigin = EnsureRoot; + type WhitelistedCalls = (); + type MaxNameLen = ConstU32<256>; + type WeightInfo = pallet_tx_pause::weights::SubstrateWeight; +} + +parameter_types! { + pub const EnterDuration: BlockNumber = 12 * HOURS; + pub const EnterDepositAmount: Option = None; + pub const ExtendDuration: BlockNumber = 1 * HOURS; + pub const ExtendDepositAmount: Option = None; + pub const ReleaseDelay: u32 = 1 * HOURS; +} + +impl pallet_safe_mode::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type WhitelistedCalls = SafeModeWhitelistedCalls; + type EnterDuration = EnterDuration; + type EnterDepositAmount = EnterDepositAmount; + type ExtendDuration = ExtendDuration; + type ExtendDepositAmount = ExtendDepositAmount; + type ForceEnterOrigin = EnsureRootWithSuccess; + type ForceExtendOrigin = EnsureRootWithSuccess; + type ForceExitOrigin = EnsureRoot; + type ForceDepositOrigin = EnsureRoot; + type ReleaseDelay = ReleaseDelay; + type Notify = (); + type WeightInfo = pallet_safe_mode::weights::SubstrateWeight; +} + parameter_types! { pub const MaxAuthorities: u32 = 1_000; } @@ -240,6 +284,7 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; } /// Provides the GRANDPA block finality gadget. @@ -268,7 +313,7 @@ impl pallet_timestamp::Config for Runtime { /// Provides functionality for handling accounts and balances. impl pallet_balances::Config for Runtime { type MaxLocks = ConstU32<50>; - type MaxReserves = (); + type MaxReserves = ConstU32<50>; type ReserveIdentifier = [u8; 8]; type Balance = Balance; type RuntimeEvent = RuntimeEvent; @@ -277,10 +322,9 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; type FreezeIdentifier = (); - type MaxFreezes = (); - type MaxHolds = ConstU32<1>; + type MaxFreezes = ConstU32<0>; type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = (); + type RuntimeFreezeReason = RuntimeFreezeReason; } pub struct DealWithFees(sp_std::marker::PhantomData); @@ -316,6 +360,7 @@ parameter_types! { /// Provides the basic logic needed to pay the absolute minimum amount needed for a transaction to /// be included. +#[allow(deprecated)] impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = CurrencyAdapter>; @@ -659,19 +704,11 @@ parameter_types! { impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - type ApproveOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionAtLeast, - >; type RejectOrigin = EitherOfDiverse< EnsureRoot, pallet_collective::EnsureProportionMoreThan, >; type RuntimeEvent = RuntimeEvent; - type OnSlash = Treasury; - type ProposalBond = ProposalBond; - type ProposalBondMinimum = ProposalBondMinimum; - type ProposalBondMaximum = (); type SpendPeriod = SpendPeriod; type Burn = (); type BurnDestination = (); @@ -691,11 +728,14 @@ impl pallet_treasury::Config for Runtime { parameter_types! { pub const BasicDeposit: Balance = 100 * SUPPLY_FACTOR * BFC; - pub const FieldDeposit: Balance = 100 * SUPPLY_FACTOR * BFC; + pub const ByteDeposit: Balance = 100 * SUPPLY_FACTOR * BFC; pub const SubAccountDeposit: Balance = 100 * SUPPLY_FACTOR * BFC; pub const MaxSubAccounts: u32 = 100; pub const MaxAdditionalFields: u32 = 100; pub const MaxRegistrars: u32 = 20; + pub const PendingUsernameExpiration: u32 = 7 * DAYS; + pub const MaxSuffixLength: u32 = 7; + pub const MaxUsernameLength: u32 = 32; } /// The module that manages account identities and registrar judgements. @@ -703,15 +743,20 @@ impl pallet_identity::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type BasicDeposit = BasicDeposit; - type FieldDeposit = FieldDeposit; + type ByteDeposit = ByteDeposit; type SubAccountDeposit = SubAccountDeposit; type MaxSubAccounts = MaxSubAccounts; - type MaxAdditionalFields = MaxAdditionalFields; type IdentityInformation = IdentityInfo; type MaxRegistrars = MaxRegistrars; type Slashed = Treasury; type ForceOrigin = EnsureRoot; type RegistrarOrigin = EnsureRoot; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot; + type PendingUsernameExpiration = PendingUsernameExpiration; + type MaxSuffixLength = MaxSuffixLength; + type MaxUsernameLength = MaxUsernameLength; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -866,7 +911,8 @@ impl> FindAuthor for FindAuthorAccountId { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = Aura::authorities()[author_index as usize].clone(); + let authority_id = + pallet_aura::Authorities::::get()[author_index as usize].clone(); let queued_keys = >::queued_keys(); for key in queued_keys { if key.1.aura == authority_id { @@ -1001,62 +1047,127 @@ impl pallet_btc_registration_pool::Config for Runtime { } // Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub struct Runtime { - // System - System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - - // Block - Aura: pallet_aura::{Pallet, Storage, Config} = 3, - - // Consensus - Authorship: pallet_authorship::{Pallet, Storage} = 4, - Session: pallet_session::{Pallet, Call, Storage, Config, Event} = 5, - Historical: pallet_session::historical::{Pallet} = 6, - Offences: pallet_offences::{Pallet, Storage, Event} = 7, - ImOnline: pallet_im_online::{Pallet, Call, Storage, ValidateUnsigned, Config, Event} = 8, - Grandpa: pallet_grandpa::{Pallet, Call, Storage, ValidateUnsigned, Config, Event} = 9, - - // Monetary - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Config, Event} = 11, - - // Staking - RelayManager: pallet_relay_manager::{Pallet, Call, Storage, Config, Event} = 20, - BfcStaking: pallet_bfc_staking::{Pallet, Call, Storage, Config, Event} = 21, - BfcUtility: pallet_bfc_utility::{Pallet, Call, Storage, Config, Event} = 22, - BfcOffences: pallet_bfc_offences::{Pallet, Call, Storage, Config, Event} = 23, - - // Utility - Utility: pallet_utility::{Pallet, Call, Event} = 30, - Identity: pallet_identity::{Pallet, Call, Storage, Event} = 31, - - // Ethereum - EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 40, - Ethereum: pallet_ethereum::{Pallet, Call, Storage, Event, Origin, Config} = 41, - BaseFee: pallet_base_fee::{Pallet, Call, Storage, Config, Event} = 42, - - // Governance - Scheduler: pallet_scheduler::{Pallet, Storage, Event, Call} = 50, - Democracy: pallet_democracy::{Pallet, Storage, Config, Event, Call} = 51, - Council: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 52, - TechnicalCommittee: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 53, - CouncilMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 54, - TechnicalMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 55, - Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event} = 56, - Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 57, - RelayExecutive: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 58, - RelayExecutiveMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 59, - - // Bitcoin - BtcSocketQueue: pallet_btc_socket_queue::{Pallet, Call, Storage, ValidateUnsigned, Event, Config} = 60, - BtcRegistrationPool: pallet_btc_registration_pool::{Pallet, Call, Storage, ValidateUnsigned, Event, Config} = 61, - - // Temporary - Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event} = 99, - } -); +#[frame_support::runtime] +mod runtime { + #[runtime::runtime] + #[runtime::derive( + RuntimeCall, + RuntimeEvent, + RuntimeError, + RuntimeOrigin, + RuntimeFreezeReason, + RuntimeHoldReason, + RuntimeSlashReason, + RuntimeLockId, + RuntimeTask + )] + pub struct Runtime; + + #[runtime::pallet_index(0)] + pub type System = frame_system; + + #[runtime::pallet_index(2)] + pub type Timestamp = pallet_timestamp; + + #[runtime::pallet_index(3)] + pub type Aura = pallet_aura; + + #[runtime::pallet_index(4)] + pub type Authorship = pallet_authorship; + + #[runtime::pallet_index(5)] + pub type Session = pallet_session; + + #[runtime::pallet_index(6)] + pub type Historical = pallet_session::historical; + + #[runtime::pallet_index(7)] + pub type Offences = pallet_offences; + + #[runtime::pallet_index(8)] + pub type ImOnline = pallet_im_online; + + #[runtime::pallet_index(9)] + pub type Grandpa = pallet_grandpa; + + #[runtime::pallet_index(10)] + pub type Balances = pallet_balances; + + #[runtime::pallet_index(11)] + pub type TransactionPayment = pallet_transaction_payment; + + #[runtime::pallet_index(20)] + pub type RelayManager = pallet_relay_manager; + + #[runtime::pallet_index(21)] + pub type BfcStaking = pallet_bfc_staking; + + #[runtime::pallet_index(22)] + pub type BfcUtility = pallet_bfc_utility; + + #[runtime::pallet_index(23)] + pub type BfcOffences = pallet_bfc_offences; + + #[runtime::pallet_index(30)] + pub type Utility = pallet_utility; + + #[runtime::pallet_index(31)] + pub type Identity = pallet_identity; + + #[runtime::pallet_index(32)] + pub type SafeMode = pallet_safe_mode; + + #[runtime::pallet_index(33)] + pub type TxPause = pallet_tx_pause; + + #[runtime::pallet_index(40)] + pub type EVM = pallet_evm; + + #[runtime::pallet_index(41)] + pub type Ethereum = pallet_ethereum; + + #[runtime::pallet_index(42)] + pub type BaseFee = pallet_base_fee; + + #[runtime::pallet_index(50)] + pub type Scheduler = pallet_scheduler; + + #[runtime::pallet_index(51)] + pub type Democracy = pallet_democracy; + + #[runtime::pallet_index(52)] + pub type Council = pallet_collective; + + #[runtime::pallet_index(53)] + pub type TechnicalCommittee = pallet_collective; + + #[runtime::pallet_index(54)] + pub type CouncilMembership = pallet_membership; + + #[runtime::pallet_index(55)] + pub type TechnicalMembership = pallet_membership; + + #[runtime::pallet_index(56)] + pub type Treasury = pallet_treasury; + + #[runtime::pallet_index(57)] + pub type Preimage = pallet_preimage; + + #[runtime::pallet_index(58)] + pub type RelayExecutive = pallet_collective; + + #[runtime::pallet_index(59)] + pub type RelayExecutiveMembership = pallet_membership; + + #[runtime::pallet_index(60)] + pub type BtcSocketQueue = pallet_btc_socket_queue; + + #[runtime::pallet_index(61)] + pub type BtcRegistrationPool = pallet_btc_registration_pool; + + #[runtime::pallet_index(99)] + pub type Sudo = pallet_sudo; +} bifrost_common_runtime::impl_common_runtime_apis!(); bifrost_common_runtime::impl_self_contained_call!(); diff --git a/runtime/testnet/Cargo.toml b/runtime/testnet/Cargo.toml index ca050461..be786b4c 100644 --- a/runtime/testnet/Cargo.toml +++ b/runtime/testnet/Cargo.toml @@ -16,7 +16,6 @@ targets = ["x86_64-unknown-linux-gnu"] # third-party dependencies parity-scale-codec = { workspace = true } scale-info = { workspace = true } -hex-literal = { workspace = true, optional = true } rlp = { workspace = true, optional = true } sha3 = { workspace = true, optional = true } num_enum = { workspace = true } @@ -54,20 +53,22 @@ pallet-offences = { workspace = true } pallet-treasury = { workspace = true } pallet-identity = { workspace = true } pallet-preimage = { workspace = true } +pallet-safe-mode = { workspace = true } +pallet-tx-pause = { workspace = true } # substrate primitives sp-io = { workspace = true } sp-api = { workspace = true } sp-block-builder = { workspace = true } -sp-consensus-aura = { workspace = true } -sp-core = { workspace = true } +sp-consensus-aura = { workspace = true, features = ["serde"] } +sp-core = { workspace = true, features = ["serde"] } sp-inherents = { workspace = true } sp-offchain = { workspace = true } -sp-runtime = { workspace = true } +sp-runtime = { workspace = true, features = ["serde"] } sp-session = { workspace = true } sp-std = { workspace = true } sp-transaction-pool = { workspace = true } -sp-version = { workspace = true } +sp-version = { workspace = true, features = ["serde"] } sp-genesis-builder = { workspace = true } # Frontier @@ -115,6 +116,7 @@ std = [ "parity-scale-codec/std", "scale-info/std", "bifrost-common-runtime/std", + "bifrost-testnet-constants/std", "bp-core/std", "frame-executive/std", "frame-support/std", @@ -148,6 +150,12 @@ std = [ "pallet-offences/std", "pallet-identity/std", "pallet-preimage/std", + "pallet-safe-mode/std", + "pallet-tx-pause/std", + "pallet-evm-precompile-simple/std", + "pallet-evm-precompile-bn128/std", + "pallet-evm-precompile-modexp/std", + "pallet-evm-precompile-blake2/std", "sp-api/std", "sp-consensus-aura/std", "sp-block-builder/std", @@ -160,6 +168,7 @@ std = [ "sp-io/std", "sp-transaction-pool/std", "sp-version/std", + "sp-genesis-builder/std", "fp-self-contained/std", "fp-evm/std", "fp-rpc/std", @@ -169,19 +178,19 @@ std = [ "fp-account/std", "evm-tracer/std", "precompile-utils/std", + "precompile-bfc-staking/std", + "precompile-bfc-offences/std", + "precompile-relay-manager/std", + "precompile-governance/std", + "precompile-collective/std", + "precompile-balance/std", + "precompile-btc-registration-pool/std", + "precompile-btc-socket-queue/std", "substrate-wasm-builder", ] -evm-tracing = [ - "rlp", - "sha3", - "evm-tracer", - "sp-io/disable_oom", - "sp-io/disable_panic_handler", - "fp-rpc-evm-tracing-events", -] +evm-tracing = ["rlp", "sha3", "evm-tracer", "fp-rpc-evm-tracing-events"] runtime-wasm = [] runtime-benchmarks = [ - "hex-literal", "sp-runtime/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", diff --git a/runtime/testnet/build.rs b/runtime/testnet/build.rs index c2db024a..21fd2533 100644 --- a/runtime/testnet/build.rs +++ b/runtime/testnet/build.rs @@ -4,10 +4,6 @@ fn main() { #[cfg(target_arch = "aarch64")] std::env::set_var("CFLAGS", "-mcpu=mvp"); - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build(); + substrate_wasm_builder::WasmBuilder::build_using_defaults(); } } diff --git a/runtime/testnet/constants/Cargo.toml b/runtime/testnet/constants/Cargo.toml index 11f31ddd..0acec863 100644 --- a/runtime/testnet/constants/Cargo.toml +++ b/runtime/testnet/constants/Cargo.toml @@ -11,13 +11,10 @@ repository = { workspace = true } [dependencies] # Bifrost bifrost-common-constants = { workspace = true } -bp-core = { workspace = true } # Substrate -sp-core = { workspace = true } frame-support = { workspace = true } -pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } [features] default = ["std"] -std = ["pallet-evm/std", "sp-core/std", "frame-support/std"] +std = ["bifrost-common-constants/std", "frame-support/std"] diff --git a/runtime/testnet/constants/src/lib.rs b/runtime/testnet/constants/src/lib.rs index c149ed87..986ba927 100644 --- a/runtime/testnet/constants/src/lib.rs +++ b/runtime/testnet/constants/src/lib.rs @@ -1,3 +1,5 @@ +#![cfg_attr(not(feature = "std"), no_std)] + pub use bifrost_common_constants::{currency, time}; pub mod fee { diff --git a/runtime/testnet/src/lib.rs b/runtime/testnet/src/lib.rs index f3b71919..85ce25dc 100644 --- a/runtime/testnet/src/lib.rs +++ b/runtime/testnet/src/lib.rs @@ -20,6 +20,7 @@ use fp_rpc_txpool::TxPoolResponse; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{crypto::KeyTypeId, ConstBool, ConstU64, OpaqueMetadata, H160, H256, U256}; +use sp_genesis_builder::PresetId; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; use sp_runtime::{ @@ -33,7 +34,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, }; -pub use sp_runtime::{Perbill, Percent, Permill}; +pub use sp_runtime::{traits, ExtrinsicInclusionMode, Perbill, Percent, Permill}; use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -47,29 +48,32 @@ use pallet_ethereum::{ }; use pallet_evm::{ Account as EVMAccount, EVMCurrencyAdapter, EnsureAddressNever, EnsureAddressRoot, - FeeCalculator, IdentityAddressMapping, Runner, + FeeCalculator, GasWeightMapping, IdentityAddressMapping, Runner, }; use pallet_grandpa::{ fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, }; -use pallet_identity::simple::IdentityInfo; +use pallet_identity::legacy::IdentityInfo; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; pub use pallet_timestamp::Call as TimestampCall; +#[allow(deprecated)] use pallet_transaction_payment::CurrencyAdapter; use parity_scale_codec::{Decode, Encode}; pub use frame_support::{ - construct_runtime, + derive_impl, dispatch::{DispatchClass, GetDispatchInfo}, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, pallet_prelude::Get, parameter_types, traits::{ fungible::HoldConsideration, - tokens::{PayFromAccount, UnityAssetBalanceConversion}, + tokens::{ + fungible::Credit, imbalance::ResolveTo, PayFromAccount, UnityAssetBalanceConversion, + }, ConstU128, ConstU32, ConstU8, Contains, Currency, EitherOfDiverse, EqualPrivilegeOnly, - FindAuthor, Imbalance, KeyOwnerProofSystem, LinearStoragePrice, LockIdentifier, + FindAuthor, Imbalance, InsideBoth, KeyOwnerProofSystem, LinearStoragePrice, LockIdentifier, NeverEnsureOrigin, OnFinalize, OnUnbalanced, Randomness, StorageInfo, }, weights::{ @@ -81,7 +85,7 @@ pub use frame_support::{ }, ConsensusEngineId, PalletId, StorageValue, }; -use frame_system::{EnsureRoot, EnsureSigned}; +use frame_system::{EnsureRoot, EnsureRootWithSuccess, EnsureSigned}; mod precompiles; pub use precompiles::BifrostPrecompiles; @@ -107,6 +111,9 @@ pub type SignedExtra = ( pub type UncheckedExtrinsic = fp_self_contained::UncheckedExtrinsic; +/// All migrations executed on runtime upgrade as a nested tuple of types implementing `OnRuntimeUpgrade`. +type Migrations = (); + /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -114,6 +121,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, + Migrations, >; /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know @@ -145,7 +153,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // The version of the authorship interface. authoring_version: 1, // The version of the runtime spec. - spec_version: 473, + spec_version: 477, // The version of the implementation of the spec. impl_version: 1, // A list of supported runtime APIs along with their versions. @@ -183,9 +191,10 @@ parameter_types! { } /// The System pallet defines the core data types used in a Substrate runtime +#[derive_impl(frame_system::config_preludes::SolochainDefaultConfig)] impl frame_system::Config for Runtime { /// The basic call filter to use in dispatchable. - type BaseCallFilter = frame_support::traits::Everything; + type BaseCallFilter = InsideBoth; /// The block type for the runtime. type Block = Block; /// Block & extrinsics weights: base values and limits. @@ -194,8 +203,6 @@ impl frame_system::Config for Runtime { type BlockLength = BlockLength; /// The identifier used to distinguish between accounts. type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; /// The lookup mechanism to get the account ID from whatever is passed in dispatchers. type Lookup = IdentityLookup; /// The index type for storing how many extrinsics an account has signed. @@ -204,10 +211,6 @@ impl frame_system::Config for Runtime { type Hash = Hash; /// The hashing algorithm used. type Hashing = BlakeTwo256; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - /// The ubiquitous origin type. - type RuntimeOrigin = RuntimeOrigin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// The weight of database operations that the runtime can invoke. @@ -216,22 +219,67 @@ impl frame_system::Config for Runtime { type Version = Version; /// Provides information about the pallet setup in the runtime. type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); /// The data to be stored in an account. type AccountData = pallet_balances::AccountData; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); /// The maximum number of consumers allowed on a single account. type MaxConsumers = ConstU32<16>; } +/// Calls that can bypass the safe-mode pallet. +pub struct SafeModeWhitelistedCalls; +impl Contains for SafeModeWhitelistedCalls { + fn contains(call: &RuntimeCall) -> bool { + match call { + RuntimeCall::System(_) + | RuntimeCall::Sudo(_) + | RuntimeCall::Timestamp(_) + | RuntimeCall::SafeMode(_) + | RuntimeCall::TxPause(_) + | RuntimeCall::ImOnline(pallet_im_online::Call::heartbeat { .. }) + | RuntimeCall::RelayManager(pallet_relay_manager::Call::heartbeat { .. }) => true, + _ => false, + } + } +} + +impl pallet_tx_pause::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PauseOrigin = EnsureRoot; + type UnpauseOrigin = EnsureRoot; + type WhitelistedCalls = (); + type MaxNameLen = ConstU32<256>; + type WeightInfo = pallet_tx_pause::weights::SubstrateWeight; +} + +parameter_types! { + pub const EnterDuration: BlockNumber = 6 * HOURS; + pub const EnterDepositAmount: Option = None; + pub const ExtendDuration: BlockNumber = 1 * HOURS; + pub const ExtendDepositAmount: Option = None; + pub const ReleaseDelay: u32 = 1 * HOURS; +} + +impl pallet_safe_mode::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type WhitelistedCalls = SafeModeWhitelistedCalls; + type EnterDuration = EnterDuration; + type EnterDepositAmount = EnterDepositAmount; + type ExtendDuration = ExtendDuration; + type ExtendDepositAmount = ExtendDepositAmount; + type ForceEnterOrigin = EnsureRootWithSuccess; + type ForceExtendOrigin = EnsureRootWithSuccess; + type ForceExitOrigin = EnsureRoot; + type ForceDepositOrigin = EnsureRoot; + type ReleaseDelay = ReleaseDelay; + type Notify = (); + type WeightInfo = pallet_safe_mode::weights::SubstrateWeight; +} + parameter_types! { pub const MaxAuthorities: u32 = 1_000; } @@ -242,6 +290,7 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; + type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; } /// Provides the GRANDPA block finality gadget. @@ -270,7 +319,7 @@ impl pallet_timestamp::Config for Runtime { /// Provides functionality for handling accounts and balances. impl pallet_balances::Config for Runtime { type MaxLocks = ConstU32<50>; - type MaxReserves = (); + type MaxReserves = ConstU32<50>; type ReserveIdentifier = [u8; 8]; type Balance = Balance; type RuntimeEvent = RuntimeEvent; @@ -279,10 +328,9 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; type FreezeIdentifier = (); - type MaxFreezes = (); - type MaxHolds = ConstU32<1>; + type MaxFreezes = ConstU32<0>; type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = (); + type RuntimeFreezeReason = RuntimeFreezeReason; } pub struct DealWithFees(sp_std::marker::PhantomData); @@ -318,6 +366,7 @@ parameter_types! { /// Provides the basic logic needed to pay the absolute minimum amount needed for a transaction to /// be included. +#[allow(deprecated)] impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = CurrencyAdapter>; @@ -665,19 +714,11 @@ parameter_types! { impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - type ApproveOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionAtLeast, - >; type RejectOrigin = EitherOfDiverse< EnsureRoot, pallet_collective::EnsureProportionMoreThan, >; type RuntimeEvent = RuntimeEvent; - type OnSlash = Treasury; - type ProposalBond = ProposalBond; - type ProposalBondMinimum = ProposalBondMinimum; - type ProposalBondMaximum = (); type SpendPeriod = SpendPeriod; type Burn = (); type BurnDestination = (); @@ -697,11 +738,14 @@ impl pallet_treasury::Config for Runtime { parameter_types! { pub const BasicDeposit: Balance = 100 * BFC; - pub const FieldDeposit: Balance = 100 * BFC; + pub const ByteDeposit: Balance = 100 * BFC; pub const SubAccountDeposit: Balance = 100 * BFC; pub const MaxSubAccounts: u32 = 100; pub const MaxAdditionalFields: u32 = 100; pub const MaxRegistrars: u32 = 20; + pub const PendingUsernameExpiration: u32 = 1 * DAYS; + pub const MaxSuffixLength: u32 = 7; + pub const MaxUsernameLength: u32 = 32; } /// The module that manages account identities and registrar judgements. @@ -709,15 +753,20 @@ impl pallet_identity::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type BasicDeposit = BasicDeposit; - type FieldDeposit = FieldDeposit; + type ByteDeposit = ByteDeposit; type SubAccountDeposit = SubAccountDeposit; type MaxSubAccounts = MaxSubAccounts; - type MaxAdditionalFields = MaxAdditionalFields; type IdentityInformation = IdentityInfo; type MaxRegistrars = MaxRegistrars; type Slashed = Treasury; type ForceOrigin = EnsureRoot; type RegistrarOrigin = EnsureRoot; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot; + type PendingUsernameExpiration = PendingUsernameExpiration; + type MaxSuffixLength = MaxSuffixLength; + type MaxUsernameLength = MaxUsernameLength; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -872,7 +921,8 @@ impl> FindAuthor for FindAuthorAccountId { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = Aura::authorities()[author_index as usize].clone(); + let authority_id = + pallet_aura::Authorities::::get()[author_index as usize].clone(); let queued_keys = >::queued_keys(); for key in queued_keys { if key.1.aura == authority_id { @@ -1007,62 +1057,127 @@ impl pallet_btc_registration_pool::Config for Runtime { } // Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( - pub struct Runtime { - // System - System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - - // Block - Aura: pallet_aura::{Pallet, Storage, Config} = 3, - - // Consensus - Authorship: pallet_authorship::{Pallet, Storage} = 4, - Session: pallet_session::{Pallet, Call, Storage, Config, Event} = 5, - Historical: pallet_session::historical::{Pallet} = 6, - Offences: pallet_offences::{Pallet, Storage, Event} = 7, - ImOnline: pallet_im_online::{Pallet, Call, Storage, ValidateUnsigned, Config, Event} = 8, - Grandpa: pallet_grandpa::{Pallet, Call, Storage, ValidateUnsigned, Config, Event} = 9, - - // Monetary - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Config, Event} = 11, - - // Staking - RelayManager: pallet_relay_manager::{Pallet, Call, Storage, Config, Event} = 20, - BfcStaking: pallet_bfc_staking::{Pallet, Call, Storage, Config, Event} = 21, - BfcUtility: pallet_bfc_utility::{Pallet, Call, Storage, Config, Event} = 22, - BfcOffences: pallet_bfc_offences::{Pallet, Call, Storage, Config, Event} = 23, - - // Utility - Utility: pallet_utility::{Pallet, Call, Event} = 30, - Identity: pallet_identity::{Pallet, Call, Storage, Event} = 31, - - // Ethereum - EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 40, - Ethereum: pallet_ethereum::{Pallet, Call, Storage, Event, Origin, Config} = 41, - BaseFee: pallet_base_fee::{Pallet, Call, Storage, Config, Event} = 42, - - // Governance - Scheduler: pallet_scheduler::{Pallet, Storage, Event, Call} = 50, - Democracy: pallet_democracy::{Pallet, Storage, Config, Event, Call} = 51, - Council: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 52, - TechnicalCommittee: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 53, - CouncilMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 54, - TechnicalMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 55, - Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event} = 56, - Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 57, - RelayExecutive: pallet_collective::::{Pallet, Call, Storage, Origin, Event, Config} = 58, - RelayExecutiveMembership: pallet_membership::::{Pallet, Call, Storage, Event, Config} = 59, - - // Bitcoin - BtcSocketQueue: pallet_btc_socket_queue::{Pallet, Call, Storage, ValidateUnsigned, Event, Config} = 60, - BtcRegistrationPool: pallet_btc_registration_pool::{Pallet, Call, Storage, ValidateUnsigned, Event, Config} = 61, - - // Temporary - Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event} = 99, - } -); +#[frame_support::runtime] +mod runtime { + #[runtime::runtime] + #[runtime::derive( + RuntimeCall, + RuntimeEvent, + RuntimeError, + RuntimeOrigin, + RuntimeFreezeReason, + RuntimeHoldReason, + RuntimeSlashReason, + RuntimeLockId, + RuntimeTask + )] + pub struct Runtime; + + #[runtime::pallet_index(0)] + pub type System = frame_system; + + #[runtime::pallet_index(2)] + pub type Timestamp = pallet_timestamp; + + #[runtime::pallet_index(3)] + pub type Aura = pallet_aura; + + #[runtime::pallet_index(4)] + pub type Authorship = pallet_authorship; + + #[runtime::pallet_index(5)] + pub type Session = pallet_session; + + #[runtime::pallet_index(6)] + pub type Historical = pallet_session::historical; + + #[runtime::pallet_index(7)] + pub type Offences = pallet_offences; + + #[runtime::pallet_index(8)] + pub type ImOnline = pallet_im_online; + + #[runtime::pallet_index(9)] + pub type Grandpa = pallet_grandpa; + + #[runtime::pallet_index(10)] + pub type Balances = pallet_balances; + + #[runtime::pallet_index(11)] + pub type TransactionPayment = pallet_transaction_payment; + + #[runtime::pallet_index(20)] + pub type RelayManager = pallet_relay_manager; + + #[runtime::pallet_index(21)] + pub type BfcStaking = pallet_bfc_staking; + + #[runtime::pallet_index(22)] + pub type BfcUtility = pallet_bfc_utility; + + #[runtime::pallet_index(23)] + pub type BfcOffences = pallet_bfc_offences; + + #[runtime::pallet_index(30)] + pub type Utility = pallet_utility; + + #[runtime::pallet_index(31)] + pub type Identity = pallet_identity; + + #[runtime::pallet_index(32)] + pub type SafeMode = pallet_safe_mode; + + #[runtime::pallet_index(33)] + pub type TxPause = pallet_tx_pause; + + #[runtime::pallet_index(40)] + pub type EVM = pallet_evm; + + #[runtime::pallet_index(41)] + pub type Ethereum = pallet_ethereum; + + #[runtime::pallet_index(42)] + pub type BaseFee = pallet_base_fee; + + #[runtime::pallet_index(50)] + pub type Scheduler = pallet_scheduler; + + #[runtime::pallet_index(51)] + pub type Democracy = pallet_democracy; + + #[runtime::pallet_index(52)] + pub type Council = pallet_collective; + + #[runtime::pallet_index(53)] + pub type TechnicalCommittee = pallet_collective; + + #[runtime::pallet_index(54)] + pub type CouncilMembership = pallet_membership; + + #[runtime::pallet_index(55)] + pub type TechnicalMembership = pallet_membership; + + #[runtime::pallet_index(56)] + pub type Treasury = pallet_treasury; + + #[runtime::pallet_index(57)] + pub type Preimage = pallet_preimage; + + #[runtime::pallet_index(58)] + pub type RelayExecutive = pallet_collective; + + #[runtime::pallet_index(59)] + pub type RelayExecutiveMembership = pallet_membership; + + #[runtime::pallet_index(60)] + pub type BtcSocketQueue = pallet_btc_socket_queue; + + #[runtime::pallet_index(61)] + pub type BtcRegistrationPool = pallet_btc_registration_pool; + + #[runtime::pallet_index(99)] + pub type Sudo = pallet_sudo; +} bifrost_common_runtime::impl_common_runtime_apis!(); bifrost_common_runtime::impl_self_contained_call!(); diff --git a/tests/package-lock.json b/tests/package-lock.json index 1e7f62b7..076da6d6 100644 --- a/tests/package-lock.json +++ b/tests/package-lock.json @@ -1,15 +1,15 @@ { "name": "@bifrost-platform/bifrost-node", - "version": "2.0.0", + "version": "2.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@bifrost-platform/bifrost-node", - "version": "2.0.0", + "version": "2.0.1", "dependencies": { "@polkadot/api": "10.11.2", - "axios": "1.6.5", + "axios": "1.7.8", "bignumber.js": "9.1.2", "ethers": "6.13.1", "shelljs": "0.8.5", @@ -912,11 +912,12 @@ } }, "node_modules/axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -3847,11 +3848,11 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", "requires": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } diff --git a/tests/package.json b/tests/package.json index ae40303c..ef1d05fc 100644 --- a/tests/package.json +++ b/tests/package.json @@ -1,6 +1,6 @@ { "name": "@bifrost-platform/bifrost-node", - "version": "2.0.0", + "version": "2.0.1", "author": "bifrost-platform", "scripts": { "test": "mocha -r ts-node/register tests/**/**/*.ts --exit", @@ -19,7 +19,7 @@ }, "dependencies": { "@polkadot/api": "10.11.2", - "axios": "1.6.5", + "axios": "1.7.8", "bignumber.js": "9.1.2", "ethers": "6.13.1", "shelljs": "0.8.5", @@ -40,4 +40,4 @@ "ts-node-register": "1.0.0", "typescript": "5.3.3" } -} \ No newline at end of file +} diff --git a/tests/tsconfig.json b/tests/tsconfig.json index d3a948f4..10bfb9b8 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -24,7 +24,6 @@ "target": "es2017", "outDir": "build", "moduleResolution": "node", - "suppressImplicitAnyIndexErrors": true, "strict": true, "skipLibCheck": true } diff --git a/tools/package-lock.json b/tools/package-lock.json index ffe74481..f1fe1c1b 100644 --- a/tools/package-lock.json +++ b/tools/package-lock.json @@ -1,15 +1,15 @@ { "name": "@bifrost-platform/bifrost-node", - "version": "2.0.0", + "version": "2.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@bifrost-platform/bifrost-node", - "version": "2.0.0", + "version": "2.0.1", "dependencies": { "@polkadot/api": "10.11.2", - "axios": "1.6.5", + "axios": "1.7.8", "bignumber.js": "9.1.2", "gauge": "5.0.1", "shelljs": "0.8.5", @@ -812,11 +812,12 @@ } }, "node_modules/axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -2806,11 +2807,11 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", "requires": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" }, diff --git a/tools/package.json b/tools/package.json index dc1c9d0a..5832ad1d 100644 --- a/tools/package.json +++ b/tools/package.json @@ -1,6 +1,6 @@ { "name": "@bifrost-platform/bifrost-node", - "version": "2.0.0", + "version": "2.0.1", "author": "bifrost-platform", "scripts": { "set_session_keys": "ts-node src/set_session_keys.ts", @@ -17,7 +17,7 @@ }, "dependencies": { "@polkadot/api": "10.11.2", - "axios": "1.6.5", + "axios": "1.7.8", "bignumber.js": "9.1.2", "gauge": "5.0.1", "shelljs": "0.8.5", @@ -32,4 +32,4 @@ "ts-node-register": "1.0.0", "typescript": "5.3.3" } -} \ No newline at end of file +} diff --git a/tools/tsconfig.json b/tools/tsconfig.json index d3a948f4..10bfb9b8 100644 --- a/tools/tsconfig.json +++ b/tools/tsconfig.json @@ -24,7 +24,6 @@ "target": "es2017", "outDir": "build", "moduleResolution": "node", - "suppressImplicitAnyIndexErrors": true, "strict": true, "skipLibCheck": true }