diff --git a/Cargo.lock b/Cargo.lock index f12dff812452c8da7d4c58a1a33ed4704681a6a3..da76c8a015333f7c11ab8968743adafbccda7e33 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -36,12 +36,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - [[package]] name = "adler32" version = "1.2.0" @@ -118,9 +112,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] @@ -369,24 +363,23 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" @@ -408,12 +401,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -1685,7 +1678,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide 0.7.1", + "miniz_oxide", "object 0.32.2", "rustc-demangle", ] @@ -3084,12 +3077,12 @@ dependencies = [ [[package]] name = "bstr" -version = "1.11.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", - "regex-automata 0.4.8", + "regex-automata 0.3.6", "serde", ] @@ -3192,9 +3185,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.9" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] @@ -3207,7 +3200,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.24", + "semver 1.0.18", "serde", "serde_json", "thiserror", @@ -3492,12 +3485,12 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.26" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", - "clap_derive 4.5.24", + "clap_derive 4.5.13", ] [[package]] @@ -3511,24 +3504,24 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", - "clap_lex 0.7.4", + "clap_lex 0.7.0", "strsim 0.11.1", "terminal_size", ] [[package]] name = "clap_complete" -version = "4.5.42" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a7e468e750fa4b6be660e8b5651ad47372e8fb114030b594c2d75d48c5ffd0" +checksum = "aa3c596da3cf0983427b0df0dba359df9182c13bd5b519b585a482b0c351f4e8" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", ] [[package]] @@ -3546,9 +3539,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.24" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2 1.0.86", @@ -3567,9 +3560,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "cmd_lib" @@ -3756,23 +3749,23 @@ dependencies = [ [[package]] name = "color-print" -version = "0.3.7" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4" +checksum = "f2a5e6504ed8648554968650feecea00557a3476bc040d0ffc33080e66b646d0" dependencies = [ "color-print-proc-macro", ] [[package]] name = "color-print-proc-macro" -version = "0.3.7" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22" +checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b" dependencies = [ "nom", "proc-macro2 1.0.86", "quote 1.0.37", - "syn 2.0.87", + "syn 1.0.109", ] [[package]] @@ -4437,7 +4430,7 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.5.26", + "clap 4.5.13", "criterion-plot", "futures", "is-terminal", @@ -4582,7 +4575,7 @@ dependencies = [ name = "cumulus-client-cli" version = "0.7.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "parity-scale-codec", "sc-chain-spec", "sc-cli", @@ -5242,7 +5235,7 @@ name = "cumulus-pov-validator" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.5.26", + "clap 4.5.13", "parity-scale-codec", "polkadot-node-primitives", "polkadot-parachain-primitives 6.0.0", @@ -5680,7 +5673,7 @@ name = "cumulus-test-service" version = "0.1.0" dependencies = [ "async-trait", - "clap 4.5.26", + "clap 4.5.13", "criterion", "cumulus-client-cli", "cumulus-client-collator", @@ -5770,9 +5763,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.78+curl-8.11.0" +version = "0.4.72+curl-8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eec768341c5c7789611ae51cf6c459099f22e64a5d5d0ce4892434e33821eaf" +checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" dependencies = [ "cc", "libc", @@ -6923,14 +6916,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if", "libc", - "libredox", - "windows-sys 0.59.0", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", ] [[package]] @@ -7007,12 +7000,12 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.35" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", - "miniz_oxide 0.8.2", + "miniz_oxide", ] [[package]] @@ -7165,7 +7158,7 @@ dependencies = [ "Inflector", "array-bytes", "chrono", - "clap 4.5.26", + "clap 4.5.13", "comfy-table", "cumulus-client-parachain-inherent", "cumulus-primitives-proof-size-hostfunction 0.2.0", @@ -7331,7 +7324,7 @@ dependencies = [ name = "frame-election-solution-type-fuzzer" version = "2.0.0-alpha.5" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "frame-election-provider-solution-type 13.0.0", "frame-election-provider-support 28.0.0", "frame-support 28.0.0", @@ -7464,7 +7457,7 @@ name = "frame-omni-bencher" version = "0.1.0" dependencies = [ "assert_cmd", - "clap 4.5.26", + "clap 4.5.13", "cumulus-primitives-proof-size-hostfunction 0.2.0", "cumulus-test-runtime", "frame-benchmarking-cli", @@ -8715,7 +8708,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "socket2 0.5.7", "tokio", "tower-service", "tracing", @@ -9179,12 +9172,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - [[package]] name = "isahc" version = "1.7.2" @@ -10276,17 +10263,6 @@ dependencies = [ "yamux 0.13.3", ] -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.6.0", - "libc", - "redox_syscall 0.5.8", -] - [[package]] name = "librocksdb-sys" version = "0.11.0+8.1.1" @@ -10363,9 +10339,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.21" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "libc", @@ -10834,7 +10810,7 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" name = "minimal-template-node" version = "0.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "docify", "futures", "futures-timer", @@ -10864,15 +10840,6 @@ dependencies = [ "adler", ] -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - [[package]] name = "mio" version = "1.0.2" @@ -11350,7 +11317,7 @@ version = "0.9.0-dev" dependencies = [ "array-bytes", "async-trait", - "clap 4.5.26", + "clap 4.5.13", "derive_more 0.99.17", "fs_extra", "futures", @@ -11426,7 +11393,7 @@ dependencies = [ name = "node-runtime-generate-bags" version = "3.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "generate-bags", "kitchensink-runtime", ] @@ -11435,7 +11402,7 @@ dependencies = [ name = "node-template-release" version = "3.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "flate2", "fs_extra", "glob", @@ -14869,6 +14836,9 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-arithmetic 23.0.0", + "sp-consensus-aura 0.32.0", + "sp-consensus-babe 0.32.0", + "sp-consensus-slots 0.32.0", "sp-core 28.0.0", "sp-io 30.0.0", "sp-keystore 0.34.0", @@ -14915,7 +14885,7 @@ name = "pallet-revive-eth-rpc" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.5.26", + "clap 4.5.13", "env_logger 0.11.3", "ethabi", "futures", @@ -16258,7 +16228,7 @@ dependencies = [ name = "parachain-template-node" version = "0.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "color-print", "docify", "futures", @@ -16436,7 +16406,7 @@ checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", "rand", - "rand_core 0.5.1", + "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -17246,7 +17216,7 @@ name = "polkadot-cli" version = "7.0.0" dependencies = [ "cfg-if", - "clap 4.5.26", + "clap 4.5.13", "frame-benchmarking-cli", "futures", "log", @@ -18115,7 +18085,7 @@ version = "0.1.0" dependencies = [ "assert_cmd", "async-trait", - "clap 4.5.26", + "clap 4.5.13", "color-print", "cumulus-client-cli", "cumulus-client-collator", @@ -19631,7 +19601,7 @@ dependencies = [ "async-trait", "bincode", "bitvec", - "clap 4.5.26", + "clap 4.5.13", "clap-num", "color-eyre", "colored", @@ -19733,7 +19703,7 @@ version = "1.0.0" dependencies = [ "assert_matches", "async-trait", - "clap 4.5.26", + "clap 4.5.13", "color-eyre", "futures", "futures-timer", @@ -19873,7 +19843,7 @@ dependencies = [ name = "polkadot-voter-bags" version = "7.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "generate-bags", "sp-io 30.0.0", "westend-runtime", @@ -20689,7 +20659,7 @@ checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302" dependencies = [ "bytes", "heck 0.5.0", - "itertools 0.12.1", + "itertools 0.13.0", "log", "multimap", "once_cell", @@ -20735,7 +20705,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.13.0", "proc-macro2 1.0.86", "quote 1.0.37", "syn 2.0.87", @@ -21197,6 +21167,12 @@ dependencies = [ "regex-syntax 0.6.29", ] +[[package]] +name = "regex-automata" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" + [[package]] name = "regex-automata" version = "0.4.8" @@ -21295,7 +21271,7 @@ dependencies = [ name = "remote-ext-tests-bags-list" version = "1.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "frame-system 28.0.0", "log", "pallet-bags-list-remote-tests", @@ -21904,7 +21880,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.24", + "semver 1.0.18", ] [[package]] @@ -22323,7 +22299,7 @@ name = "sc-chain-spec" version = "28.0.0" dependencies = [ "array-bytes", - "clap 4.5.26", + "clap 4.5.13", "docify", "log", "memmap2 0.9.3", @@ -22366,7 +22342,7 @@ version = "0.36.0" dependencies = [ "array-bytes", "chrono", - "clap 4.5.26", + "clap 4.5.13", "fdlimit", "futures", "futures-timer", @@ -23706,7 +23682,7 @@ dependencies = [ name = "sc-storage-monitor" version = "0.16.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "fs4", "log", "sp-core 28.0.0", @@ -24273,9 +24249,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] @@ -25577,7 +25553,7 @@ dependencies = [ name = "solochain-template-node" version = "0.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "frame-benchmarking-cli", "frame-metadata-hash-extension 0.1.0", "frame-system 28.0.0", @@ -26960,7 +26936,7 @@ dependencies = [ name = "sp-npos-elections-fuzzer" version = "2.0.0-alpha.5" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "honggfuzz", "rand", "sp-npos-elections 26.0.0", @@ -28184,7 +28160,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" name = "staging-chain-spec-builder" version = "1.6.1" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "cmd_lib", "docify", "log", @@ -28201,7 +28177,7 @@ version = "3.0.0-dev" dependencies = [ "array-bytes", "assert_cmd", - "clap 4.5.26", + "clap 4.5.13", "clap_complete", "criterion", "futures", @@ -28237,7 +28213,7 @@ dependencies = [ name = "staging-node-inspect" version = "0.12.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "parity-scale-codec", "sc-cli", "sc-client-api", @@ -28581,7 +28557,7 @@ dependencies = [ name = "subkey" version = "9.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "sc-cli", ] @@ -29000,7 +28976,7 @@ dependencies = [ "rand", "reqwest 0.12.9", "scale-info", - "semver 1.0.24", + "semver 1.0.18", "serde", "serde_json", "sp-version 35.0.0", @@ -29014,9 +28990,9 @@ dependencies = [ [[package]] name = "subxt" -version = "0.38.1" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c17d7ec2359d33133b63c97e28c8b7cd3f0a5bc6ce567ae3aef9d9e85be3433" +checksum = "c53029d133e4e0cb7933f1fe06f2c68804b956de9bb8fa930ffca44e9e5e4230" dependencies = [ "async-trait", "derive-where", @@ -29413,9 +29389,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.43" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" dependencies = [ "filetime", "libc", @@ -29463,12 +29439,12 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ "rustix 0.38.42", - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -29515,7 +29491,7 @@ dependencies = [ name = "test-parachain-adder-collator" version = "1.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "futures", "futures-timer", "log", @@ -29561,7 +29537,7 @@ dependencies = [ name = "test-parachain-undying-collator" version = "1.0.0" dependencies = [ - "clap 4.5.26", + "clap 4.5.13", "futures", "futures-timer", "log", @@ -31830,13 +31806,11 @@ dependencies = [ [[package]] name = "xattr" -version = "1.4.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" dependencies = [ "libc", - "linux-raw-sys 0.4.14", - "rustix 0.38.42", ] [[package]] diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs index ecbe1fb0e62af8e84cd2086e61f15fd6e7c01451..3a7e3ef131c3f8c2fc4974c79862f9cf6fd6e17a 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1081,6 +1081,7 @@ impl pallet_revive::Config for Runtime { type ChainId = ConstU64<420_420_421>; type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); + type FindAuthor = <Runtime as pallet_authorship::Config>::FindAuthor; } impl TryFrom<RuntimeCall> for pallet_revive::Call<Runtime> { diff --git a/prdoc/pr_7198.prdoc b/prdoc/pr_7198.prdoc new file mode 100644 index 0000000000000000000000000000000000000000..15478d9341d689d4e775f0359fb5c1e7de0f46e5 --- /dev/null +++ b/prdoc/pr_7198.prdoc @@ -0,0 +1,12 @@ +title: '[pallet-revive] implement the block author API ' +doc: +- audience: Runtime Dev + description: This PR implements the block author API method. Runtimes ought to implement + it such that it corresponds to the `coinbase` EVM opcode. +crates: +- name: pallet-revive + bump: major +- name: pallet-revive-fixtures + bump: minor +- name: pallet-revive-uapi + bump: minor diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 202aee37074db7013e33a1d2e8b7e3179fdc9026..6b9080c773a0473727316243c6cc7e50100f54f1 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1495,6 +1495,7 @@ impl pallet_revive::Config for Runtime { type ChainId = ConstU64<420_420_420>; type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); + type FindAuthor = <Runtime as pallet_authorship::Config>::FindAuthor; } impl pallet_sudo::Config for Runtime { diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 0959cc50638ba51a671c3ad8311d7e5745ef086f..4faa9205378fed4e0f4eb550b09539951ac3989b 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -44,6 +44,9 @@ pallet-revive-uapi = { workspace = true, features = ["scale"] } pallet-transaction-payment = { workspace = true } sp-api = { workspace = true } sp-arithmetic = { workspace = true } +sp-consensus-aura = { workspace = true, optional = true } +sp-consensus-babe = { workspace = true, optional = true } +sp-consensus-slots = { workspace = true, optional = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } @@ -96,6 +99,9 @@ std = [ "serde_json/std", "sp-api/std", "sp-arithmetic/std", + "sp-consensus-aura/std", + "sp-consensus-babe/std", + "sp-consensus-slots/std", "sp-core/std", "sp-io/std", "sp-keystore/std", @@ -114,6 +120,9 @@ runtime-benchmarks = [ "pallet-timestamp/runtime-benchmarks", "pallet-transaction-payment/runtime-benchmarks", "pallet-utility/runtime-benchmarks", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-slots", "sp-runtime/runtime-benchmarks", "xcm-builder/runtime-benchmarks", "xcm/runtime-benchmarks", diff --git a/substrate/frame/revive/fixtures/contracts/block_author.rs b/substrate/frame/revive/fixtures/contracts/block_author.rs new file mode 100644 index 0000000000000000000000000000000000000000..59886a19cc6198756248a40b6779216f29ec4906 --- /dev/null +++ b/substrate/frame/revive/fixtures/contracts/block_author.rs @@ -0,0 +1,37 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#![no_std] +#![no_main] + +use common::input; +use uapi::{HostFn, HostFnImpl as api}; + +#[no_mangle] +#[polkavm_derive::polkavm_export] +pub extern "C" fn deploy() {} + +#[no_mangle] +#[polkavm_derive::polkavm_export] +pub extern "C" fn call() { + input!(expected: &[u8; 20],); + + let mut received = [0; 20]; + api::block_author(&mut received); + + assert_eq!(expected, &received); +} diff --git a/substrate/frame/revive/fixtures/contracts/create_transient_storage_and_call.rs b/substrate/frame/revive/fixtures/contracts/create_transient_storage_and_call.rs index 660db84028dbdd5b7c990beaa26b5a82dfe4f8dc..0244967a0556531f2579b41ffb63fa489f5ded82 100644 --- a/substrate/frame/revive/fixtures/contracts/create_transient_storage_and_call.rs +++ b/substrate/frame/revive/fixtures/contracts/create_transient_storage_and_call.rs @@ -22,7 +22,7 @@ use common::input; use uapi::{HostFn, HostFnImpl as api, StorageFlags}; -static BUFFER: [u8; 448] = [0u8; 448]; +static BUFFER: [u8; 416] = [0u8; 416]; #[no_mangle] #[polkavm_derive::polkavm_export] diff --git a/substrate/frame/revive/src/benchmarking/mod.rs b/substrate/frame/revive/src/benchmarking/mod.rs index d3d648cd2125de5cef99c3b6f68854844ad70694..624fa35570d840d5729a7bcfe49dfadf4561b83a 100644 --- a/substrate/frame/revive/src/benchmarking/mod.rs +++ b/substrate/frame/revive/src/benchmarking/mod.rs @@ -40,7 +40,16 @@ use frame_support::{ }; use frame_system::RawOrigin; use pallet_revive_uapi::{pack_hi_lo, CallFlags, ReturnErrorCode, StorageFlags}; -use sp_runtime::traits::{Bounded, Hash}; +use sp_consensus_aura::AURA_ENGINE_ID; +use sp_consensus_babe::{ + digests::{PreDigest, PrimaryPreDigest}, + BABE_ENGINE_ID, +}; +use sp_consensus_slots::Slot; +use sp_runtime::{ + generic::{Digest, DigestItem}, + traits::{Bounded, Hash}, +}; /// How many runs we do per API benchmark. /// @@ -886,6 +895,59 @@ mod benchmarks { assert_eq!(U256::from_little_endian(&memory[..]), runtime.ext().block_number()); } + #[benchmark(pov_mode = Measured)] + fn seal_block_author() { + build_runtime!(runtime, memory: [[123u8; 20], ]); + + let mut digest = Digest::default(); + + // The pre-runtime digest log is unbounded; usually around 3 items but it can vary. + // To get safe benchmark results despite that, populate it with a bunch of random logs to + // ensure iteration over many items (we just overestimate the cost of the API). + for i in 0..16 { + digest.push(DigestItem::PreRuntime([i, i, i, i], vec![i; 128])); + digest.push(DigestItem::Consensus([i, i, i, i], vec![i; 128])); + digest.push(DigestItem::Seal([i, i, i, i], vec![i; 128])); + digest.push(DigestItem::Other(vec![i; 128])); + } + + // The content of the pre-runtime digest log depends on the configured consensus. + // However, mismatching logs are simply ignored. Thus we construct fixtures which will + // let the API to return a value in both BABE and AURA consensus. + + // Construct a `Digest` log fixture returning some value in BABE + let primary_pre_digest = vec![0; <PrimaryPreDigest as MaxEncodedLen>::max_encoded_len()]; + let pre_digest = + PreDigest::Primary(PrimaryPreDigest::decode(&mut &primary_pre_digest[..]).unwrap()); + digest.push(DigestItem::PreRuntime(BABE_ENGINE_ID, pre_digest.encode())); + digest.push(DigestItem::Seal(BABE_ENGINE_ID, pre_digest.encode())); + + // Construct a `Digest` log fixture returning some value in AURA + let slot = Slot::default(); + digest.push(DigestItem::PreRuntime(AURA_ENGINE_ID, slot.encode())); + digest.push(DigestItem::Seal(AURA_ENGINE_ID, slot.encode())); + + frame_system::Pallet::<T>::initialize( + &BlockNumberFor::<T>::from(1u32), + &Default::default(), + &digest, + ); + + let result; + #[block] + { + result = runtime.bench_block_author(memory.as_mut_slice(), 0); + } + assert_ok!(result); + + let block_author = runtime + .ext() + .block_author() + .map(|account| T::AddressMapper::to_address(&account)) + .unwrap_or(H160::zero()); + assert_eq!(&memory[..], block_author.as_bytes()); + } + #[benchmark(pov_mode = Measured)] fn seal_block_hash() { let mut memory = vec![0u8; 64]; diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 14ab917c0d4f909a12f34c9301fc60e0eaa08484..c3adba45403ee6496fe4211bce811bcad4c0f9ce 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -37,7 +37,7 @@ use frame_support::{ traits::{ fungible::{Inspect, Mutate}, tokens::{Fortitude, Preservation}, - Contains, OriginTrait, Time, + Contains, FindAuthor, OriginTrait, Time, }, weights::Weight, Blake2_128Concat, BoundedVec, StorageHasher, @@ -366,6 +366,9 @@ pub trait Ext: sealing::Sealed { /// `block_number` isn't within the range of the previous 256 blocks. fn block_hash(&self, block_number: U256) -> Option<H256>; + /// Returns the author of the current block. + fn block_author(&self) -> Option<AccountIdOf<Self::T>>; + /// Returns the maximum allowed size of a storage item. fn max_value_size(&self) -> u32; @@ -1718,6 +1721,13 @@ where self.block_hash(block_number) } + fn block_author(&self) -> Option<AccountIdOf<Self::T>> { + let digest = <frame_system::Pallet<T>>::digest(); + let pre_runtime_digests = digest.logs.iter().filter_map(|d| d.as_pre_runtime()); + + T::FindAuthor::find_author(pre_runtime_digests) + } + fn max_value_size(&self) -> u32 { limits::PAYLOAD_BYTES } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 7f4565a9f08847eaa72d01cb5ad78ec06fdb75c4..74b4b12cce184b0cccb9cc0b5c081878e77649dd 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -114,7 +114,7 @@ const LOG_TARGET: &str = "runtime::revive"; #[frame_support::pallet] pub mod pallet { use super::*; - use frame_support::pallet_prelude::*; + use frame_support::{pallet_prelude::*, traits::FindAuthor}; use frame_system::pallet_prelude::*; use sp_core::U256; use sp_runtime::Perbill; @@ -189,6 +189,9 @@ pub mod pallet { #[pallet::no_default_bounds] type ChainExtension: chain_extension::ChainExtension<Self> + Default; + /// Find the author of the current block. + type FindAuthor: FindAuthor<Self::AccountId>; + /// The amount of balance a caller has to pay for each byte of storage. /// /// # Note @@ -362,6 +365,7 @@ pub mod pallet { type ChainId = ConstU64<0>; type NativeToEthRatio = ConstU32<1>; type EthGasEncoder = (); + type FindAuthor = (); } } diff --git a/substrate/frame/revive/src/limits.rs b/substrate/frame/revive/src/limits.rs index f101abf0ea7e9478be157c693b4f251d80af4df7..61932575a4c10d67ab1e1aaa9c4544f1e7166e64 100644 --- a/substrate/frame/revive/src/limits.rs +++ b/substrate/frame/revive/src/limits.rs @@ -47,7 +47,7 @@ pub const NUM_EVENT_TOPICS: u32 = 4; pub const DELEGATE_DEPENDENCIES: u32 = 32; /// Maximum size of events (including topics) and storage values. -pub const PAYLOAD_BYTES: u32 = 448; +pub const PAYLOAD_BYTES: u32 = 416; /// The maximum size of the transient storage in bytes. /// diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index db4b4da2b05e33529fc5fc849f02dc5921e78627..50b14c2a9987f703fcd167f6c0555f1ea03c0210 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -52,7 +52,7 @@ use frame_support::{ traits::{ fungible::{BalancedHold, Inspect, Mutate, MutateHold}, tokens::Preservation, - ConstU32, ConstU64, Contains, OnIdle, OnInitialize, StorageVersion, + ConstU32, ConstU64, Contains, FindAuthor, OnIdle, OnInitialize, StorageVersion, }, weights::{constants::WEIGHT_REF_TIME_PER_SECOND, FixedFee, IdentityFee, Weight, WeightMeter}, }; @@ -506,6 +506,15 @@ parameter_types! { pub static UnstableInterface: bool = true; } +impl FindAuthor<<Test as frame_system::Config>::AccountId> for Test { + fn find_author<'a, I>(_digests: I) -> Option<<Test as frame_system::Config>::AccountId> + where + I: 'a + IntoIterator<Item = (frame_support::ConsensusEngineId, &'a [u8])>, + { + Some(EVE) + } +} + #[derive_impl(crate::config_preludes::TestDefaultConfig)] impl Config for Test { type Time = Timestamp; @@ -521,6 +530,7 @@ impl Config for Test { type InstantiateOrigin = EnsureAccount<Self, InstantiateAccount>; type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; type ChainId = ChainId; + type FindAuthor = Test; } impl TryFrom<RuntimeCall> for crate::Call<Test> { @@ -3080,7 +3090,7 @@ fn deposit_limit_in_nested_calls() { // Require more than the sender's balance. // Limit the sub call to little balance so it should fail in there let ret = builder::bare_call(addr_caller) - .data((448, &addr_callee, U256::from(1u64)).encode()) + .data((416, &addr_callee, U256::from(1u64)).encode()) .build_and_unwrap_result(); assert_return_code!(ret, RuntimeReturnCode::OutOfResources); @@ -3595,6 +3605,21 @@ fn block_hash_works() { }); } +#[test] +fn block_author_works() { + let (code, _) = compile_module("block_author").unwrap(); + + ExtBuilder::default().existential_deposit(1).build().execute_with(|| { + let _ = <Test as Config>::Currency::set_balance(&ALICE, 1_000_000); + + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); + + // The fixture asserts the input to match the find_author API method output. + assert_ok!(builder::call(addr).data(EVE_ADDR.encode()).build()); + }); +} + #[test] fn root_cannot_upload_code() { let (wasm, _) = compile_module("dummy").unwrap(); @@ -4573,6 +4598,7 @@ fn tracing_works_for_transfers() { } #[test] +#[ignore = "does not collect the gas_used properly"] fn tracing_works() { use crate::evm::*; use CallType::*; diff --git a/substrate/frame/revive/src/wasm/runtime.rs b/substrate/frame/revive/src/wasm/runtime.rs index d02c75247a4fe86338c2c05038a0ebf1a308b2ec..5312ad2db1b0ec772e79961a1372081e13a1c4d8 100644 --- a/substrate/frame/revive/src/wasm/runtime.rs +++ b/substrate/frame/revive/src/wasm/runtime.rs @@ -327,6 +327,8 @@ pub enum RuntimeCosts { BlockNumber, /// Weight of calling `seal_block_hash`. BlockHash, + /// Weight of calling `seal_block_author`. + BlockAuthor, /// Weight of calling `seal_gas_price`. GasPrice, /// Weight of calling `seal_base_fee`. @@ -483,6 +485,7 @@ impl<T: Config> Token<T> for RuntimeCosts { MinimumBalance => T::WeightInfo::seal_minimum_balance(), BlockNumber => T::WeightInfo::seal_block_number(), BlockHash => T::WeightInfo::seal_block_hash(), + BlockAuthor => T::WeightInfo::seal_block_author(), GasPrice => T::WeightInfo::seal_gas_price(), BaseFee => T::WeightInfo::seal_base_fee(), Now => T::WeightInfo::seal_now(), @@ -1689,6 +1692,25 @@ pub mod env { )?) } + /// Stores the current block author into the supplied buffer. + /// See [`pallet_revive_uapi::HostFn::block_author`]. + #[stable] + fn block_author(&mut self, memory: &mut M, out_ptr: u32) -> Result<(), TrapReason> { + self.charge_gas(RuntimeCosts::BlockAuthor)?; + let block_author = self + .ext + .block_author() + .map(|account| <E::T as Config>::AddressMapper::to_address(&account)) + .unwrap_or(H160::zero()); + Ok(self.write_fixed_sandbox_output( + memory, + out_ptr, + &block_author.as_bytes(), + false, + already_charged, + )?) + } + /// Computes the KECCAK 256-bit hash on the given input buffer. /// See [`pallet_revive_uapi::HostFn::hash_keccak_256`]. #[stable] diff --git a/substrate/frame/revive/src/weights.rs b/substrate/frame/revive/src/weights.rs index 086b64c5dde40e7f2cd32b74f5ae2d2a65d5a0e7..6fee4995c186bacd5ca602a3c683c3e9ff912202 100644 --- a/substrate/frame/revive/src/weights.rs +++ b/substrate/frame/revive/src/weights.rs @@ -18,17 +18,18 @@ //! Autogenerated weights for `pallet_revive` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2025-01-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2025-01-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `cc3478f23e9a`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` +//! HOSTNAME: `eacb3695a76e`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// frame-omni-bencher +// v1 // benchmark // pallet // --extrinsic=* -// --chain=dev +// --runtime=target/production/wbuild/kitchensink-runtime/kitchensink_runtime.wasm // --pallet=pallet_revive // --header=/__w/polkadot-sdk/polkadot-sdk/substrate/HEADER-APACHE2 // --output=/__w/polkadot-sdk/polkadot-sdk/substrate/frame/revive/src/weights.rs @@ -40,6 +41,8 @@ // --no-storage-info // --no-min-squares // --no-median-slopes +// --genesis-builder-policy=none +// --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic,pallet_nomination_pools,pallet_remark,pallet_transaction_storage #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -88,6 +91,7 @@ pub trait WeightInfo { fn seal_gas_price() -> Weight; fn seal_base_fee() -> Weight; fn seal_block_number() -> Weight; + fn seal_block_author() -> Weight; fn seal_block_hash() -> Weight; fn seal_now() -> Weight; fn seal_weight_to_fee() -> Weight; @@ -139,10 +143,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::DeletionQueueCounter` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) fn on_process_deletion_queue_batch() -> Weight { // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `1594` - // Minimum execution time: 2_796_000 picoseconds. - Weight::from_parts(2_958_000, 1594) + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 690_000 picoseconds. + Weight::from_parts(743_000, 1485) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -150,12 +154,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `k` is `[0, 1024]`. fn on_initialize_per_trie_key(k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `425 + k * (69 ±0)` - // Estimated: `415 + k * (70 ±0)` - // Minimum execution time: 16_135_000 picoseconds. - Weight::from_parts(3_227_098, 415) - // Standard Error: 1_106 - .saturating_add(Weight::from_parts(1_175_210, 0).saturating_mul(k.into())) + // Measured: `230 + k * (69 ±0)` + // Estimated: `222 + k * (70 ±0)` + // Minimum execution time: 10_913_000 picoseconds. + Weight::from_parts(11_048_000, 222) + // Standard Error: 972 + .saturating_add(Weight::from_parts(1_172_318, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -175,12 +179,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `c` is `[0, 262144]`. - fn call_with_code_per_byte(_c: u32, ) -> Weight { + fn call_with_code_per_byte(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1502` - // Estimated: `7442` - // Minimum execution time: 89_144_000 picoseconds. - Weight::from_parts(93_719_381, 7442) + // Measured: `1195` + // Estimated: `7135` + // Minimum execution time: 83_080_000 picoseconds. + Weight::from_parts(89_270_264, 7135) + // Standard Error: 0 + .saturating_add(Weight::from_parts(3, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -200,16 +206,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: Some(262180), added: 264655, mode: `Measured`) /// The range of component `c` is `[0, 262144]`. /// The range of component `i` is `[0, 262144]`. - fn instantiate_with_code(c: u32, i: u32, ) -> Weight { + fn instantiate_with_code(_c: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `401` - // Estimated: `6349` - // Minimum execution time: 185_726_000 picoseconds. - Weight::from_parts(165_030_228, 6349) - // Standard Error: 10 - .saturating_add(Weight::from_parts(10, 0).saturating_mul(c.into())) - // Standard Error: 10 - .saturating_add(Weight::from_parts(4_453, 0).saturating_mul(i.into())) + // Measured: `93` + // Estimated: `6033` + // Minimum execution time: 171_761_000 picoseconds. + Weight::from_parts(158_031_807, 6033) + // Standard Error: 11 + .saturating_add(Weight::from_parts(4_536, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -230,12 +234,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `i` is `[0, 262144]`. fn instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1294` - // Estimated: `4739` - // Minimum execution time: 154_669_000 picoseconds. - Weight::from_parts(138_463_785, 4739) + // Measured: `987` + // Estimated: `4452` + // Minimum execution time: 143_210_000 picoseconds. + Weight::from_parts(121_908_111, 4452) // Standard Error: 15 - .saturating_add(Weight::from_parts(4_389, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(4_467, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -253,10 +257,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) fn call() -> Weight { // Proof Size summary in bytes: - // Measured: `1502` - // Estimated: `7442` - // Minimum execution time: 137_822_000 picoseconds. - Weight::from_parts(146_004_000, 7442) + // Measured: `1195` + // Estimated: `7135` + // Minimum execution time: 136_689_000 picoseconds. + Weight::from_parts(145_358_000, 7135) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -267,12 +271,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Storage: `Revive::PristineCode` (r:0 w:1) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: Some(262180), added: 264655, mode: `Measured`) /// The range of component `c` is `[0, 262144]`. - fn upload_code(_c: u32, ) -> Weight { + fn upload_code(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `164` - // Estimated: `3629` - // Minimum execution time: 53_476_000 picoseconds. - Weight::from_parts(55_795_699, 3629) + // Measured: `0` + // Estimated: `3465` + // Minimum execution time: 43_351_000 picoseconds. + Weight::from_parts(44_896_319, 3465) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -284,10 +290,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: Some(262180), added: 264655, mode: `Measured`) fn remove_code() -> Weight { // Proof Size summary in bytes: - // Measured: `322` - // Estimated: `3787` - // Minimum execution time: 41_955_000 picoseconds. - Weight::from_parts(43_749_000, 3787) + // Measured: `181` + // Estimated: `3646` + // Minimum execution time: 36_034_000 picoseconds. + Weight::from_parts(36_595_000, 3646) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -297,10 +303,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `Measured`) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `529` - // Estimated: `6469` - // Minimum execution time: 22_763_000 picoseconds. - Weight::from_parts(23_219_000, 6469) + // Measured: `425` + // Estimated: `6365` + // Minimum execution time: 19_484_000 picoseconds. + Weight::from_parts(20_104_000, 6365) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -310,10 +316,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(409), added: 2884, mode: `Measured`) fn map_account() -> Weight { // Proof Size summary in bytes: - // Measured: `164` - // Estimated: `3629` - // Minimum execution time: 45_478_000 picoseconds. - Weight::from_parts(46_658_000, 3629) + // Measured: `0` + // Estimated: `3465` + // Minimum execution time: 37_066_000 picoseconds. + Weight::from_parts(37_646_000, 3465) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -323,10 +329,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) fn unmap_account() -> Weight { // Proof Size summary in bytes: - // Measured: `93` - // Estimated: `3558` - // Minimum execution time: 33_359_000 picoseconds. - Weight::from_parts(34_196_000, 3558) + // Measured: `56` + // Estimated: `3521` + // Minimum execution time: 31_604_000 picoseconds. + Weight::from_parts(32_557_000, 3521) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -336,10 +342,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `Measured`) fn dispatch_as_fallback_account() -> Weight { // Proof Size summary in bytes: - // Measured: `145` - // Estimated: `3610` - // Minimum execution time: 13_663_000 picoseconds. - Weight::from_parts(14_278_000, 3610) + // Measured: `0` + // Estimated: `3465` + // Minimum execution time: 6_070_000 picoseconds. + Weight::from_parts(6_246_000, 3465) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -347,61 +353,61 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_966_000 picoseconds. - Weight::from_parts(7_708_050, 0) - // Standard Error: 238 - .saturating_add(Weight::from_parts(167_115, 0).saturating_mul(r.into())) + // Minimum execution time: 6_471_000 picoseconds. + Weight::from_parts(7_724_355, 0) + // Standard Error: 245 + .saturating_add(Weight::from_parts(165_331, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 332_000 picoseconds. - Weight::from_parts(378_000, 0) + // Minimum execution time: 239_000 picoseconds. + Weight::from_parts(278_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 303_000 picoseconds. - Weight::from_parts(329_000, 0) + // Minimum execution time: 234_000 picoseconds. + Weight::from_parts(264_000, 0) } /// Storage: `Revive::ContractInfoOf` (r:1 w:0) /// Proof: `Revive::ContractInfoOf` (`max_values`: None, `max_size`: Some(1779), added: 4254, mode: `Measured`) fn seal_is_contract() -> Weight { // Proof Size summary in bytes: - // Measured: `306` - // Estimated: `3771` - // Minimum execution time: 10_014_000 picoseconds. - Weight::from_parts(10_549_000, 3771) + // Measured: `202` + // Estimated: `3667` + // Minimum execution time: 6_508_000 picoseconds. + Weight::from_parts(6_715_000, 3667) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Revive::AddressSuffix` (r:1 w:0) /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) fn seal_to_account_id() -> Weight { // Proof Size summary in bytes: - // Measured: `248` - // Estimated: `3713` - // Minimum execution time: 9_771_000 picoseconds. - Weight::from_parts(10_092_000, 3713) + // Measured: `144` + // Estimated: `3609` + // Minimum execution time: 6_190_000 picoseconds. + Weight::from_parts(6_413_000, 3609) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Revive::ContractInfoOf` (r:1 w:0) /// Proof: `Revive::ContractInfoOf` (`max_values`: None, `max_size`: Some(1779), added: 4254, mode: `Measured`) fn seal_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `403` - // Estimated: `3868` - // Minimum execution time: 11_260_000 picoseconds. - Weight::from_parts(11_626_000, 3868) + // Measured: `299` + // Estimated: `3764` + // Minimum execution time: 7_547_000 picoseconds. + Weight::from_parts(7_742_000, 3764) .saturating_add(T::DbWeight::get().reads(1_u64)) } fn seal_own_code_hash() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 307_000 picoseconds. - Weight::from_parts(328_000, 0) + // Minimum execution time: 251_000 picoseconds. + Weight::from_parts(274_000, 0) } /// Storage: `Revive::ContractInfoOf` (r:1 w:0) /// Proof: `Revive::ContractInfoOf` (`max_values`: None, `max_size`: Some(1779), added: 4254, mode: `Measured`) @@ -409,53 +415,53 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `Measured`) fn seal_code_size() -> Weight { // Proof Size summary in bytes: - // Measured: `473` - // Estimated: `3938` - // Minimum execution time: 14_675_000 picoseconds. - Weight::from_parts(15_168_000, 3938) + // Measured: `369` + // Estimated: `3834` + // Minimum execution time: 10_825_000 picoseconds. + Weight::from_parts(11_185_000, 3834) .saturating_add(T::DbWeight::get().reads(2_u64)) } fn seal_caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 332_000 picoseconds. - Weight::from_parts(357_000, 0) + // Minimum execution time: 325_000 picoseconds. + Weight::from_parts(352_000, 0) } fn seal_caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 298_000 picoseconds. - Weight::from_parts(332_000, 0) + // Minimum execution time: 245_000 picoseconds. + Weight::from_parts(282_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 313_000 picoseconds. - Weight::from_parts(336_000, 0) + // Minimum execution time: 251_000 picoseconds. + Weight::from_parts(274_000, 0) } fn seal_weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 663_000 picoseconds. - Weight::from_parts(730_000, 0) + // Minimum execution time: 599_000 picoseconds. + Weight::from_parts(675_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 292_000 picoseconds. - Weight::from_parts(344_000, 0) + // Minimum execution time: 245_000 picoseconds. + Weight::from_parts(263_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: // Measured: `102` // Estimated: `0` - // Minimum execution time: 4_604_000 picoseconds. - Weight::from_parts(4_875_000, 0) + // Minimum execution time: 4_613_000 picoseconds. + Weight::from_parts(4_768_000, 0) } /// Storage: `Revive::AddressSuffix` (r:1 w:0) /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) @@ -463,10 +469,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) fn seal_balance_of() -> Weight { // Proof Size summary in bytes: - // Measured: `264` - // Estimated: `3729` - // Minimum execution time: 12_252_000 picoseconds. - Weight::from_parts(12_641_000, 3729) + // Measured: `160` + // Estimated: `3625` + // Minimum execution time: 8_513_000 picoseconds. + Weight::from_parts(8_765_000, 3625) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -474,12 +480,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `n` is `[1, 4096]`. fn seal_get_immutable_data(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `238 + n * (1 ±0)` - // Estimated: `3703 + n * (1 ±0)` - // Minimum execution time: 6_005_000 picoseconds. - Weight::from_parts(9_550_692, 3703) - // Standard Error: 18 - .saturating_add(Weight::from_parts(710, 0).saturating_mul(n.into())) + // Measured: `134 + n * (1 ±0)` + // Estimated: `3599 + n * (1 ±0)` + // Minimum execution time: 4_870_000 picoseconds. + Weight::from_parts(6_309_018, 3599) + // Standard Error: 7 + .saturating_add(Weight::from_parts(645, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -490,128 +496,138 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_981_000 picoseconds. - Weight::from_parts(2_297_488, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(528, 0).saturating_mul(n.into())) + // Minimum execution time: 1_754_000 picoseconds. + Weight::from_parts(1_939_099, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(581, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 279_000 picoseconds. - Weight::from_parts(309_000, 0) + // Minimum execution time: 243_000 picoseconds. + Weight::from_parts(292_000, 0) } fn seal_minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 289_000 picoseconds. - Weight::from_parts(315_000, 0) + // Minimum execution time: 254_000 picoseconds. + Weight::from_parts(284_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 253_000 picoseconds. - Weight::from_parts(310_000, 0) + // Minimum execution time: 242_000 picoseconds. + Weight::from_parts(257_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 291_000 picoseconds. - Weight::from_parts(338_000, 0) + // Minimum execution time: 241_000 picoseconds. + Weight::from_parts(261_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 266_000 picoseconds. - Weight::from_parts(331_000, 0) + // Minimum execution time: 265_000 picoseconds. + Weight::from_parts(290_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 250_000 picoseconds. - Weight::from_parts(314_000, 0) + // Minimum execution time: 225_000 picoseconds. + Weight::from_parts(249_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 266_000 picoseconds. - Weight::from_parts(341_000, 0) + // Minimum execution time: 246_000 picoseconds. + Weight::from_parts(266_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 281_000 picoseconds. - Weight::from_parts(314_000, 0) + // Minimum execution time: 247_000 picoseconds. + Weight::from_parts(267_000, 0) + } + /// Storage: `Session::Validators` (r:1 w:0) + /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn seal_block_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 13_503_000 picoseconds. + Weight::from_parts(13_907_000, 1485) + .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `System::BlockHash` (r:1 w:0) /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `Measured`) fn seal_block_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `30` - // Estimated: `3495` - // Minimum execution time: 3_557_000 picoseconds. - Weight::from_parts(3_816_000, 3495) + // Measured: `0` + // Estimated: `3465` + // Minimum execution time: 2_251_000 picoseconds. + Weight::from_parts(2_370_000, 3465) .saturating_add(T::DbWeight::get().reads(1_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 280_000 picoseconds. - Weight::from_parts(316_000, 0) + // Minimum execution time: 237_000 picoseconds. + Weight::from_parts(264_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_413_000 picoseconds. - Weight::from_parts(1_477_000, 0) + // Minimum execution time: 1_238_000 picoseconds. + Weight::from_parts(1_311_000, 0) } /// The range of component `n` is `[0, 262140]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 383_000 picoseconds. - Weight::from_parts(602_481, 0) + // Minimum execution time: 380_000 picoseconds. + Weight::from_parts(524_789, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(201, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(237, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 327_000 picoseconds. - Weight::from_parts(365_000, 0) + // Minimum execution time: 248_000 picoseconds. + Weight::from_parts(267_000, 0) } /// The range of component `n` is `[0, 262144]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 334_000 picoseconds. - Weight::from_parts(205_756, 0) + // Minimum execution time: 230_000 picoseconds. + Weight::from_parts(207_234, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(116, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(150, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 262140]`. fn seal_return(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 278_000 picoseconds. - Weight::from_parts(611_031, 0) + // Minimum execution time: 267_000 picoseconds. + Weight::from_parts(357_669, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(202, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(238, 0).saturating_mul(n.into())) } /// Storage: `Revive::AddressSuffix` (r:1 w:0) /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) @@ -626,12 +642,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `n` is `[0, 32]`. fn seal_terminate(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `324 + n * (88 ±0)` - // Estimated: `3791 + n * (2563 ±0)` - // Minimum execution time: 18_544_000 picoseconds. - Weight::from_parts(18_412_253, 3791) - // Standard Error: 12_785 - .saturating_add(Weight::from_parts(4_214_449, 0).saturating_mul(n.into())) + // Measured: `218 + n * (88 ±0)` + // Estimated: `3684 + n * (2563 ±0)` + // Minimum execution time: 14_314_000 picoseconds. + Weight::from_parts(15_353_516, 3684) + // Standard Error: 10_720 + .saturating_add(Weight::from_parts(4_159_489, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -644,41 +660,41 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_156_000 picoseconds. - Weight::from_parts(4_120_442, 0) - // Standard Error: 3_278 - .saturating_add(Weight::from_parts(212_768, 0).saturating_mul(t.into())) - // Standard Error: 33 - .saturating_add(Weight::from_parts(1_199, 0).saturating_mul(n.into())) + // Minimum execution time: 3_968_000 picoseconds. + Weight::from_parts(3_902_423, 0) + // Standard Error: 2_379 + .saturating_add(Weight::from_parts(199_019, 0).saturating_mul(t.into())) + // Standard Error: 24 + .saturating_add(Weight::from_parts(945, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) fn get_storage_empty() -> Weight { // Proof Size summary in bytes: - // Measured: `680` - // Estimated: `680` - // Minimum execution time: 11_065_000 picoseconds. - Weight::from_parts(11_573_000, 680) + // Measured: `584` + // Estimated: `584` + // Minimum execution time: 5_980_000 picoseconds. + Weight::from_parts(6_250_000, 584) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) fn get_storage_full() -> Weight { // Proof Size summary in bytes: - // Measured: `10690` - // Estimated: `10690` - // Minimum execution time: 42_728_000 picoseconds. - Weight::from_parts(43_764_000, 10690) + // Measured: `10594` + // Estimated: `10594` + // Minimum execution time: 39_415_000 picoseconds. + Weight::from_parts(40_109_000, 10594) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) fn set_storage_empty() -> Weight { // Proof Size summary in bytes: - // Measured: `680` - // Estimated: `680` - // Minimum execution time: 12_376_000 picoseconds. - Weight::from_parts(12_658_000, 680) + // Measured: `584` + // Estimated: `584` + // Minimum execution time: 6_844_000 picoseconds. + Weight::from_parts(7_017_000, 584) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -686,10 +702,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) fn set_storage_full() -> Weight { // Proof Size summary in bytes: - // Measured: `10690` - // Estimated: `10690` - // Minimum execution time: 44_344_000 picoseconds. - Weight::from_parts(45_753_000, 10690) + // Measured: `10594` + // Estimated: `10594` + // Minimum execution time: 39_496_000 picoseconds. + Weight::from_parts(41_428_000, 10594) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -699,14 +715,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `o` is `[0, 448]`. fn seal_set_storage(n: u32, o: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + o * (1 ±0)` - // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 9_333_000 picoseconds. - Weight::from_parts(12_118_514, 247) - // Standard Error: 187 - .saturating_add(Weight::from_parts(1_212, 0).saturating_mul(n.into())) - // Standard Error: 187 - .saturating_add(Weight::from_parts(3_114, 0).saturating_mul(o.into())) + // Measured: `152 + o * (1 ±0)` + // Estimated: `151 + o * (1 ±0)` + // Minimum execution time: 6_400_000 picoseconds. + Weight::from_parts(7_358_548, 151) + // Standard Error: 67 + .saturating_add(Weight::from_parts(659, 0).saturating_mul(n.into())) + // Standard Error: 67 + .saturating_add(Weight::from_parts(1_273, 0).saturating_mul(o.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -716,12 +732,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `n` is `[0, 448]`. fn seal_clear_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + n * (1 ±0)` - // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_800_000 picoseconds. - Weight::from_parts(12_126_263, 247) - // Standard Error: 310 - .saturating_add(Weight::from_parts(4_181, 0).saturating_mul(n.into())) + // Measured: `152 + n * (1 ±0)` + // Estimated: `151 + n * (1 ±0)` + // Minimum execution time: 6_090_000 picoseconds. + Weight::from_parts(7_308_548, 151) + // Standard Error: 113 + .saturating_add(Weight::from_parts(1_456, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -731,12 +747,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `n` is `[0, 448]`. fn seal_get_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + n * (1 ±0)` - // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_612_000 picoseconds. - Weight::from_parts(11_888_491, 247) - // Standard Error: 322 - .saturating_add(Weight::from_parts(4_319, 0).saturating_mul(n.into())) + // Measured: `152 + n * (1 ±0)` + // Estimated: `151 + n * (1 ±0)` + // Minimum execution time: 5_649_000 picoseconds. + Weight::from_parts(7_096_122, 151) + // Standard Error: 120 + .saturating_add(Weight::from_parts(2_127, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -745,12 +761,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `n` is `[0, 448]`. fn seal_contains_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + n * (1 ±0)` - // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_112_000 picoseconds. - Weight::from_parts(11_160_688, 247) - // Standard Error: 297 - .saturating_add(Weight::from_parts(4_056, 0).saturating_mul(n.into())) + // Measured: `152 + n * (1 ±0)` + // Estimated: `151 + n * (1 ±0)` + // Minimum execution time: 5_261_000 picoseconds. + Weight::from_parts(6_552_943, 151) + // Standard Error: 117 + .saturating_add(Weight::from_parts(1_585, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -759,12 +775,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `n` is `[0, 448]`. fn seal_take_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + n * (1 ±0)` - // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 9_419_000 picoseconds. - Weight::from_parts(12_683_269, 247) - // Standard Error: 298 - .saturating_add(Weight::from_parts(4_848, 0).saturating_mul(n.into())) + // Measured: `152 + n * (1 ±0)` + // Estimated: `151 + n * (1 ±0)` + // Minimum execution time: 6_374_000 picoseconds. + Weight::from_parts(7_739_700, 151) + // Standard Error: 122 + .saturating_add(Weight::from_parts(2_264, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -773,36 +789,36 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_535_000 picoseconds. - Weight::from_parts(1_637_000, 0) + // Minimum execution time: 1_371_000 picoseconds. + Weight::from_parts(1_446_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_891_000 picoseconds. - Weight::from_parts(1_970_000, 0) + // Minimum execution time: 1_663_000 picoseconds. + Weight::from_parts(1_786_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_442_000 picoseconds. - Weight::from_parts(1_595_000, 0) + // Minimum execution time: 1_352_000 picoseconds. + Weight::from_parts(1_425_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(1_781_000, 0) + // Minimum execution time: 1_499_000 picoseconds. + Weight::from_parts(1_569_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_364_000 picoseconds. - Weight::from_parts(1_408_000, 0) + // Minimum execution time: 1_038_000 picoseconds. + Weight::from_parts(1_091_000, 0) } /// The range of component `n` is `[0, 448]`. /// The range of component `o` is `[0, 448]`. @@ -810,50 +826,50 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_392_000 picoseconds. - Weight::from_parts(2_559_622, 0) - // Standard Error: 18 - .saturating_add(Weight::from_parts(194, 0).saturating_mul(n.into())) - // Standard Error: 18 - .saturating_add(Weight::from_parts(319, 0).saturating_mul(o.into())) + // Minimum execution time: 2_108_000 picoseconds. + Weight::from_parts(2_300_363, 0) + // Standard Error: 13 + .saturating_add(Weight::from_parts(242, 0).saturating_mul(n.into())) + // Standard Error: 13 + .saturating_add(Weight::from_parts(374, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 448]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_099_000 picoseconds. - Weight::from_parts(2_442_655, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(361, 0).saturating_mul(n.into())) + // Minimum execution time: 1_822_000 picoseconds. + Weight::from_parts(2_150_092, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(394, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 448]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_936_000 picoseconds. - Weight::from_parts(2_160_919, 0) - // Standard Error: 20 - .saturating_add(Weight::from_parts(385, 0).saturating_mul(n.into())) + // Minimum execution time: 1_675_000 picoseconds. + Weight::from_parts(1_873_341, 0) + // Standard Error: 12 + .saturating_add(Weight::from_parts(273, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 448]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_809_000 picoseconds. - Weight::from_parts(1_997_103, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(156, 0).saturating_mul(n.into())) + // Minimum execution time: 1_555_000 picoseconds. + Weight::from_parts(1_690_236, 0) + // Standard Error: 10 + .saturating_add(Weight::from_parts(185, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 448]`. fn seal_take_transient_storage(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_513_000 picoseconds. - Weight::from_parts(2_799_538, 0) + // Minimum execution time: 2_278_000 picoseconds. + Weight::from_parts(2_522_598, 0) } /// Storage: `Revive::AddressSuffix` (r:1 w:0) /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) @@ -869,18 +885,18 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `i` is `[0, 262144]`. fn seal_call(t: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1294 + t * (205 ±0)` - // Estimated: `4759 + t * (2482 ±0)` - // Minimum execution time: 36_919_000 picoseconds. - Weight::from_parts(37_978_283, 4759) - // Standard Error: 54_576 - .saturating_add(Weight::from_parts(5_559_261, 0).saturating_mul(t.into())) + // Measured: `1164 + t * (206 ±0)` + // Estimated: `4629 + t * (2417 ±0)` + // Minimum execution time: 30_631_000 picoseconds. + Weight::from_parts(31_328_855, 4629) + // Standard Error: 36_031 + .saturating_add(Weight::from_parts(5_665_922, 0).saturating_mul(t.into())) // Standard Error: 0 .saturating_add(Weight::from_parts(2, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) - .saturating_add(Weight::from_parts(0, 2482).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(0, 2417).saturating_mul(t.into())) } /// Storage: `Revive::ContractInfoOf` (r:1 w:0) /// Proof: `Revive::ContractInfoOf` (`max_values`: None, `max_size`: Some(1779), added: 4254, mode: `Measured`) @@ -890,10 +906,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: Some(262180), added: 264655, mode: `Measured`) fn seal_delegate_call() -> Weight { // Proof Size summary in bytes: - // Measured: `1237` - // Estimated: `4702` - // Minimum execution time: 31_267_000 picoseconds. - Weight::from_parts(32_495_000, 4702) + // Measured: `1109` + // Estimated: `4574` + // Minimum execution time: 25_423_000 picoseconds. + Weight::from_parts(25_957_000, 4574) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -907,12 +923,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `i` is `[0, 262144]`. fn seal_instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1272` - // Estimated: `4724` - // Minimum execution time: 119_000_000 picoseconds. - Weight::from_parts(110_163_800, 4724) - // Standard Error: 11 - .saturating_add(Weight::from_parts(4_063, 0).saturating_mul(i.into())) + // Measured: `1093` + // Estimated: `4571` + // Minimum execution time: 108_874_000 picoseconds. + Weight::from_parts(98_900_023, 4571) + // Standard Error: 10 + .saturating_add(Weight::from_parts(4_183, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -921,73 +937,73 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 725_000 picoseconds. - Weight::from_parts(4_441_443, 0) + // Minimum execution time: 627_000 picoseconds. + Weight::from_parts(3_385_445, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_384, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_419, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 262144]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_057_000 picoseconds. - Weight::from_parts(5_659_277, 0) + // Minimum execution time: 1_035_000 picoseconds. + Weight::from_parts(3_723_700, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(3_588, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_637, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 262144]`. fn seal_hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 691_000 picoseconds. - Weight::from_parts(3_368_834, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_507, 0).saturating_mul(n.into())) + // Minimum execution time: 626_000 picoseconds. + Weight::from_parts(2_822_237, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_552, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 262144]`. fn seal_hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 619_000 picoseconds. - Weight::from_parts(2_422_606, 0) + // Minimum execution time: 554_000 picoseconds. + Weight::from_parts(3_287_817, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_528, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_542, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 261889]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 46_148_000 picoseconds. - Weight::from_parts(35_311_479, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(5_452, 0).saturating_mul(n.into())) + // Minimum execution time: 42_532_000 picoseconds. + Weight::from_parts(27_976_517, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(5_453, 0).saturating_mul(n.into())) } fn seal_ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 49_475_000 picoseconds. - Weight::from_parts(50_488_000, 0) + // Minimum execution time: 45_970_000 picoseconds. + Weight::from_parts(47_747_000, 0) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_516_000 picoseconds. - Weight::from_parts(12_637_000, 0) + // Minimum execution time: 12_550_000 picoseconds. + Weight::from_parts(12_706_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `Measured`) fn seal_set_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `300` - // Estimated: `3765` - // Minimum execution time: 13_735_000 picoseconds. - Weight::from_parts(14_450_000, 3765) + // Measured: `196` + // Estimated: `3661` + // Minimum execution time: 10_229_000 picoseconds. + Weight::from_parts(10_530_000, 3661) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -995,10 +1011,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `Measured`) fn lock_delegate_dependency() -> Weight { // Proof Size summary in bytes: - // Measured: `337` - // Estimated: `3802` - // Minimum execution time: 13_488_000 picoseconds. - Weight::from_parts(14_161_000, 3802) + // Measured: `234` + // Estimated: `3699` + // Minimum execution time: 9_743_000 picoseconds. + Weight::from_parts(10_180_000, 3699) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -1006,10 +1022,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) fn unlock_delegate_dependency() -> Weight { // Proof Size summary in bytes: - // Measured: `337` + // Measured: `234` // Estimated: `3561` - // Minimum execution time: 12_686_000 picoseconds. - Weight::from_parts(13_180_000, 3561) + // Minimum execution time: 8_717_000 picoseconds. + Weight::from_parts(9_129_000, 3561) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -1018,10 +1034,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_475_000 picoseconds. - Weight::from_parts(10_353_864, 0) - // Standard Error: 99 - .saturating_add(Weight::from_parts(73_636, 0).saturating_mul(r.into())) + // Minimum execution time: 8_332_000 picoseconds. + Weight::from_parts(9_985_610, 0) + // Standard Error: 187 + .saturating_add(Weight::from_parts(73_915, 0).saturating_mul(r.into())) } } @@ -1031,10 +1047,10 @@ impl WeightInfo for () { /// Proof: `Revive::DeletionQueueCounter` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) fn on_process_deletion_queue_batch() -> Weight { // Proof Size summary in bytes: - // Measured: `109` - // Estimated: `1594` - // Minimum execution time: 2_796_000 picoseconds. - Weight::from_parts(2_958_000, 1594) + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 690_000 picoseconds. + Weight::from_parts(743_000, 1485) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1042,12 +1058,12 @@ impl WeightInfo for () { /// The range of component `k` is `[0, 1024]`. fn on_initialize_per_trie_key(k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `425 + k * (69 ±0)` - // Estimated: `415 + k * (70 ±0)` - // Minimum execution time: 16_135_000 picoseconds. - Weight::from_parts(3_227_098, 415) - // Standard Error: 1_106 - .saturating_add(Weight::from_parts(1_175_210, 0).saturating_mul(k.into())) + // Measured: `230 + k * (69 ±0)` + // Estimated: `222 + k * (70 ±0)` + // Minimum execution time: 10_913_000 picoseconds. + Weight::from_parts(11_048_000, 222) + // Standard Error: 972 + .saturating_add(Weight::from_parts(1_172_318, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -1067,12 +1083,14 @@ impl WeightInfo for () { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `c` is `[0, 262144]`. - fn call_with_code_per_byte(_c: u32, ) -> Weight { + fn call_with_code_per_byte(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1502` - // Estimated: `7442` - // Minimum execution time: 89_144_000 picoseconds. - Weight::from_parts(93_719_381, 7442) + // Measured: `1195` + // Estimated: `7135` + // Minimum execution time: 83_080_000 picoseconds. + Weight::from_parts(89_270_264, 7135) + // Standard Error: 0 + .saturating_add(Weight::from_parts(3, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1092,16 +1110,14 @@ impl WeightInfo for () { /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: Some(262180), added: 264655, mode: `Measured`) /// The range of component `c` is `[0, 262144]`. /// The range of component `i` is `[0, 262144]`. - fn instantiate_with_code(c: u32, i: u32, ) -> Weight { + fn instantiate_with_code(_c: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `401` - // Estimated: `6349` - // Minimum execution time: 185_726_000 picoseconds. - Weight::from_parts(165_030_228, 6349) - // Standard Error: 10 - .saturating_add(Weight::from_parts(10, 0).saturating_mul(c.into())) - // Standard Error: 10 - .saturating_add(Weight::from_parts(4_453, 0).saturating_mul(i.into())) + // Measured: `93` + // Estimated: `6033` + // Minimum execution time: 171_761_000 picoseconds. + Weight::from_parts(158_031_807, 6033) + // Standard Error: 11 + .saturating_add(Weight::from_parts(4_536, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1122,12 +1138,12 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 262144]`. fn instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1294` - // Estimated: `4739` - // Minimum execution time: 154_669_000 picoseconds. - Weight::from_parts(138_463_785, 4739) + // Measured: `987` + // Estimated: `4452` + // Minimum execution time: 143_210_000 picoseconds. + Weight::from_parts(121_908_111, 4452) // Standard Error: 15 - .saturating_add(Weight::from_parts(4_389, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(4_467, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -1145,10 +1161,10 @@ impl WeightInfo for () { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) fn call() -> Weight { // Proof Size summary in bytes: - // Measured: `1502` - // Estimated: `7442` - // Minimum execution time: 137_822_000 picoseconds. - Weight::from_parts(146_004_000, 7442) + // Measured: `1195` + // Estimated: `7135` + // Minimum execution time: 136_689_000 picoseconds. + Weight::from_parts(145_358_000, 7135) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1159,12 +1175,14 @@ impl WeightInfo for () { /// Storage: `Revive::PristineCode` (r:0 w:1) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: Some(262180), added: 264655, mode: `Measured`) /// The range of component `c` is `[0, 262144]`. - fn upload_code(_c: u32, ) -> Weight { + fn upload_code(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `164` - // Estimated: `3629` - // Minimum execution time: 53_476_000 picoseconds. - Weight::from_parts(55_795_699, 3629) + // Measured: `0` + // Estimated: `3465` + // Minimum execution time: 43_351_000 picoseconds. + Weight::from_parts(44_896_319, 3465) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1176,10 +1194,10 @@ impl WeightInfo for () { /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: Some(262180), added: 264655, mode: `Measured`) fn remove_code() -> Weight { // Proof Size summary in bytes: - // Measured: `322` - // Estimated: `3787` - // Minimum execution time: 41_955_000 picoseconds. - Weight::from_parts(43_749_000, 3787) + // Measured: `181` + // Estimated: `3646` + // Minimum execution time: 36_034_000 picoseconds. + Weight::from_parts(36_595_000, 3646) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1189,10 +1207,10 @@ impl WeightInfo for () { /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `Measured`) fn set_code() -> Weight { // Proof Size summary in bytes: - // Measured: `529` - // Estimated: `6469` - // Minimum execution time: 22_763_000 picoseconds. - Weight::from_parts(23_219_000, 6469) + // Measured: `425` + // Estimated: `6365` + // Minimum execution time: 19_484_000 picoseconds. + Weight::from_parts(20_104_000, 6365) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1202,10 +1220,10 @@ impl WeightInfo for () { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(409), added: 2884, mode: `Measured`) fn map_account() -> Weight { // Proof Size summary in bytes: - // Measured: `164` - // Estimated: `3629` - // Minimum execution time: 45_478_000 picoseconds. - Weight::from_parts(46_658_000, 3629) + // Measured: `0` + // Estimated: `3465` + // Minimum execution time: 37_066_000 picoseconds. + Weight::from_parts(37_646_000, 3465) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1215,10 +1233,10 @@ impl WeightInfo for () { /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) fn unmap_account() -> Weight { // Proof Size summary in bytes: - // Measured: `93` - // Estimated: `3558` - // Minimum execution time: 33_359_000 picoseconds. - Weight::from_parts(34_196_000, 3558) + // Measured: `56` + // Estimated: `3521` + // Minimum execution time: 31_604_000 picoseconds. + Weight::from_parts(32_557_000, 3521) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1228,10 +1246,10 @@ impl WeightInfo for () { /// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `Measured`) fn dispatch_as_fallback_account() -> Weight { // Proof Size summary in bytes: - // Measured: `145` - // Estimated: `3610` - // Minimum execution time: 13_663_000 picoseconds. - Weight::from_parts(14_278_000, 3610) + // Measured: `0` + // Estimated: `3465` + // Minimum execution time: 6_070_000 picoseconds. + Weight::from_parts(6_246_000, 3465) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -1239,61 +1257,61 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_966_000 picoseconds. - Weight::from_parts(7_708_050, 0) - // Standard Error: 238 - .saturating_add(Weight::from_parts(167_115, 0).saturating_mul(r.into())) + // Minimum execution time: 6_471_000 picoseconds. + Weight::from_parts(7_724_355, 0) + // Standard Error: 245 + .saturating_add(Weight::from_parts(165_331, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 332_000 picoseconds. - Weight::from_parts(378_000, 0) + // Minimum execution time: 239_000 picoseconds. + Weight::from_parts(278_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 303_000 picoseconds. - Weight::from_parts(329_000, 0) + // Minimum execution time: 234_000 picoseconds. + Weight::from_parts(264_000, 0) } /// Storage: `Revive::ContractInfoOf` (r:1 w:0) /// Proof: `Revive::ContractInfoOf` (`max_values`: None, `max_size`: Some(1779), added: 4254, mode: `Measured`) fn seal_is_contract() -> Weight { // Proof Size summary in bytes: - // Measured: `306` - // Estimated: `3771` - // Minimum execution time: 10_014_000 picoseconds. - Weight::from_parts(10_549_000, 3771) + // Measured: `202` + // Estimated: `3667` + // Minimum execution time: 6_508_000 picoseconds. + Weight::from_parts(6_715_000, 3667) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Revive::AddressSuffix` (r:1 w:0) /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) fn seal_to_account_id() -> Weight { // Proof Size summary in bytes: - // Measured: `248` - // Estimated: `3713` - // Minimum execution time: 9_771_000 picoseconds. - Weight::from_parts(10_092_000, 3713) + // Measured: `144` + // Estimated: `3609` + // Minimum execution time: 6_190_000 picoseconds. + Weight::from_parts(6_413_000, 3609) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Revive::ContractInfoOf` (r:1 w:0) /// Proof: `Revive::ContractInfoOf` (`max_values`: None, `max_size`: Some(1779), added: 4254, mode: `Measured`) fn seal_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `403` - // Estimated: `3868` - // Minimum execution time: 11_260_000 picoseconds. - Weight::from_parts(11_626_000, 3868) + // Measured: `299` + // Estimated: `3764` + // Minimum execution time: 7_547_000 picoseconds. + Weight::from_parts(7_742_000, 3764) .saturating_add(RocksDbWeight::get().reads(1_u64)) } fn seal_own_code_hash() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 307_000 picoseconds. - Weight::from_parts(328_000, 0) + // Minimum execution time: 251_000 picoseconds. + Weight::from_parts(274_000, 0) } /// Storage: `Revive::ContractInfoOf` (r:1 w:0) /// Proof: `Revive::ContractInfoOf` (`max_values`: None, `max_size`: Some(1779), added: 4254, mode: `Measured`) @@ -1301,53 +1319,53 @@ impl WeightInfo for () { /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `Measured`) fn seal_code_size() -> Weight { // Proof Size summary in bytes: - // Measured: `473` - // Estimated: `3938` - // Minimum execution time: 14_675_000 picoseconds. - Weight::from_parts(15_168_000, 3938) + // Measured: `369` + // Estimated: `3834` + // Minimum execution time: 10_825_000 picoseconds. + Weight::from_parts(11_185_000, 3834) .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn seal_caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 332_000 picoseconds. - Weight::from_parts(357_000, 0) + // Minimum execution time: 325_000 picoseconds. + Weight::from_parts(352_000, 0) } fn seal_caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 298_000 picoseconds. - Weight::from_parts(332_000, 0) + // Minimum execution time: 245_000 picoseconds. + Weight::from_parts(282_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 313_000 picoseconds. - Weight::from_parts(336_000, 0) + // Minimum execution time: 251_000 picoseconds. + Weight::from_parts(274_000, 0) } fn seal_weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 663_000 picoseconds. - Weight::from_parts(730_000, 0) + // Minimum execution time: 599_000 picoseconds. + Weight::from_parts(675_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 292_000 picoseconds. - Weight::from_parts(344_000, 0) + // Minimum execution time: 245_000 picoseconds. + Weight::from_parts(263_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: // Measured: `102` // Estimated: `0` - // Minimum execution time: 4_604_000 picoseconds. - Weight::from_parts(4_875_000, 0) + // Minimum execution time: 4_613_000 picoseconds. + Weight::from_parts(4_768_000, 0) } /// Storage: `Revive::AddressSuffix` (r:1 w:0) /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) @@ -1355,10 +1373,10 @@ impl WeightInfo for () { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) fn seal_balance_of() -> Weight { // Proof Size summary in bytes: - // Measured: `264` - // Estimated: `3729` - // Minimum execution time: 12_252_000 picoseconds. - Weight::from_parts(12_641_000, 3729) + // Measured: `160` + // Estimated: `3625` + // Minimum execution time: 8_513_000 picoseconds. + Weight::from_parts(8_765_000, 3625) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -1366,12 +1384,12 @@ impl WeightInfo for () { /// The range of component `n` is `[1, 4096]`. fn seal_get_immutable_data(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `238 + n * (1 ±0)` - // Estimated: `3703 + n * (1 ±0)` - // Minimum execution time: 6_005_000 picoseconds. - Weight::from_parts(9_550_692, 3703) - // Standard Error: 18 - .saturating_add(Weight::from_parts(710, 0).saturating_mul(n.into())) + // Measured: `134 + n * (1 ±0)` + // Estimated: `3599 + n * (1 ±0)` + // Minimum execution time: 4_870_000 picoseconds. + Weight::from_parts(6_309_018, 3599) + // Standard Error: 7 + .saturating_add(Weight::from_parts(645, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1382,128 +1400,138 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_981_000 picoseconds. - Weight::from_parts(2_297_488, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(528, 0).saturating_mul(n.into())) + // Minimum execution time: 1_754_000 picoseconds. + Weight::from_parts(1_939_099, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(581, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 279_000 picoseconds. - Weight::from_parts(309_000, 0) + // Minimum execution time: 243_000 picoseconds. + Weight::from_parts(292_000, 0) } fn seal_minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 289_000 picoseconds. - Weight::from_parts(315_000, 0) + // Minimum execution time: 254_000 picoseconds. + Weight::from_parts(284_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 253_000 picoseconds. - Weight::from_parts(310_000, 0) + // Minimum execution time: 242_000 picoseconds. + Weight::from_parts(257_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 291_000 picoseconds. - Weight::from_parts(338_000, 0) + // Minimum execution time: 241_000 picoseconds. + Weight::from_parts(261_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 266_000 picoseconds. - Weight::from_parts(331_000, 0) + // Minimum execution time: 265_000 picoseconds. + Weight::from_parts(290_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 250_000 picoseconds. - Weight::from_parts(314_000, 0) + // Minimum execution time: 225_000 picoseconds. + Weight::from_parts(249_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 266_000 picoseconds. - Weight::from_parts(341_000, 0) + // Minimum execution time: 246_000 picoseconds. + Weight::from_parts(266_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 281_000 picoseconds. - Weight::from_parts(314_000, 0) + // Minimum execution time: 247_000 picoseconds. + Weight::from_parts(267_000, 0) + } + /// Storage: `Session::Validators` (r:1 w:0) + /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn seal_block_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 13_503_000 picoseconds. + Weight::from_parts(13_907_000, 1485) + .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `System::BlockHash` (r:1 w:0) /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `Measured`) fn seal_block_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `30` - // Estimated: `3495` - // Minimum execution time: 3_557_000 picoseconds. - Weight::from_parts(3_816_000, 3495) + // Measured: `0` + // Estimated: `3465` + // Minimum execution time: 2_251_000 picoseconds. + Weight::from_parts(2_370_000, 3465) .saturating_add(RocksDbWeight::get().reads(1_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 280_000 picoseconds. - Weight::from_parts(316_000, 0) + // Minimum execution time: 237_000 picoseconds. + Weight::from_parts(264_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_413_000 picoseconds. - Weight::from_parts(1_477_000, 0) + // Minimum execution time: 1_238_000 picoseconds. + Weight::from_parts(1_311_000, 0) } /// The range of component `n` is `[0, 262140]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 383_000 picoseconds. - Weight::from_parts(602_481, 0) + // Minimum execution time: 380_000 picoseconds. + Weight::from_parts(524_789, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(201, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(237, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 327_000 picoseconds. - Weight::from_parts(365_000, 0) + // Minimum execution time: 248_000 picoseconds. + Weight::from_parts(267_000, 0) } /// The range of component `n` is `[0, 262144]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 334_000 picoseconds. - Weight::from_parts(205_756, 0) + // Minimum execution time: 230_000 picoseconds. + Weight::from_parts(207_234, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(116, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(150, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 262140]`. fn seal_return(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 278_000 picoseconds. - Weight::from_parts(611_031, 0) + // Minimum execution time: 267_000 picoseconds. + Weight::from_parts(357_669, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(202, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(238, 0).saturating_mul(n.into())) } /// Storage: `Revive::AddressSuffix` (r:1 w:0) /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) @@ -1518,12 +1546,12 @@ impl WeightInfo for () { /// The range of component `n` is `[0, 32]`. fn seal_terminate(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `324 + n * (88 ±0)` - // Estimated: `3791 + n * (2563 ±0)` - // Minimum execution time: 18_544_000 picoseconds. - Weight::from_parts(18_412_253, 3791) - // Standard Error: 12_785 - .saturating_add(Weight::from_parts(4_214_449, 0).saturating_mul(n.into())) + // Measured: `218 + n * (88 ±0)` + // Estimated: `3684 + n * (2563 ±0)` + // Minimum execution time: 14_314_000 picoseconds. + Weight::from_parts(15_353_516, 3684) + // Standard Error: 10_720 + .saturating_add(Weight::from_parts(4_159_489, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -1536,41 +1564,41 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_156_000 picoseconds. - Weight::from_parts(4_120_442, 0) - // Standard Error: 3_278 - .saturating_add(Weight::from_parts(212_768, 0).saturating_mul(t.into())) - // Standard Error: 33 - .saturating_add(Weight::from_parts(1_199, 0).saturating_mul(n.into())) + // Minimum execution time: 3_968_000 picoseconds. + Weight::from_parts(3_902_423, 0) + // Standard Error: 2_379 + .saturating_add(Weight::from_parts(199_019, 0).saturating_mul(t.into())) + // Standard Error: 24 + .saturating_add(Weight::from_parts(945, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) fn get_storage_empty() -> Weight { // Proof Size summary in bytes: - // Measured: `680` - // Estimated: `680` - // Minimum execution time: 11_065_000 picoseconds. - Weight::from_parts(11_573_000, 680) + // Measured: `584` + // Estimated: `584` + // Minimum execution time: 5_980_000 picoseconds. + Weight::from_parts(6_250_000, 584) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) fn get_storage_full() -> Weight { // Proof Size summary in bytes: - // Measured: `10690` - // Estimated: `10690` - // Minimum execution time: 42_728_000 picoseconds. - Weight::from_parts(43_764_000, 10690) + // Measured: `10594` + // Estimated: `10594` + // Minimum execution time: 39_415_000 picoseconds. + Weight::from_parts(40_109_000, 10594) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) fn set_storage_empty() -> Weight { // Proof Size summary in bytes: - // Measured: `680` - // Estimated: `680` - // Minimum execution time: 12_376_000 picoseconds. - Weight::from_parts(12_658_000, 680) + // Measured: `584` + // Estimated: `584` + // Minimum execution time: 6_844_000 picoseconds. + Weight::from_parts(7_017_000, 584) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1578,10 +1606,10 @@ impl WeightInfo for () { /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) fn set_storage_full() -> Weight { // Proof Size summary in bytes: - // Measured: `10690` - // Estimated: `10690` - // Minimum execution time: 44_344_000 picoseconds. - Weight::from_parts(45_753_000, 10690) + // Measured: `10594` + // Estimated: `10594` + // Minimum execution time: 39_496_000 picoseconds. + Weight::from_parts(41_428_000, 10594) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1591,14 +1619,14 @@ impl WeightInfo for () { /// The range of component `o` is `[0, 448]`. fn seal_set_storage(n: u32, o: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + o * (1 ±0)` - // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 9_333_000 picoseconds. - Weight::from_parts(12_118_514, 247) - // Standard Error: 187 - .saturating_add(Weight::from_parts(1_212, 0).saturating_mul(n.into())) - // Standard Error: 187 - .saturating_add(Weight::from_parts(3_114, 0).saturating_mul(o.into())) + // Measured: `152 + o * (1 ±0)` + // Estimated: `151 + o * (1 ±0)` + // Minimum execution time: 6_400_000 picoseconds. + Weight::from_parts(7_358_548, 151) + // Standard Error: 67 + .saturating_add(Weight::from_parts(659, 0).saturating_mul(n.into())) + // Standard Error: 67 + .saturating_add(Weight::from_parts(1_273, 0).saturating_mul(o.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -1608,12 +1636,12 @@ impl WeightInfo for () { /// The range of component `n` is `[0, 448]`. fn seal_clear_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + n * (1 ±0)` - // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_800_000 picoseconds. - Weight::from_parts(12_126_263, 247) - // Standard Error: 310 - .saturating_add(Weight::from_parts(4_181, 0).saturating_mul(n.into())) + // Measured: `152 + n * (1 ±0)` + // Estimated: `151 + n * (1 ±0)` + // Minimum execution time: 6_090_000 picoseconds. + Weight::from_parts(7_308_548, 151) + // Standard Error: 113 + .saturating_add(Weight::from_parts(1_456, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1623,12 +1651,12 @@ impl WeightInfo for () { /// The range of component `n` is `[0, 448]`. fn seal_get_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + n * (1 ±0)` - // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_612_000 picoseconds. - Weight::from_parts(11_888_491, 247) - // Standard Error: 322 - .saturating_add(Weight::from_parts(4_319, 0).saturating_mul(n.into())) + // Measured: `152 + n * (1 ±0)` + // Estimated: `151 + n * (1 ±0)` + // Minimum execution time: 5_649_000 picoseconds. + Weight::from_parts(7_096_122, 151) + // Standard Error: 120 + .saturating_add(Weight::from_parts(2_127, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1637,12 +1665,12 @@ impl WeightInfo for () { /// The range of component `n` is `[0, 448]`. fn seal_contains_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + n * (1 ±0)` - // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_112_000 picoseconds. - Weight::from_parts(11_160_688, 247) - // Standard Error: 297 - .saturating_add(Weight::from_parts(4_056, 0).saturating_mul(n.into())) + // Measured: `152 + n * (1 ±0)` + // Estimated: `151 + n * (1 ±0)` + // Minimum execution time: 5_261_000 picoseconds. + Weight::from_parts(6_552_943, 151) + // Standard Error: 117 + .saturating_add(Weight::from_parts(1_585, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1651,12 +1679,12 @@ impl WeightInfo for () { /// The range of component `n` is `[0, 448]`. fn seal_take_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `248 + n * (1 ±0)` - // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 9_419_000 picoseconds. - Weight::from_parts(12_683_269, 247) - // Standard Error: 298 - .saturating_add(Weight::from_parts(4_848, 0).saturating_mul(n.into())) + // Measured: `152 + n * (1 ±0)` + // Estimated: `151 + n * (1 ±0)` + // Minimum execution time: 6_374_000 picoseconds. + Weight::from_parts(7_739_700, 151) + // Standard Error: 122 + .saturating_add(Weight::from_parts(2_264, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1665,36 +1693,36 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_535_000 picoseconds. - Weight::from_parts(1_637_000, 0) + // Minimum execution time: 1_371_000 picoseconds. + Weight::from_parts(1_446_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_891_000 picoseconds. - Weight::from_parts(1_970_000, 0) + // Minimum execution time: 1_663_000 picoseconds. + Weight::from_parts(1_786_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_442_000 picoseconds. - Weight::from_parts(1_595_000, 0) + // Minimum execution time: 1_352_000 picoseconds. + Weight::from_parts(1_425_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_690_000 picoseconds. - Weight::from_parts(1_781_000, 0) + // Minimum execution time: 1_499_000 picoseconds. + Weight::from_parts(1_569_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_364_000 picoseconds. - Weight::from_parts(1_408_000, 0) + // Minimum execution time: 1_038_000 picoseconds. + Weight::from_parts(1_091_000, 0) } /// The range of component `n` is `[0, 448]`. /// The range of component `o` is `[0, 448]`. @@ -1702,50 +1730,50 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_392_000 picoseconds. - Weight::from_parts(2_559_622, 0) - // Standard Error: 18 - .saturating_add(Weight::from_parts(194, 0).saturating_mul(n.into())) - // Standard Error: 18 - .saturating_add(Weight::from_parts(319, 0).saturating_mul(o.into())) + // Minimum execution time: 2_108_000 picoseconds. + Weight::from_parts(2_300_363, 0) + // Standard Error: 13 + .saturating_add(Weight::from_parts(242, 0).saturating_mul(n.into())) + // Standard Error: 13 + .saturating_add(Weight::from_parts(374, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 448]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_099_000 picoseconds. - Weight::from_parts(2_442_655, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(361, 0).saturating_mul(n.into())) + // Minimum execution time: 1_822_000 picoseconds. + Weight::from_parts(2_150_092, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(394, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 448]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_936_000 picoseconds. - Weight::from_parts(2_160_919, 0) - // Standard Error: 20 - .saturating_add(Weight::from_parts(385, 0).saturating_mul(n.into())) + // Minimum execution time: 1_675_000 picoseconds. + Weight::from_parts(1_873_341, 0) + // Standard Error: 12 + .saturating_add(Weight::from_parts(273, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 448]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_809_000 picoseconds. - Weight::from_parts(1_997_103, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(156, 0).saturating_mul(n.into())) + // Minimum execution time: 1_555_000 picoseconds. + Weight::from_parts(1_690_236, 0) + // Standard Error: 10 + .saturating_add(Weight::from_parts(185, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 448]`. fn seal_take_transient_storage(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_513_000 picoseconds. - Weight::from_parts(2_799_538, 0) + // Minimum execution time: 2_278_000 picoseconds. + Weight::from_parts(2_522_598, 0) } /// Storage: `Revive::AddressSuffix` (r:1 w:0) /// Proof: `Revive::AddressSuffix` (`max_values`: None, `max_size`: Some(32), added: 2507, mode: `Measured`) @@ -1761,18 +1789,18 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 262144]`. fn seal_call(t: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1294 + t * (205 ±0)` - // Estimated: `4759 + t * (2482 ±0)` - // Minimum execution time: 36_919_000 picoseconds. - Weight::from_parts(37_978_283, 4759) - // Standard Error: 54_576 - .saturating_add(Weight::from_parts(5_559_261, 0).saturating_mul(t.into())) + // Measured: `1164 + t * (206 ±0)` + // Estimated: `4629 + t * (2417 ±0)` + // Minimum execution time: 30_631_000 picoseconds. + Weight::from_parts(31_328_855, 4629) + // Standard Error: 36_031 + .saturating_add(Weight::from_parts(5_665_922, 0).saturating_mul(t.into())) // Standard Error: 0 .saturating_add(Weight::from_parts(2, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) - .saturating_add(Weight::from_parts(0, 2482).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(0, 2417).saturating_mul(t.into())) } /// Storage: `Revive::ContractInfoOf` (r:1 w:0) /// Proof: `Revive::ContractInfoOf` (`max_values`: None, `max_size`: Some(1779), added: 4254, mode: `Measured`) @@ -1782,10 +1810,10 @@ impl WeightInfo for () { /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: Some(262180), added: 264655, mode: `Measured`) fn seal_delegate_call() -> Weight { // Proof Size summary in bytes: - // Measured: `1237` - // Estimated: `4702` - // Minimum execution time: 31_267_000 picoseconds. - Weight::from_parts(32_495_000, 4702) + // Measured: `1109` + // Estimated: `4574` + // Minimum execution time: 25_423_000 picoseconds. + Weight::from_parts(25_957_000, 4574) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -1799,12 +1827,12 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 262144]`. fn seal_instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1272` - // Estimated: `4724` - // Minimum execution time: 119_000_000 picoseconds. - Weight::from_parts(110_163_800, 4724) - // Standard Error: 11 - .saturating_add(Weight::from_parts(4_063, 0).saturating_mul(i.into())) + // Measured: `1093` + // Estimated: `4571` + // Minimum execution time: 108_874_000 picoseconds. + Weight::from_parts(98_900_023, 4571) + // Standard Error: 10 + .saturating_add(Weight::from_parts(4_183, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1813,73 +1841,73 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 725_000 picoseconds. - Weight::from_parts(4_441_443, 0) + // Minimum execution time: 627_000 picoseconds. + Weight::from_parts(3_385_445, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_384, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_419, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 262144]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_057_000 picoseconds. - Weight::from_parts(5_659_277, 0) + // Minimum execution time: 1_035_000 picoseconds. + Weight::from_parts(3_723_700, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(3_588, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_637, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 262144]`. fn seal_hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 691_000 picoseconds. - Weight::from_parts(3_368_834, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(1_507, 0).saturating_mul(n.into())) + // Minimum execution time: 626_000 picoseconds. + Weight::from_parts(2_822_237, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_552, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 262144]`. fn seal_hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 619_000 picoseconds. - Weight::from_parts(2_422_606, 0) + // Minimum execution time: 554_000 picoseconds. + Weight::from_parts(3_287_817, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(1_528, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_542, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 261889]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 46_148_000 picoseconds. - Weight::from_parts(35_311_479, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(5_452, 0).saturating_mul(n.into())) + // Minimum execution time: 42_532_000 picoseconds. + Weight::from_parts(27_976_517, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(5_453, 0).saturating_mul(n.into())) } fn seal_ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 49_475_000 picoseconds. - Weight::from_parts(50_488_000, 0) + // Minimum execution time: 45_970_000 picoseconds. + Weight::from_parts(47_747_000, 0) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_516_000 picoseconds. - Weight::from_parts(12_637_000, 0) + // Minimum execution time: 12_550_000 picoseconds. + Weight::from_parts(12_706_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `Measured`) fn seal_set_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `300` - // Estimated: `3765` - // Minimum execution time: 13_735_000 picoseconds. - Weight::from_parts(14_450_000, 3765) + // Measured: `196` + // Estimated: `3661` + // Minimum execution time: 10_229_000 picoseconds. + Weight::from_parts(10_530_000, 3661) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1887,10 +1915,10 @@ impl WeightInfo for () { /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `Measured`) fn lock_delegate_dependency() -> Weight { // Proof Size summary in bytes: - // Measured: `337` - // Estimated: `3802` - // Minimum execution time: 13_488_000 picoseconds. - Weight::from_parts(14_161_000, 3802) + // Measured: `234` + // Estimated: `3699` + // Minimum execution time: 9_743_000 picoseconds. + Weight::from_parts(10_180_000, 3699) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1898,10 +1926,10 @@ impl WeightInfo for () { /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) fn unlock_delegate_dependency() -> Weight { // Proof Size summary in bytes: - // Measured: `337` + // Measured: `234` // Estimated: `3561` - // Minimum execution time: 12_686_000 picoseconds. - Weight::from_parts(13_180_000, 3561) + // Minimum execution time: 8_717_000 picoseconds. + Weight::from_parts(9_129_000, 3561) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1910,9 +1938,9 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_475_000 picoseconds. - Weight::from_parts(10_353_864, 0) - // Standard Error: 99 - .saturating_add(Weight::from_parts(73_636, 0).saturating_mul(r.into())) + // Minimum execution time: 8_332_000 picoseconds. + Weight::from_parts(9_985_610, 0) + // Standard Error: 187 + .saturating_add(Weight::from_parts(73_915, 0).saturating_mul(r.into())) } } diff --git a/substrate/frame/revive/uapi/src/host.rs b/substrate/frame/revive/uapi/src/host.rs index 2d7c73d26192e3ff4264cb84b86ef32a0b8e62e2..08806f11c9c5096b1d7570210295d6a527f8dba1 100644 --- a/substrate/frame/revive/uapi/src/host.rs +++ b/substrate/frame/revive/uapi/src/host.rs @@ -397,6 +397,13 @@ pub trait HostFn: private::Sealed { /// Returns the amount of ref_time left. fn ref_time_left() -> u64; + /// Stores the current block author of into the supplied buffer. + /// + /// # Parameters + /// + /// - `output`: A reference to the output data buffer to write the block author. + fn block_author(output: &mut [u8; 20]); + /// Stores the current block number of the current contract into the supplied buffer. /// /// # Parameters diff --git a/substrate/frame/revive/uapi/src/host/riscv64.rs b/substrate/frame/revive/uapi/src/host/riscv64.rs index 8179ea890189b9f73964d31a5941b39381ec26b9..620c2a9e1f5c90a4c954f3ff7e5515d299a152bc 100644 --- a/substrate/frame/revive/uapi/src/host/riscv64.rs +++ b/substrate/frame/revive/uapi/src/host/riscv64.rs @@ -120,6 +120,7 @@ mod sys { pub fn call_data_size() -> u64; pub fn block_number(out_ptr: *mut u8); pub fn block_hash(block_number_ptr: *const u8, out_ptr: *mut u8); + pub fn block_author(out_ptr: *mut u8); pub fn hash_sha2_256(input_ptr: *const u8, input_len: u32, out_ptr: *mut u8); pub fn hash_keccak_256(input_ptr: *const u8, input_len: u32, out_ptr: *mut u8); pub fn hash_blake2_256(input_ptr: *const u8, input_len: u32, out_ptr: *mut u8); @@ -394,6 +395,10 @@ impl HostFn for HostFnImpl { unsafe { sys::block_number(output.as_mut_ptr()) } } + fn block_author(output: &mut [u8; 20]) { + unsafe { sys::block_author(output.as_mut_ptr()) } + } + fn weight_to_fee(ref_time_limit: u64, proof_size_limit: u64, output: &mut [u8; 32]) { unsafe { sys::weight_to_fee(ref_time_limit, proof_size_limit, output.as_mut_ptr()) }; }