From b0da4da42bc6bd1ca563f433eb896f5adb859f4c Mon Sep 17 00:00:00 2001 From: cgeek <cem.moreau@gmail.com> Date: Fri, 11 Aug 2023 13:13:02 +0200 Subject: [PATCH] feat: `storage-dump` command --- Cargo.lock | 2327 ++++++++++------- Cargo.toml | 5 + client/dump/Cargo.toml | 157 ++ client/dump/src/lib.rs | 180 ++ client/dump/tests/runtimes/mod.rs | 1 + .../dump/tests/runtimes/universal_dividend.rs | 159 ++ client/dump/tests/simple_test.expected.txt | 130 + client/dump/tests/tests.rs | 73 + node/src/cli.rs | 3 + node/src/command.rs | 9 + node/src/command/export_storage.rs | 122 + pallets/authority-members/Cargo.toml | 1 + pallets/authority-members/src/dump.rs | 51 + pallets/authority-members/src/lib.rs | 2 + pallets/authority-members/src/types.rs | 4 +- pallets/certification/Cargo.toml | 2 + pallets/certification/src/dump.rs | 69 + pallets/certification/src/lib.rs | 1 + pallets/dump-storage/Cargo.toml | 100 + pallets/dump-storage/dump_macros/Cargo.toml | 12 + .../dump_macros/src/enum_from_str.rs | 40 + .../dump_macros/src/enum_pallet_storage.rs | 24 + pallets/dump-storage/dump_macros/src/lib.rs | 23 + .../dump_macros/tests/enum_from_str_test.rs | 13 + .../tests/enum_pallet_storage_test.rs | 13 + pallets/dump-storage/src/assert.rs | 45 + pallets/dump-storage/src/checker.rs | 56 + .../src/external_pallets/atomicswap.rs | 26 + .../src/external_pallets/authorship.rs | 47 + .../dump-storage/src/external_pallets/babe.rs | 106 + .../src/external_pallets/balances.rs | 36 + .../src/external_pallets/collective.rs | 46 + .../src/external_pallets/grandpa.rs | 61 + .../src/external_pallets/im_online.rs | 57 + .../dump-storage/src/external_pallets/mod.rs | 35 + .../src/external_pallets/multisig.rs | 26 + .../src/external_pallets/preimage.rs | 36 + .../src/external_pallets/proxy.rs | 23 + .../src/external_pallets/scheduler.rs | 36 + .../src/external_pallets/session.rs | 44 + .../dump-storage/src/external_pallets/sudo.rs | 22 + .../src/external_pallets/system.rs | 111 + .../src/external_pallets/timestamp.rs | 26 + .../external_pallets/transaction_payment.rs | 29 + .../src/external_pallets/treasury.rs | 29 + pallets/dump-storage/src/key.rs | 24 + pallets/dump-storage/src/lib.rs | 16 + pallets/dump-storage/src/no_std.rs | 72 + pallets/dump-storage/src/pallet.rs | 44 + pallets/dump-storage/src/pallet_checker.rs | 104 + pallets/dump-storage/src/pallets.rs | 161 ++ pallets/dump-storage/src/private.rs | 121 + pallets/dump-storage/src/runtime.rs | 39 + pallets/dump-storage/tests/tests.rs | 214 ++ pallets/duniter-account/Cargo.toml | 2 + pallets/duniter-account/src/dump.rs | 30 + pallets/duniter-account/src/lib.rs | 1 + pallets/duniter-test-parameters/Cargo.toml | 2 + pallets/duniter-test-parameters/src/dump.rs | 27 + pallets/duniter-test-parameters/src/lib.rs | 2 + pallets/identity/Cargo.toml | 2 + pallets/identity/src/dump.rs | 46 + pallets/identity/src/lib.rs | 1 + pallets/identity/src/types.rs | 4 +- pallets/membership/Cargo.toml | 2 + pallets/membership/src/dump.rs | 77 + pallets/membership/src/lib.rs | 1 + pallets/offences/Cargo.toml | 7 + pallets/offences/src/dump.rs | 30 + pallets/offences/src/lib.rs | 2 + pallets/oneshot-account/Cargo.toml | 4 + pallets/oneshot-account/src/dump.rs | 26 + pallets/oneshot-account/src/lib.rs | 1 + pallets/provide-randomness/Cargo.toml | 2 + pallets/provide-randomness/src/dump.rs | 48 + pallets/provide-randomness/src/lib.rs | 1 + pallets/universal-dividend/Cargo.toml | 5 + pallets/universal-dividend/src/dump.rs | 38 + pallets/universal-dividend/src/lib.rs | 1 + pallets/universal-dividend/src/tests.rs | 77 + runtime/gdev/Cargo.toml | 1 + runtime/gdev/tests/integration_tests.rs | 31 + ...storage_with_run_to_block.b.2.expected.txt | 245 ++ ...storage_with_run_to_block.b.3.expected.txt | 245 ++ ...storage_with_run_to_block.b.4.expected.txt | 252 ++ ...storage_with_run_to_block.b.5.expected.txt | 255 ++ tests/storage.out.txt | 1179 +++++++++ tests/storage.out.txt.actual | 1179 +++++++++ 88 files changed, 8061 insertions(+), 978 deletions(-) create mode 100644 client/dump/Cargo.toml create mode 100644 client/dump/src/lib.rs create mode 100644 client/dump/tests/runtimes/mod.rs create mode 100644 client/dump/tests/runtimes/universal_dividend.rs create mode 100644 client/dump/tests/simple_test.expected.txt create mode 100644 client/dump/tests/tests.rs create mode 100644 node/src/command/export_storage.rs create mode 100644 pallets/authority-members/src/dump.rs create mode 100644 pallets/certification/src/dump.rs create mode 100644 pallets/dump-storage/Cargo.toml create mode 100644 pallets/dump-storage/dump_macros/Cargo.toml create mode 100644 pallets/dump-storage/dump_macros/src/enum_from_str.rs create mode 100644 pallets/dump-storage/dump_macros/src/enum_pallet_storage.rs create mode 100644 pallets/dump-storage/dump_macros/src/lib.rs create mode 100644 pallets/dump-storage/dump_macros/tests/enum_from_str_test.rs create mode 100644 pallets/dump-storage/dump_macros/tests/enum_pallet_storage_test.rs create mode 100644 pallets/dump-storage/src/assert.rs create mode 100644 pallets/dump-storage/src/checker.rs create mode 100644 pallets/dump-storage/src/external_pallets/atomicswap.rs create mode 100644 pallets/dump-storage/src/external_pallets/authorship.rs create mode 100644 pallets/dump-storage/src/external_pallets/babe.rs create mode 100644 pallets/dump-storage/src/external_pallets/balances.rs create mode 100644 pallets/dump-storage/src/external_pallets/collective.rs create mode 100644 pallets/dump-storage/src/external_pallets/grandpa.rs create mode 100644 pallets/dump-storage/src/external_pallets/im_online.rs create mode 100644 pallets/dump-storage/src/external_pallets/mod.rs create mode 100644 pallets/dump-storage/src/external_pallets/multisig.rs create mode 100644 pallets/dump-storage/src/external_pallets/preimage.rs create mode 100644 pallets/dump-storage/src/external_pallets/proxy.rs create mode 100644 pallets/dump-storage/src/external_pallets/scheduler.rs create mode 100644 pallets/dump-storage/src/external_pallets/session.rs create mode 100644 pallets/dump-storage/src/external_pallets/sudo.rs create mode 100644 pallets/dump-storage/src/external_pallets/system.rs create mode 100644 pallets/dump-storage/src/external_pallets/timestamp.rs create mode 100644 pallets/dump-storage/src/external_pallets/transaction_payment.rs create mode 100644 pallets/dump-storage/src/external_pallets/treasury.rs create mode 100644 pallets/dump-storage/src/key.rs create mode 100644 pallets/dump-storage/src/lib.rs create mode 100644 pallets/dump-storage/src/no_std.rs create mode 100644 pallets/dump-storage/src/pallet.rs create mode 100644 pallets/dump-storage/src/pallet_checker.rs create mode 100644 pallets/dump-storage/src/pallets.rs create mode 100644 pallets/dump-storage/src/private.rs create mode 100644 pallets/dump-storage/src/runtime.rs create mode 100644 pallets/dump-storage/tests/tests.rs create mode 100644 pallets/duniter-account/src/dump.rs create mode 100644 pallets/duniter-test-parameters/src/dump.rs create mode 100644 pallets/identity/src/dump.rs create mode 100644 pallets/membership/src/dump.rs create mode 100644 pallets/offences/src/dump.rs create mode 100644 pallets/oneshot-account/src/dump.rs create mode 100644 pallets/provide-randomness/src/dump.rs create mode 100644 pallets/universal-dividend/src/dump.rs create mode 100644 runtime/gdev/tests/values_storage_with_run_to_block.b.2.expected.txt create mode 100644 runtime/gdev/tests/values_storage_with_run_to_block.b.3.expected.txt create mode 100644 runtime/gdev/tests/values_storage_with_run_to_block.b.4.expected.txt create mode 100644 runtime/gdev/tests/values_storage_with_run_to_block.b.5.expected.txt create mode 100644 tests/storage.out.txt create mode 100644 tests/storage.out.txt.actual diff --git a/Cargo.lock b/Cargo.lock index ca42803f5..24d152126 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,11 +23,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" dependencies = [ - "gimli 0.27.0", + "gimli 0.27.3", ] [[package]] @@ -42,7 +42,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -77,20 +77,26 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -109,11 +115,60 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "anstream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is-terminal", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" + +[[package]] +name = "anstyle-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + [[package]] name = "anyhow" -version = "1.0.68" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "approx" @@ -132,9 +187,9 @@ checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -153,9 +208,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ascii" @@ -165,9 +220,9 @@ checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" [[package]] name = "asn1_der" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" +checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "assert_matches" @@ -177,9 +232,9 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "async-channel" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", "event-listener", @@ -188,14 +243,14 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" +checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" dependencies = [ "async-lock", "async-task", "concurrent-queue", - "fastrand", + "fastrand 1.9.0", "futures-lite", "slab", ] @@ -217,39 +272,38 @@ dependencies = [ [[package]] name = "async-io" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ "async-lock", "autocfg", + "cfg-if 1.0.0", "concurrent-queue", "futures-lite", - "libc", "log", "parking", "polling", + "rustix 0.37.23", "slab", - "socket2", + "socket2 0.4.9", "waker-fn", - "windows-sys 0.42.0", ] [[package]] name = "async-lock" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ "event-listener", - "futures-lite", ] [[package]] name = "async-process" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6381ead98388605d0d9ff86371043b5aa922a3905824244de40dc263a14fcba4" +checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" dependencies = [ "async-io", "async-lock", @@ -258,9 +312,9 @@ dependencies = [ "cfg-if 1.0.0", "event-listener", "futures-lite", - "libc", + "rustix 0.37.23", "signal-hook", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -284,7 +338,7 @@ dependencies = [ "log", "memchr", "once_cell", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", "pin-utils", "slab", "wasm-bindgen-futures", @@ -301,45 +355,45 @@ dependencies = [ "futures-io", "futures-util", "pin-utils", - "socket2", + "socket2 0.4.9", "trust-dns-resolver", ] [[package]] name = "async-task" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" +checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" [[package]] name = "async-trait" -version = "0.1.60" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d1d8ab452a3936018a687b20e6f7cf5363d713b732b8884001317b0e48aa3" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] name = "asynchronous-codec" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06a0daa378f5fd10634e44b0a29b2a87b890657658e072a30d6f26e57ddee182" +checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568" dependencies = [ "bytes", "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", ] [[package]] name = "atomic-waker" -version = "1.0.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" +checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" [[package]] name = "atty" @@ -360,16 +414,16 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" dependencies = [ - "addr2line 0.19.0", + "addr2line 0.20.0", "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.30.0", + "object 0.31.1", "rustc-demangle", ] @@ -397,11 +451,17 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + [[package]] name = "base64ct" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "beef" @@ -427,6 +487,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + [[package]] name = "bitvec" version = "1.0.1" @@ -445,7 +511,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -460,37 +526,37 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72936ee4afc7f8f736d1c38383b56480b5497b4617b4a77bdbf1d2ababc76127" +checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", - "arrayvec 0.7.2", - "constant_time_eq 0.1.5", + "arrayvec 0.7.4", + "constant_time_eq 0.2.6", ] [[package]] name = "blake2s_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", - "arrayvec 0.7.2", - "constant_time_eq 0.1.5", + "arrayvec 0.7.4", + "constant_time_eq 0.2.6", ] [[package]] name = "blake3" -version = "1.3.3" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +checksum = "199c42ab6972d92c9f8995f086273d25c42fc0f7b2a1fcefba465c1352d25ba5" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "cc", "cfg-if 1.0.0", - "constant_time_eq 0.2.4", + "constant_time_eq 0.3.0", ] [[package]] @@ -511,16 +577,16 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -534,16 +600,17 @@ dependencies = [ [[package]] name = "blocking" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8" +checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" dependencies = [ "async-channel", "async-lock", "async-task", "atomic-waker", - "fastrand", + "fastrand 1.9.0", "futures-lite", + "log", ] [[package]] @@ -554,11 +621,12 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.17" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", + "serde", ] [[package]] @@ -572,9 +640,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byte-slice-cast" @@ -602,24 +670,24 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "camino" -version = "1.1.1" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] @@ -632,18 +700,19 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.16", + "semver 1.0.18", "serde", "serde_json", ] [[package]] name = "cc" -version = "1.0.78" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -700,13 +769,13 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "time", "wasm-bindgen", @@ -741,20 +810,20 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "clap" -version = "3.2.23" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", - "bitflags", - "clap_derive 3.2.18", + "bitflags 1.3.2", + "clap_derive 3.2.25", "clap_lex 0.2.4", - "indexmap", + "indexmap 1.9.3", "once_cell", "strsim", "termcolor", @@ -763,52 +832,59 @@ dependencies = [ [[package]] name = "clap" -version = "4.0.30" +version = "4.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "656ad1e55e23d287773f7d8192c300dc715c3eeded93b3da651d11c42cfd74d2" +checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3" dependencies = [ - "bitflags", - "clap_derive 4.0.21", - "clap_lex 0.3.0", - "is-terminal", + "clap_builder", + "clap_derive 4.3.12", "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.5.0", "strsim", - "termcolor", ] [[package]] name = "clap_complete" -version = "4.0.6" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7b3c9eae0de7bf8e3f904a5e40612b21fb2e2e566456d177809a48b892d24da" +checksum = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce" dependencies = [ - "clap 4.0.30", + "clap 4.3.23", ] [[package]] name = "clap_derive" -version = "3.2.18" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "clap_derive" -version = "4.0.21" +version = "4.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" dependencies = [ - "heck 0.4.0", - "proc-macro-error", + "heck 0.4.1", "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] @@ -822,22 +898,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" -dependencies = [ - "os_str_bytes", -] +checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" [[package]] -name = "codespan-reporting" -version = "0.11.1" +name = "colorchoice" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "combine" @@ -854,12 +923,12 @@ dependencies = [ [[package]] name = "comfy-table" -version = "6.1.3" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e621e7e86c46fd8a14c32c6ae3cb95656621b4743a27d0cffedb831d46e7ad21" +checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba" dependencies = [ - "strum", - "strum_macros", + "strum 0.24.1", + "strum_macros 0.24.3", "unicode-width", ] @@ -914,25 +983,24 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" dependencies = [ "crossbeam-utils", ] [[package]] name = "console" -version = "0.15.2" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" dependencies = [ "encode_unicode", "lazy_static", "libc", - "terminal_size", "unicode-width", - "winapi 0.3.9", + "windows-sys 0.45.0", ] [[package]] @@ -949,9 +1017,15 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.2.4" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "core-foundation" @@ -965,9 +1039,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "core2" @@ -989,9 +1063,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -1011,7 +1085,7 @@ version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18fed94c8770dc25d01154c3ffa64ed0b3ba9d583736f305fed7beebe5d9cf74" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", @@ -1105,9 +1179,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1115,9 +1189,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -1126,22 +1200,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset 0.9.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if 1.0.0", ] @@ -1158,7 +1232,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", "subtle", "zeroize", @@ -1170,7 +1244,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "typenum", ] @@ -1180,7 +1254,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -1190,7 +1264,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -1201,7 +1275,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1215,12 +1289,12 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.2.4" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1631ca6e3c59112501a9d87fd86f21591ff77acd31331e8a73f8d80a65bbdd71" +checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e" dependencies = [ - "nix 0.26.1", - "windows-sys 0.42.0", + "nix 0.26.2", + "windows-sys 0.48.0", ] [[package]] @@ -1231,13 +1305,13 @@ checksum = "17c2113609da80892316eeacd21e63c359536814b07146d4caa17ad7676e0db3" dependencies = [ "async-trait", "atty", - "clap 3.2.23", + "clap 3.2.25", "console", "cucumber-codegen", "cucumber-expressions", "derive_more", "either", - "futures 0.3.25", + "futures 0.3.28", "gherkin", "globwalk", "inventory", @@ -1260,7 +1334,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn", + "syn 1.0.109", "synthez", ] @@ -1305,67 +1379,36 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-pre.5" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67bc65846be335cb20f4e52d49a437b773a2c1fdb42b19fc84e79e6f6771536f" +checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" dependencies = [ "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", "fiat-crypto", - "packed_simd_2", "platforms 3.0.2", + "rustc_version", "subtle", "zeroize", ] [[package]] -name = "cxx" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.85" +name = "curve25519-dalek-derive" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6" +checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] name = "darling" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ "darling_core", "darling_macro", @@ -1373,40 +1416,40 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn", + "syn 1.0.109", ] [[package]] name = "darling_macro" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "data-encoding-macro" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -1414,12 +1457,89 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ "data-encoding", - "syn", + "syn 1.0.109", +] + +[[package]] +name = "dc-dump" +version = "1.0.0" +dependencies = [ + "bytes", + "common-runtime", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "gdev-runtime", + "hex-literal", + "log", + "maplit", + "pallet-atomic-swap", + "pallet-authority-discovery", + "pallet-authority-members", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-certification", + "pallet-collective", + "pallet-dump-storage", + "pallet-duniter-account", + "pallet-duniter-test-parameters", + "pallet-duniter-wot", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-membership", + "pallet-multisig", + "pallet-offences", + "pallet-oneshot-account", + "pallet-preimage", + "pallet-provide-randomness", + "pallet-proxy", + "pallet-scheduler", + "pallet-session", + "pallet-session-benchmarking", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-universal-dividend", + "pallet-upgrade-origin", + "pallet-utility", + "parity-scale-codec", + "pretty_assertions", + "scale-info", + "serde", + "serde_derive", + "serde_json", + "sp-api", + "sp-arithmetic", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-core", + "sp-finality-grandpa", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-membership", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "strum 0.25.0", + "strum_macros 0.25.2", ] [[package]] @@ -1439,7 +1559,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1450,9 +1570,15 @@ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + [[package]] name = "difflib" version = "0.4.0" @@ -1474,16 +1600,16 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -1553,22 +1679,31 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.5" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dump-macros" +version = "0.1.0" +dependencies = [ + "quote", + "syn 1.0.109", +] [[package]] name = "duniter" version = "0.3.0" dependencies = [ "async-io", - "clap 4.0.30", + "clap 4.3.23", "clap_complete", "common-runtime", + "dc-dump", "frame-benchmarking", "frame-benchmarking-cli", "frame-system", - "futures 0.3.25", + "futures 0.3.28", "g1-runtime", "gdev-runtime", "gtest-runtime", @@ -1613,6 +1748,7 @@ dependencies = [ "sp-consensus", "sp-consensus-babe", "sp-core", + "sp-externalities", "sp-finality-grandpa", "sp-inherents", "sp-io", @@ -1622,6 +1758,7 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", + "sp-state-machine", "sp-storage", "sp-timestamp", "sp-transaction-pool", @@ -1638,10 +1775,10 @@ version = "3.0.0" dependencies = [ "anyhow", "async-trait", - "clap 3.2.23", + "clap 3.2.25", "ctrlc", "cucumber", - "env_logger", + "env_logger 0.9.3", "hex", "notify", "parity-scale-codec", @@ -1693,14 +1830,14 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "dyn-clone" -version = "1.0.10" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60" +checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555" [[package]] name = "ecdsa" @@ -1716,9 +1853,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ "signature", ] @@ -1744,7 +1881,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" dependencies = [ "curve25519-dalek 3.2.0", - "hashbrown", + "hashbrown 0.12.3", "hex", "rand_core 0.6.4", "sha2 0.9.9", @@ -1753,9 +1890,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" @@ -1767,7 +1904,7 @@ dependencies = [ "crypto-bigint", "der", "ff", - "generic-array 0.14.6", + "generic-array 0.14.7", "group", "rand_core 0.6.4", "sec1", @@ -1783,9 +1920,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.31" +version = "0.8.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" dependencies = [ "cfg-if 1.0.0", ] @@ -1796,10 +1933,10 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1815,6 +1952,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "environmental" version = "1.1.4" @@ -1828,9 +1978,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2d328fc287c61314c4a61af7cfdcbd7e678e39778488c7cb13ec133ce0f4059" dependencies = [ "fsio", - "indexmap", + "indexmap 1.9.3", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.2.8" @@ -1842,6 +1998,17 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "errno" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "errno-dragonfly" version = "0.1.2" @@ -1864,7 +2031,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", ] [[package]] @@ -1885,7 +2052,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -1903,13 +2070,19 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] +[[package]] +name = "fastrand" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" + [[package]] name = "fdlimit" version = "0.2.1" @@ -1931,40 +2104,40 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" [[package]] name = "file-per-thread-logger" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" +checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ - "env_logger", + "env_logger 0.10.0", "log", ] [[package]] name = "filetime" -version = "0.2.19" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall", - "windows-sys 0.42.0", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", ] [[package]] name = "finality-grandpa" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b22349c6a11563a202d95772a68e0fcf56119e74ea8a2a19cf2301460fcd0df5" +checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" dependencies = [ "either", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "log", "num-traits", @@ -1993,9 +2166,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "libz-sys", @@ -2042,9 +2215,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -2086,7 +2259,7 @@ dependencies = [ "Inflector", "array-bytes", "chrono", - "clap 4.0.30", + "clap 4.3.23", "comfy-table", "frame-benchmarking", "frame-support", @@ -2148,9 +2321,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "15.0.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df6bb8542ef006ef0de09a5c4420787d79823c0ed7924225822362fd2bf2ff2d" +checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" dependencies = [ "cfg-if 1.0.0", "parity-scale-codec", @@ -2163,7 +2336,7 @@ name = "frame-support" version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", @@ -2201,7 +2374,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2213,7 +2386,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2223,7 +2396,7 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2296,7 +2469,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fsevent-sys", ] @@ -2325,7 +2498,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fuchsia-zircon-sys", ] @@ -2349,9 +2522,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -2364,9 +2537,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -2374,15 +2547,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -2392,34 +2565,34 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-lite" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "fastrand", + "fastrand 1.9.0", "futures-core", "futures-io", "memchr", "parking", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", "waker-fn", ] [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] @@ -2435,15 +2608,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-timer" @@ -2453,9 +2626,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures 0.1.31", "futures-channel", @@ -2465,7 +2638,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", "pin-utils", "slab", ] @@ -2631,9 +2804,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -2673,9 +2846,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2705,7 +2878,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn", + "syn 1.0.109", "textwrap 0.12.1", "thiserror", "typed-builder", @@ -2713,13 +2886,13 @@ dependencies = [ [[package]] name = "ghost" -version = "0.1.7" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41973d4c45f7a35af8753ba3457cc99d406d863941fd7f52663cff54a5ab99b3" +checksum = "ba330b70a5341d3bc730b8e205aaee97ddab5d9c448c4f51a7c2d924266fa8f9" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] @@ -2729,21 +2902,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" dependencies = [ "fallible-iterator", - "indexmap", + "indexmap 1.9.3", "stable_deref_trait", ] [[package]] name = "gimli" -version = "0.27.0" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" [[package]] name = "globset" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ "aho-corasick", "bstr", @@ -2758,16 +2931,16 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "ignore", "walkdir", ] [[package]] name = "gloo-timers" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c4a8d6391675c6b2ee1a6c8d06e8e2d03605c44cec1270675985a4c2a5500b" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" dependencies = [ "futures-channel", "futures-core", @@ -2819,7 +2992,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn", + "syn 1.0.109", ] [[package]] @@ -2830,7 +3003,7 @@ checksum = "e56b093bfda71de1da99758b036f4cc811fd2511c8a76f75680e9ffbd2bb4251" dependencies = [ "graphql_client_codegen", "proc-macro2", - "syn", + "syn 1.0.109", ] [[package]] @@ -2916,9 +3089,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.15" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" dependencies = [ "bytes", "fnv", @@ -2926,7 +3099,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -2935,9 +3108,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.6" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" +checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" dependencies = [ "log", "pest", @@ -2971,6 +3144,12 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -2982,9 +3161,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -2997,12 +3176,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "hex" @@ -3043,7 +3219,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array 0.14.6", + "generic-array 0.14.7", "hmac 0.8.1", ] @@ -3060,9 +3236,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -3077,7 +3253,7 @@ checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", ] [[package]] @@ -3088,9 +3264,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -3100,9 +3276,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.23" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", @@ -3114,8 +3290,8 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.9", - "socket2", + "pin-project-lite 0.2.12", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -3153,26 +3329,25 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi 0.3.9", + "windows 0.48.0", ] [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] @@ -3194,9 +3369,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -3221,22 +3396,21 @@ dependencies = [ "async-io", "core-foundation", "fnv", - "futures 0.3.25", + "futures 0.3.28", "if-addrs", "ipnet", "log", "rtnetlink", "system-configuration", - "windows", + "windows 0.34.0", ] [[package]] name = "ignore" -version = "0.4.18" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" dependencies = [ - "crossbeam-utils", "globset", "lazy_static", "log", @@ -3274,20 +3448,30 @@ checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "inflections" version = "1.1.1" @@ -3300,7 +3484,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "inotify-sys", "libc", ] @@ -3350,12 +3534,13 @@ checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" [[package]] name = "io-lifetimes" -version = "1.0.3" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ + "hermit-abi 0.3.2", "libc", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -3375,32 +3560,31 @@ checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.3", "widestring", - "winapi 0.3.9", - "winreg", + "windows-sys 0.48.0", + "winreg 0.50.0", ] [[package]] name = "ipnet" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is-terminal" -version = "0.4.2" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.2.6", - "io-lifetimes 1.0.3", - "rustix 0.36.5", - "windows-sys 0.42.0", + "hermit-abi 0.3.2", + "rustix 0.38.8", + "windows-sys 0.48.0", ] [[package]] @@ -3414,24 +3598,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -3512,7 +3696,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3dc3e9cf2ba50b7b1d7d76a667619f82846caa39e8e8daa8a4962d74acaddca" dependencies = [ "anyhow", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "async-lock", "async-trait", "beef", @@ -3606,7 +3790,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -3683,9 +3867,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ "cpufeatures", ] @@ -3744,21 +3928,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.138" +version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" - -[[package]] -name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libp2p" @@ -3767,9 +3945,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec878fda12ebec479186b3914ebc48ff180fa4c51847e11a1a68bf65249e02c1" dependencies = [ "bytes", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", - "getrandom 0.2.8", + "getrandom 0.2.10", "instant", "lazy_static", "libp2p-core", @@ -3805,7 +3983,7 @@ dependencies = [ "ed25519-dalek", "either", "fnv", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "instant", "lazy_static", @@ -3819,7 +3997,7 @@ dependencies = [ "prost-build", "rand 0.8.5", "rw-stream-sink", - "sha2 0.10.6", + "sha2 0.10.7", "smallvec", "thiserror", "unsigned-varint", @@ -3834,7 +4012,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2322c9fb40d99101def6a01612ee30500c89abbbecb6297b3cd252903a4c1720" dependencies = [ "async-std-resolver", - "futures 0.3.25", + "futures 0.3.28", "libp2p-core", "log", "parking_lot 0.12.1", @@ -3849,7 +4027,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf9a121f699e8719bda2e6e9e9b6ddafc6cff4602471d6481c1067930ccb29b" dependencies = [ "asynchronous-codec", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "libp2p-core", "libp2p-swarm", @@ -3869,12 +4047,12 @@ version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6721c200e2021f6c3fab8b6cf0272ead8912d871610ee194ebd628cecf428f22" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "asynchronous-codec", "bytes", "either", "fnv", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "instant", "libp2p-core", @@ -3883,7 +4061,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "smallvec", "thiserror", "uint", @@ -3900,14 +4078,14 @@ dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.25", + "futures 0.3.28", "if-watch", "libp2p-core", "libp2p-swarm", "log", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.4.9", "void", ] @@ -3933,7 +4111,7 @@ checksum = "692664acfd98652de739a8acbb0a0d670f1d67190a49be6b4395e22c37337d89" dependencies = [ "asynchronous-codec", "bytes", - "futures 0.3.25", + "futures 0.3.28", "libp2p-core", "log", "nohash-hasher", @@ -3951,14 +4129,14 @@ checksum = "048155686bd81fe6cb5efdef0c6290f25ad32a0a42e8f4f72625cf6a505a206f" dependencies = [ "bytes", "curve25519-dalek 3.2.0", - "futures 0.3.25", + "futures 0.3.28", "lazy_static", "libp2p-core", "log", "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "snow", "static_assertions", "x25519-dalek", @@ -3971,7 +4149,7 @@ version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7228b9318d34689521349a86eb39a3c3a802c9efc99a0568062ffb80913e3f91" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "instant", "libp2p-core", @@ -3989,7 +4167,7 @@ checksum = "8827af16a017b65311a410bb626205a9ad92ec0473967618425039fa5231adc1" dependencies = [ "async-trait", "bytes", - "futures 0.3.25", + "futures 0.3.28", "instant", "libp2p-core", "libp2p-swarm", @@ -4007,7 +4185,7 @@ checksum = "46d13df7c37807965d82930c0e4b04a659efcb6cca237373b206043db5398ecf" dependencies = [ "either", "fnv", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "instant", "libp2p-core", @@ -4025,9 +4203,9 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0eddc4497a8b5a506013c40e8189864f9c3a00db2b25671f428ae9007f3ba32" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4037,13 +4215,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9839d96761491c6d3e238e70554b856956fca0ab60feb9de2cd08eed4473fa92" dependencies = [ "async-io", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "if-watch", "libc", "libp2p-core", "log", - "socket2", + "socket2 0.4.9", ] [[package]] @@ -4052,7 +4230,7 @@ version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a17b5b8e7a73e379e47b1b77f8a82c4721e97eca01abcd18e9cd91a23ca6ce97" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -4067,7 +4245,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3758ae6f89b2531a24b6d9f5776bda6a626b60a57600d7185d43dfa75ca5ecc4" dependencies = [ "either", - "futures 0.3.25", + "futures 0.3.28", "futures-rustls", "libp2p-core", "log", @@ -4085,7 +4263,7 @@ version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6874d66543c4f7e26e3b8ca9a6bead351563a13ab4fafd43c7927f7c0d6c12" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "libp2p-core", "log", "parking_lot 0.12.1", @@ -4100,7 +4278,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", - "base64", + "base64 0.13.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -4143,24 +4321,15 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.8" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "pkg-config", "vcpkg", ] -[[package]] -name = "link-cplusplus" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] - [[package]] name = "linked-hash-map" version = "0.5.6" @@ -4194,15 +4363,21 @@ checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" [[package]] name = "linux-raw-sys" -version = "0.1.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -4210,11 +4385,10 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" dependencies = [ - "cfg-if 1.0.0", "value-bag", ] @@ -4224,7 +4398,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -4233,7 +4407,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" dependencies = [ - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -4292,21 +4466,22 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] name = "matches" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" -version = "0.3.2" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" dependencies = [ + "autocfg", "rawpointer", ] @@ -4318,18 +4493,18 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memfd" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b20a59d985586e4a5aef64564ac77299f8586d8be6cf9106a5a40207e8908efb" +checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 0.36.5", + "rustix 0.37.23", ] [[package]] name = "memmap2" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ "libc", ] @@ -4345,9 +4520,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -4359,7 +4534,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34ac11bb793c28fa095b7554466f53b3a60a2cd002afdac01bcf135cbd73a269" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.12.3", "parity-util-mem", ] @@ -4383,9 +4558,9 @@ dependencies = [ [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "minimal-lexical" @@ -4395,9 +4570,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] @@ -4423,14 +4598,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", - "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -4459,9 +4633,9 @@ dependencies = [ [[package]] name = "mockall" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e4a1c770583dac7ab5e2f6c139153b783a53a1bbee9729613f193e59828326" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" dependencies = [ "cfg-if 1.0.0", "downcast", @@ -4474,14 +4648,14 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "832663583d5fa284ca8810bf7015e46c9fff9622d3cf34bd1eea5003fec06dd0" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ "cfg-if 1.0.0", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4523,24 +4697,24 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.6", + "digest 0.10.7", "multihash-derive", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "unsigned-varint", ] [[package]] name = "multihash-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -4557,7 +4731,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" dependencies = [ "bytes", - "futures 0.3.25", + "futures 0.3.28", "log", "pin-project", "smallvec", @@ -4590,7 +4764,7 @@ checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4622,9 +4796,9 @@ dependencies = [ [[package]] name = "net2" -version = "0.2.38" +version = "0.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" +checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" dependencies = [ "cfg-if 0.1.10", "libc", @@ -4650,7 +4824,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -4659,9 +4833,9 @@ dependencies = [ [[package]] name = "netlink-packet-utils" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25af9cf0dc55498b7bd94a1508af7a78706aa0ab715a73c5169273e03c84845e" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ "anyhow", "byteorder", @@ -4676,7 +4850,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ "bytes", - "futures 0.3.25", + "futures 0.3.28", "log", "netlink-packet-core", "netlink-sys", @@ -4686,13 +4860,13 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b654097027250401127914afb37cb1f311df6610a9891ff07a757e94199027" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "async-io", "bytes", - "futures 0.3.25", + "futures 0.3.28", "libc", "log", ] @@ -4709,18 +4883,18 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", ] [[package]] name = "nix" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a58d1d356c6597d08cde02c2f09d785b09e28711837b1ed667dc652c08a694" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", "static_assertions", @@ -4740,9 +4914,9 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.1" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", @@ -4750,9 +4924,9 @@ dependencies = [ [[package]] name = "nom_locate" -version = "4.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37794436ca3029a3089e0b95d42da1f0b565ad271e4d3bb4bad0c7bb70b10605" +checksum = "b1e299bf5ea7b212e811e71174c5d1a5d065c4c0ad0c8691ecb1f97e3e66025e" dependencies = [ "bytecount", "memchr", @@ -4771,7 +4945,7 @@ version = "4.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" dependencies = [ - "bitflags", + "bitflags 1.3.2", "filetime", "fsevent", "fsevent-sys", @@ -4807,9 +4981,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -4820,7 +4994,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "itoa", ] @@ -4860,42 +5034,42 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", - "libm 0.2.6", + "libm", ] [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.3.2", "libc", ] [[package]] name = "num_enum" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4905,27 +5079,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ "crc32fast", - "hashbrown", - "indexmap", + "hashbrown 0.12.3", + "indexmap 1.9.3", "memchr", ] [[package]] name = "object" -version = "0.30.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239da7f290cfa979f43f85a8efeee9a8a76d0827c356d37f9d3d7254d6b537fb" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.16.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" dependencies = [ - "parking_lot_core 0.9.5", + "parking_lot_core 0.9.8", ] [[package]] @@ -4942,11 +5116,11 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.45" +version = "0.10.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1" +checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "foreign-types", "libc", @@ -4957,13 +5131,13 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] @@ -4974,11 +5148,10 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.80" +version = "0.9.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7" +checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" dependencies = [ - "autocfg", "cc", "libc", "pkg-config", @@ -4987,19 +5160,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" - -[[package]] -name = "packed_simd_2" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" -dependencies = [ - "cfg-if 1.0.0", - "libm 0.1.4", -] +checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" [[package]] name = "pallet-atomic-swap" @@ -5041,6 +5204,7 @@ dependencies = [ "frame-system", "log", "maplit", + "pallet-dump-storage", "pallet-offences", "pallet-session", "parity-scale-codec", @@ -5116,6 +5280,7 @@ dependencies = [ "frame-support", "frame-system", "maplit", + "pallet-dump-storage", "parity-scale-codec", "scale-info", "serde", @@ -5142,6 +5307,54 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-dump-storage" +version = "1.0.0" +dependencies = [ + "dump-macros", + "frame-support", + "frame-system", + "gdev-runtime", + "maplit", + "pallet-atomic-swap", + "pallet-authority-members", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-certification", + "pallet-collective", + "pallet-duniter-account", + "pallet-duniter-test-parameters", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-membership", + "pallet-multisig", + "pallet-offences", + "pallet-oneshot-account", + "pallet-preimage", + "pallet-provide-randomness", + "pallet-proxy", + "pallet-scheduler", + "pallet-session", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-treasury", + "pallet-universal-dividend", + "parity-scale-codec", + "pretty_assertions", + "scale-info", + "sp-arithmetic", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "strum 0.25.0", + "strum_macros 0.25.2", +] + [[package]] name = "pallet-duniter-account" version = "3.0.0" @@ -5152,6 +5365,7 @@ dependencies = [ "log", "maplit", "pallet-balances", + "pallet-dump-storage", "pallet-provide-randomness", "pallet-treasury", "parity-scale-codec", @@ -5170,6 +5384,7 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "pallet-dump-storage", "pallet-duniter-test-parameters-macro", "parity-scale-codec", "scale-info", @@ -5186,7 +5401,7 @@ dependencies = [ "num_enum", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -5240,6 +5455,7 @@ dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", + "pallet-dump-storage", "parity-scale-codec", "scale-info", "serde", @@ -5278,6 +5494,7 @@ dependencies = [ "frame-support", "frame-system", "maplit", + "pallet-dump-storage", "parity-scale-codec", "scale-info", "serde", @@ -5312,6 +5529,7 @@ dependencies = [ "frame-system", "log", "pallet-balances", + "pallet-dump-storage", "parity-scale-codec", "scale-info", "serde", @@ -5331,6 +5549,7 @@ dependencies = [ "frame-system", "log", "pallet-balances", + "pallet-dump-storage", "pallet-transaction-payment", "parity-scale-codec", "scale-info", @@ -5365,6 +5584,7 @@ dependencies = [ "frame-support", "frame-system", "pallet-balances", + "pallet-dump-storage", "parity-scale-codec", "scale-info", "sp-core", @@ -5546,6 +5766,7 @@ dependencies = [ "frame-support", "frame-system", "pallet-balances", + "pallet-dump-storage", "pallet-timestamp", "parity-scale-codec", "scale-info", @@ -5608,11 +5829,11 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.2.1" +version = "3.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "366e44391a8af4cfd6002ef6ba072bae071a96aafca98d7d448a34c5dca38b6a" +checksum = "dd8e946cc0cc711189c0b0249fb8b599cbeeab9784d83c415719368bb8d4ac64" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "bitvec", "byte-slice-cast", "bytes", @@ -5623,14 +5844,14 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.3" +version = "3.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9299338969a3d2f491d65f140b00ddec470858402f888af98e8642fb5e8965cd" +checksum = "2a296c3079b5fefbc499e1de58dc26c09b1b9a5952d26694ee89f04a43ebbb3e" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -5646,7 +5867,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8" dependencies = [ "cfg-if 1.0.0", - "hashbrown", + "hashbrown 0.12.3", "impl-trait-for-tuples", "parity-util-mem-derive", "parking_lot 0.12.1", @@ -5661,7 +5882,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.109", "synstructure", ] @@ -5682,9 +5903,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" [[package]] name = "parking_lot" @@ -5704,7 +5925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.5", + "parking_lot_core 0.9.8", ] [[package]] @@ -5716,29 +5937,29 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi 0.3.9", ] [[package]] name = "parking_lot_core" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", - "windows-sys 0.42.0", + "windows-targets 0.48.5", ] [[package]] name = "paste" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pbkdf2" @@ -5787,15 +6008,15 @@ checksum = "9555b1514d2d99d78150d3c799d4c357a3e2c2a8062cd108e93a06d9057629c5" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.5.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0" +checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" dependencies = [ "thiserror", "ucd-trie", @@ -5803,9 +6024,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.5.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc078600d06ff90d4ed238f0119d84ab5d43dbaad278b0e33a8820293b32344" +checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" dependencies = [ "pest", "pest_generator", @@ -5813,56 +6034,56 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a1af60b1c4148bb269006a750cff8e2ea36aff34d2d96cf7be0b14d1bed23c" +checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] name = "pest_meta" -version = "2.5.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec8605d59fc2ae0c6c1aefc0c7c7a9769732017c0ce07f7a9cfffa7b4404f20" +checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" dependencies = [ "once_cell", "pest", - "sha1", + "sha2 0.10.7", ] [[package]] name = "petgraph" -version = "0.6.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 2.0.0", ] [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] @@ -5873,9 +6094,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" [[package]] name = "pin-utils" @@ -5896,9 +6117,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "placeholder" @@ -5924,16 +6145,18 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polling" -version = "2.5.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg", + "bitflags 1.3.2", "cfg-if 1.0.0", + "concurrent-queue", "libc", "log", - "wepoll-ffi", - "windows-sys 0.42.0", + "pin-project-lite 0.2.12", + "windows-sys 0.48.0", ] [[package]] @@ -5976,9 +6199,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "2.1.4" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54fc5dc63ed3bbf19494623db4f3af16842c0d975818e469022d09e53f0aa05" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" dependencies = [ "difflib", "float-cmp", @@ -5990,28 +6213,38 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", ] +[[package]] +name = "pretty_assertions" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +dependencies = [ + "diff", + "yansi", +] + [[package]] name = "prettyplease" -version = "0.1.22" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8992a85d8e93a28bdf76137db888d3874e3b230dee5ed8bebac4c9f7617773" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.109", ] [[package]] @@ -6029,11 +6262,10 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "once_cell", "thiserror", "toml", ] @@ -6047,7 +6279,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "version_check", ] @@ -6064,9 +6296,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.49" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] @@ -6105,14 +6337,14 @@ checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "prost" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c01db6702aa05baa3f57dec92b8eeeeb4cb19e894e73996b32a4093289e54592" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -6120,12 +6352,12 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5320c680de74ba083512704acb90fe00f28f79207286a848e730c45dd73ed6" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck 0.4.0", + "heck 0.4.1", "itertools", "lazy_static", "log", @@ -6135,7 +6367,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn", + "syn 1.0.109", "tempfile", "which", ] @@ -6155,24 +6387,23 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8842bad1a5419bca14eac663ba798f6bc19c413c2fdceb5f3ba3b0932d96720" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "prost-types" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "017f79637768cde62820bc2d4fe0e45daaa027755c323ad077767c6c5f173091" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -6204,9 +6435,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.23" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -6277,7 +6508,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.10", ] [[package]] @@ -6325,9 +6556,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", @@ -6335,9 +6566,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -6351,7 +6582,16 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", ] [[package]] @@ -6360,29 +6600,29 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.8", - "redox_syscall", + "getrandom 0.2.10", + "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "ref-cast" -version = "1.0.14" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c78fb8c9293bcd48ef6fce7b4ca950ceaf21210de6e105a883ee280c0f7b9ed" +checksum = "acde58d073e9c79da00f2b5b84eed919c8326832648a5b109b3fce1bb1175280" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.14" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f" +checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] @@ -6399,13 +6639,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.0" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-automata 0.3.6", + "regex-syntax 0.7.4", ] [[package]] @@ -6414,21 +6655,38 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax", + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.7.4", ] [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" [[package]] name = "remote-externalities" version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "env_logger", + "env_logger 0.9.3", "log", "parity-scale-codec", "serde", @@ -6440,22 +6698,13 @@ dependencies = [ "substrate-rpc-client", ] -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "reqwest" -version = "0.11.13" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "base64", + "base64 0.21.2", "bytes", "encoding_rs", "futures-core", @@ -6472,7 +6721,7 @@ dependencies = [ "native-tls", "once_cell", "percent-encoding", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", "serde", "serde_json", "serde_urlencoded", @@ -6483,7 +6732,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "winreg 0.10.1", ] [[package]] @@ -6540,7 +6789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ "async-global-executor", - "futures 0.3.25", + "futures 0.3.28", "log", "netlink-packet-route", "netlink-proto", @@ -6569,9 +6818,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -6591,17 +6840,17 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.16", + "semver 1.0.18", ] [[package]] name = "rustix" -version = "0.35.13" +version = "0.35.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9" +checksum = "6380889b07a03b5ecf1d44dc9ede6fd2145d84b502a2a9ca0b03c48e0cc3220f" dependencies = [ - "bitflags", - "errno", + "bitflags 1.3.2", + "errno 0.2.8", "io-lifetimes 0.7.5", "libc", "linux-raw-sys 0.0.46", @@ -6610,23 +6859,36 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.5" +version = "0.37.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" dependencies = [ - "bitflags", - "errno", - "io-lifetimes 1.0.3", + "bitflags 1.3.2", + "errno 0.3.2", + "io-lifetimes 1.0.11", "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.42.0", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" +dependencies = [ + "bitflags 2.4.0", + "errno 0.3.2", + "libc", + "linux-raw-sys 0.4.5", + "windows-sys 0.48.0", ] [[package]] name = "rustls" -version = "0.20.7" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ "log", "ring", @@ -6636,9 +6898,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", "rustls-pemfile", @@ -6648,18 +6910,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64", + "base64 0.21.2", ] [[package]] name = "rustversion" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "rusty-hook" @@ -6679,16 +6941,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "pin-project", "static_assertions", ] [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" @@ -6715,7 +6977,7 @@ name = "sc-basic-authorship" version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "log", "parity-scale-codec", @@ -6774,7 +7036,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6784,9 +7046,9 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "array-bytes", "chrono", - "clap 4.0.30", + "clap 4.3.23", "fdlimit", - "futures 0.3.25", + "futures 0.3.28", "libp2p", "log", "names", @@ -6823,7 +7085,7 @@ version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "fnv", - "futures 0.3.25", + "futures 0.3.28", "hash-db", "log", "parity-scale-codec", @@ -6875,7 +7137,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "async-trait", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "libp2p", "log", @@ -6899,7 +7161,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "async-trait", - "futures 0.3.25", + "futures 0.3.28", "log", "parity-scale-codec", "sc-block-builder", @@ -6929,7 +7191,7 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "async-trait", "fork-tree", - "futures 0.3.25", + "futures 0.3.28", "log", "merlin", "num-bigint 0.2.6", @@ -6984,7 +7246,7 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "assert_matches", "async-trait", - "futures 0.3.25", + "futures 0.3.28", "jsonrpsee 0.15.1", "log", "parity-scale-codec", @@ -7017,7 +7279,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "async-trait", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "log", "parity-scale-codec", @@ -7115,7 +7377,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parity-wasm 0.45.0", - "rustix 0.35.13", + "rustix 0.35.14", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -7135,7 +7397,7 @@ dependencies = [ "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "log", "parity-scale-codec", @@ -7171,7 +7433,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "ansi_term", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "log", "parity-util-mem", @@ -7205,13 +7467,13 @@ dependencies = [ "array-bytes", "async-trait", "asynchronous-codec", - "bitflags", + "bitflags 1.3.2", "bytes", "cid", "either", "fnv", "fork-tree", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "ip_network", "libp2p", @@ -7250,7 +7512,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "cid", - "futures 0.3.25", + "futures 0.3.28", "libp2p", "log", "prost", @@ -7270,9 +7532,9 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "libp2p", "linked_hash_set", @@ -7296,7 +7558,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "ahash", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "libp2p", "log", @@ -7314,7 +7576,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "array-bytes", - "futures 0.3.25", + "futures 0.3.28", "libp2p", "log", "parity-scale-codec", @@ -7336,7 +7598,7 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "array-bytes", "fork-tree", - "futures 0.3.25", + "futures 0.3.28", "libp2p", "log", "lru 0.7.8", @@ -7365,7 +7627,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "array-bytes", - "futures 0.3.25", + "futures 0.3.28", "hex", "libp2p", "log", @@ -7386,7 +7648,7 @@ dependencies = [ "array-bytes", "bytes", "fnv", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "hyper", "hyper-rustls", @@ -7413,7 +7675,7 @@ name = "sc-peerset" version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "libp2p", "log", "sc-utils", @@ -7435,7 +7697,7 @@ name = "sc-rpc" version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "hash-db", "jsonrpsee 0.15.1", "log", @@ -7465,7 +7727,7 @@ name = "sc-rpc-api" version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "jsonrpsee 0.15.1", "log", "parity-scale-codec", @@ -7488,7 +7750,7 @@ name = "sc-rpc-server" version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "jsonrpsee 0.15.1", "log", "serde_json", @@ -7501,7 +7763,7 @@ name = "sc-rpc-spec-v2" version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "hex", "jsonrpsee 0.15.1", "parity-scale-codec", @@ -7523,7 +7785,7 @@ dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "hash-db", "jsonrpsee 0.15.1", @@ -7605,7 +7867,7 @@ name = "sc-sysinfo" version = "6.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "libc", "log", "rand 0.7.3", @@ -7625,7 +7887,7 @@ version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "chrono", - "futures 0.3.25", + "futures 0.3.28", "libp2p", "log", "parking_lot 0.12.1", @@ -7676,7 +7938,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -7685,7 +7947,7 @@ version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "async-trait", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "linked-hash-map", "log", @@ -7712,7 +7974,7 @@ version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "async-trait", - "futures 0.3.25", + "futures 0.3.28", "log", "serde", "sp-blockchain", @@ -7725,7 +7987,7 @@ name = "sc-utils" version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "lazy_static", "log", @@ -7758,9 +8020,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.3.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "001cf62ece89779fd16105b5f515ad0e5cedcd5440d3dd806bb067978e7c3608" +checksum = "35c0a159d0c45c12b20c5a844feb1fe4bea86e28f17b92a5f0c42193634d3782" dependencies = [ "bitvec", "cfg-if 1.0.0", @@ -7772,14 +8034,14 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.3.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "303959cf613a6f6efd19ed4b4ad5bf79966a13352716299ad532cfb115f4205c" +checksum = "912e55f6d20e0e80d63733872b40e1227c0bce1e1ab81ba67d696339bfd7fd29" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -7801,12 +8063,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.20" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "windows-sys 0.48.0", ] [[package]] @@ -7829,15 +8090,9 @@ dependencies = [ [[package]] name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sct" @@ -7858,7 +8113,7 @@ dependencies = [ "heck 0.3.3", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -7870,7 +8125,7 @@ dependencies = [ "heck 0.3.3", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -7880,7 +8135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" dependencies = [ "der", - "generic-array 0.14.6", + "generic-array 0.14.7", "pkcs8", "subtle", "zeroize", @@ -7888,9 +8143,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9512ffd81e3a3503ed401f79c33168b9148c75038956039166cd750eaa037c3" +checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" dependencies = [ "secp256k1-sys", ] @@ -7915,11 +8170,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.7.0" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -7928,9 +8183,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", @@ -7947,9 +8202,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] @@ -7962,29 +8217,29 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.151" +version = "1.0.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0" +checksum = "be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.151" +version = "1.0.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8" +checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" dependencies = [ "itoa", "ryu", @@ -7993,9 +8248,9 @@ dependencies = [ [[package]] name = "serde_nanos" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44969a61f5d316be20a42ff97816efb3b407a924d06824c3d8a49fa8450de0e" +checksum = "8ae801b7733ca8d6a2b580debe99f67f36826a0f5b8a36055dc6bc40f8d6bc71" dependencies = [ "serde", ] @@ -8025,17 +8280,6 @@ dependencies = [ "opaque-debug 0.3.0", ] -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.6", -] - [[package]] name = "sha2" version = "0.8.2" @@ -8063,22 +8307,22 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] name = "sha3" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -8093,9 +8337,9 @@ dependencies = [ [[package]] name = "signal-hook" -version = "0.3.14" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", @@ -8103,9 +8347,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] @@ -8134,24 +8378,24 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] [[package]] name = "slice-group-by" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "snap" @@ -8161,41 +8405,51 @@ checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "snow" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774d05a3edae07ce6d68ea6984f3c05e9bba8927e3dd591e3b479e5b03213d0d" +checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155" dependencies = [ "aes-gcm", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-pre.5", + "curve25519-dalek 4.0.0", "rand_core 0.6.4", "ring", "rustc_version", - "sha2 0.10.6", + "sha2 0.10.7", "subtle", ] [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi 0.3.9", ] +[[package]] +name = "socket2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "soketto" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ - "base64", + "base64 0.13.1", "bytes", "flate2", - "futures 0.3.25", + "futures 0.3.28", "httparse", "log", "rand 0.8.5", @@ -8229,7 +8483,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -8302,7 +8556,7 @@ name = "sp-blockchain" version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "log", "lru 0.7.8", "parity-scale-codec", @@ -8321,7 +8575,7 @@ version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "async-trait", - "futures 0.3.25", + "futures 0.3.28", "futures-timer", "log", "parity-scale-codec", @@ -8409,12 +8663,12 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "array-bytes", "base58", - "bitflags", + "bitflags 1.3.2", "blake2", "byteorder", "dyn-clonable", "ed25519-zebra", - "futures 0.3.25", + "futures 0.3.28", "hash-db", "hash256-std-hasher", "impl-serde", @@ -8455,8 +8709,8 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "blake2", "byteorder", - "digest 0.10.6", - "sha2 0.10.6", + "digest 0.10.7", + "sha2 0.10.7", "sha3", "sp-std", "twox-hash", @@ -8470,7 +8724,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn", + "syn 1.0.109", ] [[package]] @@ -8489,7 +8743,7 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -8541,7 +8795,7 @@ version = "6.0.0" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "bytes", - "futures 0.3.25", + "futures 0.3.28", "hash-db", "libsecp256k1", "log", @@ -8569,7 +8823,7 @@ dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum", + "strum 0.24.1", ] [[package]] @@ -8578,7 +8832,7 @@ version = "0.12.0" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "async-trait", - "futures 0.3.25", + "futures 0.3.28", "merlin", "parity-scale-codec", "parking_lot 0.12.1", @@ -8690,7 +8944,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -8845,7 +9099,7 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "ahash", "hash-db", - "hashbrown", + "hashbrown 0.12.3", "lazy_static", "lru 0.7.8", "memory-db", @@ -8886,7 +9140,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -8936,9 +9190,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.36.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d92659e7d18d82b803824a9ba5a6022cff101c3491d027c1c1d8d30e749284" +checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439" dependencies = [ "Inflector", "num-format", @@ -8967,7 +9221,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "libc", "parking_lot 0.11.2", @@ -8986,7 +9240,7 @@ dependencies = [ "memchr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9014,20 +9268,39 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros", + "strum_macros 0.24.3", ] +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" + [[package]] name = "strum_macros" version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" +dependencies = [ + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn", + "syn 2.0.29", ] [[package]] @@ -9057,7 +9330,7 @@ version = "4.0.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.25", + "futures 0.3.28", "jsonrpsee 0.15.1", "log", "parity-scale-codec", @@ -9108,7 +9381,7 @@ dependencies = [ "cargo_metadata", "filetime", "sp-maybe-compressed-blob", - "strum", + "strum 0.24.1", "tempfile", "toml", "walkdir", @@ -9129,8 +9402,8 @@ dependencies = [ "bitvec", "derivative", "frame-metadata", - "futures 0.3.25", - "getrandom 0.2.8", + "futures 0.3.28", + "getrandom 0.2.10", "hex", "jsonrpsee 0.16.2", "parity-scale-codec", @@ -9155,7 +9428,7 @@ source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9 dependencies = [ "darling", "frame-metadata", - "heck 0.4.0", + "heck 0.4.1", "hex", "jsonrpsee 0.16.2", "parity-scale-codec", @@ -9164,7 +9437,7 @@ dependencies = [ "quote", "scale-info", "subxt-metadata", - "syn", + "syn 1.0.109", "tokio", ] @@ -9176,7 +9449,7 @@ dependencies = [ "darling", "proc-macro-error", "subxt-codegen", - "syn", + "syn 1.0.109", ] [[package]] @@ -9192,9 +9465,20 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" dependencies = [ "proc-macro2", "quote", @@ -9209,7 +9493,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "unicode-xid", ] @@ -9219,7 +9503,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "033178d0acccffc5490021657006e6a8dd586ee9dc6f7c24e7608b125e568cb1" dependencies = [ - "syn", + "syn 1.0.109", "synthez-codegen", "synthez-core", ] @@ -9230,7 +9514,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69263462a40e46960f070618e20094ce69e783a41f86e54bc75545136afd597a" dependencies = [ - "syn", + "syn 1.0.109", "synthez-core", ] @@ -9243,16 +9527,16 @@ dependencies = [ "proc-macro2", "quote", "sealed 0.3.0", - "syn", + "syn 1.0.109", ] [[package]] name = "system-configuration" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -9275,29 +9559,28 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.5" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d" +checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "tempfile" -version = "3.3.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if 1.0.0", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi 0.3.9", + "fastrand 2.0.0", + "redox_syscall 0.3.5", + "rustix 0.38.8", + "windows-sys 0.48.0", ] [[package]] name = "tera" -version = "1.17.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d4685e72cb35f0eb74319c8fe2d3b61e93da5609841cde2cb87fcc3bea56d20" +checksum = "3df578c295f9ec044ff1c829daf31bb7581d5b3c2a7a3d87419afe1f2531438c" dependencies = [ "globwalk", "lazy_static", @@ -9311,28 +9594,18 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] -[[package]] -name = "terminal_size" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" -dependencies = [ - "libc", - "winapi 0.3.9", -] - [[package]] name = "termtree" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "textwrap" @@ -9351,22 +9624,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] @@ -9377,10 +9650,11 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if 1.0.0", "once_cell", ] @@ -9434,46 +9708,45 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.23.0" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ - "autocfg", + "backtrace", "bytes", "libc", - "memchr", - "mio 0.8.5", + "mio 0.8.8", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", "signal-hook-registry", - "socket2", + "socket2 0.5.3", "tokio-macros", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] name = "tokio-native-tls" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", "tokio", @@ -9492,35 +9765,35 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", "tokio", ] [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", "tokio", "tracing", ] [[package]] name = "toml" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] @@ -9538,27 +9811,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.12", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -9625,7 +9898,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "004e1e8f92535694b4cb1444dc5a8073ecf0815e3357f729638b9f8fc4062908" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.12.3", "log", "rustc-hex", "smallvec", @@ -9685,16 +9958,16 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.32#7f8b8db65b441ce1d1b2ffb26ebde314b54e117c" dependencies = [ - "clap 4.0.30", + "clap 4.3.23", "frame-try-runtime", "log", "parity-scale-codec", @@ -9729,7 +10002,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if 1.0.0", - "digest 0.10.6", + "digest 0.10.7", "rand 0.8.5", "static_assertions", ] @@ -9742,7 +10015,7 @@ checksum = "f85f4270f4f449a3f2c0cf2aecc8415e388a597aeacc7d55fc749c5c968c8533" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9753,9 +10026,9 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uint" @@ -9830,15 +10103,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-normalization" @@ -9851,9 +10124,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" @@ -9873,7 +10146,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -9906,12 +10179,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ "form_urlencoded", - "idna 0.3.0", + "idna 0.4.0", "percent-encoding", ] @@ -9925,6 +10198,12 @@ dependencies = [ "log", ] +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "valuable" version = "0.1.0" @@ -9933,13 +10212,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.0.0-alpha.9" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "version_check", -] +checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3" [[package]] name = "vcpkg" @@ -9973,22 +10248,20 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi 0.3.9", "winapi-util", ] [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -10012,9 +10285,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -10022,24 +10295,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn", + "syn 2.0.29", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -10049,9 +10322,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10059,22 +10332,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.29", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-gc-api" @@ -10102,7 +10375,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -10138,7 +10411,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" dependencies = [ "downcast-rs", - "libm 0.2.6", + "libm", "memory_units", "num-rational 0.4.1", "num-traits", @@ -10150,7 +10423,7 @@ version = "0.89.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5d3e08b13876f96dd55608d03cd4883a0545884932d5adf11925876c96daef" dependencies = [ - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -10162,7 +10435,7 @@ dependencies = [ "anyhow", "bincode", "cfg-if 1.0.0", - "indexmap", + "indexmap 1.9.3", "libc", "log", "object 0.29.0", @@ -10197,12 +10470,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcd849399d17d2270141cfe47fa0d91ee52d5f8ea9b98cf7ddde0d53e5f79882" dependencies = [ "anyhow", - "base64", + "base64 0.13.1", "bincode", "directories-next", "file-per-thread-logger", "log", - "rustix 0.35.13", + "rustix 0.35.14", "serde", "sha2 0.9.9", "toml", @@ -10240,7 +10513,7 @@ dependencies = [ "anyhow", "cranelift-entity", "gimli 0.26.2", - "indexmap", + "indexmap 1.9.3", "log", "object 0.29.0", "serde", @@ -10265,7 +10538,7 @@ dependencies = [ "log", "object 0.29.0", "rustc-demangle", - "rustix 0.35.13", + "rustix 0.35.14", "serde", "target-lexicon", "thiserror", @@ -10283,7 +10556,7 @@ checksum = "f671b588486f5ccec8c5a3dba6b4c07eac2e66ab8c60e6f4e53717c77f709731" dependencies = [ "object 0.29.0", "once_cell", - "rustix 0.35.13", + "rustix 0.35.14", ] [[package]] @@ -10295,7 +10568,7 @@ dependencies = [ "anyhow", "cc", "cfg-if 1.0.0", - "indexmap", + "indexmap 1.9.3", "libc", "log", "mach", @@ -10303,7 +10576,7 @@ dependencies = [ "memoffset 0.6.5", "paste", "rand 0.8.5", - "rustix 0.35.13", + "rustix 0.35.14", "thiserror", "wasmtime-asm-macros", "wasmtime-environ", @@ -10325,9 +10598,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -10352,20 +10625,11 @@ dependencies = [ "webpki", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - [[package]] name = "which" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" dependencies = [ "either", "libc", @@ -10374,9 +10638,9 @@ dependencies = [ [[package]] name = "widestring" -version = "0.5.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -10434,6 +10698,15 @@ dependencies = [ "windows_x86_64_msvc 0.34.0", ] +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.36.1" @@ -10453,20 +10726,74 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -10482,9 +10809,15 @@ checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -10500,9 +10833,15 @@ checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -10518,9 +10857,15 @@ checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -10536,15 +10881,27 @@ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -10560,9 +10917,15 @@ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winreg" @@ -10573,6 +10936,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -10608,7 +10981,7 @@ name = "xtask" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.0.30", + "clap 4.3.23", "frame-metadata", "graphql_client", "hex", @@ -10632,7 +11005,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" dependencies = [ - "futures 0.3.25", + "futures 0.3.28", "log", "nohash-hasher", "parking_lot 0.12.1", @@ -10640,6 +11013,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + [[package]] name = "yap" version = "0.7.2" @@ -10648,23 +11027,22 @@ checksum = "5fc77f52dc9e9b10d55d3f4462c3b7fc393c4f17975d641542833ab2d3bc26ef" [[package]] name = "zeroize" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.3.3" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn", - "synstructure", + "syn 2.0.29", ] [[package]] @@ -10688,10 +11066,11 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.4+zstd.1.5.2" +version = "2.0.8+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" dependencies = [ "cc", "libc", + "pkg-config", ] diff --git a/Cargo.toml b/Cargo.toml index 0896f98b8..323848806 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,6 +55,7 @@ sp-trie = { git = "https://github.com/duniter/substrate", branch = "duniter-subs [dependencies] # local dependencies +dc-dump = { path = 'client/dump' } common-runtime = { path = 'runtime/common' } g1-runtime = { path = 'runtime/g1', optional = true } gdev-runtime = { path = 'runtime/gdev', optional = true } @@ -112,6 +113,7 @@ sp-blockchain = { git = "https://github.com/duniter/substrate", branch = "dunite sp-consensus = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-consensus-babe = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-core = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } +sp-externalities = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-finality-grandpa = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-inherents = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-io = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } @@ -120,6 +122,7 @@ sp-keyring = { git = "https://github.com/duniter/substrate", branch = "duniter-s sp-keystore = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-runtime = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-session = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } +sp-state-machine = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-storage = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-timestamp = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } sp-transaction-pool = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" } @@ -133,6 +136,8 @@ resolver = "2" members = [ 'end2end-tests', 'live-tests', +# 'client/dump', +# 'client/dump-pallet', 'pallets/certification', 'pallets/duniter-test-parameters', 'pallets/duniter-test-parameters/macro', diff --git a/client/dump/Cargo.toml b/client/dump/Cargo.toml new file mode 100644 index 000000000..93ef03826 --- /dev/null +++ b/client/dump/Cargo.toml @@ -0,0 +1,157 @@ +[package] +authors = ['cgeek <cem.moreau@gmail.com>'] +description = 'Duniter client dumper of Storage' +edition = '2021' +homepage = 'https://duniter.org' +license = 'AGPL-3.0' +name = 'dc-dump' +readme = 'README.md' +repository = 'https://git.duniter.org/nodes/rust/duniter-v2s' +version = '1.0.0' + +[features] +default = ['std'] +std = [ + 'codec/std', + 'common-runtime/std', + 'frame-executive/std', + 'frame-support/std', + 'frame-system-rpc-runtime-api/std', + 'frame-system/std', + "frame-try-runtime/std", + 'log/std', + 'pallet-atomic-swap/std', + 'pallet-authority-discovery/std', + 'pallet-authority-members/std', + 'pallet-babe/std', + 'pallet-balances/std', + 'pallet-certification/std', + 'pallet-collective/std', + 'pallet-dump-storage/std', + 'pallet-duniter-test-parameters/std', + 'pallet-duniter-account/std', + 'pallet-duniter-wot/std', + 'pallet-grandpa/std', + 'pallet-identity/std', + 'pallet-membership/std', + 'pallet-oneshot-account/std', + 'pallet-provide-randomness/std', + 'pallet-im-online/std', + 'pallet-multisig/std', + "pallet-offences/std", + 'pallet-preimage/std', + 'pallet-proxy/std', + "pallet-scheduler/std", + 'pallet-session/std', + 'pallet-sudo/std', + 'pallet-universal-dividend/std', + 'pallet-upgrade-origin/std', + 'pallet-timestamp/std', + 'pallet-transaction-payment-rpc-runtime-api/std', + 'pallet-transaction-payment/std', + 'pallet-treasury/std', + 'pallet-utility/std', + "serde/std", + "serde_derive", + 'sp-api/std', + 'sp-arithmetic/std', + 'sp-authority-discovery/std', + 'sp-block-builder/std', + 'sp-consensus-babe/std', + 'sp-core/std', + 'sp-inherents/std', + 'sp-offchain/std', + 'sp-membership/std', + 'sp-runtime/std', + 'sp-session/std', + 'sp-std/std', + 'sp-transaction-pool/std', + 'sp-version/std', +] + +[dependencies] +# local +common-runtime = { path = "../../runtime/common", default-features = false } +pallet-dump-storage = { path = "../../pallets/dump-storage" } +pallet-authority-members = { path = '../../pallets/authority-members', default-features = false } +pallet-certification = { path = '../../pallets/certification', default-features = false } +pallet-duniter-test-parameters = { path = '../../pallets/duniter-test-parameters', default-features = false } +pallet-duniter-account = { path = '../../pallets/duniter-account', default-features = false } +pallet-duniter-wot = { path = '../../pallets/duniter-wot', default-features = false } +pallet-identity = { path = '../../pallets/identity', default-features = false } +pallet-membership = { path = '../../pallets/membership', default-features = false } +pallet-offences = { path = '../../pallets/offences', default-features = false } +pallet-oneshot-account = { path = '../../pallets/oneshot-account', default-features = false } +pallet-provide-randomness = { path = '../../pallets/provide-randomness', default-features = false } +pallet-universal-dividend = { path = '../../pallets/universal-dividend', default-features = false } +pallet-session-benchmarking = { path = '../../pallets/session-benchmarking', default-features = false } +pallet-upgrade-origin = { path = '../../pallets/upgrade-origin', default-features = false } +sp-membership = { path = '../../primitives/membership', default-features = false } + +# crates.io +codec = { package = "parity-scale-codec", version = "3.1.5", features = ["derive"], default-features = false } +log = { version = "0.4.17", default-features = false } +hex-literal = { version = '0.3.1', optional = true } +scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } +serde = { version = "1.0.101", default-features = false } +serde_derive = { version = "1.0.101", optional = true } + +# substrate +frame-try-runtime = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false, optional = true } +frame-executive = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +frame-support = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +frame-system = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +frame-system-rpc-runtime-api = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false} +pallet-atomic-swap = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-authority-discovery = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-authorship = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-babe = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-balances = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-collective = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-grandpa = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-im-online = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-multisig = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-preimage = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-proxy = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-scheduler = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-session = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-sudo = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-timestamp = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-transaction-payment = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-treasury = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-utility = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-api = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-arithmetic = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-authority-discovery = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-block-builder = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-consensus-babe = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-core = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-inherents = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-offchain = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-runtime = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-session = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-std = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-transaction-pool = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-version = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } + +# Other +bytes = { version = "1.1.0", default-features = false } +pretty_assertions = "1.2.1" +maplit = "1.0.2" +sp-consensus-vrf = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } +sp-finality-grandpa = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } +sp-io = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } +sp-keyring = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } +sp-storage = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } +serde_json = "1.0.99" +strum = "0.25.0" +strum_macros = "0.25.0" + +[dev-dependencies] +gdev-runtime = { path = "../../runtime/gdev" } + +### DOC ### + +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] diff --git a/client/dump/src/lib.rs b/client/dump/src/lib.rs new file mode 100644 index 000000000..71ce807a1 --- /dev/null +++ b/client/dump/src/lib.rs @@ -0,0 +1,180 @@ +use frame_support::instances::{Instance1, Instance2}; +use frame_support::metadata::RuntimeMetadataPrefixed; +use pallet_authority_members::dump::KeysOfAuthorityMembers; +use pallet_certification::dump::{KeysOfCert, KeysOfSmithCert}; +use pallet_dump_storage::external_pallets::atomicswap::KeysOfAtomicSwap; +use pallet_dump_storage::external_pallets::authorship::KeysOfAuthorship; +use pallet_dump_storage::external_pallets::babe::KeysOfBabe; +use pallet_dump_storage::external_pallets::balances::KeysOfBalances; +use pallet_dump_storage::external_pallets::collective::KeysOfTechnicalCommittee; +use pallet_dump_storage::external_pallets::grandpa::KeysOfGrandpa; +use pallet_dump_storage::external_pallets::im_online::KeysOfImOnline; +use pallet_dump_storage::external_pallets::multisig::KeysOfMultisig; +use pallet_dump_storage::external_pallets::preimage::KeysOfPreimage; +use pallet_dump_storage::external_pallets::proxy::KeysOfProxy; +use pallet_dump_storage::external_pallets::scheduler::KeysOfScheduler; +use pallet_dump_storage::external_pallets::session::KeysOfSession; +use pallet_dump_storage::external_pallets::sudo::KeysOfSudo; +use pallet_dump_storage::external_pallets::system::KeysOfSystem; +use pallet_dump_storage::external_pallets::timestamp::KeysOfTimestamp; +use pallet_dump_storage::external_pallets::transaction_payment::KeysOfTransactionPayment; +use pallet_dump_storage::external_pallets::treasury::KeysOfTreasury; +use pallet_dump_storage::pallet_checker::PalletChecker; +use pallet_duniter_account::dump::KeysOfAccount; +use pallet_duniter_test_parameters::dump::KeysOfParameters; +use pallet_identity::dump::KeysOfIdentity; +use pallet_membership::dump::{KeysOfMembership, KeysOfSmithMembership}; +use pallet_offences::dump::KeysOfOffences; +use pallet_oneshot_account::dump::KeysOfOneshotAccount; +use pallet_provide_randomness::dump::KeysOfProvideRandomness; +use pallet_universal_dividend::dump::KeysOfUniversalDividend; +use pretty_assertions::assert_eq; +use sp_api::{AsTrieBackend, StateBackend}; +use sp_io::TestExternalities; +use std::fs; +use std::marker::PhantomData; + +/// A struct to ease the testing of extrinsics' impact on the Storage, using the following techniques: +/// +/// - always check *all keys and values of the current state in the Storage* (`test_storage()`) +/// - first define a starting state (`new()` or `new_default()`) +/// +/// Useful for extrinsic testing where we start from a known Storage state, and just want to check +/// the differences after we applied some extrinsics. +pub struct StorageChecker<T> { + phantom: PhantomData<T>, +} + +impl<T> StorageChecker<T> +where + T: frame_system::Config, + <T as frame_system::Config>::AccountId: std::hash::Hash, + T: pallet_babe::Config, + T: pallet_im_online::Config, + T: pallet_certification::Config<Instance1>, + T: pallet_certification::Config<Instance2>, + T: pallet_universal_dividend::Config, + T: pallet_authorship::Config, + T: pallet_duniter_test_parameters::Config, + T: pallet_authority_members::Config, + T: pallet_session::Config, + T: pallet_balances::Config, + T: pallet_provide_randomness::Config, + T: pallet_treasury::Config, + T: pallet_identity::Config, + T: pallet_offences::Config, + T: pallet_scheduler::Config, + T: pallet_oneshot_account::Config, + T: pallet_atomic_swap::Config, + T: pallet_proxy::Config, + T: pallet_multisig::Config, + T: pallet_duniter_account::Config, + T: pallet_preimage::Config, + T: pallet_grandpa::Config, + T: pallet_collective::Config<Instance2>, + T: pallet_membership::Config<Instance1>, + T: pallet_membership::Config<Instance2>, + <T as pallet_membership::Config<Instance1>>::IdtyId: std::hash::Hash, + <T as pallet_membership::Config<Instance2>>::IdtyId: std::hash::Hash, + <T as pallet_certification::Config<Instance1>>::IdtyIndex: std::hash::Hash, + <T as pallet_certification::Config<Instance2>>::IdtyIndex: std::hash::Hash, + <T as pallet_identity::Config>::IdtyIndex: std::hash::Hash, + <T as pallet_identity::Config>::IdtyData: std::fmt::Debug, + <T as pallet_authority_members::Config>::MemberId: std::hash::Hash, + <T as pallet_session::Config>::ValidatorId: std::hash::Hash, + <T as pallet_session::Config>::ValidatorId: Ord, +{ + pub fn new_default() -> StorageChecker<T> { + StorageChecker { + phantom: PhantomData, + } + } + + /// Test our currently expected state against the real state in the Storage. + /// **Must be tested under an externalities-provided environment.** + /// `expected_keys_count` is the number of storage items that we expect to find in the Runtime. + pub fn test_full_storage( + &self, + meta: RuntimeMetadataPrefixed, + expected_keys_count: u32, + expected_file: &str, + ) { + PalletChecker::new(meta, 35) + .add_pallet::<T, KeysOfSystem>() + .add_pallet::<T, KeysOfUniversalDividend>() + .add_pallet::<T, KeysOfBalances>() + .add_pallet::<T, KeysOfTimestamp>() + .add_pallet::<T, KeysOfSudo>() + .add_pallet::<T, KeysOfIdentity>() + .add_pallet::<T, KeysOfMembership>() + .add_pallet::<T, KeysOfSmithMembership>() + .add_pallet::<T, KeysOfBabe>() + .add_pallet::<T, KeysOfProvideRandomness>() + .add_pallet::<T, KeysOfAuthorityMembers>() + .add_pallet::<T, KeysOfSession>() + .add_pallet::<T, KeysOfGrandpa>() + .add_pallet::<T, KeysOfTreasury>() + .add_pallet::<T, KeysOfTransactionPayment>() + .add_pallet::<T, KeysOfAuthorship>() + .add_pallet::<T, KeysOfProxy>() + .add_pallet::<T, KeysOfImOnline>() + .add_pallet::<T, KeysOfTechnicalCommittee>() + .add_pallet::<T, KeysOfScheduler>() + .add_pallet::<T, KeysOfPreimage>() + .add_pallet::<T, KeysOfAtomicSwap>() + .add_pallet::<T, KeysOfMultisig>() + .add_pallet::<T, KeysOfCert>() + .add_pallet::<T, KeysOfSmithCert>() + .add_pallet::<T, KeysOfOffences>() + .add_pallet::<T, KeysOfAccount>() + .add_pallet::<T, KeysOfOneshotAccount>() + .add_pallet::<T, KeysOfParameters>() + .extract(|extracted| { + // Golden testing part + // // TODO: tested len (129 keys) + // tested.sort_by_key(|c| c.to_dotted_form()); + // let tested_len = *(&tested.len()) as u32; + // // The golden comparison + + let in_file = format!("tests/{}", expected_file.clone()); + let out_file = format!("tests/{}.actual", expected_file.clone()); + let expected_str = fs::read_to_string(in_file).expect( + format!( + "file {} must exist in {}/tests/", + expected_file.clone(), + std::env::current_dir().unwrap().display() + ) + .as_str(), + ); + + // let actual = dump_actual(tested); + + if expected_str.clone() != extracted.clone() { + fs::write(out_file, extracted.clone()) + .expect("should be able to store actual storage dump"); + } + assert_eq!(expected_str, extracted); + + // Check the quantities + // assert_eq!(expected_keys_count, entries_count); TODO + // assert_eq!(expected_keys_count, tested_len); // TODO + }); + } + + /// Test static keys of Substrate + pub fn test_well_known_keys(&self, externalities: &mut TestExternalities) { + let binding = externalities.as_backend(); + let backend = binding.as_trie_backend(); + let keys_in_trie = backend.keys(&[]); + let mut well_known: Vec<String> = vec![]; + for x in &keys_in_trie { + if let Ok(v) = String::from_utf8(x.clone()) { + well_known.push(format!("{}", v)); + } + } + assert_eq!(well_known[0], ":code"); + // TODO: assert_eq!(well_known[1], ":extrinsic_index"); !! + // TODO: assert_eq!(well_known[2], ":grandpa_authorities"); !! + // assert_eq!(well_known.len(), 1); + } +} diff --git a/client/dump/tests/runtimes/mod.rs b/client/dump/tests/runtimes/mod.rs new file mode 100644 index 000000000..705d0298b --- /dev/null +++ b/client/dump/tests/runtimes/mod.rs @@ -0,0 +1 @@ +pub mod universal_dividend; diff --git a/client/dump/tests/runtimes/universal_dividend.rs b/client/dump/tests/runtimes/universal_dividend.rs new file mode 100644 index 000000000..ddf37f009 --- /dev/null +++ b/client/dump/tests/runtimes/universal_dividend.rs @@ -0,0 +1,159 @@ +// Copyright 2021 Axiom-Team +// +// This file is part of Duniter-v2S. +// +// Duniter-v2S is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, version 3 of the License. +// +// Duniter-v2S is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>. + +use frame_support::storage::PrefixIterator; +use frame_support::{parameter_types, traits::Everything}; +use frame_system as system; +use pallet_universal_dividend; +use pallet_universal_dividend::FirstEligibleUd; +use sp_arithmetic::Perbill; +use sp_core::H256; +use sp_runtime::{ + testing::Header, + traits::{BlakeTwo256, IdentityLookup}, +}; + +type Balance = u64; +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>; +type Block = frame_system::mocking::MockBlock<Test>; + +// Configure a mock runtime to test the pallet. +frame_support::construct_runtime!( + pub enum Test where + Block = Block, + NodeBlock = Block, + UncheckedExtrinsic = UncheckedExtrinsic, + { + System: frame_system::{Pallet, Call, Config, Storage, Event<T>}, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, + Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>}, + UniversalDividend: pallet_universal_dividend::{Pallet, Storage, Config<T>, Event<T>}, + } +); + +parameter_types! { + pub const BlockHashCount: u64 = 250; + pub const SS58Prefix: u8 = 42; +} + +impl system::Config for Test { + type BaseCallFilter = Everything; + type BlockWeights = (); + type BlockLength = (); + type DbWeight = (); + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = u64; + type Lookup = IdentityLookup<Self::AccountId>; + type Header = Header; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData<Balance>; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type SS58Prefix = SS58Prefix; + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +parameter_types! { + pub const MinimumPeriod: u64 = 3_000; +} + +impl pallet_timestamp::Config for Test { + type Moment = u64; + type OnTimestampSet = UniversalDividend; + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = 10; + pub const MaxLocks: u32 = 50; +} + +impl pallet_balances::Config for Test { + type Balance = Balance; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = pallet_balances::weights::SubstrateWeight<Test>; + type MaxLocks = MaxLocks; + type MaxReserves = (); + type ReserveIdentifier = [u8; 8]; + type RuntimeEvent = RuntimeEvent; +} + +parameter_types! { + pub const MembersCount: u64 = 3; + pub const SquareMoneyGrowthRate: Perbill = Perbill::from_percent(10); + pub const UdCreationPeriod: u64 = 12_000; + pub const UdReevalPeriod: u64 = 48_000; +} + +pub struct TestMembersStorage; +impl frame_support::traits::StoredMap<u64, FirstEligibleUd> for TestMembersStorage { + fn get(_: &u64) -> FirstEligibleUd { + FirstEligibleUd::default() + } + fn try_mutate_exists<R, E: From<sp_runtime::DispatchError>>( + _: &u64, + _: impl FnOnce(&mut Option<FirstEligibleUd>) -> Result<R, E>, + ) -> Result<R, E> { + panic!("Should not be here") + } +} +pub struct TestMembersStorageIter(frame_support::storage::PrefixIterator<(u64, FirstEligibleUd)>); +impl From<Option<Vec<u8>>> for TestMembersStorageIter { + fn from(maybe_key: Option<Vec<u8>>) -> Self { + let mut iter = PrefixIterator::<(u64, FirstEligibleUd)>::new(vec![], vec![], |_, _| { + Ok((0, FirstEligibleUd::from(0))) + }); + if let Some(key) = maybe_key { + iter.set_last_raw_key(key); + } + Self(iter) + } +} +impl Iterator for TestMembersStorageIter { + type Item = (u64, FirstEligibleUd); + + fn next(&mut self) -> Option<Self::Item> { + self.0.next() + } +} + +impl pallet_universal_dividend::Config for Test { + type MomentIntoBalance = sp_runtime::traits::ConvertInto; + type Currency = pallet_balances::Pallet<Test>; + type MaxPastReeval = frame_support::traits::ConstU32<160>; + type MembersCount = MembersCount; + type MembersStorage = TestMembersStorage; + type MembersStorageIter = TestMembersStorageIter; + type RuntimeEvent = RuntimeEvent; + type SquareMoneyGrowthRate = SquareMoneyGrowthRate; + type UdCreationPeriod = UdCreationPeriod; + type UdReevalPeriod = UdReevalPeriod; + type UnitsPerUd = frame_support::traits::ConstU64<1_000>; + type WeightInfo = (); +} diff --git a/client/dump/tests/simple_test.expected.txt b/client/dump/tests/simple_test.expected.txt new file mode 100644 index 000000000..e2e7455e9 --- /dev/null +++ b/client/dump/tests/simple_test.expected.txt @@ -0,0 +1,130 @@ + +Account.PendingNewAccounts = [] +Account.PendingRandomIdAssignments = [] +AtomicSwap.PendingSwaps = [] +AuthorityMembers.AccountIdOf = [] +AuthorityMembers.AuthoritiesCounter = 0 +AuthorityMembers.BlackList = [] +AuthorityMembers.IncomingAuthorities = [] +AuthorityMembers.Members = [] +AuthorityMembers.MembersExpireOn = [] +AuthorityMembers.MustRotateKeysBefore = [] +AuthorityMembers.OnlineAuthorities = [] +AuthorityMembers.OutgoingAuthorities = [] +Authorship.Author = None +Authorship.DidSetUncles = None +Authorship.Uncles = None +Babe.AuthorVrfRandomness = None +Babe.Authorities = WeakBoundedVec([], 32) +Babe.CurrentSlot = Slot(0) +Babe.EpochConfig = None +Babe.EpochIndex = 0 +Babe.EpochStart = None +Babe.GenesisSlot = Slot(0) +Babe.Initialized = None +Babe.Lateness = None +Babe.NextAuthorities = None +Babe.NextEpochConfig = None +Babe.NextRandomness = None +Babe.PendingEpochConfigChange = None +Babe.Randomness = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +Babe.SegmentIndex = None +Babe.UnderConstruction = [] +Balances.Account = [] +Balances.Locks = [] +Balances.Reserves = [] +Balances.StorageVersion = None +Balances.TotalIssuance = 0 +Cert.CertsByReceiver = [] +Cert.StorageCertsRemovableOn = [] +Cert.StorageIdtyCertMeta = [] +Grandpa.CurrentSetId = None +Grandpa.NextForced = None +Grandpa.PendingChange = None +Grandpa.SetIdSession = [] +Grandpa.Stalled = None +Grandpa.State = None +Identity.CounterForIdentities = None +Identity.Identities = [] +Identity.IdentitiesNames = [] +Identity.IdentitiesRemovableOn = [] +Identity.IdentityIndexOf = [] +Identity.NextIdtyIndex = None +ImOnline.AuthoredBlocks = [] +ImOnline.HeartbeatAfter = None +ImOnline.Keys = None +ImOnline.ReceivedHeartbeats = [] +Membership.CounterForMembership = None +Membership.Membership = [] +Membership.MembershipsExpireOn = [] +Membership.PendingMembership = [] +Membership.PendingMembershipsExpireOn = [] +Multisig.Multisigs = [] +Offences.ConcurrentReportsIndex = [] +Offences.Reports = [] +OneshotAccount.OneshotAccounts = [] +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 0, cert_period: 0, cert_max_by_issuer: 0, cert_min_received_cert_to_issue_cert: 0, cert_validity_period: 0, idty_confirm_period: 0, idty_creation_period: 0, membership_period: 0, pending_membership_period: 0, ud_creation_period: 0, ud_reeval_period: 0, smith_cert_period: 0, smith_cert_max_by_issuer: 0, smith_cert_min_received_cert_to_issue_cert: 0, smith_cert_validity_period: 0, smith_membership_period: 0, smith_pending_membership_period: 0, smith_wot_first_cert_issuable_on: 0, smith_wot_min_cert_for_membership: 0, wot_first_cert_issuable_on: 0, wot_min_cert_for_create_idty_right: 0, wot_min_cert_for_membership: 0 } +Preimage.PreimageFor = [] +Preimage.StatusFor = [] +ProvideRandomness.CounterForRequestsIds = None +ProvideRandomness.NexEpochHookIn = None +ProvideRandomness.RequestIdProvider = None +ProvideRandomness.RequestsIds = [] +ProvideRandomness.RequestsReadyAtEpoch = [] +ProvideRandomness.RequestsReadyAtNextBlock = [] +Proxy.Announcements = [] +Proxy.Proxies = [] +Scheduler.Agenda = [] +Scheduler.IncompleteSince = None +Scheduler.Lookup = [] +Session.CurrentIndex = 0 +Session.DisabledValidators = [] +Session.KeyOwner = [] +Session.NextKeys = [] +Session.QueuedChanged = false +Session.QueuedKeys = [] +Session.Validators = [] +SmithCert.CertsByReceiver = [] +SmithCert.StorageCertsRemovableOn = [] +SmithCert.StorageIdtyCertMeta = [] +SmithMembership.CounterForMembership = None +SmithMembership.Membership = [] +SmithMembership.MembershipsExpireOn = [] +SmithMembership.PendingMembership = [] +SmithMembership.PendingMembershipsExpireOn = [] +Sudo.Key = None +System.Account = [] +System.AllExtrinsicsLen = None +System.BlockHash = [] +System.BlockWeight = None +System.Digest = None +System.EventCount = None +System.EventTopics = [] +System.Events = None +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [] +System.LastRuntimeUpgrade = None +System.Number = None +System.ParentHash = None +System.UpgradedToTripleRefCount = None +System.UpgradedToU32RefCount = None +TechnicalCommittee.Members = [] +TechnicalCommittee.Prime = None +TechnicalCommittee.ProposalCount = 0 +TechnicalCommittee.ProposalOf = [] +TechnicalCommittee.Proposals = BoundedVec([], 20) +TechnicalCommittee.Voting = [] +Timestamp.DidUpdate = None +Timestamp.Now = 0 +TransactionPayment.NextFeeMultiplier = FixedU128(1.000000000000000000) +TransactionPayment.StorageVersion = None +Treasury.Approvals = BoundedVec([], 100) +Treasury.ProposalCount = 0 +Treasury.Proposals = [] +UniversalDividend.CurrentUd = 0 +UniversalDividend.CurrentUdIndex = 1 +UniversalDividend.MonetaryMass = 0 +UniversalDividend.NextReeval = None +UniversalDividend.NextUd = None +UniversalDividend.PastReevals = BoundedVec([], 160) diff --git a/client/dump/tests/tests.rs b/client/dump/tests/tests.rs new file mode 100644 index 000000000..c64842e08 --- /dev/null +++ b/client/dump/tests/tests.rs @@ -0,0 +1,73 @@ +use dc_dump::StorageChecker; +use pallet_dump_storage::external_pallets::im_online::KeysOfImOnline; +use pallet_dump_storage::pallet_checker::PalletChecker; +use pallet_duniter_test_parameters::dump::KeysOfParameters; +use pallet_universal_dividend::dump::KeysOfUniversalDividend; +use sp_io::TestExternalities; + +mod runtimes; + +#[test] +fn full_storage() { + let mut externalities = TestExternalities::default(); + let checker = StorageChecker::<gdev_runtime::Runtime>::new_default(); + externalities.execute_with(|| { + checker.test_full_storage( + gdev_runtime::Runtime::metadata(), + 35, + "simple_test.expected.txt", + ); + }); + // Does not need externalities + StorageChecker::<gdev_runtime::Runtime>::new_default().test_well_known_keys(&mut externalities); +} + +#[test] +fn particular_pallet() { + let mut externalities = TestExternalities::default(); + let expected_golden = " +UniversalDividend.CurrentUd = 0 +UniversalDividend.CurrentUdIndex = 1 +UniversalDividend.MonetaryMass = 0 +UniversalDividend.NextReeval = None +UniversalDividend.NextUd = None +UniversalDividend.PastReevals = BoundedVec([], 160) +"; + // We can use a big Runtime (runtime golden testing) + externalities.execute_with(|| { + PalletChecker::test_pallet::<gdev_runtime::Runtime, KeysOfUniversalDividend>( + gdev_runtime::Runtime::metadata(), + 35, + expected_golden, + ); + }); + // Or just a specialized one (pallet golden testing) + externalities.execute_with(|| { + PalletChecker::test_pallet::<runtimes::universal_dividend::Test, KeysOfUniversalDividend>( + runtimes::universal_dividend::Test::metadata(), + 4, + expected_golden, + ) + }); + externalities.execute_with(|| { + PalletChecker::test_pallet::<gdev_runtime::Runtime, KeysOfParameters>( + gdev_runtime::Runtime::metadata(), + 35, + " +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 0, cert_period: 0, cert_max_by_issuer: 0, cert_min_received_cert_to_issue_cert: 0, cert_validity_period: 0, idty_confirm_period: 0, idty_creation_period: 0, membership_period: 0, pending_membership_period: 0, ud_creation_period: 0, ud_reeval_period: 0, smith_cert_period: 0, smith_cert_max_by_issuer: 0, smith_cert_min_received_cert_to_issue_cert: 0, smith_cert_validity_period: 0, smith_membership_period: 0, smith_pending_membership_period: 0, smith_wot_first_cert_issuable_on: 0, smith_wot_min_cert_for_membership: 0, wot_first_cert_issuable_on: 0, wot_min_cert_for_create_idty_right: 0, wot_min_cert_for_membership: 0 } +", + ) + }); + externalities.execute_with(|| { + PalletChecker::test_pallet::<gdev_runtime::Runtime, KeysOfImOnline>( + gdev_runtime::Runtime::metadata(), + 35, + " +ImOnline.AuthoredBlocks = [] +ImOnline.HeartbeatAfter = None +ImOnline.Keys = None +ImOnline.ReceivedHeartbeats = [] +", + ) + }); +} diff --git a/node/src/cli.rs b/node/src/cli.rs index 3cfdc73c3..e93b20bbf 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -43,6 +43,9 @@ pub enum Subcommand { /// Export the state of a given block into a chain spec. ExportState(sc_cli::ExportStateCmd), + /// Export the state of a given block into a human readable file. + ExportStorage(crate::command::export_storage::ExportStorageCmd), + /// Key management cli utilities #[clap(subcommand)] Key(crate::command::key::KeySubcommand), diff --git a/node/src/command.rs b/node/src/command.rs index d151a7fb6..820b6b528 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -15,6 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +pub mod export_storage; pub mod key; pub mod utils; @@ -265,6 +266,14 @@ pub fn run() -> sc_cli::Result<()> { Ok((cmd.run(client, config.chain_spec), task_manager)) }) } + Some(Subcommand::ExportStorage(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|mut config| { + let (client, backend, _, task_manager) = + service::new_chain_ops(&mut config, cli.sealing.is_manual_consensus())?; + Ok((cmd.run(client, backend, config.chain_spec), task_manager)) + }) + } Some(Subcommand::Key(cmd)) => cmd.run(&cli), Some(Subcommand::ImportBlocks(cmd)) => { let runner = cli.create_runner(cmd)?; diff --git a/node/src/command/export_storage.rs b/node/src/command/export_storage.rs new file mode 100644 index 000000000..198857e5b --- /dev/null +++ b/node/src/command/export_storage.rs @@ -0,0 +1,122 @@ +// This file is part of Substrate. + +// Copyright (C) 2020-2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <https://www.gnu.org/licenses/>. + +use crate::service::{IdentifyRuntimeType, RuntimeType}; +use clap::Parser; +use common_runtime::{Block, BlockId}; +use log::info; +use sc_cli::{ + BlockNumberOrHash, CliConfiguration, DatabaseParams, Error, PruningParams, SharedParams, +}; +use sc_client_api::{backend, Backend, HeaderBackend, StorageProvider, UsageProvider}; +use sc_service::TFullBackend; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; +use sp_state_machine::{Ext, OverlayedChanges, StorageTransactionCache}; +use std::{fmt::Debug, io::Write, str::FromStr, sync::Arc}; + +/// The `export-storage` command used to export the state of a given block into +/// a human-readable file. +#[derive(Debug, Clone, Parser)] +pub struct ExportStorageCmd { + /// Block hash or number. + #[arg(value_name = "HASH or NUMBER")] + pub input: Option<BlockNumberOrHash>, + + #[allow(missing_docs)] + #[clap(flatten)] + pub shared_params: SharedParams, + + #[allow(missing_docs)] + #[clap(flatten)] + pub pruning_params: PruningParams, + + #[allow(missing_docs)] + #[clap(flatten)] + pub database_params: DatabaseParams, +} + +impl ExportStorageCmd { + /// Run the `export-state` command + pub async fn run<B, BA, C>( + &self, + client: Arc<C>, + backend: Arc<sc_service::TFullBackend<B>>, + mut input_spec: Box<dyn sc_service::ChainSpec>, + ) -> Result<(), Error> + where + B: BlockT, + C: UsageProvider<B> + StorageProvider<B, BA> + HeaderBackend<B>, + BA: sc_client_api::backend::Backend<B>, + B::Hash: FromStr, + <B::Hash as FromStr>::Err: Debug, + <<B::Header as HeaderT>::Number as FromStr>::Err: Debug, + { + info!("Exporting storage state..."); + let block_id = self.input.as_ref().map(|b| b.parse()).transpose()?; + let hash = match block_id { + Some(id) => client.expect_block_hash_from_id(&id)?, + None => client.usage_info().chain.best_hash, + }; + + match input_spec.runtime_type() { + RuntimeType::GDev => { + let mut overlay = OverlayedChanges::default(); + // let mut cache = StorageTransactionCache::<B, BA::State>::default(); + // // let mut cache = StorageTransactionCache::<Block, <TFullBackend<Block> as backend::Backend<B>>::State>::default(); + // let ext = sp_state_machine::Ext::new(&mut overlay, &mut cache, &backend, None); + + // let mut overlay = OverlayedChanges::default(); + // let cache = StorageTransactionCache::default(); + + // let id: &BlockId = &block_id.unwrap(); + // let at_hash = backend.blockchain().expect_block_hash_from_id(id)?; + // let state = backend.state_at(&at_hash)?; + let state = backend.state_at(&hash)?; + let mut cache = StorageTransactionCache::default(); + let mut ext = Ext::new(&mut overlay, &mut cache, &state, None); + + sp_externalities::set_and_run_with_externalities(&mut ext, || { + let checker = dc_dump::StorageChecker::<gdev_runtime::Runtime>::new_default() + .test_full_storage( + gdev_runtime::Runtime::metadata(), + 35, + "storage.out.txt", + ); + }); + } + RuntimeType::G1 | RuntimeType::GTest => { + panic!("This runtime is not handled yet"); + } + } + Ok(()) + } +} + +impl CliConfiguration for ExportStorageCmd { + fn shared_params(&self) -> &SharedParams { + &self.shared_params + } + + fn pruning_params(&self) -> Option<&PruningParams> { + Some(&self.pruning_params) + } + + fn database_params(&self) -> Option<&DatabaseParams> { + Some(&self.database_params) + } +} diff --git a/pallets/authority-members/Cargo.toml b/pallets/authority-members/Cargo.toml index 81cfc5435..551413185 100644 --- a/pallets/authority-members/Cargo.toml +++ b/pallets/authority-members/Cargo.toml @@ -35,6 +35,7 @@ try-runtime = ['frame-support/try-runtime'] # local pallet-offences = { path = "../offences", default-features = false } sp-membership = { path = "../../primitives/membership", default-features = false } +pallet-dump-storage = { path = "../dump-storage", default-features = false } # crates.io log = { version = "0.4.14", default-features = false } diff --git a/pallets/authority-members/src/dump.rs b/pallets/authority-members/src/dump.rs new file mode 100644 index 000000000..3d0f77ced --- /dev/null +++ b/pallets/authority-members/src/dump.rs @@ -0,0 +1,51 @@ +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::checker::StorageRead::Value; +use pallet_dump_storage::external_pallets::to_kv; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfAuthorityMembers { + AuthoritiesCounter, + OnlineAuthorities, + OutgoingAuthorities, + IncomingAuthorities, + BlackList, + AccountIdOf, + Members, + MembersExpireOn, + MustRotateKeysBefore, +} + +impl<T: crate::Config> PalletStorageMapper<T> for KeysOfAuthorityMembers { + fn to_value(&self) -> StorageRead { + match self { + KeysOfAuthorityMembers::AuthoritiesCounter => { + Value(Box::new(crate::AuthoritiesCounter::<T>::get())) + } + KeysOfAuthorityMembers::OnlineAuthorities => { + Value(Box::new(crate::OnlineAuthorities::<T>::get())) + } + KeysOfAuthorityMembers::OutgoingAuthorities => { + Value(Box::new(crate::OutgoingAuthorities::<T>::get())) + } + KeysOfAuthorityMembers::IncomingAuthorities => { + Value(Box::new(crate::IncomingAuthorities::<T>::get())) + } + KeysOfAuthorityMembers::BlackList => Value(Box::new(crate::BlackList::<T>::get())), + KeysOfAuthorityMembers::AccountIdOf => to_kv(crate::AccountIdOf::<T>::iter().collect()), + KeysOfAuthorityMembers::Members => to_kv(crate::Members::<T>::iter().collect()), + KeysOfAuthorityMembers::MembersExpireOn => { + to_kv(crate::MembersExpireOn::<T>::iter().collect()) + } + KeysOfAuthorityMembers::MustRotateKeysBefore => { + to_kv(crate::MustRotateKeysBefore::<T>::iter().collect()) + } + } + } +} diff --git a/pallets/authority-members/src/lib.rs b/pallets/authority-members/src/lib.rs index d4f299c36..39efa4b52 100644 --- a/pallets/authority-members/src/lib.rs +++ b/pallets/authority-members/src/lib.rs @@ -30,7 +30,9 @@ mod tests; #[cfg(feature = "runtime-benchmarks")] mod benchmarking; +pub mod dump; pub mod impls; + pub use impls::*; pub use pallet::*; diff --git a/pallets/authority-members/src/types.rs b/pallets/authority-members/src/types.rs index f77996d6d..53c04f9ca 100644 --- a/pallets/authority-members/src/types.rs +++ b/pallets/authority-members/src/types.rs @@ -22,8 +22,8 @@ use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; use sp_staking::SessionIndex; -#[cfg_attr(feature = "std", derive(Debug, Deserialize, Serialize))] -#[derive(Encode, Decode, Clone, PartialEq, Eq, TypeInfo)] +#[cfg_attr(feature = "std", derive(Deserialize, Serialize))] +#[derive(Encode, Decode, Clone, PartialEq, Eq, TypeInfo, sp_std::fmt::Debug)] pub struct MemberData<AccountId> { /// session at which the membership expires pub expire_on_session: SessionIndex, diff --git a/pallets/certification/Cargo.toml b/pallets/certification/Cargo.toml index b1fb85001..7668b75a8 100644 --- a/pallets/certification/Cargo.toml +++ b/pallets/certification/Cargo.toml @@ -17,6 +17,7 @@ std = [ 'frame-support/std', 'frame-system/std', 'frame-benchmarking/std', + 'pallet-dump-storage/std', 'serde', 'sp-core/std', 'sp-runtime/std', @@ -25,6 +26,7 @@ std = [ try-runtime = ['frame-support/try-runtime'] [dependencies] +pallet-dump-storage = { path = "../dump-storage", default-features = false } # substrate scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } diff --git a/pallets/certification/src/dump.rs b/pallets/certification/src/dump.rs new file mode 100644 index 000000000..f58b3916f --- /dev/null +++ b/pallets/certification/src/dump.rs @@ -0,0 +1,69 @@ +use crate::IdtyCertMeta; +use frame_support::instances::{Instance1, Instance2}; +use frame_support::Twox64Concat; +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::external_pallets::to_kv; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfCert { + StorageIdtyCertMeta, + CertsByReceiver, + StorageCertsRemovableOn, +} + +impl<T> PalletStorageMapper<T> for KeysOfCert +where + T: crate::Config<Instance1>, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfCert::StorageIdtyCertMeta => <KeysOfCert as PalletStorageMapper<T>>::read_map::< + <T as crate::Config<Instance1>>::IdtyIndex, + IdtyCertMeta<<T as frame_system::Config>::BlockNumber>, + Twox64Concat, + >(self), + KeysOfCert::CertsByReceiver => { + to_kv(crate::CertsByReceiver::<T, Instance1>::iter().collect()) + } + KeysOfCert::StorageCertsRemovableOn => { + to_kv(crate::StorageCertsRemovableOn::<T, Instance1>::iter().collect()) + } + } + } +} + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfSmithCert { + StorageIdtyCertMeta, + CertsByReceiver, + StorageCertsRemovableOn, +} + +impl<T> PalletStorageMapper<T> for KeysOfSmithCert +where + T: crate::Config<Instance2>, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfSmithCert::StorageIdtyCertMeta => { + <KeysOfSmithCert as PalletStorageMapper<T>>::read_map::< + <T as crate::Config<Instance2>>::IdtyIndex, + IdtyCertMeta<<T as frame_system::Config>::BlockNumber>, + Twox64Concat, + >(self) + } + KeysOfSmithCert::CertsByReceiver => { + to_kv(crate::CertsByReceiver::<T, Instance2>::iter().collect()) + } + KeysOfSmithCert::StorageCertsRemovableOn => { + to_kv(crate::StorageCertsRemovableOn::<T, Instance2>::iter().collect()) + } + } + } +} diff --git a/pallets/certification/src/lib.rs b/pallets/certification/src/lib.rs index f1bcb550a..45c0f0941 100644 --- a/pallets/certification/src/lib.rs +++ b/pallets/certification/src/lib.rs @@ -26,6 +26,7 @@ pub mod weights; #[cfg(test)] mod mock; +pub mod dump; #[cfg(test)] mod tests; diff --git a/pallets/dump-storage/Cargo.toml b/pallets/dump-storage/Cargo.toml new file mode 100644 index 000000000..fe0e4638c --- /dev/null +++ b/pallets/dump-storage/Cargo.toml @@ -0,0 +1,100 @@ +[package] +authors = ['cgeek <cem.moreau@gmail.com>'] +description = 'Duniter client dumper of Storage' +edition = '2021' +homepage = 'https://duniter.org' +license = 'AGPL-3.0' +name = 'pallet-dump-storage' +readme = 'README.md' +repository = 'https://git.duniter.org/nodes/rust/duniter-v2s' +version = '1.0.0' + +[features] +default = ['std'] +std = [ + 'codec/std', + 'frame-support/std', + 'frame-system/std', + 'pallet-authorship/std', + 'pallet-balances/std', + 'pallet-grandpa/std', + 'pallet-preimage/std', + 'pallet-timestamp/std', + 'pallet-babe/std', + 'pallet-session/std', + 'pallet-treasury/std', + 'pallet-transaction-payment/std', + 'pallet-proxy/std', + 'pallet-im-online/std', + 'pallet-collective/std', + 'pallet-scheduler/std', + 'pallet-atomic-swap/std', + 'pallet-multisig/std', + 'sp-arithmetic/std', + 'sp-core/std', + 'sp-io/std', + 'sp-std/std', + # dev-dependencies + 'pallet-universal-dividend/std', + 'pallet-identity/std', + 'pallet-membership/std', + 'sp-runtime/std', + 'sp-consensus-vrf/std', + 'sp-consensus-babe/std', +] + +[dependencies] +# crates.io +codec = { package = "parity-scale-codec", version = "3.1.5", features = ["derive"], default-features = false } +scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } + +# substrate +frame-support = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +frame-system = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-authorship = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-balances = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-grandpa = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-preimage = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-timestamp = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-babe = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-session = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-treasury = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-transaction-payment = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-proxy = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-im-online = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-collective = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-scheduler = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-atomic-swap = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +pallet-multisig = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-arithmetic = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-core = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-io = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-std = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-runtime = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-consensus-vrf = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } +sp-consensus-babe = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } + +# Other +pretty_assertions = "1.2.1" +maplit = "1.0.2" +dump-macros = { path = "./dump_macros"} + +[dev-dependencies] +gdev-runtime = { path = "../../runtime/gdev" } +pallet-universal-dividend = { path = '../universal-dividend', default-features = false } +pallet-identity = { path = '../identity', default-features = false } +pallet-membership = { path = '../membership', default-features = false } +pallet-provide-randomness = { path = '../provide-randomness', default-features = false } +pallet-authority-members = { path = '../authority-members', default-features = false } +pallet-certification = { path = '../certification', default-features = false } +pallet-duniter-account = { path = '../duniter-account', default-features = false } +pallet-duniter-test-parameters = { path = '../duniter-test-parameters', default-features = false } +pallet-offences = { path = '../offences', default-features = false } +pallet-oneshot-account = { path = '../oneshot-account', default-features = false } +strum = "0.25.0" +strum_macros = "0.25.0" + +### DOC ### + +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] diff --git a/pallets/dump-storage/dump_macros/Cargo.toml b/pallets/dump-storage/dump_macros/Cargo.toml new file mode 100644 index 000000000..9adc956da --- /dev/null +++ b/pallets/dump-storage/dump_macros/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "dump-macros" +description = "Macros written in no_std environment for dump-storage crate." +version = "0.1.0" +edition = "2021" + +[lib] +proc-macro = true + +[dependencies] +syn = "1.0" +quote = "1.0" diff --git a/pallets/dump-storage/dump_macros/src/enum_from_str.rs b/pallets/dump-storage/dump_macros/src/enum_from_str.rs new file mode 100644 index 000000000..342f6b888 --- /dev/null +++ b/pallets/dump-storage/dump_macros/src/enum_from_str.rs @@ -0,0 +1,40 @@ +extern crate alloc; + +use alloc::format; +use proc_macro::TokenStream; +use quote::quote; +use syn; +use syn::Data; +use syn::__private::TokenStream2; + +pub fn impl_enum_from_str(ast: &syn::DeriveInput) -> TokenStream { + let name = &ast.ident; + let data = &ast.data; + + let mut variant_checker_functions = TokenStream2::new(); + + match data { + Data::Enum(data_enum) => { + for variant in &data_enum.variants { + let variant_name = &variant.ident; + let variant_str = format!("{}", variant_name); + variant_checker_functions.extend(quote! { + #variant_str => Ok(#name::#variant_name), + }); + } + } + _ => {} + } + let gen = quote! { + impl FromStr for #name { + type Err = NoStdString; + fn from_str(s: &str) -> Result<Self, Self::Err> { + match s { + #variant_checker_functions + _ => Err(NoStdString::from_vec("Unknown key".into())), + } + } + } + }; + gen.into() +} diff --git a/pallets/dump-storage/dump_macros/src/enum_pallet_storage.rs b/pallets/dump-storage/dump_macros/src/enum_pallet_storage.rs new file mode 100644 index 000000000..edc5dfd14 --- /dev/null +++ b/pallets/dump-storage/dump_macros/src/enum_pallet_storage.rs @@ -0,0 +1,24 @@ +extern crate alloc; + +use alloc::string::ToString; +use proc_macro::TokenStream; +use quote::quote; +use syn; +use syn::Ident; +use syn::__private::Span; + +pub fn impl_enum_pallet_storage(ast: &syn::DeriveInput) -> TokenStream { + let name = &ast.ident; + let pallet_name = Ident::new( + name.to_string().replace("KeysOf", "").as_str(), + Span::call_site(), + ); + let gen = quote! { + impl PalletStorage for #name { + fn pallet() -> DumpPallet { + DumpPallet::#pallet_name + } + } + }; + gen.into() +} diff --git a/pallets/dump-storage/dump_macros/src/lib.rs b/pallets/dump-storage/dump_macros/src/lib.rs new file mode 100644 index 000000000..9e70f0217 --- /dev/null +++ b/pallets/dump-storage/dump_macros/src/lib.rs @@ -0,0 +1,23 @@ +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate alloc; + +mod enum_from_str; +mod enum_pallet_storage; + +use enum_from_str::impl_enum_from_str; +use enum_pallet_storage::impl_enum_pallet_storage; +use proc_macro::TokenStream; +use syn; + +#[proc_macro_derive(EnumFromStr)] +pub fn enum_from_str_derive(input: TokenStream) -> TokenStream { + let ast = syn::parse(input).unwrap(); + impl_enum_from_str(&ast) +} + +#[proc_macro_derive(EnumPalletStorage)] +pub fn enum_pallet_storage_derive(input: TokenStream) -> TokenStream { + let ast = syn::parse(input).unwrap(); + impl_enum_pallet_storage(&ast) +} diff --git a/pallets/dump-storage/dump_macros/tests/enum_from_str_test.rs b/pallets/dump-storage/dump_macros/tests/enum_from_str_test.rs new file mode 100644 index 000000000..d81f323d9 --- /dev/null +++ b/pallets/dump-storage/dump_macros/tests/enum_from_str_test.rs @@ -0,0 +1,13 @@ +// // Expand this file with `cargo expand --test enum_from_str_test` +// +// use dump_macros::EnumFromStr; +// +// // To avoid compilation errors with `cargo expand` +// use std::str::FromStr; +// struct NoStdString; +// +// #[derive(EnumFromStr)] +// pub enum KeysOfTimestamp { +// DidUpdate, +// Now, +// } diff --git a/pallets/dump-storage/dump_macros/tests/enum_pallet_storage_test.rs b/pallets/dump-storage/dump_macros/tests/enum_pallet_storage_test.rs new file mode 100644 index 000000000..f52392865 --- /dev/null +++ b/pallets/dump-storage/dump_macros/tests/enum_pallet_storage_test.rs @@ -0,0 +1,13 @@ +// // Expand this file with `cargo expand --test enum_from_str_test` +// +// use dump_macros::EnumPalletStorage; +// +// // To avoid compilation errors with `cargo expand` +// trait PalletStorage {} +// trait DumpPallet {} +// +// #[derive(EnumPalletStorage)] +// pub enum KeysOfTimestamp { +// DidUpdate, +// Now, +// } diff --git a/pallets/dump-storage/src/assert.rs b/pallets/dump-storage/src/assert.rs new file mode 100644 index 000000000..e5ec364ca --- /dev/null +++ b/pallets/dump-storage/src/assert.rs @@ -0,0 +1,45 @@ +use crate::checker::Checker; +use crate::checker::StorageRead::{Map, Value}; +use crate::no_std::NoStdString; +use sp_std::vec::Vec; +// use pretty_assertions::assert_eq; + +const MAX_VEC_ENTRIES: u32 = 20; + +pub fn dump_actual(tested: Vec<Checker>) -> Vec<u8> { + let mut actual = NoStdString::empty(); + actual.push_str("\n"); + for t in tested.into_iter() { + let dotted_name = t.to_dotted_form(); + let value = t.into_value(); + if let Map(kvs) = value { + let mut i: u32 = 0; + actual.push_args(format_args!("{} = [", NoStdString::from_vec(dotted_name))); + for kv in &kvs { + i = i.saturating_add(1); + if i < MAX_VEC_ENTRIES { + actual.push_args(format_args!("\n\t{} = {:?}", kv.0, kv.1)); + } + } + if i > MAX_VEC_ENTRIES { + actual.push_args(format_args!("\n\t... +{} more", i)); + } + if !kvs.is_empty() { + actual.push_str("\n"); + } + actual.push_str("]\n"); + } else if let Value(v) = value { + actual.push_args(format_args!( + "{} = {:?}\n", + NoStdString::from_vec(dotted_name), + v + )); + } else { + actual.push_args(format_args!( + "{} = <unreadable>\n", + NoStdString::from_vec(dotted_name) + )); + } + } + actual.into_inner() +} diff --git a/pallets/dump-storage/src/checker.rs b/pallets/dump-storage/src/checker.rs new file mode 100644 index 000000000..802ec4bdc --- /dev/null +++ b/pallets/dump-storage/src/checker.rs @@ -0,0 +1,56 @@ +use crate::no_std::NoStdString; +use sp_std::boxed::Box; +use sp_std::collections::btree_map::BTreeMap; +use sp_std::fmt::Debug; +use sp_std::vec::Vec; + +pub struct Checker { + pallet_name: Vec<u8>, + storage_name: Vec<u8>, + value: StorageRead, +} + +pub enum StorageRead { + Value(Box<dyn Debug>), + Map(BTreeMap<Box<NoStdString>, Box<dyn Debug>>), + Unhandled, + Error(Vec<u8>), +} + +impl Checker { + pub fn new(pallet_name: &str, storage_name: &str, value: StorageRead) -> Checker { + Checker { + pallet_name: pallet_name.into(), + storage_name: storage_name.into(), + value, + } + } +} + +/// What is expected to make a storage check +impl Checker { + pub fn pallet_name(&self) -> Vec<u8> { + self.pallet_name.clone() + } + + pub fn storage_name(&self) -> Vec<u8> { + self.storage_name.clone() + } + + pub fn to_dotted_form(&self) -> Vec<u8> { + let pallet = NoStdString::from_vec(self.pallet_name.clone()); + let storage = NoStdString::from_vec(self.storage_name.clone()); + NoStdString::new(format_args!("{}.{}", pallet, storage)).into_inner() + } + + pub fn into_value(self) -> StorageRead { + self.value + } + + pub fn get_prefix(&self) -> [u8; 32] { + frame_support::storage::storage_prefix( + self.pallet_name().as_slice(), + self.storage_name().as_slice(), + ) + } +} diff --git a/pallets/dump-storage/src/external_pallets/atomicswap.rs b/pallets/dump-storage/src/external_pallets/atomicswap.rs new file mode 100644 index 000000000..a09b46a77 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/atomicswap.rs @@ -0,0 +1,26 @@ +use crate::checker::StorageRead; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_std::fmt::Debug; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfAtomicSwap { + PendingSwaps, +} + +impl<T: pallet_atomic_swap::Config> PalletStorageMapper<T> for KeysOfAtomicSwap { + fn to_value(&self) -> StorageRead { + match self { + KeysOfAtomicSwap::PendingSwaps => to_kv( + pallet_atomic_swap::PendingSwaps::<T>::iter() + .map(|kv| <KeysOfAtomicSwap as PalletStorageMapper<T>>::to_simple_map(self, kv)) + .collect(), + ), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/authorship.rs b/pallets/dump-storage/src/external_pallets/authorship.rs new file mode 100644 index 000000000..b72f9b463 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/authorship.rs @@ -0,0 +1,47 @@ +use crate::checker::StorageRead; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use crate::private::{MaxUncleEntryItems, UncleEntryItem}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_consensus_babe::digests::PreDigest; +use sp_core::bounded::BoundedVec; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfAuthorship { + Author, + Uncles, + DidSetUncles, +} + +impl<T: pallet_authorship::Config> PalletStorageMapper<T> for KeysOfAuthorship { + fn to_value(&self) -> StorageRead { + match self { + KeysOfAuthorship::Author => { + // Box::new(pallet_authorship::Author::<T>::get()) + <KeysOfAuthorship as PalletStorageMapper<T>>::read_storage::<Option<PreDigest>>( + self, + ) + } + KeysOfAuthorship::Uncles => { + // Box::new(pallet_authorship::Uncles::<T>::get()) + <KeysOfAuthorship as PalletStorageMapper<T>>::read_storage::< + BoundedVec< + UncleEntryItem< + <T as frame_system::Config>::BlockNumber, + <T as frame_system::Config>::Hash, + <T as frame_system::Config>::AccountId, + >, + MaxUncleEntryItems<T>, + >, + >(self) + } + KeysOfAuthorship::DidSetUncles => { + // Box::new(pallet_authorship::DidSetUncles::<T>::get()) + <KeysOfAuthorship as PalletStorageMapper<T>>::read_storage::<bool>(self) + } + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/babe.rs b/pallets/dump-storage/src/external_pallets/babe.rs new file mode 100644 index 000000000..0bd36c558 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/babe.rs @@ -0,0 +1,106 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use crate::private::*; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use frame_support::Twox64Concat; +use pallet_grandpa::AuthorityId; +use sp_consensus_babe::digests::{NextConfigDescriptor, PreDigest}; +use sp_consensus_babe::{BabeAuthorityWeight, BabeEpochConfiguration}; +use sp_consensus_vrf::schnorrkel; +use sp_core::bounded::{BoundedVec, WeakBoundedVec}; +use sp_core::ConstU32; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfBabe { + Initialized, + Authorities, + NextAuthorities, + AuthorVrfRandomness, + CurrentSlot, + EpochConfig, + EpochIndex, + EpochStart, + GenesisSlot, + Lateness, + NextEpochConfig, + NextRandomness, + PendingEpochConfigChange, + Randomness, + SegmentIndex, + UnderConstruction, +} + +impl<T: pallet_babe::Config> PalletStorageMapper<T> for KeysOfBabe { + fn to_value(&self) -> StorageRead { + match self { + KeysOfBabe::Initialized => { + // Box::new(pallet_babe::Initialized::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::<Option<PreDigest>>(self) + } + KeysOfBabe::Authorities => Value(Box::new(pallet_babe::Authorities::<T>::get())), + KeysOfBabe::NextAuthorities => { + // Box::new(pallet_babe::NextAuthorities::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::< + WeakBoundedVec< + (AuthorityId, BabeAuthorityWeight), + <T as pallet_babe::Config>::MaxAuthorities, + >, + >(self) + } + KeysOfBabe::AuthorVrfRandomness => { + // Box::new(pallet_babe::AuthorVrfRandomness::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::<Option<schnorrkel::Randomness>>( + self, + ) + } + KeysOfBabe::CurrentSlot => Value(Box::new(pallet_babe::CurrentSlot::<T>::get())), + KeysOfBabe::EpochConfig => { + // Box::new(pallet_babe::EpochConfig::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::<BabeEpochConfiguration>(self) + } + KeysOfBabe::EpochIndex => Value(Box::new(pallet_babe::EpochIndex::<T>::get())), + KeysOfBabe::EpochStart => { + // Box::new(pallet_babe::EpochStart::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::<( + <T as frame_system::Config>::BlockNumber, + <T as frame_system::Config>::BlockNumber, + )>(self) + } + KeysOfBabe::GenesisSlot => Value(Box::new(pallet_babe::GenesisSlot::<T>::get())), + KeysOfBabe::Lateness => { + // Box::new(pallet_babe::Lateness::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::< + <T as frame_system::Config>::BlockNumber, + >(self) + } + KeysOfBabe::NextEpochConfig => { + // Box::new(pallet_babe::NextEpochConfig::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::<BabeEpochConfiguration>(self) + } + KeysOfBabe::NextRandomness => { + // Box::new(pallet_babe::NextRandomness::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::<schnorrkel::Randomness>(self) + } + KeysOfBabe::PendingEpochConfigChange => { + // Box::new(pallet_babe::PendingEpochConfigChange::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::<NextConfigDescriptor>(self) + } + KeysOfBabe::Randomness => Value(Box::new(pallet_babe::Randomness::<T>::get())), + KeysOfBabe::SegmentIndex => { + // Box::new(pallet_babe::SegmentIndex::<T>::get()) + <KeysOfBabe as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfBabe::UnderConstruction => <Self as PalletStorageMapper<T>>::read_map::< + u32, + BoundedVec<schnorrkel::Randomness, ConstU32<UNDER_CONSTRUCTION_SEGMENT_LENGTH>>, + Twox64Concat, + >(self), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/balances.rs b/pallets/dump-storage/src/external_pallets/balances.rs new file mode 100644 index 000000000..af8060f15 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/balances.rs @@ -0,0 +1,36 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use crate::private::Releases; +use dump_macros::{EnumFromStr, EnumPalletStorage}; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfBalances { + Account, + Locks, + Reserves, + StorageVersion, + TotalIssuance, +} + +impl<T: pallet_balances::Config> PalletStorageMapper<T> for KeysOfBalances { + fn to_value(&self) -> StorageRead { + match self { + KeysOfBalances::Account => to_kv(pallet_balances::Account::<T>::iter().collect()), + KeysOfBalances::Locks => to_kv(pallet_balances::Locks::<T>::iter().collect()), + KeysOfBalances::Reserves => to_kv(pallet_balances::Reserves::<T>::iter().collect()), + KeysOfBalances::StorageVersion => { + // Box::new(pallet_balances::StorageVersion::<T>::get()) + <KeysOfBalances as PalletStorageMapper<T>>::read_storage::<Releases>(self) + } + KeysOfBalances::TotalIssuance => { + Value(Box::new(pallet_balances::TotalIssuance::<T>::get())) + } + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/collective.rs b/pallets/dump-storage/src/external_pallets/collective.rs new file mode 100644 index 000000000..a39afa644 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/collective.rs @@ -0,0 +1,46 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use frame_support::instances::Instance2; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfTechnicalCommittee { + ProposalOf, + Voting, + Proposals, + Members, + Prime, + ProposalCount, +} + +impl<T: pallet_collective::Config<Instance2>> PalletStorageMapper<T> for KeysOfTechnicalCommittee { + fn to_value(&self) -> StorageRead { + match self { + KeysOfTechnicalCommittee::ProposalOf => { + to_kv(pallet_collective::ProposalOf::<T, Instance2>::iter().collect()) + } + KeysOfTechnicalCommittee::Voting => { + to_kv(pallet_collective::Voting::<T, Instance2>::iter().collect()) + } + KeysOfTechnicalCommittee::Proposals => { + Value(Box::new(pallet_collective::Proposals::<T, Instance2>::get())) + } + KeysOfTechnicalCommittee::Members => { + Value(Box::new(pallet_collective::Members::<T, Instance2>::get())) + } + KeysOfTechnicalCommittee::Prime => { + Value(Box::new(pallet_collective::Prime::<T, Instance2>::get())) + } + KeysOfTechnicalCommittee::ProposalCount => Value(Box::new( + pallet_collective::ProposalCount::<T, Instance2>::get(), + )), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/grandpa.rs b/pallets/dump-storage/src/external_pallets/grandpa.rs new file mode 100644 index 000000000..7406dcada --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/grandpa.rs @@ -0,0 +1,61 @@ +use crate::checker::StorageRead; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use crate::private::{MyConstU32, SessionIndex, StoredPendingChange, StoredState}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use frame_support::Twox64Concat; +use pallet_grandpa::fg_primitives::SetId; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfGrandpa { + CurrentSetId, + SetIdSession, + NextForced, + PendingChange, + Stalled, + State, +} + +impl<T: pallet_grandpa::Config> PalletStorageMapper<T> for KeysOfGrandpa { + fn to_value(&self) -> StorageRead { + match self { + KeysOfGrandpa::CurrentSetId => { + // Box::new(pallet_grandpa::CurrentSetId::<T>::get()) + <KeysOfGrandpa as PalletStorageMapper<T>>::read_storage::<SetId>(self) + } + KeysOfGrandpa::SetIdSession => <KeysOfGrandpa as PalletStorageMapper<T>>::read_map::< + SetId, + SessionIndex, + Twox64Concat, + >(self), + KeysOfGrandpa::NextForced => { + // Box::new(pallet_grandpa::NextForced::<T>::get()) + <KeysOfGrandpa as PalletStorageMapper<T>>::read_storage::< + <T as frame_system::Config>::BlockNumber, + >(self) + } + KeysOfGrandpa::PendingChange => { + // Box::new(pallet_grandpa::PendingChange::<T>::get()) + <KeysOfGrandpa as PalletStorageMapper<T>>::read_storage::< + StoredPendingChange<<T as frame_system::Config>::BlockNumber, MyConstU32<32>>, + >(self) + } + KeysOfGrandpa::Stalled => { + // Box::new(pallet_grandpa::Stalled::<T>::get()) + <KeysOfGrandpa as PalletStorageMapper<T>>::read_storage::<( + <T as frame_system::Config>::BlockNumber, + <T as frame_system::Config>::BlockNumber, + )>(self) + } + KeysOfGrandpa::State => { + // Box::new(pallet_grandpa::State::<T>::get()) + <KeysOfGrandpa as PalletStorageMapper<T>>::read_storage::< + StoredState<<T as frame_system::Config>::BlockNumber>, + >(self) + } + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/im_online.rs b/pallets/dump-storage/src/external_pallets/im_online.rs new file mode 100644 index 000000000..2b00ce41c --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/im_online.rs @@ -0,0 +1,57 @@ +use crate::checker::StorageRead; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use crate::private::{CustomBoundedOpaqueNetworkState, Get32, SessionIndex}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use frame_support::Twox64Concat; +use pallet_im_online::{AuthIndex, ValidatorId}; +use sp_core::bounded::WeakBoundedVec; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfImOnline { + Keys, + HeartbeatAfter, + ReceivedHeartbeats, + AuthoredBlocks, +} + +impl<T: pallet_im_online::Config> PalletStorageMapper<T> for KeysOfImOnline { + fn to_value(&self) -> StorageRead { + match self { + KeysOfImOnline::Keys => { + // Box::new(pallet_im_online::Keys::<T>::get()) + <Self as PalletStorageMapper<T>>::read_storage::< + WeakBoundedVec< + <T as pallet_im_online::Config>::AuthorityId, + <T as pallet_im_online::Config>::MaxKeys, + >, + >(self) + } + KeysOfImOnline::HeartbeatAfter => { + // Box::new(pallet_im_online::HeartbeatAfter::<T>::get()) + <Self as PalletStorageMapper<T>>::read_storage::< + <T as frame_system::Config>::BlockNumber, + >(self) + } + KeysOfImOnline::ReceivedHeartbeats => { + <Self as PalletStorageMapper<T>>::read_double_map::< + SessionIndex, + AuthIndex, + CustomBoundedOpaqueNetworkState<Get32, Get32, Get32>, + Twox64Concat, + Twox64Concat, + >(self) + } + KeysOfImOnline::AuthoredBlocks => <Self as PalletStorageMapper<T>>::read_double_map::< + SessionIndex, + ValidatorId<T>, + u32, + Twox64Concat, + Twox64Concat, + >(self), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/mod.rs b/pallets/dump-storage/src/external_pallets/mod.rs new file mode 100644 index 000000000..50b340c17 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/mod.rs @@ -0,0 +1,35 @@ +pub mod atomicswap; +pub mod authorship; +pub mod babe; +pub mod balances; +pub mod collective; +pub mod grandpa; +pub mod im_online; +pub mod multisig; +pub mod preimage; +pub mod proxy; +pub mod scheduler; +pub mod session; +pub mod sudo; +pub mod system; +pub mod timestamp; +pub mod transaction_payment; +pub mod treasury; + +use crate::checker::StorageRead; +use crate::checker::StorageRead::Map; +use crate::no_std::NoStdString; +use sp_std::boxed::Box; +use sp_std::collections::btree_map::BTreeMap; +use sp_std::fmt::Debug; + +pub fn to_kv<K: Debug + 'static, V: Debug + 'static>(hm: BTreeMap<K, V>) -> StorageRead { + let mut res: BTreeMap<Box<NoStdString>, Box<dyn Debug>> = BTreeMap::new(); + hm.into_iter().for_each(|(k, v)| { + res.insert( + Box::new(NoStdString::new(format_args!("{:?}", k))), + Box::new(v), + ); + }); + Map(res) +} diff --git a/pallets/dump-storage/src/external_pallets/multisig.rs b/pallets/dump-storage/src/external_pallets/multisig.rs new file mode 100644 index 000000000..b1125c287 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/multisig.rs @@ -0,0 +1,26 @@ +use crate::checker::StorageRead; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_std::fmt::Debug; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfMultisig { + Multisigs, +} + +impl<T: pallet_multisig::Config> PalletStorageMapper<T> for KeysOfMultisig { + fn to_value(&self) -> StorageRead { + match self { + KeysOfMultisig::Multisigs => to_kv( + pallet_multisig::Multisigs::<T>::iter() + .map(|kv| <KeysOfMultisig as PalletStorageMapper<T>>::to_simple_map(self, kv)) + .collect(), + ), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/preimage.rs b/pallets/dump-storage/src/external_pallets/preimage.rs new file mode 100644 index 000000000..6ce6f9a2c --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/preimage.rs @@ -0,0 +1,36 @@ +use crate::checker::StorageRead; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use crate::private::BalanceOf; +use crate::private::*; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use frame_support::Identity as IdentityHash; +use pallet_preimage::RequestStatus; +use sp_core::bounded::BoundedVec; +use sp_core::ConstU32; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfPreimage { + StatusFor, + PreimageFor, +} + +impl<T: pallet_preimage::Config> PalletStorageMapper<T> for KeysOfPreimage { + fn to_value(&self) -> StorageRead { + match self { + KeysOfPreimage::StatusFor => <KeysOfPreimage as PalletStorageMapper<T>>::read_map::< + <T as frame_system::Config>::Hash, + RequestStatus<<T as frame_system::Config>::AccountId, BalanceOf<T>>, + IdentityHash, + >(self), + KeysOfPreimage::PreimageFor => <KeysOfPreimage as PalletStorageMapper<T>>::read_map::< + (<T as frame_system::Config>::Hash, u32), + BoundedVec<u8, ConstU32<MAX_SIZE>>, + IdentityHash, + >(self), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/proxy.rs b/pallets/dump-storage/src/external_pallets/proxy.rs new file mode 100644 index 000000000..649697c62 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/proxy.rs @@ -0,0 +1,23 @@ +use crate::checker::StorageRead; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfProxy { + Proxies, + Announcements, +} + +impl<T: pallet_proxy::Config> PalletStorageMapper<T> for KeysOfProxy { + fn to_value(&self) -> StorageRead { + match self { + KeysOfProxy::Proxies => to_kv(pallet_proxy::Proxies::<T>::iter().collect()), + KeysOfProxy::Announcements => to_kv(pallet_proxy::Announcements::<T>::iter().collect()), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/scheduler.rs b/pallets/dump-storage/src/external_pallets/scheduler.rs new file mode 100644 index 000000000..cbd17222b --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/scheduler.rs @@ -0,0 +1,36 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use frame_support::traits::schedule::v3::TaskName; +use frame_support::Twox64Concat; +use pallet_scheduler::TaskAddress; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfScheduler { + Agenda, + IncompleteSince, + Lookup, +} + +impl<T: pallet_scheduler::Config> PalletStorageMapper<T> for KeysOfScheduler { + fn to_value(&self) -> StorageRead { + match self { + KeysOfScheduler::Agenda => to_kv(pallet_scheduler::Agenda::<T>::iter().collect()), + KeysOfScheduler::IncompleteSince => { + Value(Box::new(pallet_scheduler::IncompleteSince::<T>::get())) + } + KeysOfScheduler::Lookup => <Self as PalletStorageMapper<T>>::read_map::< + TaskName, + TaskAddress<<T as frame_system::Config>::BlockNumber>, + Twox64Concat, + >(self), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/session.rs b/pallets/dump-storage/src/external_pallets/session.rs new file mode 100644 index 000000000..fcf8dfaf0 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/session.rs @@ -0,0 +1,44 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfSession { + CurrentIndex, + DisabledValidators, + QueuedChanged, + KeyOwner, + NextKeys, + QueuedKeys, + Validators, +} + +impl<T: pallet_session::Config> PalletStorageMapper<T> for KeysOfSession +where + <T as pallet_session::Config>::ValidatorId: Ord, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfSession::CurrentIndex => { + Value(Box::new(pallet_session::CurrentIndex::<T>::get())) + } + KeysOfSession::DisabledValidators => { + Value(Box::new(pallet_session::DisabledValidators::<T>::get())) + } + KeysOfSession::QueuedChanged => { + Value(Box::new(pallet_session::QueuedChanged::<T>::get())) + } + KeysOfSession::KeyOwner => to_kv(pallet_session::KeyOwner::<T>::iter().collect()), + KeysOfSession::NextKeys => to_kv(pallet_session::NextKeys::<T>::iter().collect()), + KeysOfSession::QueuedKeys => Value(Box::new(pallet_session::QueuedKeys::<T>::get())), + KeysOfSession::Validators => Value(Box::new(pallet_session::Validators::<T>::get())), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/sudo.rs b/pallets/dump-storage/src/external_pallets/sudo.rs new file mode 100644 index 000000000..853275b5b --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/sudo.rs @@ -0,0 +1,22 @@ +use crate::checker::StorageRead; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfSudo { + Key, +} + +impl<T: pallet_timestamp::Config> PalletStorageMapper<T> for KeysOfSudo { + fn to_value(&self) -> StorageRead { + match self { + KeysOfSudo::Key => <KeysOfSudo as PalletStorageMapper<T>>::read_storage::< + <T as frame_system::Config>::AccountId, + >(self), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/system.rs b/pallets/dump-storage/src/external_pallets/system.rs new file mode 100644 index 000000000..348289c27 --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/system.rs @@ -0,0 +1,111 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use frame_support::{Blake2_128Concat, Twox64Concat}; +use frame_system::{ConsumedWeight, EventRecord, Phase}; +use sp_runtime::generic; +use sp_std::boxed::Box; +use sp_std::str::FromStr; +use sp_std::vec::Vec; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfSystem { + Number, + ParentHash, + LastRuntimeUpgrade, + UpgradedToU32RefCount, + UpgradedToTripleRefCount, + Account, + BlockHash, + ExtrinsicData, + EventTopics, + AllExtrinsicsLen, + ExtrinsicCount, + BlockWeight, + Digest, + Events, + EventCount, + ExecutionPhase, +} + +impl<T: pallet_balances::Config> PalletStorageMapper<T> for KeysOfSystem { + fn to_value(&self) -> StorageRead { + match self { + KeysOfSystem::Number => { + // Box::new(frame_system::Number::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::< + <T as frame_system::Config>::BlockNumber, + >(self) + } + KeysOfSystem::ParentHash => { + // Box::new(frame_system::ParentHash::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::< + <T as frame_system::Config>::Hash, + >(self) + } + KeysOfSystem::LastRuntimeUpgrade => { + Value(Box::new(frame_system::LastRuntimeUpgrade::<T>::get())) + } + KeysOfSystem::UpgradedToU32RefCount => { + // Box::new(frame_system::UpgradedToU32RefCount::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::<bool>(self) + } + KeysOfSystem::UpgradedToTripleRefCount => { + // Box::new(frame_system::UpgradedToTripleRefCount::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::<bool>(self) + } + KeysOfSystem::ExtrinsicData => { + <Self as PalletStorageMapper<T>>::read_map::<u32, Vec<u8>, Twox64Concat>(self) + } + KeysOfSystem::EventTopics => <Self as PalletStorageMapper<T>>::read_map::< + <T as frame_system::Config>::Hash, + Vec<(<T as frame_system::Config>::BlockNumber, u32)>, + Blake2_128Concat, + >(self), + KeysOfSystem::Account => to_kv(frame_system::Account::<T>::iter().collect()), + KeysOfSystem::BlockHash => to_kv(frame_system::BlockHash::<T>::iter().collect()), + KeysOfSystem::AllExtrinsicsLen => { + // Box::new(frame_system::AllExtrinsicsLen::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfSystem::ExtrinsicCount => { + // Box::new(frame_system::ExtrinsicCount::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfSystem::BlockWeight => { + // Box::new(frame_system::BlockWeight::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::<ConsumedWeight>(self) + } + KeysOfSystem::Digest => { + // Box::new(frame_system::Digest::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::<generic::Digest>(self) + } + KeysOfSystem::Events => { + // Box::new(frame_system::Events::<T>::get()) + <Self as PalletStorageMapper<T>>::read_storage::< + Vec< + Box< + EventRecord< + <T as frame_system::Config>::RuntimeEvent, + <T as frame_system::Config>::Hash, + >, + >, + >, + >(self) + } + KeysOfSystem::EventCount => { + // Box::new(frame_system::EventCount::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfSystem::ExecutionPhase => { + // Box::new(frame_system::ExecutionPhase::<T>::get()) + <KeysOfSystem as PalletStorageMapper<T>>::read_storage::<Phase>(self) + } + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/timestamp.rs b/pallets/dump-storage/src/external_pallets/timestamp.rs new file mode 100644 index 000000000..016df8abe --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/timestamp.rs @@ -0,0 +1,26 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfTimestamp { + DidUpdate, + Now, +} + +impl<T: pallet_timestamp::Config> PalletStorageMapper<T> for KeysOfTimestamp { + fn to_value(&self) -> StorageRead { + match self { + KeysOfTimestamp::DidUpdate => { + <KeysOfTimestamp as PalletStorageMapper<T>>::read_storage::<bool>(self) + } + KeysOfTimestamp::Now => Value(Box::new(pallet_timestamp::Now::<T>::get())), + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/transaction_payment.rs b/pallets/dump-storage/src/external_pallets/transaction_payment.rs new file mode 100644 index 000000000..ccebd89fd --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/transaction_payment.rs @@ -0,0 +1,29 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use crate::private::Releases; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfTransactionPayment { + NextFeeMultiplier, + StorageVersion, +} + +impl<T: pallet_transaction_payment::Config> PalletStorageMapper<T> for KeysOfTransactionPayment { + fn to_value(&self) -> StorageRead { + match self { + KeysOfTransactionPayment::NextFeeMultiplier => Value(Box::new( + pallet_transaction_payment::NextFeeMultiplier::<T>::get(), + )), + KeysOfTransactionPayment::StorageVersion => { + <KeysOfTransactionPayment as PalletStorageMapper<T>>::read_storage::<Releases>(self) + } + } + } +} diff --git a/pallets/dump-storage/src/external_pallets/treasury.rs b/pallets/dump-storage/src/external_pallets/treasury.rs new file mode 100644 index 000000000..b498ef70a --- /dev/null +++ b/pallets/dump-storage/src/external_pallets/treasury.rs @@ -0,0 +1,29 @@ +use crate::checker::StorageRead; +use crate::checker::StorageRead::Value; +use crate::external_pallets::to_kv; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::pallets::{PalletStorage, PalletStorageMapper}; +use dump_macros::EnumFromStr; +use dump_macros::EnumPalletStorage; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfTreasury { + Proposals, + ProposalCount, + Approvals, +} + +impl<T: pallet_treasury::Config> PalletStorageMapper<T> for KeysOfTreasury { + fn to_value(&self) -> StorageRead { + match self { + KeysOfTreasury::Proposals => to_kv(pallet_treasury::Proposals::<T>::iter().collect()), + KeysOfTreasury::ProposalCount => Value(Box::new( + pallet_treasury::Proposals::<T>::iter_keys().count(), + )), + KeysOfTreasury::Approvals => Value(Box::new(pallet_treasury::Approvals::<T>::get())), + } + } +} diff --git a/pallets/dump-storage/src/key.rs b/pallets/dump-storage/src/key.rs new file mode 100644 index 000000000..01b464aaa --- /dev/null +++ b/pallets/dump-storage/src/key.rs @@ -0,0 +1,24 @@ +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use sp_std::vec::Vec; + +/// Structured Key name. +/// Composed of two fields which are the same used by Substrate #[pallet::storage] macro as described +/// in [Substrate doc](https://docs.substrate.io/learn/state-transitions-and-storage/#storage-value-keys): +/// - a pallet name +/// - a storage name +#[derive(Eq, Hash, PartialEq, Clone, Debug)] +pub struct KeyName { + pub pallet: Vec<u8>, + pub storage: Vec<u8>, +} + +/// Construtor +impl KeyName { + pub fn new(pallet: DumpPallet, storage: &str) -> KeyName { + KeyName { + pallet: NoStdString::new(format_args!("{:?}", pallet)).into_inner(), + storage: Vec::from(storage), + } + } +} diff --git a/pallets/dump-storage/src/lib.rs b/pallets/dump-storage/src/lib.rs new file mode 100644 index 000000000..63d1c378e --- /dev/null +++ b/pallets/dump-storage/src/lib.rs @@ -0,0 +1,16 @@ +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate core; + +pub mod assert; +pub mod checker; +pub mod external_pallets; +pub mod key; +pub mod no_std; +pub mod pallet; +pub mod pallet_checker; +pub mod pallets; +pub mod private; +pub mod runtime; +pub use dump_macros::EnumFromStr; +pub use dump_macros::EnumPalletStorage; diff --git a/pallets/dump-storage/src/no_std.rs b/pallets/dump-storage/src/no_std.rs new file mode 100644 index 000000000..db4cbfa3a --- /dev/null +++ b/pallets/dump-storage/src/no_std.rs @@ -0,0 +1,72 @@ +use sp_std::fmt::Arguments; +use sp_std::fmt::Write; +use sp_std::fmt::{Debug, Display, Formatter}; +use sp_std::vec; +use sp_std::vec::Vec; + +pub fn vec2str(v: &Vec<u8>) -> &str { + sp_std::str::from_utf8(v.as_slice()).unwrap() +} + +#[derive(Ord, PartialOrd, Eq, PartialEq, Debug)] +pub struct NoStdString(Vec<u8>); +impl NoStdString { + pub fn empty() -> NoStdString { + Self { 0: vec![] } + } + pub fn from_vec(v: Vec<u8>) -> NoStdString { + Self { 0: v } + } + pub fn new(args: core::fmt::Arguments) -> NoStdString { + let mut a = Writer::default(); + a.write_fmt(args).unwrap(); + Self { 0: a.into_inner() } + } + pub fn push_str(&mut self, s: &str) -> &mut NoStdString { + self.0.append(&mut s.into()); + self + } + pub fn push_args(&mut self, args: Arguments) -> &mut NoStdString { + let mut v = NoStdString::new(args).into_inner(); + self.0.append(&mut v); + self + } + pub fn into_inner(self) -> Vec<u8> { + self.0 + } + pub fn as_str(&self) -> &str { + sp_std::str::from_utf8(self.0.as_slice()).unwrap() + } +} + +impl Display for NoStdString { + fn fmt(&self, f: &mut Formatter<'_>) -> sp_std::fmt::Result { + if let Ok(v) = sp_std::str::from_utf8(self.0.as_slice()) { + write!(f, "{}", v).expect("should work"); + return Ok(()); + } + Ok(()) + } +} + +#[derive(Default)] +pub struct Writer(vec::Vec<u8>); + +impl sp_std::fmt::Write for Writer { + fn write_str(&mut self, s: &str) -> sp_std::fmt::Result { + self.0.extend(s.as_bytes()); + Ok(()) + } +} + +impl Writer { + /// Access the content of this `Writer` e.g. for printout + pub fn inner(&self) -> &vec::Vec<u8> { + &self.0 + } + + /// Convert into the content of this `Writer` + pub fn into_inner(self) -> vec::Vec<u8> { + self.0 + } +} diff --git a/pallets/dump-storage/src/pallet.rs b/pallets/dump-storage/src/pallet.rs new file mode 100644 index 000000000..7690af3fd --- /dev/null +++ b/pallets/dump-storage/src/pallet.rs @@ -0,0 +1,44 @@ +use crate::no_std::NoStdString; +use sp_std::fmt::Debug; +use sp_std::vec::Vec; + +#[derive(Debug)] +pub enum DumpPallet { + Account, + AtomicSwap, + AuthorityMembers, + AuthorityMembersMembers, + Authorship, + Babe, + Balances, + Cert, + Grandpa, + Identity, + ImOnline, + Membership, + Multisig, + Offences, + OneshotAccount, + Parameters, + Preimage, + ProvideRandomness, + Proxy, + Scheduler, + Session, + SmithCert, + SmithCertCert, + SmithMembership, + Sudo, + System, + TechnicalCommittee, + Timestamp, + TransactionPayment, + Treasury, + UniversalDividend, +} + +impl DumpPallet { + pub fn to_vec_u8(&self) -> Vec<u8> { + NoStdString::new(format_args!("{:?}", self)).into_inner() + } +} diff --git a/pallets/dump-storage/src/pallet_checker.rs b/pallets/dump-storage/src/pallet_checker.rs new file mode 100644 index 000000000..d72a01ee1 --- /dev/null +++ b/pallets/dump-storage/src/pallet_checker.rs @@ -0,0 +1,104 @@ +use crate::assert::dump_actual; +use crate::checker::Checker; +use crate::no_std::NoStdString; +use crate::pallets::PalletCheckerApi; +use crate::runtime::extract_storage_entries_normalized; +use frame_support::metadata::{RuntimeMetadata, RuntimeMetadataPrefixed}; +use sp_std::ops::Add; +use sp_std::vec::Vec; + +// Allow pretty assertions to be automatically enabled in std environment +#[cfg(feature = "std")] +use pretty_assertions::assert_eq; + +pub struct PalletChecker { + meta: RuntimeMetadataPrefixed, + expected_len: usize, + checks: Vec<Checker>, +} + +impl PalletChecker { + pub fn new(meta: RuntimeMetadataPrefixed, expected_len: usize) -> Self { + Self { + meta, + expected_len, + checks: Vec::new(), + } + } + + pub fn add_pallet<Runtime, Pallet: PalletCheckerApi<Pallet, Runtime>>( + mut self, + ) -> PalletChecker { + let (_, tested) = Self::extract_tested::<Runtime, Pallet>(&self.meta.1, self.expected_len); + self.checks.extend(tested); + self + } + + pub fn verify(self, expected_result: &str) { + Self::do_test_pallet(self.checks, |extracted| { + assert_eq!(extracted, expected_result) + }); + } + + pub fn extract(self, assert_func: impl FnOnce(&str)) { + Self::do_test_pallet(self.checks, assert_func); + } + + // Sugar function + pub fn test_pallet<Runtime, Pallet: PalletCheckerApi<Pallet, Runtime>>( + meta: RuntimeMetadataPrefixed, + expected_len: usize, + expected_result: &str, + ) { + // Explore the Runtime to fetch the storage entries + Self::new(meta, expected_len) + .add_pallet::<Runtime, Pallet>() + .verify(expected_result); + } + + pub fn test_pallet_v2<Runtime, Pallet: PalletCheckerApi<Pallet, Runtime>>( + meta: RuntimeMetadataPrefixed, + expected_len: usize, + do_assert: impl FnOnce(&str), + ) { + // Explore the Runtime to fetch the storage entries + let (_, tested) = Self::extract_tested::<Runtime, Pallet>(&meta.1, expected_len); + Self::do_test_pallet(tested, do_assert); + } + + fn do_test_pallet(mut tested: Vec<Checker>, do_assert: impl FnOnce(&str)) { + tested.sort_by_key(|c| c.to_dotted_form()); + // The golden comparison + let binding = dump_actual(tested); + let actual = sp_std::str::from_utf8(binding.as_slice()).unwrap(); + do_assert(actual); + } + + fn extract_tested<Runtime, Pallet: PalletCheckerApi<Pallet, Runtime>>( + meta: &RuntimeMetadata, + expected_len: usize, + ) -> (u32, Vec<Checker>) { + let mut entries_count = 0u32; + let tested = extract_storage_entries_normalized(meta, expected_len) + .unwrap() + .into_iter() + .filter(Pallet::filter) + .map(|se| { + entries_count = entries_count.add(1); + let tried = + Pallet::try_from(sp_std::str::from_utf8(se.storage_name.as_slice()).unwrap()); + if let Ok(key) = tried { + // Specific + key.to_checker() + } else { + panic!( + "{}.{} must implement TryFrom", + NoStdString::from_vec(se.pallet_name), + NoStdString::from_vec(se.storage_name) + ); + } + }) + .collect(); + (entries_count, tested) + } +} diff --git a/pallets/dump-storage/src/pallets.rs b/pallets/dump-storage/src/pallets.rs new file mode 100644 index 000000000..b5506a506 --- /dev/null +++ b/pallets/dump-storage/src/pallets.rs @@ -0,0 +1,161 @@ +use crate::checker::StorageRead::{Error, Map, Value}; +use crate::checker::{Checker, StorageRead}; +use crate::key::KeyName; +use crate::no_std::NoStdString; +use crate::pallet::DumpPallet; +use crate::runtime::StorageEntry; +use codec::{Decode, FullCodec}; +use frame_support::storage::PrefixIterator; +use frame_support::{ReversibleStorageHasher, StorageHasher}; +// use maplit::btreemap; +use sp_std::boxed::Box; +use sp_std::collections::btree_map::BTreeMap; +use sp_std::fmt::Debug; +use sp_std::str::FromStr; +use sp_std::vec::Vec; + +pub trait PalletCheckerApi<Pallet, Runtime> { + fn filter(se: &StorageEntry) -> bool; + fn try_from(s: &str) -> Result<Pallet, NoStdString>; + fn to_checker(&self) -> Checker; +} + +pub trait PalletStorage: Debug + FromStr { + /// Blanket impl + fn storage_name(&self) -> NoStdString { + NoStdString::new(format_args!("{:?}", self)) + } + /// Blanket impl + fn storage_keyname(&self) -> KeyName { + KeyName::new(Self::pallet(), self.storage_name().as_str()) + } + /// Blanket impl + fn do_try_from(s: &str) -> Result<Self, <Self as FromStr>::Err> + where + Self: Sized, + { + <Self as FromStr>::from_str(s) + } + fn pallet() -> DumpPallet; +} + +pub trait PalletStorageMapper<Runtime>: PalletStorage { + fn read_storage<StorageType: Decode + Debug + 'static>(&self) -> StorageRead { + let k = self.storage_keyname(); + let key = frame_support::storage::storage_prefix(k.pallet.as_slice(), k.storage.as_slice()); + if let Some(v) = sp_io::storage::get(key.as_slice()) { + let v = StorageType::decode(&mut &v[..]); + if let Ok(v) = v { + return Value(Box::new(Some(v))); + } else { + Error( + NoStdString::new(format_args!("Error for {:?}.{:?}", k.pallet, k.storage)) + .into_inner(), + ); + } + } + Value(Box::new(None::<StorageType>)) + } + fn to_simple_map<K1, K2, V>(&self, (k1, k2, v): (K1, K2, V)) -> (NoStdString, V) + where + K1: Debug + 'static, + K2: Debug + 'static, + V: Debug + 'static, + { + (NoStdString::new(format_args!("{:?} => {:?}", k1, k2)), v) + } + fn read_map<K, V, H>(&self) -> StorageRead + where + K: FullCodec + Debug + 'static, + V: FullCodec + Debug + 'static, + H: StorageHasher + ReversibleStorageHasher, + { + let key_name = self.storage_keyname(); + let prefix: Vec<u8> = frame_support::storage::storage_prefix( + key_name.pallet.as_slice(), + key_name.storage.as_slice(), + ) + .into(); + let iterator: PrefixIterator<(Result<K, codec::Error>, Result<V, codec::Error>), ()> = + PrefixIterator::new( + prefix.clone(), + prefix, + |raw_key_without_prefix, mut raw_value| { + let mut key_material = H::reverse(raw_key_without_prefix); + let k: Result<K, codec::Error> = codec::Decode::decode(&mut key_material); + let v: Result<V, codec::Error> = codec::Decode::decode(&mut raw_value); + Ok((k, v)) + }, + ); + let mut kvs: BTreeMap<Box<NoStdString>, Box<dyn Debug>> = BTreeMap::new(); + for (k, v) in iterator { + kvs.insert( + Box::new(NoStdString::new(format_args!( + "{:?}", + k.expect("Could not decode k") + ))), + Box::new(v.expect("Could not decode v")), + ); + } + Map(kvs) + } + fn read_double_map<K1, K2, V, H1, H2>(&self) -> StorageRead + where + K1: FullCodec + Debug + 'static, + K2: FullCodec + Debug + 'static, + V: FullCodec + Debug + 'static, + H1: StorageHasher + ReversibleStorageHasher, + H2: StorageHasher + ReversibleStorageHasher, + { + let key_name = self.storage_keyname(); + let prefix: Vec<u8> = frame_support::storage::storage_prefix( + key_name.pallet.as_slice(), + key_name.storage.as_slice(), + ) + .into(); + let iterator: PrefixIterator<(K1, K2, V)> = PrefixIterator::new( + prefix.clone(), + prefix, + |raw_key_without_prefix, mut raw_value| { + let mut k1_k2_material = H1::reverse(raw_key_without_prefix); + let k1 = K1::decode(&mut k1_k2_material).expect("Could not decode k1"); + let mut k2_material = H2::reverse(k1_k2_material); + let k2 = K2::decode(&mut k2_material).expect("Could not decode k2"); + let v = V::decode(&mut raw_value).expect("Could not decode value"); + Ok((k1, k2, v)) + }, + ); + let mut kvs: BTreeMap<Box<NoStdString>, Box<dyn Debug>> = BTreeMap::new(); + for (k1, k2, v) in iterator { + let displayable = NoStdString::new(format_args!("{:?} => {:?}", k1, k2)); + kvs.insert(Box::new(displayable), Box::new(v)); + } + Map(kvs) + } + // The two main methods that maps the pallet to its storage values + fn to_value(&self) -> StorageRead; +} + +/// Blanket implementation +impl<Pallet: PalletStorageMapper<Runtime>, Runtime> PalletCheckerApi<Pallet, Runtime> for Pallet { + fn filter(se: &StorageEntry) -> bool { + let pn1 = sp_std::str::from_utf8(se.pallet_name.as_slice()).unwrap(); + let pn2 = Pallet::pallet().to_vec_u8(); + let pn2 = sp_std::str::from_utf8(pn2.as_slice()).unwrap(); + // se.pallet_name == Pallet::pallet().to_vec_u8() + pn1 == pn2 + } + + fn try_from(s: &str) -> Result<Self, NoStdString> { + Pallet::do_try_from(s) + .map_err(|_| NoStdString::new(format_args!("could not get from {}", s))) + } + + fn to_checker(&self) -> Checker { + Checker::new( + sp_std::str::from_utf8(Pallet::pallet().to_vec_u8().as_slice()).unwrap(), + Pallet::storage_name(self).as_str(), + Pallet::to_value(self), + ) + } +} diff --git a/pallets/dump-storage/src/private.rs b/pallets/dump-storage/src/private.rs new file mode 100644 index 000000000..5bd5e0e5d --- /dev/null +++ b/pallets/dump-storage/src/private.rs @@ -0,0 +1,121 @@ +use frame_support::traits::Currency; +use sp_arithmetic::traits::UniqueSaturatedInto; +use sp_core::bounded::WeakBoundedVec; +use sp_core::{Get, TypedGet}; + +/// Stuff required by dc-dump but is private in the pallets. +/// So it had to be copied here. + +pub type SessionIndex = u32; +pub const UNDER_CONSTRUCTION_SEGMENT_LENGTH: u32 = 256; +/// A binary blob which represents a SCALE codec-encoded `O::TimeSlot`. +pub type BalanceOf<T> = <<T as pallet_preimage::Config>::Currency as Currency< + <T as frame_system::Config>::AccountId, +>>::Balance; +/// Maximum size of preimage we can store is 4mb. +pub const MAX_SIZE: u32 = 4 * 1024 * 1024; + +#[doc = "Const getter for a basic type."] +#[derive(frame_support::RuntimeDebug, PartialEq, Clone)] +pub struct MyConstU32<const T: u32>; +impl<const T: u32> Get<u32> for MyConstU32<T> { + fn get() -> u32 { + T + } +} +impl<const T: u32> Get<Option<u32>> for MyConstU32<T> { + fn get() -> Option<u32> { + Some(T) + } +} +impl<const T: u32> TypedGet for MyConstU32<T> { + type Type = u32; + fn get() -> u32 { + T + } +} +pub type Get32 = MyConstU32<100>; + +#[derive(Debug, codec::Encode, codec::Decode, PartialEq, Clone)] +pub struct CustomBoundedOpaqueNetworkState< + PeerIdEncodingLimit, + MultiAddrEncodingLimit, + AddressesLimit, +> where + PeerIdEncodingLimit: Get<u32>, + MultiAddrEncodingLimit: Get<u32>, + AddressesLimit: Get<u32>, +{ + /// PeerId of the local node in SCALE encoded. + pub peer_id: WeakBoundedVec<u8, PeerIdEncodingLimit>, + /// List of addresses the node knows it can be reached as. + pub external_addresses: + WeakBoundedVec<WeakBoundedVec<u8, MultiAddrEncodingLimit>, AddressesLimit>, +} + +#[derive(codec::Encode, codec::Decode, Clone, Copy, PartialEq, Eq, Debug)] +pub enum Releases { + /// Original version of the pallet. + V1Ancient, + /// One that bumps the usage to FixedU128 from FixedI128. + V2, +} + +#[derive(codec::Encode, codec::Decode, Debug)] +pub struct StoredPendingChange<N, Limit: sp_core::Get<u32>> { + /// The block number this was scheduled at. + pub scheduled_at: N, + /// The delay in blocks until it will be applied. + pub delay: N, + /// The next authority set, weakly bounded in size by `Limit`. + pub next_authorities: pallet_grandpa::BoundedAuthorityList<Limit>, + /// If defined it means the change was forced and the given block number + /// indicates the median last finalized block when the change was signaled. + pub forced: Option<N>, +} + +#[derive(codec::Decode, codec::Encode, Debug, PartialEq)] +pub enum StoredState<N> { + /// The current authority set is live, and GRANDPA is enabled. + Live, + /// There is a pending pause event which will be enacted at the given block + /// height. + PendingPause { + /// Block at which the intention to pause was scheduled. + scheduled_at: N, + /// Number of blocks after which the change will be enacted. + delay: N, + }, + /// The current GRANDPA authority set is paused. + Paused, + /// There is a pending resume event which will be enacted at the given block + /// height. + PendingResume { + /// Block at which the intention to resume was scheduled. + scheduled_at: N, + /// Number of blocks after which the change will be enacted. + delay: N, + }, +} + +#[derive(codec::Decode, codec::Encode, Debug, PartialEq)] +pub enum UncleEntryItem<BlockNumber, Hash, Author> { + InclusionHeight(BlockNumber), + Uncle(Hash, Option<Author>), +} + +const MAX_UNCLES: usize = 10; +pub struct MaxUncleEntryItems<T>(core::marker::PhantomData<T>); +impl<T: pallet_authorship::Config> Get<u32> for MaxUncleEntryItems<T> { + fn get() -> u32 { + // There can be at most `MAX_UNCLES` of `UncleEntryItem::Uncle` and + // one `UncleEntryItem::InclusionHeight` per one `UncleGenerations`, + // so this gives us `MAX_UNCLES + 1` entries per one generation. + // + // There can be one extra generation worth of uncles (e.g. even + // if `UncleGenerations` is zero the pallet will still hold + // one generation worth of uncles). + let max_generations: u32 = T::UncleGenerations::get().unique_saturated_into(); + (MAX_UNCLES as u32 + 1) * (max_generations + 1) + } +} diff --git a/pallets/dump-storage/src/runtime.rs b/pallets/dump-storage/src/runtime.rs new file mode 100644 index 000000000..d3932fba2 --- /dev/null +++ b/pallets/dump-storage/src/runtime.rs @@ -0,0 +1,39 @@ +use frame_support::metadata::{RuntimeMetadata, StorageEntryMetadata}; +use scale_info::form::PortableForm; +use sp_std::vec::Vec; + +pub fn extract_storage_entries_normalized( + meta: &RuntimeMetadata, + expected_pallets_len: usize, +) -> Result<Vec<StorageEntry>, Vec<u8>> { + if let RuntimeMetadata::V14(meta) = meta { + assert_eq!(expected_pallets_len, meta.pallets.len()); + Ok(meta + .pallets + .iter() + .filter(|p| p.storage.is_some()) + .flat_map(|p| { + p.storage + .clone() + .unwrap() + .entries + .iter() + .map(|e| (p.name.clone(), e.clone())) + .collect::<Vec<_>>() + }) + .map(|(pallet_name, metadata)| StorageEntry { + pallet_name: Vec::from(pallet_name.clone()), + storage_name: Vec::from(metadata.name.clone()), + metadata, + }) + .collect::<Vec<_>>()) + } else { + Err("Not a V14 RuntimeMetadata".into()) + } +} + +pub struct StorageEntry { + pub pallet_name: Vec<u8>, + pub storage_name: Vec<u8>, + pub metadata: StorageEntryMetadata<PortableForm>, +} diff --git a/pallets/dump-storage/tests/tests.rs b/pallets/dump-storage/tests/tests.rs new file mode 100644 index 000000000..729315655 --- /dev/null +++ b/pallets/dump-storage/tests/tests.rs @@ -0,0 +1,214 @@ +use pallet_authority_members::dump::KeysOfAuthorityMembers; +use pallet_certification::dump::{KeysOfCert, KeysOfSmithCert}; +use pallet_dump_storage::external_pallets::atomicswap::KeysOfAtomicSwap; +use pallet_dump_storage::external_pallets::authorship::KeysOfAuthorship; +use pallet_dump_storage::external_pallets::babe::KeysOfBabe; +use pallet_dump_storage::external_pallets::balances::KeysOfBalances; +use pallet_dump_storage::external_pallets::collective::KeysOfTechnicalCommittee; +use pallet_dump_storage::external_pallets::grandpa::KeysOfGrandpa; +use pallet_dump_storage::external_pallets::im_online::KeysOfImOnline; +use pallet_dump_storage::external_pallets::multisig::KeysOfMultisig; +use pallet_dump_storage::external_pallets::preimage::KeysOfPreimage; +use pallet_dump_storage::external_pallets::proxy::KeysOfProxy; +use pallet_dump_storage::external_pallets::scheduler::KeysOfScheduler; +use pallet_dump_storage::external_pallets::session::KeysOfSession; +use pallet_dump_storage::external_pallets::sudo::KeysOfSudo; +use pallet_dump_storage::external_pallets::system::KeysOfSystem; +use pallet_dump_storage::external_pallets::timestamp::KeysOfTimestamp; +use pallet_dump_storage::external_pallets::transaction_payment::KeysOfTransactionPayment; +use pallet_dump_storage::external_pallets::treasury::KeysOfTreasury; +use pallet_dump_storage::pallet_checker::PalletChecker; +use pallet_duniter_account::dump::KeysOfAccount; +use pallet_duniter_test_parameters::dump::KeysOfParameters; +use pallet_identity::dump::KeysOfIdentity; +use pallet_membership::dump::{KeysOfMembership, KeysOfSmithMembership}; +use pallet_offences::dump::KeysOfOffences; +use pallet_oneshot_account::dump::KeysOfOneshotAccount; +use pallet_provide_randomness::dump::KeysOfProvideRandomness; +use pallet_universal_dividend::dump::KeysOfUniversalDividend; +use sp_io::TestExternalities; + +#[test] +fn several_pallets() { + let mut externalities = TestExternalities::default(); + externalities.execute_with(|| { + PalletChecker::new(gdev_runtime::Runtime::metadata(), 35) + .add_pallet::<gdev_runtime::Runtime, KeysOfSystem>() + .add_pallet::<gdev_runtime::Runtime, KeysOfUniversalDividend>() + .add_pallet::<gdev_runtime::Runtime, KeysOfBalances>() + .add_pallet::<gdev_runtime::Runtime, KeysOfTimestamp>() + .add_pallet::<gdev_runtime::Runtime, KeysOfSudo>() + .add_pallet::<gdev_runtime::Runtime, KeysOfIdentity>() + .add_pallet::<gdev_runtime::Runtime, KeysOfMembership>() + .add_pallet::<gdev_runtime::Runtime, KeysOfSmithMembership>() + .add_pallet::<gdev_runtime::Runtime, KeysOfBabe>() + .add_pallet::<gdev_runtime::Runtime, KeysOfProvideRandomness>() + .add_pallet::<gdev_runtime::Runtime, KeysOfAuthorityMembers>() + .add_pallet::<gdev_runtime::Runtime, KeysOfSession>() + .add_pallet::<gdev_runtime::Runtime, KeysOfGrandpa>() + .add_pallet::<gdev_runtime::Runtime, KeysOfTreasury>() + .add_pallet::<gdev_runtime::Runtime, KeysOfTransactionPayment>() + .add_pallet::<gdev_runtime::Runtime, KeysOfAuthorship>() + .add_pallet::<gdev_runtime::Runtime, KeysOfProxy>() + .add_pallet::<gdev_runtime::Runtime, KeysOfImOnline>() + .add_pallet::<gdev_runtime::Runtime, KeysOfTechnicalCommittee>() + .add_pallet::<gdev_runtime::Runtime, KeysOfScheduler>() + .add_pallet::<gdev_runtime::Runtime, KeysOfPreimage>() + .add_pallet::<gdev_runtime::Runtime, KeysOfAtomicSwap>() + .add_pallet::<gdev_runtime::Runtime, KeysOfMultisig>() + .add_pallet::<gdev_runtime::Runtime, KeysOfCert>() + .add_pallet::<gdev_runtime::Runtime, KeysOfSmithCert>() + .add_pallet::<gdev_runtime::Runtime, KeysOfOffences>() + .add_pallet::<gdev_runtime::Runtime, KeysOfAccount>() + .add_pallet::<gdev_runtime::Runtime, KeysOfOneshotAccount>() + .add_pallet::<gdev_runtime::Runtime, KeysOfParameters>() + .verify( + " +Account.PendingNewAccounts = [] +Account.PendingRandomIdAssignments = [] +AtomicSwap.PendingSwaps = [] +AuthorityMembers.AccountIdOf = [] +AuthorityMembers.AuthoritiesCounter = 0 +AuthorityMembers.BlackList = [] +AuthorityMembers.IncomingAuthorities = [] +AuthorityMembers.Members = [] +AuthorityMembers.MembersExpireOn = [] +AuthorityMembers.MustRotateKeysBefore = [] +AuthorityMembers.OnlineAuthorities = [] +AuthorityMembers.OutgoingAuthorities = [] +Authorship.Author = None +Authorship.DidSetUncles = None +Authorship.Uncles = None +Babe.AuthorVrfRandomness = None +Babe.Authorities = WeakBoundedVec([], 32) +Babe.CurrentSlot = Slot(0) +Babe.EpochConfig = None +Babe.EpochIndex = 0 +Babe.EpochStart = None +Babe.GenesisSlot = Slot(0) +Babe.Initialized = None +Babe.Lateness = None +Babe.NextAuthorities = None +Babe.NextEpochConfig = None +Babe.NextRandomness = None +Babe.PendingEpochConfigChange = None +Babe.Randomness = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +Babe.SegmentIndex = None +Babe.UnderConstruction = [] +Balances.Account = [] +Balances.Locks = [] +Balances.Reserves = [] +Balances.StorageVersion = None +Balances.TotalIssuance = 0 +Cert.CertsByReceiver = [] +Cert.StorageCertsRemovableOn = [] +Cert.StorageIdtyCertMeta = [] +Grandpa.CurrentSetId = None +Grandpa.NextForced = None +Grandpa.PendingChange = None +Grandpa.SetIdSession = [] +Grandpa.Stalled = None +Grandpa.State = None +Identity.CounterForIdentities = None +Identity.Identities = [] +Identity.IdentitiesNames = [] +Identity.IdentitiesRemovableOn = [] +Identity.IdentityIndexOf = [] +Identity.NextIdtyIndex = None +ImOnline.AuthoredBlocks = [] +ImOnline.HeartbeatAfter = None +ImOnline.Keys = None +ImOnline.ReceivedHeartbeats = [] +Membership.CounterForMembership = None +Membership.Membership = [] +Membership.MembershipsExpireOn = [] +Membership.PendingMembership = [] +Membership.PendingMembershipsExpireOn = [] +Multisig.Multisigs = [] +Offences.ConcurrentReportsIndex = [] +Offences.Reports = [] +OneshotAccount.OneshotAccounts = [] +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 0, cert_period: 0, cert_max_by_issuer: 0, cert_min_received_cert_to_issue_cert: 0, cert_validity_period: 0, idty_confirm_period: 0, idty_creation_period: 0, membership_period: 0, pending_membership_period: 0, ud_creation_period: 0, ud_reeval_period: 0, smith_cert_period: 0, smith_cert_max_by_issuer: 0, smith_cert_min_received_cert_to_issue_cert: 0, smith_cert_validity_period: 0, smith_membership_period: 0, smith_pending_membership_period: 0, smith_wot_first_cert_issuable_on: 0, smith_wot_min_cert_for_membership: 0, wot_first_cert_issuable_on: 0, wot_min_cert_for_create_idty_right: 0, wot_min_cert_for_membership: 0 } +Preimage.PreimageFor = [] +Preimage.StatusFor = [] +ProvideRandomness.CounterForRequestsIds = None +ProvideRandomness.NexEpochHookIn = None +ProvideRandomness.RequestIdProvider = None +ProvideRandomness.RequestsIds = [] +ProvideRandomness.RequestsReadyAtEpoch = [] +ProvideRandomness.RequestsReadyAtNextBlock = [] +Proxy.Announcements = [] +Proxy.Proxies = [] +Scheduler.Agenda = [] +Scheduler.IncompleteSince = None +Scheduler.Lookup = [] +Session.CurrentIndex = 0 +Session.DisabledValidators = [] +Session.KeyOwner = [] +Session.NextKeys = [] +Session.QueuedChanged = false +Session.QueuedKeys = [] +Session.Validators = [] +SmithCert.CertsByReceiver = [] +SmithCert.StorageCertsRemovableOn = [] +SmithCert.StorageIdtyCertMeta = [] +SmithMembership.CounterForMembership = None +SmithMembership.Membership = [] +SmithMembership.MembershipsExpireOn = [] +SmithMembership.PendingMembership = [] +SmithMembership.PendingMembershipsExpireOn = [] +Sudo.Key = None +System.Account = [] +System.AllExtrinsicsLen = None +System.BlockHash = [] +System.BlockWeight = None +System.Digest = None +System.EventCount = None +System.EventTopics = [] +System.Events = None +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [] +System.LastRuntimeUpgrade = None +System.Number = None +System.ParentHash = None +System.UpgradedToTripleRefCount = None +System.UpgradedToU32RefCount = None +TechnicalCommittee.Members = [] +TechnicalCommittee.Prime = None +TechnicalCommittee.ProposalCount = 0 +TechnicalCommittee.ProposalOf = [] +TechnicalCommittee.Proposals = BoundedVec([], 20) +TechnicalCommittee.Voting = [] +Timestamp.DidUpdate = None +Timestamp.Now = 0 +TransactionPayment.NextFeeMultiplier = FixedU128(1.000000000000000000) +TransactionPayment.StorageVersion = None +Treasury.Approvals = BoundedVec([], 100) +Treasury.ProposalCount = 0 +Treasury.Proposals = [] +UniversalDividend.CurrentUd = 0 +UniversalDividend.CurrentUdIndex = 1 +UniversalDividend.MonetaryMass = 0 +UniversalDividend.NextReeval = None +UniversalDividend.NextUd = None +UniversalDividend.PastReevals = BoundedVec([], 160) +", + ); + }); +} + +#[test] +fn test_pallet_v2() { + let mut externalities = TestExternalities::default(); + externalities.execute_with(|| { + PalletChecker::new(gdev_runtime::Runtime::metadata(), 35) + .add_pallet::<gdev_runtime::Runtime, KeysOfProxy>() + .extract(|extracted| { + assert_eq!( + extracted, + "\nProxy.Announcements = []\nProxy.Proxies = []\n" + ) + }); + }); +} diff --git a/pallets/duniter-account/Cargo.toml b/pallets/duniter-account/Cargo.toml index 1631473ec..a0c6fa8b5 100644 --- a/pallets/duniter-account/Cargo.toml +++ b/pallets/duniter-account/Cargo.toml @@ -19,6 +19,7 @@ std = [ 'frame-support/std', 'frame-system/std', 'frame-benchmarking/std', + 'pallet-dump-storage/std', 'pallet-balances/std', 'pallet-provide-randomness/std', 'pallet-treasury/std', @@ -33,6 +34,7 @@ try-runtime = ['frame-support/try-runtime'] [dependencies] # local pallet-provide-randomness = { path = "../provide-randomness", default-features = false } +pallet-dump-storage = { path = "../dump-storage", default-features = false } # crates.io codec = { package = 'parity-scale-codec', version = "3.1.5", default-features = false, features = ["derive"] } diff --git a/pallets/duniter-account/src/dump.rs b/pallets/duniter-account/src/dump.rs new file mode 100644 index 000000000..d41731a7e --- /dev/null +++ b/pallets/duniter-account/src/dump.rs @@ -0,0 +1,30 @@ +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::external_pallets::to_kv; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfAccount { + PendingRandomIdAssignments, + PendingNewAccounts, +} + +impl<T> PalletStorageMapper<T> for KeysOfAccount +where + T: crate::Config, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfAccount::PendingRandomIdAssignments => { + to_kv(crate::PendingRandomIdAssignments::<T>::iter().collect()) + } + KeysOfAccount::PendingNewAccounts => { + to_kv(crate::PendingNewAccounts::<T>::iter().collect()) + } + } + } +} diff --git a/pallets/duniter-account/src/lib.rs b/pallets/duniter-account/src/lib.rs index 391efe709..2705d6d6e 100644 --- a/pallets/duniter-account/src/lib.rs +++ b/pallets/duniter-account/src/lib.rs @@ -19,6 +19,7 @@ #[cfg(feature = "runtime-benchmarks")] mod benchmarking; +pub mod dump; mod types; pub mod weights; diff --git a/pallets/duniter-test-parameters/Cargo.toml b/pallets/duniter-test-parameters/Cargo.toml index 7fef56df4..0cb882179 100644 --- a/pallets/duniter-test-parameters/Cargo.toml +++ b/pallets/duniter-test-parameters/Cargo.toml @@ -16,6 +16,7 @@ std = [ 'frame-support/std', 'frame-system/std', 'frame-benchmarking/std', + 'pallet-dump-storage/std', 'serde', "sp-io/std", "sp-std/std", @@ -24,6 +25,7 @@ try-runtime = ['frame-support/try-runtime'] [dependencies] pallet-duniter-test-parameters-macro = { path = "macro" } +pallet-dump-storage = { path = "../dump-storage", default-features = false } serde = { version = "1.0.101", features = ["derive"], optional = true } # substrate diff --git a/pallets/duniter-test-parameters/src/dump.rs b/pallets/duniter-test-parameters/src/dump.rs new file mode 100644 index 000000000..212fad3a3 --- /dev/null +++ b/pallets/duniter-test-parameters/src/dump.rs @@ -0,0 +1,27 @@ +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::checker::StorageRead::Value; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfParameters { + ParametersStorage, +} + +impl<T> PalletStorageMapper<T> for KeysOfParameters +where + T: crate::Config, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfParameters::ParametersStorage => { + Value(Box::new(crate::ParametersStorage::<T>::get())) + } + } + } +} diff --git a/pallets/duniter-test-parameters/src/lib.rs b/pallets/duniter-test-parameters/src/lib.rs index cd688fd91..a78a6acda 100644 --- a/pallets/duniter-test-parameters/src/lib.rs +++ b/pallets/duniter-test-parameters/src/lib.rs @@ -16,6 +16,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +pub mod dump; + pub use pallet::*; pub use types::*; diff --git a/pallets/identity/Cargo.toml b/pallets/identity/Cargo.toml index 8d7f3a9f8..db198ed75 100644 --- a/pallets/identity/Cargo.toml +++ b/pallets/identity/Cargo.toml @@ -17,6 +17,7 @@ std = [ 'frame-support/std', 'frame-system/std', 'frame-benchmarking/std', + 'pallet-dump-storage/std', 'serde', 'sp-core/std', 'sp-runtime/std', @@ -28,6 +29,7 @@ try-runtime = ['frame-support/try-runtime'] targets = ['x86_64-unknown-linux-gnu'] [dependencies] +pallet-dump-storage = { path = "../dump-storage", default-features = false } # crates.io codec = { package = 'parity-scale-codec', version = "3.1.5", features = ['derive'], default-features = false } diff --git a/pallets/identity/src/dump.rs b/pallets/identity/src/dump.rs new file mode 100644 index 000000000..02a99ad89 --- /dev/null +++ b/pallets/identity/src/dump.rs @@ -0,0 +1,46 @@ +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::external_pallets::to_kv; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfIdentity { + CounterForIdentities, + NextIdtyIndex, + IdentitiesNames, + Identities, + IdentityIndexOf, + IdentitiesRemovableOn, +} + +impl<T> PalletStorageMapper<T> for KeysOfIdentity +where + T: crate::Config, + <T as crate::Config>::IdtyData: sp_std::fmt::Debug, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfIdentity::CounterForIdentities => { + <KeysOfIdentity as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfIdentity::NextIdtyIndex => { + // Box::new(crate::NextIdtyIndex::<T>::get()) + <KeysOfIdentity as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfIdentity::IdentitiesNames => to_kv( + crate::IdentitiesNames::<T>::iter() + .map(|(k, v)| (NoStdString::new(format_args!("{:?}", k.0)).into_inner(), v)) + .collect(), + ), + KeysOfIdentity::Identities => to_kv(crate::Identities::<T>::iter().collect()), + KeysOfIdentity::IdentityIndexOf => to_kv(crate::IdentityIndexOf::<T>::iter().collect()), + KeysOfIdentity::IdentitiesRemovableOn => { + to_kv(crate::IdentitiesRemovableOn::<T>::iter().collect()) + } + } + } +} diff --git a/pallets/identity/src/lib.rs b/pallets/identity/src/lib.rs index 7ead24e14..5eaa2a381 100644 --- a/pallets/identity/src/lib.rs +++ b/pallets/identity/src/lib.rs @@ -29,6 +29,7 @@ mod tests; #[cfg(feature = "runtime-benchmarks")] pub mod benchmarking; +pub mod dump; pub use pallet::*; pub use types::*; diff --git a/pallets/identity/src/types.rs b/pallets/identity/src/types.rs index 1d633e293..15925e9a8 100644 --- a/pallets/identity/src/types.rs +++ b/pallets/identity/src/types.rs @@ -95,8 +95,8 @@ impl Default for IdtyStatus { } /// identity value (as in key/value) -#[cfg_attr(feature = "std", derive(Debug, Deserialize, Serialize))] -#[derive(Encode, Decode, Clone, PartialEq, Eq, TypeInfo)] +#[cfg_attr(feature = "std", derive(Deserialize, Serialize))] +#[derive(Encode, Decode, Clone, PartialEq, Eq, TypeInfo, sp_std::fmt::Debug)] pub struct IdtyValue<BlockNumber, AccountId, IdtyData> { /// data shared between pallets defined by runtime /// only contains first_eligible_ud in our case diff --git a/pallets/membership/Cargo.toml b/pallets/membership/Cargo.toml index a0beee752..7d34b6a73 100644 --- a/pallets/membership/Cargo.toml +++ b/pallets/membership/Cargo.toml @@ -19,6 +19,7 @@ std = [ 'frame-support/std', 'frame-system/std', 'frame-benchmarking/std', + 'pallet-dump-storage/std', 'serde', 'sp-core/std', 'sp-membership/std', @@ -29,6 +30,7 @@ try-runtime = ['frame-support/try-runtime'] [dependencies] sp-membership = { path = "../../primitives/membership", default-features = false } +pallet-dump-storage = { path = "../dump-storage", default-features = false } # substrate scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } diff --git a/pallets/membership/src/dump.rs b/pallets/membership/src/dump.rs new file mode 100644 index 000000000..d8ea2dd45 --- /dev/null +++ b/pallets/membership/src/dump.rs @@ -0,0 +1,77 @@ +use frame_support::instances::{Instance1, Instance2}; +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::external_pallets::to_kv; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfMembership { + CounterForMembership, + Membership, + MembershipsExpireOn, + PendingMembership, + PendingMembershipsExpireOn, +} + +impl<T> PalletStorageMapper<T> for KeysOfMembership +where + T: crate::Config<Instance1>, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfMembership::CounterForMembership => { + <KeysOfMembership as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfMembership::Membership => { + to_kv(crate::Membership::<T, Instance1>::iter().collect()) + } + KeysOfMembership::MembershipsExpireOn => { + to_kv(crate::MembershipsExpireOn::<T, Instance1>::iter().collect()) + } + KeysOfMembership::PendingMembership => { + to_kv(crate::PendingMembership::<T, Instance1>::iter().collect()) + } + KeysOfMembership::PendingMembershipsExpireOn => { + to_kv(crate::PendingMembershipsExpireOn::<T, Instance1>::iter().collect()) + } + } + } +} + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfSmithMembership { + CounterForMembership, + Membership, + MembershipsExpireOn, + PendingMembership, + PendingMembershipsExpireOn, +} + +impl<T> PalletStorageMapper<T> for KeysOfSmithMembership +where + T: crate::Config<Instance2>, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfSmithMembership::CounterForMembership => { + <KeysOfSmithMembership as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfSmithMembership::Membership => { + to_kv(crate::Membership::<T, Instance2>::iter().collect()) + } + KeysOfSmithMembership::MembershipsExpireOn => { + to_kv(crate::MembershipsExpireOn::<T, Instance2>::iter().collect()) + } + KeysOfSmithMembership::PendingMembership => { + to_kv(crate::PendingMembership::<T, Instance2>::iter().collect()) + } + KeysOfSmithMembership::PendingMembershipsExpireOn => { + to_kv(crate::PendingMembershipsExpireOn::<T, Instance2>::iter().collect()) + } + } + } +} diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs index b998ce5b5..866adb060 100644 --- a/pallets/membership/src/lib.rs +++ b/pallets/membership/src/lib.rs @@ -26,6 +26,7 @@ mod tests; #[cfg(feature = "runtime-benchmarks")] mod benchmarking; +pub mod dump; pub mod weights; pub use pallet::*; diff --git a/pallets/offences/Cargo.toml b/pallets/offences/Cargo.toml index 560b22f5b..8b8c5ff28 100644 --- a/pallets/offences/Cargo.toml +++ b/pallets/offences/Cargo.toml @@ -13,10 +13,16 @@ readme = "README.md" targets = ["x86_64-unknown-linux-gnu"] [dependencies] +# local +pallet-dump-storage = { path = "../dump-storage", default-features = false } + +# other codec = { package = "parity-scale-codec", version = "3.1.5", features = ["derive"], default-features = false } log = { version = "0.4.17", default-features = false } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } serde = { version = "1.0.101", default-features = false, optional = true } + +# substrate frame-support = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } frame-system = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } pallet-balances = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', default-features = false } @@ -35,6 +41,7 @@ std = [ "frame-support/std", "frame-system/std", "log/std", + 'pallet-dump-storage/std', "pallet-balances/std", "scale-info/std", "serde", diff --git a/pallets/offences/src/dump.rs b/pallets/offences/src/dump.rs new file mode 100644 index 000000000..c4bc90a7f --- /dev/null +++ b/pallets/offences/src/dump.rs @@ -0,0 +1,30 @@ +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::external_pallets::to_kv; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfOffences { + Reports, + ConcurrentReportsIndex, +} + +impl<T> PalletStorageMapper<T> for KeysOfOffences +where + T: crate::Config, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfOffences::Reports => to_kv(crate::Reports::<T>::iter().collect()), + KeysOfOffences::ConcurrentReportsIndex => to_kv( + crate::ConcurrentReportsIndex::<T>::iter() + .map(|kv| <KeysOfOffences as PalletStorageMapper<T>>::to_simple_map(self, kv)) + .collect(), + ), + } + } +} diff --git a/pallets/offences/src/lib.rs b/pallets/offences/src/lib.rs index 02316c4f6..54c395747 100644 --- a/pallets/offences/src/lib.rs +++ b/pallets/offences/src/lib.rs @@ -32,7 +32,9 @@ use sp_std::prelude::*; pub use pallet::*; +pub mod dump; pub mod traits; + use self::traits::*; /// A binary blob which represents a SCALE codec-encoded `O::TimeSlot`. diff --git a/pallets/oneshot-account/Cargo.toml b/pallets/oneshot-account/Cargo.toml index f17a8e1d2..ae18857a8 100644 --- a/pallets/oneshot-account/Cargo.toml +++ b/pallets/oneshot-account/Cargo.toml @@ -20,6 +20,7 @@ std = [ 'frame-support/std', 'frame-system/std', 'frame-benchmarking/std', + 'pallet-dump-storage/std', 'sp-core/std', 'sp-io/std', 'sp-runtime/std', @@ -28,6 +29,9 @@ std = [ try-runtime = ['frame-support/try-runtime'] [dependencies] +# local +pallet-dump-storage = { path = "../dump-storage", default-features = false } + # crates.io codec = { package = 'parity-scale-codec', version = "3.1.5", default-features = false, features = ["derive"] } log = { version = "0.4.14", default-features = false } diff --git a/pallets/oneshot-account/src/dump.rs b/pallets/oneshot-account/src/dump.rs new file mode 100644 index 000000000..d1b66048c --- /dev/null +++ b/pallets/oneshot-account/src/dump.rs @@ -0,0 +1,26 @@ +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::external_pallets::to_kv; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfOneshotAccount { + OneshotAccounts, +} + +impl<T> PalletStorageMapper<T> for KeysOfOneshotAccount +where + T: crate::Config, +{ + fn to_value(&self) -> StorageRead { + match self { + KeysOfOneshotAccount::OneshotAccounts => { + to_kv(crate::OneshotAccounts::<T>::iter().collect()) + } + } + } +} diff --git a/pallets/oneshot-account/src/lib.rs b/pallets/oneshot-account/src/lib.rs index 91d782b56..3fcfe569c 100644 --- a/pallets/oneshot-account/src/lib.rs +++ b/pallets/oneshot-account/src/lib.rs @@ -18,6 +18,7 @@ mod benchmarking; mod check_nonce; +pub mod dump; #[cfg(test)] mod mock; mod types; diff --git a/pallets/provide-randomness/Cargo.toml b/pallets/provide-randomness/Cargo.toml index e4d56db8b..e623a01e8 100644 --- a/pallets/provide-randomness/Cargo.toml +++ b/pallets/provide-randomness/Cargo.toml @@ -19,6 +19,7 @@ std = [ 'frame-support/std', 'frame-system/std', 'frame-benchmarking/std', + 'pallet-dump-storage/std', "sp-core/std", "sp-io/std", "sp-std/std", @@ -26,6 +27,7 @@ std = [ try-runtime = ['frame-support/try-runtime'] [dependencies] +pallet-dump-storage = { path = "../dump-storage", default-features = false } # substrate scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } diff --git a/pallets/provide-randomness/src/dump.rs b/pallets/provide-randomness/src/dump.rs new file mode 100644 index 000000000..2c2234ecc --- /dev/null +++ b/pallets/provide-randomness/src/dump.rs @@ -0,0 +1,48 @@ +use crate::RequestId; +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::checker::StorageRead::Value; +use pallet_dump_storage::external_pallets::to_kv; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfProvideRandomness { + NexEpochHookIn, + RequestsReadyAtEpoch, + RequestsIds, + CounterForRequestsIds, + RequestIdProvider, + RequestsReadyAtNextBlock, +} + +impl<T: crate::Config> PalletStorageMapper<T> for KeysOfProvideRandomness { + fn to_value(&self) -> StorageRead { + match self { + KeysOfProvideRandomness::NexEpochHookIn => { + // Box::new(crate::NexEpochHookIn::<T>::get()) + <KeysOfProvideRandomness as PalletStorageMapper<T>>::read_storage::<u8>(self) + } + KeysOfProvideRandomness::CounterForRequestsIds => { + <KeysOfProvideRandomness as PalletStorageMapper<T>>::read_storage::<u32>(self) + } + KeysOfProvideRandomness::RequestIdProvider => { + // Box::new(crate::RequestIdProvider::<T>::get()) + <KeysOfProvideRandomness as PalletStorageMapper<T>>::read_storage::<RequestId>(self) + } + KeysOfProvideRandomness::RequestsReadyAtNextBlock => { + Value(Box::new(crate::RequestsReadyAtNextBlock::<T>::get())) + } + KeysOfProvideRandomness::RequestsReadyAtEpoch => { + to_kv(crate::RequestsReadyAtEpoch::<T>::iter().collect()) + } + KeysOfProvideRandomness::RequestsIds => { + to_kv(crate::RequestsIds::<T>::iter().collect()) + } + } + } +} diff --git a/pallets/provide-randomness/src/lib.rs b/pallets/provide-randomness/src/lib.rs index bf851ebf1..c63df9b6b 100644 --- a/pallets/provide-randomness/src/lib.rs +++ b/pallets/provide-randomness/src/lib.rs @@ -20,6 +20,7 @@ #[cfg(feature = "runtime-benchmarks")] mod benchmarking; +pub mod dump; mod types; pub mod weights; diff --git a/pallets/universal-dividend/Cargo.toml b/pallets/universal-dividend/Cargo.toml index 91eb775c6..ec30a1fbb 100644 --- a/pallets/universal-dividend/Cargo.toml +++ b/pallets/universal-dividend/Cargo.toml @@ -24,6 +24,7 @@ std = [ "sp-arithmetic/std", "sp-io/std", "sp-std/std", + "pallet-dump-storage/std", ] try-runtime = ['frame-support/try-runtime'] @@ -32,6 +33,10 @@ try-runtime = ['frame-support/try-runtime'] codec = { package = 'parity-scale-codec', version = "3.1.5", default-features = false, features = ["derive", "max-encoded-len"] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } serde = { version = "1.0.101", features = ["derive"], optional = true } +#dc-dump-pallet = { path = "../../client/dump-pallet", default-features = false } +pallet-dump-storage = { path = "../dump-storage", default-features = false } +#strum = "0.25.0" +#strum_macros = "0.25.0" # substrate bencharks frame-benchmarking = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32', optional = true, default-features = false } diff --git a/pallets/universal-dividend/src/dump.rs b/pallets/universal-dividend/src/dump.rs new file mode 100644 index 000000000..dd83713ba --- /dev/null +++ b/pallets/universal-dividend/src/dump.rs @@ -0,0 +1,38 @@ +use pallet_dump_storage::checker::StorageRead; +use pallet_dump_storage::checker::StorageRead::{Unhandled, Value}; +use pallet_dump_storage::no_std::NoStdString; +use pallet_dump_storage::pallet::DumpPallet; +use pallet_dump_storage::pallets::{PalletStorage, PalletStorageMapper}; +use pallet_dump_storage::EnumFromStr; +use pallet_dump_storage::EnumPalletStorage; +use sp_std::boxed::Box; +use sp_std::str::FromStr; + +#[derive(Debug, EnumFromStr, EnumPalletStorage)] +pub enum KeysOfUniversalDividend { + CurrentUd, + CurrentUdIndex, + MonetaryMass, + NextReeval, + PastReevals, + NextUd, + TestMembers, +} + +impl<T: crate::Config> PalletStorageMapper<T> for KeysOfUniversalDividend { + fn to_value(&self) -> StorageRead { + match self { + KeysOfUniversalDividend::CurrentUd => Value(Box::new(crate::CurrentUd::<T>::get())), + KeysOfUniversalDividend::CurrentUdIndex => { + Value(Box::new(crate::CurrentUdIndex::<T>::get())) + } + KeysOfUniversalDividend::MonetaryMass => { + Value(Box::new(crate::MonetaryMass::<T>::get())) + } + KeysOfUniversalDividend::NextReeval => Value(Box::new(crate::NextReeval::<T>::get())), + KeysOfUniversalDividend::PastReevals => Value(Box::new(crate::PastReevals::<T>::get())), + KeysOfUniversalDividend::NextUd => Value(Box::new(crate::NextUd::<T>::get())), + KeysOfUniversalDividend::TestMembers => Unhandled, + } + } +} diff --git a/pallets/universal-dividend/src/lib.rs b/pallets/universal-dividend/src/lib.rs index cb3dc5128..5bbb5750e 100644 --- a/pallets/universal-dividend/src/lib.rs +++ b/pallets/universal-dividend/src/lib.rs @@ -18,6 +18,7 @@ mod benchmarking; mod compute_claim_uds; +pub mod dump; #[cfg(test)] mod mock; #[cfg(test)] diff --git a/pallets/universal-dividend/src/tests.rs b/pallets/universal-dividend/src/tests.rs index 3240e9b5f..e42529530 100644 --- a/pallets/universal-dividend/src/tests.rs +++ b/pallets/universal-dividend/src/tests.rs @@ -16,6 +16,7 @@ use crate::mock::*; use frame_support::{assert_err, assert_ok, assert_storage_noop}; +use pallet_dump_storage::pallet_checker::PalletChecker; #[test] fn test_claim_uds() { @@ -132,6 +133,50 @@ fn test_claim_uds() { who: 3, })); assert_eq!(Balances::free_balance(3), 8557); + PalletChecker::new(Test::metadata(), 4) + .add_pallet::<Test, crate::dump::KeysOfUniversalDividend>() + .add_pallet::<Test, pallet_dump_storage::external_pallets::balances::KeysOfBalances>() + .add_pallet::<Test, pallet_dump_storage::external_pallets::system::KeysOfSystem>() + .add_pallet::<Test, pallet_dump_storage::external_pallets::timestamp::KeysOfTimestamp>() + .verify(" +Balances.Account = [] +Balances.Locks = [] +Balances.Reserves = [] +Balances.StorageVersion = Some(V2) +Balances.TotalIssuance = 12557 +System.Account = [ + 1 = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { free: 2000, reserved: 0, misc_frozen: 0, fee_frozen: 0 } } + 2 = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { free: 2000, reserved: 0, misc_frozen: 0, fee_frozen: 0 } } + 3 = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { free: 8557, reserved: 0, misc_frozen: 0, fee_frozen: 0 } } +] +System.AllExtrinsicsLen = None +System.BlockHash = [ + 0 = 0x4545454545454545454545454545454545454545454545454545454545454545 +] +System.BlockWeight = None +System.Digest = None +System.EventCount = Some(4) +System.EventTopics = [] +System.Events = Some([EventRecord { phase: Phase::Initialization, event: RuntimeEvent::UniversalDividend(Event::UdReevalued { new_ud_amount: 1257, monetary_mass: 21900, members_count: 3 }), topics: [] }, EventRecord { phase: Phase::Initialization, event: RuntimeEvent::UniversalDividend(Event::NewUdCreated { amount: 1257, index: 8, monetary_mass: 25671, members_count: 3 }), topics: [] }, EventRecord { phase: Phase::Initialization, event: RuntimeEvent::Balances(Event::Deposit { who: 3, amount: 4482 }), topics: [] }, EventRecord { phase: Phase::Initialization, event: RuntimeEvent::UniversalDividend(Event::UdsClaimed { count: 4, total: 4482, who: 3 }), topics: [] }]) +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [] +System.LastRuntimeUpgrade = Some(LastRuntimeUpgradeInfo { spec_version: 0, spec_name: RuntimeString::Owned(\"\") }) +System.Number = Some(16) +System.ParentHash = Some(0x4545454545454545454545454545454545454545454545454545454545454545) +System.UpgradedToTripleRefCount = Some(true) +System.UpgradedToU32RefCount = Some(true) +Timestamp.DidUpdate = Some(true) +Timestamp.Now = 96000 +UniversalDividend.CurrentUd = 1257 +UniversalDividend.CurrentUdIndex = 9 +UniversalDividend.MonetaryMass = 25671 +UniversalDividend.NextReeval = Some(144000) +UniversalDividend.NextUd = Some(108000) +UniversalDividend.PastReevals = BoundedVec([(4, 1075), (8, 1257)], 2) +UniversalDividend.TestMembers = <unreadable> +", + ); }); } @@ -228,6 +273,22 @@ fn test_claim_uds_using_genesis_timestamp() { // At block #11, the first reevaluated UD should be created run_to_block(11); assert_eq!(UniversalDividend::total_money_created(), 15_300); + pallet_dump_storage::pallet_checker::PalletChecker::test_pallet::< + Test, + crate::dump::KeysOfUniversalDividend, + >( + Test::metadata(), + 4, + " +UniversalDividend.CurrentUd = 1100 +UniversalDividend.CurrentUdIndex = 6 +UniversalDividend.MonetaryMass = 15300 +UniversalDividend.NextReeval = Some(114000) +UniversalDividend.NextUd = Some(78000) +UniversalDividend.PastReevals = BoundedVec([(1, 1000), (5, 1100)], 2) +UniversalDividend.TestMembers = <unreadable> +", + ); }); } @@ -347,5 +408,21 @@ fn test_ud_creation() { }, )); assert_eq!(UniversalDividend::total_money_created(), 25_671); + pallet_dump_storage::pallet_checker::PalletChecker::test_pallet::< + Test, + crate::dump::KeysOfUniversalDividend, + >( + Test::metadata(), + 4, + " +UniversalDividend.CurrentUd = 1257 +UniversalDividend.CurrentUdIndex = 9 +UniversalDividend.MonetaryMass = 25671 +UniversalDividend.NextReeval = Some(144000) +UniversalDividend.NextUd = Some(108000) +UniversalDividend.PastReevals = BoundedVec([(4, 1075), (8, 1257)], 2) +UniversalDividend.TestMembers = <unreadable> +", + ); }); } diff --git a/runtime/gdev/Cargo.toml b/runtime/gdev/Cargo.toml index b5c742c89..6b09d9219 100644 --- a/runtime/gdev/Cargo.toml +++ b/runtime/gdev/Cargo.toml @@ -129,6 +129,7 @@ try-runtime = [ [dev-dependencies] sp-consensus-slots = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } +#dc-dump = { path = "../../client/dump" } sp-consensus-vrf = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } sp-finality-grandpa = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } sp-io = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' } diff --git a/runtime/gdev/tests/integration_tests.rs b/runtime/gdev/tests/integration_tests.rs index 0bb497e1e..fdc0b0698 100644 --- a/runtime/gdev/tests/integration_tests.rs +++ b/runtime/gdev/tests/integration_tests.rs @@ -17,6 +17,7 @@ mod common; use common::*; +// use dc_dump::storage_checker::StorageChecker; use frame_support::traits::{Get, PalletInfo, StorageInfo, StorageInfoTrait}; use frame_support::{assert_noop, assert_ok}; use frame_support::{StorageHasher, Twox128}; @@ -29,6 +30,36 @@ fn verify_treasury_account() { // println!("{}", Treasury::account_id()); } +// #[test] +// fn values_storage_with_run_to_block() { +// let mut externalities = ExtBuilder::new(1, 3, 4).build(); +// let storage_checker = StorageChecker::<Runtime>::new_default(|| Runtime::metadata().1, 35); +// externalities.execute_with(|| { +// run_to_block(2); +// storage_checker.test_storage(129, "values_storage_with_run_to_block.b.2.expected.txt"); +// run_to_block(3); +// storage_checker.test_storage(129, "values_storage_with_run_to_block.b.3.expected.txt"); +// +// // alice create identity for Eve +// assert_ok!(Identity::create_identity( +// frame_system::RawOrigin::Signed(AccountKeyring::Alice.to_account_id()).into(), +// AccountKeyring::Eve.to_account_id(), +// )); +// run_to_block(4); +// storage_checker.test_storage(129, "values_storage_with_run_to_block.b.4.expected.txt"); +// +// // eve confirms her identity +// assert_ok!(Identity::confirm_identity( +// frame_system::RawOrigin::Signed(AccountKeyring::Eve.to_account_id()).into(), +// "Eeeeeveeeee".into(), +// )); +// +// run_to_block(5); +// storage_checker.test_storage(129, "values_storage_with_run_to_block.b.5.expected.txt"); +// }); +// storage_checker.test_well_known_keys(&mut externalities); +// } + #[test] fn verify_pallet_prefixes() { let prefix = |pallet_name, storage_name| { diff --git a/runtime/gdev/tests/values_storage_with_run_to_block.b.2.expected.txt b/runtime/gdev/tests/values_storage_with_run_to_block.b.2.expected.txt new file mode 100644 index 000000000..e5340bc78 --- /dev/null +++ b/runtime/gdev/tests/values_storage_with_run_to_block.b.2.expected.txt @@ -0,0 +1,245 @@ +Account.PendingNewAccounts = [ +] +Account.PendingRandomIdAssignments = [ +] +AtomicSwap.PendingSwaps = [ +] +AuthorityMembers.AccountIdOf = [ +] +AuthorityMembers.AuthoritiesCounter = 1 +AuthorityMembers.BlackList = [] +AuthorityMembers.IncomingAuthorities = [] +AuthorityMembers.Members = [ + 1 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) } + 2 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) } + 3 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) } +] +AuthorityMembers.MustRotateKeysBefore = [ + 1500 = [1] +] +AuthorityMembers.OnlineAuthorities = [1] +AuthorityMembers.OutgoingAuthorities = [] +AuthorityMembersMembers.ExpireOn = [ +] +Authorship.Author = None +Authorship.DidSetUncles = Some(false) +Authorship.Uncles = Some(BoundedVec([], 11)) +Babe.AuthorVrfRandomness = None +Babe.Authorities = WeakBoundedVec([(Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), 1)], 32) +Babe.CurrentSlot = Slot(2) +Babe.EpochConfig = None +Babe.EpochIndex = 0 +Babe.EpochStart = None +Babe.GenesisSlot = Slot(0) +Babe.Initialized = Some(None) +Babe.Lateness = None +Babe.NextAuthorities = Some(WeakBoundedVec([(Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), 1)], 32)) +Babe.NextEpochConfig = None +Babe.NextRandomness = None +Babe.PendingEpochConfigChange = None +Babe.Randomness = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +Babe.SegmentIndex = None +Babe.UnderConstruction = [ +] +Balances.Account = [ +] +Balances.Locks = [ +] +Balances.Reserves = [ +] +Balances.StorageVersion = None +Balances.TotalIssuance = 0 +Cert.CertsByReceiver = [ + 1 = [(2, 10000), (3, 10000), (4, 10000)] + 2 = [(1, 10000), (3, 10000), (4, 10000)] + 3 = [(1, 10000), (2, 10000), (4, 10000)] + 4 = [(1, 10000), (2, 10000), (3, 10000)] +] +Cert.StorageCertsRemovableOn = [ + 10000 = [(2, 1), (3, 1), (4, 1), (1, 2), (3, 2), (4, 2), (1, 3), (2, 3), (4, 3), (1, 4), (2, 4), (3, 4)] +] +Cert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 2 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 3 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 4 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } +] +Grandpa.CurrentSetId = None +Grandpa.NextForced = None +Grandpa.PendingChange = None +Grandpa.SetIdSession = [ + 0 = 0 +] +Grandpa.Stalled = None +Grandpa.State = None +Identity.CounterForIdentities = Some(4) +Identity.Identities = [ + 1 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...), removable_on: 0, status: IdtyStatus::Validated } + 2 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...), removable_on: 0, status: IdtyStatus::Validated } + 3 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...), removable_on: 0, status: IdtyStatus::Validated } + 4 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...), removable_on: 0, status: IdtyStatus::Validated } +] +Identity.IdentitiesNames = [ + "Alice" = () + "Bob" = () + "Charlie" = () + "Dave" = () +] +Identity.IdentitiesRemovableOn = [ +] +Identity.IdentityIndexOf = [ + 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...) = 4 + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = 2 + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = 3 + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = 1 +] +Identity.NextIdtyIndex = Some(5) +ImOnline.AuthoredBlocks = [ +] +ImOnline.HeartbeatAfter = None +ImOnline.Keys = Some(WeakBoundedVec([Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...))], 32)) +ImOnline.ReceivedHeartbeats = [ +] +Membership.CounterForMembership = Some(4) +Membership.Membership = [ + 1 = MembershipData { expire_on: 100 } + 2 = MembershipData { expire_on: 100 } + 3 = MembershipData { expire_on: 100 } + 4 = MembershipData { expire_on: 100 } +] +Membership.MembershipsExpireOn = [ + 100 = [1, 2, 3, 4] +] +Membership.PendingMembership = [ +] +Membership.PendingMembershipsExpireOn = [ +] +Multisig.Multisigs = [ +] +Offences.ConcurrentReportsIndex = [ +] +Offences.Reports = [ +] +OneshotAccount.OneshotAccounts = [ +] +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 25, cert_period: 15, cert_max_by_issuer: 10, cert_min_received_cert_to_issue_cert: 2, cert_validity_period: 10000, idty_confirm_period: 40, idty_creation_period: 50, membership_period: 100, pending_membership_period: 500, ud_creation_period: 60000, ud_reeval_period: 1200000, smith_cert_period: 15, smith_cert_max_by_issuer: 8, smith_cert_min_received_cert_to_issue_cert: 2, smith_cert_validity_period: 1000, smith_membership_period: 1000, smith_pending_membership_period: 500, smith_wot_first_cert_issuable_on: 20, smith_wot_min_cert_for_membership: 2, wot_first_cert_issuable_on: 20, wot_min_cert_for_create_idty_right: 2, wot_min_cert_for_membership: 2 } +Preimage.PreimageFor = [ +] +Preimage.StatusFor = [ +] +ProvideRandomness.CounterForRequestsIds = None +ProvideRandomness.NexEpochHookIn = Some(5) +ProvideRandomness.RequestIdProvider = None +ProvideRandomness.RequestsIds = [ +] +ProvideRandomness.RequestsReadyAtEpoch = [ +] +ProvideRandomness.RequestsReadyAtNextBlock = [] +Proxy.Announcements = [ +] +Proxy.Proxies = [ +] +Scheduler.Agenda = [ +] +Scheduler.IncompleteSince = None +Scheduler.Lookup = [ +] +Session.CurrentIndex = 0 +Session.DisabledValidators = [] +Session.KeyOwner = [ + (KeyTypeId([103, 114, 97, 110]), [136, 220, 52, 23, 213, 5, 142, 196, 180, 80, 62, 12, 18, 234, 26, 10, 137, 190, 32, 15, 233, 137, 34, 66, 61, 67, 52, 1, 79, 166, 176, 238]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([103, 114, 97, 110]), [209, 124, 45, 120, 35, 235, 242, 96, 253, 19, 143, 45, 126, 39, 209, 20, 192, 20, 93, 150, 139, 95, 245, 0, 97, 37, 242, 65, 79, 173, 174, 105]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([103, 114, 97, 110]), [67, 150, 96, 179, 108, 108, 3, 175, 175, 202, 2, 123, 145, 11, 79, 236, 249, 152, 1, 131, 76, 98, 165, 230, 0, 111, 39, 217, 120, 222, 35, 79]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([105, 109, 111, 110]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([105, 109, 111, 110]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([105, 109, 111, 110]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([97, 117, 100, 105]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([97, 117, 100, 105]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([97, 117, 100, 105]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([98, 97, 98, 101]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([98, 97, 98, 101]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([98, 97, 98, 101]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) +] +Session.NextKeys = [ + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = SessionKeys { grandpa: Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), babe: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)), im_online: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)), authority_discovery: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)) } + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = SessionKeys { grandpa: Public(439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f (5DbKjhNL...)), babe: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)), im_online: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)), authority_discovery: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)) } + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = SessionKeys { grandpa: Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), babe: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), im_online: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), authority_discovery: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)) } +] +Session.QueuedChanged = false +Session.QueuedKeys = [(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...), SessionKeys { grandpa: Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), babe: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), im_online: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), authority_discovery: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)) })] +Session.Validators = [d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)] +SmithCert.StorageCertsRemovableOn = [ + 1000 = [(2, 1), (3, 1), (1, 2), (3, 2), (1, 3), (2, 3)] +] +SmithCert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } + 2 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } + 3 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } +] +SmithCertCert.sByReceiver = [ + 1 = [(2, 1000), (3, 1000)] + 2 = [(1, 1000), (3, 1000)] + 3 = [(1, 1000), (2, 1000)] +] +SmithMembership.CounterForMembership = Some(3) +SmithMembership.Membership = [ + 1 = MembershipData { expire_on: 1000 } + 2 = MembershipData { expire_on: 1000 } + 3 = MembershipData { expire_on: 1000 } +] +SmithMembership.MembershipsExpireOn = [ + 1000 = [1, 2, 3] +] +SmithMembership.PendingMembership = [ +] +SmithMembership.PendingMembershipsExpireOn = [ +] +Sudo.Key = None +System.Account = [ + 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...) = AccountInfo { nonce: 0, consumers: 0, providers: 0, sufficients: 1, data: AccountData { random_id: Some(0x0303030303030303030303030303030303030303030303030303030303030303), free: 0, reserved: 0, fee_frozen: 0 } } + 6d6f646c70792f74727372790000000000000000000000000000000000000000 (5EYCAe5i...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: None, free: 200, reserved: 0, fee_frozen: 0 } } + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0101010101010101010101010101010101010101010101010101010101010101), free: 0, reserved: 0, fee_frozen: 0 } } + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0202020202020202020202020202020202020202020202020202020202020202), free: 0, reserved: 0, fee_frozen: 0 } } + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0000000000000000000000000000000000000000000000000000000000000000), free: 0, reserved: 0, fee_frozen: 0 } } +] +System.AllExtrinsicsLen = None +System.BlockHash = [ + 0 = 0x4545454545454545454545454545454545454545454545454545454545454545 +] +System.BlockWeight = None +System.Digest = None +System.EventCount = None +System.EventTopics = [ +] +System.Events = None +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [ +] +System.LastRuntimeUpgrade = Some(LastRuntimeUpgradeInfo { spec_version: 400, spec_name: RuntimeString::Owned("gdev") }) +System.Number = Some(2) +System.ParentHash = Some(0x4545454545454545454545454545454545454545454545454545454545454545) +System.UpgradedToTripleRefCount = Some(true) +System.UpgradedToU32RefCount = Some(true) +TechnicalCommittee.Members = [] +TechnicalCommittee.Prime = None +TechnicalCommittee.ProposalCount = 0 +TechnicalCommittee.ProposalOf = [ +] +TechnicalCommittee.Proposals = BoundedVec([], 20) +TechnicalCommittee.Voting = [ +] +Timestamp.DidUpdate = Some(true) +Timestamp.Now = 12000 +TransactionPayment.NextFeeMultiplier = FixedU128(0.000000000000000000) +TransactionPayment.StorageVersion = None +Treasury.Approvals = BoundedVec([], 100) +Treasury.ProposalCount = 0 +Treasury.Proposals = [ +] +UniversalDividend.CurrentUd = 1000 +UniversalDividend.CurrentUdIndex = 1 +UniversalDividend.MonetaryMass = 0 +UniversalDividend.NextReeval = Some(600000) +UniversalDividend.NextUd = Some(24000) +UniversalDividend.PastReevals = BoundedVec([(1, 1000)], 160) diff --git a/runtime/gdev/tests/values_storage_with_run_to_block.b.3.expected.txt b/runtime/gdev/tests/values_storage_with_run_to_block.b.3.expected.txt new file mode 100644 index 000000000..6f97e5d9f --- /dev/null +++ b/runtime/gdev/tests/values_storage_with_run_to_block.b.3.expected.txt @@ -0,0 +1,245 @@ +Account.PendingNewAccounts = [ +] +Account.PendingRandomIdAssignments = [ +] +AtomicSwap.PendingSwaps = [ +] +AuthorityMembers.AccountIdOf = [ +] +AuthorityMembers.AuthoritiesCounter = 1 +AuthorityMembers.BlackList = [] +AuthorityMembers.IncomingAuthorities = [] +AuthorityMembers.Members = [ + 1 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) } + 2 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) } + 3 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) } +] +AuthorityMembers.MustRotateKeysBefore = [ + 1500 = [1] +] +AuthorityMembers.OnlineAuthorities = [1] +AuthorityMembers.OutgoingAuthorities = [] +AuthorityMembersMembers.ExpireOn = [ +] +Authorship.Author = None +Authorship.DidSetUncles = Some(false) +Authorship.Uncles = Some(BoundedVec([], 11)) +Babe.AuthorVrfRandomness = None +Babe.Authorities = WeakBoundedVec([(Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), 1)], 32) +Babe.CurrentSlot = Slot(3) +Babe.EpochConfig = None +Babe.EpochIndex = 0 +Babe.EpochStart = None +Babe.GenesisSlot = Slot(0) +Babe.Initialized = Some(None) +Babe.Lateness = None +Babe.NextAuthorities = Some(WeakBoundedVec([(Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), 1)], 32)) +Babe.NextEpochConfig = None +Babe.NextRandomness = None +Babe.PendingEpochConfigChange = None +Babe.Randomness = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +Babe.SegmentIndex = None +Babe.UnderConstruction = [ +] +Balances.Account = [ +] +Balances.Locks = [ +] +Balances.Reserves = [ +] +Balances.StorageVersion = None +Balances.TotalIssuance = 0 +Cert.CertsByReceiver = [ + 1 = [(2, 10000), (3, 10000), (4, 10000)] + 2 = [(1, 10000), (3, 10000), (4, 10000)] + 3 = [(1, 10000), (2, 10000), (4, 10000)] + 4 = [(1, 10000), (2, 10000), (3, 10000)] +] +Cert.StorageCertsRemovableOn = [ + 10000 = [(2, 1), (3, 1), (4, 1), (1, 2), (3, 2), (4, 2), (1, 3), (2, 3), (4, 3), (1, 4), (2, 4), (3, 4)] +] +Cert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 2 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 3 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 4 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } +] +Grandpa.CurrentSetId = None +Grandpa.NextForced = None +Grandpa.PendingChange = None +Grandpa.SetIdSession = [ + 0 = 0 +] +Grandpa.Stalled = None +Grandpa.State = None +Identity.CounterForIdentities = Some(4) +Identity.Identities = [ + 1 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...), removable_on: 0, status: IdtyStatus::Validated } + 2 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...), removable_on: 0, status: IdtyStatus::Validated } + 3 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...), removable_on: 0, status: IdtyStatus::Validated } + 4 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...), removable_on: 0, status: IdtyStatus::Validated } +] +Identity.IdentitiesNames = [ + "Alice" = () + "Bob" = () + "Charlie" = () + "Dave" = () +] +Identity.IdentitiesRemovableOn = [ +] +Identity.IdentityIndexOf = [ + 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...) = 4 + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = 2 + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = 3 + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = 1 +] +Identity.NextIdtyIndex = Some(5) +ImOnline.AuthoredBlocks = [ +] +ImOnline.HeartbeatAfter = None +ImOnline.Keys = Some(WeakBoundedVec([Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...))], 32)) +ImOnline.ReceivedHeartbeats = [ +] +Membership.CounterForMembership = Some(4) +Membership.Membership = [ + 1 = MembershipData { expire_on: 100 } + 2 = MembershipData { expire_on: 100 } + 3 = MembershipData { expire_on: 100 } + 4 = MembershipData { expire_on: 100 } +] +Membership.MembershipsExpireOn = [ + 100 = [1, 2, 3, 4] +] +Membership.PendingMembership = [ +] +Membership.PendingMembershipsExpireOn = [ +] +Multisig.Multisigs = [ +] +Offences.ConcurrentReportsIndex = [ +] +Offences.Reports = [ +] +OneshotAccount.OneshotAccounts = [ +] +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 25, cert_period: 15, cert_max_by_issuer: 10, cert_min_received_cert_to_issue_cert: 2, cert_validity_period: 10000, idty_confirm_period: 40, idty_creation_period: 50, membership_period: 100, pending_membership_period: 500, ud_creation_period: 60000, ud_reeval_period: 1200000, smith_cert_period: 15, smith_cert_max_by_issuer: 8, smith_cert_min_received_cert_to_issue_cert: 2, smith_cert_validity_period: 1000, smith_membership_period: 1000, smith_pending_membership_period: 500, smith_wot_first_cert_issuable_on: 20, smith_wot_min_cert_for_membership: 2, wot_first_cert_issuable_on: 20, wot_min_cert_for_create_idty_right: 2, wot_min_cert_for_membership: 2 } +Preimage.PreimageFor = [ +] +Preimage.StatusFor = [ +] +ProvideRandomness.CounterForRequestsIds = None +ProvideRandomness.NexEpochHookIn = Some(5) +ProvideRandomness.RequestIdProvider = None +ProvideRandomness.RequestsIds = [ +] +ProvideRandomness.RequestsReadyAtEpoch = [ +] +ProvideRandomness.RequestsReadyAtNextBlock = [] +Proxy.Announcements = [ +] +Proxy.Proxies = [ +] +Scheduler.Agenda = [ +] +Scheduler.IncompleteSince = None +Scheduler.Lookup = [ +] +Session.CurrentIndex = 0 +Session.DisabledValidators = [] +Session.KeyOwner = [ + (KeyTypeId([103, 114, 97, 110]), [136, 220, 52, 23, 213, 5, 142, 196, 180, 80, 62, 12, 18, 234, 26, 10, 137, 190, 32, 15, 233, 137, 34, 66, 61, 67, 52, 1, 79, 166, 176, 238]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([103, 114, 97, 110]), [209, 124, 45, 120, 35, 235, 242, 96, 253, 19, 143, 45, 126, 39, 209, 20, 192, 20, 93, 150, 139, 95, 245, 0, 97, 37, 242, 65, 79, 173, 174, 105]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([103, 114, 97, 110]), [67, 150, 96, 179, 108, 108, 3, 175, 175, 202, 2, 123, 145, 11, 79, 236, 249, 152, 1, 131, 76, 98, 165, 230, 0, 111, 39, 217, 120, 222, 35, 79]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([105, 109, 111, 110]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([105, 109, 111, 110]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([105, 109, 111, 110]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([97, 117, 100, 105]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([97, 117, 100, 105]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([97, 117, 100, 105]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([98, 97, 98, 101]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([98, 97, 98, 101]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([98, 97, 98, 101]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) +] +Session.NextKeys = [ + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = SessionKeys { grandpa: Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), babe: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)), im_online: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)), authority_discovery: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)) } + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = SessionKeys { grandpa: Public(439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f (5DbKjhNL...)), babe: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)), im_online: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)), authority_discovery: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)) } + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = SessionKeys { grandpa: Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), babe: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), im_online: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), authority_discovery: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)) } +] +Session.QueuedChanged = false +Session.QueuedKeys = [(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...), SessionKeys { grandpa: Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), babe: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), im_online: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), authority_discovery: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)) })] +Session.Validators = [d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)] +SmithCert.StorageCertsRemovableOn = [ + 1000 = [(2, 1), (3, 1), (1, 2), (3, 2), (1, 3), (2, 3)] +] +SmithCert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } + 2 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } + 3 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } +] +SmithCertCert.sByReceiver = [ + 1 = [(2, 1000), (3, 1000)] + 2 = [(1, 1000), (3, 1000)] + 3 = [(1, 1000), (2, 1000)] +] +SmithMembership.CounterForMembership = Some(3) +SmithMembership.Membership = [ + 1 = MembershipData { expire_on: 1000 } + 2 = MembershipData { expire_on: 1000 } + 3 = MembershipData { expire_on: 1000 } +] +SmithMembership.MembershipsExpireOn = [ + 1000 = [1, 2, 3] +] +SmithMembership.PendingMembership = [ +] +SmithMembership.PendingMembershipsExpireOn = [ +] +Sudo.Key = None +System.Account = [ + 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...) = AccountInfo { nonce: 0, consumers: 0, providers: 0, sufficients: 1, data: AccountData { random_id: Some(0x0303030303030303030303030303030303030303030303030303030303030303), free: 0, reserved: 0, fee_frozen: 0 } } + 6d6f646c70792f74727372790000000000000000000000000000000000000000 (5EYCAe5i...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: None, free: 200, reserved: 0, fee_frozen: 0 } } + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0101010101010101010101010101010101010101010101010101010101010101), free: 0, reserved: 0, fee_frozen: 0 } } + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0202020202020202020202020202020202020202020202020202020202020202), free: 0, reserved: 0, fee_frozen: 0 } } + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0000000000000000000000000000000000000000000000000000000000000000), free: 0, reserved: 0, fee_frozen: 0 } } +] +System.AllExtrinsicsLen = None +System.BlockHash = [ + 0 = 0x4545454545454545454545454545454545454545454545454545454545454545 +] +System.BlockWeight = None +System.Digest = None +System.EventCount = None +System.EventTopics = [ +] +System.Events = None +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [ +] +System.LastRuntimeUpgrade = Some(LastRuntimeUpgradeInfo { spec_version: 400, spec_name: RuntimeString::Owned("gdev") }) +System.Number = Some(3) +System.ParentHash = Some(0x4545454545454545454545454545454545454545454545454545454545454545) +System.UpgradedToTripleRefCount = Some(true) +System.UpgradedToU32RefCount = Some(true) +TechnicalCommittee.Members = [] +TechnicalCommittee.Prime = None +TechnicalCommittee.ProposalCount = 0 +TechnicalCommittee.ProposalOf = [ +] +TechnicalCommittee.Proposals = BoundedVec([], 20) +TechnicalCommittee.Voting = [ +] +Timestamp.DidUpdate = Some(true) +Timestamp.Now = 18000 +TransactionPayment.NextFeeMultiplier = FixedU128(0.000000000000000000) +TransactionPayment.StorageVersion = None +Treasury.Approvals = BoundedVec([], 100) +Treasury.ProposalCount = 0 +Treasury.Proposals = [ +] +UniversalDividend.CurrentUd = 1000 +UniversalDividend.CurrentUdIndex = 1 +UniversalDividend.MonetaryMass = 0 +UniversalDividend.NextReeval = Some(600000) +UniversalDividend.NextUd = Some(24000) +UniversalDividend.PastReevals = BoundedVec([(1, 1000)], 160) diff --git a/runtime/gdev/tests/values_storage_with_run_to_block.b.4.expected.txt b/runtime/gdev/tests/values_storage_with_run_to_block.b.4.expected.txt new file mode 100644 index 000000000..7d68f8fe9 --- /dev/null +++ b/runtime/gdev/tests/values_storage_with_run_to_block.b.4.expected.txt @@ -0,0 +1,252 @@ +Account.PendingNewAccounts = [ +] +Account.PendingRandomIdAssignments = [ +] +AtomicSwap.PendingSwaps = [ +] +AuthorityMembers.AccountIdOf = [ +] +AuthorityMembers.AuthoritiesCounter = 1 +AuthorityMembers.BlackList = [] +AuthorityMembers.IncomingAuthorities = [] +AuthorityMembers.Members = [ + 1 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) } + 2 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) } + 3 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) } +] +AuthorityMembers.MustRotateKeysBefore = [ + 1500 = [1] +] +AuthorityMembers.OnlineAuthorities = [1] +AuthorityMembers.OutgoingAuthorities = [] +AuthorityMembersMembers.ExpireOn = [ +] +Authorship.Author = None +Authorship.DidSetUncles = Some(false) +Authorship.Uncles = Some(BoundedVec([], 11)) +Babe.AuthorVrfRandomness = None +Babe.Authorities = WeakBoundedVec([(Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), 1)], 32) +Babe.CurrentSlot = Slot(4) +Babe.EpochConfig = None +Babe.EpochIndex = 0 +Babe.EpochStart = None +Babe.GenesisSlot = Slot(0) +Babe.Initialized = Some(None) +Babe.Lateness = None +Babe.NextAuthorities = Some(WeakBoundedVec([(Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), 1)], 32)) +Babe.NextEpochConfig = None +Babe.NextRandomness = None +Babe.PendingEpochConfigChange = None +Babe.Randomness = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +Babe.SegmentIndex = None +Babe.UnderConstruction = [ +] +Balances.Account = [ +] +Balances.Locks = [ +] +Balances.Reserves = [ +] +Balances.StorageVersion = None +Balances.TotalIssuance = 0 +Cert.CertsByReceiver = [ + 1 = [(2, 10000), (3, 10000), (4, 10000)] + 2 = [(1, 10000), (3, 10000), (4, 10000)] + 3 = [(1, 10000), (2, 10000), (4, 10000)] + 4 = [(1, 10000), (2, 10000), (3, 10000)] + 5 = [(1, 10003)] +] +Cert.StorageCertsRemovableOn = [ + 10000 = [(2, 1), (3, 1), (4, 1), (1, 2), (3, 2), (4, 2), (1, 3), (2, 3), (4, 3), (1, 4), (2, 4), (3, 4)] + 10003 = [(1, 5)] +] +Cert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 4, next_issuable_on: 18, received_count: 3 } + 2 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 3 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 4 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 5 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 1 } +] +Grandpa.CurrentSetId = None +Grandpa.NextForced = None +Grandpa.PendingChange = None +Grandpa.SetIdSession = [ + 0 = 0 +] +Grandpa.Stalled = None +Grandpa.State = None +Identity.CounterForIdentities = Some(5) +Identity.Identities = [ + 1 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 53, old_owner_key: None, owner_key: d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...), removable_on: 0, status: IdtyStatus::Validated } + 2 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...), removable_on: 0, status: IdtyStatus::Validated } + 3 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...), removable_on: 0, status: IdtyStatus::Validated } + 4 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...), removable_on: 0, status: IdtyStatus::Validated } + 5 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(None) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e (5HGjWAeF...), removable_on: 43, status: IdtyStatus::Created } +] +Identity.IdentitiesNames = [ + "Alice" = () + "Bob" = () + "Charlie" = () + "Dave" = () +] +Identity.IdentitiesRemovableOn = [ + 43 = [(5, IdtyStatus::Created)] +] +Identity.IdentityIndexOf = [ + 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...) = 4 + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = 2 + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = 3 + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = 1 + e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e (5HGjWAeF...) = 5 +] +Identity.NextIdtyIndex = Some(6) +ImOnline.AuthoredBlocks = [ +] +ImOnline.HeartbeatAfter = None +ImOnline.Keys = Some(WeakBoundedVec([Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...))], 32)) +ImOnline.ReceivedHeartbeats = [ +] +Membership.CounterForMembership = Some(4) +Membership.Membership = [ + 1 = MembershipData { expire_on: 100 } + 2 = MembershipData { expire_on: 100 } + 3 = MembershipData { expire_on: 100 } + 4 = MembershipData { expire_on: 100 } +] +Membership.MembershipsExpireOn = [ + 100 = [1, 2, 3, 4] +] +Membership.PendingMembership = [ +] +Membership.PendingMembershipsExpireOn = [ +] +Multisig.Multisigs = [ +] +Offences.ConcurrentReportsIndex = [ +] +Offences.Reports = [ +] +OneshotAccount.OneshotAccounts = [ +] +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 25, cert_period: 15, cert_max_by_issuer: 10, cert_min_received_cert_to_issue_cert: 2, cert_validity_period: 10000, idty_confirm_period: 40, idty_creation_period: 50, membership_period: 100, pending_membership_period: 500, ud_creation_period: 60000, ud_reeval_period: 1200000, smith_cert_period: 15, smith_cert_max_by_issuer: 8, smith_cert_min_received_cert_to_issue_cert: 2, smith_cert_validity_period: 1000, smith_membership_period: 1000, smith_pending_membership_period: 500, smith_wot_first_cert_issuable_on: 20, smith_wot_min_cert_for_membership: 2, wot_first_cert_issuable_on: 20, wot_min_cert_for_create_idty_right: 2, wot_min_cert_for_membership: 2 } +Preimage.PreimageFor = [ +] +Preimage.StatusFor = [ +] +ProvideRandomness.CounterForRequestsIds = None +ProvideRandomness.NexEpochHookIn = Some(5) +ProvideRandomness.RequestIdProvider = None +ProvideRandomness.RequestsIds = [ +] +ProvideRandomness.RequestsReadyAtEpoch = [ +] +ProvideRandomness.RequestsReadyAtNextBlock = [] +Proxy.Announcements = [ +] +Proxy.Proxies = [ +] +Scheduler.Agenda = [ +] +Scheduler.IncompleteSince = None +Scheduler.Lookup = [ +] +Session.CurrentIndex = 0 +Session.DisabledValidators = [] +Session.KeyOwner = [ + (KeyTypeId([103, 114, 97, 110]), [136, 220, 52, 23, 213, 5, 142, 196, 180, 80, 62, 12, 18, 234, 26, 10, 137, 190, 32, 15, 233, 137, 34, 66, 61, 67, 52, 1, 79, 166, 176, 238]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([103, 114, 97, 110]), [209, 124, 45, 120, 35, 235, 242, 96, 253, 19, 143, 45, 126, 39, 209, 20, 192, 20, 93, 150, 139, 95, 245, 0, 97, 37, 242, 65, 79, 173, 174, 105]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([103, 114, 97, 110]), [67, 150, 96, 179, 108, 108, 3, 175, 175, 202, 2, 123, 145, 11, 79, 236, 249, 152, 1, 131, 76, 98, 165, 230, 0, 111, 39, 217, 120, 222, 35, 79]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([105, 109, 111, 110]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([105, 109, 111, 110]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([105, 109, 111, 110]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([97, 117, 100, 105]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([97, 117, 100, 105]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([97, 117, 100, 105]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([98, 97, 98, 101]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([98, 97, 98, 101]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([98, 97, 98, 101]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) +] +Session.NextKeys = [ + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = SessionKeys { grandpa: Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), babe: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)), im_online: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)), authority_discovery: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)) } + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = SessionKeys { grandpa: Public(439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f (5DbKjhNL...)), babe: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)), im_online: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)), authority_discovery: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)) } + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = SessionKeys { grandpa: Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), babe: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), im_online: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), authority_discovery: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)) } +] +Session.QueuedChanged = false +Session.QueuedKeys = [(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...), SessionKeys { grandpa: Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), babe: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), im_online: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), authority_discovery: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)) })] +Session.Validators = [d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)] +SmithCert.StorageCertsRemovableOn = [ + 1000 = [(2, 1), (3, 1), (1, 2), (3, 2), (1, 3), (2, 3)] +] +SmithCert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } + 2 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } + 3 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } +] +SmithCertCert.sByReceiver = [ + 1 = [(2, 1000), (3, 1000)] + 2 = [(1, 1000), (3, 1000)] + 3 = [(1, 1000), (2, 1000)] +] +SmithMembership.CounterForMembership = Some(3) +SmithMembership.Membership = [ + 1 = MembershipData { expire_on: 1000 } + 2 = MembershipData { expire_on: 1000 } + 3 = MembershipData { expire_on: 1000 } +] +SmithMembership.MembershipsExpireOn = [ + 1000 = [1, 2, 3] +] +SmithMembership.PendingMembership = [ +] +SmithMembership.PendingMembershipsExpireOn = [ +] +Sudo.Key = None +System.Account = [ + 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...) = AccountInfo { nonce: 0, consumers: 0, providers: 0, sufficients: 1, data: AccountData { random_id: Some(0x0303030303030303030303030303030303030303030303030303030303030303), free: 0, reserved: 0, fee_frozen: 0 } } + 6d6f646c70792f74727372790000000000000000000000000000000000000000 (5EYCAe5i...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: None, free: 200, reserved: 0, fee_frozen: 0 } } + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0101010101010101010101010101010101010101010101010101010101010101), free: 0, reserved: 0, fee_frozen: 0 } } + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0202020202020202020202020202020202020202020202020202020202020202), free: 0, reserved: 0, fee_frozen: 0 } } + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0000000000000000000000000000000000000000000000000000000000000000), free: 0, reserved: 0, fee_frozen: 0 } } + e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e (5HGjWAeF...) = AccountInfo { nonce: 0, consumers: 0, providers: 0, sufficients: 1, data: AccountData { random_id: None, free: 0, reserved: 0, fee_frozen: 0 } } +] +System.AllExtrinsicsLen = None +System.BlockHash = [ + 0 = 0x4545454545454545454545454545454545454545454545454545454545454545 +] +System.BlockWeight = None +System.Digest = None +System.EventCount = Some(1) +System.EventTopics = [ +] +System.Events = Some([EventRecord { phase: Phase::Initialization, event: RuntimeEvent::UniversalDividend(Event::NewUdCreated { amount: 1000, index: 1, monetary_mass: 4000, members_count: 4 }), topics: [] }]) +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [ +] +System.LastRuntimeUpgrade = Some(LastRuntimeUpgradeInfo { spec_version: 400, spec_name: RuntimeString::Owned("gdev") }) +System.Number = Some(4) +System.ParentHash = Some(0x4545454545454545454545454545454545454545454545454545454545454545) +System.UpgradedToTripleRefCount = Some(true) +System.UpgradedToU32RefCount = Some(true) +TechnicalCommittee.Members = [] +TechnicalCommittee.Prime = None +TechnicalCommittee.ProposalCount = 0 +TechnicalCommittee.ProposalOf = [ +] +TechnicalCommittee.Proposals = BoundedVec([], 20) +TechnicalCommittee.Voting = [ +] +Timestamp.DidUpdate = Some(true) +Timestamp.Now = 24000 +TransactionPayment.NextFeeMultiplier = FixedU128(0.000000000000000000) +TransactionPayment.StorageVersion = None +Treasury.Approvals = BoundedVec([], 100) +Treasury.ProposalCount = 0 +Treasury.Proposals = [ +] +UniversalDividend.CurrentUd = 1000 +UniversalDividend.CurrentUdIndex = 2 +UniversalDividend.MonetaryMass = 4000 +UniversalDividend.NextReeval = Some(600000) +UniversalDividend.NextUd = Some(84000) +UniversalDividend.PastReevals = BoundedVec([(1, 1000)], 160) diff --git a/runtime/gdev/tests/values_storage_with_run_to_block.b.5.expected.txt b/runtime/gdev/tests/values_storage_with_run_to_block.b.5.expected.txt new file mode 100644 index 000000000..413d179d3 --- /dev/null +++ b/runtime/gdev/tests/values_storage_with_run_to_block.b.5.expected.txt @@ -0,0 +1,255 @@ +Account.PendingNewAccounts = [ +] +Account.PendingRandomIdAssignments = [ +] +AtomicSwap.PendingSwaps = [ +] +AuthorityMembers.AccountIdOf = [ +] +AuthorityMembers.AuthoritiesCounter = 1 +AuthorityMembers.BlackList = [] +AuthorityMembers.IncomingAuthorities = [] +AuthorityMembers.Members = [ + 1 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) } + 2 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) } + 3 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) } +] +AuthorityMembers.MustRotateKeysBefore = [ + 1500 = [1] +] +AuthorityMembers.OnlineAuthorities = [1] +AuthorityMembers.OutgoingAuthorities = [] +AuthorityMembersMembers.ExpireOn = [ +] +Authorship.Author = None +Authorship.DidSetUncles = Some(false) +Authorship.Uncles = Some(BoundedVec([], 11)) +Babe.AuthorVrfRandomness = None +Babe.Authorities = WeakBoundedVec([(Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), 1)], 32) +Babe.CurrentSlot = Slot(5) +Babe.EpochConfig = None +Babe.EpochIndex = 0 +Babe.EpochStart = None +Babe.GenesisSlot = Slot(0) +Babe.Initialized = Some(None) +Babe.Lateness = None +Babe.NextAuthorities = Some(WeakBoundedVec([(Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), 1)], 32)) +Babe.NextEpochConfig = None +Babe.NextRandomness = None +Babe.PendingEpochConfigChange = None +Babe.Randomness = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +Babe.SegmentIndex = None +Babe.UnderConstruction = [ +] +Balances.Account = [ +] +Balances.Locks = [ +] +Balances.Reserves = [ +] +Balances.StorageVersion = None +Balances.TotalIssuance = 0 +Cert.CertsByReceiver = [ + 1 = [(2, 10000), (3, 10000), (4, 10000)] + 2 = [(1, 10000), (3, 10000), (4, 10000)] + 3 = [(1, 10000), (2, 10000), (4, 10000)] + 4 = [(1, 10000), (2, 10000), (3, 10000)] + 5 = [(1, 10003)] +] +Cert.StorageCertsRemovableOn = [ + 10000 = [(2, 1), (3, 1), (4, 1), (1, 2), (3, 2), (4, 2), (1, 3), (2, 3), (4, 3), (1, 4), (2, 4), (3, 4)] + 10003 = [(1, 5)] +] +Cert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 4, next_issuable_on: 18, received_count: 3 } + 2 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 3 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 4 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 5 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 1 } +] +Grandpa.CurrentSetId = None +Grandpa.NextForced = None +Grandpa.PendingChange = None +Grandpa.SetIdSession = [ + 0 = 0 +] +Grandpa.Stalled = None +Grandpa.State = None +Identity.CounterForIdentities = Some(5) +Identity.Identities = [ + 1 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 53, old_owner_key: None, owner_key: d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...), removable_on: 0, status: IdtyStatus::Validated } + 2 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...), removable_on: 0, status: IdtyStatus::Validated } + 3 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...), removable_on: 0, status: IdtyStatus::Validated } + 4 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...), removable_on: 0, status: IdtyStatus::Validated } + 5 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(None) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e (5HGjWAeF...), removable_on: 43, status: IdtyStatus::ConfirmedByOwner } +] +Identity.IdentitiesNames = [ + "Alice" = () + "Bob" = () + "Charlie" = () + "Dave" = () + "Eeeeeveeeee" = () +] +Identity.IdentitiesRemovableOn = [ + 43 = [(5, IdtyStatus::Created)] +] +Identity.IdentityIndexOf = [ + 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...) = 4 + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = 2 + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = 3 + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = 1 + e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e (5HGjWAeF...) = 5 +] +Identity.NextIdtyIndex = Some(6) +ImOnline.AuthoredBlocks = [ +] +ImOnline.HeartbeatAfter = None +ImOnline.Keys = Some(WeakBoundedVec([Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...))], 32)) +ImOnline.ReceivedHeartbeats = [ +] +Membership.CounterForMembership = Some(4) +Membership.Membership = [ + 1 = MembershipData { expire_on: 100 } + 2 = MembershipData { expire_on: 100 } + 3 = MembershipData { expire_on: 100 } + 4 = MembershipData { expire_on: 100 } +] +Membership.MembershipsExpireOn = [ + 100 = [1, 2, 3, 4] +] +Membership.PendingMembership = [ + 5 = () +] +Membership.PendingMembershipsExpireOn = [ + 504 = [5] +] +Multisig.Multisigs = [ +] +Offences.ConcurrentReportsIndex = [ +] +Offences.Reports = [ +] +OneshotAccount.OneshotAccounts = [ +] +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 25, cert_period: 15, cert_max_by_issuer: 10, cert_min_received_cert_to_issue_cert: 2, cert_validity_period: 10000, idty_confirm_period: 40, idty_creation_period: 50, membership_period: 100, pending_membership_period: 500, ud_creation_period: 60000, ud_reeval_period: 1200000, smith_cert_period: 15, smith_cert_max_by_issuer: 8, smith_cert_min_received_cert_to_issue_cert: 2, smith_cert_validity_period: 1000, smith_membership_period: 1000, smith_pending_membership_period: 500, smith_wot_first_cert_issuable_on: 20, smith_wot_min_cert_for_membership: 2, wot_first_cert_issuable_on: 20, wot_min_cert_for_create_idty_right: 2, wot_min_cert_for_membership: 2 } +Preimage.PreimageFor = [ +] +Preimage.StatusFor = [ +] +ProvideRandomness.CounterForRequestsIds = None +ProvideRandomness.NexEpochHookIn = Some(5) +ProvideRandomness.RequestIdProvider = None +ProvideRandomness.RequestsIds = [ +] +ProvideRandomness.RequestsReadyAtEpoch = [ +] +ProvideRandomness.RequestsReadyAtNextBlock = [] +Proxy.Announcements = [ +] +Proxy.Proxies = [ +] +Scheduler.Agenda = [ +] +Scheduler.IncompleteSince = None +Scheduler.Lookup = [ +] +Session.CurrentIndex = 0 +Session.DisabledValidators = [] +Session.KeyOwner = [ + (KeyTypeId([103, 114, 97, 110]), [136, 220, 52, 23, 213, 5, 142, 196, 180, 80, 62, 12, 18, 234, 26, 10, 137, 190, 32, 15, 233, 137, 34, 66, 61, 67, 52, 1, 79, 166, 176, 238]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([103, 114, 97, 110]), [209, 124, 45, 120, 35, 235, 242, 96, 253, 19, 143, 45, 126, 39, 209, 20, 192, 20, 93, 150, 139, 95, 245, 0, 97, 37, 242, 65, 79, 173, 174, 105]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([103, 114, 97, 110]), [67, 150, 96, 179, 108, 108, 3, 175, 175, 202, 2, 123, 145, 11, 79, 236, 249, 152, 1, 131, 76, 98, 165, 230, 0, 111, 39, 217, 120, 222, 35, 79]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([105, 109, 111, 110]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([105, 109, 111, 110]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([105, 109, 111, 110]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([97, 117, 100, 105]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([97, 117, 100, 105]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([97, 117, 100, 105]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) + (KeyTypeId([98, 97, 98, 101]), [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72]) = 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) + (KeyTypeId([98, 97, 98, 101]), [144, 181, 171, 32, 92, 105, 116, 201, 234, 132, 27, 230, 136, 134, 70, 51, 220, 156, 168, 163, 87, 132, 62, 234, 207, 35, 20, 100, 153, 101, 254, 34]) = 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) + (KeyTypeId([98, 97, 98, 101]), [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125]) = d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) +] +Session.NextKeys = [ + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = SessionKeys { grandpa: Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), babe: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)), im_online: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)), authority_discovery: Public(8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...)) } + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = SessionKeys { grandpa: Public(439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f (5DbKjhNL...)), babe: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)), im_online: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)), authority_discovery: Public(90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...)) } + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = SessionKeys { grandpa: Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), babe: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), im_online: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), authority_discovery: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)) } +] +Session.QueuedChanged = false +Session.QueuedKeys = [(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...), SessionKeys { grandpa: Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), babe: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), im_online: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)), authority_discovery: Public(d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)) })] +Session.Validators = [d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...)] +SmithCert.StorageCertsRemovableOn = [ + 1000 = [(2, 1), (3, 1), (1, 2), (3, 2), (1, 3), (2, 3)] +] +SmithCert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } + 2 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } + 3 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 2 } +] +SmithCertCert.sByReceiver = [ + 1 = [(2, 1000), (3, 1000)] + 2 = [(1, 1000), (3, 1000)] + 3 = [(1, 1000), (2, 1000)] +] +SmithMembership.CounterForMembership = Some(3) +SmithMembership.Membership = [ + 1 = MembershipData { expire_on: 1000 } + 2 = MembershipData { expire_on: 1000 } + 3 = MembershipData { expire_on: 1000 } +] +SmithMembership.MembershipsExpireOn = [ + 1000 = [1, 2, 3] +] +SmithMembership.PendingMembership = [ +] +SmithMembership.PendingMembershipsExpireOn = [ +] +Sudo.Key = None +System.Account = [ + 306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20 (5DAAnrj7...) = AccountInfo { nonce: 0, consumers: 0, providers: 0, sufficients: 1, data: AccountData { random_id: Some(0x0303030303030303030303030303030303030303030303030303030303030303), free: 0, reserved: 0, fee_frozen: 0 } } + 6d6f646c70792f74727372790000000000000000000000000000000000000000 (5EYCAe5i...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: None, free: 200, reserved: 0, fee_frozen: 0 } } + 8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 (5FHneW46...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0101010101010101010101010101010101010101010101010101010101010101), free: 0, reserved: 0, fee_frozen: 0 } } + 90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22 (5FLSigC9...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0202020202020202020202020202020202020202020202020202020202020202), free: 0, reserved: 0, fee_frozen: 0 } } + d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d (5GrwvaEF...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0000000000000000000000000000000000000000000000000000000000000000), free: 0, reserved: 0, fee_frozen: 0 } } + e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e (5HGjWAeF...) = AccountInfo { nonce: 0, consumers: 0, providers: 0, sufficients: 1, data: AccountData { random_id: None, free: 0, reserved: 0, fee_frozen: 0 } } +] +System.AllExtrinsicsLen = None +System.BlockHash = [ + 0 = 0x4545454545454545454545454545454545454545454545454545454545454545 +] +System.BlockWeight = None +System.Digest = None +System.EventCount = None +System.EventTopics = [ +] +System.Events = None +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [ +] +System.LastRuntimeUpgrade = Some(LastRuntimeUpgradeInfo { spec_version: 400, spec_name: RuntimeString::Owned("gdev") }) +System.Number = Some(5) +System.ParentHash = Some(0x4545454545454545454545454545454545454545454545454545454545454545) +System.UpgradedToTripleRefCount = Some(true) +System.UpgradedToU32RefCount = Some(true) +TechnicalCommittee.Members = [] +TechnicalCommittee.Prime = None +TechnicalCommittee.ProposalCount = 0 +TechnicalCommittee.ProposalOf = [ +] +TechnicalCommittee.Proposals = BoundedVec([], 20) +TechnicalCommittee.Voting = [ +] +Timestamp.DidUpdate = Some(true) +Timestamp.Now = 30000 +TransactionPayment.NextFeeMultiplier = FixedU128(0.000000000000000000) +TransactionPayment.StorageVersion = None +Treasury.Approvals = BoundedVec([], 100) +Treasury.ProposalCount = 0 +Treasury.Proposals = [ +] +UniversalDividend.CurrentUd = 1000 +UniversalDividend.CurrentUdIndex = 2 +UniversalDividend.MonetaryMass = 4000 +UniversalDividend.NextReeval = Some(600000) +UniversalDividend.NextUd = Some(84000) +UniversalDividend.PastReevals = BoundedVec([(1, 1000)], 160) diff --git a/tests/storage.out.txt b/tests/storage.out.txt new file mode 100644 index 000000000..fe11f10e2 --- /dev/null +++ b/tests/storage.out.txt @@ -0,0 +1,1179 @@ +Account.PendingNewAccounts = [ +] +Account.PendingRandomIdAssignments = [ + 130 = a8dc86d1f7289d309465c890bb6f662b5c20571154cb14a8835eea0bc8a46179 (5Ft7Qqqi...) +] +AtomicSwap.PendingSwaps = [ +] +AuthorityMembers.AccountIdOf = [ +] +AuthorityMembers.AuthoritiesCounter = 5 +AuthorityMembers.BlackList = [] +AuthorityMembers.IncomingAuthorities = [] +AuthorityMembers.Members = [ + 1 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) } + 2457 = MemberData { expire_on_session: 4436, must_rotate_keys_before: 3548, owner_key: 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) } + 3595 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) } + 6317 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) } + 6951 = MemberData { expire_on_session: 3983, must_rotate_keys_before: 3121, owner_key: 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) } + 7139 = MemberData { expire_on_session: 3954, must_rotate_keys_before: 3113, owner_key: 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) } + 7228 = MemberData { expire_on_session: 3535, must_rotate_keys_before: 2635, owner_key: b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) } +] +AuthorityMembers.MustRotateKeysBefore = [ + 2635 = [7228, 7228] + 3053 = [6951] + 3056 = [2457] + 3102 = [2457] + 3113 = [7139] + 3121 = [6951] + 3548 = [2457] +] +AuthorityMembers.OnlineAuthorities = [2457, 6951, 7139, 7228] +AuthorityMembers.OutgoingAuthorities = [] +AuthorityMembersMembers.ExpireOn = [ + 2830 = [7139] + 3912 = [2457] + 3937 = [6951] + 3954 = [7139] + 3983 = [6951] + 4436 = [2457] +] +Authorship.Author = None +Authorship.DidSetUncles = None +Authorship.Uncles = Some(BoundedVec([], 11)) +Babe.AuthorVrfRandomness = Some(Some([52, 96, 83, 90, 148, 220, 188, 133, 42, 22, 25, 212, 106, 247, 16, 202, 157, 131, 248, 189, 247, 91, 17, 214, 241, 159, 124, 27, 182, 133, 22, 235])) +Babe.Authorities = WeakBoundedVec([(Public(ce22766dd427088e6e6effd6a0ded298a54e0b4c3cfa6239fc91267a1b68144b (5Giyxa9A...)), 1), (Public(ece67903b907e5b522588329dfc8398dabd2facbe760f9bf68298633071bcf30 (5HRKd4qb...)), 1), (Public(945896331fe4d781747a04cad6d11d7dd1aa0622ffb7ae36d461153d6ae08928 (5FRDG2PE...)), 1), (Public(7610e984e7cf0f444c47369a490373d4389ec37c32a5139f61d3935137595e10 (5EjWXnJJ...)), 1)], 32) +Babe.CurrentSlot = Slot(279756577) +Babe.EpochConfig = Some(BabeEpochConfiguration { c: (1, 4), allowed_slots: AllowedSlots::PrimaryAndSecondaryVRFSlots }) +Babe.EpochIndex = 2123 +Babe.EpochStart = Some((1244704, 1245304)) +Babe.GenesisSlot = Slot(278482554) +Babe.Initialized = None +Babe.Lateness = None +Babe.NextAuthorities = Some(WeakBoundedVec([(Public(ce22766dd427088e6e6effd6a0ded298a54e0b4c3cfa6239fc91267a1b68144b (5Giyxa9A...)), 1), (Public(ece67903b907e5b522588329dfc8398dabd2facbe760f9bf68298633071bcf30 (5HRKd4qb...)), 1), (Public(945896331fe4d781747a04cad6d11d7dd1aa0622ffb7ae36d461153d6ae08928 (5FRDG2PE...)), 1), (Public(7610e984e7cf0f444c47369a490373d4389ec37c32a5139f61d3935137595e10 (5EjWXnJJ...)), 1)], 32)) +Babe.NextEpochConfig = None +Babe.NextRandomness = Some([87, 155, 136, 19, 14, 193, 19, 230, 47, 126, 250, 141, 164, 51, 235, 178, 185, 0, 76, 173, 107, 87, 248, 61, 19, 178, 26, 224, 107, 221, 168, 189]) +Babe.PendingEpochConfigChange = None +Babe.Randomness = [26, 125, 4, 88, 137, 32, 238, 23, 124, 71, 204, 207, 21, 13, 28, 206, 157, 88, 82, 53, 9, 246, 130, 136, 1, 61, 220, 71, 2, 123, 69, 181] +Babe.SegmentIndex = Some(0) +Babe.UnderConstruction = [ + 0 = BoundedVec([[248, 254, 246, 197, 54, 79, 105, 3, 215, 170, 67, 101, 138, 237, 87, 219, 40, 55, 102, 208, 113, 190, 88, 57, 196, 51, 224, 209, 142, 232, 141, 103], [222, 92, 83, 226, 225, 223, 135, 67, 221, 83, 102, 250, 117, 236, 170, 25, 186, 221, 50, 140, 14, 221, 95, 89, 39, 92, 94, 32, 230, 235, 94, 245], [66, 32, 84, 158, 26, 181, 46, 105, 12, 240, 249, 58, 23, 125, 23, 222, 232, 199, 156, 68, 193, 15, 28, 217, 72, 15, 150, 190, 128, 134, 142, 102], [93, 158, 31, 140, 86, 220, 68, 91, 46, 151, 114, 102, 41, 126, 86, 83, 195, 166, 138, 211, 33, 113, 145, 238, 186, 168, 131, 6, 229, 176, 122, 255], [128, 126, 15, 103, 153, 11, 221, 241, 137, 74, 94, 44, 14, 156, 77, 194, 133, 170, 28, 183, 207, 70, 191, 116, 163, 187, 203, 48, 131, 138, 239, 149], [50, 12, 180, 150, 151, 94, 189, 138, 116, 82, 186, 215, 164, 31, 118, 121, 200, 76, 115, 207, 64, 70, 113, 101, 82, 152, 148, 154, 93, 138, 236, 253], [49, 144, 61, 32, 49, 249, 245, 227, 151, 97, 190, 12, 118, 5, 117, 130, 150, 60, 127, 145, 156, 178, 207, 195, 138, 132, 19, 222, 223, 133, 201, 183], [78, 134, 106, 89, 184, 179, 153, 228, 251, 172, 170, 199, 69, 29, 94, 20, 157, 183, 62, 13, 242, 177, 65, 150, 144, 13, 198, 57, 47, 151, 245, 254], [215, 188, 244, 164, 89, 14, 19, 132, 214, 68, 16, 211, 233, 43, 206, 49, 15, 2, 52, 76, 239, 166, 120, 170, 227, 48, 28, 17, 12, 181, 60, 154], [88, 2, 6, 248, 1, 75, 218, 234, 24, 1, 156, 195, 225, 17, 155, 195, 83, 152, 117, 168, 240, 163, 143, 129, 146, 46, 87, 172, 27, 13, 152, 10], [149, 61, 120, 9, 142, 76, 31, 237, 32, 101, 143, 175, 8, 17, 245, 159, 203, 156, 110, 123, 34, 231, 68, 243, 140, 47, 102, 217, 98, 15, 136, 55], [146, 247, 56, 205, 195, 197, 90, 129, 245, 172, 96, 166, 88, 194, 195, 234, 118, 8, 101, 7, 212, 239, 65, 155, 48, 126, 68, 71, 253, 71, 54, 30], [161, 91, 3, 110, 124, 245, 191, 234, 37, 171, 61, 202, 33, 113, 15, 107, 21, 173, 22, 207, 4, 217, 6, 191, 23, 208, 113, 108, 138, 141, 99, 128], [195, 142, 44, 204, 50, 193, 196, 14, 16, 243, 80, 173, 62, 230, 105, 159, 255, 79, 148, 30, 100, 218, 226, 140, 68, 40, 138, 18, 97, 85, 81, 10], [184, 48, 13, 56, 116, 231, 139, 114, 65, 123, 219, 211, 239, 150, 81, 9, 219, 86, 72, 229, 252, 132, 201, 43, 43, 78, 135, 213, 241, 25, 234, 104], [247, 183, 155, 153, 61, 130, 215, 17, 35, 74, 164, 128, 89, 110, 195, 54, 100, 110, 15, 97, 98, 87, 131, 183, 85, 57, 173, 99, 164, 79, 239, 14], [242, 137, 249, 123, 89, 198, 59, 68, 53, 212, 202, 242, 123, 48, 163, 226, 162, 67, 25, 62, 71, 93, 119, 43, 47, 60, 221, 80, 154, 84, 182, 165], [132, 254, 72, 52, 235, 27, 156, 160, 85, 115, 28, 93, 87, 8, 157, 56, 85, 3, 136, 136, 127, 235, 23, 62, 13, 60, 192, 11, 37, 221, 195, 50], [169, 87, 52, 176, 253, 111, 4, 34, 19, 182, 51, 84, 45, 234, 205, 15, 10, 7, 71, 188, 56, 24, 20, 105, 207, 222, 149, 112, 1, 236, 87, 87], [39, 168, 40, 124, 21, 11, 169, 178, 26, 171, 38, 115, 112, 162, 215, 107, 108, 174, 18, 186, 172, 75, 57, 215, 214, 127, 108, 114, 240, 197, 199, 36], [4, 70, 162, 79, 111, 1, 254, 113, 12, 206, 1, 35, 44, 40, 142, 170, 185, 183, 102, 97, 112, 27, 29, 85, 73, 23, 155, 147, 148, 176, 167, 41], [14, 0, 192, 240, 98, 65, 145, 211, 149, 95, 150, 30, 237, 49, 99, 190, 63, 99, 177, 167, 166, 101, 145, 161, 233, 171, 34, 131, 234, 81, 227, 60], [233, 223, 228, 119, 147, 221, 143, 53, 129, 165, 22, 219, 142, 231, 227, 81, 99, 36, 127, 23, 254, 200, 216, 102, 126, 129, 196, 205, 118, 83, 67, 222], [41, 14, 160, 38, 81, 97, 149, 29, 163, 40, 157, 247, 115, 56, 152, 143, 176, 102, 150, 54, 59, 121, 181, 132, 13, 114, 115, 144, 153, 65, 6, 178], [176, 66, 241, 198, 89, 108, 209, 141, 78, 124, 21, 96, 96, 234, 26, 76, 166, 65, 2, 33, 70, 177, 95, 234, 83, 79, 81, 111, 198, 20, 214, 197], [60, 19, 187, 88, 145, 156, 6, 44, 3, 25, 25, 223, 152, 195, 202, 156, 93, 164, 42, 255, 168, 121, 38, 81, 162, 254, 166, 161, 85, 108, 52, 149], [24, 188, 29, 11, 197, 173, 55, 146, 98, 49, 106, 36, 200, 118, 128, 188, 103, 234, 50, 186, 104, 212, 76, 0, 81, 193, 11, 58, 19, 0, 64, 49], [206, 128, 147, 5, 235, 47, 166, 70, 195, 108, 12, 86, 148, 151, 141, 5, 180, 141, 91, 99, 186, 172, 100, 237, 200, 199, 39, 58, 152, 88, 246, 10], [253, 218, 240, 117, 93, 128, 174, 109, 186, 121, 154, 64, 57, 135, 56, 93, 153, 9, 176, 63, 166, 143, 158, 76, 203, 13, 16, 123, 69, 241, 87, 213], [155, 255, 235, 250, 59, 86, 156, 12, 47, 10, 59, 18, 65, 125, 56, 3, 202, 244, 30, 61, 56, 94, 143, 196, 76, 194, 214, 10, 35, 162, 253, 251], [133, 183, 130, 179, 175, 210, 13, 107, 158, 187, 196, 75, 155, 135, 33, 195, 61, 145, 203, 7, 149, 246, 91, 63, 42, 158, 249, 67, 115, 122, 29, 235], [82, 170, 106, 30, 37, 89, 172, 75, 65, 46, 64, 180, 58, 58, 110, 248, 91, 146, 173, 141, 219, 33, 184, 241, 210, 181, 186, 141, 62, 239, 80, 73], [210, 213, 230, 252, 201, 165, 81, 14, 146, 82, 93, 35, 241, 38, 245, 193, 108, 42, 128, 118, 194, 158, 31, 63, 195, 5, 119, 40, 38, 20, 245, 1], [253, 152, 251, 194, 7, 129, 232, 61, 112, 132, 28, 198, 122, 108, 222, 184, 203, 191, 144, 137, 59, 61, 111, 21, 234, 253, 201, 23, 212, 207, 235, 239], [194, 176, 70, 138, 224, 87, 61, 114, 171, 95, 77, 233, 143, 206, 78, 51, 118, 70, 30, 164, 245, 147, 44, 30, 32, 68, 249, 196, 88, 125, 159, 116], [26, 182, 70, 154, 248, 82, 114, 159, 31, 123, 59, 174, 171, 41, 143, 144, 3, 57, 198, 156, 206, 145, 49, 21, 243, 146, 109, 117, 26, 115, 200, 91], [202, 90, 147, 82, 212, 75, 252, 248, 193, 242, 190, 85, 169, 237, 153, 108, 237, 244, 147, 185, 102, 58, 17, 60, 150, 130, 154, 96, 154, 34, 218, 217], [20, 188, 158, 252, 243, 195, 35, 115, 186, 131, 223, 13, 17, 120, 19, 34, 186, 86, 244, 87, 175, 124, 50, 59, 130, 155, 93, 99, 89, 60, 183, 96], [203, 155, 186, 144, 111, 178, 3, 177, 182, 141, 125, 20, 158, 155, 30, 237, 224, 62, 69, 232, 145, 137, 17, 113, 104, 168, 143, 70, 197, 60, 132, 208], [246, 174, 4, 142, 180, 143, 48, 228, 218, 130, 203, 46, 19, 9, 218, 30, 134, 28, 94, 170, 236, 79, 194, 84, 137, 193, 223, 38, 7, 48, 85, 175], [112, 253, 149, 39, 226, 68, 152, 33, 198, 34, 189, 26, 26, 83, 222, 109, 141, 23, 103, 48, 164, 62, 27, 180, 133, 234, 96, 28, 233, 49, 254, 225], [243, 172, 23, 2, 233, 168, 232, 242, 57, 2, 158, 49, 208, 121, 251, 201, 247, 32, 25, 39, 8, 190, 18, 119, 168, 248, 110, 28, 233, 70, 185, 6], [246, 37, 146, 42, 154, 87, 38, 165, 25, 252, 165, 58, 55, 193, 10, 27, 196, 26, 246, 147, 77, 210, 76, 160, 65, 82, 62, 145, 141, 44, 206, 236], [79, 82, 117, 3, 198, 45, 17, 6, 134, 143, 69, 211, 165, 95, 123, 210, 22, 13, 245, 30, 249, 116, 180, 56, 29, 174, 170, 212, 247, 114, 27, 115], [191, 91, 71, 150, 128, 150, 96, 40, 75, 229, 69, 253, 139, 242, 12, 46, 104, 195, 108, 137, 208, 62, 116, 227, 108, 187, 123, 196, 89, 72, 69, 10], [72, 150, 9, 194, 254, 31, 42, 77, 237, 162, 48, 168, 175, 43, 234, 207, 39, 241, 44, 22, 102, 218, 211, 158, 87, 185, 110, 111, 255, 180, 192, 174], [102, 127, 84, 69, 236, 179, 162, 140, 30, 57, 55, 201, 172, 86, 151, 216, 105, 26, 156, 200, 165, 26, 10, 166, 142, 164, 198, 171, 242, 94, 153, 171], [192, 244, 24, 61, 193, 47, 134, 152, 240, 42, 137, 163, 252, 242, 183, 194, 184, 67, 93, 233, 57, 117, 140, 30, 225, 141, 48, 28, 29, 160, 200, 246], [22, 198, 97, 0, 102, 253, 23, 237, 3, 84, 163, 67, 126, 248, 84, 16, 44, 227, 206, 161, 43, 140, 37, 125, 49, 188, 18, 58, 53, 39, 189, 96], [238, 189, 164, 181, 205, 107, 243, 248, 221, 213, 78, 60, 76, 135, 48, 225, 35, 214, 100, 32, 81, 228, 156, 134, 247, 95, 117, 180, 19, 55, 226, 147], [79, 38, 31, 152, 114, 85, 5, 53, 153, 209, 116, 250, 57, 167, 149, 40, 205, 221, 218, 1, 98, 159, 128, 9, 254, 151, 92, 204, 108, 37, 37, 23], [73, 145, 179, 248, 12, 253, 164, 14, 183, 249, 161, 158, 19, 172, 220, 212, 51, 38, 139, 159, 82, 80, 13, 19, 244, 125, 106, 161, 14, 37, 254, 59], [247, 17, 211, 179, 155, 27, 51, 86, 220, 206, 166, 198, 226, 96, 28, 230, 184, 28, 60, 165, 153, 191, 146, 43, 26, 238, 91, 205, 33, 210, 174, 55], [92, 126, 214, 108, 128, 228, 133, 110, 84, 196, 241, 252, 213, 119, 58, 251, 42, 185, 74, 154, 247, 240, 135, 231, 79, 29, 241, 145, 65, 6, 166, 184], [4, 100, 130, 175, 210, 46, 165, 21, 183, 110, 231, 49, 54, 236, 211, 39, 67, 75, 9, 17, 151, 222, 7, 196, 17, 15, 186, 125, 31, 134, 231, 228], [14, 27, 54, 10, 33, 224, 74, 23, 187, 165, 74, 29, 147, 57, 110, 2, 214, 192, 145, 210, 13, 92, 179, 69, 179, 138, 103, 143, 148, 37, 218, 223], [146, 108, 44, 133, 250, 12, 224, 192, 148, 105, 121, 130, 251, 109, 38, 233, 242, 73, 138, 236, 95, 3, 17, 100, 129, 186, 108, 102, 67, 33, 196, 132], [26, 120, 153, 3, 45, 72, 100, 190, 240, 214, 205, 5, 132, 82, 115, 71, 171, 251, 252, 208, 15, 168, 186, 8, 217, 155, 160, 175, 111, 15, 192, 138], [148, 89, 239, 172, 4, 152, 122, 238, 38, 130, 141, 200, 241, 151, 1, 132, 103, 203, 174, 81, 141, 28, 183, 44, 220, 20, 252, 134, 122, 235, 161, 209], [119, 73, 27, 129, 251, 237, 223, 215, 220, 177, 112, 33, 38, 250, 240, 76, 85, 237, 138, 58, 184, 139, 71, 175, 66, 243, 116, 99, 69, 170, 86, 59], [37, 18, 94, 161, 78, 128, 39, 8, 29, 246, 75, 201, 30, 252, 176, 49, 118, 178, 37, 157, 112, 225, 28, 128, 138, 107, 140, 78, 141, 55, 43, 211], [244, 122, 116, 31, 98, 43, 10, 109, 150, 157, 185, 250, 74, 213, 78, 12, 138, 251, 114, 134, 170, 61, 130, 255, 225, 3, 5, 212, 134, 153, 120, 9], [54, 237, 40, 224, 52, 220, 251, 11, 86, 34, 85, 100, 232, 208, 129, 180, 205, 31, 105, 217, 63, 187, 124, 11, 112, 250, 230, 36, 217, 125, 60, 143], [21, 125, 227, 185, 240, 174, 134, 246, 79, 90, 231, 96, 100, 56, 47, 195, 174, 223, 99, 80, 221, 242, 109, 249, 156, 167, 215, 165, 165, 186, 55, 14], [86, 188, 164, 102, 207, 93, 53, 9, 170, 48, 58, 142, 79, 245, 203, 128, 243, 4, 171, 32, 26, 23, 174, 36, 210, 148, 77, 8, 12, 175, 119, 93], [37, 151, 7, 123, 79, 11, 205, 137, 123, 112, 150, 242, 76, 33, 61, 163, 230, 32, 60, 243, 102, 1, 74, 146, 157, 34, 223, 189, 139, 220, 70, 238], [157, 9, 245, 102, 116, 190, 72, 235, 64, 96, 61, 127, 67, 117, 211, 158, 246, 238, 73, 17, 139, 104, 208, 189, 164, 221, 156, 69, 201, 121, 248, 44], [229, 53, 192, 142, 37, 211, 222, 157, 150, 132, 197, 74, 227, 42, 16, 156, 170, 87, 47, 90, 196, 160, 137, 75, 48, 112, 172, 91, 89, 66, 166, 6]], 256) + 1 = BoundedVec([[126, 129, 11, 238, 94, 147, 247, 33, 140, 17, 238, 131, 180, 97, 57, 248, 156, 220, 168, 192, 32, 154, 162, 189, 22, 218, 16, 251, 140, 107, 60, 9], [173, 41, 197, 188, 150, 4, 254, 24, 110, 56, 206, 54, 192, 8, 29, 13, 10, 251, 86, 47, 20, 16, 6, 224, 245, 194, 231, 123, 152, 60, 177, 189], [132, 190, 226, 142, 201, 230, 182, 163, 37, 1, 245, 166, 33, 191, 155, 152, 139, 77, 189, 24, 52, 193, 6, 110, 83, 51, 29, 135, 220, 5, 44, 129], [49, 43, 33, 134, 191, 34, 139, 123, 21, 226, 132, 155, 220, 177, 192, 31, 152, 62, 201, 215, 31, 146, 118, 243, 109, 161, 1, 47, 4, 47, 39, 223], [61, 225, 3, 37, 206, 215, 241, 96, 144, 169, 189, 60, 53, 246, 208, 196, 49, 116, 107, 217, 43, 75, 242, 241, 134, 73, 211, 22, 155, 248, 45, 72], [187, 134, 74, 10, 66, 141, 59, 123, 69, 156, 22, 170, 160, 170, 200, 101, 30, 54, 237, 73, 221, 169, 14, 112, 174, 41, 245, 5, 135, 223, 116, 176], [1, 219, 36, 226, 73, 25, 9, 104, 104, 42, 64, 213, 100, 177, 91, 228, 246, 207, 156, 139, 217, 47, 66, 105, 61, 122, 85, 126, 248, 194, 249, 11], [97, 29, 141, 100, 42, 147, 175, 156, 230, 183, 53, 226, 115, 15, 190, 245, 160, 76, 127, 44, 250, 137, 52, 233, 243, 173, 180, 55, 58, 15, 211, 67], [3, 83, 152, 159, 182, 100, 92, 149, 146, 117, 245, 231, 243, 218, 208, 143, 11, 11, 124, 238, 235, 84, 148, 100, 165, 153, 57, 60, 208, 93, 155, 253], [178, 64, 47, 179, 120, 152, 239, 215, 219, 183, 45, 132, 217, 122, 112, 180, 149, 76, 213, 17, 215, 78, 195, 153, 230, 7, 141, 103, 12, 138, 108, 74], [56, 30, 254, 154, 22, 238, 45, 200, 151, 47, 204, 252, 198, 208, 192, 77, 65, 230, 211, 211, 2, 62, 104, 43, 165, 240, 196, 70, 153, 75, 229, 186], [2, 218, 104, 211, 251, 72, 207, 32, 247, 220, 168, 142, 44, 145, 24, 7, 142, 172, 22, 23, 253, 177, 43, 179, 247, 160, 89, 112, 61, 128, 8, 41], [104, 135, 38, 18, 141, 184, 108, 34, 11, 63, 79, 230, 168, 123, 169, 246, 215, 241, 29, 90, 35, 2, 73, 82, 128, 100, 50, 76, 0, 157, 94, 220], [171, 202, 126, 7, 17, 46, 154, 141, 51, 123, 199, 212, 88, 151, 31, 243, 164, 47, 74, 68, 141, 96, 182, 84, 94, 45, 195, 157, 207, 196, 106, 223], [18, 121, 209, 2, 178, 238, 110, 235, 56, 220, 103, 26, 140, 179, 133, 68, 190, 255, 205, 253, 92, 88, 82, 231, 224, 8, 71, 82, 63, 250, 53, 35], [242, 187, 206, 184, 183, 131, 250, 85, 75, 50, 104, 180, 109, 145, 222, 196, 116, 47, 223, 252, 160, 206, 64, 211, 27, 244, 167, 105, 189, 234, 124, 95], [36, 89, 74, 38, 66, 54, 80, 160, 165, 24, 79, 252, 160, 206, 178, 196, 181, 39, 199, 12, 31, 198, 104, 152, 108, 125, 173, 233, 17, 62, 98, 176], [53, 171, 197, 229, 134, 110, 157, 149, 71, 34, 250, 58, 33, 48, 127, 199, 238, 26, 84, 245, 193, 86, 242, 124, 55, 25, 61, 58, 212, 11, 103, 122], [192, 167, 192, 25, 39, 137, 215, 115, 152, 97, 103, 143, 132, 164, 252, 49, 195, 63, 119, 196, 200, 67, 83, 52, 15, 35, 128, 23, 165, 17, 66, 142], [57, 97, 10, 124, 107, 254, 50, 237, 162, 4, 231, 13, 132, 99, 15, 145, 44, 91, 25, 122, 22, 31, 14, 188, 44, 46, 30, 72, 122, 123, 50, 111], [68, 22, 246, 95, 32, 97, 53, 125, 124, 117, 244, 173, 33, 70, 202, 235, 173, 32, 10, 36, 111, 248, 80, 191, 198, 210, 102, 47, 133, 182, 29, 187], [118, 239, 175, 236, 117, 96, 109, 253, 192, 149, 208, 129, 93, 59, 57, 55, 111, 151, 175, 40, 121, 10, 72, 213, 117, 133, 211, 131, 138, 115, 70, 46], [147, 82, 251, 220, 227, 172, 70, 63, 136, 2, 89, 223, 134, 170, 177, 160, 143, 66, 225, 208, 214, 39, 172, 192, 140, 184, 173, 172, 111, 152, 195, 219], [185, 202, 147, 84, 21, 209, 22, 29, 241, 130, 6, 12, 184, 118, 1, 29, 135, 95, 242, 186, 6, 9, 147, 122, 50, 173, 230, 200, 134, 159, 231, 123], [88, 167, 251, 66, 95, 90, 247, 67, 92, 232, 117, 117, 4, 10, 96, 233, 158, 3, 146, 203, 207, 135, 88, 78, 127, 250, 247, 152, 65, 83, 136, 68], [210, 124, 76, 196, 240, 172, 45, 184, 108, 91, 77, 62, 168, 52, 54, 148, 92, 131, 176, 208, 15, 9, 153, 147, 240, 150, 250, 200, 20, 76, 195, 13], [200, 130, 237, 52, 254, 123, 108, 86, 254, 218, 27, 78, 115, 99, 121, 26, 242, 78, 33, 193, 235, 181, 228, 255, 195, 232, 233, 221, 11, 8, 140, 123], [210, 169, 216, 9, 160, 77, 35, 188, 122, 217, 81, 101, 113, 222, 77, 98, 56, 19, 128, 163, 166, 130, 20, 105, 233, 160, 166, 134, 213, 231, 31, 248], [50, 229, 158, 176, 64, 98, 241, 5, 167, 213, 166, 152, 165, 193, 217, 46, 239, 135, 204, 101, 242, 211, 234, 150, 242, 230, 146, 127, 168, 164, 24, 41], [236, 202, 126, 240, 125, 140, 79, 47, 190, 82, 235, 136, 224, 203, 124, 176, 41, 229, 130, 56, 157, 108, 19, 45, 251, 9, 23, 196, 113, 146, 229, 185], [6, 24, 221, 244, 131, 151, 186, 93, 96, 140, 228, 25, 79, 236, 170, 13, 96, 175, 87, 202, 113, 70, 255, 8, 74, 200, 17, 45, 254, 9, 39, 159], [155, 239, 33, 186, 235, 114, 120, 185, 209, 131, 55, 180, 0, 117, 122, 78, 132, 254, 109, 100, 74, 203, 101, 115, 253, 41, 245, 141, 114, 189, 72, 196], [100, 169, 120, 19, 129, 248, 198, 237, 58, 26, 18, 105, 86, 14, 78, 40, 218, 197, 30, 13, 66, 126, 164, 44, 151, 188, 16, 155, 99, 67, 37, 82], [62, 2, 66, 7, 3, 222, 53, 210, 62, 224, 11, 86, 160, 208, 50, 155, 208, 45, 209, 209, 178, 111, 35, 103, 208, 20, 241, 244, 223, 211, 59, 29], [248, 174, 220, 97, 49, 236, 107, 154, 161, 95, 241, 116, 20, 225, 240, 242, 13, 90, 208, 43, 237, 32, 147, 114, 238, 224, 36, 56, 52, 108, 209, 188], [191, 244, 170, 182, 15, 145, 6, 65, 183, 149, 198, 251, 129, 208, 197, 51, 176, 241, 41, 21, 205, 70, 225, 38, 180, 116, 137, 124, 97, 168, 79, 22], [24, 100, 119, 156, 174, 165, 143, 147, 52, 44, 141, 37, 34, 149, 198, 96, 39, 180, 1, 222, 75, 93, 63, 65, 246, 242, 179, 90, 175, 200, 114, 206], [159, 189, 210, 134, 100, 30, 80, 183, 222, 128, 217, 225, 14, 63, 141, 219, 108, 165, 8, 186, 139, 209, 103, 87, 89, 204, 31, 140, 229, 13, 152, 112], [216, 93, 219, 220, 105, 6, 107, 5, 229, 108, 151, 73, 244, 60, 172, 152, 187, 255, 117, 250, 122, 96, 177, 44, 36, 118, 251, 141, 92, 221, 199, 126], [126, 34, 100, 31, 217, 107, 159, 150, 122, 247, 170, 250, 89, 52, 120, 169, 133, 208, 243, 142, 243, 13, 19, 211, 190, 18, 141, 221, 113, 208, 193, 51], [103, 9, 102, 125, 246, 87, 154, 45, 40, 161, 127, 126, 47, 44, 149, 135, 35, 187, 142, 160, 217, 89, 236, 106, 130, 84, 25, 96, 50, 169, 242, 30], [220, 8, 159, 120, 48, 11, 62, 36, 110, 183, 51, 141, 205, 180, 100, 67, 63, 182, 133, 133, 42, 59, 195, 76, 2, 158, 170, 142, 48, 111, 70, 82], [221, 42, 55, 18, 76, 102, 59, 139, 73, 148, 155, 149, 103, 131, 23, 78, 196, 106, 139, 13, 167, 240, 206, 252, 135, 29, 26, 234, 19, 110, 72, 158], [118, 251, 177, 176, 22, 232, 49, 159, 195, 159, 23, 171, 17, 156, 87, 11, 160, 239, 139, 174, 230, 242, 147, 246, 189, 255, 151, 107, 38, 104, 218, 168], [22, 47, 112, 195, 205, 130, 119, 175, 44, 39, 183, 211, 107, 120, 192, 28, 251, 177, 61, 184, 232, 96, 255, 129, 206, 39, 226, 20, 158, 79, 241, 251], [202, 50, 118, 143, 132, 234, 223, 144, 11, 82, 19, 43, 243, 237, 178, 32, 241, 101, 179, 112, 16, 112, 212, 223, 109, 127, 19, 16, 238, 244, 151, 88]], 256) +] +Balances.Account = [ +] +Balances.Locks = [ +] +Balances.Reserves = [ +] +Balances.StorageVersion = Some(V2) +Balances.TotalIssuance = 6485316 +Cert.CertsByReceiver = [ + 1 = [(7228, 11330096), (368, 7551960), (457, 3952947), (996, 4592215), (1030, 4848292), (1098, 1450217), (1663, 4929718), (2294, 9281827), (2457, 8630182), (2712, 10294946), (2833, 4959824), (2999, 7937732), (3076, 3003297), (3467, 3602670), (3595, 2775971), (3814, 4678027), (4445, 3938380), (4647, 3251004), (4722, 1590550), (4776, 6963085), (5095, 5001914), (5131, 7729732), (5327, 597672), (5336, 1131688), (5666, 4689276), (5851, 7845039), (6420, 7583026), (6707, 4602635), (6797, 7811697), (6903, 9931549), (7139, 1362434), (2457, 11319117)] + 10 = [(2174, 9372334), (2998, 9307044), (4645, 9307044), (5682, 9307044), (5765, 9307044), (6422, 9307044)] + 100 = [(605, 8356476), (703, 8356476), (2151, 8356476), (3242, 8356476), (4716, 8356476), (5152, 8356476), (5720, 8356476), (5987, 8356476), (6727, 9420501)] + 1000 = [(1656, 4761578), (2033, 5365553), (2604, 4761578), (3017, 4761578), (4331, 5162570), (4400, 4761578), (5797, 4761578)] + 1001 = [(79, 8370742), (573, 4840803), (603, 8199458), (623, 8125360), (733, 6513034), (1190, 4840803), (2018, 7135269), (2256, 4840803), (3168, 4840803), (4138, 8196947), (4356, 4840803), (6732, 4840803), (6904, 4842050)] + 1002 = [(1893, 557389), (2914, 10249176), (6013, 557389)] + 1003 = [(556, 7366893), (929, 7419793), (2809, 7366893), (3643, 7366893), (5329, 7366893), (6148, 7366893), (7049, 7842285)] + 1004 = [(706, 9948533), (1262, 9948533), (2636, 9948533), (3924, 9967975), (3937, 9948533), (4354, 9948533), (5117, 9948533)] + 1005 = [(202, 8102623), (735, 6403752), (1494, 7455125), (1502, 8512696), (2119, 6059264), (2509, 4352683), (3500, 8399180), (3928, 5622040), (4540, 7064147), (4612, 4352683), (6067, 7483725), (6662, 4352683), (6866, 8693843), (7024, 4352683), (7093, 4352683)] + 1006 = [(364, 9280082), (1103, 9280082), (1299, 9280082), (1367, 9280082), (2971, 10313963), (4140, 9854610), (4366, 9280082), (4578, 9289945), (6959, 10088288)] + 1007 = [(2180, 7779782), (3107, 7779782), (3796, 7779782), (4112, 7779782), (4664, 7779782)] + 1008 = [(1462, 7738766), (3387, 7738766), (4265, 7738766), (4315, 7738766), (5282, 7738766)] + 1009 = [(296, 7338604), (2351, 7338604), (2810, 7338604), (3459, 7338604), (4803, 7338604)] + 101 = [(1987, 7882321), (2654, 7927894), (3191, 7882321), (3502, 7882321), (6969, 7882321)] + 1010 = [(3957, 6802309), (3998, 6776536), (4027, 6777504), (6056, 6803730), (6780, 6777504), (6922, 6777504)] + 1011 = [(199, 2800879), (603, 7541315), (775, 1127433), (1703, 8556100), (2943, 6216192), (3714, 8643087), (4133, 4682834), (6726, 9204502)] + 1012 = [(1279, 8350521), (1546, 8361456), (1627, 8350521), (2292, 8524165), (3717, 8350521), (4131, 8350521), (4225, 8608558), (4316, 8350521)] + 1013 = [(299, 8119210), (1164, 9501397), (1173, 8119210), (1602, 6513675), (2085, 5095299), (2228, 5398523), (2383, 2733597), (3074, 10012652), (3778, 1573936), (3938, 1909302), (3969, 9539475), (4400, 9268647), (4470, 2930087), (4955, 9767141), (5252, 1965904), (5768, 9419759), (6333, 9336361), (6774, 1063580), (7097, 5901922)] + 1014 = [(1490, 3280586), (2635, 3280586), (3956, 3280586), (6225, 3280586), (6736, 3280586)] + 1015 = [(1564, 2226749), (3745, 7132636), (3778, 2226749), (5913, 2226749), (7007, 2226749)] + 1016 = [(231, 9263091), (890, 9263091), (2240, 9263091), (5755, 9263091)] + 1017 = [(1629, 8794693), (1714, 8794693), (2505, 8794693), (2756, 9688689), (3232, 8794693), (5413, 8794693), (5629, 8794693)] + 1018 = [(1737, 8406958), (1952, 8434121), (2749, 8406958), (3217, 8406958), (3768, 8406958), (4178, 8406958), (4395, 8422237), (5815, 8632582), (6471, 8420400)] + 1019 = [(491, 5129318), (1904, 5902488), (2701, 6152508), (3502, 5512613), (4272, 5907967), (5608, 5480872)] + 102 = [(108, 9842958), (236, 10279305), (495, 9842958), (1780, 9844197), (2007, 9842958), (3446, 9842958), (4162, 9846537), (5079, 9842958)] + 1020 = [(1208, 4634040), (2061, 4132550), (2207, 4132550), (2397, 4132550), (2723, 4132550), (4961, 4686370)] + 1021 = [(686, 8921392), (920, 9967664), (1089, 8404328), (1211, 6314912), (4781, 6314912), (4995, 6314912), (5500, 8946589), (5502, 6314912), (6738, 8913823), (6928, 6314912), (7123, 6361689)] + 1022 = [(199, 7508545), (1310, 7508545), (1990, 8358781), (2633, 7508545), (3148, 9132061), (3963, 9380733), (4133, 9801358), (4356, 8119315), (5202, 8609225), (6400, 7508545), (6437, 8415215), (6455, 7508545), (6904, 7512872)] + 1023 = [(126, 9195442), (875, 9195442), (1404, 9195442), (4064, 9195442), (5325, 9235604), (5423, 9223740), (7038, 9195442)] + 1024 = [(1992, 8543992), (2238, 9660231), (3149, 9123170), (3493, 8174567), (4110, 9007261), (4209, 8616147), (4453, 8228093), (4556, 9238816), (4905, 9382996), (4914, 7971747), (5074, 7457001), (5146, 9991428), (5201, 7457001), (5265, 7457001), (5512, 9811264), (5517, 7457001), (6991, 7457001), (7184, 9861750)] + 1025 = [(1133, 3669288), (1173, 3970403), (2235, 5694940), (3083, 3092659), (3395, 3493892), (3763, 3691444), (3807, 3707282), (4096, 3493810), (4148, 1868556), (6395, 3493850), (6905, 5093422), (7035, 7800057)] + 1026 = [(346, 5955601), (3318, 5955601), (5120, 5955601), (5422, 5955601), (6656, 5955601)] + 1027 = [(875, 10050405), (1598, 10101272), (2516, 10050405), (4064, 10050405), (5423, 10050405), (5883, 10050405), (6136, 10088025), (6765, 10069066)] + 1028 = [(532, 7184320), (617, 6804301), (707, 5125949), (713, 6975260), (1095, 6386727), (1302, 9352665), (2335, 9843540), (2509, 4111027), (2770, 4111027), (2969, 7672812), (3437, 10231628), (4302, 4111027), (4630, 9178893), (5041, 4142080), (5649, 9990572), (5713, 7857257), (6105, 6458868), (6386, 4111027), (7024, 4568943), (7182, 6329496)] + 1029 = [(1096, 8462703), (2063, 10089978), (3274, 8462431), (4725, 8462431), (4790, 10101641), (5368, 8462431), (5741, 8462431), (6762, 8516833)] + 103 = [(5, 9715974), (2799, 9715974), (4822, 9715974), (5839, 9715974), (5980, 9715974), (6704, 9715974), (6705, 9715974)] + 1030 = [(1, 9750256), (114, 4916766), (350, 1984476), (503, 2380991), (530, 2171311), (604, 1603327), (635, 3517151), (668, 4789334), (996, 4375788), (1058, 6017497), (1141, 1998886), (1684, 4372108), (1954, 897335), (2212, 5024865), (2311, 6017132), (2663, 5253982), (2712, 1739882), (2718, 5497130), (3096, 4483230), (3108, 8445457), (3519, 1737134), (3970, 1290493), (4175, 8701712), (4969, 1522818), (5089, 9239521), (5124, 1402545), (5155, 4396677), (5173, 4627420), (5339, 2007004), (5594, 2684172), (5916, 7581349), (6021, 3518653), (6032, 5064276), (6094, 7188795), (6135, 9081040), (6216, 1459257), (6262, 4416785), (6302, 8183770), (6371, 4454712)] + 1031 = [(814, 8069368), (838, 8041349), (1113, 8041349), (1164, 8041349), (1642, 8041349), (3301, 9558897), (3566, 10063834), (3926, 9498546), (4181, 8041349), (4416, 9325097), (4577, 10329386)] + 1032 = [(258, 9427681), (645, 9396973), (1157, 9396973), (1546, 9396973), (1555, 10184116), (4038, 9396973), (4262, 9396973), (5140, 9396973), (6840, 9738881)] + 1033 = [(214, 7155601), (476, 7155601), (571, 7155601), (1171, 7155601), (3978, 7155601), (5320, 7155601)] + 1034 = [(42, 7679831), (174, 10221416), (2709, 7679831), (3659, 7679831), (4183, 7679831), (6734, 9472344), (7194, 7679831)] + 1035 = [(1372, 9963713), (1466, 9963713), (2629, 9963713), (4355, 9963713), (6071, 9963713)] + 1036 = [(21, 7438689), (1226, 7438689), (1945, 7438689), (2317, 7438689), (3780, 7438689), (5771, 9212086), (6006, 7438689)] + 1037 = [(560, 9760181), (1357, 8436548), (1409, 8643859), (2427, 4188749), (2560, 8449226), (2965, 9209698), (3098, 7923267), (3363, 10171004), (3476, 9499694), (3785, 8198372), (3826, 7909733), (4124, 4188749), (4191, 4188749), (4407, 4818035), (4694, 9582512), (4714, 7450315), (5256, 6860404), (5376, 4188749), (5645, 9370782), (6450, 9501683), (6705, 6751737), (6767, 6746672), (6894, 4226908), (7000, 4188749), (7132, 4299129), (7182, 8434447)] + 1038 = [(3384, 7427295), (3779, 7427295), (4055, 7427295), (6490, 7427295), (6980, 7427295)] + 1039 = [(179, 8865844), (253, 8865844), (564, 9482559), (670, 8865844), (2469, 9266332), (3077, 8865844), (4095, 8865844), (5028, 8908015), (6676, 8903965)] + 104 = [(487, 9983876), (1787, 9983876), (2817, 9983876), (3497, 9983876), (6587, 10232267), (7202, 9983876)] + 1040 = [(42, 8291366), (773, 9110854), (887, 10246215), (1204, 9219100), (2383, 8291366), (2566, 9483623), (3377, 8291366), (3501, 9343313), (4636, 8291366), (5587, 9350019), (5889, 8291366), (6003, 9948422)] + 1041 = [(1737, 6461573), (2731, 6461573), (3217, 6461573), (4178, 6461573), (4395, 6461573)] + 1042 = [(350, 7212847), (1818, 7212847), (4259, 8673132), (4703, 7212847), (5867, 7212847)] + 1043 = [(179, 6272099), (213, 9627773), (504, 10306659), (599, 8055876), (1162, 9744560), (2181, 9956751), (3132, 6272099), (3220, 9326184), (3415, 6272099), (3818, 9523957), (4801, 9925747), (5355, 6272099), (6385, 6272099)] + 1044 = [(26, 5179998), (275, 4095126), (299, 2959992), (347, 4266119), (839, 5238149), (902, 6359527), (958, 5395713), (1265, 5786407), (1311, 6959246), (1518, 2383249), (1530, 5972273), (1759, 7427606), (1974, 4275183), (2686, 4342521), (2768, 7354570), (2773, 9368384), (2795, 2383249), (2809, 2559955), (2859, 8691737), (3185, 7512315), (3331, 4770935), (3453, 8418070), (3844, 6546992), (4353, 4353976), (4760, 2383249), (5388, 4273172), (5598, 4353917), (5634, 6228622), (5913, 2383249), (6169, 8348733), (6208, 8359532), (6300, 5597544), (6413, 6012664), (6590, 8332301), (6604, 6642216), (6605, 2383249), (6636, 9671980), (6819, 7120707), (7161, 4573770)] + 1045 = [(373, 5065243), (2664, 6128605), (3901, 5065243), (6041, 5065243)] + 1046 = [(1394, 5664391), (2062, 5664391), (3647, 5664391), (3767, 10278211), (4919, 5664391), (5370, 5664391)] + 1047 = [(910, 10004875), (4054, 10004875), (4733, 10004875), (5466, 10004875), (6703, 10004875)] + 1048 = [(665, 6905994), (1152, 6821769), (1153, 6821769), (1757, 6821769), (2192, 6906033), (2892, 6821769), (3473, 6821769), (3500, 8615403), (3666, 6821769), (6343, 9134593), (6650, 9003171)] + 1049 = [(366, 1551726), (1187, 1551726), (2195, 1551726), (3478, 8444811), (6576, 1551726), (6909, 1551726)] + 105 = [(993, 1117726), (1263, 1116358), (1342, 1230574), (3199, 1116358), (4048, 5769670), (5240, 2672769), (6044, 5456210), (6580, 4556598)] + 1050 = [(635, 7681941), (1058, 7860296), (1724, 4746614), (1971, 7729732), (2450, 4746614), (2668, 8184177), (3490, 10330331), (4394, 4746614), (4607, 4746614), (6338, 4746614)] + 1051 = [(715, 7768051), (2869, 7768051), (3027, 7768051), (6780, 7768051), (6937, 7768051)] + 1052 = [(807, 6920754), (893, 6960310), (3271, 6920754), (4147, 6920754), (4334, 7295403), (5220, 8082121), (6380, 6920754), (6818, 6920754)] + 1053 = [(577, 5767125), (2362, 3057186), (2763, 5767816), (3400, 7818057), (3906, 7089730), (4300, 5913171), (4942, 6690288), (6430, 2422977), (6605, 9616588), (6674, 6547791), (6729, 6548178)] + 1054 = [(482, 7544132), (1102, 7544132), (2473, 7544132), (6029, 7544132), (7061, 7544132)] + 1055 = [(657, 3173481), (661, 8799511), (1361, 3173481), (1749, 5292389), (2197, 9213237), (2682, 8233068), (3377, 4837539), (4081, 3173481), (4387, 3475475), (5155, 3173481), (5850, 3259859), (6894, 3461910), (7000, 3173481), (7022, 3201377)] + 1056 = [(621, 8953801), (1521, 8953801), (2051, 8953801), (2190, 8953801), (4491, 8953801)] + 1057 = [(4470, 3711546), (4890, 3682129), (5188, 3682129), (5427, 3682129), (6156, 3682129)] + 1058 = [(530, 2387516), (2718, 4799583), (4175, 8773939), (4380, 8571846), (5431, 8630182), (6262, 8261872)] + 1059 = [(252, 3770261), (1096, 1233375), (1166, 1233375), (3537, 1233375), (4722, 1369497), (6296, 2976750), (6506, 1233375)] + 106 = [(1043, 9472758), (1075, 9472758), (3220, 9472758), (3821, 9472758), (6464, 9472758)] + 1060 = [(137, 4244779), (1551, 4139699), (2212, 4952807), (2849, 4122788), (3322, 4197051), (4315, 4130015), (4546, 5309278), (5155, 4155493), (6010, 4185113)] + 1061 = [(1542, 10157817), (2898, 10157817), (3155, 10157817), (4844, 10157817), (5174, 10157817)] + 1062 = [(458, 5105651), (721, 2823737), (1433, 2805175), (1451, 5779602), (1580, 2805175), (2267, 3502474), (2698, 2805175), (3825, 2805175), (5056, 2805175), (5280, 2958226), (5846, 3562000)] + 1063 = [(160, 9088441), (1478, 9088441), (1687, 9088441), (2677, 9088441), (3264, 9391233), (3544, 9088441), (4444, 9088441), (4947, 9349663)] + 1064 = [(517, 7556026), (1797, 7556026), (4018, 7484209), (4722, 7628129), (4941, 9603902), (5564, 546560), (5972, 7556026)] + 1065 = [(1591, 9036508), (2954, 9036508), (3360, 9036508), (5876, 9036508), (6236, 9036508)] + 1066 = [(9, 2153548), (1120, 704996), (1638, 5850115), (1722, 6273672), (2175, 704996), (2201, 704996), (4297, 1865343), (4460, 746427), (5774, 7449100), (6812, 704996), (7042, 4357095)] + 1067 = [(1519, 9861943), (1552, 9861943), (2051, 9861943), (3808, 9861943), (3816, 9861943)] + 1068 = [(304, 8967126), (506, 9697219), (806, 4137218), (1455, 7643590), (1764, 4137218), (2548, 4137218), (3758, 10343402), (3792, 8837553), (3796, 4742864), (4403, 8866984), (4566, 4137218), (5430, 6618097), (6477, 4137218)] + 1069 = [(532, 7328510), (707, 4477037), (1028, 4477037), (1037, 4477037), (1095, 8022022), (3130, 10163879), (4124, 4477037), (4302, 4546093), (4732, 7111829), (5376, 4477037), (5649, 10191933)] + 107 = [(13, 10321575), (109, 9357882), (2113, 9357882), (2542, 9387435), (2939, 10178196), (3305, 9357882), (4401, 9357882), (4616, 9357882), (5654, 9357882), (6801, 9357882)] + 1070 = [(547, 9487003), (1336, 9487003), (1534, 9487003), (1551, 9487003), (1697, 9487003)] + 1071 = [(2965, 9876474), (3063, 9876474), (3472, 10293953), (5256, 9876474), (5531, 9876474), (6705, 9876474)] + 1072 = [(2808, 9299287), (2965, 9353851), (3063, 9299287), (4245, 9299287), (5256, 9321662), (5531, 9299287), (6705, 9299287), (6749, 9301797)] + 1073 = [(235, 9932465), (551, 7857023), (881, 7857023), (4283, 7857023), (4817, 7857023), (5671, 7857023)] + 1074 = [(1819, 3378280), (4400, 3378280), (5962, 3378280), (6931, 3378280)] + 1075 = [(179, 7038005), (302, 7038005), (2075, 7179765), (2241, 7038005), (2419, 8225158), (3084, 8413281), (4665, 7038005), (5278, 9437802), (5361, 10114907), (5637, 8080999), (6848, 7038005)] + 1076 = [(380, 3133334), (1077, 4325558), (2196, 4413291), (2208, 3133334), (3190, 3133334), (3344, 4416888), (4710, 3133334), (4734, 3821104), (5580, 4541896), (6113, 4428304), (6827, 3133334), (6963, 4644758)] + 1077 = [(380, 3205399), (1076, 4325558), (2196, 4557440), (2208, 3205399), (3190, 3205399), (3344, 4561044), (4710, 3205399), (4734, 3965239), (5580, 4469709), (6113, 4500395), (6827, 3205399), (6963, 4716830)] + 1078 = [(271, 8806024), (1405, 8798037), (2694, 7442181), (2750, 7442181), (3814, 9030039), (4045, 9181184), (5405, 7442181), (5670, 7442181), (5823, 7442181)] + 1079 = [(2679, 9616392), (3060, 9616392), (3592, 9616392), (5433, 9616392), (6201, 9616392), (6391, 9651454)] + 108 = [(47, 7436613), (102, 10227695), (564, 7963942), (746, 7580877), (1295, 8292425), (1303, 8417465), (1623, 7292549), (2185, 8248478), (2561, 8091495), (2791, 7766991), (3447, 9841557), (3664, 10309614), (3898, 8031215), (4812, 8865844), (4988, 7869337), (5079, 8650333), (5878, 7292549), (5909, 10279132), (6055, 7414268), (6153, 7292549), (6160, 7292549), (6572, 7292549), (7038, 7294973)] + 1080 = [(261, 6987860), (668, 5264435), (975, 6084370), (1405, 5841661), (1663, 5423991), (2041, 5264435), (3303, 5264435), (4717, 6772141), (5729, 5264435), (7180, 10106654)] + 1081 = [(1848, 6129293), (4046, 6129293), (4107, 6129293), (4144, 6129293), (5115, 9601705), (6386, 6129293), (6816, 6143480)] + 1082 = [(241, 10250194), (501, 10249766), (629, 10249766), (1312, 10249766), (1951, 10249766), (3819, 10249766)] + 1083 = [(1546, 10104822), (2093, 10142791), (4262, 10104822), (4517, 10184633), (4665, 10104822), (5308, 10104822), (5782, 10104822), (6770, 10104822)] + 1084 = [(1120, 7511415), (1802, 7511415), (2264, 7511415), (2791, 7550734), (3208, 9976931), (4458, 7550734), (4633, 7550734), (4651, 7558264), (4746, 7511415), (4825, 7550734), (6092, 7623186), (6297, 7511415), (6812, 7538297)] + 1085 = [(34, 9672882), (1358, 7951971), (1817, 7157053), (2482, 7887387), (3178, 7157053), (3932, 9681905), (4345, 8258130), (5724, 9284515), (6440, 7157053), (6894, 7157053), (7000, 7157053)] + 1086 = [(499, 6404604), (3897, 6404604), (4233, 6404604), (5219, 6404604), (5553, 6404604)] + 1087 = [(745, 9588389), (867, 9588389), (1955, 9588389), (1989, 9588389), (7076, 9648959), (7153, 9654642)] + ... +7234 hidden +] +Cert.StorageCertsRemovableOn = [ + 10000294 = [(523, 2011), (1794, 5001)] + 10000350 = [(457, 2505), (5167, 4628)] + 10000640 = [(4913, 2329), (1630, 6140), (2343, 6140), (3126, 6140), (3796, 6140), (6876, 6140)] + 10000761 = [(4488, 6931)] + 10000993 = [(929, 2809)] + 10001107 = [(1068, 3758)] + 10001160 = [(792, 5103), (3707, 5103), (3711, 5103), (6601, 5103), (6617, 5103)] + 10001210 = [(4792, 2275)] + 10001604 = [(6378, 3620)] + 10002152 = [(4487, 3784)] + 10002238 = [(4757, 3591), (7131, 5003)] + 10002407 = [(300, 295), (2280, 295), (3315, 295), (3772, 295), (5767, 295), (707, 1371), (113, 4471), (772, 4471), (1611, 4471), (3425, 4471), (3451, 4471), (3990, 5777), (4390, 5777), (4407, 5777), (5874, 5777), (7038, 5777), (2509, 6451)] + 10002611 = [(84, 72), (6467, 919), (7174, 1464), (2973, 5426)] + 10002691 = [(1127, 6378)] + 10002874 = [(4660, 6402)] + 10002972 = [(1523, 6880)] + 10003075 = [(102, 4162)] + 10003257 = [(1231, 2998)] + 10003394 = [(5074, 1266), (6140, 3796)] + 10003467 = [(4493, 5433)] + 10003540 = [(3664, 3218)] + 10003614 = [(4116, 6070), (3553, 7053)] + 10003685 = [(6903, 2382)] + 10004114 = [(4395, 2028)] + 10004272 = [(3218, 1295), (5014, 5885)] + 10004421 = [(3257, 4139)] + 10004644 = [(2494, 4549)] + 10004717 = [(480, 2187), (1670, 2187), (1694, 2187), (5160, 2187), (7059, 2187)] + 10004796 = [(701, 1858), (4067, 6467)] + 10004875 = [(910, 1047), (4054, 1047), (4733, 1047), (5466, 1047), (6703, 1047), (347, 2522), (556, 2522), (1003, 2522), (2740, 2522), (6916, 2522), (4983, 5619)] + 10004951 = [(598, 1289), (4321, 1289), (6574, 1289), (1854, 2986), (4221, 5583), (440, 7163), (2483, 7163), (5229, 7163), (5278, 7163), (6595, 7163)] + 10005113 = [(846, 2457), (2723, 4341)] + 10005190 = [(99, 4285)] + 10005419 = [(1685, 3847), (4781, 4012)] + 10005569 = [(613, 2606), (3429, 2606), (4179, 2606), (4308, 2606), (4699, 2606), (1109, 3133), (3129, 3133), (5686, 3133), (5745, 3133), (5781, 3133)] + 10005793 = [(550, 6319), (619, 6319), (3022, 6319), (4978, 6319), (5860, 6319)] + 10006013 = [(756, 566)] + 10006142 = [(1508, 4341)] + 10006338 = [(3901, 3510)] + 10006466 = [(4682, 5652)] + 10006521 = [(3562, 295), (4723, 1919), (6308, 2614)] + 10006618 = [(3692, 1680)] + 10006694 = [(7053, 1474)] + 10006730 = [(3110, 3183)] + 10006835 = [(7143, 2113)] + 10007262 = [(1043, 2344), (2462, 2344), (3818, 2344), (5243, 2344), (5637, 2344)] + 10008975 = [(3626, 1536)] + 10010935 = [(3802, 2330), (2584, 6030)] + 10011378 = [(635, 4607)] + 10011643 = [(589, 3725)] + 10012019 = [(5696, 381), (2791, 4283)] + 10012652 = [(3074, 1013)] + 10012700 = [(4965, 1157)] + 10012841 = [(1240, 4345)] + 10012892 = [(6156, 567), (3232, 1344), (49, 4092)] + 10013363 = [(7072, 4085)] + 10013474 = [(2592, 5651)] + 10013750 = [(476, 4267)] + 10014142 = [(6169, 3844), (1023, 5883), (1404, 5883), (2107, 5883), (4158, 5883), (5596, 5883), (1195, 7101)] + 10014254 = [(5501, 1314)] + 10014327 = [(5513, 4029), (6302, 4938)] + 10014398 = [(744, 5161)] + 10014469 = [(3634, 5290)] + 10014608 = [(4142, 2989), (5140, 3281)] + 10014673 = [(7171, 3529), (3294, 4341), (5823, 5468)] + 10015045 = [(207, 355), (6102, 1698), (1184, 6520), (6228, 6780)] + 10015104 = [(4647, 3418)] + 10015161 = [(2958, 3396)] + 10015383 = [(6163, 1781), (5793, 4231)] + 10015488 = [(5464, 6206)] + 10015677 = [(2983, 633)] + 10015707 = [(1770, 350)] + 10015765 = [(1034, 174), (2337, 174), (2802, 174), (4695, 174), (6734, 174), (3149, 5512)] + 10015793 = [(488, 313), (2422, 1294), (2490, 3305)] + 10015850 = [(2719, 2330)] + 10015938 = [(2521, 5032), (6136, 5883)] + 10015996 = [(429, 308), (4651, 308), (6014, 308), (6587, 308), (6812, 308), (251, 2521)] + 10016054 = [(5032, 251), (4597, 3767)] + 10016087 = [(3529, 3501)] + 10016386 = [(4100, 5442)] + 10016457 = [(1515, 4169)] + 10016535 = [(2092, 1697)] + 10016577 = [(3898, 6696)] + 10016663 = [(3230, 3778)] + 10016801 = [(6980, 3802)] + 10016850 = [(2329, 267), (2997, 267), (4832, 267), (5062, 267), (5982, 267)] + 10016949 = [(2949, 2418)] + 10016997 = [(21, 3454)] + 10017092 = [(5067, 4494)] + 10017142 = [(6854, 1757)] + 10017244 = [(2632, 3746), (3969, 4972)] + 10017296 = [(1011, 2257), (2080, 2257), (2917, 2257), (2943, 2257), (3714, 2257)] + 10017349 = [(5459, 2073)] + 10017403 = [(3876, 2344)] + 10017456 = [(1885, 6110)] + 10017514 = [(5681, 1817), (3452, 4783)] + 10017624 = [(3946, 6676)] + 10017877 = [(3374, 1266)] + 10017974 = [(5290, 3634)] + ... +29925 hidden +] +Cert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 29, next_issuable_on: 0, received_count: 32 } + 10 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + 100 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 9 } + 1000 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 7 } + 1001 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 13 } + 1002 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 1003 = IdtyCertMeta { issued_count: 11, next_issuable_on: 0, received_count: 7 } + 1004 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 7 } + 1005 = IdtyCertMeta { issued_count: 14, next_issuable_on: 0, received_count: 15 } + 1006 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 9 } + 1007 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1008 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1009 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 5 } + 101 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1010 = IdtyCertMeta { issued_count: 8, next_issuable_on: 0, received_count: 6 } + 1011 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 8 } + 1012 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 8 } + 1013 = IdtyCertMeta { issued_count: 26, next_issuable_on: 0, received_count: 19 } + 1014 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1015 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1016 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 4 } + 1017 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 7 } + 1018 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 9 } + 1019 = IdtyCertMeta { issued_count: 1, next_issuable_on: 0, received_count: 6 } + 102 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 8 } + 1020 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 6 } + 1021 = IdtyCertMeta { issued_count: 8, next_issuable_on: 0, received_count: 11 } + 1022 = IdtyCertMeta { issued_count: 14, next_issuable_on: 0, received_count: 13 } + 1023 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 7 } + 1024 = IdtyCertMeta { issued_count: 21, next_issuable_on: 0, received_count: 18 } + 1025 = IdtyCertMeta { issued_count: 15, next_issuable_on: 0, received_count: 12 } + 1026 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 5 } + 1027 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 8 } + 1028 = IdtyCertMeta { issued_count: 23, next_issuable_on: 0, received_count: 20 } + 1029 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 8 } + 103 = IdtyCertMeta { issued_count: 1, next_issuable_on: 0, received_count: 7 } + 1030 = IdtyCertMeta { issued_count: 40, next_issuable_on: 0, received_count: 39 } + 1031 = IdtyCertMeta { issued_count: 15, next_issuable_on: 0, received_count: 11 } + 1032 = IdtyCertMeta { issued_count: 9, next_issuable_on: 0, received_count: 9 } + 1033 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + 1034 = IdtyCertMeta { issued_count: 5, next_issuable_on: 0, received_count: 7 } + 1035 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1036 = IdtyCertMeta { issued_count: 5, next_issuable_on: 0, received_count: 7 } + 1037 = IdtyCertMeta { issued_count: 30, next_issuable_on: 0, received_count: 26 } + 1038 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 5 } + 1039 = IdtyCertMeta { issued_count: 5, next_issuable_on: 0, received_count: 9 } + 104 = IdtyCertMeta { issued_count: 4, next_issuable_on: 7550, received_count: 6 } + 1040 = IdtyCertMeta { issued_count: 10, next_issuable_on: 0, received_count: 12 } + 1041 = IdtyCertMeta { issued_count: 12, next_issuable_on: 0, received_count: 5 } + 1042 = IdtyCertMeta { issued_count: 9, next_issuable_on: 0, received_count: 5 } + 1043 = IdtyCertMeta { issued_count: 26, next_issuable_on: 0, received_count: 13 } + 1044 = IdtyCertMeta { issued_count: 56, next_issuable_on: 0, received_count: 39 } + 1045 = IdtyCertMeta { issued_count: 10, next_issuable_on: 0, received_count: 4 } + 1046 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 6 } + 1047 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1048 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 11 } + 1049 = IdtyCertMeta { issued_count: 1, next_issuable_on: 0, received_count: 6 } + 105 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 8 } + 1050 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 10 } + 1051 = IdtyCertMeta { issued_count: 1, next_issuable_on: 0, received_count: 5 } + 1052 = IdtyCertMeta { issued_count: 11, next_issuable_on: 0, received_count: 8 } + 1053 = IdtyCertMeta { issued_count: 15, next_issuable_on: 0, received_count: 11 } + 1054 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1055 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 14 } + 1056 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 5 } + 1057 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 5 } + 1058 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 6 } + 1059 = IdtyCertMeta { issued_count: 9, next_issuable_on: 0, received_count: 7 } + 106 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1060 = IdtyCertMeta { issued_count: 11, next_issuable_on: 0, received_count: 9 } + 1061 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1062 = IdtyCertMeta { issued_count: 12, next_issuable_on: 0, received_count: 11 } + 1063 = IdtyCertMeta { issued_count: 10, next_issuable_on: 0, received_count: 8 } + 1064 = IdtyCertMeta { issued_count: 9, next_issuable_on: 0, received_count: 7 } + 1065 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 5 } + 1066 = IdtyCertMeta { issued_count: 12, next_issuable_on: 0, received_count: 11 } + 1067 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1068 = IdtyCertMeta { issued_count: 23, next_issuable_on: 0, received_count: 13 } + 1069 = IdtyCertMeta { issued_count: 14, next_issuable_on: 0, received_count: 11 } + 107 = IdtyCertMeta { issued_count: 12, next_issuable_on: 0, received_count: 10 } + 1070 = IdtyCertMeta { issued_count: 5, next_issuable_on: 0, received_count: 5 } + 1071 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 6 } + 1072 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 8 } + 1073 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 6 } + 1074 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 4 } + 1075 = IdtyCertMeta { issued_count: 17, next_issuable_on: 0, received_count: 11 } + 1076 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 12 } + 1077 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 12 } + 1078 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 9 } + 1079 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + 108 = IdtyCertMeta { issued_count: 28, next_issuable_on: 0, received_count: 23 } + 1080 = IdtyCertMeta { issued_count: 11, next_issuable_on: 0, received_count: 10 } + 1081 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 7 } + 1082 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + 1083 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 8 } + 1084 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 13 } + 1085 = IdtyCertMeta { issued_count: 18, next_issuable_on: 0, received_count: 11 } + 1086 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1087 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + ... +7234 hidden +] +Grandpa.CurrentSetId = Some(19) +Grandpa.NextForced = Some(982296) +Grandpa.PendingChange = None +Grandpa.SetIdSession = [ + 0 = 12 + 1 = 37 + 10 = 1557 + 11 = 1561 + 12 = 1582 + 13 = 1603 + 14 = 1614 + 15 = 1622 + 16 = 1670 + 17 = 2035 + 18 = 2049 + 19 = 2123 + 2 = 66 + 3 = 429 + 4 = 502 + 5 = 1137 + 6 = 1511 + 7 = 1536 + 8 = 1553 + 9 = 1554 +] +Grandpa.Stalled = None +Grandpa.State = None +Identity.CounterForIdentities = Some(7131) +Identity.Identities = [ + 1 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...), removable_on: 0, status: IdtyStatus::Validated } + 10 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: db28745d1624979b12b316f29722431c7ab87a5f9117cafad8ceebed1bc4665e (5H24Mv5C...), removable_on: 0, status: IdtyStatus::Validated } + 100 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8917f3302395bde11522b589df9c5ff50d24abe84084f1b45809c74a06fdc24c (5FATXorj...), removable_on: 0, status: IdtyStatus::Validated } + 1000 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e08e0ec3bbc6fbf19cf26d6731b6de51c92ad6f383be1b73cd3b940985c264ed (5H98nPCc...), removable_on: 0, status: IdtyStatus::Validated } + 1001 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 50abb69ee7bbdb5b2289e6daab7b4c2856526517871736fb96a614d0b803145d (5DtUhQWV...), removable_on: 0, status: IdtyStatus::Validated } + 1003 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(6)) }, next_creatable_identity_on: 0, old_owner_key: Some((91ad4bde950bf3afe320f6e9d1142bfbaa97c2efcbc0c60bafac6564af8e3205 (5FMiHCu9...), 76347)), owner_key: 1c7763b151c7fbda2b2376211ff00ad2a3cb8856e918eeb99807d075d61d0d39 (5Ci2fTws...), removable_on: 0, status: IdtyStatus::Validated } + 1004 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 9c42d756008793188159b1eae20e95ee75ab569e7597c6813e027fc82b8efe81 (5FbbBaMU...), removable_on: 0, status: IdtyStatus::Validated } + 1005 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0a55689f593cf37ba16fb8ee21c13faf94ce395ec09199d43a14313a010a7367 (5CJFhzua...), removable_on: 0, status: IdtyStatus::Validated } + 1006 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b400f4287908ad943d80e7c9bd3d0792e9a0ca01e4c4ebc5251ed9f6bcb6d509 (5G8im1yh...), removable_on: 0, status: IdtyStatus::Validated } + 1007 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 4e133079ca99b1ec85e5a6865595abccc95cd2fdbce17e8cf17eca1e08e04ba8 (5Dq5HvYw...), removable_on: 0, status: IdtyStatus::Validated } + 1008 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 073a1b74a57e80cbe30f78830d1b2b3e3bc128b2e92146a3feaa4c131041dd64 (5CEBTGsm...), removable_on: 0, status: IdtyStatus::Validated } + 1009 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 9321b744a56fc201c30df28eb04d764c0c4619013db33ad4a03b14124e6c48ab (5FPcuqxv...), removable_on: 0, status: IdtyStatus::Validated } + 101 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bfa43312f13ad00b0219c7cdd8b83a1a80dc9deff3aa2f8425cadeaa2e720fb9 (5GPynE8S...), removable_on: 0, status: IdtyStatus::Validated } + 1010 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e5975174eb03bad2261d12c6cf2b483712eb017bfbd25024bc6ba70dc0c2a187 (5HFjmpox...), removable_on: 0, status: IdtyStatus::Validated } + 1011 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0fac64b1f3bde90d23299cb9657cd21111203320e1b9ae220d6b861b6e0d6ae7 (5CRFnbZ3...), removable_on: 0, status: IdtyStatus::Validated } + 1012 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8a50c207aa374c95d826b146a8e2f094cf78f509a33482baf6df214b179cbf91 (5FC4TN6x...), removable_on: 0, status: IdtyStatus::Validated } + 1013 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 53dc3300e2cbcb6a764e1c8243b476ee4947b954440bd648a1161c96eea2ccfc (5DxfF8W8...), removable_on: 0, status: IdtyStatus::Validated } + 1014 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: dc03f10a8a6452549b1f61227fc8d790dda942b9f921eb34c2dea253f8603607 (5H3BZb8L...), removable_on: 0, status: IdtyStatus::Validated } + 1015 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b4641ed4852fa9c61fc36dab3818deabfc1ebc58af3a078cc046a224f0b819ee (5G9EDcuf...), removable_on: 0, status: IdtyStatus::Validated } + 1016 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d1c66abdbc84fbd91194886ca5f8a16ffa024026f8933c1c51cd64b882637fbf (5GokomiM...), removable_on: 0, status: IdtyStatus::Validated } + 1017 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 3bf794cf8ae987ed81e0e3c7d9183d3b1b4894b677da90487b300f9dc4c9e99b (5DRLEFqK...), removable_on: 0, status: IdtyStatus::Validated } + 1018 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bba043895a5a92c35f534f90a632ffe357c31231ce2a2befdfe072abf76999a7 (5GJiRJng...), removable_on: 0, status: IdtyStatus::Validated } + 1019 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bdb68f8f60dca8188d143aabd06589a9016dcdf2ef7a4729c8344625427718b1 (5GMT92gu...), removable_on: 0, status: IdtyStatus::Validated } + 102 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8930631ba608ec7940d0e14fea807ddb58cffbf7195688fcacdb578423ec9c1c (5FAanrMA...), removable_on: 0, status: IdtyStatus::Validated } + 1020 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c66b7114824467f0d8cc12c83dceda5fd20399d0ff6f6bc55fc7f46c83b06f8a (5GYsFki8...), removable_on: 0, status: IdtyStatus::Validated } + 1021 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0286d9298d50f733f1f2a07c0d217401081b43c623ff92a035c314535772eadb (5C821c4a...), removable_on: 0, status: IdtyStatus::Validated } + 1022 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b393ceaedea2b6d16d094222754575786433506f5025b94ee3aa1b5bdd9437e2 (5G8ALUAf...), removable_on: 0, status: IdtyStatus::Validated } + 1023 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b142536798462083127cb2196c1e7415dae273c1ea713a35c57a9d26bd6bb91d (5G58327h...), removable_on: 0, status: IdtyStatus::Validated } + 1024 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: f0262e6cf79ce71899808ad7139bdc318b4f231ae6708ead3880a55ddc8cef1f (5HVah5CT...), removable_on: 0, status: IdtyStatus::Validated } + 1025 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7d0db875975f2cda0970e939d373155f9d462342f3d97cb3486043588d058a37 (5EtfvERp...), removable_on: 0, status: IdtyStatus::Validated } + 1026 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 89e3bb2151d7e4aa28d3dae7bda49c985ab57a14bb089bf0fba45efe7c088905 (5FBW4seQ...), removable_on: 0, status: IdtyStatus::Validated } + 1027 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: f86c5f0b2b9428dde8ca7fa3a56a3b9166ea4161f2628a3bf521a58d179dd33a (5HgRvdpv...), removable_on: 0, status: IdtyStatus::Validated } + 1028 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d8e59f9e3ebeeb1e6e02925f31026e2c15c00b4a9077f171931881f4bc28d03d (5Gy6QtXm...), removable_on: 0, status: IdtyStatus::Validated } + 1029 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e3765dc33ce23384455b36b3c2a8de53b50c601ba98883cc3d2b17b59bff82b8 (5HCwtXE8...), removable_on: 0, status: IdtyStatus::Validated } + 103 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8dedf878570379d00981ae150365846e5cd3a18218c2e768fe83954d934a5b12 (5FGoJQbT...), removable_on: 0, status: IdtyStatus::Validated } + 1030 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 54ce8e247ac6b2fddedb4b30c71b630dffdd71aa3e8eb0a62d1e49beb6998732 (5DyuEpvQ...), removable_on: 0, status: IdtyStatus::Validated } + 1031 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: ba3a6e2ed9041e4fbb849d57b8a0942fe3591a8e4bc91b270a00b0e264e88a89 (5GGt7ysU...), removable_on: 0, status: IdtyStatus::Validated } + 1032 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(6)) }, next_creatable_identity_on: 0, old_owner_key: Some((4094a772fb68a6897a63ad22631b7b139902b3ca8518e0ba4cd10ce0b2499b37 (5DXP5feu...), 77960)), owner_key: d8904850e4f3b9bba77265070b1e4e9979e925da5f6bddcb3570c3fa5cd7946a (5Gxf4VpP...), removable_on: 0, status: IdtyStatus::Validated } + 1033 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d5fe5f66f0eb04e3876c71df2c083975bfa16d05d2fe852952343a98b167ec80 (5GuHcyXP...), removable_on: 0, status: IdtyStatus::Validated } + 1034 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 1ce2781b873c5d5104172570b0e96116a44f2e240eb7283ed76d985198f5b457 (5CiaUQXc...), removable_on: 0, status: IdtyStatus::Validated } + 1035 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 69388e3366bf26b7e8fd8ecd87111479e8f5c624d5240e419346194f9b68f32c (5ESfgiQV...), removable_on: 0, status: IdtyStatus::Validated } + 1036 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b796229c25e9506246cf4241ff306f8dc9e41acfc1db77905e72e748b92e03bf (5GDRDgkc...), removable_on: 0, status: IdtyStatus::Validated } + 1037 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7a3692af2b22feb1d07e4b8391d1f81f8486cfc410ad6cda48ab3a6be99a4234 (5Epwumho...), removable_on: 0, status: IdtyStatus::Validated } + 1038 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e13d42b412dc39c2281486e7e6c2aa218cd4a2c44093a7055e6196b974574dc0 (5HA2q4Np...), removable_on: 0, status: IdtyStatus::Validated } + 1039 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d7c482f860a35079cc47910379c106f1fd1d3d38a5997d1dad17dcc910a77452 (5GwcXcAY...), removable_on: 0, status: IdtyStatus::Validated } + 104 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 15e4bda77df1602ec10a68422144d569f27363417fbc95607778d7fd8737feea (5CZQp747...), removable_on: 0, status: IdtyStatus::Validated } + 1040 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: ac1b1ac817ace04a22e715dec7d311904ec0d3c782f3d3ce667051defebe99c1 (5FxN9NJw...), removable_on: 0, status: IdtyStatus::Validated } + 1041 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 6c44a55639386721adf565226768e15ef74bf65282d9205164890a08e5bc3582 (5EWfRMmk...), removable_on: 0, status: IdtyStatus::Validated } + 1042 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: ddd5b05cc08f45b364f5a08d7adb2aa76ad90f6e1fbe0fbd8ab3e65cbf50141a (5H5ZvEFF...), removable_on: 0, status: IdtyStatus::Validated } + 1043 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bf87b185529ad329cf9d1db2122f58b1c1acb6ddb52f6797418187641d545b10 (5GPqK5YD...), removable_on: 0, status: IdtyStatus::Validated } + 1044 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 17e97f63a3337183d3f4f2c75c3c75b836c54df36290e28c99ca9e31a2aa6732 (5Cc4KckS...), removable_on: 0, status: IdtyStatus::Validated } + 1045 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: df1237b0c4bdc36172731db37b4bf7bc8e0f3ee06d61c7b367f2e76c7511dc0b (5H7Bwtbi...), removable_on: 0, status: IdtyStatus::Validated } + 1046 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c542b3f5f42c8b36ef2f39a9609369779d5fc54dd5eec7af25ff205e08dddfc2 (5GXM74iM...), removable_on: 0, status: IdtyStatus::Validated } + 1047 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5078f7874b2e2d2831fa1c2ee30f317da0ab667d1749f99749979ade3ccca2cf (5DtDd4jC...), removable_on: 0, status: IdtyStatus::Validated } + 1048 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 020fb2db6dd8014d18476907bdee8f12529776f6bea39a8aeaa58b1111d17fb5 (5C7Qchqt...), removable_on: 0, status: IdtyStatus::Validated } + 1049 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7f0b7fbf0c46a2dbe80ed33555df40c7320047f1d5973f220b38708b5706d25a (5EwHMWaa...), removable_on: 0, status: IdtyStatus::Validated } + 105 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 37bf1bec25aa08bdf892352e72e734195323abae2088b4d34312005e1f36ec46 (5DKoG9s1...), removable_on: 0, status: IdtyStatus::Validated } + 1050 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: a4810bb6631572ef8087ccf4f541551c093169eba19670ef70f6376e40cb000f (5FnQ3Z7w...), removable_on: 0, status: IdtyStatus::Validated } + 1051 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5556222a81fe368a4e6b121d19ec280d128288dbad11a1f2e7d7b47ce095afe2 (5DzbWnW7...), removable_on: 0, status: IdtyStatus::Validated } + 1052 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: f4ea81e046ab9eff44142acaf55a17db8ccae7d936e422dd40a3a03a533ad8ff (5HbqCoNS...), removable_on: 0, status: IdtyStatus::Validated } + 1053 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: a4948a77698a0681c7afffdf920152bc81fdc9a561a10dd3cce9968a15b94a25 (5FnVqSw4...), removable_on: 0, status: IdtyStatus::Validated } + 1054 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: ee30c52006ca53c41ac27b293862d0f9489f418d4358820a86e4ea9277a69d90 (5HT1jxTv...), removable_on: 0, status: IdtyStatus::Validated } + 1055 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: a4b4050fc6c5d8f1ca511afa3a80586ee36c87f814e8349b10740bc16cdbb6cd (5FnfBpK3...), removable_on: 0, status: IdtyStatus::Validated } + 1056 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 45c961260a83f487afacc01294fe01958af5b1d2a63f17813459301d04a6ceff (5DeCyzSN...), removable_on: 0, status: IdtyStatus::Validated } + 1057 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 432d228d2516354b47b80da28b7187e1feaab7d59c9e524640e91d3b8fd5674b (5DanUQWJ...), removable_on: 0, status: IdtyStatus::Validated } + 1058 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7d6f0152fc66550a38222121bd897c2b37f23d852151886ec6bd42893b867dbc (5EuApQaw...), removable_on: 0, status: IdtyStatus::Validated } + 1059 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d1013b6270314f618fa78e8569bca30e7af6cf4e7e30876c96f0ce1272dd7d7d (5GnkEMTS...), removable_on: 0, status: IdtyStatus::Validated } + 106 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d7b6eb765c24c7d35965aa76f30214a20fbc01dbacd1aa213d04e7f7563c78e5 (5GwYVRdB...), removable_on: 0, status: IdtyStatus::Validated } + 1060 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5b477c6c186e5be303830ab01b606a5ceb5e118cf0cd7098dc56def33de4b577 (5E8PT5aX...), removable_on: 0, status: IdtyStatus::Validated } + 1061 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7dfa05bc822def7e8d8c5af7ba8b94bf06b881f7c21793f7e0220257fa7c17c1 (5Eut7cqQ...), removable_on: 0, status: IdtyStatus::Validated } + 1062 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c6b130817d8a5c962b8ccf22b1acfd76a78cd7adddae8704bd35219f2f00b2a0 (5GZDyUox...), removable_on: 0, status: IdtyStatus::Validated } + 1063 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 37031dd6154d649dc770cdbdcc9b49e0eaae3f7ef6e66f04344ec2b445fee9ee (5DJqR7nd...), removable_on: 0, status: IdtyStatus::Validated } + 1064 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0e3cc24b85cedcb1bf1631cf00cf6d8b0dfa9a7caab0ebaf7844db89140797c4 (5CPNaQNP...), removable_on: 0, status: IdtyStatus::Validated } + 1065 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: a97fc86b7d501e6a1ad8f089f3216f69777fed6cf0f10753716e12b5e3ac12c0 (5FtwugYQ...), removable_on: 0, status: IdtyStatus::Validated } + 1066 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c6ee2a1ddb4a61529023f9864156fa05de22c17bbec764e716e8933c04c49758 (5GZY64C1...), removable_on: 0, status: IdtyStatus::Validated } + 1067 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 723d781a59f8ea416c1f500a778882758db788743fcebefa49aeb37525e43101 (5EeVaNV9...), removable_on: 0, status: IdtyStatus::Validated } + 1068 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5fc70ec1de3d252766bc2c3ae24ba16b99153f3b027c771e01f999653a9fd458 (5EEHYCNV...), removable_on: 0, status: IdtyStatus::Validated } + 1069 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: aa8bb2f923b2d728dc217c9c2d7ff9ac9728d67bda9fc0210172fe142212726c (5FvKVmi3...), removable_on: 0, status: IdtyStatus::Validated } + 107 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c6327086c4a2e3d3b6f525b6e2a5028a81daa3cf78ce06ea7854b513e254af45 (5GYaKdVe...), removable_on: 0, status: IdtyStatus::Validated } + 1070 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 6b8070f214ef8e3910e23e577dd0e197a175f00a4d489f68f6f901140aec6003 (5EVf8qBM...), removable_on: 0, status: IdtyStatus::Validated } + 1071 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8309abfefcc149cac674d279b4dd224f73b1001e35089341d80abc40846f88b3 (5F2X191q...), removable_on: 0, status: IdtyStatus::Validated } + 1072 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 307763bb1430fb2510669afbbac4449ec845b1b1f420e9723da39f2c001b2957 (5DAFd1n7...), removable_on: 0, status: IdtyStatus::Validated } + 1073 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e7a142fb02ec552f3c281e907dea4e5a471be2cb42de7487002975388f32d690 (5HJQphdu...), removable_on: 0, status: IdtyStatus::Validated } + 1074 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bdd2fdafce3058ca275e0d2cce864f25da3410dddbe49b0d033b6ac04a20ade8 (5GMbasSo...), removable_on: 0, status: IdtyStatus::Validated } + 1075 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 73f9e5bc38dde680a7a0105217c3113682bfff61de1f8ce13a7df7d410be00cb (5Egmbh5J...), removable_on: 0, status: IdtyStatus::Validated } + 1076 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5cc541787cb3f112ef771017816c8034b21ef37bf96c6dd280c5364e08b8fa0a (5EALrpT1...), removable_on: 0, status: IdtyStatus::Validated } + 1077 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7df759cd262076aa051dec6a2579854367664a9a3f39c0e878e4b4f459cfa6b8 (5EusKb3F...), removable_on: 0, status: IdtyStatus::Validated } + 1078 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 26b18b64c7e926c0712e0e24e611396cb7dc0e1f96ec8db7e78a464c3324b0e0 (5CwSRE8o...), removable_on: 0, status: IdtyStatus::Validated } + 1079 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 3b83aed72974711a5b6a5f1fdab9360f3c66dc7ceea4488bec847fed222b9c2d (5DQjoNhf...), removable_on: 0, status: IdtyStatus::Validated } + 108 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 1da04861fa1da7dfbd472fa53b6078b8844e0670f431ac8a0c43ed47a28c0a10 (5CjYrpQm...), removable_on: 0, status: IdtyStatus::Validated } + 1080 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c9807ee1fbbc7bae7bd2019b9a722f62f2f448e3bd5ad9dea539098e9b44500e (5GcueqVa...), removable_on: 0, status: IdtyStatus::Validated } + 1081 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 9932258335b85b41a37d3770c55413eb64452ee807d1fbdfbce55d1db9c8d8b7 (5FXa5btJ...), removable_on: 0, status: IdtyStatus::Validated } + 1082 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 1470a8df1fb4d0b5b64f9f6202bce6758a56519cabf523713dcd2a1939964f40 (5CXWHJ6s...), removable_on: 0, status: IdtyStatus::Validated } + 1083 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 6724dca50f59f86c2d819e4eef21dcffb3cabc1f83aab4a7dda0dedc8f9deef8 (5EPwjr7e...), removable_on: 0, status: IdtyStatus::Validated } + 1084 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: afd51302e36b7d00ff4d58be5b97e49fe7734cc1908503fb80008670a900a643 (5G3FXt9G...), removable_on: 0, status: IdtyStatus::Validated } + 1085 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8c9183ff03488a9af9d54b02af5620556af70d1cecc18b016784796d036cb1ed (5FF1nfht...), removable_on: 0, status: IdtyStatus::Validated } + 1086 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 9d375eeea1940f7f465fc6933301a62e447497ce5e2884fa1678d0eb414b7ad4 (5Fcqpiwv...), removable_on: 0, status: IdtyStatus::Validated } + 1087 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: abe0bbb36414a1c4ded59c3d3b7baca47b38cce323f7827d964cfcf2eb85212f (5Fx4oenQ...), removable_on: 0, status: IdtyStatus::Validated } + 1088 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 42f2836563b931a439d31078c6f7e0a113ba93bacc6914e27dbc4d739309e492 (5DaV4Nrp...), removable_on: 0, status: IdtyStatus::Validated } + ... +7131 hidden +] +Identity.IdentitiesNames = [ +] +Identity.IdentitiesRemovableOn = [ + 1345679 = [(7234, IdtyStatus::Created)] +] +Identity.IdentityIndexOf = [ +] +Identity.NextIdtyIndex = Some(7235) +ImOnline.AuthoredBlocks = [ + 2123 => 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) = 62 + 2123 => 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) = 56 + 2123 => 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) = 56 + 2123 => b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) = 49 +] +ImOnline.HeartbeatAfter = Some(1245604) +ImOnline.Keys = Some(WeakBoundedVec([Public(e28ccacc4f8a3d11e5350741b28564d3290316aac2b954e6fd8750a8c86d4e38 (5HBkW8jr...)), Public(a63e4cc2d4a1037c6b9716a25c451e2311d0e302a12198a5405f2e3faa5f5a79 (5FpgK6zN...)), Public(323157c1e277cfe016a767a5f4cc86225232f3e6c8fb7d2e429752c9b21d0236 (5DCWuh34...)), Public(d4969256ac9618dd33046693ec6d2114f0ee5979a6fa83434d972f306ed88b03 (5GsSjkLN...))], 32)) +ImOnline.ReceivedHeartbeats = [ +] +Membership.CounterForMembership = Some(7128) +Membership.Membership = [ + 1 = MembershipData { expire_on: 5184000 } + 10 = MembershipData { expire_on: 5184000 } + 100 = MembershipData { expire_on: 5184000 } + 1000 = MembershipData { expire_on: 5184000 } + 1001 = MembershipData { expire_on: 5184000 } + 1003 = MembershipData { expire_on: 5184000 } + 1004 = MembershipData { expire_on: 5184000 } + 1005 = MembershipData { expire_on: 5184000 } + 1006 = MembershipData { expire_on: 5184000 } + 1007 = MembershipData { expire_on: 5184000 } + 1008 = MembershipData { expire_on: 5184000 } + 1009 = MembershipData { expire_on: 5184000 } + 101 = MembershipData { expire_on: 5184000 } + 1010 = MembershipData { expire_on: 5184000 } + 1011 = MembershipData { expire_on: 5184000 } + 1012 = MembershipData { expire_on: 5184000 } + 1013 = MembershipData { expire_on: 5184000 } + 1014 = MembershipData { expire_on: 5184000 } + 1015 = MembershipData { expire_on: 5184000 } + 1016 = MembershipData { expire_on: 5184000 } + 1017 = MembershipData { expire_on: 5184000 } + 1018 = MembershipData { expire_on: 5184000 } + 1019 = MembershipData { expire_on: 5184000 } + 102 = MembershipData { expire_on: 5184000 } + 1020 = MembershipData { expire_on: 5184000 } + 1021 = MembershipData { expire_on: 5184000 } + 1022 = MembershipData { expire_on: 5184000 } + 1023 = MembershipData { expire_on: 5184000 } + 1024 = MembershipData { expire_on: 5184000 } + 1025 = MembershipData { expire_on: 5184000 } + 1026 = MembershipData { expire_on: 5184000 } + 1027 = MembershipData { expire_on: 5184000 } + 1028 = MembershipData { expire_on: 5184000 } + 1029 = MembershipData { expire_on: 5184000 } + 103 = MembershipData { expire_on: 5184000 } + 1030 = MembershipData { expire_on: 5184000 } + 1031 = MembershipData { expire_on: 5184000 } + 1032 = MembershipData { expire_on: 5184000 } + 1033 = MembershipData { expire_on: 5184000 } + 1034 = MembershipData { expire_on: 5184000 } + 1035 = MembershipData { expire_on: 5184000 } + 1036 = MembershipData { expire_on: 5184000 } + 1037 = MembershipData { expire_on: 5184000 } + 1038 = MembershipData { expire_on: 5184000 } + 1039 = MembershipData { expire_on: 5184000 } + 104 = MembershipData { expire_on: 5184000 } + 1040 = MembershipData { expire_on: 5184000 } + 1041 = MembershipData { expire_on: 5184000 } + 1042 = MembershipData { expire_on: 5184000 } + 1043 = MembershipData { expire_on: 5184000 } + 1044 = MembershipData { expire_on: 5184000 } + 1045 = MembershipData { expire_on: 5184000 } + 1046 = MembershipData { expire_on: 5184000 } + 1047 = MembershipData { expire_on: 5184000 } + 1048 = MembershipData { expire_on: 5184000 } + 1049 = MembershipData { expire_on: 5184000 } + 105 = MembershipData { expire_on: 5184000 } + 1050 = MembershipData { expire_on: 5184000 } + 1051 = MembershipData { expire_on: 5184000 } + 1052 = MembershipData { expire_on: 5184000 } + 1053 = MembershipData { expire_on: 5184000 } + 1054 = MembershipData { expire_on: 5184000 } + 1055 = MembershipData { expire_on: 5184000 } + 1056 = MembershipData { expire_on: 5184000 } + 1057 = MembershipData { expire_on: 5184000 } + 1058 = MembershipData { expire_on: 5184000 } + 1059 = MembershipData { expire_on: 5184000 } + 106 = MembershipData { expire_on: 5184000 } + 1060 = MembershipData { expire_on: 5184000 } + 1061 = MembershipData { expire_on: 5184000 } + 1062 = MembershipData { expire_on: 5184000 } + 1063 = MembershipData { expire_on: 5184000 } + 1064 = MembershipData { expire_on: 5184000 } + 1065 = MembershipData { expire_on: 5184000 } + 1066 = MembershipData { expire_on: 5184000 } + 1067 = MembershipData { expire_on: 5184000 } + 1068 = MembershipData { expire_on: 5184000 } + 1069 = MembershipData { expire_on: 5184000 } + 107 = MembershipData { expire_on: 5184000 } + 1070 = MembershipData { expire_on: 5184000 } + 1071 = MembershipData { expire_on: 5184000 } + 1072 = MembershipData { expire_on: 5184000 } + 1073 = MembershipData { expire_on: 5184000 } + 1074 = MembershipData { expire_on: 5184000 } + 1075 = MembershipData { expire_on: 5184000 } + 1076 = MembershipData { expire_on: 5184000 } + 1077 = MembershipData { expire_on: 5184000 } + 1078 = MembershipData { expire_on: 5184000 } + 1079 = MembershipData { expire_on: 5184000 } + 108 = MembershipData { expire_on: 5184000 } + 1080 = MembershipData { expire_on: 5184000 } + 1081 = MembershipData { expire_on: 5184000 } + 1082 = MembershipData { expire_on: 5184000 } + 1083 = MembershipData { expire_on: 5184000 } + 1084 = MembershipData { expire_on: 5184000 } + 1085 = MembershipData { expire_on: 5184000 } + 1086 = MembershipData { expire_on: 5184000 } + 1087 = MembershipData { expire_on: 5184000 } + 1088 = MembershipData { expire_on: 5184000 } + ... +7128 hidden +] +Membership.MembershipsExpireOn = [ + 5184000 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220] + 5810276 = [7228] +] +Membership.PendingMembership = [ + 7230 = () + 7233 = () + 7234 = () +] +Membership.PendingMembershipsExpireOn = [ + 1316189 = [7230] + 1538809 = [7233] + 1676945 = [7234] +] +Multisig.Multisigs = [ +] +Offences.ConcurrentReportsIndex = [ + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [112, 1, 0, 0]" = [0x0fe1345e5cf187f090a41b5e903a5ba6b806d77098131702664e091cb366a850] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [113, 1, 0, 0]" = [0xdd04500ec6414fef7eb3870e1eef4682231e97e03824592bbde0d70f80072da0] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [114, 1, 0, 0]" = [0x6561c29ece7a60150ef2524f22ea55f65eb032aaad5953f4a61c6b9e20badc6f] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [115, 1, 0, 0]" = [0x9e465c2bc968e575b5efe569af6df948a8dc190001d447153fa86ea07f80e022] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [116, 1, 0, 0]" = [0x51105e85286a12d685d35b056e944502d9efd88f2de60de34a5add3ffd3290ea] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [117, 1, 0, 0]" = [0xa2e92e279b28d3dea69c0634d7d557a8ae571e7768165071f013d3134b93fa12] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [118, 1, 0, 0]" = [0x52a7dedc0fbb1fabaf0d038f627c1679552df9250e27877cc25507090224371d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [119, 1, 0, 0]" = [0xab64e0285e7e154c6001aa631ddae3fd42782e42639965ae08303918fd88f5ce] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [120, 1, 0, 0]" = [0xd614b37b96c0b960bcc567cf072d20c66ee276c4c3eeff56e294fbb18570781d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [121, 1, 0, 0]" = [0xabf7cbc8c33c0d8cd732a287b52bc549e148478ff6d39d51ecce4b51e669cfac] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [122, 1, 0, 0]" = [0xa4ff9eadd86716c145169da82bb36d8acbd3b368b8c3727b4df0b88cc6d3f083] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [123, 1, 0, 0]" = [0xb5a831a872040ec0a43f0fe00bb4f8fbba1197aceef8d8517a2d6a00936a011c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [124, 1, 0, 0]" = [0x6917402137ce947d132230ad49f6fea9b219cd3d6e229a7ee808144024f56275] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [124, 4, 0, 0]" = [0xcc0cdde07f6d5a9c1b37e0500965552c4dc195c295c7ea32655fe988330cd941] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [125, 1, 0, 0]" = [0xae94039a9ec1e58ab286d0efcfd9d807fa45f00512d0b3a1e5cb2aecd366ec21] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [125, 4, 0, 0]" = [0x70ec88c3b9067bc4193c8bb94d05d09ead26949c901e9f7f8ba75b3e879852eb] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [126, 1, 0, 0]" = [0xd0a15020180b3e327f5e2fa7b026a26cc4233473e29bb818c722decfb56f4888] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [126, 4, 0, 0]" = [0x30bf7f3e5e48a891b518dd714fe472d59516596027f1e6771fe902ddcf790fdd] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [127, 1, 0, 0]" = [0xa8962ec43b6ab21591ebedc434a64a5fdc916a5ab0f2316ca081baaa5c9a630a] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [127, 4, 0, 0]" = [0x770dc28d2b699b6127cbd17446903c67a70a8fdf75f74541e9df059d4d56d332] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [128, 1, 0, 0]" = [0x19d64121756171beae2e1ca2aa9d40ea3ddca8ba4d87a91c81fe85a847d29633] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [128, 4, 0, 0]" = [0x9d1ab216f1e637d8eec66186b5a0abd24050c3f312eadc6e7a6c0c168f74571c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [129, 1, 0, 0]" = [0xb5e043d63d8bf936c6688a3cb14c6ae5dc4f166a7edc3baa44ee6054a2038ced] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [129, 4, 0, 0]" = [0xa183c2e5d64448437c9e9fd4a6313559208ffa9941c68ac4f7ef17833940d00c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [130, 1, 0, 0]" = [0x252eceda21288b6efb937abda3dde688f0bb4dcaa85eb584d563711c25d6291c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [130, 4, 0, 0]" = [0x1779987a82b5476ee08840197e6f451e4d494b7eb400f39350c96e73f836311e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [131, 1, 0, 0]" = [0xc60c30a358d870b1a49c07b90833f7e62a9be6750893cc5edd7b421f17c61c3e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [131, 4, 0, 0]" = [0xe9fab9affd9741a191e9a76aff3370410e960ab24dde061c2767ac0da057887d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [132, 1, 0, 0]" = [0xe2d557089ac3df6978010eee2d8bf42c820dfe91c83677f8949f79c0566553ab] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [132, 4, 0, 0]" = [0xfe0957db20aa2c2aaae893b431ca198e42f86c7956e2d61a4b271399f36370e9] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [133, 1, 0, 0]" = [0xa896838d60ca66adbffca2d518cff6cefa4d7b33678e4c17222cd11b8c4b68bf] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [133, 4, 0, 0]" = [0x97a8effa02584d9de8057d045fc41aeed976c793cf9c8a946f1e96b71c19a52b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [134, 1, 0, 0]" = [0x630cf147f9551e0ad227f99bb74993723a291c7940812bec5be22fae644f0786] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [134, 4, 0, 0]" = [0xec0d583ac22199a0d67624ff45d2b82f136e037b2df20283005d58ce1427514b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [135, 1, 0, 0]" = [0x198f7e9acae757dc8793d509f6389466f0c5bd18309042a5314beb14c4e8e0d6] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [135, 4, 0, 0]" = [0xb768852c25a987f6b3ca4afae28e93a0612db95d88e7c9c7544a1c524b4a5efe] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [136, 1, 0, 0]" = [0x612d10a46b5e9f8f40a4237f8c01efb3a4b5957eab4b1c611e7aa216cfa51b48] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [136, 4, 0, 0]" = [0x351165c73ad1cb09c1aacb1c2546b6f4c2fa80f070b3f8218f94bced910312c7] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [137, 1, 0, 0]" = [0x42396b539fdacc00ef799130024aa7cb1dea01b62489af8ee1ad225af9d722ca] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [137, 4, 0, 0]" = [0x768152ee4ae5967da32e170594abf0c24cc9be8aa3e615233983731dbc7c31b1] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [138, 1, 0, 0]" = [0xd56b35489954544c2ecafad8607f720ba9966d093f67961a3439cc90250e0dcc] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [138, 4, 0, 0]" = [0xe00726d4a8406b42fa2e42d89386ad96fbbfe3dce33b43b4518ccaa53665dd8b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [139, 1, 0, 0]" = [0xb3b6dedb9898cdf6adb83e6fd5ffb8af300bb1f2ef1dfb708604f33f10026d3c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [139, 4, 0, 0]" = [0xa411c11c7097427d5772629a4b42585fb4673c6ad59bd6eb3b3c03fe73d51787] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [140, 1, 0, 0]" = [0xd75bfaf7975594e8966d8f8ca0cefa84f6aa7818abd20f5befb77eeadc60428e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [140, 4, 0, 0]" = [0x1ecce7262919494516ce384e0d4938bedc6a71253711447677c8368d8f9e3036] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [141, 1, 0, 0]" = [0x9384cf65607beada62dbb88b2abe1cbeda71e7a3b0cb0e129154069f79dcc42b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [142, 1, 0, 0]" = [0xca26649193bab6f0519c0d61464c4597e29fb11730bc01c97407e417250a0b62] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [143, 1, 0, 0]" = [0x8adf3ea2a6319be4facb865cd84526b7b76544cbdf3ed7f7df3747aaac7a3d0e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [144, 1, 0, 0]" = [0x7acc4e35efc9a039ad84a977c8619421de5246322aa3dae17874c1531906f07d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [145, 1, 0, 0]" = [0x1a1a94b18c8e42a68fb0375b7fae6e80cd0b2c12dbab918612da9f8fc0592211] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [146, 1, 0, 0]" = [0x8f375155ddcb50fa75e822107529ea36b5906a68223b541d11f95261cbabfb87] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [147, 1, 0, 0]" = [0xb206ba4c5879f135f136388f4fa1b75025d20d6cf43e0ab0a0f3e29e4df76ca6] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [148, 1, 0, 0]" = [0x6fb50cfc6e1e9501cc67493adb870d90344bd3b08862a269954bd5a4aca24467] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [149, 1, 0, 0]" = [0x89be6d57c8f585481579c880a8ebc152a87af0ddf7a244558bba02ab5a26a59b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [150, 1, 0, 0]" = [0xdd1b074b6f118d76bf2cdf9fd105c64ee9186eae37fbbeada7816b5b22be5630] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [151, 1, 0, 0]" = [0xc9cf95577c05cfa3451e54f5777d5724fd7e4a161ae9d3fa62880482d409e9ac] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [152, 1, 0, 0]" = [0xcf9e697816a335a7b217ec8977c551eb37643608a62b5dcaf483ae75d2ea8646] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [153, 1, 0, 0]" = [0x5047df9dd7fb66f5cfb9aac187e8ca1c6f6cc50a4c7b1ffa6ca1f1a4642458ca] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [154, 1, 0, 0]" = [0x9107d665cdb4b4b5bba018d803ab69e24add2ade5bf037366e80e2a145050115] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [155, 1, 0, 0]" = [0x823f033459e671f6226b53c7a739f1bf17bd60cc4e104e284694fff3c146ef0d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [156, 1, 0, 0]" = [0x3688f2c6daaa9548a7a2bbe55d5b81439bb5e62d5a106e2a121d5750dfd996c2] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [157, 1, 0, 0]" = [0xa8e9e4d83a35440dc6eca5034bebac12856107e2dcb43edc35e6a1973c37e786] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [158, 1, 0, 0]" = [0x9b46c55bf00c8b5080f9a7430ec58cbcd737fa2017d62419d0fdef96cd9c0b02] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [159, 1, 0, 0]" = [0xf5150f0101f49811a3c5b790d7947bef0eb5f50c3dfa638de5ffe5ef8453ab57] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [160, 1, 0, 0]" = [0x8d7ad31af097f802fba0fe46b6077a45161fcd2952ab8e2af7169b2dcb55a774] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [161, 1, 0, 0]" = [0x60a8abc8a359ceee18a456aca15891b8e7108d3e6e94739c9a4a78b2fa16e224] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [162, 1, 0, 0]" = [0x0c1d8ed7f45f7391802f42e2e821018a02f71b331ad32bbffc2ae1511ac6c81a] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [163, 1, 0, 0]" = [0x4923c7beaafd833e694a29cbabe6ca0d796d8f1a29fcffd84bd666fec2aa87c7] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [164, 1, 0, 0]" = [0x3fdb195a1bac6345c7855bb588295a9e045bad757850c488f60d6fffcd3aa791] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [165, 1, 0, 0]" = [0xa26633f6d09b3297af630b504b36aa0359293819c4c1829013ae4e665a9d96e3] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [166, 1, 0, 0]" = [0x023725a77bc2ad8dffa0c35225436caec4df551b58f34a4c2566278e1e53e93d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [167, 1, 0, 0]" = [0x94913bdf41e786549db6aaa67442143e4eb6646520fbb1dd92d41cc288987009] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [168, 1, 0, 0]" = [0x4c8db8c38500541a79a7007aee19a4036b8e106db986997ef16090fc9b193baf] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [169, 1, 0, 0]" = [0x8a26304751b661d17c18c2e8f7f1d436d5d6c628508b2dcd4bbb9503fa0e7411] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [170, 1, 0, 0]" = [0x8279fbdf40f560e3704b09663583e2ea4998480ad5e298247754c860d1d203df] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [171, 1, 0, 0]" = [0x5c7159b2d4df0cc5f8971e5f03c5e781852f300ad42c5893cca06b1195da0146] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [172, 1, 0, 0]" = [0x7fd3ac9817da75db989bc3dffc0badf5e683117d7bff74d7eb4c424e9a49e097] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [173, 1, 0, 0]" = [0x75a588b5ba7ba484c8b43924f783708355d49b7d615ab2724dba012f3f896009] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [19, 6, 0, 0]" = [0xb0f30bb3c0ff29f3c3128fd75e7f224fd2db601fbed05a5e8f425a462449e2a8] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [20, 6, 0, 0]" = [0x27c462a9baf541ce6e9c3e36ad756d9f1c7c1f76830bb3c622af0e28a81ddd27] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [21, 6, 0, 0]" = [0x3c37c3a3ece439287b7c117b5483b040e19f452736a2505058d6b8ebfe0b4553] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [22, 6, 0, 0]" = [0x3e1aa90a3c12cf4d8ea199ea061d7029069f13e1c506093dcf49d541ccb10624] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [23, 6, 0, 0]" = [0xcc1b4ed13e1fee0be782eb9e7a8b1d0c48201b7ce8df5d10fc248c6fa276f9ac] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [24, 6, 0, 0]" = [0x9d78d90dac2e771388ce1fdbb3f3b21d10be126c141339e8e4f1bf3cf3cbd3a1] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [25, 6, 0, 0]" = [0x1faf082402ff8bec557fd05e41bd030a63b2f3dfbadff51874c341f8857dfb5a] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [26, 6, 0, 0]" = [0x2d0e90b0311b4637b885c5d128779798711e7569ac61f2741e01b38c6e97f7ae] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [27, 6, 0, 0]" = [0x4df836417a24f1d2f11157d8dd5efb33f26d661ec00b5e33abf1bd5bd3df5f0e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [27, 7, 0, 0]" = [0x59c83fd81debf78c562026d57b6b97d935f7aae648d06fe9be767f0da6d1981a] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [28, 6, 0, 0]" = [0x773bf2b28ef541cf0b3326750541fbde0a6007b1c76d68c2c72cb12e8b7d9a6b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [28, 7, 0, 0]" = [0xec9980a290af9b9f4dd9b6974bd68cfd1b3b95556c9dd4b5247588b93db8bb58] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [29, 6, 0, 0]" = [0x8535eff05ae1d4c0f0dd4e60e921df0ec24a0615731e73b277b52a5d37f30760, 0x1bfa562fdb35c81ea85909f1916e7778e0358191196e541fc4038c00b200b15e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [29, 7, 0, 0]" = [0x3a064fc3c8a242f639d83af59a545d299bef0be9b077f7cf48f96ecde3d25f5c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [30, 6, 0, 0]" = [0x9092cb795ea26b098d8f56e126ac8218ca8bb656ba37fb3209d431e4813f9d3e, 0x83c50880da4e6224aaf58d432cd4a04c435eb7c364e0568c3093897721ada3aa] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [30, 7, 0, 0]" = [0x4123fa179387a6b86548c8cce97b213daa3246d47541487075bbb255d0c7b67b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [31, 6, 0, 0]" = [0xbbb39adc994be959bebf47078ed4d2293de23beba9e601360c9c2ad6c6063da5, 0x6a7c0d21c4fa1258568761c530f47572ee77d92f4c9b25f65e0f5229da368d25] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [31, 7, 0, 0]" = [0xba12f21cbc577a009912941be08469f4f30b43728924e2eade879df68ab98f50] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [32, 6, 0, 0]" = [0x48f0740c3b27f4189629767c6653eac59ba9a522b6e098516852c172a4c0a54a, 0x87616159ed5d9a4e713171bddf7f6eb47d182664fb802ecd92483e994d644cb6] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [32, 7, 0, 0]" = [0x3180c33aa77e78f20d614edc58b019e8237f29f20b200fdca2e197f1c43b3066] + ... +159 hidden +] +Offences.Reports = [ + 0x023725a77bc2ad8dffa0c35225436caec4df551b58f34a4c2566278e1e53e93d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x0a678c934077ddb420ded8f08da4b2607db507cebe20a1d0ab73625dd2de9cb1 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x0bef1c2b13a1e8344e5a3444d0b5347b2b42dbeef967fa69951b39ae30a1bba4 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x0c1d8ed7f45f7391802f42e2e821018a02f71b331ad32bbffc2ae1511ac6c81a = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x0fe1345e5cf187f090a41b5e903a5ba6b806d77098131702664e091cb366a850 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x16a8fd72d1a93d981631f6c9be883dea962900b180c08b7b90e104a6d6fe7534 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1779987a82b5476ee08840197e6f451e4d494b7eb400f39350c96e73f836311e = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x198f7e9acae757dc8793d509f6389466f0c5bd18309042a5314beb14c4e8e0d6 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x19d64121756171beae2e1ca2aa9d40ea3ddca8ba4d87a91c81fe85a847d29633 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1a1a94b18c8e42a68fb0375b7fae6e80cd0b2c12dbab918612da9f8fc0592211 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1bfa562fdb35c81ea85909f1916e7778e0358191196e541fc4038c00b200b15e = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1e36d67727982e825fdef268dd3944421cab6b14e27f36362f3facc711e0580e = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1ecce7262919494516ce384e0d4938bedc6a71253711447677c8368d8f9e3036 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1fa3a8f6c048fb09e9c48cbf9084d93c087463187b335d12b90ba7e22d298169 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1faf082402ff8bec557fd05e41bd030a63b2f3dfbadff51874c341f8857dfb5a = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x252eceda21288b6efb937abda3dde688f0bb4dcaa85eb584d563711c25d6291c = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x27c462a9baf541ce6e9c3e36ad756d9f1c7c1f76830bb3c622af0e28a81ddd27 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x29863d9dfcc1913478de211bbfc3ef6762c2fb3141c1c1589c9de290e7932911 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x2befa52a7556020e514c666c4a7861cba4bbb2befec202879bbd3d911eb076b8 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x2c6a2905c21934b8b240d8b94a043caba9cf602d9fb58c4406750ceed61ac009 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x2d0e90b0311b4637b885c5d128779798711e7569ac61f2741e01b38c6e97f7ae = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x2f29ed873bb1d8f4b7f7f462322c1cbc41db3060cdbf96836dbbe073907e2daf = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x2f2ce434c8e5293f1cfe1af9c1dad79b63dadbe8215b256def792494838f78dd = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x30bf7f3e5e48a891b518dd714fe472d59516596027f1e6771fe902ddcf790fdd = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3180c33aa77e78f20d614edc58b019e8237f29f20b200fdca2e197f1c43b3066 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3430d5e52a281003f53f9beb85ee3424ba3e50626e6a62118b2404c36dbcfe48 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x3461aa49e7a550cfcc242943dfca8883a57046dc7a54f6621239b1429ef45745 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x351165c73ad1cb09c1aacb1c2546b6f4c2fa80f070b3f8218f94bced910312c7 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3589576f27a8c6076291d20e76d22ffd1636e8e5fad7ef3899308a8ff1a3fcba = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3618dbf02b3c2fcfbdbea72bb14b6554d1cb60894d7e91da98f35787697abe45 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3688f2c6daaa9548a7a2bbe55d5b81439bb5e62d5a106e2a121d5750dfd996c2 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3838ad08108c32b054537fb72b256686a848977e1cd0c168feda1ea3fce3cb75 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x38a976f2bcb898bc02900028485a9552a103529f62ee36f555a1122f59fa3ee5 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3a064fc3c8a242f639d83af59a545d299bef0be9b077f7cf48f96ecde3d25f5c = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3c37c3a3ece439287b7c117b5483b040e19f452736a2505058d6b8ebfe0b4553 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x3e1aa90a3c12cf4d8ea199ea061d7029069f13e1c506093dcf49d541ccb10624 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x3fdb195a1bac6345c7855bb588295a9e045bad757850c488f60d6fffcd3aa791 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x4123fa179387a6b86548c8cce97b213daa3246d47541487075bbb255d0c7b67b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x42396b539fdacc00ef799130024aa7cb1dea01b62489af8ee1ad225af9d722ca = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x47b3c0e54f1aa94a828465d2282888cdebb54bd780c099cf8189dc7d933b3642 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x48f0740c3b27f4189629767c6653eac59ba9a522b6e098516852c172a4c0a54a = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x4923c7beaafd833e694a29cbabe6ca0d796d8f1a29fcffd84bd666fec2aa87c7 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x49885e37c44934eda961ed36ee4dbf51df2f98c711c3091e90349cfcc0d14fc8 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x4b9b4042cf7071035d9852efa1787b90782f95be15e6bc7e274784c28828047e = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x4c8db8c38500541a79a7007aee19a4036b8e106db986997ef16090fc9b193baf = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x4d755cb49b0184440fb48842d0cbc74f3fb2c0ce6491b5b35a7c6f813e13dbd4 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x4df836417a24f1d2f11157d8dd5efb33f26d661ec00b5e33abf1bd5bd3df5f0e = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x5047df9dd7fb66f5cfb9aac187e8ca1c6f6cc50a4c7b1ffa6ca1f1a4642458ca = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x51105e85286a12d685d35b056e944502d9efd88f2de60de34a5add3ffd3290ea = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x528fbb60e4b3d170d8e63fa3e92b6aae706a3d40b43e92045ee8a39140429ed7 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x52a7dedc0fbb1fabaf0d038f627c1679552df9250e27877cc25507090224371d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x58102d2104570dd386a9ca0bcb7f285302f7a8443cd208805f02b42a8dad5b22 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x5941454d998d3d2eee82021b0a330730f623b959328b07e5c1533827d375c6fb = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x59c83fd81debf78c562026d57b6b97d935f7aae648d06fe9be767f0da6d1981a = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x5c7159b2d4df0cc5f8971e5f03c5e781852f300ad42c5893cca06b1195da0146 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x60a8abc8a359ceee18a456aca15891b8e7108d3e6e94739c9a4a78b2fa16e224 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x612d10a46b5e9f8f40a4237f8c01efb3a4b5957eab4b1c611e7aa216cfa51b48 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x630cf147f9551e0ad227f99bb74993723a291c7940812bec5be22fae644f0786 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x638d19381f929887b268b893ea2b80c8dd56c08fbbd1073837f7f380ad3352d9 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6561c29ece7a60150ef2524f22ea55f65eb032aaad5953f4a61c6b9e20badc6f = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x66173f1a6e2aa8d0c1cdf6df0df95ef2156f13125f20fa97027303cd89297bd4 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x66c66449bfc3692d258038ac494da88592bf7eea41392bf77e1ae3cecea39a91 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6917402137ce947d132230ad49f6fea9b219cd3d6e229a7ee808144024f56275 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6a7c0d21c4fa1258568761c530f47572ee77d92f4c9b25f65e0f5229da368d25 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6b650b88db3389463e5e5f419cf1536c2a82e641a872c3779a21cb1e7e629a1b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6cf536d18fc69bcc7d2e7f8b6b2e9ce89e1a7fd4074c7b792711b0ca66439a3d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6d0db7efde0a860b4001b586c52e5890e923b05b12e4053c68a625d8e9836ff0 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6f85772013606e800c5efd667d4e9f4c693eb2954bbe6e61971e2a35621de0ff = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6fb50cfc6e1e9501cc67493adb870d90344bd3b08862a269954bd5a4aca24467 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x70ec88c3b9067bc4193c8bb94d05d09ead26949c901e9f7f8ba75b3e879852eb = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x75a588b5ba7ba484c8b43924f783708355d49b7d615ab2724dba012f3f896009 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x768152ee4ae5967da32e170594abf0c24cc9be8aa3e615233983731dbc7c31b1 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x769efdd809001666300491a75f25d960ae05f897598e112f4b7db5f50fd2dc30 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x770dc28d2b699b6127cbd17446903c67a70a8fdf75f74541e9df059d4d56d332 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x773bf2b28ef541cf0b3326750541fbde0a6007b1c76d68c2c72cb12e8b7d9a6b = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x78616e136ab36d5dfa7cb3746a8ff2964162c64ce5d3b67c119d6970d9b96b5b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x788025e28a4e4424fe9867f86a389a8910ede4633b5d256d47ed10ca650c019d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x7acc4e35efc9a039ad84a977c8619421de5246322aa3dae17874c1531906f07d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x7b4e9027144a96ba226e4f9df51a05cde536cd2170e23ece79d75b9f9f49a3ac = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x7fd3ac9817da75db989bc3dffc0badf5e683117d7bff74d7eb4c424e9a49e097 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x823f033459e671f6226b53c7a739f1bf17bd60cc4e104e284694fff3c146ef0d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8279fbdf40f560e3704b09663583e2ea4998480ad5e298247754c860d1d203df = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x83147eb732bef5f57473fc905240bc5646ae947ea5381417d29b7adb2bf834c8 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x83c50880da4e6224aaf58d432cd4a04c435eb7c364e0568c3093897721ada3aa = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8535eff05ae1d4c0f0dd4e60e921df0ec24a0615731e73b277b52a5d37f30760 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x87616159ed5d9a4e713171bddf7f6eb47d182664fb802ecd92483e994d644cb6 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x87f66237ffb530b41927a1d79d9f6cca555a7ef7017dd73e9012b4ee0afd9787 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x88115f46b40008d41d4cf6c57fd5b34f53487a346a94a10a320c742c8e70c4f6 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x887394dae31adce754395389ebf4f8eff441c24d2dde65268dd0a1d524c44d5b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x88849eb3e8d7e9514d3a8840d171f798e6635282a5e63251e172d26dd1d58261 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x89be6d57c8f585481579c880a8ebc152a87af0ddf7a244558bba02ab5a26a59b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8a26304751b661d17c18c2e8f7f1d436d5d6c628508b2dcd4bbb9503fa0e7411 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8adf3ea2a6319be4facb865cd84526b7b76544cbdf3ed7f7df3747aaac7a3d0e = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8b33109b06819128add8bd76ccea30e1df6d8c448709c299179126c605b4bb31 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8b60f3ef5914ebb7324cde92b4c3fbe5eabb853c60aeaed6a62a8e4b3edd9d62 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8d7ad31af097f802fba0fe46b6077a45161fcd2952ab8e2af7169b2dcb55a774 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8f37084efb0bcd5b0f9711901ed1f05b9171f93279519f1a66fa89b92c4fc31a = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8f375155ddcb50fa75e822107529ea36b5906a68223b541d11f95261cbabfb87 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x90273e36315f4588ff844e8630a38a658de9531db8f0ac7ff49b802de46a234d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + ... +170 hidden +] +OneshotAccount.OneshotAccounts = [ +] +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 600, cert_period: 14400, cert_max_by_issuer: 100, cert_min_received_cert_to_issue_cert: 5, cert_validity_period: 10368000, idty_confirm_period: 100800, idty_creation_period: 100800, membership_period: 5184000, pending_membership_period: 432000, ud_creation_period: 14400, ud_reeval_period: 2592000, smith_cert_period: 14400, smith_cert_max_by_issuer: 15, smith_cert_min_received_cert_to_issue_cert: 3, smith_cert_validity_period: 10368000, smith_membership_period: 5184000, smith_pending_membership_period: 432000, smith_wot_first_cert_issuable_on: 14400, smith_wot_min_cert_for_membership: 3, wot_first_cert_issuable_on: 50, wot_min_cert_for_create_idty_right: 5, wot_min_cert_for_membership: 5 } +Preimage.PreimageFor = [ +] +Preimage.StatusFor = [ +] +ProvideRandomness.CounterForRequestsIds = Some(1) +ProvideRandomness.NexEpochHookIn = Some(0) +ProvideRandomness.RequestIdProvider = Some(131) +ProvideRandomness.RequestsIds = [ + 130 = () +] +ProvideRandomness.RequestsReadyAtEpoch = [ + 2125 = [Request { request_id: 130, salt: 0xa8dc86d1f7289d309465c890bb6f662b5c20571154cb14a8835eea0bc8a46179 }] +] +ProvideRandomness.RequestsReadyAtNextBlock = [] +Proxy.Announcements = [ +] +Proxy.Proxies = [ +] +Scheduler.Agenda = [ +] +Scheduler.IncompleteSince = None +Scheduler.Lookup = [ +] +Session.CurrentIndex = 2123 +Session.DisabledValidators = [] +Session.KeyOwner = [ + (KeyTypeId([103, 114, 97, 110]), [173, 85, 246, 115, 28, 165, 179, 114, 22, 43, 164, 88, 158, 40, 18, 40, 123, 65, 220, 85, 220, 152, 17, 218, 43, 247, 110, 173, 147, 149, 167, 249]) = 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) + (KeyTypeId([103, 114, 97, 110]), [213, 122, 32, 122, 25, 118, 105, 46, 220, 156, 222, 243, 90, 14, 132, 118, 201, 33, 185, 97, 132, 38, 206, 214, 159, 176, 205, 207, 117, 38, 247, 135]) = 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) + (KeyTypeId([103, 114, 97, 110]), [31, 97, 8, 88, 5, 169, 47, 247, 164, 184, 183, 92, 57, 165, 187, 161, 162, 156, 42, 224, 237, 223, 34, 220, 6, 50, 85, 165, 251, 145, 97, 41]) = 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) + (KeyTypeId([103, 114, 97, 110]), [36, 166, 229, 201, 64, 199, 173, 240, 34, 227, 87, 74, 16, 103, 231, 118, 193, 100, 154, 47, 197, 80, 77, 78, 95, 67, 144, 218, 122, 167, 106, 61]) = 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) + (KeyTypeId([103, 114, 97, 110]), [59, 140, 203, 160, 163, 106, 182, 197, 176, 77, 21, 157, 46, 49, 136, 198, 189, 46, 130, 87, 189, 236, 105, 53, 174, 109, 129, 46, 49, 211, 109, 133]) = b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) + (KeyTypeId([103, 114, 97, 110]), [6, 53, 251, 148, 6, 168, 57, 130, 109, 253, 129, 176, 249, 217, 117, 43, 51, 124, 109, 230, 124, 188, 231, 71, 20, 106, 163, 71, 87, 46, 38, 93]) = 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) + (KeyTypeId([103, 114, 97, 110]), [62, 145, 31, 166, 34, 204, 141, 250, 6, 254, 160, 122, 151, 165, 99, 172, 216, 40, 169, 107, 196, 61, 57, 228, 133, 87, 188, 149, 238, 2, 54, 126]) = 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) + (KeyTypeId([105, 109, 111, 110]), [166, 62, 76, 194, 212, 161, 3, 124, 107, 151, 22, 162, 92, 69, 30, 35, 17, 208, 227, 2, 161, 33, 152, 165, 64, 95, 46, 63, 170, 95, 90, 121]) = 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) + (KeyTypeId([105, 109, 111, 110]), [212, 150, 146, 86, 172, 150, 24, 221, 51, 4, 102, 147, 236, 109, 33, 20, 240, 238, 89, 121, 166, 250, 131, 67, 77, 151, 47, 48, 110, 216, 139, 3]) = b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) + (KeyTypeId([105, 109, 111, 110]), [226, 140, 202, 204, 79, 138, 61, 17, 229, 53, 7, 65, 178, 133, 100, 211, 41, 3, 22, 170, 194, 185, 84, 230, 253, 135, 80, 168, 200, 109, 78, 56]) = 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) + (KeyTypeId([105, 109, 111, 110]), [36, 166, 229, 201, 64, 199, 173, 240, 34, 227, 87, 74, 16, 103, 231, 118, 193, 100, 154, 47, 197, 80, 77, 78, 95, 67, 144, 218, 122, 167, 106, 61]) = 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) + (KeyTypeId([105, 109, 111, 110]), [50, 49, 87, 193, 226, 119, 207, 224, 22, 167, 103, 165, 244, 204, 134, 34, 82, 50, 243, 230, 200, 251, 125, 46, 66, 151, 82, 201, 178, 29, 2, 54]) = 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) + (KeyTypeId([105, 109, 111, 110]), [6, 53, 251, 148, 6, 168, 57, 130, 109, 253, 129, 176, 249, 217, 117, 43, 51, 124, 109, 230, 124, 188, 231, 71, 20, 106, 163, 71, 87, 46, 38, 93]) = 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) + (KeyTypeId([105, 109, 111, 110]), [62, 145, 31, 166, 34, 204, 141, 250, 6, 254, 160, 122, 151, 165, 99, 172, 216, 40, 169, 107, 196, 61, 57, 228, 133, 87, 188, 149, 238, 2, 54, 126]) = 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) + (KeyTypeId([97, 117, 100, 105]), [210, 5, 86, 158, 193, 183, 198, 121, 74, 115, 58, 248, 39, 30, 79, 30, 47, 46, 51, 28, 56, 166, 187, 187, 25, 169, 84, 230, 35, 151, 208, 97]) = 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) + (KeyTypeId([97, 117, 100, 105]), [230, 1, 224, 237, 118, 22, 6, 52, 80, 131, 226, 47, 71, 132, 172, 111, 26, 91, 77, 214, 87, 216, 41, 140, 73, 218, 253, 204, 50, 152, 53, 94]) = 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) + (KeyTypeId([97, 117, 100, 105]), [30, 127, 75, 80, 109, 2, 132, 53, 208, 145, 108, 224, 89, 145, 75, 77, 159, 177, 189, 0, 232, 247, 111, 25, 18, 133, 90, 242, 37, 18, 103, 117]) = b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) + (KeyTypeId([97, 117, 100, 105]), [36, 166, 229, 201, 64, 199, 173, 240, 34, 227, 87, 74, 16, 103, 231, 118, 193, 100, 154, 47, 197, 80, 77, 78, 95, 67, 144, 218, 122, 167, 106, 61]) = 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) + (KeyTypeId([97, 117, 100, 105]), [6, 53, 251, 148, 6, 168, 57, 130, 109, 253, 129, 176, 249, 217, 117, 43, 51, 124, 109, 230, 124, 188, 231, 71, 20, 106, 163, 71, 87, 46, 38, 93]) = 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) + (KeyTypeId([97, 117, 100, 105]), [62, 145, 31, 166, 34, 204, 141, 250, 6, 254, 160, 122, 151, 165, 99, 172, 216, 40, 169, 107, 196, 61, 57, 228, 133, 87, 188, 149, 238, 2, 54, 126]) = 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) + (KeyTypeId([97, 117, 100, 105]), [68, 22, 20, 16, 140, 6, 2, 52, 166, 104, 116, 188, 0, 124, 219, 50, 70, 10, 205, 133, 224, 178, 18, 102, 3, 123, 120, 200, 168, 98, 140, 120]) = 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) + (KeyTypeId([98, 97, 98, 101]), [118, 16, 233, 132, 231, 207, 15, 68, 76, 71, 54, 154, 73, 3, 115, 212, 56, 158, 195, 124, 50, 165, 19, 159, 97, 211, 147, 81, 55, 89, 94, 16]) = b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) + (KeyTypeId([98, 97, 98, 101]), [148, 88, 150, 51, 31, 228, 215, 129, 116, 122, 4, 202, 214, 209, 29, 125, 209, 170, 6, 34, 255, 183, 174, 54, 212, 97, 21, 61, 106, 224, 137, 40]) = 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) + (KeyTypeId([98, 97, 98, 101]), [206, 34, 118, 109, 212, 39, 8, 142, 110, 110, 255, 214, 160, 222, 210, 152, 165, 78, 11, 76, 60, 250, 98, 57, 252, 145, 38, 122, 27, 104, 20, 75]) = 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) + (KeyTypeId([98, 97, 98, 101]), [236, 230, 121, 3, 185, 7, 229, 181, 34, 88, 131, 41, 223, 200, 57, 141, 171, 210, 250, 203, 231, 96, 249, 191, 104, 41, 134, 51, 7, 27, 207, 48]) = 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) + (KeyTypeId([98, 97, 98, 101]), [36, 166, 229, 201, 64, 199, 173, 240, 34, 227, 87, 74, 16, 103, 231, 118, 193, 100, 154, 47, 197, 80, 77, 78, 95, 67, 144, 218, 122, 167, 106, 61]) = 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) + (KeyTypeId([98, 97, 98, 101]), [6, 53, 251, 148, 6, 168, 57, 130, 109, 253, 129, 176, 249, 217, 117, 43, 51, 124, 109, 230, 124, 188, 231, 71, 20, 106, 163, 71, 87, 46, 38, 93]) = 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) + (KeyTypeId([98, 97, 98, 101]), [62, 145, 31, 166, 34, 204, 141, 250, 6, 254, 160, 122, 151, 165, 99, 172, 216, 40, 169, 107, 196, 61, 57, 228, 133, 87, 188, 149, 238, 2, 54, 126]) = 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) +] +Session.NextKeys = [ + 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) = SessionKeys { grandpa: Public(0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)), babe: Public(0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)), im_online: Public(0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)), authority_discovery: Public(0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)) } + 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) = SessionKeys { grandpa: Public(d57a207a1976692edc9cdef35a0e8476c921b9618426ced69fb0cdcf7526f787 (5GtcLS5j...)), babe: Public(ece67903b907e5b522588329dfc8398dabd2facbe760f9bf68298633071bcf30 (5HRKd4qb...)), im_online: Public(a63e4cc2d4a1037c6b9716a25c451e2311d0e302a12198a5405f2e3faa5f5a79 (5FpgK6zN...)), authority_discovery: Public(e601e0ed761606345083e22f4784ac6f1a5b4dd657d8298c49dafdcc3298355e (5HGHRpS9...)) } + 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) = SessionKeys { grandpa: Public(24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...)), babe: Public(24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...)), im_online: Public(24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...)), authority_discovery: Public(24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...)) } + 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) = SessionKeys { grandpa: Public(1f61085805a92ff7a4b8b75c39a5bba1a29c2ae0eddf22dc063255a5fb916129 (5CmrAbeH...)), babe: Public(945896331fe4d781747a04cad6d11d7dd1aa0622ffb7ae36d461153d6ae08928 (5FRDG2PE...)), im_online: Public(323157c1e277cfe016a767a5f4cc86225232f3e6c8fb7d2e429752c9b21d0236 (5DCWuh34...)), authority_discovery: Public(441614108c060234a66874bc007cdb32460acd85e0b21266037b78c8a8628c78 (5Dbyfvkk...)) } + 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) = SessionKeys { grandpa: Public(3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...)), babe: Public(3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...)), im_online: Public(3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...)), authority_discovery: Public(3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...)) } + 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) = SessionKeys { grandpa: Public(ad55f6731ca5b372162ba4589e2812287b41dc55dc9811da2bf76ead9395a7f9 (5FyygFFr...)), babe: Public(ce22766dd427088e6e6effd6a0ded298a54e0b4c3cfa6239fc91267a1b68144b (5Giyxa9A...)), im_online: Public(e28ccacc4f8a3d11e5350741b28564d3290316aac2b954e6fd8750a8c86d4e38 (5HBkW8jr...)), authority_discovery: Public(d205569ec1b7c6794a733af8271e4f1e2f2e331c38a6bbbb19a954e62397d061 (5Gp5Vt89...)) } + b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) = SessionKeys { grandpa: Public(3b8ccba0a36ab6c5b04d159d2e3188c6bd2e8257bdec6935ae6d812e31d36d85 (5DQnWNvb...)), babe: Public(7610e984e7cf0f444c47369a490373d4389ec37c32a5139f61d3935137595e10 (5EjWXnJJ...)), im_online: Public(d4969256ac9618dd33046693ec6d2114f0ee5979a6fa83434d972f306ed88b03 (5GsSjkLN...)), authority_discovery: Public(1e7f4b506d028435d0916ce059914b4d9fb1bd00e8f76f1912855af225126775 (5Ckh7DV8...)) } +] +Session.QueuedChanged = false +Session.QueuedKeys = [(4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), SessionKeys { grandpa: Public(ad55f6731ca5b372162ba4589e2812287b41dc55dc9811da2bf76ead9395a7f9 (5FyygFFr...)), babe: Public(ce22766dd427088e6e6effd6a0ded298a54e0b4c3cfa6239fc91267a1b68144b (5Giyxa9A...)), im_online: Public(e28ccacc4f8a3d11e5350741b28564d3290316aac2b954e6fd8750a8c86d4e38 (5HBkW8jr...)), authority_discovery: Public(d205569ec1b7c6794a733af8271e4f1e2f2e331c38a6bbbb19a954e62397d061 (5Gp5Vt89...)) }), (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), SessionKeys { grandpa: Public(d57a207a1976692edc9cdef35a0e8476c921b9618426ced69fb0cdcf7526f787 (5GtcLS5j...)), babe: Public(ece67903b907e5b522588329dfc8398dabd2facbe760f9bf68298633071bcf30 (5HRKd4qb...)), im_online: Public(a63e4cc2d4a1037c6b9716a25c451e2311d0e302a12198a5405f2e3faa5f5a79 (5FpgK6zN...)), authority_discovery: Public(e601e0ed761606345083e22f4784ac6f1a5b4dd657d8298c49dafdcc3298355e (5HGHRpS9...)) }), (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), SessionKeys { grandpa: Public(1f61085805a92ff7a4b8b75c39a5bba1a29c2ae0eddf22dc063255a5fb916129 (5CmrAbeH...)), babe: Public(945896331fe4d781747a04cad6d11d7dd1aa0622ffb7ae36d461153d6ae08928 (5FRDG2PE...)), im_online: Public(323157c1e277cfe016a767a5f4cc86225232f3e6c8fb7d2e429752c9b21d0236 (5DCWuh34...)), authority_discovery: Public(441614108c060234a66874bc007cdb32460acd85e0b21266037b78c8a8628c78 (5Dbyfvkk...)) }), (b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...), SessionKeys { grandpa: Public(3b8ccba0a36ab6c5b04d159d2e3188c6bd2e8257bdec6935ae6d812e31d36d85 (5DQnWNvb...)), babe: Public(7610e984e7cf0f444c47369a490373d4389ec37c32a5139f61d3935137595e10 (5EjWXnJJ...)), im_online: Public(d4969256ac9618dd33046693ec6d2114f0ee5979a6fa83434d972f306ed88b03 (5GsSjkLN...)), authority_discovery: Public(1e7f4b506d028435d0916ce059914b4d9fb1bd00e8f76f1912855af225126775 (5Ckh7DV8...)) })] +Session.Validators = [4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...)] +SmithCert.StorageCertsRemovableOn = [ +] +SmithCert.StorageIdtyCertMeta = [ +] +SmithCertCert.sByReceiver = [ +] +SmithMembership.CounterForMembership = None +SmithMembership.Membership = [ +] +SmithMembership.MembershipsExpireOn = [ +] +SmithMembership.PendingMembership = [ +] +SmithMembership.PendingMembershipsExpireOn = [ +] +Sudo.Key = Some(4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...)) +System.Account = [ + 00003075edee896b833013ba055785713e813c8e58b8062291481e2f61745f7c (5C4huvuo...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x8740f03f7ddced22d305086335fd53b305e9cc44b24086c42ecf7911bf7e15d4), free: 2084, reserved: 0, fee_frozen: 0 } } + 0002bff3b9e193e89f0816a05c364d3eb1c49649ddae5f993edd43666ca29462 (5C4ig3g6...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x0b997f145c77696f2912e264d83f6d4ded570e4518456e29351d5da24a9ecf4f), free: 13720, reserved: 0, fee_frozen: 0 } } + 0005568c427744d93170c403106ee1ab6001b510a39aadd400cadb56c14bc61f (5C4jSeAt...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1dc916f5a79c5963933ac2c15e0b3f052ffe86a781b7407f5d7cf2bb68e96840), free: 1100, reserved: 0, fee_frozen: 0 } } + 0006581b64ac83dc20731001a9ded448c0f652af3d9d6e324f9c102b9bde2a95 (5C4jjyaG...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xb763cb0fa8f04597e60c85d2b71062f33cf8f60cbeb3c5af263ffc80450bca9d), free: 267863, reserved: 0, fee_frozen: 0 } } + 00069e47ffbbb63803719bc7d9a691e665faec6e52f16290170ce99e866e1f63 (5C4jphWF...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xf9f15a09fe5388434d5a264f531a2958637774614df62b39fb52dd2b3d14491b), free: 200, reserved: 0, fee_frozen: 0 } } + 000afb340ae0321082a0fdc7b2c3a4f5cef1777e8d6a4dfc11bdb78f781f7229 (5C4m7sVz...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x51f4d3c13363b55067980c238c44a886c4e244074fc7484768a6357fa7a38d29), free: 202619, reserved: 0, fee_frozen: 0 } } + 000eab7611911950d679a3bce33490918718fee2160619343d726be8ce0bb6de (5C4nDRVG...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x8434f157c728bfc481d654e2914bcb490f5b166a77aef31c87d682070fb88e45), free: 5000, reserved: 0, fee_frozen: 0 } } + 001687855a3832a42b79ebd3f897d674bf8ba1d27d03b733c45a541230a8952d (5C4pYqj4...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x9e8a4170b8ce760411fb132191ade4096fb3c85dbf7925c899b7f0c2ddf29778), free: 10000, reserved: 0, fee_frozen: 0 } } + 0017bf53bde43bf6b1db2ccb01fefcbbab5b2e3d69a71d0c7ae8332abb65de8d (5C4puptP...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xfaecfa70a996fec271cc89518ff45e273fc7d3c460f0dec8cd8672bc3fe25200), free: 536131, reserved: 0, fee_frozen: 0 } } + 00188c82966e4dbfd899a24414a4d873da311fdc9714b633f20ae26a9df1427f (5C4q9dqQ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x0aa3709795b5aaf1aeeb9deccb75c8ca575fe7efc4b5b33b0793109fe385931f), free: 1439248, reserved: 0, fee_frozen: 0 } } + 001b12fda4ce2878860cd80c528acca6a7bde19289aa50e5b09844b7a00b3916 (5C4qu9Rb...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xa40c0c52b727e08592337cc2b65519f07ee03b3fa7f18a494800efe59f302263), free: 1084814, reserved: 0, fee_frozen: 0 } } + 001bd2f8cb2cfba2b8c3462e554ccda4956cfc29cd9b85a52bb07a8213430a9c (5C4r84qb...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xc81642a145865a545a05db037591ac6543197e6085c52cd102abf457c9cccde8), free: 844994, reserved: 0, fee_frozen: 0 } } + 001fae6d8b92f837f1268b35ed3526712e1d1746133da2623f52ad49270ded53 (5C4sGXTF...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xa6b6c41c8eb4d81d7a2ce5fd037f3546df6875ba6c86b42ccc184d1ac4d86a49), free: 1342246, reserved: 0, fee_frozen: 0 } } + 002380b9902e1db3d12dee1e25ed54c1e220794c7d9368dee74d9b011ee23a11 (5C4tQNKC...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xa9999f64d5884986cb372f13b11de5003b046c8c0e0e9bbed188e8643ca01f46), free: 138211, reserved: 0, fee_frozen: 0 } } + 002ce4a89f5adfd660db8a2e1f94458801d7717e40d870b3884f9c37faa9ce8d (5C4wCAGK...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xf34c827d5a57cb6b893641857f585e20fbfdede3df4d586f8db0e711748895bb), free: 22500, reserved: 0, fee_frozen: 0 } } + 0031877fcfd0212722a689824793dead90cb14a8f708b3d370f6f99e617ae962 (5C4xa3CA...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xcd20aabccd14db92178945e1919b351aac5cab59c77d978dacfac07cbf628108), free: 6000, reserved: 0, fee_frozen: 0 } } + 003440fcbf60f696fb639826e0f3908231944dd1b6c404309ee398c71fee7aa2 (5C4yNytq...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x552fdc3265f57db6dee272f13bef2de658dedf6e9236f6408d1bec2a5b7fe9fa), free: 15100, reserved: 0, fee_frozen: 0 } } + 00367bb1f0ecbd5a97b998eb3ba6d36ddfafb264564de13c3a2ae47f89d90f92 (5C4z3PhU...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x634b5a843dcf75dee6a7c8150561a25dd116cd73ba7e01002e40dc33cbc17b21), free: 30000, reserved: 0, fee_frozen: 0 } } + 00370164f7871e7d848834cebc0a8bc25de3c158b03bdbf6c1cd83a237bcb1a2 (5C4zCPc2...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xf1976f8993b48d55f1ecd72b571c2f5854df13c5c6becda54e67cf099f6b360b), free: 210000, reserved: 0, fee_frozen: 0 } } + 003c7eb1dab93556a86be8bc25cf5cecdbe82d924b395dfc233ae2d7ff992286 (5C51pyJq...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x0b925968ee572e0f1c4654a31f78a796207cf7fd870ac4f219be891ae09ff130), free: 216708, reserved: 0, fee_frozen: 0 } } + 003ff6033d70c84c223c6ad85a23e949a8b8969394b637da7ec63f0674911102 (5C52rh2S...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x2f36483e0c2205f19eef0b573289ef3716c87c7def9b57a74a48e63e74077826), free: 606632, reserved: 0, fee_frozen: 0 } } + 00403355c768cd2f14c2802d1185539e369aa13d7cce30d100c2d54f433bdf8a (5C52vpQJ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x09b04460f26722b1f9af7a1449d9188b6d563df7b134137ff468074ecd64f029), free: 32200, reserved: 0, fee_frozen: 0 } } + 0045540f2c10beb071d6aa4171fbfeaec1db9d5d2ac894f8744cef1e60473b3e (5C54TAjA...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x7cd9fd57e0e8d0df86c5a14fb61c94285443237c37aa6ecc353ca41fef55058a), free: 7560, reserved: 0, fee_frozen: 0 } } + 0045d1fe10ef482d0fef67c51934b9fae6d9fb0e61e850b8f892639bdd98460b (5C54beKQ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xf5fbb9e1969ef427f637c9256a2166cd55908073a5e25172a8cc0f11cf0a5421), free: 90496, reserved: 0, fee_frozen: 0 } } + 004678a23cef2a179779851f05b60f7250fd4ac0b9797e348df3af8ee27fe989 (5C54nrpH...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xe71ab43a1fb2621dba773beae345fe9aae5a56c3a9e47094af25c0f014c76c4d), free: 3096, reserved: 0, fee_frozen: 0 } } + 00479a5d797bc77332455e60e1f339eee26d08e42c8a20835baacd4eb40ad03e (5C558Moh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x41d015372ef16b54803e7d2769e2553cc7cc1468d5926ebae0b6ce2b4393e278), free: 304, reserved: 0, fee_frozen: 0 } } + 00492ab849cfef6fee6a9ab4b83e6a985c8693576d67bafa4ad1709ae0d9d4df (5C55bJd6...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x2bf576e38acac17ed1981742a91755f743b35914b370612285e10a5880682b28), free: 317750, reserved: 0, fee_frozen: 0 } } + 004b744e8186be843a17458988a7ffea49fc0ce6f1ac532289491f308d3b4292 (5C56GiWT...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x62448f17425eb33e4f029f4cd3a298f002635e8ff304f0e0bde4bf3b365fed58), free: 1900, reserved: 0, fee_frozen: 0 } } + 004bc52bae363a27a99d00512654099804ff598fdc694753c0642e7eb88c527b (5C56NAAg...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xb492f07a2429950ee007b0a12de0f78b393f722f1852ca43346ab29625174c56), free: 5000, reserved: 0, fee_frozen: 0 } } + 0053fc2aa8b89f7ddb4aa3955a80915ea074948e180005001254957d801b703d (5C58ohPA...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x45e4e01820a14b442fd0ab30cdd9ca126cc754a68367ddb0244ef18899f596db), free: 290658, reserved: 0, fee_frozen: 0 } } + 00550aec08fd423b50269412f50d864e499428c37b93bcb20bf270b86b9f18cb (5C597vJG...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x29a97f708a5d28e6ecf3c99425b7dc92c99032e23cc3192c2e5b32f523b8649b), free: 646353, reserved: 0, fee_frozen: 0 } } + 0055b7c6688784f57856d9645a53313532c3ace6fab5874fe4f97bc4cc27f62d (5C59KZ3X...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x6a7f3f12883cab1b0d5aa44e73d4dae26368713fa9f572866aff481a54fd65dd), free: 24507, reserved: 0, fee_frozen: 0 } } + 0056b1bdee99f5009d75958a5697e273bcc606072598962f1975ded124ba47be (5C59cNow...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x4edcd66fec9eeaec3257c933aaad5d8467ac187aac88ff1e6733bc4ba45b8f43), free: 40100, reserved: 0, fee_frozen: 0 } } + 00588fce7f5be5c1b2579227829c5a8ef87ea1bd977441c309e497d31b5ac23d (5C5AAYyU...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x6c9401f3b7978924d357b8a7baf3cd9ee02cb3bacd51fcde0e60670ac2c5cc7c), free: 55273, reserved: 0, fee_frozen: 0 } } + 005948801ee688d0efe0f4b67f60436a5376ad3cbbc1b8cd75ae956ba402971b (5C5ANywa...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x9530e2602952132c1b45f92ef14edd749672ddcfa984337c1987a712525ec1cb), free: 787908, reserved: 0, fee_frozen: 0 } } + 005d47a1862b03ba1578993c98ccac38695e3e0bb23eb3e3a50bbf32a5449969 (5C5BZqpC...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xcf4ebf71c7e36f3e79fe379d57046ddd27ae3f3f46bc6742b94ccb0bd0b79241), free: 560368, reserved: 0, fee_frozen: 0 } } + 005f404b148e0cfdfc4d0b4ae9c9f4b71ab2495daf9315308f8dac1c72a65cbf (5C5C9ood...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0b5249a91fb4775ac07b7fc52aaec00a9e91f7cc151d3575657c561c83082b92), free: 265106, reserved: 0, fee_frozen: 0 } } + 0065f37108b49d33a20d8e9cca11056cf8fb44b29f7afc8abe59643abbe5c276 (5C5E9F2Q...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x82c4b07c1d7632967a7fb760a9f098107f4e5578089a784dbf4a9e98cd1f57f6), free: 100000, reserved: 0, fee_frozen: 0 } } + 006b9b1207fa477275711eba145fe35ac5e6cea6825a86e572d587faeba36b19 (5C5Fpfxj...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x9a26b02e0900d90785190981cee6d359f813a5ed7f9585c580a9097110a4b643), free: 699, reserved: 0, fee_frozen: 0 } } + 006d0c46e0d16d89b0b3adfe56be53de7e83f97ada28efc4a5aa473201af13af (5C5GFXBu...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x6e8aea4e2e8351912e02a7f292569e923271b2b2a0e26538e607c56ad837d98a), free: 2000, reserved: 0, fee_frozen: 0 } } + 006e65a5a42f28987586c4add828e688cc9653e3f6c0b71b2ccd90a575ca6268 (5C5GemNN...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x01a8e4aad418fb6a8543b2ce8c561aa9b5c6e2fcd245e218e7c7edacf5b02f9a), free: 602440, reserved: 0, fee_frozen: 0 } } + 0071211cc347ff7fce69361678f4a0fcb97ebca6203ea7e5cd19b371af9032d2 (5C5HTqnh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x50aecaea9c9bd3dc1280e85de6e92fe15f1719e5be3b3759257e98c92e534666), free: 900, reserved: 0, fee_frozen: 0 } } + 00732307d2b0de8a9324d9a2d01ac66218d2c25722d7852f63d6682a6997d415 (5C5J4Ruk...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x5a77eebd644bf636bdd18bfa0ef2ec73242b636468954a4129c0905d81b655e0), free: 500, reserved: 0, fee_frozen: 0 } } + 007502aade869ca4a1772a38bea90e6b1806869fe8911c2d2774a6ccb7b9e76e (5C5JciDE...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x590313fdbbf216f08d9a76dc745f3ec7b890c2b36562ecc02d0e55e77b8207e2), free: 2022, reserved: 0, fee_frozen: 0 } } + 007675577877305e21190da0dadc337e1b505bf728b03cd649dc09c1fd6755ea (5C5K3fAj...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xd38422ac50f85cec9f98e375e1bc969be02be63cfcb9e2a3fe246525ddc2c6f1), free: 1000, reserved: 0, fee_frozen: 0 } } + 0078c3adbc91d19a8d89e134ca62ae8231ca6ea5205c298bb13a8b04477429b8 (5C5KjPbZ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1fb27a6e51a96549d19a5bad47a24b9d2a77c50ce053b4bc5d74dacf36db08f3), free: 1042, reserved: 0, fee_frozen: 0 } } + 0078cc4e1ca6a5f976b7d6292d67eb5a53b71c99f716cdc0ca457ec5dfed1f11 (5C5KjyGf...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xcaed8dd1b9adbc1c7718d7a3a898a52929ab8e3e52f81c0a5802898ac0e34f71), free: 326748, reserved: 0, fee_frozen: 0 } } + 007dae21e17f07be4db13d680d006a37297590b5a7b1c2a5c1e8b570f36a5804 (5C5MC65A...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xccd2b0f14fbc20a13e66ce47cca125a712fb94e5690602561b2ab6677a67e255), free: 50440, reserved: 0, fee_frozen: 0 } } + 0081cf71e4728cd0d3011dda05f506d922b445715488cba1dc69927f66f3511a (5C5NRFNs...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x6ba70691216981d0d22b4fe35a529cfc0b621ebb0089eade896c3b9d37fdae4c), free: 12500, reserved: 0, fee_frozen: 0 } } + 0084de309941477296635552f2708b53791efe19f2119abafa14a5b80c32c559 (5C5PKvtM...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x91882ebab4c5a1337b836324f0dc72297dd3c97eaa2e96a56fb348b26525f12d), free: 10000, reserved: 0, fee_frozen: 0 } } + 008c1057579e80100e4368973caa3076e2d12a9b8690bb0783f5f83ffbf92986 (5C5RTusb...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x8f9251364873decb0e5289534603b9286ccdb6b91b083eecfb54d4afdaa73c1c), free: 548916, reserved: 0, fee_frozen: 0 } } + 008e057619a1784b69c68caecd77a84d80a0893d583ecbad58c165f127902be2 (5C5S3e33...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xf60df2454467aa3b91217249b143343ee3f01280a2e6467ccc67d7197470fad2), free: 290374, reserved: 0, fee_frozen: 0 } } + 008fb1edea30f135ba83939733d036e0ea8c7fbdaec6885704d965f8232c8334 (5C5SYUbW...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x3c6a892db5ffe516faa15e337f84007396c0a2e83f72daf788fb04f7f76d7653), free: 10000, reserved: 0, fee_frozen: 0 } } + 008fec8835e9e438415477d98a282cd92e00ec4e221fd1ead7940b1c5b6fd788 (5C5ScRMc...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xb33444853a6259d9c8c63a25847e299b20500757f12674db77edc72c83f34b19), free: 1000, reserved: 0, fee_frozen: 0 } } + 0094613d9d835168b8d73b0fe3b7380c84d61fe2e8157e392ce6ee985d5609a1 (5C5TwCCp...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x052721cb3bf0f0c4f0f6f7a0fabbbf6b7565d061364e00a66c51ae681839ab60), free: 3000, reserved: 0, fee_frozen: 0 } } + 0099ddd1e066fc0a320a30b3c5024a66cc8f45a59eb652e2abf192f99cd90224 (5C5VZj6M...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1c3cd37275576a79637832953dc354005227a08a775d0614f6c29490e1569298), free: 14200, reserved: 0, fee_frozen: 0 } } + 009a3bc65d9d4a299b3e22fa87695e70f3d9b304837acb4c3b2b89f8f194d6ae (5C5Vg3rV...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xab0b609bb20d1d996279ef4fbd759533dc90afcfdf8430c4f5e0f81173ad05a2), free: 700, reserved: 0, fee_frozen: 0 } } + 009adb4faa29592b6c44f4d2c2f2beda911bc0d2ca8b0993972b4bb643f2177f (5C5Vrnck...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x62bedd6ebcaa656ecf6575ad5b96032b7d53ed5f7540420c54acb9d47dda8db3), free: 10800, reserved: 0, fee_frozen: 0 } } + 009c4342e4c8f55d9a7ce8411bf56b1631017a60995c56fcdbf7d15465b0b6b4 (5C5WH1iE...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x7b608df4e6f975587ff3d314215cc93bafeb8a92e798227a1a904990799462ad), free: 3800, reserved: 0, fee_frozen: 0 } } + 009cc8a657970243cc24237300bf32c129e3eff21632687d76bb183329e9d8db (5C5WRzQQ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xebd848dd12d67b86d6cea04e972898fd03bba1458b379ef0ae36034b11d876db), free: 20460, reserved: 0, fee_frozen: 0 } } + 009fdff2cc0b1d465d09038d79b693f06d1451267ec9ab4f8d4cdcd5038ba3cc (5C5XMFJW...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xd6a707129bcd699493f7ac5241a2dd09d68fc20abd97c56d94fe4a227d113cde), free: 94890, reserved: 0, fee_frozen: 0 } } + 00a4504ebeea8d4c67adb7a3a8624448a9f081748dabea1323bf22a91904b6ca (5C5YfjAy...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x86b5507910d8f743af2a84ed1b10b164ec1143acdc7242bac8a218ff5d2bf1cf), free: 700, reserved: 0, fee_frozen: 0 } } + 00a4504ebeea8d4c67adb7a3a8624448a9f081748dabea1324aca1682f3900ca (5C5YfjAy...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1a23cc94efccdf96712b4aa75007e06170202544a46d79625910ba2160b604ed), free: 320292, reserved: 0, fee_frozen: 0 } } + 00a5d2aefab3705eeae7307d5390396ce01919bb5cd7735aa7a5635d6041233b (5C5Z7jRT...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x983d0484eb2691db5ca34f63bf70482c6cc4d7c2be323f4fa87f2f37f909a24b), free: 292750, reserved: 0, fee_frozen: 0 } } + 00a77d5e750ba0707133e0c166d1ee670afe93e9a281abd2a6d1c543950e71ef (5C5ZcT2L...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x9ab107143a5807bcb94a0a6bfba266271b40e406d31d6d4921758d5991f639ef), free: 50000, reserved: 0, fee_frozen: 0 } } + 00aaa9ad878b5a68600436585447c4c6a8a9339bfab80b41c05f90f31e6dfe7d (5C5aZ7wK...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xcd8bed904a023ebea9974cec70c71af64bc4b446356d2877ef0d63874220681c), free: 7413, reserved: 0, fee_frozen: 0 } } + 00ae9bd647a5778c84e95c70ce818937b4cd8688ee813f501418684e93d53e22 (5C5bj7B8...) = AccountInfo { nonce: 2, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x747f1f0c29c3162c1364008c37d4fafbc9c29daebc2694d19d6e412a8225e72c), free: 589535, reserved: 0, fee_frozen: 0 } } + 00af01ea33621d486426b4a1da51f66747a64fd6206fb370592bb4162d1953d3 (5C5bqyeL...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x483c48aa7dbfc52dcbb3b4c0225be6cf76768fbae76770fecfc6b5cad9725e79), free: 1285924, reserved: 0, fee_frozen: 0 } } + 00b0ac3c363281bb9bd4705fdde136754ccb22a354ede047af89f8bb73ce8530 (5C5cLfpY...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x505ddbf3e93494490e7799377cb6e8cff4d12de0816b6874c91ec10501ff21c9), free: 153080, reserved: 0, fee_frozen: 0 } } + 00b1ddcfbf8c85a31d02fa767b73691e9d9301f7e5f12078352b98dbc4559bd6 (5C5chEfN...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xd6a976e5c0b18786a80be41b5cf0b28a7f777479666b2dcbf39f7359a1664585), free: 10000, reserved: 0, fee_frozen: 0 } } + 00b257dc15c634f17d5a070f5d03eb79e769db5bb3afc9bb11ef1a9301e0d0d1 (5C5cqT62...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xa43564128d104f49f379c6dca181ebd51b9c983e651547c148ba2ea1a2f78f51), free: 700, reserved: 0, fee_frozen: 0 } } + 00b27c4cbff89044a9bf57a515009ab74bd47fa57a96268fb7ea63d2d23f48c1 (5C5csuLL...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xc2c433b54f0a62dc678404c3ccade856b2e3acb6389e3562f91e3bb6034c1807), free: 20000, reserved: 0, fee_frozen: 0 } } + 00bba07b30d4c5c2ec19ae311751af754e6ea366e10c66a3f300aa1d4fef2bf0 (5C5fbQRR...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x5577c58e47ebe91a68931bfb8328df9aa522203ba40f383652222ba7f2dbeac1), free: 20000, reserved: 0, fee_frozen: 0 } } + 00bc21ffd81ef5d88dcc1d954f2cab59fc4f90924c3cee1bd6a59301b96cdf69 (5C5fk81L...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xc63d3b5a7653d0d29b2e35bc4776457a3f2913a4f3633070f8bb02e0cf43f4a7), free: 86010, reserved: 0, fee_frozen: 0 } } + 00bcaae1d3427e865c48163b7dd5e10e7fecc74f3e614ddc94b72b927461995c (5C5fuLLe...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x7a68cccb93e7eb0fb4d79aea09c79e9a0f82c764fb584c8510271f7559a85b75), free: 1000, reserved: 0, fee_frozen: 0 } } + 00bd345e44b6566b46b71536cb63d57da7d67b8103c4f96ada2f2325fd88c2ee (5C5g4b2Z...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x289a0803d2becf66c967dd0af12908b2ce1f63e70e32dab0d239e899ad80b7bd), free: 29518, reserved: 0, fee_frozen: 0 } } + 00c17078d43bd20604e8bed00bd2c6b67cd33ebdfb7cc3e87373e1abaac063d7 (5C5hKYuz...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xac8136205a8532782c1fcb04be285d6f8b49c9c6919299720f056fcfcf6d8f4b), free: 1257925, reserved: 0, fee_frozen: 0 } } + 00c28a3d070e7e8acf4cf3e6eb8e404e4aa28f6d0bb6d5a16e698ffe80282f88 (5C5heWp5...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x7db201f38b8c3563546a404f208d3455d46652b08175bff42b9a158724b38480), free: 1000, reserved: 0, fee_frozen: 0 } } + 00c3e3cdbae035671579cd158fd1acaa190259b9ead09d7c7231ec7b341b2ce5 (5C5i3mkh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x62e721de534864a0d247a7bae22c0fb182838aa9fa9be25a32c42df72031504d), free: 1996, reserved: 0, fee_frozen: 0 } } + 00c6218655147fe20c472227586b952896464e8706d4d8151a9f1ced15a93755 (5C5iiPKa...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xd2b75c97d564393253d680de95323cedbc50c3854551a8aa5603df795a823bec), free: 4300, reserved: 0, fee_frozen: 0 } } + 00c6686f0a63fb3047e7b251696558b02e23153f9a45e6e09ee23263e8cf6e44 (5C5ioA7v...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xbadd52349f56b13373a06d6d1cfaaf6c853fd6425a20e2e3f62fe591b8b59fbc), free: 700, reserved: 0, fee_frozen: 0 } } + 00c941a16c04431fb33c6e8e8d01731ad58d763db711cde74fde54c16c0503bb (5C5jeEbh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1a0b5def5f72e33a7c3f8af4a598070aa32dc663beac665f7bdb969612e1aeb0), free: 15000, reserved: 0, fee_frozen: 0 } } + 00c9e5e39d62ef0c12f645fc53c68c8b546f38e5fde67017db442abb9d3f3d17 (5C5jqHo6...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x5baf14d77b169beb76447077380dd4a4e368069d3bd5d6d7bf2efda66db170ce), free: 1000, reserved: 0, fee_frozen: 0 } } + 00cc1c99673a2c8b27921d6041dc560384e63006747709c21a31cb2c3cea8713 (5C5kVRzd...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x57fbac30ba2c880408355f276c9a25885567311c4e87be7f2951996f5952e363), free: 992177, reserved: 0, fee_frozen: 0 } } + 00cc3dd6ee59e371aa833037d90ffe17b7e3a04631ba2a0f57753958053fd176 (5C5kXfkV...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x939b7cd1a252de9c5cd49761dc1e6c19e5765baade73975ba5f71b3a60562fb9), free: 142041, reserved: 0, fee_frozen: 0 } } + 00d5d5f2d4ea7f69c1e12d9074879e027109a6329a6fe7735386fee6c6122e96 (5C5oNyNU...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xa1ba5b231a564630f63469f74921d308901dbec33096cdb78ef44f45066e53b1), free: 30688, reserved: 0, fee_frozen: 0 } } + 00d728d450cd3c10a73c4c308240db9256f9c9b3d401e5ffa2f6ada0813a26b8 (5C5omnDh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xce39b2e87c308b3912fff539f75fce0836d8af393abca6b30a98d2659c0f565e), free: 18500, reserved: 0, fee_frozen: 0 } } + 00d8b947fb506cff12254d07e29741569c1492d9814a4baf368dbfb276cb0e9c (5C5pEjR5...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x9bec804c4cb042cc1e210df61d5a1dfcf1ce8eff4aa0e736aa105252f8c16074), free: 28000, reserved: 0, fee_frozen: 0 } } + 00d92fef0af60df9fb493eb3c71ba5ad1f5873a13159fdb6927a14adac82cbff (5C5pNiaw...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x600ed6fa054416cb5ccdfe17fd43a9950b6c4abd6d34f4640e9b9aae9cd8238e), free: 10000, reserved: 0, fee_frozen: 0 } } + 00def3a76a07e02c95bde344370ed74c97a35f7afaacde6d0928ef709e9db1c6 (5C5r63BM...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xffa28c5b64b04e09b5adb4ea6a5e285b59abb54f094f1801c3662bd6e23a8429), free: 10000, reserved: 0, fee_frozen: 0 } } + 00df82f7941fbb2bf93321760201f108fb9b01505dc1d657d3fade7558c78b65 (5C5rFgcY...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x5b48254d65e70be4948e7b3b6a7af4601d963f17836652e59e907972c7368643), free: 17379, reserved: 0, fee_frozen: 0 } } + 00ea86fbead225315995eff7b9aff8b6f748f51b31e56a313cf986c23ced514a (5C5uXUn6...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x9c6e4ec1ae2cb6c91074fa3d880e308013d104ab541483d6241bd989b52fc3e6), free: 336582, reserved: 0, fee_frozen: 0 } } + 00ec6e2bfd40f7271668c666340d93c9ceaf59fc72d4618cabce67d45bb0cff2 (5C5v6GZ9...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x3d069440f95eeb180ca15d775d0cd3f1cd8c93bed7748b200eaefb3de045b643), free: 5000, reserved: 0, fee_frozen: 0 } } + 00ef1bbab5ad0cd127b8cfd4a06e1c0104136d203623649c8421faacc1f6c7d8 (5C5vtQge...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xc44c59fc4d6894a7df64e70f9bc7e14c98794c922a976f2e4d1f8ae8a0ebfa8c), free: 700, reserved: 0, fee_frozen: 0 } } + 00f019526a9e03caddfc1844caf0281fae46239ad275f4ba752401e51f6415b2 (5C5wBUby...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x147e70452cc4732eda1603b6e8078dc8451d03c4d424cc4c4feeca0770101aac), free: 1000, reserved: 0, fee_frozen: 0 } } + 00f0ed3f01d64878f3bccc58274c9c9df6944a12003db5329d733ef5f8579ae0 (5C5wRjsE...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xb7b0fe5f89862fc51028c06660a8662506428aeb9da7137b54adc5eb832f521e), free: 450, reserved: 0, fee_frozen: 0 } } + 00f1f0cdc733064ec64fb6da4d144ede74b8154f99559ab0b0cef7c7df06a0dc (5C5wjD56...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x844df39e880ecdeeb87d339b5524953742982874b821ffbc0aa32b7a5a648dae), free: 847065, reserved: 0, fee_frozen: 0 } } + 00f35c4bf52e2fbf1c38c9ec624cbeacd55592509da97c6eeea6f34b76253ff8 (5C5x9fzg...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x8f2f9ca4c55b35f3087d39f683cdcba2eb2e5ee69187c8d8e5e72e8b2433af11), free: 614, reserved: 0, fee_frozen: 0 } } + 00f4900f792bcc2b61775da43837a7ddc73a82842e373214d619f7230248348d (5C5xWPNm...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x3d38ba3212a2593e5ca052c1d4f44ba0e3b0cb7ce2f466de699cd4c665aae84d), free: 5100, reserved: 0, fee_frozen: 0 } } + ... +25941 hidden +] +System.AllExtrinsicsLen = None +System.BlockHash = [ + 0 = 0xf9bb23a15c8323959bab5128c352356811dd1b8ef79c1aefff58642529260dfc + 1243127 = 0x88dc4dc1db9fbe9f1ca54b7b2f14c33af95312146078cd1e595b6b82c52e9fac + 1243128 = 0x19a07277426a9786ea610af34583af8b05a94b59ecdd817cd945ff4e501eb962 + 1243129 = 0xae7fdfbd4e5b41cd711ebc543994d0d38c4e3243d1c855690aca9c095dce8626 + 1243130 = 0x62be0e2782b1a5c7e5c2af1b32672df93bd9990f2847d39792b32c0812635705 + 1243131 = 0x590b621d6453c1216dd8a31847522b9c7624f2eb8cdff243209d94a94de065ce + 1243132 = 0x17e5e9d3da4459658e762e3823899d87c7e476933647856d9b430345f51e3da4 + 1243133 = 0x0537ec08fd42282c29c856cdbdfd45665ffce23d64edd1fbff34204abd9207b8 + 1243134 = 0xa154b6c0356a176330093c31453784dc10403523f44c6e7bfceb91d6b9ad6008 + 1243135 = 0xccd73ae16506b55bd7efc3cef083ae89f8639134c63b14e703985e69e856c61f + 1243136 = 0x166441f139fea63c36e3ce0dea02dfb50ca78a11af39a525d15c9dbc02690312 + 1243137 = 0x612e9dbac6fce60f43ef908b70a97c2ed51a82b3959e8ba4466b9863d9b9fa3f + 1243138 = 0x3d13200bd01a075b88c57a318fb62877e413790869ff26cb2a19571429770d70 + 1243139 = 0x4bbc0aff1f4cb6f8f3a80951d1cf68632f7f06ebcf67dbca29ba0e63ec5e5205 + 1243140 = 0xbbedce41515b2b4cf3d488b255c53f395c985a97173a1dfbe64559942fe9ec25 + 1243141 = 0x95e14d17214832fb8c6c8d4d2b2e803f1f446a166acec154b4390ae67e72669b + 1243142 = 0x8e7e710c5686cfa9db0b5430d413a7c93feac6368232a57ff8a954b090a2ccd5 + 1243143 = 0x9b07faabb8ea0df60e2a5e122913a4e093ce7f392a7649956838fa062b4759a2 + 1243144 = 0xfb119e6ffc51d5d30eab9ac6ecf285d7cfa041c3974de71043d72c914e4cf37c + 1243145 = 0x8bb6c8351647f4ece85960c9cdb578d269d31ce2b6490dbd8ea93f6f199fd524 + 1243146 = 0x3784c5593418dc54baa1152334e4dca702f4d4ec5f875b16d4e702510539fe2b + 1243147 = 0xeaa60dc16caa795b5adfed1552eb29775ca1664e4ece8df498dea2aa3e982039 + 1243148 = 0x1236c12c3c03a2a380ed7eef5cc5eada68d1e0db2e0cc2df96b896eb98188eaa + 1243149 = 0xfedd5ccdc73d88177a7c1464d6cd0a46c0dcadf3b0fd961ab10e1aff42a08cb3 + 1243150 = 0xfeb566dc9b186443a5b0092d1c9c2a4031b541291cfaaf32ba86a587a68bef01 + 1243151 = 0x3d1fb6f4c8f432e0589e599b7585bd8af8ab7a0c5d764c9a8bffb4b8c247d5cb + 1243152 = 0x6a8d5433cb868ac13538c502264b560e31fab847f1aa5764d52088883571b1ca + 1243153 = 0xca1ba78a675bdf4444fccc11f24c0cc897ca7635fbcbc9a2c9e9071a32930c9e + 1243154 = 0x0a261575a538118b0bc3da2f523c5f4595fa141539754203e42a7220e30ec8a8 + 1243155 = 0x601bde224caee1c4dd246b02d9594e23ce808dd41cce5b7f2d2c7b6a659b36b6 + 1243156 = 0xadc542bf5617dcf7a9eac046167a51db8c50a567e557eb5364874c33e3079b33 + 1243157 = 0xdbab1a24988fb0318258d6ce40a14ca2d293197d867a6801c3463dd72d36ba2d + 1243158 = 0x1bbd34c9362e4d73c47d079ac305eb810b1be10f0a566d2b5eda3c71d08025ab + 1243159 = 0x02e05e0d975754aa62656bdc519e8c5f1628f9a4e6b4bee8d26f3fdaacffe6e4 + 1243160 = 0x844e400d4be33ca3fded94e4b10b818c21d9e76f730081f3d698c10b995fab10 + 1243161 = 0x722f0b03a119dcc08cb12ef253157414fe8aed72f0355eb9cb522c0b9bae54f4 + 1243162 = 0xcba82af880ddb1129d654a2485b1dc857d6aceb1f04e77e69f18398e64af2a7d + 1243163 = 0xa6b37a26615db99c28a52394b53480f45f8b6cefa2f767ef6bfa13b3b3c67ba9 + 1243164 = 0x97202a09efb1cc6cfa6eb3774e34ba36c8d15589b6de66f32148a47cd80c0ecf + 1243165 = 0xd466e6f6aa550fbc3e14eea421fc4b5d3bcefd4d30e1ed14946be897baab7feb + 1243166 = 0xb4a3ad9469aaf0e673aee9108f0d663653631a2781d1685ca95a65ef53359cc4 + 1243167 = 0x9a4cdb430bf175d787458e28d8eedeb4d6e4e12225c25f0b4a755604221e7e3c + 1243168 = 0xf51f4784b2fd83441f1a0e3ee0ad358bacb8bb824731c94d5b65893beeb96bfa + 1243169 = 0x0fd07c44e9ff97f050b76eda01b34b2086d64698f440e6fce033e1fa3e398b83 + 1243170 = 0x0b424aebbb6d10c3d76625df7a66f0be99b16ee385ab41f9d09d798ef6445d69 + 1243171 = 0x026387caa26b04d4a9b5c18f3958c5e54753c45fa37a9aa206723edb54090c2c + 1243172 = 0xa9fe44e2b4fc8843938805d50faf0df6a72d00f045e739b1e4b82280174a2434 + 1243173 = 0x230e880538c5715d23825f4af621064061649b18f8fa981c1eea298858f22f19 + 1243174 = 0xd0860e6fda1cd8e3e17a8d18f24598ad48e701e61eb9b305f90a8a41b3a4e0a3 + 1243175 = 0x42c8dc1c94ab29c365ead69f5aff7775d9c8a5196721eed974b2cef532905b21 + 1243176 = 0xeb56faf3b063f22cdcb4bb357d7d0ad344d751d9247d5da005857fbb632c2a84 + 1243177 = 0x7752a69ebb33c98dbea2193b057a67b8d55b45e341779f6e260cc9e272bedad0 + 1243178 = 0x64ea8f7faf970f4fc34183b3deed903eb1ad9dc9569d9974cc0d705061bd698d + 1243179 = 0xfe4b35743e8aef6b0215345c4c68162656ea5e0901a14abdf72e2fca472f9560 + 1243180 = 0x0a7eb54f5aca17d94bd01197cf9de2a0250ae99f289b76eb701c30f126bca8d3 + 1243181 = 0x4664fe316da79a196821df6dd5ea1021d5cc9c9aafef69bf4ff785ec23b8fc09 + 1243182 = 0xcc1db493b697b87cd249250f2aed14edb1130950fd2abc01ba242797ec9f75c9 + 1243183 = 0x42b00030ca0e1c15b3612cb6cc279a30c53785902a24d6b64a00ecaefabaa318 + 1243184 = 0xca78922372463eb99e73b152ad16df8cabc4f98b19e52a9b2f001f30e76df207 + 1243185 = 0xebcb023a34314552af5aac90a4bb7560fa5c08396e8b4e69c69299b6687c96a5 + 1243186 = 0x9fecdbb8f22a623acb5840180d6b8159c950c887074debd1c0c606396f2b7b6c + 1243187 = 0x1443b26f8e4df452eca20a1fcb307dea0eeeecafd9711f7123d4f66ca3ca2a2a + 1243188 = 0xc060cb850853e5e65320aba154deb4305bde9e29ba9f196db3695fd3a5033a25 + 1243189 = 0x45055f0ac746ad4c565a0e08a6421bc1da301d95074f6e1a8e393fa11f28d1c9 + 1243190 = 0x2411509284a492db650e1fe36b2be3fe67b678ffd7cd77cc57c8119342e6319c + 1243191 = 0xf23d2a367e627f64df79a7e175ed402d615d072f682efd11bf947d16457bb255 + 1243192 = 0xfb2bffc9c5d5e9342c0bca9be36901a8c647103f89dfbb8d8b057670e711b72a + 1243193 = 0x5d1c844a5a9a1d152e0e3f5f8e515bacca65b7feea1b9896f543af5f907f8219 + 1243194 = 0x24d99238549b359806f12b000b67b5a2008f187c87abd4876383a441cf2d91f6 + 1243195 = 0xe1ac53b15bb29a14e18602de7fbbe10ca291dec04c079aeaed41b0304cdb340b + 1243196 = 0x4a32a02aa9e69aef4dd84011330a3812fcca73b71f412d27b4b02bc237e12dbb + 1243197 = 0x5d130d53e7a7177611f03c1b2c75f1f10e975714f04081da596e29321bff8f63 + 1243198 = 0x55436104e580256ead950cefb818243aee9940224704ca4be6328b1f0dfecf2f + 1243199 = 0x068ac6febf6da9ab69a190857762bde545551f62cc7d1476cf06968097f59ace + 1243200 = 0x767bd18a5eabbef0d7be6b0c78db93e42d37f2c4da965e637fc5ef57993fa102 + 1243201 = 0x5b8c106c42c379fd8b178f5aea7b06125e7e7e6d7aab368bd8fc93038218f24b + 1243202 = 0xc6a5783a67bc892e654fa36b11fbc511c3686deb253113ba9fb8dabcd6545267 + 1243203 = 0xc42be11d33e8889e2e6a0854efbe17e853a3e50afa4e79a36aa1fb9266ca9936 + 1243204 = 0x109955f75eafe6e5534e6c10ef22ea97d23c6fa3b4bde7b8269c3474ae438eb5 + 1243205 = 0xa789498b502844f0fd8128c00cb402f8d826da3a83bcfc693b08f5a7d543a12b + 1243206 = 0x52346a3b4d834fccdc50974fd8762162f42bb7338138fe0cdf1243a04ec63752 + 1243207 = 0x654dee8e24f6cc8c08c364025f87c2b11ca42d77d2fc69e54200b0ec898db973 + 1243208 = 0xb2dc170d032dabdc79ca236870a6e75f20f8174f31bde656045d314a443dcb0e + 1243209 = 0x9383751e459308b82046eb5a4cd2134666af21e99c71b5aa974e5399cab4024d + 1243210 = 0x9fcee3c285ca928a67f327a2ff180b5effebbc2ef2824284da384bedd00030d1 + 1243211 = 0x8dae1968e62cb28fbc5727e8e4c3c496a77cbc2f624651df872ec7ff73c365e0 + 1243212 = 0x9147309cc957d0a8af7b8c2040b7a7c829e4b8d506f50ad0628e18df9e83e256 + 1243213 = 0x63809cbd1b58db705ab07f35ef7ebed084b47d05198d730154da8384eb7167d9 + 1243214 = 0x1a3a2aaa91ecfe20b9d68f4e672026d4762d8408765cd8f43b0c846d2525dfda + 1243215 = 0xb1a94c15c34ad2ce84b07169a233c58da24fdd3eb1a5d55998d3589cf000a6e3 + 1243216 = 0x1ebf69b9bfc5e60637d469558fe5e76612ec60fc7ed0eb45cebcca44ac77c9e3 + 1243217 = 0x984015e08e3a3b918a9c652d2950afff8697c9f84d1b600df024c115dab55b28 + 1243218 = 0x352b0e1f023feba71a21979f0c300e4ad524cf8daaf3a7c7bff8b6889645c07a + 1243219 = 0x6bdab328f98ecbb41b764db16efacb5ee51d6e4aeceedf2d91c7891b1d1f0fb6 + 1243220 = 0x946eb706a88c2fc108981e16ee36e653f643ede90f48d88c21dae198092f0a51 + 1243221 = 0x8bce3e3c72b26337aecb602828a04940cc3f37086d4664982db87cc1e9ff017b + 1243222 = 0xa611a0191c3976d15e569516d1def7f2bca287b394d0cb4ada7883c8bbe44ecb + 1243223 = 0xcc41fd7dfc625a5fce737d5c8994d06778d8e161ad240de73154b1987a7e4620 + 1243224 = 0x12745f9c390b9363b50bff4420f8df795f3cb39001a93cf376fc27351c70213e + ... +2401 hidden +] +System.BlockWeight = Some(PerDispatchClass { normal: Weight { ref_time: 0, proof_size: 0 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 0, proof_size: 0 } }) +System.Digest = Some(Digest { logs: [DigestItem::PreRuntime([66, 65, 66, 69], [3, 3, 0, 0, 0, 33, 191, 172, 16, 0, 0, 0, 0, 64, 84, 77, 32, 47, 200, 222, 123, 41, 254, 20, 238, 19, 219, 195, 163, 99, 59, 244, 240, 227, 155, 205, 28, 163, 26, 155, 122, 194, 64, 85, 32, 166, 244, 183, 223, 126, 10, 123, 36, 216, 152, 144, 169, 204, 7, 8, 198, 14, 232, 33, 97, 232, 173, 235, 92, 74, 155, 25, 167, 90, 104, 125, 3, 150, 112, 23, 221, 206, 204, 94, 12, 0, 58, 23, 175, 20, 223, 88, 79, 55, 36, 181, 194, 189, 133, 28, 73, 217, 95, 118, 50, 208, 164, 10, 2])] }) +System.EventCount = Some(1) +System.EventTopics = [ +] +System.Events = None +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [ +] +System.LastRuntimeUpgrade = Some(LastRuntimeUpgradeInfo { spec_version: 400, spec_name: RuntimeString::Owned("gdev") }) +System.Number = Some(1245527) +System.ParentHash = Some(0x133b833cd88e33197efbfb47d679c53e46b20727b3f81237512989e68290c892) +System.UpgradedToTripleRefCount = Some(true) +System.UpgradedToU32RefCount = Some(true) +TechnicalCommittee.Members = [0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...), 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)] +TechnicalCommittee.Prime = None +TechnicalCommittee.ProposalCount = 5 +TechnicalCommittee.ProposalOf = [ + 0x59f5afb1393d70541697addd2dd5e76f53c87e544bbb0d5fff17747b8908fef6 = RuntimeCall::UpgradeOrigin(Call::dispatch_as_root { call: RuntimeCall::TechnicalCommittee(Call::set_members { new_members: [0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...), 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...), 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), 4e974ecd0a47d0018ad484b01c5205999c675b1045fa676014f31301d1e8d86f (5DqkYGji...), 66a0889670dc1d6530bc868c2e465fab569049a0cdcb0b74ddc69469a354f16a (5EPGRtBY...), 3a47e7931f04d6207a47b6706247186400963f961772a6199f5a48a7e4021a58 (5DP7ze5c...), 92fb88467cdd56b576e85815361b5637fba4146b1b49c7758f5dc98e57d4b06f (5FPRZxVJ...)], prime: None, old_count: 4 }) }) + 0x5aa30a5ceee32ddf4fc2db22a6f36c93f4fbafe25ce577f5acf7d4df2bf5cdfe = RuntimeCall::UpgradeOrigin(Call::dispatch_as_root { call: RuntimeCall::TechnicalCommittee(Call::set_members { new_members: [0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...), 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...), 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), 66a0889670dc1d6530bc868c2e465fab569049a0cdcb0b74ddc69469a354f16a (5EPGRtBY...), 92fb88467cdd56b576e85815361b5637fba4146b1b49c7758f5dc98e57d4b06f (5FPRZxVJ...), 3a47e7931f04d6207a47b6706247186400963f961772a6199f5a48a7e4021a58 (5DP7ze5c...), 4e974ecd0a47d0018ad484b01c5205999c675b1045fa676014f31301d1e8d86f (5DqkYGji...)], prime: None, old_count: 5 }) }) +] +TechnicalCommittee.Proposals = BoundedVec([0x59f5afb1393d70541697addd2dd5e76f53c87e544bbb0d5fff17747b8908fef6, 0x5aa30a5ceee32ddf4fc2db22a6f36c93f4fbafe25ce577f5acf7d4df2bf5cdfe], 20) +TechnicalCommittee.Voting = [ + 0x59f5afb1393d70541697addd2dd5e76f53c87e544bbb0d5fff17747b8908fef6 = Votes { index: 3, threshold: 3, ayes: [], nays: [4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...)], end: 1345614 } + 0x5aa30a5ceee32ddf4fc2db22a6f36c93f4fbafe25ce577f5acf7d4df2bf5cdfe = Votes { index: 4, threshold: 4, ayes: [4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...)], nays: [], end: 1345769 } +] +Timestamp.DidUpdate = None +Timestamp.Now = 1678539462001 +TransactionPayment.NextFeeMultiplier = FixedU128(0.000000000000000000) +TransactionPayment.StorageVersion = None +Treasury.Approvals = BoundedVec([], 100) +Treasury.ProposalCount = 1 +Treasury.Proposals = [ + 0 = Proposal { proposer: 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), value: 10000, beneficiary: b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...), bond: 10000 } +] +UniversalDividend.CurrentUd = 1059 +UniversalDividend.CurrentUdIndex = 87 +UniversalDividend.MonetaryMass = 3583968842 +UniversalDividend.NextReeval = 2592000 +UniversalDividend.PastReevals = BoundedVec([(1, 1059)], 4) diff --git a/tests/storage.out.txt.actual b/tests/storage.out.txt.actual new file mode 100644 index 000000000..a83113694 --- /dev/null +++ b/tests/storage.out.txt.actual @@ -0,0 +1,1179 @@ +Account.PendingNewAccounts = [ +] +Account.PendingRandomIdAssignments = [ + 130 = a8dc86d1f7289d309465c890bb6f662b5c20571154cb14a8835eea0bc8a46179 (5Ft7Qqqi...) +] +AtomicSwap.PendingSwaps = [ +] +AuthorityMembers.AccountIdOf = [ +] +AuthorityMembers.AuthoritiesCounter = 5 +AuthorityMembers.BlackList = [] +AuthorityMembers.IncomingAuthorities = [] +AuthorityMembers.Members = [ + 1 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) } + 2457 = MemberData { expire_on_session: 4436, must_rotate_keys_before: 3548, owner_key: 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) } + 3595 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) } + 6317 = MemberData { expire_on_session: 0, must_rotate_keys_before: 1500, owner_key: 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) } + 6951 = MemberData { expire_on_session: 3983, must_rotate_keys_before: 3121, owner_key: 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) } + 7139 = MemberData { expire_on_session: 3954, must_rotate_keys_before: 3113, owner_key: 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) } + 7228 = MemberData { expire_on_session: 3535, must_rotate_keys_before: 2635, owner_key: b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) } +] +AuthorityMembers.MustRotateKeysBefore = [ + 2635 = [7228, 7228] + 3053 = [6951] + 3056 = [2457] + 3102 = [2457] + 3113 = [7139] + 3121 = [6951] + 3548 = [2457] +] +AuthorityMembers.OnlineAuthorities = [2457, 6951, 7139, 7228] +AuthorityMembers.OutgoingAuthorities = [] +AuthorityMembersMembers.ExpireOn = [ + 2830 = [7139] + 3912 = [2457] + 3937 = [6951] + 3954 = [7139] + 3983 = [6951] + 4436 = [2457] +] +Authorship.Author = None +Authorship.DidSetUncles = None +Authorship.Uncles = Some(BoundedVec([], 11)) +Babe.AuthorVrfRandomness = Some(Some([52, 96, 83, 90, 148, 220, 188, 133, 42, 22, 25, 212, 106, 247, 16, 202, 157, 131, 248, 189, 247, 91, 17, 214, 241, 159, 124, 27, 182, 133, 22, 235])) +Babe.Authorities = WeakBoundedVec([(Public(ce22766dd427088e6e6effd6a0ded298a54e0b4c3cfa6239fc91267a1b68144b (5Giyxa9A...)), 1), (Public(ece67903b907e5b522588329dfc8398dabd2facbe760f9bf68298633071bcf30 (5HRKd4qb...)), 1), (Public(945896331fe4d781747a04cad6d11d7dd1aa0622ffb7ae36d461153d6ae08928 (5FRDG2PE...)), 1), (Public(7610e984e7cf0f444c47369a490373d4389ec37c32a5139f61d3935137595e10 (5EjWXnJJ...)), 1)], 32) +Babe.CurrentSlot = Slot(279756577) +Babe.EpochConfig = Some(BabeEpochConfiguration { c: (1, 4), allowed_slots: AllowedSlots::PrimaryAndSecondaryVRFSlots }) +Babe.EpochIndex = 2123 +Babe.EpochStart = Some((1244704, 1245304)) +Babe.GenesisSlot = Slot(278482554) +Babe.Initialized = None +Babe.Lateness = None +Babe.NextAuthorities = Some(WeakBoundedVec([(Public(ce22766dd427088e6e6effd6a0ded298a54e0b4c3cfa6239fc91267a1b68144b (5Giyxa9A...)), 1), (Public(ece67903b907e5b522588329dfc8398dabd2facbe760f9bf68298633071bcf30 (5HRKd4qb...)), 1), (Public(945896331fe4d781747a04cad6d11d7dd1aa0622ffb7ae36d461153d6ae08928 (5FRDG2PE...)), 1), (Public(7610e984e7cf0f444c47369a490373d4389ec37c32a5139f61d3935137595e10 (5EjWXnJJ...)), 1)], 32)) +Babe.NextEpochConfig = None +Babe.NextRandomness = Some([87, 155, 136, 19, 14, 193, 19, 230, 47, 126, 250, 141, 164, 51, 235, 178, 185, 0, 76, 173, 107, 87, 248, 61, 19, 178, 26, 224, 107, 221, 168, 189]) +Babe.PendingEpochConfigChange = None +Babe.Randomness = [26, 125, 4, 88, 137, 32, 238, 23, 124, 71, 204, 207, 21, 13, 28, 206, 157, 88, 82, 53, 9, 246, 130, 136, 1, 61, 220, 71, 2, 123, 69, 181] +Babe.SegmentIndex = Some(0) +Babe.UnderConstruction = [ + 0 = BoundedVec([[248, 254, 246, 197, 54, 79, 105, 3, 215, 170, 67, 101, 138, 237, 87, 219, 40, 55, 102, 208, 113, 190, 88, 57, 196, 51, 224, 209, 142, 232, 141, 103], [222, 92, 83, 226, 225, 223, 135, 67, 221, 83, 102, 250, 117, 236, 170, 25, 186, 221, 50, 140, 14, 221, 95, 89, 39, 92, 94, 32, 230, 235, 94, 245], [66, 32, 84, 158, 26, 181, 46, 105, 12, 240, 249, 58, 23, 125, 23, 222, 232, 199, 156, 68, 193, 15, 28, 217, 72, 15, 150, 190, 128, 134, 142, 102], [93, 158, 31, 140, 86, 220, 68, 91, 46, 151, 114, 102, 41, 126, 86, 83, 195, 166, 138, 211, 33, 113, 145, 238, 186, 168, 131, 6, 229, 176, 122, 255], [128, 126, 15, 103, 153, 11, 221, 241, 137, 74, 94, 44, 14, 156, 77, 194, 133, 170, 28, 183, 207, 70, 191, 116, 163, 187, 203, 48, 131, 138, 239, 149], [50, 12, 180, 150, 151, 94, 189, 138, 116, 82, 186, 215, 164, 31, 118, 121, 200, 76, 115, 207, 64, 70, 113, 101, 82, 152, 148, 154, 93, 138, 236, 253], [49, 144, 61, 32, 49, 249, 245, 227, 151, 97, 190, 12, 118, 5, 117, 130, 150, 60, 127, 145, 156, 178, 207, 195, 138, 132, 19, 222, 223, 133, 201, 183], [78, 134, 106, 89, 184, 179, 153, 228, 251, 172, 170, 199, 69, 29, 94, 20, 157, 183, 62, 13, 242, 177, 65, 150, 144, 13, 198, 57, 47, 151, 245, 254], [215, 188, 244, 164, 89, 14, 19, 132, 214, 68, 16, 211, 233, 43, 206, 49, 15, 2, 52, 76, 239, 166, 120, 170, 227, 48, 28, 17, 12, 181, 60, 154], [88, 2, 6, 248, 1, 75, 218, 234, 24, 1, 156, 195, 225, 17, 155, 195, 83, 152, 117, 168, 240, 163, 143, 129, 146, 46, 87, 172, 27, 13, 152, 10], [149, 61, 120, 9, 142, 76, 31, 237, 32, 101, 143, 175, 8, 17, 245, 159, 203, 156, 110, 123, 34, 231, 68, 243, 140, 47, 102, 217, 98, 15, 136, 55], [146, 247, 56, 205, 195, 197, 90, 129, 245, 172, 96, 166, 88, 194, 195, 234, 118, 8, 101, 7, 212, 239, 65, 155, 48, 126, 68, 71, 253, 71, 54, 30], [161, 91, 3, 110, 124, 245, 191, 234, 37, 171, 61, 202, 33, 113, 15, 107, 21, 173, 22, 207, 4, 217, 6, 191, 23, 208, 113, 108, 138, 141, 99, 128], [195, 142, 44, 204, 50, 193, 196, 14, 16, 243, 80, 173, 62, 230, 105, 159, 255, 79, 148, 30, 100, 218, 226, 140, 68, 40, 138, 18, 97, 85, 81, 10], [184, 48, 13, 56, 116, 231, 139, 114, 65, 123, 219, 211, 239, 150, 81, 9, 219, 86, 72, 229, 252, 132, 201, 43, 43, 78, 135, 213, 241, 25, 234, 104], [247, 183, 155, 153, 61, 130, 215, 17, 35, 74, 164, 128, 89, 110, 195, 54, 100, 110, 15, 97, 98, 87, 131, 183, 85, 57, 173, 99, 164, 79, 239, 14], [242, 137, 249, 123, 89, 198, 59, 68, 53, 212, 202, 242, 123, 48, 163, 226, 162, 67, 25, 62, 71, 93, 119, 43, 47, 60, 221, 80, 154, 84, 182, 165], [132, 254, 72, 52, 235, 27, 156, 160, 85, 115, 28, 93, 87, 8, 157, 56, 85, 3, 136, 136, 127, 235, 23, 62, 13, 60, 192, 11, 37, 221, 195, 50], [169, 87, 52, 176, 253, 111, 4, 34, 19, 182, 51, 84, 45, 234, 205, 15, 10, 7, 71, 188, 56, 24, 20, 105, 207, 222, 149, 112, 1, 236, 87, 87], [39, 168, 40, 124, 21, 11, 169, 178, 26, 171, 38, 115, 112, 162, 215, 107, 108, 174, 18, 186, 172, 75, 57, 215, 214, 127, 108, 114, 240, 197, 199, 36], [4, 70, 162, 79, 111, 1, 254, 113, 12, 206, 1, 35, 44, 40, 142, 170, 185, 183, 102, 97, 112, 27, 29, 85, 73, 23, 155, 147, 148, 176, 167, 41], [14, 0, 192, 240, 98, 65, 145, 211, 149, 95, 150, 30, 237, 49, 99, 190, 63, 99, 177, 167, 166, 101, 145, 161, 233, 171, 34, 131, 234, 81, 227, 60], [233, 223, 228, 119, 147, 221, 143, 53, 129, 165, 22, 219, 142, 231, 227, 81, 99, 36, 127, 23, 254, 200, 216, 102, 126, 129, 196, 205, 118, 83, 67, 222], [41, 14, 160, 38, 81, 97, 149, 29, 163, 40, 157, 247, 115, 56, 152, 143, 176, 102, 150, 54, 59, 121, 181, 132, 13, 114, 115, 144, 153, 65, 6, 178], [176, 66, 241, 198, 89, 108, 209, 141, 78, 124, 21, 96, 96, 234, 26, 76, 166, 65, 2, 33, 70, 177, 95, 234, 83, 79, 81, 111, 198, 20, 214, 197], [60, 19, 187, 88, 145, 156, 6, 44, 3, 25, 25, 223, 152, 195, 202, 156, 93, 164, 42, 255, 168, 121, 38, 81, 162, 254, 166, 161, 85, 108, 52, 149], [24, 188, 29, 11, 197, 173, 55, 146, 98, 49, 106, 36, 200, 118, 128, 188, 103, 234, 50, 186, 104, 212, 76, 0, 81, 193, 11, 58, 19, 0, 64, 49], [206, 128, 147, 5, 235, 47, 166, 70, 195, 108, 12, 86, 148, 151, 141, 5, 180, 141, 91, 99, 186, 172, 100, 237, 200, 199, 39, 58, 152, 88, 246, 10], [253, 218, 240, 117, 93, 128, 174, 109, 186, 121, 154, 64, 57, 135, 56, 93, 153, 9, 176, 63, 166, 143, 158, 76, 203, 13, 16, 123, 69, 241, 87, 213], [155, 255, 235, 250, 59, 86, 156, 12, 47, 10, 59, 18, 65, 125, 56, 3, 202, 244, 30, 61, 56, 94, 143, 196, 76, 194, 214, 10, 35, 162, 253, 251], [133, 183, 130, 179, 175, 210, 13, 107, 158, 187, 196, 75, 155, 135, 33, 195, 61, 145, 203, 7, 149, 246, 91, 63, 42, 158, 249, 67, 115, 122, 29, 235], [82, 170, 106, 30, 37, 89, 172, 75, 65, 46, 64, 180, 58, 58, 110, 248, 91, 146, 173, 141, 219, 33, 184, 241, 210, 181, 186, 141, 62, 239, 80, 73], [210, 213, 230, 252, 201, 165, 81, 14, 146, 82, 93, 35, 241, 38, 245, 193, 108, 42, 128, 118, 194, 158, 31, 63, 195, 5, 119, 40, 38, 20, 245, 1], [253, 152, 251, 194, 7, 129, 232, 61, 112, 132, 28, 198, 122, 108, 222, 184, 203, 191, 144, 137, 59, 61, 111, 21, 234, 253, 201, 23, 212, 207, 235, 239], [194, 176, 70, 138, 224, 87, 61, 114, 171, 95, 77, 233, 143, 206, 78, 51, 118, 70, 30, 164, 245, 147, 44, 30, 32, 68, 249, 196, 88, 125, 159, 116], [26, 182, 70, 154, 248, 82, 114, 159, 31, 123, 59, 174, 171, 41, 143, 144, 3, 57, 198, 156, 206, 145, 49, 21, 243, 146, 109, 117, 26, 115, 200, 91], [202, 90, 147, 82, 212, 75, 252, 248, 193, 242, 190, 85, 169, 237, 153, 108, 237, 244, 147, 185, 102, 58, 17, 60, 150, 130, 154, 96, 154, 34, 218, 217], [20, 188, 158, 252, 243, 195, 35, 115, 186, 131, 223, 13, 17, 120, 19, 34, 186, 86, 244, 87, 175, 124, 50, 59, 130, 155, 93, 99, 89, 60, 183, 96], [203, 155, 186, 144, 111, 178, 3, 177, 182, 141, 125, 20, 158, 155, 30, 237, 224, 62, 69, 232, 145, 137, 17, 113, 104, 168, 143, 70, 197, 60, 132, 208], [246, 174, 4, 142, 180, 143, 48, 228, 218, 130, 203, 46, 19, 9, 218, 30, 134, 28, 94, 170, 236, 79, 194, 84, 137, 193, 223, 38, 7, 48, 85, 175], [112, 253, 149, 39, 226, 68, 152, 33, 198, 34, 189, 26, 26, 83, 222, 109, 141, 23, 103, 48, 164, 62, 27, 180, 133, 234, 96, 28, 233, 49, 254, 225], [243, 172, 23, 2, 233, 168, 232, 242, 57, 2, 158, 49, 208, 121, 251, 201, 247, 32, 25, 39, 8, 190, 18, 119, 168, 248, 110, 28, 233, 70, 185, 6], [246, 37, 146, 42, 154, 87, 38, 165, 25, 252, 165, 58, 55, 193, 10, 27, 196, 26, 246, 147, 77, 210, 76, 160, 65, 82, 62, 145, 141, 44, 206, 236], [79, 82, 117, 3, 198, 45, 17, 6, 134, 143, 69, 211, 165, 95, 123, 210, 22, 13, 245, 30, 249, 116, 180, 56, 29, 174, 170, 212, 247, 114, 27, 115], [191, 91, 71, 150, 128, 150, 96, 40, 75, 229, 69, 253, 139, 242, 12, 46, 104, 195, 108, 137, 208, 62, 116, 227, 108, 187, 123, 196, 89, 72, 69, 10], [72, 150, 9, 194, 254, 31, 42, 77, 237, 162, 48, 168, 175, 43, 234, 207, 39, 241, 44, 22, 102, 218, 211, 158, 87, 185, 110, 111, 255, 180, 192, 174], [102, 127, 84, 69, 236, 179, 162, 140, 30, 57, 55, 201, 172, 86, 151, 216, 105, 26, 156, 200, 165, 26, 10, 166, 142, 164, 198, 171, 242, 94, 153, 171], [192, 244, 24, 61, 193, 47, 134, 152, 240, 42, 137, 163, 252, 242, 183, 194, 184, 67, 93, 233, 57, 117, 140, 30, 225, 141, 48, 28, 29, 160, 200, 246], [22, 198, 97, 0, 102, 253, 23, 237, 3, 84, 163, 67, 126, 248, 84, 16, 44, 227, 206, 161, 43, 140, 37, 125, 49, 188, 18, 58, 53, 39, 189, 96], [238, 189, 164, 181, 205, 107, 243, 248, 221, 213, 78, 60, 76, 135, 48, 225, 35, 214, 100, 32, 81, 228, 156, 134, 247, 95, 117, 180, 19, 55, 226, 147], [79, 38, 31, 152, 114, 85, 5, 53, 153, 209, 116, 250, 57, 167, 149, 40, 205, 221, 218, 1, 98, 159, 128, 9, 254, 151, 92, 204, 108, 37, 37, 23], [73, 145, 179, 248, 12, 253, 164, 14, 183, 249, 161, 158, 19, 172, 220, 212, 51, 38, 139, 159, 82, 80, 13, 19, 244, 125, 106, 161, 14, 37, 254, 59], [247, 17, 211, 179, 155, 27, 51, 86, 220, 206, 166, 198, 226, 96, 28, 230, 184, 28, 60, 165, 153, 191, 146, 43, 26, 238, 91, 205, 33, 210, 174, 55], [92, 126, 214, 108, 128, 228, 133, 110, 84, 196, 241, 252, 213, 119, 58, 251, 42, 185, 74, 154, 247, 240, 135, 231, 79, 29, 241, 145, 65, 6, 166, 184], [4, 100, 130, 175, 210, 46, 165, 21, 183, 110, 231, 49, 54, 236, 211, 39, 67, 75, 9, 17, 151, 222, 7, 196, 17, 15, 186, 125, 31, 134, 231, 228], [14, 27, 54, 10, 33, 224, 74, 23, 187, 165, 74, 29, 147, 57, 110, 2, 214, 192, 145, 210, 13, 92, 179, 69, 179, 138, 103, 143, 148, 37, 218, 223], [146, 108, 44, 133, 250, 12, 224, 192, 148, 105, 121, 130, 251, 109, 38, 233, 242, 73, 138, 236, 95, 3, 17, 100, 129, 186, 108, 102, 67, 33, 196, 132], [26, 120, 153, 3, 45, 72, 100, 190, 240, 214, 205, 5, 132, 82, 115, 71, 171, 251, 252, 208, 15, 168, 186, 8, 217, 155, 160, 175, 111, 15, 192, 138], [148, 89, 239, 172, 4, 152, 122, 238, 38, 130, 141, 200, 241, 151, 1, 132, 103, 203, 174, 81, 141, 28, 183, 44, 220, 20, 252, 134, 122, 235, 161, 209], [119, 73, 27, 129, 251, 237, 223, 215, 220, 177, 112, 33, 38, 250, 240, 76, 85, 237, 138, 58, 184, 139, 71, 175, 66, 243, 116, 99, 69, 170, 86, 59], [37, 18, 94, 161, 78, 128, 39, 8, 29, 246, 75, 201, 30, 252, 176, 49, 118, 178, 37, 157, 112, 225, 28, 128, 138, 107, 140, 78, 141, 55, 43, 211], [244, 122, 116, 31, 98, 43, 10, 109, 150, 157, 185, 250, 74, 213, 78, 12, 138, 251, 114, 134, 170, 61, 130, 255, 225, 3, 5, 212, 134, 153, 120, 9], [54, 237, 40, 224, 52, 220, 251, 11, 86, 34, 85, 100, 232, 208, 129, 180, 205, 31, 105, 217, 63, 187, 124, 11, 112, 250, 230, 36, 217, 125, 60, 143], [21, 125, 227, 185, 240, 174, 134, 246, 79, 90, 231, 96, 100, 56, 47, 195, 174, 223, 99, 80, 221, 242, 109, 249, 156, 167, 215, 165, 165, 186, 55, 14], [86, 188, 164, 102, 207, 93, 53, 9, 170, 48, 58, 142, 79, 245, 203, 128, 243, 4, 171, 32, 26, 23, 174, 36, 210, 148, 77, 8, 12, 175, 119, 93], [37, 151, 7, 123, 79, 11, 205, 137, 123, 112, 150, 242, 76, 33, 61, 163, 230, 32, 60, 243, 102, 1, 74, 146, 157, 34, 223, 189, 139, 220, 70, 238], [157, 9, 245, 102, 116, 190, 72, 235, 64, 96, 61, 127, 67, 117, 211, 158, 246, 238, 73, 17, 139, 104, 208, 189, 164, 221, 156, 69, 201, 121, 248, 44], [229, 53, 192, 142, 37, 211, 222, 157, 150, 132, 197, 74, 227, 42, 16, 156, 170, 87, 47, 90, 196, 160, 137, 75, 48, 112, 172, 91, 89, 66, 166, 6]], 256) + 1 = BoundedVec([[126, 129, 11, 238, 94, 147, 247, 33, 140, 17, 238, 131, 180, 97, 57, 248, 156, 220, 168, 192, 32, 154, 162, 189, 22, 218, 16, 251, 140, 107, 60, 9], [173, 41, 197, 188, 150, 4, 254, 24, 110, 56, 206, 54, 192, 8, 29, 13, 10, 251, 86, 47, 20, 16, 6, 224, 245, 194, 231, 123, 152, 60, 177, 189], [132, 190, 226, 142, 201, 230, 182, 163, 37, 1, 245, 166, 33, 191, 155, 152, 139, 77, 189, 24, 52, 193, 6, 110, 83, 51, 29, 135, 220, 5, 44, 129], [49, 43, 33, 134, 191, 34, 139, 123, 21, 226, 132, 155, 220, 177, 192, 31, 152, 62, 201, 215, 31, 146, 118, 243, 109, 161, 1, 47, 4, 47, 39, 223], [61, 225, 3, 37, 206, 215, 241, 96, 144, 169, 189, 60, 53, 246, 208, 196, 49, 116, 107, 217, 43, 75, 242, 241, 134, 73, 211, 22, 155, 248, 45, 72], [187, 134, 74, 10, 66, 141, 59, 123, 69, 156, 22, 170, 160, 170, 200, 101, 30, 54, 237, 73, 221, 169, 14, 112, 174, 41, 245, 5, 135, 223, 116, 176], [1, 219, 36, 226, 73, 25, 9, 104, 104, 42, 64, 213, 100, 177, 91, 228, 246, 207, 156, 139, 217, 47, 66, 105, 61, 122, 85, 126, 248, 194, 249, 11], [97, 29, 141, 100, 42, 147, 175, 156, 230, 183, 53, 226, 115, 15, 190, 245, 160, 76, 127, 44, 250, 137, 52, 233, 243, 173, 180, 55, 58, 15, 211, 67], [3, 83, 152, 159, 182, 100, 92, 149, 146, 117, 245, 231, 243, 218, 208, 143, 11, 11, 124, 238, 235, 84, 148, 100, 165, 153, 57, 60, 208, 93, 155, 253], [178, 64, 47, 179, 120, 152, 239, 215, 219, 183, 45, 132, 217, 122, 112, 180, 149, 76, 213, 17, 215, 78, 195, 153, 230, 7, 141, 103, 12, 138, 108, 74], [56, 30, 254, 154, 22, 238, 45, 200, 151, 47, 204, 252, 198, 208, 192, 77, 65, 230, 211, 211, 2, 62, 104, 43, 165, 240, 196, 70, 153, 75, 229, 186], [2, 218, 104, 211, 251, 72, 207, 32, 247, 220, 168, 142, 44, 145, 24, 7, 142, 172, 22, 23, 253, 177, 43, 179, 247, 160, 89, 112, 61, 128, 8, 41], [104, 135, 38, 18, 141, 184, 108, 34, 11, 63, 79, 230, 168, 123, 169, 246, 215, 241, 29, 90, 35, 2, 73, 82, 128, 100, 50, 76, 0, 157, 94, 220], [171, 202, 126, 7, 17, 46, 154, 141, 51, 123, 199, 212, 88, 151, 31, 243, 164, 47, 74, 68, 141, 96, 182, 84, 94, 45, 195, 157, 207, 196, 106, 223], [18, 121, 209, 2, 178, 238, 110, 235, 56, 220, 103, 26, 140, 179, 133, 68, 190, 255, 205, 253, 92, 88, 82, 231, 224, 8, 71, 82, 63, 250, 53, 35], [242, 187, 206, 184, 183, 131, 250, 85, 75, 50, 104, 180, 109, 145, 222, 196, 116, 47, 223, 252, 160, 206, 64, 211, 27, 244, 167, 105, 189, 234, 124, 95], [36, 89, 74, 38, 66, 54, 80, 160, 165, 24, 79, 252, 160, 206, 178, 196, 181, 39, 199, 12, 31, 198, 104, 152, 108, 125, 173, 233, 17, 62, 98, 176], [53, 171, 197, 229, 134, 110, 157, 149, 71, 34, 250, 58, 33, 48, 127, 199, 238, 26, 84, 245, 193, 86, 242, 124, 55, 25, 61, 58, 212, 11, 103, 122], [192, 167, 192, 25, 39, 137, 215, 115, 152, 97, 103, 143, 132, 164, 252, 49, 195, 63, 119, 196, 200, 67, 83, 52, 15, 35, 128, 23, 165, 17, 66, 142], [57, 97, 10, 124, 107, 254, 50, 237, 162, 4, 231, 13, 132, 99, 15, 145, 44, 91, 25, 122, 22, 31, 14, 188, 44, 46, 30, 72, 122, 123, 50, 111], [68, 22, 246, 95, 32, 97, 53, 125, 124, 117, 244, 173, 33, 70, 202, 235, 173, 32, 10, 36, 111, 248, 80, 191, 198, 210, 102, 47, 133, 182, 29, 187], [118, 239, 175, 236, 117, 96, 109, 253, 192, 149, 208, 129, 93, 59, 57, 55, 111, 151, 175, 40, 121, 10, 72, 213, 117, 133, 211, 131, 138, 115, 70, 46], [147, 82, 251, 220, 227, 172, 70, 63, 136, 2, 89, 223, 134, 170, 177, 160, 143, 66, 225, 208, 214, 39, 172, 192, 140, 184, 173, 172, 111, 152, 195, 219], [185, 202, 147, 84, 21, 209, 22, 29, 241, 130, 6, 12, 184, 118, 1, 29, 135, 95, 242, 186, 6, 9, 147, 122, 50, 173, 230, 200, 134, 159, 231, 123], [88, 167, 251, 66, 95, 90, 247, 67, 92, 232, 117, 117, 4, 10, 96, 233, 158, 3, 146, 203, 207, 135, 88, 78, 127, 250, 247, 152, 65, 83, 136, 68], [210, 124, 76, 196, 240, 172, 45, 184, 108, 91, 77, 62, 168, 52, 54, 148, 92, 131, 176, 208, 15, 9, 153, 147, 240, 150, 250, 200, 20, 76, 195, 13], [200, 130, 237, 52, 254, 123, 108, 86, 254, 218, 27, 78, 115, 99, 121, 26, 242, 78, 33, 193, 235, 181, 228, 255, 195, 232, 233, 221, 11, 8, 140, 123], [210, 169, 216, 9, 160, 77, 35, 188, 122, 217, 81, 101, 113, 222, 77, 98, 56, 19, 128, 163, 166, 130, 20, 105, 233, 160, 166, 134, 213, 231, 31, 248], [50, 229, 158, 176, 64, 98, 241, 5, 167, 213, 166, 152, 165, 193, 217, 46, 239, 135, 204, 101, 242, 211, 234, 150, 242, 230, 146, 127, 168, 164, 24, 41], [236, 202, 126, 240, 125, 140, 79, 47, 190, 82, 235, 136, 224, 203, 124, 176, 41, 229, 130, 56, 157, 108, 19, 45, 251, 9, 23, 196, 113, 146, 229, 185], [6, 24, 221, 244, 131, 151, 186, 93, 96, 140, 228, 25, 79, 236, 170, 13, 96, 175, 87, 202, 113, 70, 255, 8, 74, 200, 17, 45, 254, 9, 39, 159], [155, 239, 33, 186, 235, 114, 120, 185, 209, 131, 55, 180, 0, 117, 122, 78, 132, 254, 109, 100, 74, 203, 101, 115, 253, 41, 245, 141, 114, 189, 72, 196], [100, 169, 120, 19, 129, 248, 198, 237, 58, 26, 18, 105, 86, 14, 78, 40, 218, 197, 30, 13, 66, 126, 164, 44, 151, 188, 16, 155, 99, 67, 37, 82], [62, 2, 66, 7, 3, 222, 53, 210, 62, 224, 11, 86, 160, 208, 50, 155, 208, 45, 209, 209, 178, 111, 35, 103, 208, 20, 241, 244, 223, 211, 59, 29], [248, 174, 220, 97, 49, 236, 107, 154, 161, 95, 241, 116, 20, 225, 240, 242, 13, 90, 208, 43, 237, 32, 147, 114, 238, 224, 36, 56, 52, 108, 209, 188], [191, 244, 170, 182, 15, 145, 6, 65, 183, 149, 198, 251, 129, 208, 197, 51, 176, 241, 41, 21, 205, 70, 225, 38, 180, 116, 137, 124, 97, 168, 79, 22], [24, 100, 119, 156, 174, 165, 143, 147, 52, 44, 141, 37, 34, 149, 198, 96, 39, 180, 1, 222, 75, 93, 63, 65, 246, 242, 179, 90, 175, 200, 114, 206], [159, 189, 210, 134, 100, 30, 80, 183, 222, 128, 217, 225, 14, 63, 141, 219, 108, 165, 8, 186, 139, 209, 103, 87, 89, 204, 31, 140, 229, 13, 152, 112], [216, 93, 219, 220, 105, 6, 107, 5, 229, 108, 151, 73, 244, 60, 172, 152, 187, 255, 117, 250, 122, 96, 177, 44, 36, 118, 251, 141, 92, 221, 199, 126], [126, 34, 100, 31, 217, 107, 159, 150, 122, 247, 170, 250, 89, 52, 120, 169, 133, 208, 243, 142, 243, 13, 19, 211, 190, 18, 141, 221, 113, 208, 193, 51], [103, 9, 102, 125, 246, 87, 154, 45, 40, 161, 127, 126, 47, 44, 149, 135, 35, 187, 142, 160, 217, 89, 236, 106, 130, 84, 25, 96, 50, 169, 242, 30], [220, 8, 159, 120, 48, 11, 62, 36, 110, 183, 51, 141, 205, 180, 100, 67, 63, 182, 133, 133, 42, 59, 195, 76, 2, 158, 170, 142, 48, 111, 70, 82], [221, 42, 55, 18, 76, 102, 59, 139, 73, 148, 155, 149, 103, 131, 23, 78, 196, 106, 139, 13, 167, 240, 206, 252, 135, 29, 26, 234, 19, 110, 72, 158], [118, 251, 177, 176, 22, 232, 49, 159, 195, 159, 23, 171, 17, 156, 87, 11, 160, 239, 139, 174, 230, 242, 147, 246, 189, 255, 151, 107, 38, 104, 218, 168], [22, 47, 112, 195, 205, 130, 119, 175, 44, 39, 183, 211, 107, 120, 192, 28, 251, 177, 61, 184, 232, 96, 255, 129, 206, 39, 226, 20, 158, 79, 241, 251], [202, 50, 118, 143, 132, 234, 223, 144, 11, 82, 19, 43, 243, 237, 178, 32, 241, 101, 179, 112, 16, 112, 212, 223, 109, 127, 19, 16, 238, 244, 151, 88]], 256) +] +Balances.Account = [ +] +Balances.Locks = [ +] +Balances.Reserves = [ +] +Balances.StorageVersion = Some(V2) +Balances.TotalIssuance = 6485316 +Cert.CertsByReceiver = [ + 1 = [(7228, 11330096), (368, 7551960), (457, 3952947), (996, 4592215), (1030, 4848292), (1098, 1450217), (1663, 4929718), (2294, 9281827), (2457, 8630182), (2712, 10294946), (2833, 4959824), (2999, 7937732), (3076, 3003297), (3467, 3602670), (3595, 2775971), (3814, 4678027), (4445, 3938380), (4647, 3251004), (4722, 1590550), (4776, 6963085), (5095, 5001914), (5131, 7729732), (5327, 597672), (5336, 1131688), (5666, 4689276), (5851, 7845039), (6420, 7583026), (6707, 4602635), (6797, 7811697), (6903, 9931549), (7139, 1362434), (2457, 11319117)] + 10 = [(2174, 9372334), (2998, 9307044), (4645, 9307044), (5682, 9307044), (5765, 9307044), (6422, 9307044)] + 100 = [(605, 8356476), (703, 8356476), (2151, 8356476), (3242, 8356476), (4716, 8356476), (5152, 8356476), (5720, 8356476), (5987, 8356476), (6727, 9420501)] + 1000 = [(1656, 4761578), (2033, 5365553), (2604, 4761578), (3017, 4761578), (4331, 5162570), (4400, 4761578), (5797, 4761578)] + 1001 = [(79, 8370742), (573, 4840803), (603, 8199458), (623, 8125360), (733, 6513034), (1190, 4840803), (2018, 7135269), (2256, 4840803), (3168, 4840803), (4138, 8196947), (4356, 4840803), (6732, 4840803), (6904, 4842050)] + 1002 = [(1893, 557389), (2914, 10249176), (6013, 557389)] + 1003 = [(556, 7366893), (929, 7419793), (2809, 7366893), (3643, 7366893), (5329, 7366893), (6148, 7366893), (7049, 7842285)] + 1004 = [(706, 9948533), (1262, 9948533), (2636, 9948533), (3924, 9967975), (3937, 9948533), (4354, 9948533), (5117, 9948533)] + 1005 = [(202, 8102623), (735, 6403752), (1494, 7455125), (1502, 8512696), (2119, 6059264), (2509, 4352683), (3500, 8399180), (3928, 5622040), (4540, 7064147), (4612, 4352683), (6067, 7483725), (6662, 4352683), (6866, 8693843), (7024, 4352683), (7093, 4352683)] + 1006 = [(364, 9280082), (1103, 9280082), (1299, 9280082), (1367, 9280082), (2971, 10313963), (4140, 9854610), (4366, 9280082), (4578, 9289945), (6959, 10088288)] + 1007 = [(2180, 7779782), (3107, 7779782), (3796, 7779782), (4112, 7779782), (4664, 7779782)] + 1008 = [(1462, 7738766), (3387, 7738766), (4265, 7738766), (4315, 7738766), (5282, 7738766)] + 1009 = [(296, 7338604), (2351, 7338604), (2810, 7338604), (3459, 7338604), (4803, 7338604)] + 101 = [(1987, 7882321), (2654, 7927894), (3191, 7882321), (3502, 7882321), (6969, 7882321)] + 1010 = [(3957, 6802309), (3998, 6776536), (4027, 6777504), (6056, 6803730), (6780, 6777504), (6922, 6777504)] + 1011 = [(199, 2800879), (603, 7541315), (775, 1127433), (1703, 8556100), (2943, 6216192), (3714, 8643087), (4133, 4682834), (6726, 9204502)] + 1012 = [(1279, 8350521), (1546, 8361456), (1627, 8350521), (2292, 8524165), (3717, 8350521), (4131, 8350521), (4225, 8608558), (4316, 8350521)] + 1013 = [(299, 8119210), (1164, 9501397), (1173, 8119210), (1602, 6513675), (2085, 5095299), (2228, 5398523), (2383, 2733597), (3074, 10012652), (3778, 1573936), (3938, 1909302), (3969, 9539475), (4400, 9268647), (4470, 2930087), (4955, 9767141), (5252, 1965904), (5768, 9419759), (6333, 9336361), (6774, 1063580), (7097, 5901922)] + 1014 = [(1490, 3280586), (2635, 3280586), (3956, 3280586), (6225, 3280586), (6736, 3280586)] + 1015 = [(1564, 2226749), (3745, 7132636), (3778, 2226749), (5913, 2226749), (7007, 2226749)] + 1016 = [(231, 9263091), (890, 9263091), (2240, 9263091), (5755, 9263091)] + 1017 = [(1629, 8794693), (1714, 8794693), (2505, 8794693), (2756, 9688689), (3232, 8794693), (5413, 8794693), (5629, 8794693)] + 1018 = [(1737, 8406958), (1952, 8434121), (2749, 8406958), (3217, 8406958), (3768, 8406958), (4178, 8406958), (4395, 8422237), (5815, 8632582), (6471, 8420400)] + 1019 = [(491, 5129318), (1904, 5902488), (2701, 6152508), (3502, 5512613), (4272, 5907967), (5608, 5480872)] + 102 = [(108, 9842958), (236, 10279305), (495, 9842958), (1780, 9844197), (2007, 9842958), (3446, 9842958), (4162, 9846537), (5079, 9842958)] + 1020 = [(1208, 4634040), (2061, 4132550), (2207, 4132550), (2397, 4132550), (2723, 4132550), (4961, 4686370)] + 1021 = [(686, 8921392), (920, 9967664), (1089, 8404328), (1211, 6314912), (4781, 6314912), (4995, 6314912), (5500, 8946589), (5502, 6314912), (6738, 8913823), (6928, 6314912), (7123, 6361689)] + 1022 = [(199, 7508545), (1310, 7508545), (1990, 8358781), (2633, 7508545), (3148, 9132061), (3963, 9380733), (4133, 9801358), (4356, 8119315), (5202, 8609225), (6400, 7508545), (6437, 8415215), (6455, 7508545), (6904, 7512872)] + 1023 = [(126, 9195442), (875, 9195442), (1404, 9195442), (4064, 9195442), (5325, 9235604), (5423, 9223740), (7038, 9195442)] + 1024 = [(1992, 8543992), (2238, 9660231), (3149, 9123170), (3493, 8174567), (4110, 9007261), (4209, 8616147), (4453, 8228093), (4556, 9238816), (4905, 9382996), (4914, 7971747), (5074, 7457001), (5146, 9991428), (5201, 7457001), (5265, 7457001), (5512, 9811264), (5517, 7457001), (6991, 7457001), (7184, 9861750)] + 1025 = [(1133, 3669288), (1173, 3970403), (2235, 5694940), (3083, 3092659), (3395, 3493892), (3763, 3691444), (3807, 3707282), (4096, 3493810), (4148, 1868556), (6395, 3493850), (6905, 5093422), (7035, 7800057)] + 1026 = [(346, 5955601), (3318, 5955601), (5120, 5955601), (5422, 5955601), (6656, 5955601)] + 1027 = [(875, 10050405), (1598, 10101272), (2516, 10050405), (4064, 10050405), (5423, 10050405), (5883, 10050405), (6136, 10088025), (6765, 10069066)] + 1028 = [(532, 7184320), (617, 6804301), (707, 5125949), (713, 6975260), (1095, 6386727), (1302, 9352665), (2335, 9843540), (2509, 4111027), (2770, 4111027), (2969, 7672812), (3437, 10231628), (4302, 4111027), (4630, 9178893), (5041, 4142080), (5649, 9990572), (5713, 7857257), (6105, 6458868), (6386, 4111027), (7024, 4568943), (7182, 6329496)] + 1029 = [(1096, 8462703), (2063, 10089978), (3274, 8462431), (4725, 8462431), (4790, 10101641), (5368, 8462431), (5741, 8462431), (6762, 8516833)] + 103 = [(5, 9715974), (2799, 9715974), (4822, 9715974), (5839, 9715974), (5980, 9715974), (6704, 9715974), (6705, 9715974)] + 1030 = [(1, 9750256), (114, 4916766), (350, 1984476), (503, 2380991), (530, 2171311), (604, 1603327), (635, 3517151), (668, 4789334), (996, 4375788), (1058, 6017497), (1141, 1998886), (1684, 4372108), (1954, 897335), (2212, 5024865), (2311, 6017132), (2663, 5253982), (2712, 1739882), (2718, 5497130), (3096, 4483230), (3108, 8445457), (3519, 1737134), (3970, 1290493), (4175, 8701712), (4969, 1522818), (5089, 9239521), (5124, 1402545), (5155, 4396677), (5173, 4627420), (5339, 2007004), (5594, 2684172), (5916, 7581349), (6021, 3518653), (6032, 5064276), (6094, 7188795), (6135, 9081040), (6216, 1459257), (6262, 4416785), (6302, 8183770), (6371, 4454712)] + 1031 = [(814, 8069368), (838, 8041349), (1113, 8041349), (1164, 8041349), (1642, 8041349), (3301, 9558897), (3566, 10063834), (3926, 9498546), (4181, 8041349), (4416, 9325097), (4577, 10329386)] + 1032 = [(258, 9427681), (645, 9396973), (1157, 9396973), (1546, 9396973), (1555, 10184116), (4038, 9396973), (4262, 9396973), (5140, 9396973), (6840, 9738881)] + 1033 = [(214, 7155601), (476, 7155601), (571, 7155601), (1171, 7155601), (3978, 7155601), (5320, 7155601)] + 1034 = [(42, 7679831), (174, 10221416), (2709, 7679831), (3659, 7679831), (4183, 7679831), (6734, 9472344), (7194, 7679831)] + 1035 = [(1372, 9963713), (1466, 9963713), (2629, 9963713), (4355, 9963713), (6071, 9963713)] + 1036 = [(21, 7438689), (1226, 7438689), (1945, 7438689), (2317, 7438689), (3780, 7438689), (5771, 9212086), (6006, 7438689)] + 1037 = [(560, 9760181), (1357, 8436548), (1409, 8643859), (2427, 4188749), (2560, 8449226), (2965, 9209698), (3098, 7923267), (3363, 10171004), (3476, 9499694), (3785, 8198372), (3826, 7909733), (4124, 4188749), (4191, 4188749), (4407, 4818035), (4694, 9582512), (4714, 7450315), (5256, 6860404), (5376, 4188749), (5645, 9370782), (6450, 9501683), (6705, 6751737), (6767, 6746672), (6894, 4226908), (7000, 4188749), (7132, 4299129), (7182, 8434447)] + 1038 = [(3384, 7427295), (3779, 7427295), (4055, 7427295), (6490, 7427295), (6980, 7427295)] + 1039 = [(179, 8865844), (253, 8865844), (564, 9482559), (670, 8865844), (2469, 9266332), (3077, 8865844), (4095, 8865844), (5028, 8908015), (6676, 8903965)] + 104 = [(487, 9983876), (1787, 9983876), (2817, 9983876), (3497, 9983876), (6587, 10232267), (7202, 9983876)] + 1040 = [(42, 8291366), (773, 9110854), (887, 10246215), (1204, 9219100), (2383, 8291366), (2566, 9483623), (3377, 8291366), (3501, 9343313), (4636, 8291366), (5587, 9350019), (5889, 8291366), (6003, 9948422)] + 1041 = [(1737, 6461573), (2731, 6461573), (3217, 6461573), (4178, 6461573), (4395, 6461573)] + 1042 = [(350, 7212847), (1818, 7212847), (4259, 8673132), (4703, 7212847), (5867, 7212847)] + 1043 = [(179, 6272099), (213, 9627773), (504, 10306659), (599, 8055876), (1162, 9744560), (2181, 9956751), (3132, 6272099), (3220, 9326184), (3415, 6272099), (3818, 9523957), (4801, 9925747), (5355, 6272099), (6385, 6272099)] + 1044 = [(26, 5179998), (275, 4095126), (299, 2959992), (347, 4266119), (839, 5238149), (902, 6359527), (958, 5395713), (1265, 5786407), (1311, 6959246), (1518, 2383249), (1530, 5972273), (1759, 7427606), (1974, 4275183), (2686, 4342521), (2768, 7354570), (2773, 9368384), (2795, 2383249), (2809, 2559955), (2859, 8691737), (3185, 7512315), (3331, 4770935), (3453, 8418070), (3844, 6546992), (4353, 4353976), (4760, 2383249), (5388, 4273172), (5598, 4353917), (5634, 6228622), (5913, 2383249), (6169, 8348733), (6208, 8359532), (6300, 5597544), (6413, 6012664), (6590, 8332301), (6604, 6642216), (6605, 2383249), (6636, 9671980), (6819, 7120707), (7161, 4573770)] + 1045 = [(373, 5065243), (2664, 6128605), (3901, 5065243), (6041, 5065243)] + 1046 = [(1394, 5664391), (2062, 5664391), (3647, 5664391), (3767, 10278211), (4919, 5664391), (5370, 5664391)] + 1047 = [(910, 10004875), (4054, 10004875), (4733, 10004875), (5466, 10004875), (6703, 10004875)] + 1048 = [(665, 6905994), (1152, 6821769), (1153, 6821769), (1757, 6821769), (2192, 6906033), (2892, 6821769), (3473, 6821769), (3500, 8615403), (3666, 6821769), (6343, 9134593), (6650, 9003171)] + 1049 = [(366, 1551726), (1187, 1551726), (2195, 1551726), (3478, 8444811), (6576, 1551726), (6909, 1551726)] + 105 = [(993, 1117726), (1263, 1116358), (1342, 1230574), (3199, 1116358), (4048, 5769670), (5240, 2672769), (6044, 5456210), (6580, 4556598)] + 1050 = [(635, 7681941), (1058, 7860296), (1724, 4746614), (1971, 7729732), (2450, 4746614), (2668, 8184177), (3490, 10330331), (4394, 4746614), (4607, 4746614), (6338, 4746614)] + 1051 = [(715, 7768051), (2869, 7768051), (3027, 7768051), (6780, 7768051), (6937, 7768051)] + 1052 = [(807, 6920754), (893, 6960310), (3271, 6920754), (4147, 6920754), (4334, 7295403), (5220, 8082121), (6380, 6920754), (6818, 6920754)] + 1053 = [(577, 5767125), (2362, 3057186), (2763, 5767816), (3400, 7818057), (3906, 7089730), (4300, 5913171), (4942, 6690288), (6430, 2422977), (6605, 9616588), (6674, 6547791), (6729, 6548178)] + 1054 = [(482, 7544132), (1102, 7544132), (2473, 7544132), (6029, 7544132), (7061, 7544132)] + 1055 = [(657, 3173481), (661, 8799511), (1361, 3173481), (1749, 5292389), (2197, 9213237), (2682, 8233068), (3377, 4837539), (4081, 3173481), (4387, 3475475), (5155, 3173481), (5850, 3259859), (6894, 3461910), (7000, 3173481), (7022, 3201377)] + 1056 = [(621, 8953801), (1521, 8953801), (2051, 8953801), (2190, 8953801), (4491, 8953801)] + 1057 = [(4470, 3711546), (4890, 3682129), (5188, 3682129), (5427, 3682129), (6156, 3682129)] + 1058 = [(530, 2387516), (2718, 4799583), (4175, 8773939), (4380, 8571846), (5431, 8630182), (6262, 8261872)] + 1059 = [(252, 3770261), (1096, 1233375), (1166, 1233375), (3537, 1233375), (4722, 1369497), (6296, 2976750), (6506, 1233375)] + 106 = [(1043, 9472758), (1075, 9472758), (3220, 9472758), (3821, 9472758), (6464, 9472758)] + 1060 = [(137, 4244779), (1551, 4139699), (2212, 4952807), (2849, 4122788), (3322, 4197051), (4315, 4130015), (4546, 5309278), (5155, 4155493), (6010, 4185113)] + 1061 = [(1542, 10157817), (2898, 10157817), (3155, 10157817), (4844, 10157817), (5174, 10157817)] + 1062 = [(458, 5105651), (721, 2823737), (1433, 2805175), (1451, 5779602), (1580, 2805175), (2267, 3502474), (2698, 2805175), (3825, 2805175), (5056, 2805175), (5280, 2958226), (5846, 3562000)] + 1063 = [(160, 9088441), (1478, 9088441), (1687, 9088441), (2677, 9088441), (3264, 9391233), (3544, 9088441), (4444, 9088441), (4947, 9349663)] + 1064 = [(517, 7556026), (1797, 7556026), (4018, 7484209), (4722, 7628129), (4941, 9603902), (5564, 546560), (5972, 7556026)] + 1065 = [(1591, 9036508), (2954, 9036508), (3360, 9036508), (5876, 9036508), (6236, 9036508)] + 1066 = [(9, 2153548), (1120, 704996), (1638, 5850115), (1722, 6273672), (2175, 704996), (2201, 704996), (4297, 1865343), (4460, 746427), (5774, 7449100), (6812, 704996), (7042, 4357095)] + 1067 = [(1519, 9861943), (1552, 9861943), (2051, 9861943), (3808, 9861943), (3816, 9861943)] + 1068 = [(304, 8967126), (506, 9697219), (806, 4137218), (1455, 7643590), (1764, 4137218), (2548, 4137218), (3758, 10343402), (3792, 8837553), (3796, 4742864), (4403, 8866984), (4566, 4137218), (5430, 6618097), (6477, 4137218)] + 1069 = [(532, 7328510), (707, 4477037), (1028, 4477037), (1037, 4477037), (1095, 8022022), (3130, 10163879), (4124, 4477037), (4302, 4546093), (4732, 7111829), (5376, 4477037), (5649, 10191933)] + 107 = [(13, 10321575), (109, 9357882), (2113, 9357882), (2542, 9387435), (2939, 10178196), (3305, 9357882), (4401, 9357882), (4616, 9357882), (5654, 9357882), (6801, 9357882)] + 1070 = [(547, 9487003), (1336, 9487003), (1534, 9487003), (1551, 9487003), (1697, 9487003)] + 1071 = [(2965, 9876474), (3063, 9876474), (3472, 10293953), (5256, 9876474), (5531, 9876474), (6705, 9876474)] + 1072 = [(2808, 9299287), (2965, 9353851), (3063, 9299287), (4245, 9299287), (5256, 9321662), (5531, 9299287), (6705, 9299287), (6749, 9301797)] + 1073 = [(235, 9932465), (551, 7857023), (881, 7857023), (4283, 7857023), (4817, 7857023), (5671, 7857023)] + 1074 = [(1819, 3378280), (4400, 3378280), (5962, 3378280), (6931, 3378280)] + 1075 = [(179, 7038005), (302, 7038005), (2075, 7179765), (2241, 7038005), (2419, 8225158), (3084, 8413281), (4665, 7038005), (5278, 9437802), (5361, 10114907), (5637, 8080999), (6848, 7038005)] + 1076 = [(380, 3133334), (1077, 4325558), (2196, 4413291), (2208, 3133334), (3190, 3133334), (3344, 4416888), (4710, 3133334), (4734, 3821104), (5580, 4541896), (6113, 4428304), (6827, 3133334), (6963, 4644758)] + 1077 = [(380, 3205399), (1076, 4325558), (2196, 4557440), (2208, 3205399), (3190, 3205399), (3344, 4561044), (4710, 3205399), (4734, 3965239), (5580, 4469709), (6113, 4500395), (6827, 3205399), (6963, 4716830)] + 1078 = [(271, 8806024), (1405, 8798037), (2694, 7442181), (2750, 7442181), (3814, 9030039), (4045, 9181184), (5405, 7442181), (5670, 7442181), (5823, 7442181)] + 1079 = [(2679, 9616392), (3060, 9616392), (3592, 9616392), (5433, 9616392), (6201, 9616392), (6391, 9651454)] + 108 = [(47, 7436613), (102, 10227695), (564, 7963942), (746, 7580877), (1295, 8292425), (1303, 8417465), (1623, 7292549), (2185, 8248478), (2561, 8091495), (2791, 7766991), (3447, 9841557), (3664, 10309614), (3898, 8031215), (4812, 8865844), (4988, 7869337), (5079, 8650333), (5878, 7292549), (5909, 10279132), (6055, 7414268), (6153, 7292549), (6160, 7292549), (6572, 7292549), (7038, 7294973)] + 1080 = [(261, 6987860), (668, 5264435), (975, 6084370), (1405, 5841661), (1663, 5423991), (2041, 5264435), (3303, 5264435), (4717, 6772141), (5729, 5264435), (7180, 10106654)] + 1081 = [(1848, 6129293), (4046, 6129293), (4107, 6129293), (4144, 6129293), (5115, 9601705), (6386, 6129293), (6816, 6143480)] + 1082 = [(241, 10250194), (501, 10249766), (629, 10249766), (1312, 10249766), (1951, 10249766), (3819, 10249766)] + 1083 = [(1546, 10104822), (2093, 10142791), (4262, 10104822), (4517, 10184633), (4665, 10104822), (5308, 10104822), (5782, 10104822), (6770, 10104822)] + 1084 = [(1120, 7511415), (1802, 7511415), (2264, 7511415), (2791, 7550734), (3208, 9976931), (4458, 7550734), (4633, 7550734), (4651, 7558264), (4746, 7511415), (4825, 7550734), (6092, 7623186), (6297, 7511415), (6812, 7538297)] + 1085 = [(34, 9672882), (1358, 7951971), (1817, 7157053), (2482, 7887387), (3178, 7157053), (3932, 9681905), (4345, 8258130), (5724, 9284515), (6440, 7157053), (6894, 7157053), (7000, 7157053)] + 1086 = [(499, 6404604), (3897, 6404604), (4233, 6404604), (5219, 6404604), (5553, 6404604)] + 1087 = [(745, 9588389), (867, 9588389), (1955, 9588389), (1989, 9588389), (7076, 9648959), (7153, 9654642)] + ... +7234 more +] +Cert.StorageCertsRemovableOn = [ + 10000294 = [(523, 2011), (1794, 5001)] + 10000350 = [(457, 2505), (5167, 4628)] + 10000640 = [(4913, 2329), (1630, 6140), (2343, 6140), (3126, 6140), (3796, 6140), (6876, 6140)] + 10000761 = [(4488, 6931)] + 10000993 = [(929, 2809)] + 10001107 = [(1068, 3758)] + 10001160 = [(792, 5103), (3707, 5103), (3711, 5103), (6601, 5103), (6617, 5103)] + 10001210 = [(4792, 2275)] + 10001604 = [(6378, 3620)] + 10002152 = [(4487, 3784)] + 10002238 = [(4757, 3591), (7131, 5003)] + 10002407 = [(300, 295), (2280, 295), (3315, 295), (3772, 295), (5767, 295), (707, 1371), (113, 4471), (772, 4471), (1611, 4471), (3425, 4471), (3451, 4471), (3990, 5777), (4390, 5777), (4407, 5777), (5874, 5777), (7038, 5777), (2509, 6451)] + 10002611 = [(84, 72), (6467, 919), (7174, 1464), (2973, 5426)] + 10002691 = [(1127, 6378)] + 10002874 = [(4660, 6402)] + 10002972 = [(1523, 6880)] + 10003075 = [(102, 4162)] + 10003257 = [(1231, 2998)] + 10003394 = [(5074, 1266), (6140, 3796)] + 10003467 = [(4493, 5433)] + 10003540 = [(3664, 3218)] + 10003614 = [(4116, 6070), (3553, 7053)] + 10003685 = [(6903, 2382)] + 10004114 = [(4395, 2028)] + 10004272 = [(3218, 1295), (5014, 5885)] + 10004421 = [(3257, 4139)] + 10004644 = [(2494, 4549)] + 10004717 = [(480, 2187), (1670, 2187), (1694, 2187), (5160, 2187), (7059, 2187)] + 10004796 = [(701, 1858), (4067, 6467)] + 10004875 = [(910, 1047), (4054, 1047), (4733, 1047), (5466, 1047), (6703, 1047), (347, 2522), (556, 2522), (1003, 2522), (2740, 2522), (6916, 2522), (4983, 5619)] + 10004951 = [(598, 1289), (4321, 1289), (6574, 1289), (1854, 2986), (4221, 5583), (440, 7163), (2483, 7163), (5229, 7163), (5278, 7163), (6595, 7163)] + 10005113 = [(846, 2457), (2723, 4341)] + 10005190 = [(99, 4285)] + 10005419 = [(1685, 3847), (4781, 4012)] + 10005569 = [(613, 2606), (3429, 2606), (4179, 2606), (4308, 2606), (4699, 2606), (1109, 3133), (3129, 3133), (5686, 3133), (5745, 3133), (5781, 3133)] + 10005793 = [(550, 6319), (619, 6319), (3022, 6319), (4978, 6319), (5860, 6319)] + 10006013 = [(756, 566)] + 10006142 = [(1508, 4341)] + 10006338 = [(3901, 3510)] + 10006466 = [(4682, 5652)] + 10006521 = [(3562, 295), (4723, 1919), (6308, 2614)] + 10006618 = [(3692, 1680)] + 10006694 = [(7053, 1474)] + 10006730 = [(3110, 3183)] + 10006835 = [(7143, 2113)] + 10007262 = [(1043, 2344), (2462, 2344), (3818, 2344), (5243, 2344), (5637, 2344)] + 10008975 = [(3626, 1536)] + 10010935 = [(3802, 2330), (2584, 6030)] + 10011378 = [(635, 4607)] + 10011643 = [(589, 3725)] + 10012019 = [(5696, 381), (2791, 4283)] + 10012652 = [(3074, 1013)] + 10012700 = [(4965, 1157)] + 10012841 = [(1240, 4345)] + 10012892 = [(6156, 567), (3232, 1344), (49, 4092)] + 10013363 = [(7072, 4085)] + 10013474 = [(2592, 5651)] + 10013750 = [(476, 4267)] + 10014142 = [(6169, 3844), (1023, 5883), (1404, 5883), (2107, 5883), (4158, 5883), (5596, 5883), (1195, 7101)] + 10014254 = [(5501, 1314)] + 10014327 = [(5513, 4029), (6302, 4938)] + 10014398 = [(744, 5161)] + 10014469 = [(3634, 5290)] + 10014608 = [(4142, 2989), (5140, 3281)] + 10014673 = [(7171, 3529), (3294, 4341), (5823, 5468)] + 10015045 = [(207, 355), (6102, 1698), (1184, 6520), (6228, 6780)] + 10015104 = [(4647, 3418)] + 10015161 = [(2958, 3396)] + 10015383 = [(6163, 1781), (5793, 4231)] + 10015488 = [(5464, 6206)] + 10015677 = [(2983, 633)] + 10015707 = [(1770, 350)] + 10015765 = [(1034, 174), (2337, 174), (2802, 174), (4695, 174), (6734, 174), (3149, 5512)] + 10015793 = [(488, 313), (2422, 1294), (2490, 3305)] + 10015850 = [(2719, 2330)] + 10015938 = [(2521, 5032), (6136, 5883)] + 10015996 = [(429, 308), (4651, 308), (6014, 308), (6587, 308), (6812, 308), (251, 2521)] + 10016054 = [(5032, 251), (4597, 3767)] + 10016087 = [(3529, 3501)] + 10016386 = [(4100, 5442)] + 10016457 = [(1515, 4169)] + 10016535 = [(2092, 1697)] + 10016577 = [(3898, 6696)] + 10016663 = [(3230, 3778)] + 10016801 = [(6980, 3802)] + 10016850 = [(2329, 267), (2997, 267), (4832, 267), (5062, 267), (5982, 267)] + 10016949 = [(2949, 2418)] + 10016997 = [(21, 3454)] + 10017092 = [(5067, 4494)] + 10017142 = [(6854, 1757)] + 10017244 = [(2632, 3746), (3969, 4972)] + 10017296 = [(1011, 2257), (2080, 2257), (2917, 2257), (2943, 2257), (3714, 2257)] + 10017349 = [(5459, 2073)] + 10017403 = [(3876, 2344)] + 10017456 = [(1885, 6110)] + 10017514 = [(5681, 1817), (3452, 4783)] + 10017624 = [(3946, 6676)] + 10017877 = [(3374, 1266)] + 10017974 = [(5290, 3634)] + ... +29925 more +] +Cert.StorageIdtyCertMeta = [ + 1 = IdtyCertMeta { issued_count: 29, next_issuable_on: 0, received_count: 32 } + 10 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + 100 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 9 } + 1000 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 7 } + 1001 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 13 } + 1002 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 3 } + 1003 = IdtyCertMeta { issued_count: 11, next_issuable_on: 0, received_count: 7 } + 1004 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 7 } + 1005 = IdtyCertMeta { issued_count: 14, next_issuable_on: 0, received_count: 15 } + 1006 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 9 } + 1007 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1008 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1009 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 5 } + 101 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1010 = IdtyCertMeta { issued_count: 8, next_issuable_on: 0, received_count: 6 } + 1011 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 8 } + 1012 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 8 } + 1013 = IdtyCertMeta { issued_count: 26, next_issuable_on: 0, received_count: 19 } + 1014 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1015 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1016 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 4 } + 1017 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 7 } + 1018 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 9 } + 1019 = IdtyCertMeta { issued_count: 1, next_issuable_on: 0, received_count: 6 } + 102 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 8 } + 1020 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 6 } + 1021 = IdtyCertMeta { issued_count: 8, next_issuable_on: 0, received_count: 11 } + 1022 = IdtyCertMeta { issued_count: 14, next_issuable_on: 0, received_count: 13 } + 1023 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 7 } + 1024 = IdtyCertMeta { issued_count: 21, next_issuable_on: 0, received_count: 18 } + 1025 = IdtyCertMeta { issued_count: 15, next_issuable_on: 0, received_count: 12 } + 1026 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 5 } + 1027 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 8 } + 1028 = IdtyCertMeta { issued_count: 23, next_issuable_on: 0, received_count: 20 } + 1029 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 8 } + 103 = IdtyCertMeta { issued_count: 1, next_issuable_on: 0, received_count: 7 } + 1030 = IdtyCertMeta { issued_count: 40, next_issuable_on: 0, received_count: 39 } + 1031 = IdtyCertMeta { issued_count: 15, next_issuable_on: 0, received_count: 11 } + 1032 = IdtyCertMeta { issued_count: 9, next_issuable_on: 0, received_count: 9 } + 1033 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + 1034 = IdtyCertMeta { issued_count: 5, next_issuable_on: 0, received_count: 7 } + 1035 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1036 = IdtyCertMeta { issued_count: 5, next_issuable_on: 0, received_count: 7 } + 1037 = IdtyCertMeta { issued_count: 30, next_issuable_on: 0, received_count: 26 } + 1038 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 5 } + 1039 = IdtyCertMeta { issued_count: 5, next_issuable_on: 0, received_count: 9 } + 104 = IdtyCertMeta { issued_count: 4, next_issuable_on: 7550, received_count: 6 } + 1040 = IdtyCertMeta { issued_count: 10, next_issuable_on: 0, received_count: 12 } + 1041 = IdtyCertMeta { issued_count: 12, next_issuable_on: 0, received_count: 5 } + 1042 = IdtyCertMeta { issued_count: 9, next_issuable_on: 0, received_count: 5 } + 1043 = IdtyCertMeta { issued_count: 26, next_issuable_on: 0, received_count: 13 } + 1044 = IdtyCertMeta { issued_count: 56, next_issuable_on: 0, received_count: 39 } + 1045 = IdtyCertMeta { issued_count: 10, next_issuable_on: 0, received_count: 4 } + 1046 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 6 } + 1047 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1048 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 11 } + 1049 = IdtyCertMeta { issued_count: 1, next_issuable_on: 0, received_count: 6 } + 105 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 8 } + 1050 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 10 } + 1051 = IdtyCertMeta { issued_count: 1, next_issuable_on: 0, received_count: 5 } + 1052 = IdtyCertMeta { issued_count: 11, next_issuable_on: 0, received_count: 8 } + 1053 = IdtyCertMeta { issued_count: 15, next_issuable_on: 0, received_count: 11 } + 1054 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1055 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 14 } + 1056 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 5 } + 1057 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 5 } + 1058 = IdtyCertMeta { issued_count: 7, next_issuable_on: 0, received_count: 6 } + 1059 = IdtyCertMeta { issued_count: 9, next_issuable_on: 0, received_count: 7 } + 106 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1060 = IdtyCertMeta { issued_count: 11, next_issuable_on: 0, received_count: 9 } + 1061 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 5 } + 1062 = IdtyCertMeta { issued_count: 12, next_issuable_on: 0, received_count: 11 } + 1063 = IdtyCertMeta { issued_count: 10, next_issuable_on: 0, received_count: 8 } + 1064 = IdtyCertMeta { issued_count: 9, next_issuable_on: 0, received_count: 7 } + 1065 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 5 } + 1066 = IdtyCertMeta { issued_count: 12, next_issuable_on: 0, received_count: 11 } + 1067 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1068 = IdtyCertMeta { issued_count: 23, next_issuable_on: 0, received_count: 13 } + 1069 = IdtyCertMeta { issued_count: 14, next_issuable_on: 0, received_count: 11 } + 107 = IdtyCertMeta { issued_count: 12, next_issuable_on: 0, received_count: 10 } + 1070 = IdtyCertMeta { issued_count: 5, next_issuable_on: 0, received_count: 5 } + 1071 = IdtyCertMeta { issued_count: 6, next_issuable_on: 0, received_count: 6 } + 1072 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 8 } + 1073 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 6 } + 1074 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 4 } + 1075 = IdtyCertMeta { issued_count: 17, next_issuable_on: 0, received_count: 11 } + 1076 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 12 } + 1077 = IdtyCertMeta { issued_count: 13, next_issuable_on: 0, received_count: 12 } + 1078 = IdtyCertMeta { issued_count: 3, next_issuable_on: 0, received_count: 9 } + 1079 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + 108 = IdtyCertMeta { issued_count: 28, next_issuable_on: 0, received_count: 23 } + 1080 = IdtyCertMeta { issued_count: 11, next_issuable_on: 0, received_count: 10 } + 1081 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 7 } + 1082 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + 1083 = IdtyCertMeta { issued_count: 2, next_issuable_on: 0, received_count: 8 } + 1084 = IdtyCertMeta { issued_count: 4, next_issuable_on: 0, received_count: 13 } + 1085 = IdtyCertMeta { issued_count: 18, next_issuable_on: 0, received_count: 11 } + 1086 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 5 } + 1087 = IdtyCertMeta { issued_count: 0, next_issuable_on: 0, received_count: 6 } + ... +7234 more +] +Grandpa.CurrentSetId = Some(19) +Grandpa.NextForced = Some(982296) +Grandpa.PendingChange = None +Grandpa.SetIdSession = [ + 0 = 12 + 1 = 37 + 10 = 1557 + 11 = 1561 + 12 = 1582 + 13 = 1603 + 14 = 1614 + 15 = 1622 + 16 = 1670 + 17 = 2035 + 18 = 2049 + 19 = 2123 + 2 = 66 + 3 = 429 + 4 = 502 + 5 = 1137 + 6 = 1511 + 7 = 1536 + 8 = 1553 + 9 = 1554 +] +Grandpa.Stalled = None +Grandpa.State = None +Identity.CounterForIdentities = Some(7131) +Identity.Identities = [ + 1 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...), removable_on: 0, status: IdtyStatus::Validated } + 10 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: db28745d1624979b12b316f29722431c7ab87a5f9117cafad8ceebed1bc4665e (5H24Mv5C...), removable_on: 0, status: IdtyStatus::Validated } + 100 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8917f3302395bde11522b589df9c5ff50d24abe84084f1b45809c74a06fdc24c (5FATXorj...), removable_on: 0, status: IdtyStatus::Validated } + 1000 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e08e0ec3bbc6fbf19cf26d6731b6de51c92ad6f383be1b73cd3b940985c264ed (5H98nPCc...), removable_on: 0, status: IdtyStatus::Validated } + 1001 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 50abb69ee7bbdb5b2289e6daab7b4c2856526517871736fb96a614d0b803145d (5DtUhQWV...), removable_on: 0, status: IdtyStatus::Validated } + 1003 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(6)) }, next_creatable_identity_on: 0, old_owner_key: Some((91ad4bde950bf3afe320f6e9d1142bfbaa97c2efcbc0c60bafac6564af8e3205 (5FMiHCu9...), 76347)), owner_key: 1c7763b151c7fbda2b2376211ff00ad2a3cb8856e918eeb99807d075d61d0d39 (5Ci2fTws...), removable_on: 0, status: IdtyStatus::Validated } + 1004 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 9c42d756008793188159b1eae20e95ee75ab569e7597c6813e027fc82b8efe81 (5FbbBaMU...), removable_on: 0, status: IdtyStatus::Validated } + 1005 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0a55689f593cf37ba16fb8ee21c13faf94ce395ec09199d43a14313a010a7367 (5CJFhzua...), removable_on: 0, status: IdtyStatus::Validated } + 1006 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b400f4287908ad943d80e7c9bd3d0792e9a0ca01e4c4ebc5251ed9f6bcb6d509 (5G8im1yh...), removable_on: 0, status: IdtyStatus::Validated } + 1007 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 4e133079ca99b1ec85e5a6865595abccc95cd2fdbce17e8cf17eca1e08e04ba8 (5Dq5HvYw...), removable_on: 0, status: IdtyStatus::Validated } + 1008 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 073a1b74a57e80cbe30f78830d1b2b3e3bc128b2e92146a3feaa4c131041dd64 (5CEBTGsm...), removable_on: 0, status: IdtyStatus::Validated } + 1009 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 9321b744a56fc201c30df28eb04d764c0c4619013db33ad4a03b14124e6c48ab (5FPcuqxv...), removable_on: 0, status: IdtyStatus::Validated } + 101 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bfa43312f13ad00b0219c7cdd8b83a1a80dc9deff3aa2f8425cadeaa2e720fb9 (5GPynE8S...), removable_on: 0, status: IdtyStatus::Validated } + 1010 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e5975174eb03bad2261d12c6cf2b483712eb017bfbd25024bc6ba70dc0c2a187 (5HFjmpox...), removable_on: 0, status: IdtyStatus::Validated } + 1011 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0fac64b1f3bde90d23299cb9657cd21111203320e1b9ae220d6b861b6e0d6ae7 (5CRFnbZ3...), removable_on: 0, status: IdtyStatus::Validated } + 1012 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8a50c207aa374c95d826b146a8e2f094cf78f509a33482baf6df214b179cbf91 (5FC4TN6x...), removable_on: 0, status: IdtyStatus::Validated } + 1013 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 53dc3300e2cbcb6a764e1c8243b476ee4947b954440bd648a1161c96eea2ccfc (5DxfF8W8...), removable_on: 0, status: IdtyStatus::Validated } + 1014 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: dc03f10a8a6452549b1f61227fc8d790dda942b9f921eb34c2dea253f8603607 (5H3BZb8L...), removable_on: 0, status: IdtyStatus::Validated } + 1015 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b4641ed4852fa9c61fc36dab3818deabfc1ebc58af3a078cc046a224f0b819ee (5G9EDcuf...), removable_on: 0, status: IdtyStatus::Validated } + 1016 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d1c66abdbc84fbd91194886ca5f8a16ffa024026f8933c1c51cd64b882637fbf (5GokomiM...), removable_on: 0, status: IdtyStatus::Validated } + 1017 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 3bf794cf8ae987ed81e0e3c7d9183d3b1b4894b677da90487b300f9dc4c9e99b (5DRLEFqK...), removable_on: 0, status: IdtyStatus::Validated } + 1018 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bba043895a5a92c35f534f90a632ffe357c31231ce2a2befdfe072abf76999a7 (5GJiRJng...), removable_on: 0, status: IdtyStatus::Validated } + 1019 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bdb68f8f60dca8188d143aabd06589a9016dcdf2ef7a4729c8344625427718b1 (5GMT92gu...), removable_on: 0, status: IdtyStatus::Validated } + 102 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8930631ba608ec7940d0e14fea807ddb58cffbf7195688fcacdb578423ec9c1c (5FAanrMA...), removable_on: 0, status: IdtyStatus::Validated } + 1020 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c66b7114824467f0d8cc12c83dceda5fd20399d0ff6f6bc55fc7f46c83b06f8a (5GYsFki8...), removable_on: 0, status: IdtyStatus::Validated } + 1021 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0286d9298d50f733f1f2a07c0d217401081b43c623ff92a035c314535772eadb (5C821c4a...), removable_on: 0, status: IdtyStatus::Validated } + 1022 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b393ceaedea2b6d16d094222754575786433506f5025b94ee3aa1b5bdd9437e2 (5G8ALUAf...), removable_on: 0, status: IdtyStatus::Validated } + 1023 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b142536798462083127cb2196c1e7415dae273c1ea713a35c57a9d26bd6bb91d (5G58327h...), removable_on: 0, status: IdtyStatus::Validated } + 1024 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: f0262e6cf79ce71899808ad7139bdc318b4f231ae6708ead3880a55ddc8cef1f (5HVah5CT...), removable_on: 0, status: IdtyStatus::Validated } + 1025 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7d0db875975f2cda0970e939d373155f9d462342f3d97cb3486043588d058a37 (5EtfvERp...), removable_on: 0, status: IdtyStatus::Validated } + 1026 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 89e3bb2151d7e4aa28d3dae7bda49c985ab57a14bb089bf0fba45efe7c088905 (5FBW4seQ...), removable_on: 0, status: IdtyStatus::Validated } + 1027 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: f86c5f0b2b9428dde8ca7fa3a56a3b9166ea4161f2628a3bf521a58d179dd33a (5HgRvdpv...), removable_on: 0, status: IdtyStatus::Validated } + 1028 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d8e59f9e3ebeeb1e6e02925f31026e2c15c00b4a9077f171931881f4bc28d03d (5Gy6QtXm...), removable_on: 0, status: IdtyStatus::Validated } + 1029 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e3765dc33ce23384455b36b3c2a8de53b50c601ba98883cc3d2b17b59bff82b8 (5HCwtXE8...), removable_on: 0, status: IdtyStatus::Validated } + 103 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8dedf878570379d00981ae150365846e5cd3a18218c2e768fe83954d934a5b12 (5FGoJQbT...), removable_on: 0, status: IdtyStatus::Validated } + 1030 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 54ce8e247ac6b2fddedb4b30c71b630dffdd71aa3e8eb0a62d1e49beb6998732 (5DyuEpvQ...), removable_on: 0, status: IdtyStatus::Validated } + 1031 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: ba3a6e2ed9041e4fbb849d57b8a0942fe3591a8e4bc91b270a00b0e264e88a89 (5GGt7ysU...), removable_on: 0, status: IdtyStatus::Validated } + 1032 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(6)) }, next_creatable_identity_on: 0, old_owner_key: Some((4094a772fb68a6897a63ad22631b7b139902b3ca8518e0ba4cd10ce0b2499b37 (5DXP5feu...), 77960)), owner_key: d8904850e4f3b9bba77265070b1e4e9979e925da5f6bddcb3570c3fa5cd7946a (5Gxf4VpP...), removable_on: 0, status: IdtyStatus::Validated } + 1033 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d5fe5f66f0eb04e3876c71df2c083975bfa16d05d2fe852952343a98b167ec80 (5GuHcyXP...), removable_on: 0, status: IdtyStatus::Validated } + 1034 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 1ce2781b873c5d5104172570b0e96116a44f2e240eb7283ed76d985198f5b457 (5CiaUQXc...), removable_on: 0, status: IdtyStatus::Validated } + 1035 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 69388e3366bf26b7e8fd8ecd87111479e8f5c624d5240e419346194f9b68f32c (5ESfgiQV...), removable_on: 0, status: IdtyStatus::Validated } + 1036 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: b796229c25e9506246cf4241ff306f8dc9e41acfc1db77905e72e748b92e03bf (5GDRDgkc...), removable_on: 0, status: IdtyStatus::Validated } + 1037 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7a3692af2b22feb1d07e4b8391d1f81f8486cfc410ad6cda48ab3a6be99a4234 (5Epwumho...), removable_on: 0, status: IdtyStatus::Validated } + 1038 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e13d42b412dc39c2281486e7e6c2aa218cd4a2c44093a7055e6196b974574dc0 (5HA2q4Np...), removable_on: 0, status: IdtyStatus::Validated } + 1039 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d7c482f860a35079cc47910379c106f1fd1d3d38a5997d1dad17dcc910a77452 (5GwcXcAY...), removable_on: 0, status: IdtyStatus::Validated } + 104 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 15e4bda77df1602ec10a68422144d569f27363417fbc95607778d7fd8737feea (5CZQp747...), removable_on: 0, status: IdtyStatus::Validated } + 1040 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: ac1b1ac817ace04a22e715dec7d311904ec0d3c782f3d3ce667051defebe99c1 (5FxN9NJw...), removable_on: 0, status: IdtyStatus::Validated } + 1041 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 6c44a55639386721adf565226768e15ef74bf65282d9205164890a08e5bc3582 (5EWfRMmk...), removable_on: 0, status: IdtyStatus::Validated } + 1042 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: ddd5b05cc08f45b364f5a08d7adb2aa76ad90f6e1fbe0fbd8ab3e65cbf50141a (5H5ZvEFF...), removable_on: 0, status: IdtyStatus::Validated } + 1043 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bf87b185529ad329cf9d1db2122f58b1c1acb6ddb52f6797418187641d545b10 (5GPqK5YD...), removable_on: 0, status: IdtyStatus::Validated } + 1044 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 17e97f63a3337183d3f4f2c75c3c75b836c54df36290e28c99ca9e31a2aa6732 (5Cc4KckS...), removable_on: 0, status: IdtyStatus::Validated } + 1045 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: df1237b0c4bdc36172731db37b4bf7bc8e0f3ee06d61c7b367f2e76c7511dc0b (5H7Bwtbi...), removable_on: 0, status: IdtyStatus::Validated } + 1046 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c542b3f5f42c8b36ef2f39a9609369779d5fc54dd5eec7af25ff205e08dddfc2 (5GXM74iM...), removable_on: 0, status: IdtyStatus::Validated } + 1047 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5078f7874b2e2d2831fa1c2ee30f317da0ab667d1749f99749979ade3ccca2cf (5DtDd4jC...), removable_on: 0, status: IdtyStatus::Validated } + 1048 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 020fb2db6dd8014d18476907bdee8f12529776f6bea39a8aeaa58b1111d17fb5 (5C7Qchqt...), removable_on: 0, status: IdtyStatus::Validated } + 1049 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7f0b7fbf0c46a2dbe80ed33555df40c7320047f1d5973f220b38708b5706d25a (5EwHMWaa...), removable_on: 0, status: IdtyStatus::Validated } + 105 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 37bf1bec25aa08bdf892352e72e734195323abae2088b4d34312005e1f36ec46 (5DKoG9s1...), removable_on: 0, status: IdtyStatus::Validated } + 1050 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: a4810bb6631572ef8087ccf4f541551c093169eba19670ef70f6376e40cb000f (5FnQ3Z7w...), removable_on: 0, status: IdtyStatus::Validated } + 1051 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5556222a81fe368a4e6b121d19ec280d128288dbad11a1f2e7d7b47ce095afe2 (5DzbWnW7...), removable_on: 0, status: IdtyStatus::Validated } + 1052 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: f4ea81e046ab9eff44142acaf55a17db8ccae7d936e422dd40a3a03a533ad8ff (5HbqCoNS...), removable_on: 0, status: IdtyStatus::Validated } + 1053 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: a4948a77698a0681c7afffdf920152bc81fdc9a561a10dd3cce9968a15b94a25 (5FnVqSw4...), removable_on: 0, status: IdtyStatus::Validated } + 1054 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: ee30c52006ca53c41ac27b293862d0f9489f418d4358820a86e4ea9277a69d90 (5HT1jxTv...), removable_on: 0, status: IdtyStatus::Validated } + 1055 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: a4b4050fc6c5d8f1ca511afa3a80586ee36c87f814e8349b10740bc16cdbb6cd (5FnfBpK3...), removable_on: 0, status: IdtyStatus::Validated } + 1056 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 45c961260a83f487afacc01294fe01958af5b1d2a63f17813459301d04a6ceff (5DeCyzSN...), removable_on: 0, status: IdtyStatus::Validated } + 1057 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 432d228d2516354b47b80da28b7187e1feaab7d59c9e524640e91d3b8fd5674b (5DanUQWJ...), removable_on: 0, status: IdtyStatus::Validated } + 1058 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7d6f0152fc66550a38222121bd897c2b37f23d852151886ec6bd42893b867dbc (5EuApQaw...), removable_on: 0, status: IdtyStatus::Validated } + 1059 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d1013b6270314f618fa78e8569bca30e7af6cf4e7e30876c96f0ce1272dd7d7d (5GnkEMTS...), removable_on: 0, status: IdtyStatus::Validated } + 106 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: d7b6eb765c24c7d35965aa76f30214a20fbc01dbacd1aa213d04e7f7563c78e5 (5GwYVRdB...), removable_on: 0, status: IdtyStatus::Validated } + 1060 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5b477c6c186e5be303830ab01b606a5ceb5e118cf0cd7098dc56def33de4b577 (5E8PT5aX...), removable_on: 0, status: IdtyStatus::Validated } + 1061 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7dfa05bc822def7e8d8c5af7ba8b94bf06b881f7c21793f7e0220257fa7c17c1 (5Eut7cqQ...), removable_on: 0, status: IdtyStatus::Validated } + 1062 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c6b130817d8a5c962b8ccf22b1acfd76a78cd7adddae8704bd35219f2f00b2a0 (5GZDyUox...), removable_on: 0, status: IdtyStatus::Validated } + 1063 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 37031dd6154d649dc770cdbdcc9b49e0eaae3f7ef6e66f04344ec2b445fee9ee (5DJqR7nd...), removable_on: 0, status: IdtyStatus::Validated } + 1064 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 0e3cc24b85cedcb1bf1631cf00cf6d8b0dfa9a7caab0ebaf7844db89140797c4 (5CPNaQNP...), removable_on: 0, status: IdtyStatus::Validated } + 1065 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: a97fc86b7d501e6a1ad8f089f3216f69777fed6cf0f10753716e12b5e3ac12c0 (5FtwugYQ...), removable_on: 0, status: IdtyStatus::Validated } + 1066 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c6ee2a1ddb4a61529023f9864156fa05de22c17bbec764e716e8933c04c49758 (5GZY64C1...), removable_on: 0, status: IdtyStatus::Validated } + 1067 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 723d781a59f8ea416c1f500a778882758db788743fcebefa49aeb37525e43101 (5EeVaNV9...), removable_on: 0, status: IdtyStatus::Validated } + 1068 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5fc70ec1de3d252766bc2c3ae24ba16b99153f3b027c771e01f999653a9fd458 (5EEHYCNV...), removable_on: 0, status: IdtyStatus::Validated } + 1069 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: aa8bb2f923b2d728dc217c9c2d7ff9ac9728d67bda9fc0210172fe142212726c (5FvKVmi3...), removable_on: 0, status: IdtyStatus::Validated } + 107 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c6327086c4a2e3d3b6f525b6e2a5028a81daa3cf78ce06ea7854b513e254af45 (5GYaKdVe...), removable_on: 0, status: IdtyStatus::Validated } + 1070 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 6b8070f214ef8e3910e23e577dd0e197a175f00a4d489f68f6f901140aec6003 (5EVf8qBM...), removable_on: 0, status: IdtyStatus::Validated } + 1071 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8309abfefcc149cac674d279b4dd224f73b1001e35089341d80abc40846f88b3 (5F2X191q...), removable_on: 0, status: IdtyStatus::Validated } + 1072 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 307763bb1430fb2510669afbbac4449ec845b1b1f420e9723da39f2c001b2957 (5DAFd1n7...), removable_on: 0, status: IdtyStatus::Validated } + 1073 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: e7a142fb02ec552f3c281e907dea4e5a471be2cb42de7487002975388f32d690 (5HJQphdu...), removable_on: 0, status: IdtyStatus::Validated } + 1074 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: bdd2fdafce3058ca275e0d2cce864f25da3410dddbe49b0d033b6ac04a20ade8 (5GMbasSo...), removable_on: 0, status: IdtyStatus::Validated } + 1075 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 73f9e5bc38dde680a7a0105217c3113682bfff61de1f8ce13a7df7d410be00cb (5Egmbh5J...), removable_on: 0, status: IdtyStatus::Validated } + 1076 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 5cc541787cb3f112ef771017816c8034b21ef37bf96c6dd280c5364e08b8fa0a (5EALrpT1...), removable_on: 0, status: IdtyStatus::Validated } + 1077 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 7df759cd262076aa051dec6a2579854367664a9a3f39c0e878e4b4f459cfa6b8 (5EusKb3F...), removable_on: 0, status: IdtyStatus::Validated } + 1078 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 26b18b64c7e926c0712e0e24e611396cb7dc0e1f96ec8db7e78a464c3324b0e0 (5CwSRE8o...), removable_on: 0, status: IdtyStatus::Validated } + 1079 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 3b83aed72974711a5b6a5f1fdab9360f3c66dc7ceea4488bec847fed222b9c2d (5DQjoNhf...), removable_on: 0, status: IdtyStatus::Validated } + 108 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 1da04861fa1da7dfbd472fa53b6078b8844e0670f431ac8a0c43ed47a28c0a10 (5CjYrpQm...), removable_on: 0, status: IdtyStatus::Validated } + 1080 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: c9807ee1fbbc7bae7bd2019b9a722f62f2f448e3bd5ad9dea539098e9b44500e (5GcueqVa...), removable_on: 0, status: IdtyStatus::Validated } + 1081 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 9932258335b85b41a37d3770c55413eb64452ee807d1fbdfbce55d1db9c8d8b7 (5FXa5btJ...), removable_on: 0, status: IdtyStatus::Validated } + 1082 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 1470a8df1fb4d0b5b64f9f6202bce6758a56519cabf523713dcd2a1939964f40 (5CXWHJ6s...), removable_on: 0, status: IdtyStatus::Validated } + 1083 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 6724dca50f59f86c2d819e4eef21dcffb3cabc1f83aab4a7dda0dedc8f9deef8 (5EPwjr7e...), removable_on: 0, status: IdtyStatus::Validated } + 1084 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: afd51302e36b7d00ff4d58be5b97e49fe7734cc1908503fb80008670a900a643 (5G3FXt9G...), removable_on: 0, status: IdtyStatus::Validated } + 1085 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 8c9183ff03488a9af9d54b02af5620556af70d1cecc18b016784796d036cb1ed (5FF1nfht...), removable_on: 0, status: IdtyStatus::Validated } + 1086 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 9d375eeea1940f7f465fc6933301a62e447497ce5e2884fa1678d0eb414b7ad4 (5Fcqpiwv...), removable_on: 0, status: IdtyStatus::Validated } + 1087 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: abe0bbb36414a1c4ded59c3d3b7baca47b38cce323f7827d964cfcf2eb85212f (5Fx4oenQ...), removable_on: 0, status: IdtyStatus::Validated } + 1088 = IdtyValue { data: IdtyData { first_eligible_ud: FirstEligibleUd(Some(1)) }, next_creatable_identity_on: 0, old_owner_key: None, owner_key: 42f2836563b931a439d31078c6f7e0a113ba93bacc6914e27dbc4d739309e492 (5DaV4Nrp...), removable_on: 0, status: IdtyStatus::Validated } + ... +7131 more +] +Identity.IdentitiesNames = [ +] +Identity.IdentitiesRemovableOn = [ + 1345679 = [(7234, IdtyStatus::Created)] +] +Identity.IdentityIndexOf = [ +] +Identity.NextIdtyIndex = Some(7235) +ImOnline.AuthoredBlocks = [ + 2123 => 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) = 62 + 2123 => 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) = 56 + 2123 => 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) = 56 + 2123 => b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) = 49 +] +ImOnline.HeartbeatAfter = Some(1245604) +ImOnline.Keys = Some(WeakBoundedVec([Public(e28ccacc4f8a3d11e5350741b28564d3290316aac2b954e6fd8750a8c86d4e38 (5HBkW8jr...)), Public(a63e4cc2d4a1037c6b9716a25c451e2311d0e302a12198a5405f2e3faa5f5a79 (5FpgK6zN...)), Public(323157c1e277cfe016a767a5f4cc86225232f3e6c8fb7d2e429752c9b21d0236 (5DCWuh34...)), Public(d4969256ac9618dd33046693ec6d2114f0ee5979a6fa83434d972f306ed88b03 (5GsSjkLN...))], 32)) +ImOnline.ReceivedHeartbeats = [ +] +Membership.CounterForMembership = Some(7128) +Membership.Membership = [ + 1 = MembershipData { expire_on: 5184000 } + 10 = MembershipData { expire_on: 5184000 } + 100 = MembershipData { expire_on: 5184000 } + 1000 = MembershipData { expire_on: 5184000 } + 1001 = MembershipData { expire_on: 5184000 } + 1003 = MembershipData { expire_on: 5184000 } + 1004 = MembershipData { expire_on: 5184000 } + 1005 = MembershipData { expire_on: 5184000 } + 1006 = MembershipData { expire_on: 5184000 } + 1007 = MembershipData { expire_on: 5184000 } + 1008 = MembershipData { expire_on: 5184000 } + 1009 = MembershipData { expire_on: 5184000 } + 101 = MembershipData { expire_on: 5184000 } + 1010 = MembershipData { expire_on: 5184000 } + 1011 = MembershipData { expire_on: 5184000 } + 1012 = MembershipData { expire_on: 5184000 } + 1013 = MembershipData { expire_on: 5184000 } + 1014 = MembershipData { expire_on: 5184000 } + 1015 = MembershipData { expire_on: 5184000 } + 1016 = MembershipData { expire_on: 5184000 } + 1017 = MembershipData { expire_on: 5184000 } + 1018 = MembershipData { expire_on: 5184000 } + 1019 = MembershipData { expire_on: 5184000 } + 102 = MembershipData { expire_on: 5184000 } + 1020 = MembershipData { expire_on: 5184000 } + 1021 = MembershipData { expire_on: 5184000 } + 1022 = MembershipData { expire_on: 5184000 } + 1023 = MembershipData { expire_on: 5184000 } + 1024 = MembershipData { expire_on: 5184000 } + 1025 = MembershipData { expire_on: 5184000 } + 1026 = MembershipData { expire_on: 5184000 } + 1027 = MembershipData { expire_on: 5184000 } + 1028 = MembershipData { expire_on: 5184000 } + 1029 = MembershipData { expire_on: 5184000 } + 103 = MembershipData { expire_on: 5184000 } + 1030 = MembershipData { expire_on: 5184000 } + 1031 = MembershipData { expire_on: 5184000 } + 1032 = MembershipData { expire_on: 5184000 } + 1033 = MembershipData { expire_on: 5184000 } + 1034 = MembershipData { expire_on: 5184000 } + 1035 = MembershipData { expire_on: 5184000 } + 1036 = MembershipData { expire_on: 5184000 } + 1037 = MembershipData { expire_on: 5184000 } + 1038 = MembershipData { expire_on: 5184000 } + 1039 = MembershipData { expire_on: 5184000 } + 104 = MembershipData { expire_on: 5184000 } + 1040 = MembershipData { expire_on: 5184000 } + 1041 = MembershipData { expire_on: 5184000 } + 1042 = MembershipData { expire_on: 5184000 } + 1043 = MembershipData { expire_on: 5184000 } + 1044 = MembershipData { expire_on: 5184000 } + 1045 = MembershipData { expire_on: 5184000 } + 1046 = MembershipData { expire_on: 5184000 } + 1047 = MembershipData { expire_on: 5184000 } + 1048 = MembershipData { expire_on: 5184000 } + 1049 = MembershipData { expire_on: 5184000 } + 105 = MembershipData { expire_on: 5184000 } + 1050 = MembershipData { expire_on: 5184000 } + 1051 = MembershipData { expire_on: 5184000 } + 1052 = MembershipData { expire_on: 5184000 } + 1053 = MembershipData { expire_on: 5184000 } + 1054 = MembershipData { expire_on: 5184000 } + 1055 = MembershipData { expire_on: 5184000 } + 1056 = MembershipData { expire_on: 5184000 } + 1057 = MembershipData { expire_on: 5184000 } + 1058 = MembershipData { expire_on: 5184000 } + 1059 = MembershipData { expire_on: 5184000 } + 106 = MembershipData { expire_on: 5184000 } + 1060 = MembershipData { expire_on: 5184000 } + 1061 = MembershipData { expire_on: 5184000 } + 1062 = MembershipData { expire_on: 5184000 } + 1063 = MembershipData { expire_on: 5184000 } + 1064 = MembershipData { expire_on: 5184000 } + 1065 = MembershipData { expire_on: 5184000 } + 1066 = MembershipData { expire_on: 5184000 } + 1067 = MembershipData { expire_on: 5184000 } + 1068 = MembershipData { expire_on: 5184000 } + 1069 = MembershipData { expire_on: 5184000 } + 107 = MembershipData { expire_on: 5184000 } + 1070 = MembershipData { expire_on: 5184000 } + 1071 = MembershipData { expire_on: 5184000 } + 1072 = MembershipData { expire_on: 5184000 } + 1073 = MembershipData { expire_on: 5184000 } + 1074 = MembershipData { expire_on: 5184000 } + 1075 = MembershipData { expire_on: 5184000 } + 1076 = MembershipData { expire_on: 5184000 } + 1077 = MembershipData { expire_on: 5184000 } + 1078 = MembershipData { expire_on: 5184000 } + 1079 = MembershipData { expire_on: 5184000 } + 108 = MembershipData { expire_on: 5184000 } + 1080 = MembershipData { expire_on: 5184000 } + 1081 = MembershipData { expire_on: 5184000 } + 1082 = MembershipData { expire_on: 5184000 } + 1083 = MembershipData { expire_on: 5184000 } + 1084 = MembershipData { expire_on: 5184000 } + 1085 = MembershipData { expire_on: 5184000 } + 1086 = MembershipData { expire_on: 5184000 } + 1087 = MembershipData { expire_on: 5184000 } + 1088 = MembershipData { expire_on: 5184000 } + ... +7128 more +] +Membership.MembershipsExpireOn = [ + 5184000 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220] + 5810276 = [7228] +] +Membership.PendingMembership = [ + 7230 = () + 7233 = () + 7234 = () +] +Membership.PendingMembershipsExpireOn = [ + 1316189 = [7230] + 1538809 = [7233] + 1676945 = [7234] +] +Multisig.Multisigs = [ +] +Offences.ConcurrentReportsIndex = [ + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [112, 1, 0, 0]" = [0x0fe1345e5cf187f090a41b5e903a5ba6b806d77098131702664e091cb366a850] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [113, 1, 0, 0]" = [0xdd04500ec6414fef7eb3870e1eef4682231e97e03824592bbde0d70f80072da0] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [114, 1, 0, 0]" = [0x6561c29ece7a60150ef2524f22ea55f65eb032aaad5953f4a61c6b9e20badc6f] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [115, 1, 0, 0]" = [0x9e465c2bc968e575b5efe569af6df948a8dc190001d447153fa86ea07f80e022] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [116, 1, 0, 0]" = [0x51105e85286a12d685d35b056e944502d9efd88f2de60de34a5add3ffd3290ea] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [117, 1, 0, 0]" = [0xa2e92e279b28d3dea69c0634d7d557a8ae571e7768165071f013d3134b93fa12] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [118, 1, 0, 0]" = [0x52a7dedc0fbb1fabaf0d038f627c1679552df9250e27877cc25507090224371d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [119, 1, 0, 0]" = [0xab64e0285e7e154c6001aa631ddae3fd42782e42639965ae08303918fd88f5ce] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [120, 1, 0, 0]" = [0xd614b37b96c0b960bcc567cf072d20c66ee276c4c3eeff56e294fbb18570781d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [121, 1, 0, 0]" = [0xabf7cbc8c33c0d8cd732a287b52bc549e148478ff6d39d51ecce4b51e669cfac] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [122, 1, 0, 0]" = [0xa4ff9eadd86716c145169da82bb36d8acbd3b368b8c3727b4df0b88cc6d3f083] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [123, 1, 0, 0]" = [0xb5a831a872040ec0a43f0fe00bb4f8fbba1197aceef8d8517a2d6a00936a011c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [124, 1, 0, 0]" = [0x6917402137ce947d132230ad49f6fea9b219cd3d6e229a7ee808144024f56275] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [124, 4, 0, 0]" = [0xcc0cdde07f6d5a9c1b37e0500965552c4dc195c295c7ea32655fe988330cd941] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [125, 1, 0, 0]" = [0xae94039a9ec1e58ab286d0efcfd9d807fa45f00512d0b3a1e5cb2aecd366ec21] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [125, 4, 0, 0]" = [0x70ec88c3b9067bc4193c8bb94d05d09ead26949c901e9f7f8ba75b3e879852eb] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [126, 1, 0, 0]" = [0xd0a15020180b3e327f5e2fa7b026a26cc4233473e29bb818c722decfb56f4888] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [126, 4, 0, 0]" = [0x30bf7f3e5e48a891b518dd714fe472d59516596027f1e6771fe902ddcf790fdd] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [127, 1, 0, 0]" = [0xa8962ec43b6ab21591ebedc434a64a5fdc916a5ab0f2316ca081baaa5c9a630a] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [127, 4, 0, 0]" = [0x770dc28d2b699b6127cbd17446903c67a70a8fdf75f74541e9df059d4d56d332] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [128, 1, 0, 0]" = [0x19d64121756171beae2e1ca2aa9d40ea3ddca8ba4d87a91c81fe85a847d29633] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [128, 4, 0, 0]" = [0x9d1ab216f1e637d8eec66186b5a0abd24050c3f312eadc6e7a6c0c168f74571c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [129, 1, 0, 0]" = [0xb5e043d63d8bf936c6688a3cb14c6ae5dc4f166a7edc3baa44ee6054a2038ced] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [129, 4, 0, 0]" = [0xa183c2e5d64448437c9e9fd4a6313559208ffa9941c68ac4f7ef17833940d00c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [130, 1, 0, 0]" = [0x252eceda21288b6efb937abda3dde688f0bb4dcaa85eb584d563711c25d6291c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [130, 4, 0, 0]" = [0x1779987a82b5476ee08840197e6f451e4d494b7eb400f39350c96e73f836311e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [131, 1, 0, 0]" = [0xc60c30a358d870b1a49c07b90833f7e62a9be6750893cc5edd7b421f17c61c3e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [131, 4, 0, 0]" = [0xe9fab9affd9741a191e9a76aff3370410e960ab24dde061c2767ac0da057887d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [132, 1, 0, 0]" = [0xe2d557089ac3df6978010eee2d8bf42c820dfe91c83677f8949f79c0566553ab] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [132, 4, 0, 0]" = [0xfe0957db20aa2c2aaae893b431ca198e42f86c7956e2d61a4b271399f36370e9] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [133, 1, 0, 0]" = [0xa896838d60ca66adbffca2d518cff6cefa4d7b33678e4c17222cd11b8c4b68bf] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [133, 4, 0, 0]" = [0x97a8effa02584d9de8057d045fc41aeed976c793cf9c8a946f1e96b71c19a52b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [134, 1, 0, 0]" = [0x630cf147f9551e0ad227f99bb74993723a291c7940812bec5be22fae644f0786] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [134, 4, 0, 0]" = [0xec0d583ac22199a0d67624ff45d2b82f136e037b2df20283005d58ce1427514b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [135, 1, 0, 0]" = [0x198f7e9acae757dc8793d509f6389466f0c5bd18309042a5314beb14c4e8e0d6] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [135, 4, 0, 0]" = [0xb768852c25a987f6b3ca4afae28e93a0612db95d88e7c9c7544a1c524b4a5efe] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [136, 1, 0, 0]" = [0x612d10a46b5e9f8f40a4237f8c01efb3a4b5957eab4b1c611e7aa216cfa51b48] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [136, 4, 0, 0]" = [0x351165c73ad1cb09c1aacb1c2546b6f4c2fa80f070b3f8218f94bced910312c7] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [137, 1, 0, 0]" = [0x42396b539fdacc00ef799130024aa7cb1dea01b62489af8ee1ad225af9d722ca] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [137, 4, 0, 0]" = [0x768152ee4ae5967da32e170594abf0c24cc9be8aa3e615233983731dbc7c31b1] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [138, 1, 0, 0]" = [0xd56b35489954544c2ecafad8607f720ba9966d093f67961a3439cc90250e0dcc] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [138, 4, 0, 0]" = [0xe00726d4a8406b42fa2e42d89386ad96fbbfe3dce33b43b4518ccaa53665dd8b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [139, 1, 0, 0]" = [0xb3b6dedb9898cdf6adb83e6fd5ffb8af300bb1f2ef1dfb708604f33f10026d3c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [139, 4, 0, 0]" = [0xa411c11c7097427d5772629a4b42585fb4673c6ad59bd6eb3b3c03fe73d51787] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [140, 1, 0, 0]" = [0xd75bfaf7975594e8966d8f8ca0cefa84f6aa7818abd20f5befb77eeadc60428e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [140, 4, 0, 0]" = [0x1ecce7262919494516ce384e0d4938bedc6a71253711447677c8368d8f9e3036] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [141, 1, 0, 0]" = [0x9384cf65607beada62dbb88b2abe1cbeda71e7a3b0cb0e129154069f79dcc42b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [142, 1, 0, 0]" = [0xca26649193bab6f0519c0d61464c4597e29fb11730bc01c97407e417250a0b62] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [143, 1, 0, 0]" = [0x8adf3ea2a6319be4facb865cd84526b7b76544cbdf3ed7f7df3747aaac7a3d0e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [144, 1, 0, 0]" = [0x7acc4e35efc9a039ad84a977c8619421de5246322aa3dae17874c1531906f07d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [145, 1, 0, 0]" = [0x1a1a94b18c8e42a68fb0375b7fae6e80cd0b2c12dbab918612da9f8fc0592211] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [146, 1, 0, 0]" = [0x8f375155ddcb50fa75e822107529ea36b5906a68223b541d11f95261cbabfb87] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [147, 1, 0, 0]" = [0xb206ba4c5879f135f136388f4fa1b75025d20d6cf43e0ab0a0f3e29e4df76ca6] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [148, 1, 0, 0]" = [0x6fb50cfc6e1e9501cc67493adb870d90344bd3b08862a269954bd5a4aca24467] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [149, 1, 0, 0]" = [0x89be6d57c8f585481579c880a8ebc152a87af0ddf7a244558bba02ab5a26a59b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [150, 1, 0, 0]" = [0xdd1b074b6f118d76bf2cdf9fd105c64ee9186eae37fbbeada7816b5b22be5630] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [151, 1, 0, 0]" = [0xc9cf95577c05cfa3451e54f5777d5724fd7e4a161ae9d3fa62880482d409e9ac] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [152, 1, 0, 0]" = [0xcf9e697816a335a7b217ec8977c551eb37643608a62b5dcaf483ae75d2ea8646] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [153, 1, 0, 0]" = [0x5047df9dd7fb66f5cfb9aac187e8ca1c6f6cc50a4c7b1ffa6ca1f1a4642458ca] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [154, 1, 0, 0]" = [0x9107d665cdb4b4b5bba018d803ab69e24add2ade5bf037366e80e2a145050115] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [155, 1, 0, 0]" = [0x823f033459e671f6226b53c7a739f1bf17bd60cc4e104e284694fff3c146ef0d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [156, 1, 0, 0]" = [0x3688f2c6daaa9548a7a2bbe55d5b81439bb5e62d5a106e2a121d5750dfd996c2] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [157, 1, 0, 0]" = [0xa8e9e4d83a35440dc6eca5034bebac12856107e2dcb43edc35e6a1973c37e786] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [158, 1, 0, 0]" = [0x9b46c55bf00c8b5080f9a7430ec58cbcd737fa2017d62419d0fdef96cd9c0b02] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [159, 1, 0, 0]" = [0xf5150f0101f49811a3c5b790d7947bef0eb5f50c3dfa638de5ffe5ef8453ab57] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [160, 1, 0, 0]" = [0x8d7ad31af097f802fba0fe46b6077a45161fcd2952ab8e2af7169b2dcb55a774] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [161, 1, 0, 0]" = [0x60a8abc8a359ceee18a456aca15891b8e7108d3e6e94739c9a4a78b2fa16e224] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [162, 1, 0, 0]" = [0x0c1d8ed7f45f7391802f42e2e821018a02f71b331ad32bbffc2ae1511ac6c81a] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [163, 1, 0, 0]" = [0x4923c7beaafd833e694a29cbabe6ca0d796d8f1a29fcffd84bd666fec2aa87c7] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [164, 1, 0, 0]" = [0x3fdb195a1bac6345c7855bb588295a9e045bad757850c488f60d6fffcd3aa791] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [165, 1, 0, 0]" = [0xa26633f6d09b3297af630b504b36aa0359293819c4c1829013ae4e665a9d96e3] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [166, 1, 0, 0]" = [0x023725a77bc2ad8dffa0c35225436caec4df551b58f34a4c2566278e1e53e93d] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [167, 1, 0, 0]" = [0x94913bdf41e786549db6aaa67442143e4eb6646520fbb1dd92d41cc288987009] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [168, 1, 0, 0]" = [0x4c8db8c38500541a79a7007aee19a4036b8e106db986997ef16090fc9b193baf] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [169, 1, 0, 0]" = [0x8a26304751b661d17c18c2e8f7f1d436d5d6c628508b2dcd4bbb9503fa0e7411] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [170, 1, 0, 0]" = [0x8279fbdf40f560e3704b09663583e2ea4998480ad5e298247754c860d1d203df] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [171, 1, 0, 0]" = [0x5c7159b2d4df0cc5f8971e5f03c5e781852f300ad42c5893cca06b1195da0146] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [172, 1, 0, 0]" = [0x7fd3ac9817da75db989bc3dffc0badf5e683117d7bff74d7eb4c424e9a49e097] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [173, 1, 0, 0]" = [0x75a588b5ba7ba484c8b43924f783708355d49b7d615ab2724dba012f3f896009] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [19, 6, 0, 0]" = [0xb0f30bb3c0ff29f3c3128fd75e7f224fd2db601fbed05a5e8f425a462449e2a8] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [20, 6, 0, 0]" = [0x27c462a9baf541ce6e9c3e36ad756d9f1c7c1f76830bb3c622af0e28a81ddd27] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [21, 6, 0, 0]" = [0x3c37c3a3ece439287b7c117b5483b040e19f452736a2505058d6b8ebfe0b4553] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [22, 6, 0, 0]" = [0x3e1aa90a3c12cf4d8ea199ea061d7029069f13e1c506093dcf49d541ccb10624] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [23, 6, 0, 0]" = [0xcc1b4ed13e1fee0be782eb9e7a8b1d0c48201b7ce8df5d10fc248c6fa276f9ac] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [24, 6, 0, 0]" = [0x9d78d90dac2e771388ce1fdbb3f3b21d10be126c141339e8e4f1bf3cf3cbd3a1] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [25, 6, 0, 0]" = [0x1faf082402ff8bec557fd05e41bd030a63b2f3dfbadff51874c341f8857dfb5a] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [26, 6, 0, 0]" = [0x2d0e90b0311b4637b885c5d128779798711e7569ac61f2741e01b38c6e97f7ae] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [27, 6, 0, 0]" = [0x4df836417a24f1d2f11157d8dd5efb33f26d661ec00b5e33abf1bd5bd3df5f0e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [27, 7, 0, 0]" = [0x59c83fd81debf78c562026d57b6b97d935f7aae648d06fe9be767f0da6d1981a] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [28, 6, 0, 0]" = [0x773bf2b28ef541cf0b3326750541fbde0a6007b1c76d68c2c72cb12e8b7d9a6b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [28, 7, 0, 0]" = [0xec9980a290af9b9f4dd9b6974bd68cfd1b3b95556c9dd4b5247588b93db8bb58] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [29, 6, 0, 0]" = [0x8535eff05ae1d4c0f0dd4e60e921df0ec24a0615731e73b277b52a5d37f30760, 0x1bfa562fdb35c81ea85909f1916e7778e0358191196e541fc4038c00b200b15e] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [29, 7, 0, 0]" = [0x3a064fc3c8a242f639d83af59a545d299bef0be9b077f7cf48f96ecde3d25f5c] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [30, 6, 0, 0]" = [0x9092cb795ea26b098d8f56e126ac8218ca8bb656ba37fb3209d431e4813f9d3e, 0x83c50880da4e6224aaf58d432cd4a04c435eb7c364e0568c3093897721ada3aa] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [30, 7, 0, 0]" = [0x4123fa179387a6b86548c8cce97b213daa3246d47541487075bbb255d0c7b67b] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [31, 6, 0, 0]" = [0xbbb39adc994be959bebf47078ed4d2293de23beba9e601360c9c2ad6c6063da5, 0x6a7c0d21c4fa1258568761c530f47572ee77d92f4c9b25f65e0f5229da368d25] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [31, 7, 0, 0]" = [0xba12f21cbc577a009912941be08469f4f30b43728924e2eade879df68ab98f50] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [32, 6, 0, 0]" = [0x48f0740c3b27f4189629767c6653eac59ba9a522b6e098516852c172a4c0a54a, 0x87616159ed5d9a4e713171bddf7f6eb47d182664fb802ecd92483e994d644cb6] + "[105, 109, 45, 111, 110, 108, 105, 110, 101, 58, 111, 102, 102, 108, 105, 110] => [32, 7, 0, 0]" = [0x3180c33aa77e78f20d614edc58b019e8237f29f20b200fdca2e197f1c43b3066] + ... +159 more +] +Offences.Reports = [ + 0x023725a77bc2ad8dffa0c35225436caec4df551b58f34a4c2566278e1e53e93d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x0a678c934077ddb420ded8f08da4b2607db507cebe20a1d0ab73625dd2de9cb1 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x0bef1c2b13a1e8344e5a3444d0b5347b2b42dbeef967fa69951b39ae30a1bba4 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x0c1d8ed7f45f7391802f42e2e821018a02f71b331ad32bbffc2ae1511ac6c81a = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x0fe1345e5cf187f090a41b5e903a5ba6b806d77098131702664e091cb366a850 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x16a8fd72d1a93d981631f6c9be883dea962900b180c08b7b90e104a6d6fe7534 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1779987a82b5476ee08840197e6f451e4d494b7eb400f39350c96e73f836311e = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x198f7e9acae757dc8793d509f6389466f0c5bd18309042a5314beb14c4e8e0d6 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x19d64121756171beae2e1ca2aa9d40ea3ddca8ba4d87a91c81fe85a847d29633 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1a1a94b18c8e42a68fb0375b7fae6e80cd0b2c12dbab918612da9f8fc0592211 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1bfa562fdb35c81ea85909f1916e7778e0358191196e541fc4038c00b200b15e = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1e36d67727982e825fdef268dd3944421cab6b14e27f36362f3facc711e0580e = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1ecce7262919494516ce384e0d4938bedc6a71253711447677c8368d8f9e3036 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1fa3a8f6c048fb09e9c48cbf9084d93c087463187b335d12b90ba7e22d298169 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x1faf082402ff8bec557fd05e41bd030a63b2f3dfbadff51874c341f8857dfb5a = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x252eceda21288b6efb937abda3dde688f0bb4dcaa85eb584d563711c25d6291c = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x27c462a9baf541ce6e9c3e36ad756d9f1c7c1f76830bb3c622af0e28a81ddd27 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x29863d9dfcc1913478de211bbfc3ef6762c2fb3141c1c1589c9de290e7932911 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x2befa52a7556020e514c666c4a7861cba4bbb2befec202879bbd3d911eb076b8 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x2c6a2905c21934b8b240d8b94a043caba9cf602d9fb58c4406750ceed61ac009 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x2d0e90b0311b4637b885c5d128779798711e7569ac61f2741e01b38c6e97f7ae = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x2f29ed873bb1d8f4b7f7f462322c1cbc41db3060cdbf96836dbbe073907e2daf = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x2f2ce434c8e5293f1cfe1af9c1dad79b63dadbe8215b256def792494838f78dd = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x30bf7f3e5e48a891b518dd714fe472d59516596027f1e6771fe902ddcf790fdd = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3180c33aa77e78f20d614edc58b019e8237f29f20b200fdca2e197f1c43b3066 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3430d5e52a281003f53f9beb85ee3424ba3e50626e6a62118b2404c36dbcfe48 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x3461aa49e7a550cfcc242943dfca8883a57046dc7a54f6621239b1429ef45745 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x351165c73ad1cb09c1aacb1c2546b6f4c2fa80f070b3f8218f94bced910312c7 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3589576f27a8c6076291d20e76d22ffd1636e8e5fad7ef3899308a8ff1a3fcba = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3618dbf02b3c2fcfbdbea72bb14b6554d1cb60894d7e91da98f35787697abe45 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3688f2c6daaa9548a7a2bbe55d5b81439bb5e62d5a106e2a121d5750dfd996c2 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3838ad08108c32b054537fb72b256686a848977e1cd0c168feda1ea3fce3cb75 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x38a976f2bcb898bc02900028485a9552a103529f62ee36f555a1122f59fa3ee5 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3a064fc3c8a242f639d83af59a545d299bef0be9b077f7cf48f96ecde3d25f5c = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x3c37c3a3ece439287b7c117b5483b040e19f452736a2505058d6b8ebfe0b4553 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x3e1aa90a3c12cf4d8ea199ea061d7029069f13e1c506093dcf49d541ccb10624 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x3fdb195a1bac6345c7855bb588295a9e045bad757850c488f60d6fffcd3aa791 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x4123fa179387a6b86548c8cce97b213daa3246d47541487075bbb255d0c7b67b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x42396b539fdacc00ef799130024aa7cb1dea01b62489af8ee1ad225af9d722ca = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x47b3c0e54f1aa94a828465d2282888cdebb54bd780c099cf8189dc7d933b3642 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x48f0740c3b27f4189629767c6653eac59ba9a522b6e098516852c172a4c0a54a = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x4923c7beaafd833e694a29cbabe6ca0d796d8f1a29fcffd84bd666fec2aa87c7 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x49885e37c44934eda961ed36ee4dbf51df2f98c711c3091e90349cfcc0d14fc8 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x4b9b4042cf7071035d9852efa1787b90782f95be15e6bc7e274784c28828047e = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x4c8db8c38500541a79a7007aee19a4036b8e106db986997ef16090fc9b193baf = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x4d755cb49b0184440fb48842d0cbc74f3fb2c0ce6491b5b35a7c6f813e13dbd4 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x4df836417a24f1d2f11157d8dd5efb33f26d661ec00b5e33abf1bd5bd3df5f0e = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x5047df9dd7fb66f5cfb9aac187e8ca1c6f6cc50a4c7b1ffa6ca1f1a4642458ca = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x51105e85286a12d685d35b056e944502d9efd88f2de60de34a5add3ffd3290ea = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x528fbb60e4b3d170d8e63fa3e92b6aae706a3d40b43e92045ee8a39140429ed7 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x52a7dedc0fbb1fabaf0d038f627c1679552df9250e27877cc25507090224371d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x58102d2104570dd386a9ca0bcb7f285302f7a8443cd208805f02b42a8dad5b22 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x5941454d998d3d2eee82021b0a330730f623b959328b07e5c1533827d375c6fb = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x59c83fd81debf78c562026d57b6b97d935f7aae648d06fe9be767f0da6d1981a = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x5c7159b2d4df0cc5f8971e5f03c5e781852f300ad42c5893cca06b1195da0146 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x60a8abc8a359ceee18a456aca15891b8e7108d3e6e94739c9a4a78b2fa16e224 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x612d10a46b5e9f8f40a4237f8c01efb3a4b5957eab4b1c611e7aa216cfa51b48 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x630cf147f9551e0ad227f99bb74993723a291c7940812bec5be22fae644f0786 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x638d19381f929887b268b893ea2b80c8dd56c08fbbd1073837f7f380ad3352d9 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6561c29ece7a60150ef2524f22ea55f65eb032aaad5953f4a61c6b9e20badc6f = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x66173f1a6e2aa8d0c1cdf6df0df95ef2156f13125f20fa97027303cd89297bd4 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x66c66449bfc3692d258038ac494da88592bf7eea41392bf77e1ae3cecea39a91 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6917402137ce947d132230ad49f6fea9b219cd3d6e229a7ee808144024f56275 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6a7c0d21c4fa1258568761c530f47572ee77d92f4c9b25f65e0f5229da368d25 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6b650b88db3389463e5e5f419cf1536c2a82e641a872c3779a21cb1e7e629a1b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6cf536d18fc69bcc7d2e7f8b6b2e9ce89e1a7fd4074c7b792711b0ca66439a3d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6d0db7efde0a860b4001b586c52e5890e923b05b12e4053c68a625d8e9836ff0 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6f85772013606e800c5efd667d4e9f4c693eb2954bbe6e61971e2a35621de0ff = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x6fb50cfc6e1e9501cc67493adb870d90344bd3b08862a269954bd5a4aca24467 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x70ec88c3b9067bc4193c8bb94d05d09ead26949c901e9f7f8ba75b3e879852eb = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x75a588b5ba7ba484c8b43924f783708355d49b7d615ab2724dba012f3f896009 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x768152ee4ae5967da32e170594abf0c24cc9be8aa3e615233983731dbc7c31b1 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x769efdd809001666300491a75f25d960ae05f897598e112f4b7db5f50fd2dc30 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x770dc28d2b699b6127cbd17446903c67a70a8fdf75f74541e9df059d4d56d332 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x773bf2b28ef541cf0b3326750541fbde0a6007b1c76d68c2c72cb12e8b7d9a6b = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x78616e136ab36d5dfa7cb3746a8ff2964162c64ce5d3b67c119d6970d9b96b5b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x788025e28a4e4424fe9867f86a389a8910ede4633b5d256d47ed10ca650c019d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x7acc4e35efc9a039ad84a977c8619421de5246322aa3dae17874c1531906f07d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x7b4e9027144a96ba226e4f9df51a05cde536cd2170e23ece79d75b9f9f49a3ac = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x7fd3ac9817da75db989bc3dffc0badf5e683117d7bff74d7eb4c424e9a49e097 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x823f033459e671f6226b53c7a739f1bf17bd60cc4e104e284694fff3c146ef0d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8279fbdf40f560e3704b09663583e2ea4998480ad5e298247754c860d1d203df = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x83147eb732bef5f57473fc905240bc5646ae947ea5381417d29b7adb2bf834c8 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x83c50880da4e6224aaf58d432cd4a04c435eb7c364e0568c3093897721ada3aa = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8535eff05ae1d4c0f0dd4e60e921df0ec24a0615731e73b277b52a5d37f30760 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x87616159ed5d9a4e713171bddf7f6eb47d182664fb802ecd92483e994d644cb6 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x87f66237ffb530b41927a1d79d9f6cca555a7ef7017dd73e9012b4ee0afd9787 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x88115f46b40008d41d4cf6c57fd5b34f53487a346a94a10a320c742c8e70c4f6 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x887394dae31adce754395389ebf4f8eff441c24d2dde65268dd0a1d524c44d5b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x88849eb3e8d7e9514d3a8840d171f798e6635282a5e63251e172d26dd1d58261 = OffenceDetails { offender: (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), ValidatorFullIdentification), reporters: [] } + 0x89be6d57c8f585481579c880a8ebc152a87af0ddf7a244558bba02ab5a26a59b = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8a26304751b661d17c18c2e8f7f1d436d5d6c628508b2dcd4bbb9503fa0e7411 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8adf3ea2a6319be4facb865cd84526b7b76544cbdf3ed7f7df3747aaac7a3d0e = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8b33109b06819128add8bd76ccea30e1df6d8c448709c299179126c605b4bb31 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8b60f3ef5914ebb7324cde92b4c3fbe5eabb853c60aeaed6a62a8e4b3edd9d62 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8d7ad31af097f802fba0fe46b6077a45161fcd2952ab8e2af7169b2dcb55a774 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8f37084efb0bcd5b0f9711901ed1f05b9171f93279519f1a66fa89b92c4fc31a = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x8f375155ddcb50fa75e822107529ea36b5906a68223b541d11f95261cbabfb87 = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + 0x90273e36315f4588ff844e8630a38a658de9531db8f0ac7ff49b802de46a234d = OffenceDetails { offender: (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), ValidatorFullIdentification), reporters: [] } + ... +170 more +] +OneshotAccount.OneshotAccounts = [ +] +Parameters.ParametersStorage = Parameters { babe_epoch_duration: 600, cert_period: 14400, cert_max_by_issuer: 100, cert_min_received_cert_to_issue_cert: 5, cert_validity_period: 10368000, idty_confirm_period: 100800, idty_creation_period: 100800, membership_period: 5184000, pending_membership_period: 432000, ud_creation_period: 14400, ud_reeval_period: 2592000, smith_cert_period: 14400, smith_cert_max_by_issuer: 15, smith_cert_min_received_cert_to_issue_cert: 3, smith_cert_validity_period: 10368000, smith_membership_period: 5184000, smith_pending_membership_period: 432000, smith_wot_first_cert_issuable_on: 14400, smith_wot_min_cert_for_membership: 3, wot_first_cert_issuable_on: 50, wot_min_cert_for_create_idty_right: 5, wot_min_cert_for_membership: 5 } +Preimage.PreimageFor = [ +] +Preimage.StatusFor = [ +] +ProvideRandomness.CounterForRequestsIds = Some(1) +ProvideRandomness.NexEpochHookIn = Some(0) +ProvideRandomness.RequestIdProvider = Some(131) +ProvideRandomness.RequestsIds = [ + 130 = () +] +ProvideRandomness.RequestsReadyAtEpoch = [ + 2125 = [Request { request_id: 130, salt: 0xa8dc86d1f7289d309465c890bb6f662b5c20571154cb14a8835eea0bc8a46179 }] +] +ProvideRandomness.RequestsReadyAtNextBlock = [] +Proxy.Announcements = [ +] +Proxy.Proxies = [ +] +Scheduler.Agenda = [ +] +Scheduler.IncompleteSince = None +Scheduler.Lookup = [ +] +Session.CurrentIndex = 2123 +Session.DisabledValidators = [] +Session.KeyOwner = [ + (KeyTypeId([103, 114, 97, 110]), [173, 85, 246, 115, 28, 165, 179, 114, 22, 43, 164, 88, 158, 40, 18, 40, 123, 65, 220, 85, 220, 152, 17, 218, 43, 247, 110, 173, 147, 149, 167, 249]) = 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) + (KeyTypeId([103, 114, 97, 110]), [213, 122, 32, 122, 25, 118, 105, 46, 220, 156, 222, 243, 90, 14, 132, 118, 201, 33, 185, 97, 132, 38, 206, 214, 159, 176, 205, 207, 117, 38, 247, 135]) = 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) + (KeyTypeId([103, 114, 97, 110]), [31, 97, 8, 88, 5, 169, 47, 247, 164, 184, 183, 92, 57, 165, 187, 161, 162, 156, 42, 224, 237, 223, 34, 220, 6, 50, 85, 165, 251, 145, 97, 41]) = 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) + (KeyTypeId([103, 114, 97, 110]), [36, 166, 229, 201, 64, 199, 173, 240, 34, 227, 87, 74, 16, 103, 231, 118, 193, 100, 154, 47, 197, 80, 77, 78, 95, 67, 144, 218, 122, 167, 106, 61]) = 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) + (KeyTypeId([103, 114, 97, 110]), [59, 140, 203, 160, 163, 106, 182, 197, 176, 77, 21, 157, 46, 49, 136, 198, 189, 46, 130, 87, 189, 236, 105, 53, 174, 109, 129, 46, 49, 211, 109, 133]) = b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) + (KeyTypeId([103, 114, 97, 110]), [6, 53, 251, 148, 6, 168, 57, 130, 109, 253, 129, 176, 249, 217, 117, 43, 51, 124, 109, 230, 124, 188, 231, 71, 20, 106, 163, 71, 87, 46, 38, 93]) = 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) + (KeyTypeId([103, 114, 97, 110]), [62, 145, 31, 166, 34, 204, 141, 250, 6, 254, 160, 122, 151, 165, 99, 172, 216, 40, 169, 107, 196, 61, 57, 228, 133, 87, 188, 149, 238, 2, 54, 126]) = 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) + (KeyTypeId([105, 109, 111, 110]), [166, 62, 76, 194, 212, 161, 3, 124, 107, 151, 22, 162, 92, 69, 30, 35, 17, 208, 227, 2, 161, 33, 152, 165, 64, 95, 46, 63, 170, 95, 90, 121]) = 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) + (KeyTypeId([105, 109, 111, 110]), [212, 150, 146, 86, 172, 150, 24, 221, 51, 4, 102, 147, 236, 109, 33, 20, 240, 238, 89, 121, 166, 250, 131, 67, 77, 151, 47, 48, 110, 216, 139, 3]) = b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) + (KeyTypeId([105, 109, 111, 110]), [226, 140, 202, 204, 79, 138, 61, 17, 229, 53, 7, 65, 178, 133, 100, 211, 41, 3, 22, 170, 194, 185, 84, 230, 253, 135, 80, 168, 200, 109, 78, 56]) = 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) + (KeyTypeId([105, 109, 111, 110]), [36, 166, 229, 201, 64, 199, 173, 240, 34, 227, 87, 74, 16, 103, 231, 118, 193, 100, 154, 47, 197, 80, 77, 78, 95, 67, 144, 218, 122, 167, 106, 61]) = 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) + (KeyTypeId([105, 109, 111, 110]), [50, 49, 87, 193, 226, 119, 207, 224, 22, 167, 103, 165, 244, 204, 134, 34, 82, 50, 243, 230, 200, 251, 125, 46, 66, 151, 82, 201, 178, 29, 2, 54]) = 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) + (KeyTypeId([105, 109, 111, 110]), [6, 53, 251, 148, 6, 168, 57, 130, 109, 253, 129, 176, 249, 217, 117, 43, 51, 124, 109, 230, 124, 188, 231, 71, 20, 106, 163, 71, 87, 46, 38, 93]) = 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) + (KeyTypeId([105, 109, 111, 110]), [62, 145, 31, 166, 34, 204, 141, 250, 6, 254, 160, 122, 151, 165, 99, 172, 216, 40, 169, 107, 196, 61, 57, 228, 133, 87, 188, 149, 238, 2, 54, 126]) = 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) + (KeyTypeId([97, 117, 100, 105]), [210, 5, 86, 158, 193, 183, 198, 121, 74, 115, 58, 248, 39, 30, 79, 30, 47, 46, 51, 28, 56, 166, 187, 187, 25, 169, 84, 230, 35, 151, 208, 97]) = 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) + (KeyTypeId([97, 117, 100, 105]), [230, 1, 224, 237, 118, 22, 6, 52, 80, 131, 226, 47, 71, 132, 172, 111, 26, 91, 77, 214, 87, 216, 41, 140, 73, 218, 253, 204, 50, 152, 53, 94]) = 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) + (KeyTypeId([97, 117, 100, 105]), [30, 127, 75, 80, 109, 2, 132, 53, 208, 145, 108, 224, 89, 145, 75, 77, 159, 177, 189, 0, 232, 247, 111, 25, 18, 133, 90, 242, 37, 18, 103, 117]) = b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) + (KeyTypeId([97, 117, 100, 105]), [36, 166, 229, 201, 64, 199, 173, 240, 34, 227, 87, 74, 16, 103, 231, 118, 193, 100, 154, 47, 197, 80, 77, 78, 95, 67, 144, 218, 122, 167, 106, 61]) = 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) + (KeyTypeId([97, 117, 100, 105]), [6, 53, 251, 148, 6, 168, 57, 130, 109, 253, 129, 176, 249, 217, 117, 43, 51, 124, 109, 230, 124, 188, 231, 71, 20, 106, 163, 71, 87, 46, 38, 93]) = 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) + (KeyTypeId([97, 117, 100, 105]), [62, 145, 31, 166, 34, 204, 141, 250, 6, 254, 160, 122, 151, 165, 99, 172, 216, 40, 169, 107, 196, 61, 57, 228, 133, 87, 188, 149, 238, 2, 54, 126]) = 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) + (KeyTypeId([97, 117, 100, 105]), [68, 22, 20, 16, 140, 6, 2, 52, 166, 104, 116, 188, 0, 124, 219, 50, 70, 10, 205, 133, 224, 178, 18, 102, 3, 123, 120, 200, 168, 98, 140, 120]) = 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) + (KeyTypeId([98, 97, 98, 101]), [118, 16, 233, 132, 231, 207, 15, 68, 76, 71, 54, 154, 73, 3, 115, 212, 56, 158, 195, 124, 50, 165, 19, 159, 97, 211, 147, 81, 55, 89, 94, 16]) = b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) + (KeyTypeId([98, 97, 98, 101]), [148, 88, 150, 51, 31, 228, 215, 129, 116, 122, 4, 202, 214, 209, 29, 125, 209, 170, 6, 34, 255, 183, 174, 54, 212, 97, 21, 61, 106, 224, 137, 40]) = 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) + (KeyTypeId([98, 97, 98, 101]), [206, 34, 118, 109, 212, 39, 8, 142, 110, 110, 255, 214, 160, 222, 210, 152, 165, 78, 11, 76, 60, 250, 98, 57, 252, 145, 38, 122, 27, 104, 20, 75]) = 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) + (KeyTypeId([98, 97, 98, 101]), [236, 230, 121, 3, 185, 7, 229, 181, 34, 88, 131, 41, 223, 200, 57, 141, 171, 210, 250, 203, 231, 96, 249, 191, 104, 41, 134, 51, 7, 27, 207, 48]) = 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) + (KeyTypeId([98, 97, 98, 101]), [36, 166, 229, 201, 64, 199, 173, 240, 34, 227, 87, 74, 16, 103, 231, 118, 193, 100, 154, 47, 197, 80, 77, 78, 95, 67, 144, 218, 122, 167, 106, 61]) = 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) + (KeyTypeId([98, 97, 98, 101]), [6, 53, 251, 148, 6, 168, 57, 130, 109, 253, 129, 176, 249, 217, 117, 43, 51, 124, 109, 230, 124, 188, 231, 71, 20, 106, 163, 71, 87, 46, 38, 93]) = 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) + (KeyTypeId([98, 97, 98, 101]), [62, 145, 31, 166, 34, 204, 141, 250, 6, 254, 160, 122, 151, 165, 99, 172, 216, 40, 169, 107, 196, 61, 57, 228, 133, 87, 188, 149, 238, 2, 54, 126]) = 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) +] +Session.NextKeys = [ + 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...) = SessionKeys { grandpa: Public(0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)), babe: Public(0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)), im_online: Public(0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)), authority_discovery: Public(0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)) } + 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...) = SessionKeys { grandpa: Public(d57a207a1976692edc9cdef35a0e8476c921b9618426ced69fb0cdcf7526f787 (5GtcLS5j...)), babe: Public(ece67903b907e5b522588329dfc8398dabd2facbe760f9bf68298633071bcf30 (5HRKd4qb...)), im_online: Public(a63e4cc2d4a1037c6b9716a25c451e2311d0e302a12198a5405f2e3faa5f5a79 (5FpgK6zN...)), authority_discovery: Public(e601e0ed761606345083e22f4784ac6f1a5b4dd657d8298c49dafdcc3298355e (5HGHRpS9...)) } + 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...) = SessionKeys { grandpa: Public(24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...)), babe: Public(24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...)), im_online: Public(24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...)), authority_discovery: Public(24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...)) } + 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...) = SessionKeys { grandpa: Public(1f61085805a92ff7a4b8b75c39a5bba1a29c2ae0eddf22dc063255a5fb916129 (5CmrAbeH...)), babe: Public(945896331fe4d781747a04cad6d11d7dd1aa0622ffb7ae36d461153d6ae08928 (5FRDG2PE...)), im_online: Public(323157c1e277cfe016a767a5f4cc86225232f3e6c8fb7d2e429752c9b21d0236 (5DCWuh34...)), authority_discovery: Public(441614108c060234a66874bc007cdb32460acd85e0b21266037b78c8a8628c78 (5Dbyfvkk...)) } + 3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...) = SessionKeys { grandpa: Public(3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...)), babe: Public(3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...)), im_online: Public(3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...)), authority_discovery: Public(3e911fa622cc8dfa06fea07a97a563acd828a96bc43d39e48557bc95ee02367e (5DUjwHRq...)) } + 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...) = SessionKeys { grandpa: Public(ad55f6731ca5b372162ba4589e2812287b41dc55dc9811da2bf76ead9395a7f9 (5FyygFFr...)), babe: Public(ce22766dd427088e6e6effd6a0ded298a54e0b4c3cfa6239fc91267a1b68144b (5Giyxa9A...)), im_online: Public(e28ccacc4f8a3d11e5350741b28564d3290316aac2b954e6fd8750a8c86d4e38 (5HBkW8jr...)), authority_discovery: Public(d205569ec1b7c6794a733af8271e4f1e2f2e331c38a6bbbb19a954e62397d061 (5Gp5Vt89...)) } + b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...) = SessionKeys { grandpa: Public(3b8ccba0a36ab6c5b04d159d2e3188c6bd2e8257bdec6935ae6d812e31d36d85 (5DQnWNvb...)), babe: Public(7610e984e7cf0f444c47369a490373d4389ec37c32a5139f61d3935137595e10 (5EjWXnJJ...)), im_online: Public(d4969256ac9618dd33046693ec6d2114f0ee5979a6fa83434d972f306ed88b03 (5GsSjkLN...)), authority_discovery: Public(1e7f4b506d028435d0916ce059914b4d9fb1bd00e8f76f1912855af225126775 (5Ckh7DV8...)) } +] +Session.QueuedChanged = false +Session.QueuedKeys = [(4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), SessionKeys { grandpa: Public(ad55f6731ca5b372162ba4589e2812287b41dc55dc9811da2bf76ead9395a7f9 (5FyygFFr...)), babe: Public(ce22766dd427088e6e6effd6a0ded298a54e0b4c3cfa6239fc91267a1b68144b (5Giyxa9A...)), im_online: Public(e28ccacc4f8a3d11e5350741b28564d3290316aac2b954e6fd8750a8c86d4e38 (5HBkW8jr...)), authority_discovery: Public(d205569ec1b7c6794a733af8271e4f1e2f2e331c38a6bbbb19a954e62397d061 (5Gp5Vt89...)) }), (0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), SessionKeys { grandpa: Public(d57a207a1976692edc9cdef35a0e8476c921b9618426ced69fb0cdcf7526f787 (5GtcLS5j...)), babe: Public(ece67903b907e5b522588329dfc8398dabd2facbe760f9bf68298633071bcf30 (5HRKd4qb...)), im_online: Public(a63e4cc2d4a1037c6b9716a25c451e2311d0e302a12198a5405f2e3faa5f5a79 (5FpgK6zN...)), authority_discovery: Public(e601e0ed761606345083e22f4784ac6f1a5b4dd657d8298c49dafdcc3298355e (5HGHRpS9...)) }), (2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), SessionKeys { grandpa: Public(1f61085805a92ff7a4b8b75c39a5bba1a29c2ae0eddf22dc063255a5fb916129 (5CmrAbeH...)), babe: Public(945896331fe4d781747a04cad6d11d7dd1aa0622ffb7ae36d461153d6ae08928 (5FRDG2PE...)), im_online: Public(323157c1e277cfe016a767a5f4cc86225232f3e6c8fb7d2e429752c9b21d0236 (5DCWuh34...)), authority_discovery: Public(441614108c060234a66874bc007cdb32460acd85e0b21266037b78c8a8628c78 (5Dbyfvkk...)) }), (b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...), SessionKeys { grandpa: Public(3b8ccba0a36ab6c5b04d159d2e3188c6bd2e8257bdec6935ae6d812e31d36d85 (5DQnWNvb...)), babe: Public(7610e984e7cf0f444c47369a490373d4389ec37c32a5139f61d3935137595e10 (5EjWXnJJ...)), im_online: Public(d4969256ac9618dd33046693ec6d2114f0ee5979a6fa83434d972f306ed88b03 (5GsSjkLN...)), authority_discovery: Public(1e7f4b506d028435d0916ce059914b4d9fb1bd00e8f76f1912855af225126775 (5Ckh7DV8...)) })] +Session.Validators = [4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...)] +SmithCert.StorageCertsRemovableOn = [ +] +SmithCert.StorageIdtyCertMeta = [ +] +SmithCertCert.sByReceiver = [ +] +SmithMembership.CounterForMembership = None +SmithMembership.Membership = [ +] +SmithMembership.MembershipsExpireOn = [ +] +SmithMembership.PendingMembership = [ +] +SmithMembership.PendingMembershipsExpireOn = [ +] +Sudo.Key = Some(4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...)) +System.Account = [ + 00003075edee896b833013ba055785713e813c8e58b8062291481e2f61745f7c (5C4huvuo...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x8740f03f7ddced22d305086335fd53b305e9cc44b24086c42ecf7911bf7e15d4), free: 2084, reserved: 0, fee_frozen: 0 } } + 0002bff3b9e193e89f0816a05c364d3eb1c49649ddae5f993edd43666ca29462 (5C4ig3g6...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x0b997f145c77696f2912e264d83f6d4ded570e4518456e29351d5da24a9ecf4f), free: 13720, reserved: 0, fee_frozen: 0 } } + 0005568c427744d93170c403106ee1ab6001b510a39aadd400cadb56c14bc61f (5C4jSeAt...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1dc916f5a79c5963933ac2c15e0b3f052ffe86a781b7407f5d7cf2bb68e96840), free: 1100, reserved: 0, fee_frozen: 0 } } + 0006581b64ac83dc20731001a9ded448c0f652af3d9d6e324f9c102b9bde2a95 (5C4jjyaG...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xb763cb0fa8f04597e60c85d2b71062f33cf8f60cbeb3c5af263ffc80450bca9d), free: 267863, reserved: 0, fee_frozen: 0 } } + 00069e47ffbbb63803719bc7d9a691e665faec6e52f16290170ce99e866e1f63 (5C4jphWF...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xf9f15a09fe5388434d5a264f531a2958637774614df62b39fb52dd2b3d14491b), free: 200, reserved: 0, fee_frozen: 0 } } + 000afb340ae0321082a0fdc7b2c3a4f5cef1777e8d6a4dfc11bdb78f781f7229 (5C4m7sVz...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x51f4d3c13363b55067980c238c44a886c4e244074fc7484768a6357fa7a38d29), free: 202619, reserved: 0, fee_frozen: 0 } } + 000eab7611911950d679a3bce33490918718fee2160619343d726be8ce0bb6de (5C4nDRVG...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x8434f157c728bfc481d654e2914bcb490f5b166a77aef31c87d682070fb88e45), free: 5000, reserved: 0, fee_frozen: 0 } } + 001687855a3832a42b79ebd3f897d674bf8ba1d27d03b733c45a541230a8952d (5C4pYqj4...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x9e8a4170b8ce760411fb132191ade4096fb3c85dbf7925c899b7f0c2ddf29778), free: 10000, reserved: 0, fee_frozen: 0 } } + 0017bf53bde43bf6b1db2ccb01fefcbbab5b2e3d69a71d0c7ae8332abb65de8d (5C4puptP...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xfaecfa70a996fec271cc89518ff45e273fc7d3c460f0dec8cd8672bc3fe25200), free: 536131, reserved: 0, fee_frozen: 0 } } + 00188c82966e4dbfd899a24414a4d873da311fdc9714b633f20ae26a9df1427f (5C4q9dqQ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x0aa3709795b5aaf1aeeb9deccb75c8ca575fe7efc4b5b33b0793109fe385931f), free: 1439248, reserved: 0, fee_frozen: 0 } } + 001b12fda4ce2878860cd80c528acca6a7bde19289aa50e5b09844b7a00b3916 (5C4qu9Rb...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xa40c0c52b727e08592337cc2b65519f07ee03b3fa7f18a494800efe59f302263), free: 1084814, reserved: 0, fee_frozen: 0 } } + 001bd2f8cb2cfba2b8c3462e554ccda4956cfc29cd9b85a52bb07a8213430a9c (5C4r84qb...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xc81642a145865a545a05db037591ac6543197e6085c52cd102abf457c9cccde8), free: 844994, reserved: 0, fee_frozen: 0 } } + 001fae6d8b92f837f1268b35ed3526712e1d1746133da2623f52ad49270ded53 (5C4sGXTF...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xa6b6c41c8eb4d81d7a2ce5fd037f3546df6875ba6c86b42ccc184d1ac4d86a49), free: 1342246, reserved: 0, fee_frozen: 0 } } + 002380b9902e1db3d12dee1e25ed54c1e220794c7d9368dee74d9b011ee23a11 (5C4tQNKC...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xa9999f64d5884986cb372f13b11de5003b046c8c0e0e9bbed188e8643ca01f46), free: 138211, reserved: 0, fee_frozen: 0 } } + 002ce4a89f5adfd660db8a2e1f94458801d7717e40d870b3884f9c37faa9ce8d (5C4wCAGK...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xf34c827d5a57cb6b893641857f585e20fbfdede3df4d586f8db0e711748895bb), free: 22500, reserved: 0, fee_frozen: 0 } } + 0031877fcfd0212722a689824793dead90cb14a8f708b3d370f6f99e617ae962 (5C4xa3CA...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xcd20aabccd14db92178945e1919b351aac5cab59c77d978dacfac07cbf628108), free: 6000, reserved: 0, fee_frozen: 0 } } + 003440fcbf60f696fb639826e0f3908231944dd1b6c404309ee398c71fee7aa2 (5C4yNytq...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x552fdc3265f57db6dee272f13bef2de658dedf6e9236f6408d1bec2a5b7fe9fa), free: 15100, reserved: 0, fee_frozen: 0 } } + 00367bb1f0ecbd5a97b998eb3ba6d36ddfafb264564de13c3a2ae47f89d90f92 (5C4z3PhU...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x634b5a843dcf75dee6a7c8150561a25dd116cd73ba7e01002e40dc33cbc17b21), free: 30000, reserved: 0, fee_frozen: 0 } } + 00370164f7871e7d848834cebc0a8bc25de3c158b03bdbf6c1cd83a237bcb1a2 (5C4zCPc2...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xf1976f8993b48d55f1ecd72b571c2f5854df13c5c6becda54e67cf099f6b360b), free: 210000, reserved: 0, fee_frozen: 0 } } + 003c7eb1dab93556a86be8bc25cf5cecdbe82d924b395dfc233ae2d7ff992286 (5C51pyJq...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x0b925968ee572e0f1c4654a31f78a796207cf7fd870ac4f219be891ae09ff130), free: 216708, reserved: 0, fee_frozen: 0 } } + 003ff6033d70c84c223c6ad85a23e949a8b8969394b637da7ec63f0674911102 (5C52rh2S...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x2f36483e0c2205f19eef0b573289ef3716c87c7def9b57a74a48e63e74077826), free: 606632, reserved: 0, fee_frozen: 0 } } + 00403355c768cd2f14c2802d1185539e369aa13d7cce30d100c2d54f433bdf8a (5C52vpQJ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x09b04460f26722b1f9af7a1449d9188b6d563df7b134137ff468074ecd64f029), free: 32200, reserved: 0, fee_frozen: 0 } } + 0045540f2c10beb071d6aa4171fbfeaec1db9d5d2ac894f8744cef1e60473b3e (5C54TAjA...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x7cd9fd57e0e8d0df86c5a14fb61c94285443237c37aa6ecc353ca41fef55058a), free: 7560, reserved: 0, fee_frozen: 0 } } + 0045d1fe10ef482d0fef67c51934b9fae6d9fb0e61e850b8f892639bdd98460b (5C54beKQ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xf5fbb9e1969ef427f637c9256a2166cd55908073a5e25172a8cc0f11cf0a5421), free: 90496, reserved: 0, fee_frozen: 0 } } + 004678a23cef2a179779851f05b60f7250fd4ac0b9797e348df3af8ee27fe989 (5C54nrpH...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xe71ab43a1fb2621dba773beae345fe9aae5a56c3a9e47094af25c0f014c76c4d), free: 3096, reserved: 0, fee_frozen: 0 } } + 00479a5d797bc77332455e60e1f339eee26d08e42c8a20835baacd4eb40ad03e (5C558Moh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x41d015372ef16b54803e7d2769e2553cc7cc1468d5926ebae0b6ce2b4393e278), free: 304, reserved: 0, fee_frozen: 0 } } + 00492ab849cfef6fee6a9ab4b83e6a985c8693576d67bafa4ad1709ae0d9d4df (5C55bJd6...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x2bf576e38acac17ed1981742a91755f743b35914b370612285e10a5880682b28), free: 317750, reserved: 0, fee_frozen: 0 } } + 004b744e8186be843a17458988a7ffea49fc0ce6f1ac532289491f308d3b4292 (5C56GiWT...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x62448f17425eb33e4f029f4cd3a298f002635e8ff304f0e0bde4bf3b365fed58), free: 1900, reserved: 0, fee_frozen: 0 } } + 004bc52bae363a27a99d00512654099804ff598fdc694753c0642e7eb88c527b (5C56NAAg...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xb492f07a2429950ee007b0a12de0f78b393f722f1852ca43346ab29625174c56), free: 5000, reserved: 0, fee_frozen: 0 } } + 0053fc2aa8b89f7ddb4aa3955a80915ea074948e180005001254957d801b703d (5C58ohPA...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x45e4e01820a14b442fd0ab30cdd9ca126cc754a68367ddb0244ef18899f596db), free: 290658, reserved: 0, fee_frozen: 0 } } + 00550aec08fd423b50269412f50d864e499428c37b93bcb20bf270b86b9f18cb (5C597vJG...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x29a97f708a5d28e6ecf3c99425b7dc92c99032e23cc3192c2e5b32f523b8649b), free: 646353, reserved: 0, fee_frozen: 0 } } + 0055b7c6688784f57856d9645a53313532c3ace6fab5874fe4f97bc4cc27f62d (5C59KZ3X...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x6a7f3f12883cab1b0d5aa44e73d4dae26368713fa9f572866aff481a54fd65dd), free: 24507, reserved: 0, fee_frozen: 0 } } + 0056b1bdee99f5009d75958a5697e273bcc606072598962f1975ded124ba47be (5C59cNow...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x4edcd66fec9eeaec3257c933aaad5d8467ac187aac88ff1e6733bc4ba45b8f43), free: 40100, reserved: 0, fee_frozen: 0 } } + 00588fce7f5be5c1b2579227829c5a8ef87ea1bd977441c309e497d31b5ac23d (5C5AAYyU...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x6c9401f3b7978924d357b8a7baf3cd9ee02cb3bacd51fcde0e60670ac2c5cc7c), free: 55273, reserved: 0, fee_frozen: 0 } } + 005948801ee688d0efe0f4b67f60436a5376ad3cbbc1b8cd75ae956ba402971b (5C5ANywa...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x9530e2602952132c1b45f92ef14edd749672ddcfa984337c1987a712525ec1cb), free: 787908, reserved: 0, fee_frozen: 0 } } + 005d47a1862b03ba1578993c98ccac38695e3e0bb23eb3e3a50bbf32a5449969 (5C5BZqpC...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xcf4ebf71c7e36f3e79fe379d57046ddd27ae3f3f46bc6742b94ccb0bd0b79241), free: 560368, reserved: 0, fee_frozen: 0 } } + 005f404b148e0cfdfc4d0b4ae9c9f4b71ab2495daf9315308f8dac1c72a65cbf (5C5C9ood...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x0b5249a91fb4775ac07b7fc52aaec00a9e91f7cc151d3575657c561c83082b92), free: 265106, reserved: 0, fee_frozen: 0 } } + 0065f37108b49d33a20d8e9cca11056cf8fb44b29f7afc8abe59643abbe5c276 (5C5E9F2Q...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x82c4b07c1d7632967a7fb760a9f098107f4e5578089a784dbf4a9e98cd1f57f6), free: 100000, reserved: 0, fee_frozen: 0 } } + 006b9b1207fa477275711eba145fe35ac5e6cea6825a86e572d587faeba36b19 (5C5Fpfxj...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x9a26b02e0900d90785190981cee6d359f813a5ed7f9585c580a9097110a4b643), free: 699, reserved: 0, fee_frozen: 0 } } + 006d0c46e0d16d89b0b3adfe56be53de7e83f97ada28efc4a5aa473201af13af (5C5GFXBu...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x6e8aea4e2e8351912e02a7f292569e923271b2b2a0e26538e607c56ad837d98a), free: 2000, reserved: 0, fee_frozen: 0 } } + 006e65a5a42f28987586c4add828e688cc9653e3f6c0b71b2ccd90a575ca6268 (5C5GemNN...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x01a8e4aad418fb6a8543b2ce8c561aa9b5c6e2fcd245e218e7c7edacf5b02f9a), free: 602440, reserved: 0, fee_frozen: 0 } } + 0071211cc347ff7fce69361678f4a0fcb97ebca6203ea7e5cd19b371af9032d2 (5C5HTqnh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x50aecaea9c9bd3dc1280e85de6e92fe15f1719e5be3b3759257e98c92e534666), free: 900, reserved: 0, fee_frozen: 0 } } + 00732307d2b0de8a9324d9a2d01ac66218d2c25722d7852f63d6682a6997d415 (5C5J4Ruk...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x5a77eebd644bf636bdd18bfa0ef2ec73242b636468954a4129c0905d81b655e0), free: 500, reserved: 0, fee_frozen: 0 } } + 007502aade869ca4a1772a38bea90e6b1806869fe8911c2d2774a6ccb7b9e76e (5C5JciDE...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x590313fdbbf216f08d9a76dc745f3ec7b890c2b36562ecc02d0e55e77b8207e2), free: 2022, reserved: 0, fee_frozen: 0 } } + 007675577877305e21190da0dadc337e1b505bf728b03cd649dc09c1fd6755ea (5C5K3fAj...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xd38422ac50f85cec9f98e375e1bc969be02be63cfcb9e2a3fe246525ddc2c6f1), free: 1000, reserved: 0, fee_frozen: 0 } } + 0078c3adbc91d19a8d89e134ca62ae8231ca6ea5205c298bb13a8b04477429b8 (5C5KjPbZ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1fb27a6e51a96549d19a5bad47a24b9d2a77c50ce053b4bc5d74dacf36db08f3), free: 1042, reserved: 0, fee_frozen: 0 } } + 0078cc4e1ca6a5f976b7d6292d67eb5a53b71c99f716cdc0ca457ec5dfed1f11 (5C5KjyGf...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xcaed8dd1b9adbc1c7718d7a3a898a52929ab8e3e52f81c0a5802898ac0e34f71), free: 326748, reserved: 0, fee_frozen: 0 } } + 007dae21e17f07be4db13d680d006a37297590b5a7b1c2a5c1e8b570f36a5804 (5C5MC65A...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xccd2b0f14fbc20a13e66ce47cca125a712fb94e5690602561b2ab6677a67e255), free: 50440, reserved: 0, fee_frozen: 0 } } + 0081cf71e4728cd0d3011dda05f506d922b445715488cba1dc69927f66f3511a (5C5NRFNs...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x6ba70691216981d0d22b4fe35a529cfc0b621ebb0089eade896c3b9d37fdae4c), free: 12500, reserved: 0, fee_frozen: 0 } } + 0084de309941477296635552f2708b53791efe19f2119abafa14a5b80c32c559 (5C5PKvtM...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x91882ebab4c5a1337b836324f0dc72297dd3c97eaa2e96a56fb348b26525f12d), free: 10000, reserved: 0, fee_frozen: 0 } } + 008c1057579e80100e4368973caa3076e2d12a9b8690bb0783f5f83ffbf92986 (5C5RTusb...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x8f9251364873decb0e5289534603b9286ccdb6b91b083eecfb54d4afdaa73c1c), free: 548916, reserved: 0, fee_frozen: 0 } } + 008e057619a1784b69c68caecd77a84d80a0893d583ecbad58c165f127902be2 (5C5S3e33...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xf60df2454467aa3b91217249b143343ee3f01280a2e6467ccc67d7197470fad2), free: 290374, reserved: 0, fee_frozen: 0 } } + 008fb1edea30f135ba83939733d036e0ea8c7fbdaec6885704d965f8232c8334 (5C5SYUbW...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x3c6a892db5ffe516faa15e337f84007396c0a2e83f72daf788fb04f7f76d7653), free: 10000, reserved: 0, fee_frozen: 0 } } + 008fec8835e9e438415477d98a282cd92e00ec4e221fd1ead7940b1c5b6fd788 (5C5ScRMc...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xb33444853a6259d9c8c63a25847e299b20500757f12674db77edc72c83f34b19), free: 1000, reserved: 0, fee_frozen: 0 } } + 0094613d9d835168b8d73b0fe3b7380c84d61fe2e8157e392ce6ee985d5609a1 (5C5TwCCp...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x052721cb3bf0f0c4f0f6f7a0fabbbf6b7565d061364e00a66c51ae681839ab60), free: 3000, reserved: 0, fee_frozen: 0 } } + 0099ddd1e066fc0a320a30b3c5024a66cc8f45a59eb652e2abf192f99cd90224 (5C5VZj6M...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1c3cd37275576a79637832953dc354005227a08a775d0614f6c29490e1569298), free: 14200, reserved: 0, fee_frozen: 0 } } + 009a3bc65d9d4a299b3e22fa87695e70f3d9b304837acb4c3b2b89f8f194d6ae (5C5Vg3rV...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xab0b609bb20d1d996279ef4fbd759533dc90afcfdf8430c4f5e0f81173ad05a2), free: 700, reserved: 0, fee_frozen: 0 } } + 009adb4faa29592b6c44f4d2c2f2beda911bc0d2ca8b0993972b4bb643f2177f (5C5Vrnck...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x62bedd6ebcaa656ecf6575ad5b96032b7d53ed5f7540420c54acb9d47dda8db3), free: 10800, reserved: 0, fee_frozen: 0 } } + 009c4342e4c8f55d9a7ce8411bf56b1631017a60995c56fcdbf7d15465b0b6b4 (5C5WH1iE...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x7b608df4e6f975587ff3d314215cc93bafeb8a92e798227a1a904990799462ad), free: 3800, reserved: 0, fee_frozen: 0 } } + 009cc8a657970243cc24237300bf32c129e3eff21632687d76bb183329e9d8db (5C5WRzQQ...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xebd848dd12d67b86d6cea04e972898fd03bba1458b379ef0ae36034b11d876db), free: 20460, reserved: 0, fee_frozen: 0 } } + 009fdff2cc0b1d465d09038d79b693f06d1451267ec9ab4f8d4cdcd5038ba3cc (5C5XMFJW...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xd6a707129bcd699493f7ac5241a2dd09d68fc20abd97c56d94fe4a227d113cde), free: 94890, reserved: 0, fee_frozen: 0 } } + 00a4504ebeea8d4c67adb7a3a8624448a9f081748dabea1323bf22a91904b6ca (5C5YfjAy...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x86b5507910d8f743af2a84ed1b10b164ec1143acdc7242bac8a218ff5d2bf1cf), free: 700, reserved: 0, fee_frozen: 0 } } + 00a4504ebeea8d4c67adb7a3a8624448a9f081748dabea1324aca1682f3900ca (5C5YfjAy...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1a23cc94efccdf96712b4aa75007e06170202544a46d79625910ba2160b604ed), free: 320292, reserved: 0, fee_frozen: 0 } } + 00a5d2aefab3705eeae7307d5390396ce01919bb5cd7735aa7a5635d6041233b (5C5Z7jRT...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x983d0484eb2691db5ca34f63bf70482c6cc4d7c2be323f4fa87f2f37f909a24b), free: 292750, reserved: 0, fee_frozen: 0 } } + 00a77d5e750ba0707133e0c166d1ee670afe93e9a281abd2a6d1c543950e71ef (5C5ZcT2L...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x9ab107143a5807bcb94a0a6bfba266271b40e406d31d6d4921758d5991f639ef), free: 50000, reserved: 0, fee_frozen: 0 } } + 00aaa9ad878b5a68600436585447c4c6a8a9339bfab80b41c05f90f31e6dfe7d (5C5aZ7wK...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xcd8bed904a023ebea9974cec70c71af64bc4b446356d2877ef0d63874220681c), free: 7413, reserved: 0, fee_frozen: 0 } } + 00ae9bd647a5778c84e95c70ce818937b4cd8688ee813f501418684e93d53e22 (5C5bj7B8...) = AccountInfo { nonce: 2, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x747f1f0c29c3162c1364008c37d4fafbc9c29daebc2694d19d6e412a8225e72c), free: 589535, reserved: 0, fee_frozen: 0 } } + 00af01ea33621d486426b4a1da51f66747a64fd6206fb370592bb4162d1953d3 (5C5bqyeL...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x483c48aa7dbfc52dcbb3b4c0225be6cf76768fbae76770fecfc6b5cad9725e79), free: 1285924, reserved: 0, fee_frozen: 0 } } + 00b0ac3c363281bb9bd4705fdde136754ccb22a354ede047af89f8bb73ce8530 (5C5cLfpY...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x505ddbf3e93494490e7799377cb6e8cff4d12de0816b6874c91ec10501ff21c9), free: 153080, reserved: 0, fee_frozen: 0 } } + 00b1ddcfbf8c85a31d02fa767b73691e9d9301f7e5f12078352b98dbc4559bd6 (5C5chEfN...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xd6a976e5c0b18786a80be41b5cf0b28a7f777479666b2dcbf39f7359a1664585), free: 10000, reserved: 0, fee_frozen: 0 } } + 00b257dc15c634f17d5a070f5d03eb79e769db5bb3afc9bb11ef1a9301e0d0d1 (5C5cqT62...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xa43564128d104f49f379c6dca181ebd51b9c983e651547c148ba2ea1a2f78f51), free: 700, reserved: 0, fee_frozen: 0 } } + 00b27c4cbff89044a9bf57a515009ab74bd47fa57a96268fb7ea63d2d23f48c1 (5C5csuLL...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xc2c433b54f0a62dc678404c3ccade856b2e3acb6389e3562f91e3bb6034c1807), free: 20000, reserved: 0, fee_frozen: 0 } } + 00bba07b30d4c5c2ec19ae311751af754e6ea366e10c66a3f300aa1d4fef2bf0 (5C5fbQRR...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x5577c58e47ebe91a68931bfb8328df9aa522203ba40f383652222ba7f2dbeac1), free: 20000, reserved: 0, fee_frozen: 0 } } + 00bc21ffd81ef5d88dcc1d954f2cab59fc4f90924c3cee1bd6a59301b96cdf69 (5C5fk81L...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0xc63d3b5a7653d0d29b2e35bc4776457a3f2913a4f3633070f8bb02e0cf43f4a7), free: 86010, reserved: 0, fee_frozen: 0 } } + 00bcaae1d3427e865c48163b7dd5e10e7fecc74f3e614ddc94b72b927461995c (5C5fuLLe...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x7a68cccb93e7eb0fb4d79aea09c79e9a0f82c764fb584c8510271f7559a85b75), free: 1000, reserved: 0, fee_frozen: 0 } } + 00bd345e44b6566b46b71536cb63d57da7d67b8103c4f96ada2f2325fd88c2ee (5C5g4b2Z...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x289a0803d2becf66c967dd0af12908b2ce1f63e70e32dab0d239e899ad80b7bd), free: 29518, reserved: 0, fee_frozen: 0 } } + 00c17078d43bd20604e8bed00bd2c6b67cd33ebdfb7cc3e87373e1abaac063d7 (5C5hKYuz...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xac8136205a8532782c1fcb04be285d6f8b49c9c6919299720f056fcfcf6d8f4b), free: 1257925, reserved: 0, fee_frozen: 0 } } + 00c28a3d070e7e8acf4cf3e6eb8e404e4aa28f6d0bb6d5a16e698ffe80282f88 (5C5heWp5...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x7db201f38b8c3563546a404f208d3455d46652b08175bff42b9a158724b38480), free: 1000, reserved: 0, fee_frozen: 0 } } + 00c3e3cdbae035671579cd158fd1acaa190259b9ead09d7c7231ec7b341b2ce5 (5C5i3mkh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x62e721de534864a0d247a7bae22c0fb182838aa9fa9be25a32c42df72031504d), free: 1996, reserved: 0, fee_frozen: 0 } } + 00c6218655147fe20c472227586b952896464e8706d4d8151a9f1ced15a93755 (5C5iiPKa...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xd2b75c97d564393253d680de95323cedbc50c3854551a8aa5603df795a823bec), free: 4300, reserved: 0, fee_frozen: 0 } } + 00c6686f0a63fb3047e7b251696558b02e23153f9a45e6e09ee23263e8cf6e44 (5C5ioA7v...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xbadd52349f56b13373a06d6d1cfaaf6c853fd6425a20e2e3f62fe591b8b59fbc), free: 700, reserved: 0, fee_frozen: 0 } } + 00c941a16c04431fb33c6e8e8d01731ad58d763db711cde74fde54c16c0503bb (5C5jeEbh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x1a0b5def5f72e33a7c3f8af4a598070aa32dc663beac665f7bdb969612e1aeb0), free: 15000, reserved: 0, fee_frozen: 0 } } + 00c9e5e39d62ef0c12f645fc53c68c8b546f38e5fde67017db442abb9d3f3d17 (5C5jqHo6...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x5baf14d77b169beb76447077380dd4a4e368069d3bd5d6d7bf2efda66db170ce), free: 1000, reserved: 0, fee_frozen: 0 } } + 00cc1c99673a2c8b27921d6041dc560384e63006747709c21a31cb2c3cea8713 (5C5kVRzd...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x57fbac30ba2c880408355f276c9a25885567311c4e87be7f2951996f5952e363), free: 992177, reserved: 0, fee_frozen: 0 } } + 00cc3dd6ee59e371aa833037d90ffe17b7e3a04631ba2a0f57753958053fd176 (5C5kXfkV...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x939b7cd1a252de9c5cd49761dc1e6c19e5765baade73975ba5f71b3a60562fb9), free: 142041, reserved: 0, fee_frozen: 0 } } + 00d5d5f2d4ea7f69c1e12d9074879e027109a6329a6fe7735386fee6c6122e96 (5C5oNyNU...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xa1ba5b231a564630f63469f74921d308901dbec33096cdb78ef44f45066e53b1), free: 30688, reserved: 0, fee_frozen: 0 } } + 00d728d450cd3c10a73c4c308240db9256f9c9b3d401e5ffa2f6ada0813a26b8 (5C5omnDh...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xce39b2e87c308b3912fff539f75fce0836d8af393abca6b30a98d2659c0f565e), free: 18500, reserved: 0, fee_frozen: 0 } } + 00d8b947fb506cff12254d07e29741569c1492d9814a4baf368dbfb276cb0e9c (5C5pEjR5...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x9bec804c4cb042cc1e210df61d5a1dfcf1ce8eff4aa0e736aa105252f8c16074), free: 28000, reserved: 0, fee_frozen: 0 } } + 00d92fef0af60df9fb493eb3c71ba5ad1f5873a13159fdb6927a14adac82cbff (5C5pNiaw...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x600ed6fa054416cb5ccdfe17fd43a9950b6c4abd6d34f4640e9b9aae9cd8238e), free: 10000, reserved: 0, fee_frozen: 0 } } + 00def3a76a07e02c95bde344370ed74c97a35f7afaacde6d0928ef709e9db1c6 (5C5r63BM...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xffa28c5b64b04e09b5adb4ea6a5e285b59abb54f094f1801c3662bd6e23a8429), free: 10000, reserved: 0, fee_frozen: 0 } } + 00df82f7941fbb2bf93321760201f108fb9b01505dc1d657d3fade7558c78b65 (5C5rFgcY...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x5b48254d65e70be4948e7b3b6a7af4601d963f17836652e59e907972c7368643), free: 17379, reserved: 0, fee_frozen: 0 } } + 00ea86fbead225315995eff7b9aff8b6f748f51b31e56a313cf986c23ced514a (5C5uXUn6...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x9c6e4ec1ae2cb6c91074fa3d880e308013d104ab541483d6241bd989b52fc3e6), free: 336582, reserved: 0, fee_frozen: 0 } } + 00ec6e2bfd40f7271668c666340d93c9ceaf59fc72d4618cabce67d45bb0cff2 (5C5v6GZ9...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x3d069440f95eeb180ca15d775d0cd3f1cd8c93bed7748b200eaefb3de045b643), free: 5000, reserved: 0, fee_frozen: 0 } } + 00ef1bbab5ad0cd127b8cfd4a06e1c0104136d203623649c8421faacc1f6c7d8 (5C5vtQge...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xc44c59fc4d6894a7df64e70f9bc7e14c98794c922a976f2e4d1f8ae8a0ebfa8c), free: 700, reserved: 0, fee_frozen: 0 } } + 00f019526a9e03caddfc1844caf0281fae46239ad275f4ba752401e51f6415b2 (5C5wBUby...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x147e70452cc4732eda1603b6e8078dc8451d03c4d424cc4c4feeca0770101aac), free: 1000, reserved: 0, fee_frozen: 0 } } + 00f0ed3f01d64878f3bccc58274c9c9df6944a12003db5329d733ef5f8579ae0 (5C5wRjsE...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0xb7b0fe5f89862fc51028c06660a8662506428aeb9da7137b54adc5eb832f521e), free: 450, reserved: 0, fee_frozen: 0 } } + 00f1f0cdc733064ec64fb6da4d144ede74b8154f99559ab0b0cef7c7df06a0dc (5C5wjD56...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 1, data: AccountData { random_id: Some(0x844df39e880ecdeeb87d339b5524953742982874b821ffbc0aa32b7a5a648dae), free: 847065, reserved: 0, fee_frozen: 0 } } + 00f35c4bf52e2fbf1c38c9ec624cbeacd55592509da97c6eeea6f34b76253ff8 (5C5x9fzg...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x8f2f9ca4c55b35f3087d39f683cdcba2eb2e5ee69187c8d8e5e72e8b2433af11), free: 614, reserved: 0, fee_frozen: 0 } } + 00f4900f792bcc2b61775da43837a7ddc73a82842e373214d619f7230248348d (5C5xWPNm...) = AccountInfo { nonce: 0, consumers: 0, providers: 1, sufficients: 0, data: AccountData { random_id: Some(0x3d38ba3212a2593e5ca052c1d4f44ba0e3b0cb7ce2f466de699cd4c665aae84d), free: 5100, reserved: 0, fee_frozen: 0 } } + ... +25941 more +] +System.AllExtrinsicsLen = None +System.BlockHash = [ + 0 = 0xf9bb23a15c8323959bab5128c352356811dd1b8ef79c1aefff58642529260dfc + 1243127 = 0x88dc4dc1db9fbe9f1ca54b7b2f14c33af95312146078cd1e595b6b82c52e9fac + 1243128 = 0x19a07277426a9786ea610af34583af8b05a94b59ecdd817cd945ff4e501eb962 + 1243129 = 0xae7fdfbd4e5b41cd711ebc543994d0d38c4e3243d1c855690aca9c095dce8626 + 1243130 = 0x62be0e2782b1a5c7e5c2af1b32672df93bd9990f2847d39792b32c0812635705 + 1243131 = 0x590b621d6453c1216dd8a31847522b9c7624f2eb8cdff243209d94a94de065ce + 1243132 = 0x17e5e9d3da4459658e762e3823899d87c7e476933647856d9b430345f51e3da4 + 1243133 = 0x0537ec08fd42282c29c856cdbdfd45665ffce23d64edd1fbff34204abd9207b8 + 1243134 = 0xa154b6c0356a176330093c31453784dc10403523f44c6e7bfceb91d6b9ad6008 + 1243135 = 0xccd73ae16506b55bd7efc3cef083ae89f8639134c63b14e703985e69e856c61f + 1243136 = 0x166441f139fea63c36e3ce0dea02dfb50ca78a11af39a525d15c9dbc02690312 + 1243137 = 0x612e9dbac6fce60f43ef908b70a97c2ed51a82b3959e8ba4466b9863d9b9fa3f + 1243138 = 0x3d13200bd01a075b88c57a318fb62877e413790869ff26cb2a19571429770d70 + 1243139 = 0x4bbc0aff1f4cb6f8f3a80951d1cf68632f7f06ebcf67dbca29ba0e63ec5e5205 + 1243140 = 0xbbedce41515b2b4cf3d488b255c53f395c985a97173a1dfbe64559942fe9ec25 + 1243141 = 0x95e14d17214832fb8c6c8d4d2b2e803f1f446a166acec154b4390ae67e72669b + 1243142 = 0x8e7e710c5686cfa9db0b5430d413a7c93feac6368232a57ff8a954b090a2ccd5 + 1243143 = 0x9b07faabb8ea0df60e2a5e122913a4e093ce7f392a7649956838fa062b4759a2 + 1243144 = 0xfb119e6ffc51d5d30eab9ac6ecf285d7cfa041c3974de71043d72c914e4cf37c + 1243145 = 0x8bb6c8351647f4ece85960c9cdb578d269d31ce2b6490dbd8ea93f6f199fd524 + 1243146 = 0x3784c5593418dc54baa1152334e4dca702f4d4ec5f875b16d4e702510539fe2b + 1243147 = 0xeaa60dc16caa795b5adfed1552eb29775ca1664e4ece8df498dea2aa3e982039 + 1243148 = 0x1236c12c3c03a2a380ed7eef5cc5eada68d1e0db2e0cc2df96b896eb98188eaa + 1243149 = 0xfedd5ccdc73d88177a7c1464d6cd0a46c0dcadf3b0fd961ab10e1aff42a08cb3 + 1243150 = 0xfeb566dc9b186443a5b0092d1c9c2a4031b541291cfaaf32ba86a587a68bef01 + 1243151 = 0x3d1fb6f4c8f432e0589e599b7585bd8af8ab7a0c5d764c9a8bffb4b8c247d5cb + 1243152 = 0x6a8d5433cb868ac13538c502264b560e31fab847f1aa5764d52088883571b1ca + 1243153 = 0xca1ba78a675bdf4444fccc11f24c0cc897ca7635fbcbc9a2c9e9071a32930c9e + 1243154 = 0x0a261575a538118b0bc3da2f523c5f4595fa141539754203e42a7220e30ec8a8 + 1243155 = 0x601bde224caee1c4dd246b02d9594e23ce808dd41cce5b7f2d2c7b6a659b36b6 + 1243156 = 0xadc542bf5617dcf7a9eac046167a51db8c50a567e557eb5364874c33e3079b33 + 1243157 = 0xdbab1a24988fb0318258d6ce40a14ca2d293197d867a6801c3463dd72d36ba2d + 1243158 = 0x1bbd34c9362e4d73c47d079ac305eb810b1be10f0a566d2b5eda3c71d08025ab + 1243159 = 0x02e05e0d975754aa62656bdc519e8c5f1628f9a4e6b4bee8d26f3fdaacffe6e4 + 1243160 = 0x844e400d4be33ca3fded94e4b10b818c21d9e76f730081f3d698c10b995fab10 + 1243161 = 0x722f0b03a119dcc08cb12ef253157414fe8aed72f0355eb9cb522c0b9bae54f4 + 1243162 = 0xcba82af880ddb1129d654a2485b1dc857d6aceb1f04e77e69f18398e64af2a7d + 1243163 = 0xa6b37a26615db99c28a52394b53480f45f8b6cefa2f767ef6bfa13b3b3c67ba9 + 1243164 = 0x97202a09efb1cc6cfa6eb3774e34ba36c8d15589b6de66f32148a47cd80c0ecf + 1243165 = 0xd466e6f6aa550fbc3e14eea421fc4b5d3bcefd4d30e1ed14946be897baab7feb + 1243166 = 0xb4a3ad9469aaf0e673aee9108f0d663653631a2781d1685ca95a65ef53359cc4 + 1243167 = 0x9a4cdb430bf175d787458e28d8eedeb4d6e4e12225c25f0b4a755604221e7e3c + 1243168 = 0xf51f4784b2fd83441f1a0e3ee0ad358bacb8bb824731c94d5b65893beeb96bfa + 1243169 = 0x0fd07c44e9ff97f050b76eda01b34b2086d64698f440e6fce033e1fa3e398b83 + 1243170 = 0x0b424aebbb6d10c3d76625df7a66f0be99b16ee385ab41f9d09d798ef6445d69 + 1243171 = 0x026387caa26b04d4a9b5c18f3958c5e54753c45fa37a9aa206723edb54090c2c + 1243172 = 0xa9fe44e2b4fc8843938805d50faf0df6a72d00f045e739b1e4b82280174a2434 + 1243173 = 0x230e880538c5715d23825f4af621064061649b18f8fa981c1eea298858f22f19 + 1243174 = 0xd0860e6fda1cd8e3e17a8d18f24598ad48e701e61eb9b305f90a8a41b3a4e0a3 + 1243175 = 0x42c8dc1c94ab29c365ead69f5aff7775d9c8a5196721eed974b2cef532905b21 + 1243176 = 0xeb56faf3b063f22cdcb4bb357d7d0ad344d751d9247d5da005857fbb632c2a84 + 1243177 = 0x7752a69ebb33c98dbea2193b057a67b8d55b45e341779f6e260cc9e272bedad0 + 1243178 = 0x64ea8f7faf970f4fc34183b3deed903eb1ad9dc9569d9974cc0d705061bd698d + 1243179 = 0xfe4b35743e8aef6b0215345c4c68162656ea5e0901a14abdf72e2fca472f9560 + 1243180 = 0x0a7eb54f5aca17d94bd01197cf9de2a0250ae99f289b76eb701c30f126bca8d3 + 1243181 = 0x4664fe316da79a196821df6dd5ea1021d5cc9c9aafef69bf4ff785ec23b8fc09 + 1243182 = 0xcc1db493b697b87cd249250f2aed14edb1130950fd2abc01ba242797ec9f75c9 + 1243183 = 0x42b00030ca0e1c15b3612cb6cc279a30c53785902a24d6b64a00ecaefabaa318 + 1243184 = 0xca78922372463eb99e73b152ad16df8cabc4f98b19e52a9b2f001f30e76df207 + 1243185 = 0xebcb023a34314552af5aac90a4bb7560fa5c08396e8b4e69c69299b6687c96a5 + 1243186 = 0x9fecdbb8f22a623acb5840180d6b8159c950c887074debd1c0c606396f2b7b6c + 1243187 = 0x1443b26f8e4df452eca20a1fcb307dea0eeeecafd9711f7123d4f66ca3ca2a2a + 1243188 = 0xc060cb850853e5e65320aba154deb4305bde9e29ba9f196db3695fd3a5033a25 + 1243189 = 0x45055f0ac746ad4c565a0e08a6421bc1da301d95074f6e1a8e393fa11f28d1c9 + 1243190 = 0x2411509284a492db650e1fe36b2be3fe67b678ffd7cd77cc57c8119342e6319c + 1243191 = 0xf23d2a367e627f64df79a7e175ed402d615d072f682efd11bf947d16457bb255 + 1243192 = 0xfb2bffc9c5d5e9342c0bca9be36901a8c647103f89dfbb8d8b057670e711b72a + 1243193 = 0x5d1c844a5a9a1d152e0e3f5f8e515bacca65b7feea1b9896f543af5f907f8219 + 1243194 = 0x24d99238549b359806f12b000b67b5a2008f187c87abd4876383a441cf2d91f6 + 1243195 = 0xe1ac53b15bb29a14e18602de7fbbe10ca291dec04c079aeaed41b0304cdb340b + 1243196 = 0x4a32a02aa9e69aef4dd84011330a3812fcca73b71f412d27b4b02bc237e12dbb + 1243197 = 0x5d130d53e7a7177611f03c1b2c75f1f10e975714f04081da596e29321bff8f63 + 1243198 = 0x55436104e580256ead950cefb818243aee9940224704ca4be6328b1f0dfecf2f + 1243199 = 0x068ac6febf6da9ab69a190857762bde545551f62cc7d1476cf06968097f59ace + 1243200 = 0x767bd18a5eabbef0d7be6b0c78db93e42d37f2c4da965e637fc5ef57993fa102 + 1243201 = 0x5b8c106c42c379fd8b178f5aea7b06125e7e7e6d7aab368bd8fc93038218f24b + 1243202 = 0xc6a5783a67bc892e654fa36b11fbc511c3686deb253113ba9fb8dabcd6545267 + 1243203 = 0xc42be11d33e8889e2e6a0854efbe17e853a3e50afa4e79a36aa1fb9266ca9936 + 1243204 = 0x109955f75eafe6e5534e6c10ef22ea97d23c6fa3b4bde7b8269c3474ae438eb5 + 1243205 = 0xa789498b502844f0fd8128c00cb402f8d826da3a83bcfc693b08f5a7d543a12b + 1243206 = 0x52346a3b4d834fccdc50974fd8762162f42bb7338138fe0cdf1243a04ec63752 + 1243207 = 0x654dee8e24f6cc8c08c364025f87c2b11ca42d77d2fc69e54200b0ec898db973 + 1243208 = 0xb2dc170d032dabdc79ca236870a6e75f20f8174f31bde656045d314a443dcb0e + 1243209 = 0x9383751e459308b82046eb5a4cd2134666af21e99c71b5aa974e5399cab4024d + 1243210 = 0x9fcee3c285ca928a67f327a2ff180b5effebbc2ef2824284da384bedd00030d1 + 1243211 = 0x8dae1968e62cb28fbc5727e8e4c3c496a77cbc2f624651df872ec7ff73c365e0 + 1243212 = 0x9147309cc957d0a8af7b8c2040b7a7c829e4b8d506f50ad0628e18df9e83e256 + 1243213 = 0x63809cbd1b58db705ab07f35ef7ebed084b47d05198d730154da8384eb7167d9 + 1243214 = 0x1a3a2aaa91ecfe20b9d68f4e672026d4762d8408765cd8f43b0c846d2525dfda + 1243215 = 0xb1a94c15c34ad2ce84b07169a233c58da24fdd3eb1a5d55998d3589cf000a6e3 + 1243216 = 0x1ebf69b9bfc5e60637d469558fe5e76612ec60fc7ed0eb45cebcca44ac77c9e3 + 1243217 = 0x984015e08e3a3b918a9c652d2950afff8697c9f84d1b600df024c115dab55b28 + 1243218 = 0x352b0e1f023feba71a21979f0c300e4ad524cf8daaf3a7c7bff8b6889645c07a + 1243219 = 0x6bdab328f98ecbb41b764db16efacb5ee51d6e4aeceedf2d91c7891b1d1f0fb6 + 1243220 = 0x946eb706a88c2fc108981e16ee36e653f643ede90f48d88c21dae198092f0a51 + 1243221 = 0x8bce3e3c72b26337aecb602828a04940cc3f37086d4664982db87cc1e9ff017b + 1243222 = 0xa611a0191c3976d15e569516d1def7f2bca287b394d0cb4ada7883c8bbe44ecb + 1243223 = 0xcc41fd7dfc625a5fce737d5c8994d06778d8e161ad240de73154b1987a7e4620 + 1243224 = 0x12745f9c390b9363b50bff4420f8df795f3cb39001a93cf376fc27351c70213e + ... +2401 more +] +System.BlockWeight = Some(PerDispatchClass { normal: Weight { ref_time: 0, proof_size: 0 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 0, proof_size: 0 } }) +System.Digest = Some(Digest { logs: [DigestItem::PreRuntime([66, 65, 66, 69], [3, 3, 0, 0, 0, 33, 191, 172, 16, 0, 0, 0, 0, 64, 84, 77, 32, 47, 200, 222, 123, 41, 254, 20, 238, 19, 219, 195, 163, 99, 59, 244, 240, 227, 155, 205, 28, 163, 26, 155, 122, 194, 64, 85, 32, 166, 244, 183, 223, 126, 10, 123, 36, 216, 152, 144, 169, 204, 7, 8, 198, 14, 232, 33, 97, 232, 173, 235, 92, 74, 155, 25, 167, 90, 104, 125, 3, 150, 112, 23, 221, 206, 204, 94, 12, 0, 58, 23, 175, 20, 223, 88, 79, 55, 36, 181, 194, 189, 133, 28, 73, 217, 95, 118, 50, 208, 164, 10, 2])] }) +System.EventCount = Some(1) +System.EventTopics = [ +] +System.Events = None +System.ExecutionPhase = None +System.ExtrinsicCount = None +System.ExtrinsicData = [ +] +System.LastRuntimeUpgrade = Some(LastRuntimeUpgradeInfo { spec_version: 400, spec_name: RuntimeString::Owned("gdev") }) +System.Number = Some(1245527) +System.ParentHash = Some(0x133b833cd88e33197efbfb47d679c53e46b20727b3f81237512989e68290c892) +System.UpgradedToTripleRefCount = Some(true) +System.UpgradedToU32RefCount = Some(true) +TechnicalCommittee.Members = [0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), 24a6e5c940c7adf022e3574a1067e776c1649a2fc5504d4e5f4390da7aa76a3d (5CtmAELW...), 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), 0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...)] +TechnicalCommittee.Prime = None +TechnicalCommittee.ProposalCount = 5 +TechnicalCommittee.ProposalOf = [ + 0x59f5afb1393d70541697addd2dd5e76f53c87e544bbb0d5fff17747b8908fef6 = RuntimeCall::UpgradeOrigin(Call::dispatch_as_root { call: RuntimeCall::TechnicalCommittee(Call::set_members { new_members: [0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...), 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...), 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), 4e974ecd0a47d0018ad484b01c5205999c675b1045fa676014f31301d1e8d86f (5DqkYGji...), 66a0889670dc1d6530bc868c2e465fab569049a0cdcb0b74ddc69469a354f16a (5EPGRtBY...), 3a47e7931f04d6207a47b6706247186400963f961772a6199f5a48a7e4021a58 (5DP7ze5c...), 92fb88467cdd56b576e85815361b5637fba4146b1b49c7758f5dc98e57d4b06f (5FPRZxVJ...)], prime: None, old_count: 4 }) }) + 0x5aa30a5ceee32ddf4fc2db22a6f36c93f4fbafe25ce577f5acf7d4df2bf5cdfe = RuntimeCall::UpgradeOrigin(Call::dispatch_as_root { call: RuntimeCall::TechnicalCommittee(Call::set_members { new_members: [0635fb9406a839826dfd81b0f9d9752b337c6de67cbce747146aa347572e265d (5CCrBS67...), 2a573dae62cfd42fd8493e5f862c5e74a65e27edf2ea8efb05d35423ea495b33 (5D2DnScF...), b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...), 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), 0ed0734a282c8d3551694d74e12f6ec9a568770ad351a67303994908b638071b (5CQ8T4qp...), 66a0889670dc1d6530bc868c2e465fab569049a0cdcb0b74ddc69469a354f16a (5EPGRtBY...), 92fb88467cdd56b576e85815361b5637fba4146b1b49c7758f5dc98e57d4b06f (5FPRZxVJ...), 3a47e7931f04d6207a47b6706247186400963f961772a6199f5a48a7e4021a58 (5DP7ze5c...), 4e974ecd0a47d0018ad484b01c5205999c675b1045fa676014f31301d1e8d86f (5DqkYGji...)], prime: None, old_count: 5 }) }) +] +TechnicalCommittee.Proposals = BoundedVec([0x59f5afb1393d70541697addd2dd5e76f53c87e544bbb0d5fff17747b8908fef6, 0x5aa30a5ceee32ddf4fc2db22a6f36c93f4fbafe25ce577f5acf7d4df2bf5cdfe], 20) +TechnicalCommittee.Voting = [ + 0x59f5afb1393d70541697addd2dd5e76f53c87e544bbb0d5fff17747b8908fef6 = Votes { index: 3, threshold: 3, ayes: [], nays: [4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...)], end: 1345614 } + 0x5aa30a5ceee32ddf4fc2db22a6f36c93f4fbafe25ce577f5acf7d4df2bf5cdfe = Votes { index: 4, threshold: 4, ayes: [4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...)], nays: [], end: 1345769 } +] +Timestamp.DidUpdate = None +Timestamp.Now = 1678539462001 +TransactionPayment.NextFeeMultiplier = FixedU128(0.000000000000000000) +TransactionPayment.StorageVersion = None +Treasury.Approvals = BoundedVec([], 100) +Treasury.ProposalCount = 1 +Treasury.Proposals = [ + 0 = Proposal { proposer: 4e1f8a8a639370952db38fef62a763e1b8eea5600b6ccafc60d6849f028ff70f (5Dq8xjvk...), value: 10000, beneficiary: b61ebb32cf827f7145594c3bc2621e83f5ebee0e3aa28a55f3cb10d0927ca658 (5GBVhdJU...), bond: 10000 } +] +UniversalDividend.CurrentUd = 1059 +UniversalDividend.CurrentUdIndex = 87 +UniversalDividend.MonetaryMass = 3583968842 +UniversalDividend.NextReeval = 2592000 +UniversalDividend.PastReevals = BoundedVec([(1, 1059)], 4) -- GitLab