From 93c27d8f6fef874072f467b408d55e8b792ac3e6 Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Tue, 2 Apr 2024 17:35:28 +0200 Subject: [PATCH 01/11] feat: configure pallets in runtime. logion-network/logion-internal#1199 --- Cargo.lock | 787 +++++++++++------- runtime/Cargo.toml | 45 +- runtime/src/lib.rs | 530 +++++++++++- runtime/src/weights/frame_system.rs | 160 ++++ runtime/src/weights/mod.rs | 11 + runtime/src/weights/pallet_balances.rs | 147 ++++ .../src/weights/pallet_lo_authority_list.rs | 107 +++ runtime/src/weights/pallet_logion_loc.rs | 459 ++++++++++ runtime/src/weights/pallet_logion_vote.rs | 69 ++ runtime/src/weights/pallet_multisig.rs | 149 ++++ runtime/src/weights/pallet_recovery.rs | 172 ++++ runtime/src/weights/pallet_sudo.rs | 85 ++ runtime/src/weights/pallet_timestamp.rs | 61 ++ runtime/src/weights/pallet_utility.rs | 88 ++ .../src/weights/pallet_verified_recovery.rs | 57 ++ 15 files changed, 2586 insertions(+), 341 deletions(-) create mode 100644 runtime/src/weights/frame_system.rs create mode 100644 runtime/src/weights/pallet_balances.rs create mode 100644 runtime/src/weights/pallet_lo_authority_list.rs create mode 100644 runtime/src/weights/pallet_logion_loc.rs create mode 100644 runtime/src/weights/pallet_logion_vote.rs create mode 100644 runtime/src/weights/pallet_multisig.rs create mode 100644 runtime/src/weights/pallet_recovery.rs create mode 100644 runtime/src/weights/pallet_sudo.rs create mode 100644 runtime/src/weights/pallet_timestamp.rs create mode 100644 runtime/src/weights/pallet_utility.rs create mode 100644 runtime/src/weights/pallet_verified_recovery.rs diff --git a/Cargo.lock b/Cargo.lock index 88fbeb8..84c9c81 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -190,9 +190,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "approx" @@ -214,7 +214,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -601,22 +601,22 @@ checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ "concurrent-queue", "event-listener 5.2.0", - "event-listener-strategy 0.5.0", + "event-listener-strategy 0.5.1", "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "10b3e585719c2358d2660232671ca8ca4ddb4be4ce8a1842d6c2dc8685303316" dependencies = [ "async-lock 3.3.0", "async-task", "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.2.0", + "fastrand 2.0.2", + "futures-lite 2.3.0", "slab", ] @@ -654,18 +654,18 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ "async-lock 3.3.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "parking", - "polling 3.5.0", - "rustix 0.38.31", + "polling 3.6.0", + "rustix 0.38.32", "slab", "tracing", "windows-sys 0.52.0", @@ -688,7 +688,7 @@ checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ "event-listener 4.0.3", "event-listener-strategy 0.4.0", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -715,7 +715,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.31", + "rustix 0.38.32", "windows-sys 0.48.0", ] @@ -725,13 +725,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.3.1", + "async-io 2.3.2", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.31", + "rustix 0.38.32", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -745,13 +745,13 @@ checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -764,7 +764,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -781,15 +781,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line 0.21.0", "cc", @@ -892,13 +892,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.16", + "prettyplease 0.2.17", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -928,9 +928,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bitvec" @@ -1000,9 +1000,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" dependencies = [ "arrayref", "arrayvec 0.7.4", @@ -1038,9 +1038,9 @@ dependencies = [ "async-channel 2.2.0", "async-lock 3.3.0", "async-task", - "fastrand 2.0.1", + "fastrand 2.0.2", "futures-io", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "piper", "tracing", ] @@ -1085,9 +1085,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "tinyvec", ] @@ -1121,9 +1121,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.14.3" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" [[package]] name = "byteorder" @@ -1133,9 +1133,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "bzip2-sys" @@ -1169,9 +1169,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ "serde", ] @@ -1266,9 +1266,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1333,9 +1333,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.2" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -1356,14 +1356,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -2098,7 +2098,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -2420,7 +2420,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -2438,9 +2438,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.119" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "635179be18797d7e10edb9cd06c859580237750c7351f39ed9b298bfc17544ad" +checksum = "ff4dc7287237dd438b926a81a1a5605dad33d286870e5eee2db17bf2bcd9e92a" dependencies = [ "cc", "cxxbridge-flags", @@ -2450,9 +2450,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.119" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9324397d262f63ef77eb795d900c0d682a34a43ac0932bec049ed73055d52f63" +checksum = "f47c6c8ad7c1a10d3ef0fe3ff6733f4db0d78f08ef0b13121543163ef327058b" dependencies = [ "cc", "codespan-reporting", @@ -2460,24 +2460,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "cxxbridge-flags" -version = "1.0.119" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a87ff7342ffaa54b7c61618e0ce2bbcf827eba6d55b923b83d82551acbbecfe5" +checksum = "701a1ac7a697e249cdd8dc026d7a7dafbfd0dbcd8bd24ec55889f2bc13dd6287" [[package]] name = "cxxbridge-macro" -version = "1.0.119" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70b5b86cf65fa0626d85720619d80b288013477a91a0389fa8bc716bf4903ad1" +checksum = "b404f596046b0bb2d903a9c786b875a126261b52b7c3a64bbb66382c41c771df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -2521,9 +2521,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -2574,6 +2574,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.57", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -2673,7 +2684,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -2694,28 +2705,28 @@ dependencies = [ [[package]] name = "docify" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" dependencies = [ "common-path", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.52", + "syn 2.0.57", "termcolor", - "toml 0.8.10", + "toml 0.8.12", "walkdir", ] @@ -2869,7 +2880,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "syn 1.0.109", @@ -2892,7 +2903,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -2903,7 +2914,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -2955,7 +2966,7 @@ checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -2966,7 +2977,7 @@ checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -2977,7 +2988,7 @@ checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -2987,17 +2998,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ "event-listener 4.0.3", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "event-listener-strategy" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" dependencies = [ "event-listener 5.2.0", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -3032,7 +3043,7 @@ dependencies = [ "prettier-please", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3058,9 +3069,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fatality" @@ -3122,9 +3133,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" [[package]] name = "file-per-thread-logger" @@ -3312,7 +3323,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3432,7 +3443,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse", + "derive-syn-parse 0.1.5", "expander 2.1.0", "frame-support-procedural-tools", "itertools 0.10.5", @@ -3441,7 +3452,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3453,7 +3464,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3463,7 +3474,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3547,7 +3558,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.32", "windows-sys 0.48.0", ] @@ -3617,21 +3628,21 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "waker-fn", ] [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.0.1", + "fastrand 2.0.2", "futures-core", "futures-io", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -3642,7 +3653,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3687,7 +3698,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "pin-utils", "slab", ] @@ -3833,9 +3844,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" dependencies = [ "bytes", "fnv", @@ -3843,7 +3854,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.5", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", @@ -3923,6 +3934,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" version = "0.3.9" @@ -4029,7 +4046,7 @@ checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -4072,7 +4089,7 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "socket2 0.5.6", "tokio", "tower-service", @@ -4156,7 +4173,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io 2.3.1", + "async-io 2.3.2", "core-foundation", "fnv", "futures", @@ -4230,9 +4247,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -4365,9 +4382,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" @@ -4389,9 +4406,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3ae45a64cfc0882934f963be9431b2a165d667f53140358181f262aca0702" +checksum = "3cdbb7cb6f3ba28f5b212dd250ab4483105efc3e381f5c8bb90340f14f0a2cc3" dependencies = [ "jsonrpsee-core", "jsonrpsee-http-client", @@ -4405,9 +4422,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455fc882e56f58228df2aee36b88a1340eafd707c76af2fa68cf94b37d461131" +checksum = "9ab2e14e727d2faf388c99d9ca5210566ed3b044f07d92c29c3611718d178380" dependencies = [ "futures-util", "http", @@ -4426,9 +4443,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75568f4f9696e3a47426e1985b548e1a9fcb13372a5e320372acaf04aca30d1" +checksum = "71962a1c49af43adf81d337e4ebc93f3c915faf6eccaa14d74e255107dfd7723" dependencies = [ "anyhow", "async-lock 3.3.0", @@ -4452,9 +4469,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e7a95e346f55df84fb167b7e06470e196e7d5b9488a21d69c5d9732043ba7ba" +checksum = "8c13987da51270bda2c1c9b40c19be0fe9b225c7a0553963d8f17e683a50ce84" dependencies = [ "async-trait", "hyper", @@ -4472,22 +4489,22 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ca066e73dd70294aebc5c2675d8ffae43be944af027c857ce0d4c51785f014" +checksum = "1d7c2416c400c94b2e864603c51a5bbd5b103386da1f5e58cbf01e7bb3ef0833" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "jsonrpsee-server" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e29c1bd1f9bba83c864977c73404e505f74f730fa0db89dd490ec174e36d7f0" +checksum = "4882e640e70c2553e3d9487e6f4dddd5fd11918f25e40fa45218f9fe29ed2152" dependencies = [ "futures-util", "http", @@ -4509,9 +4526,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467fd35feeee179f71ab294516bdf3a81139e7aeebdd860e46897c12e1a3368" +checksum = "1e53c72de6cd2ad6ac1aa6e848206ef8b736f92ed02354959130373dfa5b3cbd" dependencies = [ "anyhow", "beef", @@ -4522,9 +4539,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ca71e74983f624c0cb67828e480a981586074da8ad3a2f214c6a3f884edab9" +checksum = "c8a07ab8da9a283b906f6735ddd17d3680158bb72259e853441d1dd0167079ec" dependencies = [ "http", "jsonrpsee-client-transport", @@ -4596,9 +4613,9 @@ dependencies = [ [[package]] name = "landlock" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1530c5b973eeed4ac216af7e24baf5737645a6272e361f1fb95710678b67d9cc" +checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" dependencies = [ "enumflags2", "libc", @@ -4946,7 +4963,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ - "heck", + "heck 0.4.1", "quote", "syn 1.0.109", ] @@ -5034,13 +5051,12 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "libc", - "redox_syscall 0.4.1", ] [[package]] @@ -5108,9 +5124,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.15" +version = "1.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" dependencies = [ "cc", "pkg-config", @@ -5217,6 +5233,7 @@ dependencies = [ "jsonrpsee", "log", "logion-runtime", + "pallet-lo-authority-list", "pallet-transaction-payment-rpc", "parity-scale-codec", "polkadot-cli", @@ -5276,11 +5293,19 @@ dependencies = [ "frame-try-runtime", "hex-literal", "log", + "logion-shared", "pallet-aura", "pallet-authorship", "pallet-balances", + "pallet-block-reward", "pallet-collator-selection", + "pallet-lo-authority-list", + "pallet-logion-loc", + "pallet-logion-vault", + "pallet-logion-vote", "pallet-message-queue", + "pallet-multisig", + "pallet-recovery", "pallet-session", "pallet-sudo", "pallet-timestamp", @@ -5288,6 +5313,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", + "pallet-verified-recovery", "pallet-vesting", "pallet-xcm", "parachains-common", @@ -5302,6 +5328,7 @@ dependencies = [ "sp-core", "sp-genesis-builder", "sp-inherents", + "sp-io", "sp-offchain", "sp-runtime", "sp-session", @@ -5315,6 +5342,19 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "logion-shared" +version = "0.1.1" +source = "git+https://github.com/logion-network/logion-pallets?tag=v0.2.1#3f835421fc765dad6ef45b4a4d2fa590d2098f6c" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", + "sp-weights", +] + [[package]] name = "lru" version = "0.10.1" @@ -5377,7 +5417,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -5387,11 +5427,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" dependencies = [ "const-random", - "derive-syn-parse", + "derive-syn-parse 0.1.5", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -5402,7 +5442,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -5413,7 +5453,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -5455,9 +5495,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memfd" @@ -5465,7 +5505,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.32", ] [[package]] @@ -5790,9 +5830,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.4" +version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4541eb06dce09c0241ebbaab7102f0a01a0c8994afed2e5d0d66775016e25ac2" +checksum = "3ea4908d4f23254adda3daa60ffef0f1ac7b8c3e9a864cf3cc154b251908a2ef" dependencies = [ "approx", "matrixmultiply", @@ -5913,7 +5953,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cfg-if", "libc", ] @@ -6131,7 +6171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eedb646674596266dc9bb2b5c7eea7c36b32ecc7777eba0d510196972d72c4fd" dependencies = [ "expander 2.1.0", - "indexmap 2.2.5", + "indexmap 2.2.6", "itertools 0.11.0", "petgraph", "proc-macro-crate 1.3.1", @@ -6370,6 +6410,23 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", ] +[[package]] +name = "pallet-block-reward" +version = "0.1.0" +source = "git+https://github.com/logion-network/logion-pallets?tag=v0.2.1#3f835421fc765dad6ef45b4a4d2fa590d2098f6c" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "logion-shared", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", +] + [[package]] name = "pallet-bounties" version = "27.0.0" @@ -6647,6 +6704,77 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", ] +[[package]] +name = "pallet-lo-authority-list" +version = "0.1.1" +source = "git+https://github.com/logion-network/logion-pallets?tag=v0.2.1#3f835421fc765dad6ef45b4a4d2fa590d2098f6c" +dependencies = [ + "bs58 0.5.1", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "logion-shared", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", +] + +[[package]] +name = "pallet-logion-loc" +version = "0.4.0" +source = "git+https://github.com/logion-network/logion-pallets?tag=v0.2.1#3f835421fc765dad6ef45b4a4d2fa590d2098f6c" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "logion-shared", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", +] + +[[package]] +name = "pallet-logion-vault" +version = "0.1.1" +source = "git+https://github.com/logion-network/logion-pallets?tag=v0.2.1#3f835421fc765dad6ef45b4a4d2fa590d2098f6c" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "logion-shared", + "pallet-multisig", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", + "sp-weights", +] + +[[package]] +name = "pallet-logion-vote" +version = "0.1.0" +source = "git+https://github.com/logion-network/logion-pallets?tag=v0.2.1#3f835421fc765dad6ef45b4a4d2fa590d2098f6c" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "logion-shared", + "parity-scale-codec", + "scale-info", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", +] + [[package]] name = "pallet-membership" version = "28.0.0" @@ -7031,7 +7159,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -7204,6 +7332,20 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", ] +[[package]] +name = "pallet-verified-recovery" +version = "0.1.1" +source = "git+https://github.com/logion-network/logion-pallets?tag=v0.2.1#3f835421fc765dad6ef45b4a4d2fa590d2098f6c" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "logion-shared", + "parity-scale-codec", + "scale-info", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", +] + [[package]] name = "pallet-vesting" version = "28.0.0" @@ -7474,9 +7616,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" +checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95" dependencies = [ "memchr", "thiserror", @@ -7485,9 +7627,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026" +checksum = "f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c" dependencies = [ "pest", "pest_generator", @@ -7495,22 +7637,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80" +checksum = "c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "pest_meta" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293" +checksum = "2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca" dependencies = [ "once_cell", "pest", @@ -7524,7 +7666,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.2.5", + "indexmap 2.2.6", ] [[package]] @@ -7544,7 +7686,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -7555,9 +7697,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -7572,7 +7714,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand 2.0.2", "futures-io", ] @@ -7594,9 +7736,9 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platforms" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" [[package]] name = "polkadot-approval-distribution" @@ -7752,7 +7894,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.2.5", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -8171,7 +8313,7 @@ name = "polkadot-node-metrics" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7817e5adc2f3a91dd94b0465dd61b4c1b07ab7" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "futures", "futures-timer", "log", @@ -8461,7 +8603,7 @@ name = "polkadot-runtime-metrics" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7817e5adc2f3a91dd94b0465dd61b4c1b07ab7" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", @@ -8645,7 +8787,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.2.5", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8675,13 +8817,28 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92c99f7eee94e7be43ba37eef65ad0ee8cbaf89b7c00001c3f6d2be985cb1817" +[[package]] +name = "polkavm-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" + [[package]] name = "polkavm-derive" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79fa916f7962348bd1bb1a65a83401675e6fc86c51a0fdbcf92a3108e58e6125" dependencies = [ - "polkavm-derive-impl-macro", + "polkavm-derive-impl-macro 0.8.0", +] + +[[package]] +name = "polkavm-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" +dependencies = [ + "polkavm-derive-impl-macro 0.9.0", ] [[package]] @@ -8690,10 +8847,22 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c10b2654a8a10a83c260bfb93e97b262cf0017494ab94a65d389e0eda6de6c9c" dependencies = [ - "polkavm-common", + "polkavm-common 0.8.0", + "proc-macro2", + "quote", + "syn 2.0.57", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" +dependencies = [ + "polkavm-common 0.9.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -8702,8 +8871,18 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66" dependencies = [ - "polkavm-derive-impl", - "syn 2.0.52", + "polkavm-derive-impl 0.8.0", + "syn 2.0.57", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" +dependencies = [ + "polkavm-derive-impl 0.9.0", + "syn 2.0.57", ] [[package]] @@ -8716,7 +8895,7 @@ dependencies = [ "hashbrown 0.14.3", "log", "object 0.32.2", - "polkavm-common", + "polkavm-common 0.8.0", "regalloc2 0.9.3", "rustc-demangle", ] @@ -8733,20 +8912,21 @@ dependencies = [ "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "windows-sys 0.48.0", ] [[package]] name = "polling" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9" +checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" dependencies = [ "cfg-if", "concurrent-queue", - "pin-project-lite 0.2.13", - "rustix 0.38.31", + "hermit-abi", + "pin-project-lite 0.2.14", + "rustix 0.38.32", "tracing", "windows-sys 0.52.0", ] @@ -8829,7 +9009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22020dfcf177fcc7bf5deaf7440af371400c67c0de14c399938d8ed4fb4645d3" dependencies = [ "proc-macro2", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -8844,12 +9024,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -8941,14 +9121,14 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -8987,7 +9167,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -9017,7 +9197,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools 0.10.5", "lazy_static", "log", @@ -9052,10 +9232,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -9078,9 +9258,9 @@ dependencies = [ [[package]] name = "quanta" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca0b7bac0b97248c40bb77288fc52029cf1459c0461ea1b05ee32ccf011de2c" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" dependencies = [ "crossbeam-utils", "libc", @@ -9237,7 +9417,7 @@ version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", ] [[package]] @@ -9248,9 +9428,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -9298,9 +9478,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom 0.2.12", "libredox", @@ -9336,7 +9516,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -9366,14 +9546,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", "regex-automata 0.4.6", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -9393,7 +9573,7 @@ checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -9404,9 +9584,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "resolv-conf" @@ -9713,11 +9893,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys 0.4.13", @@ -9750,9 +9930,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" dependencies = [ "log", "ring 0.17.8", @@ -9808,9 +9988,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" [[package]] name = "rustls-webpki" @@ -9996,7 +10176,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -10975,7 +11155,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -11038,9 +11218,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "788745a868b0e751750388f4e6546eb921ef714a4317fa6954f7cde114eb2eb7" dependencies = [ "bitvec", "cfg-if", @@ -11052,9 +11232,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "7dc2f4e8bc344b9fc3d5f74f72c2e55bfc38d28dc2ebc69c194a3df424e4d9ac" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", @@ -11191,9 +11371,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -11204,9 +11384,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ "core-foundation-sys", "libc", @@ -11262,14 +11442,14 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -11440,9 +11620,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smol" @@ -11473,7 +11653,7 @@ dependencies = [ "base64 0.21.7", "bip39", "blake2-rfc", - "bs58 0.5.0", + "bs58 0.5.1", "chacha20", "crossbeam-queue", "derive_more", @@ -11644,7 +11824,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -11847,7 +12027,7 @@ dependencies = [ "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", - "bs58 0.5.0", + "bs58 0.5.1", "dyn-clonable", "ed25519-zebra 3.1.0", "futures", @@ -11885,7 +12065,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -11900,7 +12080,6 @@ dependencies = [ "ark-ed-on-bls12-381-bandersnatch-ext", "ark-scale", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] @@ -11923,7 +12102,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 dependencies = [ "quote", "sp-crypto-hashing", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -11942,17 +12121,17 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -11969,11 +12148,10 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] @@ -12174,7 +12352,7 @@ dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive", + "polkavm-derive 0.8.0", "primitive-types", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0)", @@ -12188,12 +12366,12 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive", + "polkavm-derive 0.9.1", "primitive-types", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk)", "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)", @@ -12214,20 +12392,20 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" dependencies = [ "Inflector", "expander 2.1.0", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -12313,7 +12491,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" [[package]] name = "sp-storage" @@ -12331,14 +12509,13 @@ dependencies = [ [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] @@ -12369,10 +12546,9 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" dependencies = [ "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "tracing", "tracing-core", "tracing-subscriber", @@ -12451,7 +12627,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -12470,13 +12646,12 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#6f3caac0517278f0fdd614545c9ef620200bc02f" +source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "wasmtime", ] @@ -12539,9 +12714,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.46.0" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1114ee5900b8569bbc8b1a014a942f937b752af4b44f4607430b5f86cedaac0" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" dependencies = [ "Inflector", "num-format", @@ -12707,7 +12882,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -12720,11 +12895,11 @@ version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -12820,7 +12995,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum 0.24.1", "tempfile", - "toml 0.8.10", + "toml 0.8.12", "walkdir", "wasm-opt", ] @@ -12856,9 +13031,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.52" +version = "2.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" dependencies = [ "proc-macro2", "quote", @@ -12917,8 +13092,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "rustix 0.38.31", + "fastrand 2.0.2", + "rustix 0.38.32", "windows-sys 0.52.0", ] @@ -12937,7 +13112,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.32", "windows-sys 0.48.0", ] @@ -12949,9 +13124,9 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] @@ -12973,18 +13148,18 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -13103,9 +13278,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -13113,7 +13288,7 @@ dependencies = [ "mio", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "signal-hook-registry", "socket2 0.5.6", "tokio-macros", @@ -13128,7 +13303,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -13158,19 +13333,19 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" dependencies = [ - "rustls 0.22.2", + "rustls 0.22.3", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tokio", "tokio-util", ] @@ -13185,7 +13360,7 @@ dependencies = [ "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tokio", "tracing", ] @@ -13201,14 +13376,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.10" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.6", + "toml_edit 0.22.9", ] [[package]] @@ -13226,7 +13401,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "toml_datetime", "winnow 0.5.40", ] @@ -13237,7 +13412,7 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "toml_datetime", "winnow 0.5.40", ] @@ -13248,18 +13423,18 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.6" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", @@ -13275,7 +13450,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", "tracing", @@ -13287,14 +13462,14 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "bytes", "futures-core", "futures-util", "http", "http-body", "http-range-header", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", ] @@ -13318,7 +13493,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tracing-attributes", "tracing-core", ] @@ -13331,7 +13506,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -13374,7 +13549,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -13772,7 +13947,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", "wasm-bindgen-shared", ] @@ -13806,7 +13981,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -13828,9 +14003,9 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.116.0" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" dependencies = [ "anyhow", "libc", @@ -14286,7 +14461,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.31", + "rustix 0.38.32", ] [[package]] @@ -14648,7 +14823,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -14691,7 +14866,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -14711,7 +14886,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -14754,9 +14929,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.10+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" dependencies = [ "cc", "pkg-config", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 705dd1c..9dda983 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -15,10 +15,10 @@ targets = ["x86_64-unknown-linux-gnu"] substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.8.0", optional = true } [dependencies] -codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] } hex-literal = { version = "0.4.1", optional = true } log = { version = "0.4.20", default-features = false } -scale-info = { version = "2.9.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.10.0", default-features = false, features = ["derive", "serde"] } smallvec = "1.11.0" # Substrate @@ -35,6 +35,8 @@ pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", default-feat pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } +pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } +pallet-recovery = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } pallet-session = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } @@ -51,6 +53,7 @@ sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", defaul sp-core = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", default-features = false, tag = "polkadot-v1.8.0" } sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } sp-session = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.8.0" } @@ -80,6 +83,15 @@ pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk" parachains-common = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.8.0", default-features = false } parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.8.0", default-features = false } +# Logion +logion-shared = { git = "https://github.com/logion-network/logion-pallets", default-features = false, tag = "v0.2.1" } +pallet-block-reward = { git = "https://github.com/logion-network/logion-pallets", default-features = false, tag = "v0.2.1" } +pallet-lo-authority-list = { git = "https://github.com/logion-network/logion-pallets", default-features = false, tag = "v0.2.1" } +pallet-logion-loc = { git = "https://github.com/logion-network/logion-pallets", default-features = false, tag = "v0.2.1" } +pallet-logion-vault = { git = "https://github.com/logion-network/logion-pallets", default-features = false, tag = "v0.2.1" } +pallet-logion-vote = { git = "https://github.com/logion-network/logion-pallets", default-features = false, tag = "v0.2.1" } +pallet-verified-recovery = { git = "https://github.com/logion-network/logion-pallets", default-features = false, tag = "v0.2.1" } + [features] default = ["std"] std = [ @@ -100,16 +112,27 @@ std = [ "frame-system/std", "frame-try-runtime?/std", "log/std", + "logion-shared/std", "pallet-aura/std", "pallet-authorship/std", "pallet-balances/std", + "pallet-block-reward/std", "pallet-collator-selection/std", + "pallet-lo-authority-list/std", + "pallet-logion-loc/std", + "pallet-logion-vault/std", + "pallet-logion-vote/std", "pallet-message-queue/std", + "pallet-multisig/std", + "pallet-recovery/std", "pallet-session/std", "pallet-sudo/std", "pallet-timestamp/std", "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", + "pallet-verified-recovery/std", + "pallet-treasury/std", + "pallet-utility/std", "pallet-xcm/std", "parachain-info/std", "parachains-common/std", @@ -148,9 +171,17 @@ runtime-benchmarks = [ "hex-literal", "pallet-balances/runtime-benchmarks", "pallet-collator-selection/runtime-benchmarks", + "pallet-lo-authority-list/runtime-benchmarks", + "pallet-logion-loc/runtime-benchmarks", + "pallet-logion-vault/runtime-benchmarks", + "pallet-logion-vote/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-recovery/runtime-benchmarks", "pallet-sudo/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-verified-recovery/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", "parachains-common/runtime-benchmarks", "polkadot-parachain-primitives/runtime-benchmarks", @@ -172,14 +203,22 @@ try-runtime = [ "pallet-aura/try-runtime", "pallet-authorship/try-runtime", "pallet-balances/try-runtime", + "pallet-block-reward/try-runtime", "pallet-collator-selection/try-runtime", + "pallet-lo-authority-list/try-runtime", + "pallet-logion-loc/try-runtime", + "pallet-logion-vault/try-runtime", + "pallet-logion-vote/try-runtime", "pallet-message-queue/try-runtime", + "pallet-multisig/try-runtime", + "pallet-recovery/try-runtime", "pallet-session/try-runtime", "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", "pallet-transaction-payment/try-runtime", "pallet-treasury/try-runtime", "pallet-utility/try-runtime", + "pallet-verified-recovery/try-runtime", "pallet-vesting/try-runtime", "pallet-xcm/try-runtime", "parachain-info/try-runtime", @@ -187,4 +226,4 @@ try-runtime = [ "sp-runtime/try-runtime", ] -experimental = ["pallet-aura/experimental"] \ No newline at end of file +experimental = ["pallet-aura/experimental"] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 0f5e697..6064537 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -9,20 +9,16 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); mod weights; pub mod xcm_config; +use codec::{Decode, Encode, MaxEncodedLen}; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use cumulus_pallet_xcmp_queue::Config; use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, Get, H160, OpaqueMetadata}; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{ - AccountIdConversion, BlakeTwo256, Block as BlockT, ConvertInto, IdentifyAccount, - IdentityLookup, One, Verify - }, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, MultiSignature, -}; +use sp_core::{crypto::KeyTypeId, Get, H160, H256, OpaqueMetadata}; +use sp_runtime::{create_runtime_str, generic, impl_opaque_keys, traits::{ + AccountIdConversion, BlakeTwo256, Block as BlockT, ConvertInto, IdentifyAccount, + IdentityLookup, One, Verify +}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, MultiSignature}; use sp_std::prelude::*; #[cfg(feature = "std")] @@ -46,25 +42,25 @@ use frame_support::{ }, PalletId, }; -use frame_support::__private::sp_io; -use frame_support::traits::OnRuntimeUpgrade; +use frame_support::traits::{ConstU128, Contains, OnRuntimeUpgrade, Imbalance}; use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, }; -use pallet_transaction_payment::{CurrencyAdapter, Multiplier}; +use pallet_transaction_payment::{ConstFeeMultiplier, CurrencyAdapter, Multiplier}; use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_io::{storage::clear_prefix, KillStorageResult}; -pub use sp_runtime::{MultiAddress, Perbill, Permill}; +pub use sp_runtime::{MultiAddress, Perbill, Permill, Percent}; use xcm_config::{RelayLocation, XcmOriginToTransactDispatchOrigin}; +use scale_info::TypeInfo; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; // Polkadot imports -use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; +use polkadot_runtime_common::{BlockHashCount}; use sp_core::bytes::from_hex; use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; @@ -72,6 +68,10 @@ use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; // XCM Imports use xcm::latest::prelude::BodyId; +// Logion imports +use logion_shared::{CreateRecoveryCallFactory, MultisigApproveAsMultiCallFactory, MultisigAsMultiCallFactory, DistributionKey, RewardDistributor as RewardDistributorTrait}; + + /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. pub type Signature = MultiSignature; @@ -212,7 +212,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("logion"), impl_name: create_runtime_str!("logion"), authoring_version: 1, - spec_version: 3, + spec_version: 4, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -308,23 +308,51 @@ parameter_types! { pub const SS58Prefix: u16 = 2021; } +pub struct BaseCallFilter; +impl Contains for BaseCallFilter { + fn contains(call: &RuntimeCall) -> bool { + match call { + RuntimeCall::Recovery(pallet_recovery::Call::create_recovery{ .. }) => false, + RuntimeCall::Multisig(pallet_multisig::Call::approve_as_multi{ .. }) => false, + RuntimeCall::Multisig(pallet_multisig::Call::as_multi{ .. }) => false, + _ => true + } + } +} + /// The default types are being injected by [`derive_impl`](`frame_support::derive_impl`) from /// [`ParaChainDefaultConfig`](`struct@frame_system::config_preludes::ParaChainDefaultConfig`), /// but overridden as needed. #[derive_impl(frame_system::config_preludes::ParaChainDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Runtime { + /// The basic call filter to use in dispatchable. + type BaseCallFilter = BaseCallFilter; /// The identifier used to distinguish between accounts. type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type RuntimeCall = RuntimeCall; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = AccountIdLookup; /// The index type for storing how many extrinsics an account has signed. type Nonce = Nonce; /// The type for hashing blocks and tries. type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; /// The block type. type Block = Block; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// Runtime version. type Version = Version; + /// Converts a module to the index of the module in `construct_runtime!`. + /// + /// This type is being generated by `construct_runtime!`. + type PalletInfo = PalletInfo; /// The data to be stored in an account. type AccountData = pallet_balances::AccountData; /// The weight of database operations that the runtime can invoke. @@ -333,6 +361,8 @@ impl frame_system::Config for Runtime { type BlockWeights = RuntimeBlockWeights; /// The maximum length of a block (in bytes). type BlockLength = RuntimeBlockLength; + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = weights::frame_system::WeightInfo; /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; /// The action to take on a Runtime Upgrade @@ -346,7 +376,7 @@ impl pallet_timestamp::Config for Runtime { type Moment = u64; type OnTimestampSet = Aura; type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; - type WeightInfo = (); + type WeightInfo = weights::pallet_timestamp::WeightInfo; } impl pallet_authorship::Config for Runtime { @@ -360,20 +390,87 @@ parameter_types! { impl pallet_balances::Config for Runtime { type MaxLocks = ConstU32<50>; + type MaxReserves = (); + type ReserveIdentifier = [u8; 8]; /// The type for recording an account's balance. type Balance = Balance; /// The ubiquitous event type. type RuntimeEvent = RuntimeEvent; type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; + type ExistentialDeposit = ConstU128; type AccountStore = System; - type WeightInfo = pallet_balances::weights::SubstrateWeight; - type MaxReserves = ConstU32<50>; - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = RuntimeFreezeReason; + type WeightInfo = weights::pallet_balances::WeightInfo; type FreezeIdentifier = [u8; 8]; - type MaxFreezes = ConstU32<0>; + type MaxFreezes = (); + type RuntimeHoldReason = (); + type RuntimeFreezeReason = (); +} + +parameter_types! { + pub const InclusionFeesDistributionKey: DistributionKey = DistributionKey { + legal_officers_percent: Percent::from_percent(35), + community_treasury_percent: Percent::from_percent(30), + logion_treasury_percent: Percent::from_percent(35), + loc_owner_percent: Percent::from_percent(0), + }; + + // Inflation: I=0,05 (5%) + // Total supply: N=10^9 + // Block rate: B=6 (Number of seconds between 2 blocks) + // The reward can be calculated as follows: N * (I / (3600 * 24 * 365 / B)) + // We thus mint 10 LGNT every block + pub const InflationAmount: Balance = 10 * LGNT; + pub const InflationDistributionKey: DistributionKey = DistributionKey { + legal_officers_percent: Percent::from_percent(35), + community_treasury_percent: Percent::from_percent(30), + logion_treasury_percent: Percent::from_percent(35), + loc_owner_percent: Percent::from_percent(0), + }; + + pub const FileStorageByteFee: Balance = 2000 * NANO_LGNT; // 2.0 LGNT per MB -> 0.000002 LGNT per B + pub const FileStorageEntryFee: Balance = 0; + pub const FileStorageFeeDistributionKey: DistributionKey = DistributionKey { + legal_officers_percent: Percent::from_percent(80), + community_treasury_percent: Percent::from_percent(20), + logion_treasury_percent: Percent::from_percent(0), + loc_owner_percent: Percent::from_percent(0), + }; + + pub const CertificateFee: Balance = 40 * MILLI_LGNT; // 0.04 LGNT per token + pub const CertificateFeeDistributionKey: DistributionKey = DistributionKey { + legal_officers_percent: Percent::from_percent(20), + community_treasury_percent: Percent::from_percent(80), + logion_treasury_percent: Percent::from_percent(0), + loc_owner_percent: Percent::from_percent(0), + }; + + pub const ValueFeeDistributionKey: DistributionKey = DistributionKey { + legal_officers_percent: Percent::from_percent(0), + community_treasury_percent: Percent::from_percent(0), + logion_treasury_percent: Percent::from_percent(100), + loc_owner_percent: Percent::from_percent(0), + }; + + pub const RecurentFeeDistributionKey: DistributionKey = DistributionKey { + legal_officers_percent: Percent::from_percent(0), + community_treasury_percent: Percent::from_percent(0), + logion_treasury_percent: Percent::from_percent(95), + loc_owner_percent: Percent::from_percent(5), + }; + + pub const IdentityLocLegalFeeDistributionKey: DistributionKey = DistributionKey { + legal_officers_percent: Percent::from_percent(0), + community_treasury_percent: Percent::from_percent(0), + logion_treasury_percent: Percent::from_percent(100), + loc_owner_percent: Percent::from_percent(0), + }; + + pub const OtherLocLegalFeeDistributionKey: DistributionKey = DistributionKey { + legal_officers_percent: Percent::from_percent(0), + community_treasury_percent: Percent::from_percent(0), + logion_treasury_percent: Percent::from_percent(0), + loc_owner_percent: Percent::from_percent(100), + }; } type NegativeImbalance = >::NegativeImbalance; @@ -382,7 +479,8 @@ pub struct DealWithInclusionFees; impl OnUnbalanced for DealWithInclusionFees { fn on_nonzero_unbalanced(fees: NegativeImbalance) { - drop(fees); // Disable fees distribution for the moment + + RewardDistributor::distribute(fees, InclusionFeesDistributionKey::get()); } } @@ -390,16 +488,23 @@ pub type WeightToFee = ConstantMultiplier; parameter_types! { pub FeeMultiplier: Multiplier = Multiplier::one(); - pub const WeightToFeeMultiplier: Balance = 10_000_000; + + // The multiplier is set such as inclusion fees are ~2 LGNT on average. + // Spreadsheet in /docs/inclusion_fees.ods contains the model that lead + // to this result. + // + // This value will probably have to be adjusted once we have more + // usage statistics available. + pub const WeightToFeeMultiplier: Balance = 5_089_484_898; } impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = CurrencyAdapter; - type WeightToFee = WeightToFee; - type LengthToFee = ConstantMultiplier; - type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; type OperationalFeeMultiplier = ConstU8<5>; + type WeightToFee = ConstantMultiplier; + type LengthToFee = ConstantMultiplier; + type FeeMultiplierUpdate = ConstFeeMultiplier; } parameter_types! { @@ -486,7 +591,7 @@ impl pallet_session::Config for Runtime { // Essentially just Aura, but let's be pedantic. type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; - type WeightInfo = (); + type WeightInfo = pallet_session::weights::SubstrateWeight; // No benchmark available } impl pallet_aura::Config for Runtime { @@ -532,7 +637,315 @@ impl pallet_collator_selection::Config for Runtime { impl pallet_sudo::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; - type WeightInfo = (); + type WeightInfo = weights::pallet_sudo::WeightInfo; +} + +parameter_types! { + #[derive(Debug, Eq, Clone, PartialEq, TypeInfo)] + pub const MaxBaseUrlLen: u32 = 2000; + pub const MaxWellKnownNodes: u32 = 100; + #[derive(Debug, Eq, Clone, PartialEq, TypeInfo, PartialOrd, Ord)] + pub const MaxPeerIdLength: u32 = 128; +} + +#[derive(Encode, Decode, Clone, PartialEq, Eq, Debug, TypeInfo, Copy, MaxEncodedLen)] +pub enum Region { + Europe, +} + +impl sp_std::str::FromStr for Region { + type Err = (); + + fn from_str(s: &str) -> Result { + match s { + "Europe" => Ok(Region::Europe), + _ => Err(()), + } + } +} + +impl Default for Region { + + fn default() -> Self { + Self::Europe + } +} + +impl pallet_lo_authority_list::Config for Runtime { + type AddOrigin = EnsureRoot; + type RemoveOrigin = EnsureRoot; + type UpdateOrigin = EnsureRoot; + type Region = Region; + type RuntimeEvent = RuntimeEvent; + type WeightInfo = weights::pallet_lo_authority_list::WeightInfo; + type MaxBaseUrlLen = MaxBaseUrlLen; + type MaxNodes = MaxWellKnownNodes; + type MaxPeerIdLength = MaxPeerIdLength; +} + +parameter_types! { + pub const MaxAccountLocs: u32 = 200; + #[derive(TypeInfo)] + pub const MaxLocMetadata: u32 = 50; + #[derive(TypeInfo)] + pub const MaxLocFiles: u32 = 50; + #[derive(TypeInfo)] + pub const MaxLocLinks: u32 = 50; + pub const MaxCollectionItemFiles: u32 = 10; + pub const MaxCollectionItemTCs: u32 = 10; + pub const MaxTokensRecordFiles: u32 = 10; +} + +pub struct SHA256; +impl Hasher for SHA256 { + + fn hash(data: &Vec) -> H256 { + let bytes = sha2_256(data); + H256(bytes) + } +} + +impl pallet_logion_loc::Config for Runtime { + type LocId = LocId; + type RuntimeEvent = RuntimeEvent; + type Hash = Hash; + type Hasher = SHA256; + type IsLegalOfficer = LoAuthorityList; + type CollectionItemId = Hash; + type TokensRecordId = Hash; + type MaxAccountLocs = MaxAccountLocs; + type MaxLocMetadata = MaxLocMetadata; + type MaxLocFiles = MaxLocFiles; + type MaxLocLinks = MaxLocLinks; + type MaxCollectionItemFiles = MaxCollectionItemFiles; + type MaxCollectionItemTCs = MaxCollectionItemTCs; + type MaxTokensRecordFiles = MaxTokensRecordFiles; + type WeightInfo = weights::pallet_logion_loc::WeightInfo; + type Currency = Balances; + type FileStorageByteFee = FileStorageByteFee; + type FileStorageEntryFee = FileStorageEntryFee; + type RewardDistributor = RewardDistributor; + type FileStorageFeeDistributionKey = FileStorageFeeDistributionKey; + type EthereumAddress = EthereumAddress; + type SponsorshipId = SponsorshipId; + type CertificateFee = CertificateFee; + type CertificateFeeDistributionKey = CertificateFeeDistributionKey; + type TokenIssuance = TokenIssuance; + type ValueFeeDistributionKey = ValueFeeDistributionKey; + type CollectionItemFeeDistributionKey = RecurentFeeDistributionKey; + type TokensRecordFeeDistributionKey = RecurentFeeDistributionKey; + type IdentityLocLegalFeeDistributionKey = IdentityLocLegalFeeDistributionKey; + type TransactionLocLegalFeeDistributionKey = OtherLocLegalFeeDistributionKey; + type CollectionLocLegalFeeDistributionKey = OtherLocLegalFeeDistributionKey; + #[cfg(feature = "runtime-benchmarks")] + type LocIdFactory = (); + #[cfg(feature = "runtime-benchmarks")] + type CollectionItemIdFactory = (); + #[cfg(feature = "runtime-benchmarks")] + type TokensRecordIdFactory = (); + #[cfg(feature = "runtime-benchmarks")] + type EthereumAddressFactory = (); + #[cfg(feature = "runtime-benchmarks")] + type SponsorshipIdFactory = (); +} + +parameter_types! { + pub const RecoveryConfigDepositBase: u64 = 10; + pub const RecoveryFrieldDepositFactor: u64 = 1; + pub const MaxFriends: u16 = 3; + pub const RecoveryDeposit: u64 = 10; +} + +impl pallet_recovery::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ConfigDepositBase = RecoveryConfigDepositBase; + type FriendDepositFactor = RecoveryFrieldDepositFactor; + type MaxFriends = MaxFriends; + type RecoveryDeposit = RecoveryDeposit; + type WeightInfo = weights::pallet_recovery::WeightInfo; +} + +pub struct PalletRecoveryCreateRecoveryCallFactory; +impl CreateRecoveryCallFactory for PalletRecoveryCreateRecoveryCallFactory { + type Call = RuntimeCall; + + fn build_create_recovery_call(legal_officers: Vec, threshold: u16, delay_period: BlockNumber) -> RuntimeCall { + RuntimeCall::Recovery(pallet_recovery::Call::create_recovery{ friends: legal_officers, threshold, delay_period }) + } +} + +#[cfg(feature = "runtime-benchmarks")] +use pallet_verified_recovery::benchmarking::{ + SetupBenchmark, +}; +#[cfg(feature = "runtime-benchmarks")] +pub struct VerifiedRecoverySetupBenchmark; +#[cfg(feature = "runtime-benchmarks")] +impl SetupBenchmark for VerifiedRecoverySetupBenchmark { + + fn setup() -> (AccountId, Vec) { + let requester: AccountId = [0u8;32].into(); + Balances::make_free_balance_be(&requester, Balance::max_value()); + + let loc_id1: LocId = 0; + let legal_officer_id1 = LoAuthorityList::legal_officers()[0].clone(); + Self::setup_loc(loc_id1, &requester, &legal_officer_id1); + + let loc_id2: LocId = 1; + let legal_officer_id2 = LoAuthorityList::legal_officers()[1].clone(); + Self::setup_loc(loc_id2, &requester, &legal_officer_id2); + ( + requester, + Vec::from([ + legal_officer_id1, + legal_officer_id2, + ]) + ) + } +} +#[cfg(feature = "runtime-benchmarks")] +impl VerifiedRecoverySetupBenchmark { + fn setup_loc(loc_id: LocId, requester: &AccountId, legal_officer_id: &AccountId) { + let _ = LogionLoc::create_polkadot_identity_loc( + RuntimeOrigin::signed(requester.clone()), + loc_id, + legal_officer_id.clone(), + 0u32.into(), + ItemsParams::empty(), + ); + let _ = LogionLoc::close( + RuntimeOrigin::signed(legal_officer_id.clone()), + loc_id, + None, + false, + ); + } +} + +impl pallet_verified_recovery::Config for Runtime { + type LocId = LocId; + type CreateRecoveryCallFactory = PalletRecoveryCreateRecoveryCallFactory; + type LocQuery = LogionLoc; + type RuntimeEvent = RuntimeEvent; + type WeightInfo = weights::pallet_verified_recovery::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type SetupBenchmark = VerifiedRecoverySetupBenchmark; +} + +parameter_types! { + pub const MultiSigDepositBase: Balance = 500; + pub const MultiSigDepositFactor: Balance = 100; + pub const MaxSignatories: u16 = 20; +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = MultiSigDepositBase; + type DepositFactor = MultiSigDepositFactor; + type MaxSignatories = MaxSignatories; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +pub struct PalletMultisigApproveAsMultiCallFactory; +impl MultisigApproveAsMultiCallFactory> for PalletMultisigApproveAsMultiCallFactory { + type Call = RuntimeCall; + + fn build_approve_as_multi_call( + threshold: u16, + other_signatories: Vec, + maybe_timepoint: Option>, + call_hash: [u8; 32], + max_weight: Weight + ) -> RuntimeCall { + RuntimeCall::Multisig(pallet_multisig::Call::approve_as_multi{ threshold, other_signatories, maybe_timepoint, call_hash, max_weight }) + } +} + +pub struct PalletMultisigAsMultiCallFactory; +impl MultisigAsMultiCallFactory> for PalletMultisigAsMultiCallFactory { + type Call = RuntimeCall; + + fn build_as_multi_call( + threshold: u16, + other_signatories: Vec, + maybe_timepoint: Option>, + call: Box, + max_weight: Weight, + ) -> RuntimeCall { + RuntimeCall::Multisig(pallet_multisig::Call::as_multi{ threshold, other_signatories, maybe_timepoint, call, max_weight }) + } +} + +impl pallet_logion_vault::Config for Runtime { + type RuntimeCall = RuntimeCall; + type MultisigApproveAsMultiCallFactory = PalletMultisigApproveAsMultiCallFactory; + type MultisigAsMultiCallFactory = PalletMultisigAsMultiCallFactory; + type IsLegalOfficer = LoAuthorityList; + type RuntimeEvent = RuntimeEvent; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +#[cfg(feature = "runtime-benchmarks")] +use pallet_logion_vote::benchmarking::{ + LocSetup, +}; +#[cfg(feature = "runtime-benchmarks")] +use logion_shared::IsLegalOfficer; +use pallet_logion_loc::Hasher; +#[cfg(feature = "runtime-benchmarks")] +use pallet_logion_loc::ItemsParams; +use pallet_multisig::Timepoint; +use sp_io::hashing::sha2_256; +use sp_runtime::traits::AccountIdLookup; + +#[cfg(feature = "runtime-benchmarks")] +pub struct VoteLocSetup; +#[cfg(feature = "runtime-benchmarks")] +impl LocSetup for VoteLocSetup { + + fn setup_vote_loc() -> (LocId, AccountId) { + let loc_id: LocId = 0; + let requester: AccountId = [0u8;32].into(); + Balances::make_free_balance_be(&requester, Balance::max_value()); + let legal_officer_id = LoAuthorityList::legal_officers()[0].clone(); + let _ = LogionLoc::create_polkadot_identity_loc( + RuntimeOrigin::signed(requester), + loc_id, + legal_officer_id.clone(), + 0u32.into(), + ItemsParams::empty(), + ); + let _ = LogionLoc::close( + RuntimeOrigin::signed(legal_officer_id.clone()), + loc_id, + None, + false, + ); + (loc_id, legal_officer_id) + } +} + + +parameter_types! { + #[derive(Debug, PartialEq, TypeInfo)] + pub const MaxBallots: u32 = 12; +} + +impl pallet_logion_vote::Config for Runtime { + type LocId = LocId; + type RuntimeEvent = RuntimeEvent; + type IsLegalOfficer = LoAuthorityList; + type LocValidity = LogionLoc; + type LocQuery = LogionLoc; + type LegalOfficerCreation = LoAuthorityList; + type MaxBallots = MaxBallots; + type WeightInfo = weights::pallet_logion_vote::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type LocSetup = VoteLocSetup; } parameter_types! { @@ -599,11 +1012,42 @@ impl pallet_treasury::Config for Runtime { type PayoutPeriod = SpendPayoutPeriod; } +pub struct RewardDistributor; +impl logion_shared::RewardDistributor +for RewardDistributor +{ + fn payout_community_treasury(reward: NegativeImbalance) { + if reward != NegativeImbalance::zero() { + Balances::resolve_creating(&CommunityTreasuryPalletId::get().into_account_truncating(), reward); + } + } + + fn payout_logion_treasury(reward: NegativeImbalance) { + if reward != NegativeImbalance::zero() { + Balances::resolve_creating(&LogionTreasuryPalletId::get().into_account_truncating(), reward); + } + } + + fn payout_to(reward: NegativeImbalance, account: &AccountId) { + if reward != NegativeImbalance::zero() { + Balances::resolve_creating(account, reward); + } + } +} + +impl pallet_block_reward::Config for Runtime { + type Currency = Balances; + type RewardAmount = InflationAmount; + type RewardDistributor = RewardDistributor; + type DistributionKey = InflationDistributionKey; + type IsLegalOfficer = LoAuthorityList; +} + impl pallet_utility::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; type PalletsOrigin = OriginCaller; - type WeightInfo = pallet_utility::weights::SubstrateWeight; + type WeightInfo = weights::pallet_utility::WeightInfo; } parameter_types! { @@ -659,18 +1103,40 @@ construct_runtime!( // Vesting. Vesting: pallet_vesting = 50, + + // Logion. + LogionLoc: pallet_logion_loc = 60, + BlockReward: pallet_block_reward = 61, + LoAuthorityList: pallet_lo_authority_list = 62, + Vote: pallet_logion_vote = 63, + Recovery: pallet_recovery = 64, + VerifiedRecovery: pallet_verified_recovery = 65, + Multisig: pallet_multisig = 66, + Vault: pallet_logion_vault = 67, + } ); #[cfg(feature = "runtime-benchmarks")] mod benches { frame_benchmarking::define_benchmarks!( + [frame_benchmarking, BaselineBench::] [frame_system, SystemBench::] [pallet_balances, Balances] [pallet_session, SessionBench::] [pallet_timestamp, Timestamp] [pallet_collator_selection, CollatorSelection] [cumulus_pallet_xcmp_queue, XcmpQueue] + [pallet_lo_authority_list, LoAuthorityList] + [pallet_logion_loc, LogionLoc] + [pallet_logion_vote, Vote] + [pallet_multisig, Multisig] + [pallet_recovery, Recovery] + [pallet_sudo, Sudo] + [pallet_timestamp, Timestamp] + [pallet_validator_set, ValidatorSet] + [pallet_verified_recovery, VerifiedRecovery] + [pallet_utility, Utility] ); } diff --git a/runtime/src/weights/frame_system.rs b/runtime/src/weights/frame_system.rs new file mode 100644 index 0000000..1ba553f --- /dev/null +++ b/runtime/src/weights/frame_system.rs @@ -0,0 +1,160 @@ + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-03-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// frame_system +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/frame_system.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_375_000 picoseconds. + Weight::from_parts(2_503_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(321, 0).saturating_mul(b.into())) + } + /// The range of component `b` is `[0, 3932160]`. + fn remark_with_event(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_854_000 picoseconds. + Weight::from_parts(6_076_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_178, 0).saturating_mul(b.into())) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 4_331_000 picoseconds. + Weight::from_parts(4_600_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 83_110_030_000 picoseconds. + Weight::from_parts(87_155_530_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_773_000 picoseconds. + Weight::from_parts(2_839_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_239 + .saturating_add(Weight::from_parts(876_871, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_750_000 picoseconds. + Weight::from_parts(2_821_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_212 + .saturating_add(Weight::from_parts(651_618, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `48 + p * (69 ±0)` + // Estimated: `59 + p * (70 ±0)` + // Minimum execution time: 5_173_000 picoseconds. + Weight::from_parts(5_343_000, 0) + .saturating_add(Weight::from_parts(0, 59)) + // Standard Error: 2_240 + .saturating_add(Weight::from_parts(1_197_374, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) + } + /// Storage: `System::AuthorizedUpgrade` (r:0 w:1) + /// Proof: `System::AuthorizedUpgrade` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`) + fn authorize_upgrade() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_788_000 picoseconds. + Weight::from_parts(17_714_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `System::AuthorizedUpgrade` (r:1 w:1) + /// Proof: `System::AuthorizedUpgrade` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) + fn apply_authorized_upgrade() -> Weight { + // Proof Size summary in bytes: + // Measured: `22` + // Estimated: `1518` + // Minimum execution time: 87_384_896_000 picoseconds. + Weight::from_parts(91_497_632_000, 0) + .saturating_add(Weight::from_parts(0, 1518)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(3)) + } +} diff --git a/runtime/src/weights/mod.rs b/runtime/src/weights/mod.rs index e5ba268..7acd25f 100644 --- a/runtime/src/weights/mod.rs +++ b/runtime/src/weights/mod.rs @@ -19,6 +19,17 @@ pub mod block_weights; pub mod extrinsic_weights; +pub mod frame_system; +pub mod pallet_balances; +pub mod pallet_lo_authority_list; +pub mod pallet_logion_loc; +pub mod pallet_logion_vote; +pub mod pallet_multisig; +pub mod pallet_recovery; +pub mod pallet_sudo; +pub mod pallet_timestamp; +pub mod pallet_utility; +pub mod pallet_verified_recovery; pub mod rocksdb_weights; pub use block_weights::constants::BlockExecutionWeight; diff --git a/runtime/src/weights/pallet_balances.rs b/runtime/src/weights/pallet_balances.rs new file mode 100644 index 0000000..4c9779d --- /dev/null +++ b/runtime/src/weights/pallet_balances.rs @@ -0,0 +1,147 @@ + +//! Autogenerated weights for `pallet_balances` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-03-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_balances +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_balances.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_balances`. +pub struct WeightInfo(PhantomData); +impl pallet_balances::WeightInfo for WeightInfo { + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_allow_death() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 48_875_000 picoseconds. + Weight::from_parts(49_858_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_keep_alive() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 38_697_000 picoseconds. + Weight::from_parts(39_734_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_set_balance_creating() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 14_582_000 picoseconds. + Weight::from_parts(15_449_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_set_balance_killing() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 19_811_000 picoseconds. + Weight::from_parts(21_958_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `6196` + // Minimum execution time: 51_724_000 picoseconds. + Weight::from_parts(54_233_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_all() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 49_491_000 picoseconds. + Weight::from_parts(50_659_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_unreserve() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 17_096_000 picoseconds. + Weight::from_parts(18_774_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `System::Account` (r:999 w:999) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `u` is `[1, 1000]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (136 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 18_640_000 picoseconds. + Weight::from_parts(19_141_000, 0) + .saturating_add(Weight::from_parts(0, 990)) + // Standard Error: 18_605 + .saturating_add(Weight::from_parts(14_607_700, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) + } + fn force_adjust_total_issuance() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_417_000 picoseconds. + Weight::from_parts(6_703_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/runtime/src/weights/pallet_lo_authority_list.rs b/runtime/src/weights/pallet_lo_authority_list.rs new file mode 100644 index 0000000..c009cf0 --- /dev/null +++ b/runtime/src/weights/pallet_lo_authority_list.rs @@ -0,0 +1,107 @@ + +//! Autogenerated weights for `pallet_lo_authority_list` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_lo_authority_list +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_lo_authority_list.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_lo_authority_list`. +pub struct WeightInfo(PhantomData); +impl pallet_lo_authority_list::WeightInfo for WeightInfo { + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:101 w:1) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: Some(2185), added: 4660, mode: `MaxEncodedLen`) + /// Storage: `LoAuthorityList::LegalOfficerNodes` (r:0 w:1) + /// Proof: `LoAuthorityList::LegalOfficerNodes` (`max_values`: Some(1), `max_size`: Some(13002), added: 13497, mode: `MaxEncodedLen`) + fn add_legal_officer() -> Weight { + // Proof Size summary in bytes: + // Measured: `9309` + // Estimated: `471650` + // Minimum execution time: 418_485_000 picoseconds. + Weight::from_parts(426_943_000, 0) + .saturating_add(Weight::from_parts(0, 471650)) + .saturating_add(T::DbWeight::get().reads(101)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:101 w:1) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: Some(2185), added: 4660, mode: `MaxEncodedLen`) + /// Storage: `LoAuthorityList::LegalOfficerNodes` (r:0 w:1) + /// Proof: `LoAuthorityList::LegalOfficerNodes` (`max_values`: Some(1), `max_size`: Some(13002), added: 13497, mode: `MaxEncodedLen`) + fn remove_legal_officer() -> Weight { + // Proof Size summary in bytes: + // Measured: `9400` + // Estimated: `471650` + // Minimum execution time: 598_565_000 picoseconds. + Weight::from_parts(621_236_000, 0) + .saturating_add(Weight::from_parts(0, 471650)) + .saturating_add(T::DbWeight::get().reads(101)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:101 w:1) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: Some(2185), added: 4660, mode: `MaxEncodedLen`) + /// Storage: `LoAuthorityList::LegalOfficerNodes` (r:0 w:1) + /// Proof: `LoAuthorityList::LegalOfficerNodes` (`max_values`: Some(1), `max_size`: Some(13002), added: 13497, mode: `MaxEncodedLen`) + fn update_legal_officer() -> Weight { + // Proof Size summary in bytes: + // Measured: `9400` + // Estimated: `471650` + // Minimum execution time: 410_435_000 picoseconds. + Weight::from_parts(427_006_000, 0) + .saturating_add(Weight::from_parts(0, 471650)) + .saturating_add(T::DbWeight::get().reads(101)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:101 w:1) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: Some(2185), added: 4660, mode: `MaxEncodedLen`) + /// Storage: `LoAuthorityList::LegalOfficerNodes` (r:0 w:1) + /// Proof: `LoAuthorityList::LegalOfficerNodes` (`max_values`: Some(1), `max_size`: Some(13002), added: 13497, mode: `MaxEncodedLen`) + fn import_host_legal_officer() -> Weight { + // Proof Size summary in bytes: + // Measured: `9309` + // Estimated: `471650` + // Minimum execution time: 406_380_000 picoseconds. + Weight::from_parts(432_396_000, 0) + .saturating_add(Weight::from_parts(0, 471650)) + .saturating_add(T::DbWeight::get().reads(101)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:2 w:1) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: Some(2185), added: 4660, mode: `MaxEncodedLen`) + fn import_guest_legal_officer() -> Weight { + // Proof Size summary in bytes: + // Measured: `878` + // Estimated: `10310` + // Minimum execution time: 23_398_000 picoseconds. + Weight::from_parts(27_347_000, 0) + .saturating_add(Weight::from_parts(0, 10310)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/src/weights/pallet_logion_loc.rs b/runtime/src/weights/pallet_logion_loc.rs new file mode 100644 index 0000000..4cff6a2 --- /dev/null +++ b/runtime/src/weights/pallet_logion_loc.rs @@ -0,0 +1,459 @@ + +//! Autogenerated weights for `pallet_logion_loc` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2024-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_logion_loc +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_logion_loc.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_logion_loc`. +pub struct WeightInfo(PhantomData); +impl pallet_logion_loc::WeightInfo for WeightInfo { + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:51 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::AccountLocsMap` (r:1 w:1) + /// Proof: `LogionLoc::AccountLocsMap` (`max_values`: None, `max_size`: Some(3250), added: 5725, mode: `MaxEncodedLen`) + fn create_polkadot_identity_loc() -> Weight { + // Proof Size summary in bytes: + // Measured: `10293` + // Estimated: `867378` + // Minimum execution time: 226_327_000 picoseconds. + Weight::from_parts(233_772_000, 0) + .saturating_add(Weight::from_parts(0, 867378)) + .saturating_add(T::DbWeight::get().reads(53)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn create_logion_identity_loc() -> Weight { + // Proof Size summary in bytes: + // Measured: `271` + // Estimated: `17978` + // Minimum execution time: 18_671_000 picoseconds. + Weight::from_parts(18_969_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:52 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::AccountLocsMap` (r:1 w:1) + /// Proof: `LogionLoc::AccountLocsMap` (`max_values`: None, `max_size`: Some(3250), added: 5725, mode: `MaxEncodedLen`) + fn create_polkadot_transaction_loc() -> Weight { + // Proof Size summary in bytes: + // Measured: `10440` + // Estimated: `884366` + // Minimum execution time: 231_602_000 picoseconds. + Weight::from_parts(249_136_000, 0) + .saturating_add(Weight::from_parts(0, 884366)) + .saturating_add(T::DbWeight::get().reads(54)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:2 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn create_logion_transaction_loc() -> Weight { + // Proof Size summary in bytes: + // Measured: `440` + // Estimated: `34966` + // Minimum execution time: 20_135_000 picoseconds. + Weight::from_parts(20_624_000, 0) + .saturating_add(Weight::from_parts(0, 34966)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::AccountLocsMap` (r:1 w:1) + /// Proof: `LogionLoc::AccountLocsMap` (`max_values`: None, `max_size`: Some(3250), added: 5725, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::LocMap` (r:52 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn create_collection_loc() -> Weight { + // Proof Size summary in bytes: + // Measured: `10440` + // Estimated: `884366` + // Minimum execution time: 231_018_000 picoseconds. + Weight::from_parts(236_069_000, 0) + .saturating_add(Weight::from_parts(0, 884366)) + .saturating_add(T::DbWeight::get().reads(54)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn add_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `5190` + // Estimated: `17978` + // Minimum execution time: 36_129_000 picoseconds. + Weight::from_parts(37_419_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn add_file() -> Weight { + // Proof Size summary in bytes: + // Measured: `5386` + // Estimated: `17978` + // Minimum execution time: 42_500_000 picoseconds. + Weight::from_parts(45_224_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:2 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn add_link() -> Weight { + // Proof Size summary in bytes: + // Measured: `5249` + // Estimated: `34966` + // Minimum execution time: 35_292_000 picoseconds. + Weight::from_parts(36_338_000, 0) + .saturating_add(Weight::from_parts(0, 34966)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn make_void() -> Weight { + // Proof Size summary in bytes: + // Measured: `339` + // Estimated: `17978` + // Minimum execution time: 16_935_000 picoseconds. + Weight::from_parts(17_499_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:2 w:2) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn make_void_and_replace() -> Weight { + // Proof Size summary in bytes: + // Measured: `521` + // Estimated: `34966` + // Minimum execution time: 24_661_000 picoseconds. + Weight::from_parts(27_556_000, 0) + .saturating_add(Weight::from_parts(0, 34966)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:0) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::CollectionItemsMap` (r:1 w:1) + /// Proof: `LogionLoc::CollectionItemsMap` (`max_values`: None, `max_size`: Some(1989), added: 4464, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::CollectionSizeMap` (r:1 w:1) + /// Proof: `LogionLoc::CollectionSizeMap` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + fn add_collection_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `410` + // Estimated: `17978` + // Minimum execution time: 65_162_000 picoseconds. + Weight::from_parts(72_543_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:1 w:0) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::VerifiedIssuersMap` (r:1 w:1) + /// Proof: `LogionLoc::VerifiedIssuersMap` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) + fn nominate_issuer() -> Weight { + // Proof Size summary in bytes: + // Measured: `506` + // Estimated: `17978` + // Minimum execution time: 18_969_000 picoseconds. + Weight::from_parts(19_436_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::VerifiedIssuersMap` (r:1 w:1) + /// Proof: `LogionLoc::VerifiedIssuersMap` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::LocsByVerifiedIssuerMap` (r:1 w:0) + /// Proof: `LogionLoc::LocsByVerifiedIssuerMap` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn dismiss_issuer() -> Weight { + // Proof Size summary in bytes: + // Measured: `457` + // Estimated: `3922` + // Minimum execution time: 22_722_000 picoseconds. + Weight::from_parts(24_055_000, 0) + .saturating_add(Weight::from_parts(0, 3922)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:1 w:0) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::VerifiedIssuersMap` (r:1 w:0) + /// Proof: `LogionLoc::VerifiedIssuersMap` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::VerifiedIssuersByLocMap` (r:1 w:1) + /// Proof: `LogionLoc::VerifiedIssuersByLocMap` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::LocsByVerifiedIssuerMap` (r:0 w:1) + /// Proof: `LogionLoc::LocsByVerifiedIssuerMap` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn set_issuer_selection() -> Weight { + // Proof Size summary in bytes: + // Measured: `694` + // Estimated: `17978` + // Minimum execution time: 29_004_000 picoseconds. + Weight::from_parts(30_911_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:0) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::TokensRecordsMap` (r:1 w:1) + /// Proof: `LogionLoc::TokensRecordsMap` (`max_values`: None, `max_size`: Some(1146), added: 3621, mode: `MaxEncodedLen`) + fn add_tokens_record() -> Weight { + // Proof Size summary in bytes: + // Measured: `343` + // Estimated: `17978` + // Minimum execution time: 26_889_000 picoseconds. + Weight::from_parts(28_123_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::SponsorshipMap` (r:1 w:1) + /// Proof: `LogionLoc::SponsorshipMap` (`max_values`: None, `max_size`: Some(147), added: 2622, mode: `MaxEncodedLen`) + fn create_other_identity_loc() -> Weight { + // Proof Size summary in bytes: + // Measured: `415` + // Estimated: `17978` + // Minimum execution time: 30_304_000 picoseconds. + Weight::from_parts(31_096_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:1 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::SponsorshipMap` (r:1 w:1) + /// Proof: `LogionLoc::SponsorshipMap` (`max_values`: None, `max_size`: Some(147), added: 2622, mode: `MaxEncodedLen`) + fn sponsor() -> Weight { + // Proof Size summary in bytes: + // Measured: `271` + // Estimated: `3736` + // Minimum execution time: 17_133_000 picoseconds. + Weight::from_parts(17_641_000, 0) + .saturating_add(Weight::from_parts(0, 3736)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::SponsorshipMap` (r:1 w:1) + /// Proof: `LogionLoc::SponsorshipMap` (`max_values`: None, `max_size`: Some(147), added: 2622, mode: `MaxEncodedLen`) + fn withdraw_sponsorship() -> Weight { + // Proof Size summary in bytes: + // Measured: `210` + // Estimated: `3612` + // Minimum execution time: 12_343_000 picoseconds. + Weight::from_parts(13_411_000, 0) + .saturating_add(Weight::from_parts(0, 3612)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::VerifiedIssuersByLocMap` (r:1 w:0) + /// Proof: `LogionLoc::VerifiedIssuersByLocMap` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + fn acknowledge_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `5356` + // Estimated: `17978` + // Minimum execution time: 34_384_000 picoseconds. + Weight::from_parts(35_457_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::VerifiedIssuersByLocMap` (r:1 w:0) + /// Proof: `LogionLoc::VerifiedIssuersByLocMap` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + fn acknowledge_file() -> Weight { + // Proof Size summary in bytes: + // Measured: `5556` + // Estimated: `17978` + // Minimum execution time: 32_574_000 picoseconds. + Weight::from_parts(33_820_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::VerifiedIssuersByLocMap` (r:1 w:0) + /// Proof: `LogionLoc::VerifiedIssuersByLocMap` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + fn acknowledge_link() -> Weight { + // Proof Size summary in bytes: + // Measured: `5056` + // Estimated: `17978` + // Minimum execution time: 31_786_000 picoseconds. + Weight::from_parts(33_044_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + fn close() -> Weight { + // Proof Size summary in bytes: + // Measured: `15089` + // Estimated: `17978` + // Minimum execution time: 69_538_000 picoseconds. + Weight::from_parts(72_659_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:2 w:0) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::AccountLocsMap` (r:1 w:0) + /// Proof: `LogionLoc::AccountLocsMap` (`max_values`: None, `max_size`: Some(3250), added: 5725, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::InvitedContributorsByLocMap` (r:1 w:1) + /// Proof: `LogionLoc::InvitedContributorsByLocMap` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + fn set_invited_contributor_selection() -> Weight { + // Proof Size summary in bytes: + // Measured: `633` + // Estimated: `34966` + // Minimum execution time: 23_595_000 picoseconds. + Weight::from_parts(24_072_000, 0) + .saturating_add(Weight::from_parts(0, 34966)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::LocMap` (r:1 w:1) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: Some(14513), added: 16988, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::AccountLocsMap` (r:1 w:1) + /// Proof: `LogionLoc::AccountLocsMap` (`max_values`: None, `max_size`: Some(3250), added: 5725, mode: `MaxEncodedLen`) + fn import_loc() -> Weight { + // Proof Size summary in bytes: + // Measured: `66` + // Estimated: `17978` + // Minimum execution time: 66_516_000 picoseconds. + Weight::from_parts(67_546_000, 0) + .saturating_add(Weight::from_parts(0, 17978)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LogionLoc::CollectionItemsMap` (r:1 w:1) + /// Proof: `LogionLoc::CollectionItemsMap` (`max_values`: None, `max_size`: Some(1989), added: 4464, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::CollectionSizeMap` (r:1 w:1) + /// Proof: `LogionLoc::CollectionSizeMap` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + fn import_collection_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `66` + // Estimated: `5454` + // Minimum execution time: 22_633_000 picoseconds. + Weight::from_parts(23_501_000, 0) + .saturating_add(Weight::from_parts(0, 5454)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LogionLoc::TokensRecordsMap` (r:1 w:1) + /// Proof: `LogionLoc::TokensRecordsMap` (`max_values`: None, `max_size`: Some(1146), added: 3621, mode: `MaxEncodedLen`) + fn import_tokens_record() -> Weight { + // Proof Size summary in bytes: + // Measured: `66` + // Estimated: `4611` + // Minimum execution time: 17_527_000 picoseconds. + Weight::from_parts(18_025_000, 0) + .saturating_add(Weight::from_parts(0, 4611)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::InvitedContributorsByLocMap` (r:1 w:1) + /// Proof: `LogionLoc::InvitedContributorsByLocMap` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + fn import_invited_contributor_selection() -> Weight { + // Proof Size summary in bytes: + // Measured: `66` + // Estimated: `3545` + // Minimum execution time: 8_832_000 picoseconds. + Weight::from_parts(9_897_000, 0) + .saturating_add(Weight::from_parts(0, 3545)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::VerifiedIssuersMap` (r:1 w:1) + /// Proof: `LogionLoc::VerifiedIssuersMap` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) + fn import_verified_issuer() -> Weight { + // Proof Size summary in bytes: + // Measured: `66` + // Estimated: `3578` + // Minimum execution time: 9_395_000 picoseconds. + Weight::from_parts(9_642_000, 0) + .saturating_add(Weight::from_parts(0, 3578)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `LogionLoc::VerifiedIssuersByLocMap` (r:1 w:1) + /// Proof: `LogionLoc::VerifiedIssuersByLocMap` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `LogionLoc::LocsByVerifiedIssuerMap` (r:0 w:1) + /// Proof: `LogionLoc::LocsByVerifiedIssuerMap` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn import_verified_issuer_selection() -> Weight { + // Proof Size summary in bytes: + // Measured: `66` + // Estimated: `3545` + // Minimum execution time: 12_877_000 picoseconds. + Weight::from_parts(13_142_000, 0) + .saturating_add(Weight::from_parts(0, 3545)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `LogionLoc::SponsorshipMap` (r:1 w:1) + /// Proof: `LogionLoc::SponsorshipMap` (`max_values`: None, `max_size`: Some(147), added: 2622, mode: `MaxEncodedLen`) + fn import_sponsorship() -> Weight { + // Proof Size summary in bytes: + // Measured: `66` + // Estimated: `3612` + // Minimum execution time: 11_420_000 picoseconds. + Weight::from_parts(13_370_000, 0) + .saturating_add(Weight::from_parts(0, 3612)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/src/weights/pallet_logion_vote.rs b/runtime/src/weights/pallet_logion_vote.rs new file mode 100644 index 0000000..f8b66b2 --- /dev/null +++ b/runtime/src/weights/pallet_logion_vote.rs @@ -0,0 +1,69 @@ + +//! Autogenerated weights for `pallet_logion_vote` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-12-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_logion_vote +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_logion_vote.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_logion_vote`. +pub struct WeightInfo(PhantomData); +impl pallet_logion_vote::WeightInfo for WeightInfo { + /// Storage: `LoAuthorityList::LegalOfficerSet` (r:3 w:0) + /// Proof: `LoAuthorityList::LegalOfficerSet` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:1 w:0) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Vote::LastVoteId` (r:1 w:1) + /// Proof: `Vote::LastVoteId` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Vote::Votes` (r:0 w:1) + /// Proof: `Vote::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn create_vote_for_all_legal_officers() -> Weight { + // Proof Size summary in bytes: + // Measured: `537` + // Estimated: `8952` + // Minimum execution time: 28_024_000 picoseconds. + Weight::from_parts(28_642_000, 0) + .saturating_add(Weight::from_parts(0, 8952)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Vote::Votes` (r:1 w:1) + /// Proof: `Vote::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn vote() -> Weight { + // Proof Size summary in bytes: + // Measured: `166` + // Estimated: `3631` + // Minimum execution time: 17_829_000 picoseconds. + Weight::from_parts(18_854_000, 0) + .saturating_add(Weight::from_parts(0, 3631)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/src/weights/pallet_multisig.rs b/runtime/src/weights/pallet_multisig.rs new file mode 100644 index 0000000..452e299 --- /dev/null +++ b/runtime/src/weights/pallet_multisig.rs @@ -0,0 +1,149 @@ + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-12-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_multisig +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_multisig.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_586_000 picoseconds. + Weight::from_parts(9_097_976, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 5 + .saturating_add(Weight::from_parts(440, 0).saturating_mul(z.into())) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(785), added: 3260, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 20]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `235 + s * (4 ±0)` + // Estimated: `4250` + // Minimum execution time: 36_048_000 picoseconds. + Weight::from_parts(34_727_113, 0) + .saturating_add(Weight::from_parts(0, 4250)) + // Standard Error: 4_438 + .saturating_add(Weight::from_parts(146_412, 0).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_155, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(785), added: 3260, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 20]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `4250` + // Minimum execution time: 20_014_000 picoseconds. + Weight::from_parts(19_238_282, 0) + .saturating_add(Weight::from_parts(0, 4250)) + // Standard Error: 3_709 + .saturating_add(Weight::from_parts(82_658, 0).saturating_mul(s.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_151, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(785), added: 3260, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 20]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `377 + s * (36 ±0)` + // Estimated: `4250` + // Minimum execution time: 39_548_000 picoseconds. + Weight::from_parts(37_731_312, 0) + .saturating_add(Weight::from_parts(0, 4250)) + // Standard Error: 37_762 + .saturating_add(Weight::from_parts(342_317, 0).saturating_mul(s.into())) + // Standard Error: 70 + .saturating_add(Weight::from_parts(1_088, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(785), added: 3260, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 20]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `235 + s * (4 ±0)` + // Estimated: `4250` + // Minimum execution time: 33_669_000 picoseconds. + Weight::from_parts(34_694_225, 0) + .saturating_add(Weight::from_parts(0, 4250)) + // Standard Error: 4_266 + .saturating_add(Weight::from_parts(141_583, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(785), added: 3260, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 20]`. + fn approve_as_multi_approve(_s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `4250` + // Minimum execution time: 16_782_000 picoseconds. + Weight::from_parts(22_205_158, 0) + .saturating_add(Weight::from_parts(0, 4250)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(785), added: 3260, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 20]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `441 + s * (4 ±0)` + // Estimated: `4250` + // Minimum execution time: 33_701_000 picoseconds. + Weight::from_parts(36_858_745, 0) + .saturating_add(Weight::from_parts(0, 4250)) + // Standard Error: 5_473 + .saturating_add(Weight::from_parts(64_461, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/src/weights/pallet_recovery.rs b/runtime/src/weights/pallet_recovery.rs new file mode 100644 index 0000000..170a02a --- /dev/null +++ b/runtime/src/weights/pallet_recovery.rs @@ -0,0 +1,172 @@ + +//! Autogenerated weights for `pallet_recovery` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-12-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_recovery +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_recovery.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_recovery`. +pub struct WeightInfo(PhantomData); +impl pallet_recovery::WeightInfo for WeightInfo { + /// Storage: `Recovery::Proxy` (r:1 w:0) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + fn as_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `148` + // Estimated: `3545` + // Minimum execution time: 15_669_000 picoseconds. + Weight::from_parts(16_064_000, 0) + .saturating_add(Weight::from_parts(0, 3545)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Recovery::Proxy` (r:0 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + fn set_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_616_000 picoseconds. + Weight::from_parts(11_054_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Recovery::Recoverable` (r:1 w:1) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(159), added: 2634, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 3]`. + fn create_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3624` + // Minimum execution time: 25_862_000 picoseconds. + Weight::from_parts(28_680_098, 0) + .saturating_add(Weight::from_parts(0, 3624)) + // Standard Error: 30_492 + .saturating_add(Weight::from_parts(144_846, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(159), added: 2634, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(197), added: 2672, mode: `MaxEncodedLen`) + fn initiate_recovery() -> Weight { + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `3662` + // Minimum execution time: 30_702_000 picoseconds. + Weight::from_parts(31_909_000, 0) + .saturating_add(Weight::from_parts(0, 3662)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(159), added: 2634, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(197), added: 2672, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 3]`. + fn vouch_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `220 + n * (67 ±0)` + // Estimated: `3662` + // Minimum execution time: 20_291_000 picoseconds. + Weight::from_parts(20_728_765, 0) + .saturating_add(Weight::from_parts(0, 3662)) + // Standard Error: 20_188 + .saturating_add(Weight::from_parts(551_024, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Recovery::Recoverable` (r:1 w:0) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(159), added: 2634, mode: `MaxEncodedLen`) + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:0) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(197), added: 2672, mode: `MaxEncodedLen`) + /// Storage: `Recovery::Proxy` (r:1 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 3]`. + fn claim_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `255 + n * (66 ±0)` + // Estimated: `3662` + // Minimum execution time: 24_952_000 picoseconds. + Weight::from_parts(26_814_494, 0) + .saturating_add(Weight::from_parts(0, 3662)) + // Standard Error: 28_488 + .saturating_add(Weight::from_parts(105_428, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:1) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(197), added: 2672, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 3]`. + fn close_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `344 + n * (33 ±0)` + // Estimated: `3662` + // Minimum execution time: 36_437_000 picoseconds. + Weight::from_parts(38_352_961, 0) + .saturating_add(Weight::from_parts(0, 3662)) + // Standard Error: 33_667 + .saturating_add(Weight::from_parts(68_414, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Recovery::ActiveRecoveries` (r:1 w:0) + /// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(197), added: 2672, mode: `MaxEncodedLen`) + /// Storage: `Recovery::Recoverable` (r:1 w:1) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(159), added: 2634, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 3]`. + fn remove_recovery(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `135 + n * (33 ±0)` + // Estimated: `3662` + // Minimum execution time: 32_895_000 picoseconds. + Weight::from_parts(35_106_773, 0) + .saturating_add(Weight::from_parts(0, 3662)) + // Standard Error: 31_796 + .saturating_add(Weight::from_parts(48_261, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Recovery::Proxy` (r:1 w:1) + /// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + fn cancel_recovered() -> Weight { + // Proof Size summary in bytes: + // Measured: `148` + // Estimated: `3545` + // Minimum execution time: 14_427_000 picoseconds. + Weight::from_parts(14_914_000, 0) + .saturating_add(Weight::from_parts(0, 3545)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/src/weights/pallet_sudo.rs b/runtime/src/weights/pallet_sudo.rs new file mode 100644 index 0000000..0d7f4a4 --- /dev/null +++ b/runtime/src/weights/pallet_sudo.rs @@ -0,0 +1,85 @@ + +//! Autogenerated weights for `pallet_sudo` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-12-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_sudo +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_sudo.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_sudo`. +pub struct WeightInfo(PhantomData); +impl pallet_sudo::WeightInfo for WeightInfo { + /// Storage: `Sudo::Key` (r:1 w:1) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + fn set_key() -> Weight { + // Proof Size summary in bytes: + // Measured: `132` + // Estimated: `1517` + // Minimum execution time: 9_990_000 picoseconds. + Weight::from_parts(10_314_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Sudo::Key` (r:1 w:0) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + fn sudo() -> Weight { + // Proof Size summary in bytes: + // Measured: `132` + // Estimated: `1517` + // Minimum execution time: 10_645_000 picoseconds. + Weight::from_parts(11_178_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Sudo::Key` (r:1 w:0) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + fn sudo_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `132` + // Estimated: `1517` + // Minimum execution time: 10_803_000 picoseconds. + Weight::from_parts(11_243_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Sudo::Key` (r:1 w:1) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + fn remove_key() -> Weight { + // Proof Size summary in bytes: + // Measured: `132` + // Estimated: `1517` + // Minimum execution time: 8_691_000 picoseconds. + Weight::from_parts(9_060_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/runtime/src/weights/pallet_timestamp.rs b/runtime/src/weights/pallet_timestamp.rs new file mode 100644 index 0000000..ad516b9 --- /dev/null +++ b/runtime/src/weights/pallet_timestamp.rs @@ -0,0 +1,61 @@ + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-12-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_timestamp +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_timestamp.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `Aura::CurrentSlot` (r:1 w:0) + /// Proof: `Aura::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `120` + // Estimated: `1493` + // Minimum execution time: 7_438_000 picoseconds. + Weight::from_parts(7_666_000, 0) + .saturating_add(Weight::from_parts(0, 1493)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn on_finalize() -> Weight { + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_465_000 picoseconds. + Weight::from_parts(3_559_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/runtime/src/weights/pallet_utility.rs b/runtime/src/weights/pallet_utility.rs new file mode 100644 index 0000000..dc7e83b --- /dev/null +++ b/runtime/src/weights/pallet_utility.rs @@ -0,0 +1,88 @@ + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-12-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `BeQuiet`, CPU: `Intel(R) Core(TM) i9-10900KF CPU @ 3.70GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_utility +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_utility.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_149_000 picoseconds. + Weight::from_parts(7_292_359, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 4_737 + .saturating_add(Weight::from_parts(3_308_739, 0).saturating_mul(c.into())) + } + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_909_000 picoseconds. + Weight::from_parts(7_218_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_318_000 picoseconds. + Weight::from_parts(12_387_696, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 5_795 + .saturating_add(Weight::from_parts(3_601_547, 0).saturating_mul(c.into())) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_985_000 picoseconds. + Weight::from_parts(10_270_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_287_000 picoseconds. + Weight::from_parts(10_598_452, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_048 + .saturating_add(Weight::from_parts(3_284_739, 0).saturating_mul(c.into())) + } +} diff --git a/runtime/src/weights/pallet_verified_recovery.rs b/runtime/src/weights/pallet_verified_recovery.rs new file mode 100644 index 0000000..1b73bdf --- /dev/null +++ b/runtime/src/weights/pallet_verified_recovery.rs @@ -0,0 +1,57 @@ + +//! Autogenerated weights for `pallet_verified_recovery` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-12-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `gerard-XPS-13-9305`, CPU: `11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/logion-node +// benchmark +// pallet +// --chain +// dev +// --wasm-execution=compiled +// --pallet +// pallet_verified_recovery +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --output +// runtime/src/weights/pallet_verified_recovery.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_verified_recovery`. +pub struct WeightInfo(PhantomData); +impl pallet_verified_recovery::WeightInfo for WeightInfo { + /// Storage: `LogionLoc::AccountLocsMap` (r:1 w:0) + /// Proof: `LogionLoc::AccountLocsMap` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `LogionLoc::LocMap` (r:2 w:0) + /// Proof: `LogionLoc::LocMap` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Recovery::Recoverable` (r:1 w:1) + /// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(159), added: 2634, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn create_recovery() -> Weight { + // Proof Size summary in bytes: + // Measured: `641` + // Estimated: `6581` + // Minimum execution time: 49_324_000 picoseconds. + Weight::from_parts(51_145_000, 0) + .saturating_add(Weight::from_parts(0, 6581)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} From 5e24d31de0cb2093fc31b408841f1fa32f6d319b Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 12:09:17 +0200 Subject: [PATCH 02/11] feat: genesis config: add default legal officers for all non-prod env, remove for prod. logion-network/logion-internal#1199 --- Cargo.lock | 145 +++++++++++++-------------- node/Cargo.toml | 10 +- node/src/chain_spec.rs | 189 ++++++++++++++++------------------- node/src/command.rs | 1 - scripts/download_polkadot.sh | 2 +- 5 files changed, 168 insertions(+), 179 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 84c9c81..45a2bb8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -214,7 +214,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -751,7 +751,7 @@ checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -898,7 +898,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -1363,7 +1363,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -2098,7 +2098,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -2420,7 +2420,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -2460,7 +2460,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -2477,7 +2477,7 @@ checksum = "b404f596046b0bb2d903a9c786b875a126261b52b7c3a64bbb66382c41c771df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -2582,7 +2582,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -2684,7 +2684,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -2724,7 +2724,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.57", + "syn 2.0.58", "termcolor", "toml 0.8.12", "walkdir", @@ -2903,7 +2903,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -2914,7 +2914,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -3043,7 +3043,7 @@ dependencies = [ "prettier-please", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -3323,7 +3323,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -3452,7 +3452,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -3464,7 +3464,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -3474,7 +3474,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -3653,7 +3653,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -4497,7 +4497,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -5216,6 +5216,7 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" name = "logion" version = "0.2.2" dependencies = [ + "bs58 0.5.1", "clap", "color-print", "cumulus-client-cli", @@ -5417,7 +5418,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -5431,7 +5432,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -5442,7 +5443,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -5453,7 +5454,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -7159,7 +7160,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -7645,7 +7646,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -7686,7 +7687,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -8850,7 +8851,7 @@ dependencies = [ "polkavm-common 0.8.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -8862,7 +8863,7 @@ dependencies = [ "polkavm-common 0.9.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -8872,7 +8873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66" dependencies = [ "polkavm-derive-impl 0.8.0", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -8882,7 +8883,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl 0.9.0", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -9009,7 +9010,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22020dfcf177fcc7bf5deaf7440af371400c67c0de14c399938d8ed4fb4645d3" dependencies = [ "proc-macro2", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -9029,7 +9030,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -9121,7 +9122,7 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -9167,7 +9168,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -9235,7 +9236,7 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -9516,7 +9517,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -10176,7 +10177,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -11155,7 +11156,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -11442,7 +11443,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -11824,7 +11825,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -12065,7 +12066,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -12102,7 +12103,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 dependencies = [ "quote", "sp-crypto-hashing", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -12121,17 +12122,17 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -12148,7 +12149,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" dependencies = [ "environmental", "parity-scale-codec", @@ -12366,7 +12367,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -12392,20 +12393,20 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" dependencies = [ "Inflector", "expander 2.1.0", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -12491,7 +12492,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.8.0#ec7 [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" [[package]] name = "sp-storage" @@ -12509,7 +12510,7 @@ dependencies = [ [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12546,7 +12547,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" dependencies = [ "parity-scale-codec", "tracing", @@ -12627,7 +12628,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -12646,13 +12647,11 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#12eb285dbe6271c365db7ba17cf643bfc77fe753" +source = "git+https://github.com/paritytech/polkadot-sdk#9b378a2ffef1d5846872adc4336341805bffbc30" dependencies = [ - "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "wasmtime", ] [[package]] @@ -12857,9 +12856,9 @@ dependencies = [ [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -12899,7 +12898,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -13031,9 +13030,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.57" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", @@ -13148,7 +13147,7 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -13159,7 +13158,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -13303,7 +13302,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -13506,7 +13505,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -13549,7 +13548,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -13947,7 +13946,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", "wasm-bindgen-shared", ] @@ -13981,7 +13980,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -14823,7 +14822,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -14866,7 +14865,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] @@ -14886,7 +14885,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.58", ] [[package]] diff --git a/node/Cargo.toml b/node/Cargo.toml index 4b374e1..21a6485 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,10 +13,11 @@ build = "build.rs" clap = { version = "4.5.1", features = ["derive"] } log = { version = "0.4.20", default-features = true } codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.193", features = ["derive"], default-features = true } +serde = { version = "1.0.197", features = ["derive"], default-features = true } jsonrpsee = { version = "0.22", features = ["server"] } -futures = "0.3.28" -serde_json = { version = "1.0.114", default-features = true } +futures = { version = "0.3.21", features = ["thread-pool"]} +serde_json = { version = "1.0.114", features = ["arbitrary_precision"] } +bs58 = "0.5.0" # Local logion-runtime = { path = "../runtime" } @@ -70,6 +71,9 @@ cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/p cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.8.0" } color-print = "0.3.4" +# Logion +pallet-lo-authority-list = { git = "https://github.com/logion-network/logion-pallets", default-features = false, tag = "v0.2.1" } + [build-dependencies] substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.8.0" } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 6a21f54..8adb232 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,9 +1,10 @@ use cumulus_primitives_core::ParaId; use logion_runtime::{AccountId, AuraId, Signature, EXISTENTIAL_DEPOSIT, Balance, LGNT, SS58Prefix}; +use pallet_lo_authority_list::GenesisHostData; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; use serde::{Deserialize, Serialize}; -use sp_core::{sr25519, Pair, Public}; +use sp_core::{sr25519, Pair, Public, OpaquePeerId}; use sp_runtime::traits::{IdentifyAccount, Verify}; use std::str::FromStr; @@ -61,102 +62,6 @@ pub fn template_session_keys(keys: AuraId) -> logion_runtime::SessionKeys { logion_runtime::SessionKeys { aura: keys } } -pub fn logion_config() -> ChainSpec { - const ROOT_PUBLIC_SR25519: &str = "5GzrECvUzFng58zzFvqVJvpE2MRnjU9vgh4iJMhqrLBSRRAv"; - - const NODE01_PUBLIC_SR25519: &str = "5DjzFDhFidvGCuuy6i8Lsi4XyruYjxTTkJKb1o7XzVdMNPVb"; - const NODE02_PUBLIC_SR25519: &str = "5DoD9n61SssFiWQDTD7bz1eX3KCxZJ6trVj2GsDwMi2PqP85"; - const NODE03_PUBLIC_SR25519: &str = "5CJTSSJ4v1RAauZpeqTeddyui4wESZZqPor33wum9aKuQXZC"; - const NODE04_PUBLIC_SR25519: &str = "5EF6NVgMfRRFMRnNEByNJsQJfD1fokamB9kq2J7SLRVraJrg"; - const NODE05_PUBLIC_SR25519: &str = "5G7Gtz7iLn3z5PkqfweQJp5jJdV3u8ix7qWcGS4bs38EH1W3"; - const NODE06_PUBLIC_SR25519: &str = "5EZRCd7FybQKthaD2XuV21RAdU5LqPoveiSdrz9Z6JCstoSH"; - const NODE07_PUBLIC_SR25519: &str = "5DqwojnfMTfZvERe9SJr3e1ApfaAY8Lye8Tch6WfnmxkfJfw"; - const NODE08_PUBLIC_SR25519: &str = "5GRie9PZxqzAmPoJAgiLjzgxzFi7LW2ez1TNzzWdUN6yh8Jd"; - const NODE09_PUBLIC_SR25519: &str = "5CSsbWDRbV5eYuWZsSrFcfkrEnGAjhbmyGJjjpRkjQ7s5dCd"; - const NODE10_PUBLIC_SR25519: &str = "5FYe8QZfCUZVh6BeuAziATXNcowbZuSngqrguGahscdbhhnz"; - const NODE11_PUBLIC_SR25519: &str = "5DRbgvZC3LEeJmRe893Q3UEwP2H1DPv5x8ofFgcxihCLu3oL"; - const NODE12_PUBLIC_SR25519: &str = "5F6h3kuXnhpwkVzDKRd65jrSu53UecKNRdHcgCGFiAbAPWMt"; - - ChainSpec::builder( - logion_runtime::WASM_BINARY - .expect("WASM binary was not built, please build it!"), - Extensions { - relay_chain: "polkadot".into(), - para_id: main_para_id(), - }, - ) - .with_name("logion network") - .with_id("logion") - .with_protocol_id("logion") - .with_chain_type(ChainType::Live) - .with_genesis_config_patch(build_genesis_config( - vec![ - ( - AccountId::from_str(NODE01_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE01_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE02_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE02_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE03_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE03_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE04_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE04_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE05_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE05_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE06_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE06_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE07_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE07_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE08_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE08_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE09_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE09_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE10_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE10_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE11_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE11_PUBLIC_SR25519).unwrap()), - ), - ( - AccountId::from_str(NODE12_PUBLIC_SR25519).unwrap(), - AuraId::from(sr25519::Public::from_str(NODE12_PUBLIC_SR25519).unwrap()), - ), - ], - vec![ - ( - AccountId::from_str(ROOT_PUBLIC_SR25519).unwrap(), - 1_000_000_000 * LGNT, - ), - ], - main_para_id().into(), - AccountId::from_str(ROOT_PUBLIC_SR25519).unwrap(), - )) - .with_properties(default_properties("LGNT")) - .build() -} - -fn main_para_id() -> u32 { - 3341 -} - const DEFAULT_TEST_BALANCE: Balance = 1 << 60; pub fn development_config() -> ChainSpec { @@ -172,7 +77,7 @@ pub fn development_config() -> ChainSpec { .with_id("local_logion") .with_protocol_id("logion") .with_chain_type(ChainType::Development) - .with_genesis_config_patch(build_genesis_config( + .with_genesis_config_patch(logion_genesis( // initial collators. vec![ ( @@ -232,6 +137,32 @@ pub fn development_config() -> ChainSpec { ], test_parachain_id(), get_account_id_from_seed::("Alice"), + vec![ // Initial set of Logion Legal Officers + ( + get_account_id_from_seed::("Alice"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWBmAwcd4PJNJvfV89HwE48nwkRmAgo8Vy3uQEyNNHBox2").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ( + get_account_id_from_seed::("Bob"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWQYV9dGMFoRzNStwpXztXaBUjtPqi6aU76ZgUriHhKust").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ( + get_account_id_from_seed::("Charlie"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWJvyP3VJYymTqG7eH4PM5rN4T2agk5cdNCfNymAqwqcvZ").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ], )) .with_properties(default_properties("LGNT")) .build() @@ -259,7 +190,7 @@ fn testnet_config(name: &str, id: &str, symbol: &str, root_ref: &str) -> ChainSp .with_name(name) .with_id(id) .with_chain_type(ChainType::Live) - .with_genesis_config_patch(build_genesis_config( + .with_genesis_config_patch(logion_genesis( // initial collators. vec![ ( @@ -331,6 +262,32 @@ fn testnet_config(name: &str, id: &str, symbol: &str, root_ref: &str) -> ChainSp ], test_parachain_id(), AccountId::from_str(&root).unwrap(), + vec![ // Initial set of Logion Legal Officers + ( + get_account_id_from_seed::("Alice"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWBmAwcd4PJNJvfV89HwE48nwkRmAgo8Vy3uQEyNNHBox2").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ( + get_account_id_from_seed::("Bob"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWQYV9dGMFoRzNStwpXztXaBUjtPqi6aU76ZgUriHhKust").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ( + get_account_id_from_seed::("Charlie"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWJvyP3VJYymTqG7eH4PM5rN4T2agk5cdNCfNymAqwqcvZ").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ], )) .with_protocol_id(id) .with_properties(default_properties(symbol)) @@ -359,7 +316,7 @@ pub fn local_config() -> ChainSpec { .with_id("local_logion") .with_protocol_id("logion") .with_chain_type(ChainType::Local) - .with_genesis_config_patch(build_genesis_config( + .with_genesis_config_patch(logion_genesis( // initial collators. vec![ ( @@ -419,16 +376,43 @@ pub fn local_config() -> ChainSpec { ], test_parachain_id(), get_account_id_from_seed::("Alice"), + vec![ // Initial set of Logion Legal Officers + ( + get_account_id_from_seed::("Alice"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWBmAwcd4PJNJvfV89HwE48nwkRmAgo8Vy3uQEyNNHBox2").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ( + get_account_id_from_seed::("Bob"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWQYV9dGMFoRzNStwpXztXaBUjtPqi6aU76ZgUriHhKust").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ( + get_account_id_from_seed::("Charlie"), + GenesisHostData { + node_id: Some(OpaquePeerId(bs58::decode("12D3KooWJvyP3VJYymTqG7eH4PM5rN4T2agk5cdNCfNymAqwqcvZ").into_vec().unwrap())), + base_url: None, + region: "Europe".into(), + } + ), + ], )) .with_properties(default_properties("LGNT")) .build() } -fn build_genesis_config( +fn logion_genesis( invulnerables: Vec<(AccountId, AuraId)>, endowed_accounts: Vec<(AccountId, Balance)>, id: ParaId, root_key: AccountId, + legal_officers: Vec<(AccountId, GenesisHostData)>, ) -> serde_json::Value { serde_json::json!({ "balances": { @@ -459,6 +443,9 @@ fn build_genesis_config( "sudo": { "key": Some(root_key), }, + "loAuthorityList": { + "legalOfficers": legal_officers, + }, }) } diff --git a/node/src/command.rs b/node/src/command.rs index c84fa37..5349189 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -22,7 +22,6 @@ fn load_spec(id: &str) -> std::result::Result, String> { "dev" => Box::new(chain_spec::development_config()), "logion-dev" => Box::new(chain_spec::logion_dev_config()), "logion-test" => Box::new(chain_spec::logion_test_config()), - "logion" => Box::new(chain_spec::logion_config()), "" | "local" => Box::new(chain_spec::local_config()), path => Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?), }) diff --git a/scripts/download_polkadot.sh b/scripts/download_polkadot.sh index a926440..b8e1187 100755 --- a/scripts/download_polkadot.sh +++ b/scripts/download_polkadot.sh @@ -5,7 +5,7 @@ set -e VERSION=polkadot-v1.8.0 cd bin -rm polkadot* +rm -f polkadot* wget https://github.com/paritytech/polkadot-sdk/releases/download/${VERSION}/polkadot wget https://github.com/paritytech/polkadot-sdk/releases/download/${VERSION}/polkadot-execute-worker wget https://github.com/paritytech/polkadot-sdk/releases/download/${VERSION}/polkadot-prepare-worker From cf15fe609bde75a668a03def7e5458aabee49594 Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 12:47:52 +0200 Subject: [PATCH 03/11] feat: remove already applied migration. logion-network/logion-internal#1199 --- runtime/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 6064537..644f701 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -167,7 +167,6 @@ impl OnRuntimeUpgrade for ClearHostConfiguration { #[allow(unused_parens)] type Migrations = ( ClearHostConfiguration, - cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4, ); /// Executive: handles dispatch to the various modules. From 941abdc7e3ca8eeddfa673d2ba75d8c42b575580 Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 14:57:12 +0200 Subject: [PATCH 04/11] feat: remove already applied migration ClearHostConfiguration. logion-network/logion-internal#1199 --- runtime/src/lib.rs | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 644f701..58d8859 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -137,36 +137,11 @@ pub type UncheckedExtrinsic = /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; -pub struct ClearHostConfiguration(sp_std::marker::PhantomData); - -impl OnRuntimeUpgrade for ClearHostConfiguration { - fn on_runtime_upgrade() -> Weight { - let hash_prefix = from_hex("0x45323df7cc47150b3930e2666b0aa313c522231880238a0c56021b8744a00743").unwrap(); - let keys_removed = match clear_prefix(hash_prefix.as_slice(), None) { - KillStorageResult::AllRemoved(value) => value, - KillStorageResult::SomeRemaining(value) => { - log::error!( - "`clear_prefix` failed to remove `ParachainSystem.HostConfiguration`. THIS SHOULD NOT HAPPEN! 🚨", - ); - value - }, - } as u64; - - log::info!( - "🧹 Removed {} keys while clearing `ParachainSystem.HostConfiguration`", - keys_removed - ); - - T::DbWeight::get().reads_writes(keys_removed + 1, keys_removed) - } -} - /// All migrations of the runtime, aside from the ones declared in the pallets. /// /// This can be a tuple of types, each implementing `OnRuntimeUpgrade`. #[allow(unused_parens)] type Migrations = ( - ClearHostConfiguration, ); /// Executive: handles dispatch to the various modules. From fb20033e5a0e71dca4856fc3f9a6ceda1c37dd84 Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 15:01:46 +0200 Subject: [PATCH 05/11] feat: apply semantic versioning for spec_version. logion-network/logion-internal#1199 --- runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 58d8859..a30fcc1 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -186,7 +186,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("logion"), impl_name: create_runtime_str!("logion"), authoring_version: 1, - spec_version: 4, + spec_version: 000_003_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, From e45cc7e33bbec29c74a89fdb4abd9f6edaeb42e4 Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 15:51:42 +0200 Subject: [PATCH 06/11] feat: remove config injected by derive_impl. logion-network/logion-internal#1199 --- runtime/src/lib.rs | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index a30fcc1..e6a0c9f 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -11,10 +11,9 @@ pub mod xcm_config; use codec::{Decode, Encode, MaxEncodedLen}; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use cumulus_pallet_xcmp_queue::Config; use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, Get, H160, H256, OpaqueMetadata}; +use sp_core::{crypto::KeyTypeId, H160, H256, OpaqueMetadata}; use sp_runtime::{create_runtime_str, generic, impl_opaque_keys, traits::{ AccountIdConversion, BlakeTwo256, Block as BlockT, ConvertInto, IdentifyAccount, IdentityLookup, One, Verify @@ -42,7 +41,7 @@ use frame_support::{ }, PalletId, }; -use frame_support::traits::{ConstU128, Contains, OnRuntimeUpgrade, Imbalance}; +use frame_support::traits::{ConstU128, Contains, Imbalance}; use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, @@ -51,7 +50,6 @@ use pallet_transaction_payment::{ConstFeeMultiplier, CurrencyAdapter, Multiplier use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_io::{storage::clear_prefix, KillStorageResult}; pub use sp_runtime::{MultiAddress, Perbill, Permill, Percent}; use xcm_config::{RelayLocation, XcmOriginToTransactDispatchOrigin}; use scale_info::TypeInfo; @@ -61,7 +59,6 @@ pub use sp_runtime::BuildStorage; // Polkadot imports use polkadot_runtime_common::{BlockHashCount}; -use sp_core::bytes::from_hex; use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; @@ -303,30 +300,16 @@ impl frame_system::Config for Runtime { type BaseCallFilter = BaseCallFilter; /// The identifier used to distinguish between accounts. type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup; /// The index type for storing how many extrinsics an account has signed. type Nonce = Nonce; /// The type for hashing blocks and tries. type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; /// The block type. type Block = Block; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - /// The ubiquitous origin type. - type RuntimeOrigin = RuntimeOrigin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// Runtime version. type Version = Version; - /// Converts a module to the index of the module in `construct_runtime!`. - /// - /// This type is being generated by `construct_runtime!`. - type PalletInfo = PalletInfo; /// The data to be stored in an account. type AccountData = pallet_balances::AccountData; /// The weight of database operations that the runtime can invoke. @@ -874,7 +857,6 @@ use pallet_logion_loc::Hasher; use pallet_logion_loc::ItemsParams; use pallet_multisig::Timepoint; use sp_io::hashing::sha2_256; -use sp_runtime::traits::AccountIdLookup; #[cfg(feature = "runtime-benchmarks")] pub struct VoteLocSetup; From 1b7f54b85562374625fb533351c80fdf60c9c1ed Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 16:02:30 +0200 Subject: [PATCH 07/11] feat: use construct_runtime generated RuntimeHoldReason and RuntimeFreezeReason. logion-network/logion-internal#1199 --- runtime/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index e6a0c9f..1626370 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -359,8 +359,8 @@ impl pallet_balances::Config for Runtime { type WeightInfo = weights::pallet_balances::WeightInfo; type FreezeIdentifier = [u8; 8]; type MaxFreezes = (); - type RuntimeHoldReason = (); - type RuntimeFreezeReason = (); + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; } parameter_types! { From c193bbe3d990f1c09ec4479db1f3a1faed394517 Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 16:08:34 +0200 Subject: [PATCH 08/11] chore: typo. logion-network/logion-internal#1199 --- runtime/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 1626370..a93c245 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -708,7 +708,7 @@ impl pallet_logion_loc::Config for Runtime { parameter_types! { pub const RecoveryConfigDepositBase: u64 = 10; - pub const RecoveryFrieldDepositFactor: u64 = 1; + pub const RecoveryFriendDepositFactor: u64 = 1; pub const MaxFriends: u16 = 3; pub const RecoveryDeposit: u64 = 10; } @@ -718,7 +718,7 @@ impl pallet_recovery::Config for Runtime { type RuntimeCall = RuntimeCall; type Currency = Balances; type ConfigDepositBase = RecoveryConfigDepositBase; - type FriendDepositFactor = RecoveryFrieldDepositFactor; + type FriendDepositFactor = RecoveryFriendDepositFactor; type MaxFriends = MaxFriends; type RecoveryDeposit = RecoveryDeposit; type WeightInfo = weights::pallet_recovery::WeightInfo; From 836fdb2f70851bba66d26d39570f02b520e82cfa Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 16:27:06 +0200 Subject: [PATCH 09/11] feat: fees: add spreadsheet and re-calculate inflation with block rate = 12. logion-network/logion-internal#1199 --- docs/inclusion_fees.ods | Bin 0 -> 28991 bytes runtime/src/lib.rs | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docs/inclusion_fees.ods diff --git a/docs/inclusion_fees.ods b/docs/inclusion_fees.ods new file mode 100644 index 0000000000000000000000000000000000000000..e82af8064bd3590222a850b39dd1b1c1506960c3 GIT binary patch literal 28991 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

R?% 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 literal 0 HcmV?d00001 diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index a93c245..4a9aa1a 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -373,10 +373,10 @@ parameter_types! { // Inflation: I=0,05 (5%) // Total supply: N=10^9 - // Block rate: B=6 (Number of seconds between 2 blocks) + // Block rate: B=12 (Number of seconds between 2 blocks) // The reward can be calculated as follows: N * (I / (3600 * 24 * 365 / B)) - // We thus mint 10 LGNT every block - pub const InflationAmount: Balance = 10 * LGNT; + // We thus mint 19 LGNT every block + pub const InflationAmount: Balance = 19 * LGNT; pub const InflationDistributionKey: DistributionKey = DistributionKey { legal_officers_percent: Percent::from_percent(35), community_treasury_percent: Percent::from_percent(30), From 377941b9ec5734865b7a43f28618c8efa230fd64 Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 16:32:53 +0200 Subject: [PATCH 10/11] chore: use parameter_types ExistentialDeposit. logion-network/logion-internal#1199 --- runtime/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 4a9aa1a..dff784d 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -41,7 +41,7 @@ use frame_support::{ }, PalletId, }; -use frame_support::traits::{ConstU128, Contains, Imbalance}; +use frame_support::traits::{Contains, Imbalance}; use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, @@ -354,7 +354,7 @@ impl pallet_balances::Config for Runtime { /// The ubiquitous event type. type RuntimeEvent = RuntimeEvent; type DustRemoval = (); - type ExistentialDeposit = ConstU128; + type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = weights::pallet_balances::WeightInfo; type FreezeIdentifier = [u8; 8]; From d753a678fd8c8ceab09bf9f29571a995d0864495 Mon Sep 17 00:00:00 2001 From: Benoit Devos Date: Wed, 3 Apr 2024 17:32:50 +0200 Subject: [PATCH 11/11] feat: add FeesApi implementation. logion-network/logion-internal#1199 --- runtime/src/lib.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index dff784d..6cdd41f 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -1240,6 +1240,16 @@ impl_runtime_apis! { } } + impl pallet_logion_loc::runtime_api::FeesApi for Runtime { + fn query_file_storage_fee(num_of_entries: u32, tot_size: u32) -> Balance { + LogionLoc::calculate_fee(num_of_entries, tot_size) + } + + fn query_certificate_fee(token_issuance: TokenIssuance) -> Balance { + LogionLoc::calculate_certificate_fee(token_issuance) + } + } + #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) {