From 765e429270927219c64fffc648690ebacea87fd6 Mon Sep 17 00:00:00 2001 From: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> Date: Mon, 29 Apr 2024 00:19:24 +0000 Subject: [PATCH] Update Artifacts (auto-generated) --- artifacts/demo_chain_specs/polkadot.json | 11 +- artifacts/polkadot_metadata_full.scale | Bin 288423 -> 412597 bytes artifacts/polkadot_metadata_small.scale | Bin 59334 -> 90484 bytes artifacts/polkadot_metadata_tiny.scale | Bin 37597 -> 58477 bytes .../src/full_client/codegen/polkadot.rs | 18290 +++++++++++++--- 5 files changed, 14723 insertions(+), 3578 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 9fb30fb369..59235470b0 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -34,7 +34,8 @@ "/dns/dot14.rotko.net/tcp/35214/wss/p2p/12D3KooWPyEvPEXghnMC67Gff6PuZiSvfx3fmziKiPZcGStZ5xff", "/dns/dot14.rotko.net/tcp/33214/p2p/12D3KooWPyEvPEXghnMC67Gff6PuZiSvfx3fmziKiPZcGStZ5xff", "/dns/ibp-boot-polkadot.luckyfriday.io/tcp/30333/p2p/12D3KooWEjk6QXrZJ26fLpaajisJGHiz6WiQsR8k7mkM9GmWKnRZ", - "/dns/ibp-boot-polkadot.luckyfriday.io/tcp/30334/wss/p2p/12D3KooWEjk6QXrZJ26fLpaajisJGHiz6WiQsR8k7mkM9GmWKnRZ" + "/dns/ibp-boot-polkadot.luckyfriday.io/tcp/30334/wss/p2p/12D3KooWEjk6QXrZJ26fLpaajisJGHiz6WiQsR8k7mkM9GmWKnRZ", + "/dns/boot-polkadot.luckyfriday.io/tcp/443/wss/p2p/12D3KooWAdyiVAaeGdtBt6vn5zVetwA4z4qfm9Fi2QCSykN1wTBJ" ], "chainType": "Live", "forkBlocks": null, @@ -43,10 +44,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x0480df609c40171d0f62924a7d83db3a5c52c2f78dbe0dab0497b8786e659872e8daff340101734e031100000000d35703110000000004877d77dc713f5db844a860efb4ea0372343b3deca76cc7fa0827780217a6c4d33609350101d3570311000000003361031100000000046204e22a5bed51dced77343ac746411fa965babf73ef76b57e185eebd64f32af8d123501013361031100000000936a03110000000000000c6204e22a5bed51dced77343ac746411fa965babf73ef76b57e185eebd64f32af8d123501011f2100000000000033610311000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000e033368bc2edee96d72e43448824a642d53939c6c190693971b05ccd1054464a01000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d0100000000000000aca7a86b6fcf25daa7f0767bfe36b284f3100dc1ee4dcc971fbb3244bb57221c01000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000006869737a2873891c0e4ef80a69e331f64ffc3663c9f3cdf86b440bb41827a252010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000ac8b2b59f77eb5f3725961767878166a3817747018f18cf48c933e284320b90e0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000000219b9856c2d50592c3821d7df9329795c9f6bc1e8d62b76072a4289617e5a060100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc35310010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d0740100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e093601000000000000002803ef26679fce0495aa4066e053c4fa9cda5bfb54e24497fcb1bcef2902cb400100000000000000125becf853d8dc03bc97114ca0c751f6045bd7ef5580e58d32e3b47d7ac5b60301000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca240100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f06787717010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c01000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b010000000000000094af0a39f196a145c9406ace38b2b2b9b9ccec2bf2da2e95d0b0b8507b6f38560100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d24010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a520100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000125f4bb2b8d56e62b303ed525cce2e08f1baf016c3e89f28df7f61a3222ddf4e010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f0100000000000000dab69c099895a293508bafd5bd96a1f5ed7193012d71d546d4792f6452bec619010000000000000004734733edcd9cf662389208fb8ccb5f274a7db8187ccc53dc84250f8599d54d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb190100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c4401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000042bbfd10e95a6a1a57b34cbe01ab26605536797742d6d24394ebe95f87bd925c010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f76010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a252010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000002ea8960211dab2883e7b15dc18336ccf12f096572c66831279c9a5e2492ef51b01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e01000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b7490100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000005c25d331b2e023d12ee512689c3ea95edaadc300c9dc804e98806117f2edf57c01000000000000006205ea8c9da2e39792b9504100d0ce7eec4b9c732297afea3c2a885fe4f5832401000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000dcb8d42bd4e3b7b597542ea3dbbc6ac36058a9b73ca50b23bcc7fe19d08bbc580100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000140fbeeabfb02dede7214a17c2cf78279d076c80d962431f35d1105c87b8d95501000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c491420100000000000000fe9d62e17387326c0e4b75697b2f0fbdff9506992e745d61b4c536c4dc10f57d01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a77480100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe0837215600100000000000000c280e82e46ecabc4d68169e292c59cef96432f25fe849b8a147db5ca0ce7e17b010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f076010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de32010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000e08b1d1e40c5452afab2df7f9ce391eab8fbe0096e9fe744c9b72c414127722f010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e01000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a46301000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007a661c99fd40492b4893407b03822464e7d4853e9ba47fc9e9960c3800d6725f01000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c94450100000000000000386f18b82ffe824f7ee1fda0f511d5112dee1c677bee0069f3d8e3d8be1a321d010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000096ef8b525c38b9a74a3014bd99979230dab2f20221e8c7d1db50c7a61a02e97e0100000000000000769d9f8b45bcbed8fd84b86d2203ee20d199212007387b10216f8fd9441dfa28010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f422360100000000000000b81bd21787e12343691c1fd404bb7f939d53b3c067a82aedcc0b0aca1e8fc17b0100000000000000a8c366514ae829385912b04b0192e934a20045b36cf1911bccc4c064d6d3c461010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000024ad842dcdc5f4d84262c6aee5116e88116fb191dbbd1331453202d3583b1f440100000000000000c2a54db27458236d0902be95fe0e09227a0c07320855f1f1ead7e58bcaf0e3090100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000092fa7c1aa1320b16bf2fd9a0e11a9faf91c02ecaab551ff29bd77958206dca68010000000000000004000000000000000280df609c40171d0f62924a7d83db3a5c52c2f78dbe0dab0497b8786e659872e8daff3401011d21000000000000734e0311000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000e033368bc2edee96d72e43448824a642d53939c6c190693971b05ccd1054464a01000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d0100000000000000aca7a86b6fcf25daa7f0767bfe36b284f3100dc1ee4dcc971fbb3244bb57221c0100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000006869737a2873891c0e4ef80a69e331f64ffc3663c9f3cdf86b440bb41827a252010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e01000000000000004eac292b47117bc6f534374e202ab80c0d3738db05910a29bf263408d547661c010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000ac8b2b59f77eb5f3725961767878166a3817747018f18cf48c933e284320b90e0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc35310010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e093601000000000000002803ef26679fce0495aa4066e053c4fa9cda5bfb54e24497fcb1bcef2902cb400100000000000000125becf853d8dc03bc97114ca0c751f6045bd7ef5580e58d32e3b47d7ac5b60301000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca240100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f06787717010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001c5981afeb58dd37f7ea785c1ac804fa790b9ec8a098b7d80ef2342dbb41d06c0100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c01000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa74010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b010000000000000094af0a39f196a145c9406ace38b2b2b9b9ccec2bf2da2e95d0b0b8507b6f38560100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d24010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a520100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000125f4bb2b8d56e62b303ed525cce2e08f1baf016c3e89f28df7f61a3222ddf4e010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f0100000000000000dab69c099895a293508bafd5bd96a1f5ed7193012d71d546d4792f6452bec619010000000000000004734733edcd9cf662389208fb8ccb5f274a7db8187ccc53dc84250f8599d54d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d01000000000000001a6ae3ba55d3b68146f9b366df0ff4300d8e4cab26dc3892c1207c783caac92f0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb190100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000042bbfd10e95a6a1a57b34cbe01ab26605536797742d6d24394ebe95f87bd925c010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f76010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a2520100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000002ea8960211dab2883e7b15dc18336ccf12f096572c66831279c9a5e2492ef51b01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e01000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a5240100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b7490100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000005c25d331b2e023d12ee512689c3ea95edaadc300c9dc804e98806117f2edf57c01000000000000006205ea8c9da2e39792b9504100d0ce7eec4b9c732297afea3c2a885fe4f5832401000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000dcb8d42bd4e3b7b597542ea3dbbc6ac36058a9b73ca50b23bcc7fe19d08bbc580100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000140fbeeabfb02dede7214a17c2cf78279d076c80d962431f35d1105c87b8d95501000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a77480100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe0837215600100000000000000c280e82e46ecabc4d68169e292c59cef96432f25fe849b8a147db5ca0ce7e17b010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd780100000000000000c2ee94dce21b2c360a47081a4f30a9c9c14a6fa6cb71ca69a44e23116015c033010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000008013bf5a25c703e64dc4ae7e1248c0f2c7abad9e43672d82611d1097401998560100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000c69e90c4bd0bd56246bbc856d4f2f3dbffd2d4e0d7afc92b7a0516e452db30290100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb32942010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000e08b1d1e40c5452afab2df7f9ce391eab8fbe0096e9fe744c9b72c414127722f010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e01000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007a661c99fd40492b4893407b03822464e7d4853e9ba47fc9e9960c3800d6725f01000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c94450100000000000000386f18b82ffe824f7ee1fda0f511d5112dee1c677bee0069f3d8e3d8be1a321d010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000096ef8b525c38b9a74a3014bd99979230dab2f20221e8c7d1db50c7a61a02e97e0100000000000000769d9f8b45bcbed8fd84b86d2203ee20d199212007387b10216f8fd9441dfa280100000000000000f814da51f3b4325f169ab9aa49354dac5666473330b3e0fb19268962eee96706010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000b81bd21787e12343691c1fd404bb7f939d53b3c067a82aedcc0b0aca1e8fc17b0100000000000000a8c366514ae829385912b04b0192e934a20045b36cf1911bccc4c064d6d3c461010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d610100000000000000a61667ea6442054b56111477f57ecf39b6e90480bfadf54c3e6cb5ac3a3e275801000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000024ad842dcdc5f4d84262c6aee5116e88116fb191dbbd1331453202d3583b1f440100000000000000c2a54db27458236d0902be95fe0e09227a0c07320855f1f1ead7e58bcaf0e3090100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000043b942134983bc52d73b298f4623aedf1a6b2081fae9cff0f3852ee83ca9b2e60100000000000000040000000000000002877d77dc713f5db844a860efb4ea0372343b3deca76cc7fa0827780217a6c4d336093501011e21000000000000d3570311000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000e033368bc2edee96d72e43448824a642d53939c6c190693971b05ccd1054464a01000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d0100000000000000aca7a86b6fcf25daa7f0767bfe36b284f3100dc1ee4dcc971fbb3244bb57221c01000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000006869737a2873891c0e4ef80a69e331f64ffc3663c9f3cdf86b440bb41827a252010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000ac8b2b59f77eb5f3725961767878166a3817747018f18cf48c933e284320b90e0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000000219b9856c2d50592c3821d7df9329795c9f6bc1e8d62b76072a4289617e5a060100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc35310010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d0740100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e093601000000000000002803ef26679fce0495aa4066e053c4fa9cda5bfb54e24497fcb1bcef2902cb400100000000000000125becf853d8dc03bc97114ca0c751f6045bd7ef5580e58d32e3b47d7ac5b60301000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca240100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f06787717010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c01000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b010000000000000094af0a39f196a145c9406ace38b2b2b9b9ccec2bf2da2e95d0b0b8507b6f38560100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d24010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a520100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000125f4bb2b8d56e62b303ed525cce2e08f1baf016c3e89f28df7f61a3222ddf4e010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f0100000000000000dab69c099895a293508bafd5bd96a1f5ed7193012d71d546d4792f6452bec619010000000000000004734733edcd9cf662389208fb8ccb5f274a7db8187ccc53dc84250f8599d54d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb190100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c4401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000042bbfd10e95a6a1a57b34cbe01ab26605536797742d6d24394ebe95f87bd925c010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f76010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a252010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000002ea8960211dab2883e7b15dc18336ccf12f096572c66831279c9a5e2492ef51b01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e01000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b7490100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000005c25d331b2e023d12ee512689c3ea95edaadc300c9dc804e98806117f2edf57c01000000000000006205ea8c9da2e39792b9504100d0ce7eec4b9c732297afea3c2a885fe4f5832401000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000dcb8d42bd4e3b7b597542ea3dbbc6ac36058a9b73ca50b23bcc7fe19d08bbc580100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000140fbeeabfb02dede7214a17c2cf78279d076c80d962431f35d1105c87b8d95501000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c491420100000000000000fe9d62e17387326c0e4b75697b2f0fbdff9506992e745d61b4c536c4dc10f57d01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a77480100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe0837215600100000000000000c280e82e46ecabc4d68169e292c59cef96432f25fe849b8a147db5ca0ce7e17b010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f076010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de32010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000e08b1d1e40c5452afab2df7f9ce391eab8fbe0096e9fe744c9b72c414127722f010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e01000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a46301000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007a661c99fd40492b4893407b03822464e7d4853e9ba47fc9e9960c3800d6725f01000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c94450100000000000000386f18b82ffe824f7ee1fda0f511d5112dee1c677bee0069f3d8e3d8be1a321d010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000096ef8b525c38b9a74a3014bd99979230dab2f20221e8c7d1db50c7a61a02e97e0100000000000000769d9f8b45bcbed8fd84b86d2203ee20d199212007387b10216f8fd9441dfa28010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f422360100000000000000b81bd21787e12343691c1fd404bb7f939d53b3c067a82aedcc0b0aca1e8fc17b0100000000000000a8c366514ae829385912b04b0192e934a20045b36cf1911bccc4c064d6d3c461010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000024ad842dcdc5f4d84262c6aee5116e88116fb191dbbd1331453202d3583b1f440100000000000000c2a54db27458236d0902be95fe0e09227a0c07320855f1f1ead7e58bcaf0e3090100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000003519910296cbdb58e14288f16abf93393ffb8c9c91baa60093d1a7764459b6cc0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5057865, - "finalizedBlockHeader": "0x5a979217b503aa78e90ebcae20f6f220a4bc4ed6d776942fb850bcda517989e6a64bd4040e16472342dec8607f270f2d6ce99ceacb891aaddceaa3d7eace37129bca3338e2f6d0766dc5fcfc489eaa7a5d8284183494f34caa74847fed5c4fd8e05cbf290c0642414245b50103c9000000305803110000000098f2bd8c49c25f3a3ef98d184934741cd144aaf6d1ff9dd46479f449786a3d2941fb3a6b91133bd27200e607d83ce69787200ef74cf2708e876705e0657a9408debff3ab5bba7ae0c88832de6beee0f14de74abdf86218035889d763234fd00c04424545468403eb7277261742e27bca09f32dba2deb3ad262a859449d9bea27887340ba819a9205424142450101eaa77bb7093126995fc6905e2a89ee5d68de063bfae58eaaee9044deb42bef2372c3964800c13860b60bccf420d69bdbb6d1ea9cfdc58bfb9ea3ba0881236783", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000004a3fc0fe1020c7f460c7bd23d0b657c03368552b2f0a12d80a1c406fd066e0db01000000000000009b992b5e9b99eb2cd3b2b648d6db81ed722a2feb4938d998b58dcb5d159fadfa0100000000000000a8b2ff688a9b1709f0371b49fe31d4d5a362d3fa11f64fcdc2941df9351edebe01000000000000003255f477781804204f24ddfd080346b0e75c7c5a92b37cec1fbbe79fa93407b001000000000000005a40b78008713bef1a35714bd32e0ec4c8905dd0728aeb4943280efe766936080100000000000000907fc1295e137738f8862d34490ad0746b80926e236e05ef8b958084f1d91a850100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e0100000000000000426b2be4596a759a15028d84e08c5c56440e6cede68d088f47c671cc3387c3e6010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc2010000000000000003e385d1bbcaeed57930ff625035cd65781e3fe9de1d350d783ba261e678c0ac0100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000ed7a7ea18c2d3b3effd9e8d7031592bc99517ca321c1faf7370f7d6d0fdebc47010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000045ee96016a01c74778a6589fb2934ee9d83fd7a9e36509c4ef794d3d4f309bc60100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca6101000000000000000f42866aa6927f1c5916a8a1a5a5cba2d88e1fff957d80df701617d93ee6407801000000000000005cba2c6f569da1edc3778308da406f266aa53140381dbb3f14f22909ba6e30040100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b60100000000000000589fc35b132ef9d7ed9a6787a203e5a3a37f8cd6c775f47ac5e589d55d381a64010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa20100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b250100000000000000c1c1ff5f66fefb5c0849e3b2333411d1f7e9dd4888600e334e7a33623f15fa360100000000000000f23b0362de32f952573d64c1f52ac4b8db0a7e15e7ad49a0c81d8f15b1f2ca8e0100000000000000594f51d31b1ae51a8c8ec48f5ab2428607440dd9c8f690ea377e99444529acb501000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000008aabd4f6d7ecec7a749c83fc7be33f3b4818cca6f93a4927b4964900df9454e50100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d301000000000000003948bfd09bbbc2fe6ac5dfe53146e32df50828eecf7b2b18cdcff8dc385cbd750100000000000000a2a4af2a11ae7ba812fcc32845583d0354a0f2ffb1271a53c9a976a0f47fff440100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000099f574f1c57e766376a6976ceb3f44ea0420be7426d5c55b016a91e34091a0980100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b01000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000007c077f9fbba618995d7df802a578934d36a5c0bec16dfcbaa7bce3879b4c44ce0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e010000000000000027791275ae7d4735aa45e70210663067f7d268aa57126a26044c8f6d8572a7d80100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe9794701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000affb713ecdae328aa4436756f6a3e8add6b274d5ef1cc19d7aa69ab82c80e472010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000008a2b50acd1a4955fc814bf6720c7427902a6ce709f3a2d7c17c55b67f6f1c0630100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000aa674be249403288a8078e209231e764e3679f2f66a1070ea5d9b5b420fc53ab0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f010000000000000033346b5629c0c499b8cce8b797ee9a312d06155fbe898c8a4a09777ecf8ba91c01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a2831010000000000000037483029302a84623f0a8db165fbed905b0a4fc25e7cfb56e975a0e98336a59b010000000000000053b5918f72e73f92f32b578d1b602f0cc554d98bee8c4e131ef0ac7a63399fb401000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b801000000000000004b1289d5bcb7ebef732dc630d99150de770499877ea75f9dd3e693871beacb3a0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b6730100000000000000f14cb581296c3261284a2ed4e5a85dc0280e5618cc8dc1e76d8ab4ab415ecdd30100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000be5a92b1661a385bbb5d42b4c53e5182988a80759eaeb5b76928f5ad726bd4920100000000000000c05f72a55f91f613b2da541ae27eb6053e80f267c906c135a4ebd848ecfb49db0100000000000000ec295fb809e22c332aa36a57afe05f2c093b2d13e52b0971d8265c5514e4e969010000000000000098237d7b68db1bb6e79c5174523a8806a88fe0fe427b40199b984216800517d30100000000000000efb5f1e4c4ba37f8c159d452d897c607a58518b8355a8454620b3e3ccc3271230100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a190010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f4901000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c0100000000000000f916634f9fd7e54374e30ac6b722ad1793c13cb2d5f2ad38769eaca2f79d414b01000000000000007ba967a2dae0d8839cf44710591db994d18e53b25ec6d0f861da0037c4a4366a0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab601000000000000000228d7fc42b304906518cbd91d73a5384c4893de6cbfe1e7346999df642d3d000100000000000000db9e49a8dc2d75fc63151f9dadc11b7d2d435b9625f62747928fbf7f1be8506f010000000000000082e6b6bf1f275c59fbde0dad91393ae690d5e644d11d23898a9ccfdda025920a01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000d761043f405069ac01285f1ff258450aac675f08d906b1ae0a1ce54eabcb36d901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000de74612da9080d47be35bf4ded2094e23c1de14477114ddcd7b76b815456ec0c0100000000000000d3b3d9703a265a51a137b9de348587c645a168981ef3e01c9dc482856751b8ef010000000000000003dd543dddd6ad00137ddf94a218bfa19d2f08b4365d696765dc25deef76598b0100000000000000cfb9f7f1fcf903a51af729ed1647aee928630e148990309f9dc9f3b14b114b7601000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef0100000000000000d14a779884de1b2fbf079b8e47e8c0edb1c29e282996899a4eab5aaf1f4f41130100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b49727292401000000000000004bf6037c3820cb7468601051701164948b7f7cbbe1ac8cad97e809c76170dddf0100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e9701000000000000001edfbf4f258a7c9ee7a6195a728c2a4989338a0f9c3b5c9b799abecc8630562b01000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb401000000000000009cfeed14dd2f96550a0e7edebd9c9a8c8b1d8f7efdd1abca01987654239f3c860100000000000000736925c31654df870fbc29437c9b2a488ac3262e5d80798534ad00c43a61e54701000000000000008404cabeb0674765bb77af690fa838ba28fa2045d602994a89f07680f4851c83010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b8cf76a8082d518016ea5588be57b64e156ed23b0f72248975522c23d15ef16101000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000620c78305072857b43dadced80ebc057dbfc82b58c14c7b63372ef02140867650100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad10100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000009e4dc072780c293ebda8107e014d03b3dea3d3f14bc9d02cb0c9c0776ce63b990100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad510100000000000000b1fb5116f8c92bf1d763969194db84f09eaac810117f40a8f84410dd54d6518f010000000000000081a47767e6abad1d3c805d4eedb10a226dd9efb967d5f78f8ac4cec55027f1ac010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000c924ec7ef0e00e00c269291948df5b8e7c8df7694049dced2aa7775871670e2d01000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad3439701000000000000004c43a374e6b3e6f7d6c5a6b8518ae0d0d232a1c46d63af8fbc800045a14cbe930100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000f54bb82d58c665ce3289b8765c40e60d84f74da663c164c38e16784d5c142b2c0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec30100000000000000dea32ed7afbb5b31cb45b6e5daff40fb33e80042994d8d6527ee262e32fb2131010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a8660100000000000000f595e043c5f1974fe8467f514a656265c4e64896b47c6dedddd35bbdcff2bded010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb09009501000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000098b4b43d718a523ea7af6b507221638443f55e676b5e69f22bbf28b6e2d970740100000000000000be724139e9bdd099b70f7edab7d1acf0d05fa1a4ca212f5e2958d31f4272dcda0100000000000000134cf4720486824c6a27fa7892c8d82e805653ba1d98480267ec284a76b792c20100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f0100000000000000316bafdefb60951da2738d6c9c2ef1866d139b34b5eab6944d6bae754dd3fb110100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000ebb1834a568ea7653bc66f394937a0aa4f2f617118d2161e2c11c0d7d2febb9d0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d41410100000000000000a51a49fa663cbea3b953fee99f911391d75d638349a2681e30759820c6f3c60b010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000007a1291795805dbe300425311ae50ed698450b1912b62e5b5a3264c68bfa970760100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c0100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a6010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf02701000000000000009bbc024bfe4f072b94735afda064dc3c7da2b4bc0c50cfad44722543583a372e010000000000000086dee2a2c1977cb6ff99dde8fc5b0cb10dcac44b50b19b80f8252899b091c84b0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000c7009be830fe78c42f12f0753923131d16300bac230650001636b6a546cf0aa30100000000000000348e8bacc2d40191a6a00e137c745a422ff8fb03148d2ff9cad75efbb7a670140100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000d227434a77cd7b7127c039eb9995aeb025a242c36ca7116372c7c8fe5bc921b50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000000132d9e682cf8d45ce8efd4bef165a26da5d1349ea1fe9f51abd6dc762272020100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000059dadf17dc0f84c1c334e6a815a04bdfcd0988a3f3bcb713c66ae29e17276cc60100000000000000297dc7cf28b3d40a42c5e8faac876bf7227c670e6e031dd0e0537f4fb70e6fbe010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000f8e030baff510f2092279467b1f4b20a75da6d941011355269545f5a2dd66ec80100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b6301000000000000002ef11bc5ce1e7b53f788ba01ba581b9171ef36449719ff3eb20973342a4a82850100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000b79f919442f4ca5ac9195fd09a1239b1a80bd225f8372f1b36a24a8c55de61f201000000000000002832b59000d2027d2bf57fdb40da04bd8aac1498923397517181cc487a92815201000000000000000cd7067f96a2d63fa72065302432f48690485fa5f47c9afab17123e0482785230100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e701000000000000004ab3fb4afcd05ee5df8e2bdc39a0a7ec1008355062b9d493fda9158a29f8bee40100000000000000be223d49fdccd102646c9b0d62130fbc8e7f0324d55a3eabaaffb5ed1616795a010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c010000000000000006cfc80018342011eef81de0346bbc3997cd97f04dcbeccaa30bd4529388976701000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d499301000000000000000f19c3ed807ad5f2b7546f5e6c5e9bb934835d54ed1f4f989540b86a2ca02b550100000000000000e4c1d1377894eee032e1a60dbac6252e23f35bbb43ce51d5f98652cfee58d5bf0100000000000000666bc268601f06ff4b004b1509bf379603d3f4b7ea684f9638060c0ee5d400620100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000095fde7b91441fae9d2a6360d30228392519293be5e78cf3305667595cb15e566010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000eaaf51c4db0ac374aee2c43ce34866dbce4db52f43096392566898f8570d988f01000000000000000f256655890491ea13673e6cc79f06f3b44303badee1b5785fbca168337c9f5e0100000000000000fe76110186e8a72cb09ec93757b5447cc21d543888903f50e95c68dbea91b0630100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd0301000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa347010000000000000078a2957fa87dcd755360693156976dc31d1ca27a869e032fb1a2d46ae06fd8d10100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000ca35d63347f9deafb433ec20ef8c469bf2e21dc5e67c0c048a5a04fa369424ac0100000000000000ef2deb3b9bae4be70f74994a67307177057e2e173061cf30bb25e5f8e620b06c0100000000000000daffd43670286cbddbf38953e6e33ba093f8c719e9fbf0a4aa76ff3ee97df307010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d550100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006d698963e0fa3c04ef2b32f638e0176e053cd021f6a49b55a4a4ebd4d5fbb11701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000031a46e639e57d1a11119b17f76617a35b3606d206fb5c3e87710f464f7a57de5010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e5518010000000000000087070000000000000001e9123501001d1e00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d123501" + "babeEpochChanges": "0x046bfa32648d0051892c9a1516c23f0ff4ad931dfcce747d27a66d85331c820976c47239010133c607110000000093cf07110000000004464063fa972a0eeeaf1bbcde815091b1a8d9fddde40c1de79c874682ded3cf27117c39010193cf071100000000f3d807110000000004920774a076bf9a766a2d06f9570b42dfb760071b5e0ca28cd7d32e8fdd7beaa76885390101f3d807110000000053e207110000000000000c464063fa972a0eeeaf1bbcde815091b1a8d9fddde40c1de79c874682ded3cf27117c390101982100000000000093cf0711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000d4ada46ccffb4194052e361858a483388944310b5304cda8e35b83fbc1c813550100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000004414b26982f378e237eb9094dd7891d7656e4b78ac61d4534ebd1325a9c94504010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c84101000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa74010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000070d533161a0a0298664c57c77871692d2f70c8319239cea6250765fa1bb81c3101000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d2401000000000000002c15f94cb3c23fc41d8fcdb453ffacabdfdd1f5e9f6dea494549d06896ee8d23010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f258443201000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f69945c37cab30652616de730c6c9af87df24d2dc13f1c1154b58ba53fdca27e010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b0670100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000d878a4f7ee2b2bcd16621a1a7e7f05f85c769a45d2a84304d4a8c0237287c50101000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf712010000000000000050cb54b1bf159465d07933eb2bb1f435edd935c308418ffdd6f25d43bac8362b0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000002acc31e6fad7d566b446cde6ae5ac91bf9427bad13825cd3ad65887c6a792b4f0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e01000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f076010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a463010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa6801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000863f3fd3ff7ee030114ade444dca9b74476c206f6f280cad91a3bc91fc1c495b0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000a04daf6df6039139cb1dfba813bd357d7117aedb6baf163814e02fd848d19fcc01000000000000000400000000000000026bfa32648d0051892c9a1516c23f0ff4ad931dfcce747d27a66d85331c820976c472390101972100000000000033c60711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000d4ada46ccffb4194052e361858a483388944310b5304cda8e35b83fbc1c813550100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000004414b26982f378e237eb9094dd7891d7656e4b78ac61d4534ebd1325a9c94504010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c84101000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa74010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000070d533161a0a0298664c57c77871692d2f70c8319239cea6250765fa1bb81c3101000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d2401000000000000002c15f94cb3c23fc41d8fcdb453ffacabdfdd1f5e9f6dea494549d06896ee8d23010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f258443201000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f69945c37cab30652616de730c6c9af87df24d2dc13f1c1154b58ba53fdca27e010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b0670100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000d878a4f7ee2b2bcd16621a1a7e7f05f85c769a45d2a84304d4a8c0237287c50101000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf712010000000000000050cb54b1bf159465d07933eb2bb1f435edd935c308418ffdd6f25d43bac8362b0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000002acc31e6fad7d566b446cde6ae5ac91bf9427bad13825cd3ad65887c6a792b4f0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e01000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f076010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a463010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa6801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000206997febf44c717312b9dd8e0a2601abb9cd8bfcf04ae893aee5788702fb9520100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000008b8ad06c1605ff57f21454f436d66fbfea0a2e1114bba7d3db9e70ba9eb6811f0100000000000000040000000000000002920774a076bf9a766a2d06f9570b42dfb760071b5e0ca28cd7d32e8fdd7beaa768853901019921000000000000f3d80711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000d4ada46ccffb4194052e361858a483388944310b5304cda8e35b83fbc1c813550100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000004414b26982f378e237eb9094dd7891d7656e4b78ac61d4534ebd1325a9c94504010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c84101000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa74010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000070d533161a0a0298664c57c77871692d2f70c8319239cea6250765fa1bb81c3101000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d2401000000000000002c15f94cb3c23fc41d8fcdb453ffacabdfdd1f5e9f6dea494549d06896ee8d23010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f258443201000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f69945c37cab30652616de730c6c9af87df24d2dc13f1c1154b58ba53fdca27e010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b0670100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000d878a4f7ee2b2bcd16621a1a7e7f05f85c769a45d2a84304d4a8c0237287c50101000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf712010000000000000050cb54b1bf159465d07933eb2bb1f435edd935c308418ffdd6f25d43bac8362b0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000002acc31e6fad7d566b446cde6ae5ac91bf9427bad13825cd3ad65887c6a792b4f0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e01000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f076010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a463010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa6801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000863f3fd3ff7ee030114ade444dca9b74476c206f6f280cad91a3bc91fc1c495b0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000eafc020a60f388082bb34b1364c5d151c9f65bcc4e382ae78028be775e74de670100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5130649, + "finalizedBlockHeader": "0xee48eae12a9d0dad29954db6603e4fffb3ac8839d90bbc82b3923639f32db5573a1ce604609dad5d413465dbec526e02bf588de8af5a4ac5e0734dd8a9a60cc7f7fbf1f309ef58f0a3a4530848ad25b72596e3b4d35ebb1bbf22e1c4471e4f21bf3a94dc0c0642414245b50101110000003ed1071100000000c0a49bdcf672bc5e27aa8cbd6ced766cb1643b3c8713eb912fdea81b21710f4fa38c749b1be516524eeb5e74a8b1e380f737b61f0ecd3b4d0b0aaf6460a44105f224f1424fec3a2b03bee5dee2e439dac3052a7584d9dc204f970eceeafcad0c044245454684030a4d05a7c403075bdf5e457c6453dca129ffa738333a4dfd836d8f0ce5587c5605424142450101601dba7f2eadee5dd4faaf3902f812928f227e34706592b8250a1411ea6e0671cb2d9cdd7bf99e49086d6512550270ce61f8d0d89c7d52cf47b499b9e71d2982", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e01000000000000001c28c9994bc2a6434679ebd9e2d29f49d2dc1b0a9989eb144d3ab500875b1d07010000000000000043d6ae90d5cead892771f279b0b07c4bc9d15c618e1138528b0b6cd38043d19e01000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e910e45c162a4e9ae379bfcca70ac2165ce37f72652ef16898e86fd54f85ec110100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b2801000000000000000a99dd033adaa3b1f8d09d59f99d113201b99b9699efde3f2eec4c1170924d570100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000007e459254f10e9af40590058a2f4978939e51da07fb4aa98812fd61ee23b64f620100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000c442b92816b7325602d86354ffdb7dc272c56468f3bb8d6c659e47b31deaa2c40100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca6101000000000000000f42866aa6927f1c5916a8a1a5a5cba2d88e1fff957d80df701617d93ee6407801000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f8101000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000cfdbbf96997bebc3c3315c1a064872d8804beb94bda07854237d05f4d3e2d9ef010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f0100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a010000000000000094040fd277c75d7227bf8d55973060bde3809b3b7d6ec79602f19cdf68e775cc0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000007c077f9fbba618995d7df802a578934d36a5c0bec16dfcbaa7bce3879b4c44ce0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e010000000000000027791275ae7d4735aa45e70210663067f7d268aa57126a26044c8f6d8572a7d80100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe9794701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000affb713ecdae328aa4436756f6a3e8add6b274d5ef1cc19d7aa69ab82c80e472010000000000000091b2f484e97938e7e844fc5b7355772548bb80f6ac9b3335d8a70d4ecd893600010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000000a78114972d0d627bf3e6a0d42be67a6a9b0383b38b19c0a4b8d94680314b7e801000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c010000000000000082cec143b6bf32e79bb90a7d200cec8c40d6120d0d8b2a7a907cabe22dbcb7d001000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000006c47b7d4662afe0d503c675aae89d23b559230ebff17ba9caaf929048eb7f91601000000000000007f6fe3b417c26965a21ccf584140ae4705672bf1a20f5164e1e39af1378cbd0901000000000000007c6dcd08a7dae2fed7a44e3ef208d86e2a4c41694f0154d0e1194fa3644ad96401000000000000002b7b893e884f4d9c99a3a154b78cfa4b461422860537fa77d064dbd0de4e0a8a01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000293ec1101d6cc9df89a04ede0ac8ced7418803cc1d52a36ca8e45cca734388f90100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b6730100000000000000f14cb581296c3261284a2ed4e5a85dc0280e5618cc8dc1e76d8ab4ab415ecdd30100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000487da9661496aad61869534fe7397d6b1aa1786f4d587137005c0e7b4dc4c1cb010000000000000098237d7b68db1bb6e79c5174523a8806a88fe0fe427b40199b984216800517d30100000000000000a717e6564944b5d85787a33a53ccece07dcd37ce2f375b4e356c328858ac475b0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000a81425a86503d911cf060b51310f0bb796f5ce2cb656e524d23f7fac3c9c48000100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003ab5af195d3e54bba57e395b1b69920bbee9a5169aa1ee8ed0ab97422528e949010000000000000016b36c754ae6e651c5c6342f5f9bce5299f4dee1111345883addc0b3e2329f18010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b01000000000000000228d7fc42b304906518cbd91d73a5384c4893de6cbfe1e7346999df642d3d000100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c8801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee249701000000000000000f8968aef3977bd7b4273c3fc7e0173a64c086b957faaf848e62c37cc50a07100100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd010000000000000003dd543dddd6ad00137ddf94a218bfa19d2f08b4365d696765dc25deef76598b0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b497272924010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000ffc2fc861e9ea596352c1c3c7c0486eb5cf53554304547114a07f4b30a38ae980100000000000000ff5d4070a8a7798cd22dbc7a7e2a909b697e738683e701aeff696af26ebff07201000000000000001468c7f6c2eb735d70a1226e3c0c9834e5994e34a57ce30c2633fbdab2a4886d01000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e157010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000001de97cc443740a0e0e0fdf166ef4515c387fec450fc4d4e141cebb41e1b7f8e90100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe6626860100000000000000e09d677a7d9eaa0c82aeaab90dee017ff8b9fdf058c6896d173ab29f4ed24d8001000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf70158600100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000009e4dc072780c293ebda8107e014d03b3dea3d3f14bc9d02cb0c9c0776ce63b990100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab4010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000d28bb3ab66767f313a9510e83fc686e576f0886c03faa6fd2b61eca4e0d5a7d90100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e20100000000000000efe5a28c978573f62f7b5bb6cc06866350d87201c37d342f643bf6713c3349a501000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac96590100000000000000e793c0578be40676ea7aafc611a54c214f6694253ade9652a3f1364823042d6e010000000000000098b4b43d718a523ea7af6b507221638443f55e676b5e69f22bbf28b6e2d970740100000000000000d840962f63c0b4de7f74c9bbeaf38fdd7997de7cffc83109fe31713d03c8e60e01000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a00100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d41410100000000000000a51a49fa663cbea3b953fee99f911391d75d638349a2681e30759820c6f3c60b010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000007a1291795805dbe300425311ae50ed698450b1912b62e5b5a3264c68bfa970760100000000000000c696ade13ebfca6231299b7a3c0aede6830ec7b3533dc1d3ca9f46bf909f71d20100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c0100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a6010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000c7009be830fe78c42f12f0753923131d16300bac230650001636b6a546cf0aa301000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe701000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000d227434a77cd7b7127c039eb9995aeb025a242c36ca7116372c7c8fe5bc921b50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000000132d9e682cf8d45ce8efd4bef165a26da5d1349ea1fe9f51abd6dc762272020100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a02401000000000000001773a9984bd619d4469608aeeb38a98e688474cf0870a45ced8d297ba56275be0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000b79f919442f4ca5ac9195fd09a1239b1a80bd225f8372f1b36a24a8c55de61f20100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f601000000000000000cd7067f96a2d63fa72065302432f48690485fa5f47c9afab17123e048278523010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e70100000000000000be223d49fdccd102646c9b0d62130fbc8e7f0324d55a3eabaaffb5ed1616795a010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d499301000000000000000f19c3ed807ad5f2b7546f5e6c5e9bb934835d54ed1f4f989540b86a2ca02b550100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a5901000000000000002fbe3b1b79ed47d070067479266ad9b30732c4b8f6170c8888a1ad5365053e760100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000095fde7b91441fae9d2a6360d30228392519293be5e78cf3305667595cb15e566010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000eaaf51c4db0ac374aee2c43ce34866dbce4db52f43096392566898f8570d988f0100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd0301000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa347010000000000000078a2957fa87dcd755360693156976dc31d1ca27a869e032fb1a2d46ae06fd8d10100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000a4f4bbd302c06389ee3614c0943af03d52364f172ef05021aa93d12aef53c32901000000000000006141751a8e08858eaa5e3f0b3472244f90d23eb3094dcaad05fe82e592d05848010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d55010000000000000074f0d98f7f00aafd64567c02a67a30ac67eadb1918e2cc2408cf8a72016209500100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000ad0700000000000000010e87390100b51e00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index 3767f672116e2e17b5ce34c7fb8265e94528acc6..af31d4ad31ddb4f2d8bd88a09a84a5b3b3bdeb2b 100644 GIT binary patch literal 412597 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 z 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 MysQK^i-jux3wu61ng9R* diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 1a58319a8ea91d88652ec42c68b47cd4eafdb3bf..7f9abf73c727429b633efc7939d8452e37fb8217 100644 GIT binary patch literal 90484 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 delta 12634 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≫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 LMyx2iBC-DgM~l$G diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index bae52ba25c..11015cf8a3 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -6,28 +6,26 @@ pub mod api { mod root_mod { pub use super::*; } - pub static PALLETS: [&str; 64usize] = [ + pub static PALLETS: [&str; 67usize] = [ "System", "Babe", "Timestamp", "Indices", "Balances", + "Parameters", "TransactionPayment", "Authorship", "Offences", "Historical", - "Beefy", - "Mmr", - "MmrLeaf", "Session", "Grandpa", - "ImOnline", "AuthorityDiscovery", "Treasury", "ConvictionVoting", "Referenda", "FellowshipCollective", "FellowshipReferenda", + "Origins", "Whitelist", "Claims", "Utility", @@ -58,22 +56,28 @@ pub mod api { "ParasDisputes", "ParasSlashing", "MessageQueue", - "ParaAssignmentProvider", "OnDemandAssignmentProvider", - "ParachainsAssignmentProvider", + "CoretimeAssignmentProvider", "Registrar", "Slots", "Auctions", "Crowdloan", + "Coretime", "XcmPallet", + "Beefy", + "Mmr", + "MmrLeaf", + "IdentityMigrator", "ParasSudoWrapper", "AssignedSlots", "ValidatorManager", "StateTrieMigration", + "RootTesting", "Sudo", ]; - pub static RUNTIME_APIS: [&str; 16usize] = [ + pub static RUNTIME_APIS: [&str; 17usize] = [ "Core", + "XcmPaymentApi", "Metadata", "BlockBuilder", "TaggedTransactionQueue", @@ -119,6 +123,9 @@ pub mod api { pub fn core(&self) -> core::Core { core::Core } + pub fn xcm_payment_api(&self) -> xcm_payment_api::XcmPaymentApi { + xcm_payment_api::XcmPaymentApi + } pub fn metadata(&self) -> metadata::Metadata { metadata::Metadata } @@ -215,7 +222,7 @@ pub mod api { ], ) } - #[doc = " Initialize a block with the given header."] + #[doc = " Initialize a block with the given header and return the runtime executive mode."] pub fn initialize_block( &self, header: types::initialize_block::Header, @@ -228,9 +235,9 @@ pub mod api { "initialize_block", types::InitializeBlock { header }, [ - 146u8, 138u8, 72u8, 240u8, 63u8, 96u8, 110u8, 189u8, 77u8, 92u8, 96u8, - 232u8, 41u8, 217u8, 105u8, 148u8, 83u8, 190u8, 152u8, 219u8, 19u8, - 87u8, 163u8, 1u8, 232u8, 25u8, 221u8, 74u8, 224u8, 67u8, 223u8, 34u8, + 132u8, 169u8, 113u8, 112u8, 80u8, 139u8, 113u8, 35u8, 41u8, 81u8, 36u8, + 35u8, 37u8, 202u8, 29u8, 207u8, 205u8, 229u8, 145u8, 7u8, 133u8, 94u8, + 25u8, 108u8, 233u8, 86u8, 234u8, 29u8, 236u8, 57u8, 56u8, 186u8, ], ) } @@ -290,7 +297,7 @@ pub mod api { runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>; pub mod output { use super::runtime_types; - pub type Output = (); + pub type Output = runtime_types::sp_runtime::ExtrinsicInclusionMode; } } #[derive( @@ -312,6 +319,249 @@ pub mod api { } } } + pub mod xcm_payment_api { + use super::root_mod; + use super::runtime_types; + #[doc = " A trait of XCM payment API."] + #[doc = ""] + #[doc = " API provides functionality for obtaining:"] + #[doc = ""] + #[doc = " * the weight required to execute an XCM message,"] + #[doc = " * a list of acceptable `AssetId`s for message execution payment,"] + #[doc = " * the cost of the weight in the specified acceptable `AssetId`."] + #[doc = " * the fees for an XCM message delivery."] + #[doc = ""] + #[doc = " To determine the execution weight of the calls required for"] + #[doc = " [`xcm::latest::Instruction::Transact`] instruction, `TransactionPaymentCallApi` can be used."] + pub struct XcmPaymentApi; + impl XcmPaymentApi { + #[doc = " Returns a list of acceptable payment assets."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = ""] + #[doc = " * `xcm_version`: Version."] + pub fn query_acceptable_payment_assets( + &self, + xcm_version: types::query_acceptable_payment_assets::XcmVersion, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::QueryAcceptablePaymentAssets, + types::query_acceptable_payment_assets::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmPaymentApi", + "query_acceptable_payment_assets", + types::QueryAcceptablePaymentAssets { xcm_version }, + [ + 232u8, 67u8, 173u8, 246u8, 152u8, 193u8, 90u8, 68u8, 49u8, 200u8, + 118u8, 68u8, 139u8, 225u8, 161u8, 38u8, 177u8, 158u8, 83u8, 135u8, + 180u8, 97u8, 4u8, 94u8, 0u8, 232u8, 114u8, 119u8, 77u8, 5u8, 8u8, + 236u8, + ], + ) + } + #[doc = " Returns a weight needed to execute a XCM."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = ""] + #[doc = " * `message`: `VersionedXcm`."] + pub fn query_xcm_weight( + &self, + message: types::query_xcm_weight::Message, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::QueryXcmWeight, + types::query_xcm_weight::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmPaymentApi", + "query_xcm_weight", + types::QueryXcmWeight { message }, + [ + 58u8, 118u8, 149u8, 47u8, 144u8, 85u8, 10u8, 89u8, 29u8, 123u8, 249u8, + 209u8, 165u8, 160u8, 43u8, 246u8, 12u8, 106u8, 89u8, 20u8, 219u8, + 133u8, 189u8, 58u8, 14u8, 136u8, 189u8, 142u8, 123u8, 145u8, 77u8, + 68u8, + ], + ) + } + #[doc = " Converts a weight into a fee for the specified `AssetId`."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = ""] + #[doc = " * `weight`: convertible `Weight`."] + #[doc = " * `asset`: `VersionedAssetId`."] + pub fn query_weight_to_asset_fee( + &self, + weight: types::query_weight_to_asset_fee::Weight, + asset: types::query_weight_to_asset_fee::Asset, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::QueryWeightToAssetFee, + types::query_weight_to_asset_fee::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmPaymentApi", + "query_weight_to_asset_fee", + types::QueryWeightToAssetFee { weight, asset }, + [ + 86u8, 75u8, 169u8, 75u8, 0u8, 231u8, 241u8, 122u8, 197u8, 232u8, 188u8, + 66u8, 247u8, 240u8, 170u8, 39u8, 199u8, 82u8, 104u8, 16u8, 28u8, 40u8, + 214u8, 232u8, 177u8, 212u8, 117u8, 16u8, 181u8, 240u8, 33u8, 126u8, + ], + ) + } + #[doc = " Get delivery fees for sending a specific `message` to a `destination`."] + #[doc = " These always come in a specific asset, defined by the chain."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = " * `message`: The message that'll be sent, necessary because most delivery fees are based on the"] + #[doc = " size of the message."] + #[doc = " * `destination`: The destination to send the message to. Different destinations may use"] + #[doc = " different senders that charge different fees."] + pub fn query_delivery_fees( + &self, + destination: types::query_delivery_fees::Destination, + message: types::query_delivery_fees::Message, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::QueryDeliveryFees, + types::query_delivery_fees::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmPaymentApi", + "query_delivery_fees", + types::QueryDeliveryFees { + destination, + message, + }, + [ + 248u8, 169u8, 153u8, 16u8, 58u8, 94u8, 83u8, 239u8, 80u8, 12u8, 183u8, + 141u8, 169u8, 8u8, 137u8, 178u8, 241u8, 228u8, 241u8, 66u8, 89u8, + 202u8, 78u8, 125u8, 240u8, 248u8, 109u8, 41u8, 189u8, 119u8, 20u8, + 149u8, + ], + ) + } + } + pub mod types { + use super::runtime_types; + pub mod query_acceptable_payment_assets { + use super::runtime_types; + pub type XcmVersion = ::core::primitive::u32; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::xcm::VersionedAssetId, + >, + runtime_types::xcm_fee_payment_runtime_api::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryAcceptablePaymentAssets { + pub xcm_version: query_acceptable_payment_assets::XcmVersion, + } + pub mod query_xcm_weight { + use super::runtime_types; + pub type Message = runtime_types::xcm::VersionedXcm1; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + runtime_types::sp_weights::weight_v2::Weight, + runtime_types::xcm_fee_payment_runtime_api::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryXcmWeight { + pub message: query_xcm_weight::Message, + } + pub mod query_weight_to_asset_fee { + use super::runtime_types; + pub type Weight = runtime_types::sp_weights::weight_v2::Weight; + pub type Asset = runtime_types::xcm::VersionedAssetId; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + ::core::primitive::u128, + runtime_types::xcm_fee_payment_runtime_api::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryWeightToAssetFee { + pub weight: query_weight_to_asset_fee::Weight, + pub asset: query_weight_to_asset_fee::Asset, + } + pub mod query_delivery_fees { + use super::runtime_types; + pub type Destination = runtime_types::xcm::VersionedLocation; + pub type Message = runtime_types::xcm::VersionedXcm1; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + runtime_types::xcm::VersionedAssets, + runtime_types::xcm_fee_payment_runtime_api::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryDeliveryFees { + pub destination: query_delivery_fees::Destination, + pub message: query_delivery_fees::Message, + } + } + } pub mod metadata { use super::root_mod; use super::runtime_types; @@ -797,10 +1047,10 @@ pub mod api { "validators", types::Validators {}, [ - 56u8, 64u8, 189u8, 234u8, 85u8, 75u8, 2u8, 212u8, 192u8, 95u8, 230u8, - 201u8, 98u8, 220u8, 78u8, 20u8, 101u8, 16u8, 153u8, 192u8, 133u8, - 179u8, 217u8, 98u8, 247u8, 143u8, 104u8, 147u8, 47u8, 255u8, 111u8, - 72u8, + 203u8, 103u8, 117u8, 19u8, 54u8, 45u8, 218u8, 47u8, 46u8, 93u8, 221u8, + 120u8, 188u8, 43u8, 183u8, 253u8, 108u8, 177u8, 242u8, 168u8, 97u8, + 191u8, 129u8, 190u8, 80u8, 182u8, 43u8, 75u8, 126u8, 241u8, 248u8, + 188u8, ], ) } @@ -838,9 +1088,9 @@ pub mod api { "availability_cores", types::AvailabilityCores {}, [ - 238u8, 20u8, 188u8, 206u8, 26u8, 17u8, 72u8, 123u8, 33u8, 54u8, 66u8, - 13u8, 244u8, 246u8, 228u8, 177u8, 176u8, 251u8, 82u8, 12u8, 170u8, - 29u8, 39u8, 158u8, 16u8, 23u8, 253u8, 169u8, 117u8, 12u8, 0u8, 65u8, + 237u8, 214u8, 4u8, 255u8, 105u8, 58u8, 207u8, 5u8, 161u8, 200u8, 229u8, + 237u8, 83u8, 29u8, 131u8, 64u8, 244u8, 255u8, 15u8, 4u8, 224u8, 242u8, + 16u8, 182u8, 134u8, 20u8, 111u8, 114u8, 242u8, 218u8, 138u8, 144u8, ], ) } @@ -978,10 +1228,9 @@ pub mod api { "candidate_pending_availability", types::CandidatePendingAvailability { para_id }, [ - 139u8, 185u8, 205u8, 255u8, 131u8, 180u8, 248u8, 168u8, 25u8, 124u8, - 105u8, 141u8, 59u8, 118u8, 109u8, 136u8, 103u8, 200u8, 5u8, 218u8, - 72u8, 55u8, 114u8, 89u8, 207u8, 140u8, 51u8, 86u8, 167u8, 41u8, 221u8, - 86u8, + 244u8, 247u8, 40u8, 151u8, 56u8, 125u8, 160u8, 14u8, 133u8, 36u8, 95u8, + 142u8, 195u8, 41u8, 58u8, 243u8, 51u8, 140u8, 131u8, 63u8, 3u8, 143u8, + 104u8, 164u8, 193u8, 39u8, 220u8, 141u8, 141u8, 17u8, 182u8, 168u8, ], ) } @@ -997,10 +1246,9 @@ pub mod api { "candidate_events", types::CandidateEvents {}, [ - 101u8, 145u8, 200u8, 182u8, 213u8, 111u8, 180u8, 73u8, 14u8, 107u8, - 110u8, 145u8, 122u8, 35u8, 223u8, 219u8, 66u8, 101u8, 130u8, 255u8, - 44u8, 46u8, 50u8, 61u8, 104u8, 237u8, 34u8, 16u8, 179u8, 214u8, 115u8, - 7u8, + 75u8, 75u8, 47u8, 107u8, 25u8, 45u8, 177u8, 137u8, 39u8, 157u8, 170u8, + 247u8, 55u8, 83u8, 48u8, 240u8, 120u8, 227u8, 107u8, 42u8, 84u8, 78u8, + 79u8, 170u8, 249u8, 233u8, 249u8, 121u8, 105u8, 119u8, 7u8, 248u8, ], ) } @@ -1075,9 +1323,9 @@ pub mod api { "on_chain_votes", types::OnChainVotes {}, [ - 8u8, 253u8, 248u8, 13u8, 221u8, 83u8, 199u8, 65u8, 180u8, 193u8, 232u8, - 179u8, 56u8, 186u8, 72u8, 128u8, 27u8, 168u8, 177u8, 82u8, 194u8, - 139u8, 78u8, 32u8, 147u8, 67u8, 27u8, 252u8, 118u8, 60u8, 74u8, 31u8, + 92u8, 45u8, 100u8, 230u8, 156u8, 157u8, 244u8, 49u8, 130u8, 181u8, + 20u8, 225u8, 159u8, 38u8, 33u8, 32u8, 147u8, 149u8, 41u8, 20u8, 158u8, + 61u8, 134u8, 225u8, 140u8, 5u8, 160u8, 223u8, 8u8, 11u8, 244u8, 236u8, ], ) } @@ -1096,10 +1344,9 @@ pub mod api { "session_info", types::SessionInfo { index }, [ - 77u8, 115u8, 39u8, 190u8, 116u8, 250u8, 66u8, 128u8, 168u8, 24u8, - 120u8, 153u8, 111u8, 125u8, 249u8, 115u8, 112u8, 169u8, 208u8, 31u8, - 95u8, 234u8, 14u8, 242u8, 14u8, 190u8, 120u8, 171u8, 202u8, 67u8, 81u8, - 237u8, + 109u8, 63u8, 65u8, 75u8, 87u8, 156u8, 145u8, 106u8, 214u8, 111u8, 24u8, + 111u8, 229u8, 171u8, 147u8, 148u8, 51u8, 80u8, 156u8, 94u8, 49u8, + 229u8, 151u8, 155u8, 255u8, 0u8, 72u8, 104u8, 42u8, 124u8, 222u8, 90u8, ], ) } @@ -1119,10 +1366,9 @@ pub mod api { "submit_pvf_check_statement", types::SubmitPvfCheckStatement { stmt, signature }, [ - 91u8, 138u8, 75u8, 79u8, 171u8, 224u8, 206u8, 152u8, 202u8, 131u8, - 251u8, 200u8, 75u8, 99u8, 49u8, 192u8, 175u8, 212u8, 139u8, 236u8, - 188u8, 243u8, 82u8, 62u8, 190u8, 79u8, 113u8, 23u8, 222u8, 29u8, 255u8, - 196u8, + 10u8, 97u8, 0u8, 72u8, 221u8, 159u8, 123u8, 113u8, 166u8, 212u8, 213u8, + 173u8, 250u8, 217u8, 54u8, 27u8, 120u8, 76u8, 219u8, 71u8, 28u8, 213u8, + 243u8, 103u8, 44u8, 198u8, 102u8, 43u8, 15u8, 81u8, 228u8, 110u8, ], ) } @@ -1203,9 +1449,9 @@ pub mod api { "session_executor_params", types::SessionExecutorParams { session_index }, [ - 207u8, 66u8, 10u8, 104u8, 146u8, 219u8, 75u8, 157u8, 93u8, 224u8, - 215u8, 13u8, 255u8, 62u8, 134u8, 168u8, 185u8, 101u8, 39u8, 78u8, 98u8, - 44u8, 129u8, 38u8, 48u8, 244u8, 103u8, 205u8, 66u8, 121u8, 18u8, 247u8, + 94u8, 35u8, 29u8, 188u8, 247u8, 116u8, 165u8, 43u8, 248u8, 76u8, 21u8, + 237u8, 26u8, 25u8, 105u8, 27u8, 24u8, 245u8, 97u8, 25u8, 47u8, 118u8, + 98u8, 231u8, 27u8, 76u8, 172u8, 207u8, 90u8, 103u8, 52u8, 168u8, ], ) } @@ -1222,9 +1468,9 @@ pub mod api { "unapplied_slashes", types::UnappliedSlashes {}, [ - 205u8, 16u8, 246u8, 48u8, 72u8, 160u8, 7u8, 136u8, 225u8, 2u8, 209u8, - 254u8, 255u8, 115u8, 49u8, 214u8, 131u8, 22u8, 210u8, 9u8, 111u8, - 170u8, 109u8, 247u8, 110u8, 42u8, 55u8, 68u8, 85u8, 37u8, 250u8, 4u8, + 37u8, 39u8, 110u8, 177u8, 177u8, 107u8, 186u8, 189u8, 36u8, 252u8, + 88u8, 92u8, 92u8, 3u8, 118u8, 28u8, 72u8, 180u8, 56u8, 113u8, 168u8, + 228u8, 180u8, 53u8, 56u8, 77u8, 129u8, 94u8, 68u8, 18u8, 199u8, 163u8, ], ) } @@ -1242,9 +1488,9 @@ pub mod api { "key_ownership_proof", types::KeyOwnershipProof { validator_id }, [ - 194u8, 237u8, 59u8, 4u8, 194u8, 235u8, 38u8, 58u8, 58u8, 221u8, 189u8, - 69u8, 254u8, 2u8, 242u8, 200u8, 86u8, 4u8, 138u8, 184u8, 198u8, 58u8, - 200u8, 34u8, 243u8, 91u8, 122u8, 35u8, 18u8, 83u8, 152u8, 191u8, + 75u8, 218u8, 234u8, 239u8, 79u8, 135u8, 77u8, 217u8, 172u8, 222u8, + 123u8, 195u8, 0u8, 79u8, 68u8, 22u8, 143u8, 185u8, 45u8, 209u8, 235u8, + 205u8, 61u8, 159u8, 205u8, 15u8, 169u8, 73u8, 84u8, 12u8, 240u8, 155u8, ], ) } @@ -1267,9 +1513,9 @@ pub mod api { key_ownership_proof, }, [ - 98u8, 63u8, 249u8, 13u8, 163u8, 161u8, 43u8, 96u8, 75u8, 65u8, 3u8, - 116u8, 8u8, 149u8, 122u8, 190u8, 179u8, 108u8, 17u8, 22u8, 59u8, 134u8, - 43u8, 31u8, 13u8, 254u8, 21u8, 112u8, 129u8, 16u8, 5u8, 180u8, + 107u8, 224u8, 213u8, 121u8, 155u8, 13u8, 89u8, 111u8, 110u8, 3u8, + 143u8, 126u8, 104u8, 78u8, 27u8, 220u8, 212u8, 51u8, 70u8, 241u8, 98u8, + 135u8, 61u8, 253u8, 19u8, 250u8, 54u8, 46u8, 195u8, 234u8, 92u8, 105u8, ], ) } @@ -1306,9 +1552,10 @@ pub mod api { "para_backing_state", types::ParaBackingState { _0 }, [ - 26u8, 210u8, 45u8, 233u8, 133u8, 180u8, 12u8, 156u8, 59u8, 249u8, 10u8, - 38u8, 32u8, 28u8, 25u8, 30u8, 83u8, 33u8, 142u8, 21u8, 12u8, 151u8, - 182u8, 128u8, 131u8, 192u8, 240u8, 73u8, 119u8, 64u8, 254u8, 139u8, + 207u8, 6u8, 220u8, 174u8, 230u8, 61u8, 153u8, 23u8, 219u8, 185u8, + 118u8, 139u8, 184u8, 122u8, 192u8, 47u8, 166u8, 165u8, 171u8, 69u8, + 119u8, 198u8, 51u8, 56u8, 141u8, 191u8, 148u8, 32u8, 104u8, 183u8, 7u8, + 51u8, ], ) } @@ -1350,6 +1597,82 @@ pub mod api { ], ) } + #[doc = " Get node features."] + #[doc = " This is a staging method! Do not use on production runtimes!"] + pub fn node_features( + &self, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::NodeFeatures, + types::node_features::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "ParachainHost", + "node_features", + types::NodeFeatures {}, + [ + 94u8, 110u8, 38u8, 62u8, 66u8, 234u8, 216u8, 228u8, 36u8, 17u8, 33u8, + 56u8, 184u8, 122u8, 34u8, 254u8, 46u8, 62u8, 107u8, 227u8, 3u8, 126u8, + 220u8, 142u8, 92u8, 226u8, 123u8, 236u8, 34u8, 234u8, 82u8, 80u8, + ], + ) + } + #[doc = " Approval voting configuration parameters"] + pub fn approval_voting_params( + &self, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::ApprovalVotingParams, + types::approval_voting_params::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "ParachainHost", + "approval_voting_params", + types::ApprovalVotingParams {}, + [ + 89u8, 130u8, 95u8, 58u8, 124u8, 176u8, 43u8, 109u8, 222u8, 178u8, + 241u8, 177u8, 242u8, 32u8, 84u8, 22u8, 252u8, 178u8, 168u8, 17u8, 38u8, + 249u8, 25u8, 229u8, 75u8, 119u8, 150u8, 112u8, 144u8, 118u8, 189u8, + 253u8, + ], + ) + } + #[doc = " Claim queue"] + pub fn claim_queue( + &self, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::ClaimQueue, + types::claim_queue::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "ParachainHost", + "claim_queue", + types::ClaimQueue {}, + [ + 43u8, 105u8, 112u8, 222u8, 33u8, 252u8, 194u8, 53u8, 104u8, 185u8, + 210u8, 179u8, 95u8, 149u8, 44u8, 86u8, 70u8, 202u8, 154u8, 196u8, + 186u8, 165u8, 103u8, 172u8, 66u8, 4u8, 135u8, 9u8, 255u8, 137u8, 52u8, + 125u8, + ], + ) + } + #[doc = " Elastic scaling support"] + pub fn candidates_pending_availability( + &self, + para_id: types::candidates_pending_availability::ParaId, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::CandidatesPendingAvailability, + types::candidates_pending_availability::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "ParachainHost", + "candidates_pending_availability", + types::CandidatesPendingAvailability { para_id }, + [ + 214u8, 41u8, 247u8, 245u8, 26u8, 171u8, 246u8, 174u8, 66u8, 162u8, 3u8, + 18u8, 234u8, 184u8, 2u8, 12u8, 137u8, 186u8, 106u8, 64u8, 125u8, 64u8, + 199u8, 201u8, 19u8, 82u8, 177u8, 198u8, 134u8, 238u8, 115u8, 51u8, + ], + ) + } } pub mod types { use super::runtime_types; @@ -1358,7 +1681,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, >; } } @@ -1384,10 +1707,10 @@ pub mod api { pub type Output = ( ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >, >, - runtime_types::polkadot_primitives::v6::GroupRotationInfo< + runtime_types::polkadot_primitives::v7::GroupRotationInfo< ::core::primitive::u32, >, ); @@ -1413,7 +1736,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::CoreState< + runtime_types::polkadot_primitives::v7::CoreState< ::subxt::ext::subxt_core::utils::H256, ::core::primitive::u32, >, @@ -1439,11 +1762,11 @@ pub mod api { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; pub type Assumption = - runtime_types::polkadot_primitives::v6::OccupiedCoreAssumption; + runtime_types::polkadot_primitives::v7::OccupiedCoreAssumption; pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::PersistedValidationData< + runtime_types::polkadot_primitives::v7::PersistedValidationData< ::subxt::ext::subxt_core::utils::H256, ::core::primitive::u32, >, @@ -1475,7 +1798,7 @@ pub mod api { ::subxt::ext::subxt_core::utils::H256; pub mod output { use super::runtime_types; - pub type Output = :: core :: option :: Option < (runtime_types :: polkadot_primitives :: v6 :: PersistedValidationData < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > ; + pub type Output = :: core :: option :: Option < (runtime_types :: polkadot_primitives :: v7 :: PersistedValidationData < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > ; } } #[derive( @@ -1500,7 +1823,7 @@ pub mod api { pub mod check_validation_outputs { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; - pub type Outputs = runtime_types::polkadot_primitives::v6::CandidateCommitments< + pub type Outputs = runtime_types::polkadot_primitives::v7::CandidateCommitments< ::core::primitive::u32, >; pub mod output { @@ -1552,7 +1875,7 @@ pub mod api { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; pub type Assumption = - runtime_types::polkadot_primitives::v6::OccupiedCoreAssumption; + runtime_types::polkadot_primitives::v7::OccupiedCoreAssumption; pub mod output { use super::runtime_types; pub type Output = :: core :: option :: Option < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode > ; @@ -1582,7 +1905,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::CommittedCandidateReceipt< + runtime_types::polkadot_primitives::v7::CommittedCandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >, >; @@ -1610,7 +1933,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::CandidateEvent< + runtime_types::polkadot_primitives::v7::CandidateEvent< ::subxt::ext::subxt_core::utils::H256, >, >; @@ -1724,7 +2047,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::ScrapedOnChainVotes< + runtime_types::polkadot_primitives::v7::ScrapedOnChainVotes< ::subxt::ext::subxt_core::utils::H256, >, >; @@ -1751,7 +2074,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::SessionInfo, + runtime_types::polkadot_primitives::v7::SessionInfo, >; } } @@ -1774,9 +2097,9 @@ pub mod api { } pub mod submit_pvf_check_statement { use super::runtime_types; - pub type Stmt = runtime_types::polkadot_primitives::v6::PvfCheckStatement; + pub type Stmt = runtime_types::polkadot_primitives::v7::PvfCheckStatement; pub type Signature = - runtime_types::polkadot_primitives::v6::validator_app::Signature; + runtime_types::polkadot_primitives::v7::validator_app::Signature; pub mod output { use super::runtime_types; pub type Output = (); @@ -1826,7 +2149,7 @@ pub mod api { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; pub type Assumption = - runtime_types::polkadot_primitives::v6::OccupiedCoreAssumption; + runtime_types::polkadot_primitives::v7::OccupiedCoreAssumption; pub mod output { use super::runtime_types; pub type Output = :: core :: option :: Option < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash > ; @@ -1857,7 +2180,7 @@ pub mod api { pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<( ::core::primitive::u32, runtime_types::polkadot_core_primitives::CandidateHash, - runtime_types::polkadot_primitives::v6::DisputeState< + runtime_types::polkadot_primitives::v7::DisputeState< ::core::primitive::u32, >, )>; @@ -1884,7 +2207,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams, + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParams, >; } } @@ -1912,7 +2235,7 @@ pub mod api { pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<( ::core::primitive::u32, runtime_types::polkadot_core_primitives::CandidateHash, - runtime_types::polkadot_primitives::v6::slashing::PendingSlashes, + runtime_types::polkadot_primitives::v7::slashing::PendingSlashes, )>; } } @@ -1934,10 +2257,10 @@ pub mod api { pub mod key_ownership_proof { use super::runtime_types; pub type ValidatorId = - runtime_types::polkadot_primitives::v6::validator_app::Public; + runtime_types::polkadot_primitives::v7::validator_app::Public; pub mod output { use super::runtime_types; - pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: v6 :: slashing :: OpaqueKeyOwnershipProof > ; + pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: v7 :: slashing :: OpaqueKeyOwnershipProof > ; } } #[derive( @@ -1960,9 +2283,9 @@ pub mod api { pub mod submit_report_dispute_lost { use super::runtime_types; pub type DisputeProof = - runtime_types::polkadot_primitives::v6::slashing::DisputeProof; + runtime_types::polkadot_primitives::v7::slashing::DisputeProof; pub type KeyOwnershipProof = - runtime_types::polkadot_primitives::v6::slashing::OpaqueKeyOwnershipProof; + runtime_types::polkadot_primitives::v7::slashing::OpaqueKeyOwnershipProof; pub mod output { use super::runtime_types; pub type Output = ::core::option::Option<()>; @@ -2014,7 +2337,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::async_backing::BackingState< + runtime_types::polkadot_primitives::v7::async_backing::BackingState< ::subxt::ext::subxt_core::utils::H256, ::core::primitive::u32, >, @@ -2042,7 +2365,7 @@ pub mod api { use super::runtime_types; pub mod output { use super::runtime_types; - pub type Output = runtime_types :: polkadot_primitives :: v6 :: async_backing :: AsyncBackingParams ; + pub type Output = runtime_types :: polkadot_primitives :: v7 :: async_backing :: AsyncBackingParams ; } } #[derive( @@ -2065,7 +2388,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >; } } @@ -2084,6 +2407,110 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct DisabledValidators {} + pub mod node_features { + use super::runtime_types; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::ext::subxt_core::utils::bits::DecodedBits< + ::core::primitive::u8, + ::subxt::ext::subxt_core::utils::bits::Lsb0, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct NodeFeatures {} + pub mod approval_voting_params { + use super::runtime_types; + pub mod output { + use super::runtime_types; + pub type Output = + runtime_types::polkadot_primitives::v7::ApprovalVotingParams; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ApprovalVotingParams {} + pub mod claim_queue { + use super::runtime_types; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::ext::subxt_core::utils::KeyedVec< + runtime_types::polkadot_primitives::v7::CoreIndex, + ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::polkadot_parachain_primitives::primitives::Id, + >, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ClaimQueue {} + pub mod candidates_pending_availability { + use super::runtime_types; + pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::polkadot_primitives::v7::CommittedCandidateReceipt< + ::subxt::ext::subxt_core::utils::H256, + >, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct CandidatesPendingAvailability { + pub para_id: candidates_pending_availability::ParaId, + } } } pub mod beefy_api { @@ -2123,9 +2550,10 @@ pub mod api { "validator_set", types::ValidatorSet {}, [ - 26u8, 174u8, 151u8, 215u8, 199u8, 11u8, 123u8, 18u8, 209u8, 187u8, - 70u8, 245u8, 59u8, 23u8, 11u8, 26u8, 167u8, 202u8, 83u8, 213u8, 99u8, - 74u8, 143u8, 140u8, 34u8, 9u8, 225u8, 217u8, 244u8, 169u8, 30u8, 217u8, + 89u8, 55u8, 143u8, 190u8, 77u8, 133u8, 228u8, 92u8, 245u8, 253u8, 70u8, + 232u8, 213u8, 119u8, 88u8, 47u8, 122u8, 60u8, 179u8, 61u8, 199u8, + 251u8, 45u8, 230u8, 76u8, 202u8, 49u8, 178u8, 204u8, 143u8, 196u8, + 135u8, ], ) } @@ -2153,10 +2581,10 @@ pub mod api { key_owner_proof, }, [ - 20u8, 162u8, 43u8, 173u8, 248u8, 140u8, 57u8, 151u8, 189u8, 96u8, 68u8, - 130u8, 14u8, 162u8, 230u8, 61u8, 169u8, 189u8, 239u8, 71u8, 121u8, - 137u8, 141u8, 206u8, 91u8, 164u8, 175u8, 93u8, 33u8, 161u8, 166u8, - 192u8, + 170u8, 93u8, 106u8, 193u8, 102u8, 51u8, 222u8, 58u8, 165u8, 172u8, + 245u8, 128u8, 116u8, 25u8, 252u8, 107u8, 60u8, 93u8, 218u8, 91u8, + 132u8, 18u8, 214u8, 7u8, 135u8, 13u8, 248u8, 250u8, 7u8, 255u8, 169u8, + 231u8, ], ) } @@ -2187,9 +2615,9 @@ pub mod api { authority_id, }, [ - 244u8, 175u8, 3u8, 235u8, 173u8, 34u8, 210u8, 81u8, 41u8, 5u8, 85u8, - 179u8, 53u8, 153u8, 16u8, 62u8, 103u8, 71u8, 180u8, 11u8, 165u8, 90u8, - 186u8, 156u8, 118u8, 114u8, 22u8, 108u8, 149u8, 9u8, 232u8, 174u8, + 119u8, 183u8, 178u8, 109u8, 57u8, 250u8, 176u8, 255u8, 11u8, 190u8, + 35u8, 142u8, 102u8, 112u8, 4u8, 219u8, 204u8, 81u8, 163u8, 87u8, 129u8, + 134u8, 34u8, 227u8, 213u8, 163u8, 50u8, 90u8, 54u8, 61u8, 84u8, 215u8, ], ) } @@ -2624,10 +3052,9 @@ pub mod api { "grandpa_authorities", types::GrandpaAuthorities {}, [ - 166u8, 76u8, 160u8, 101u8, 242u8, 145u8, 213u8, 10u8, 16u8, 130u8, - 230u8, 196u8, 125u8, 152u8, 92u8, 143u8, 119u8, 223u8, 140u8, 189u8, - 203u8, 95u8, 52u8, 105u8, 147u8, 107u8, 135u8, 228u8, 62u8, 178u8, - 128u8, 33u8, + 8u8, 1u8, 99u8, 227u8, 52u8, 95u8, 230u8, 139u8, 198u8, 90u8, 159u8, + 146u8, 193u8, 81u8, 37u8, 27u8, 216u8, 227u8, 108u8, 126u8, 12u8, 94u8, + 125u8, 183u8, 143u8, 231u8, 87u8, 101u8, 114u8, 190u8, 193u8, 180u8, ], ) } @@ -2655,10 +3082,9 @@ pub mod api { key_owner_proof, }, [ - 112u8, 94u8, 150u8, 250u8, 132u8, 127u8, 185u8, 24u8, 113u8, 62u8, - 28u8, 171u8, 83u8, 9u8, 41u8, 228u8, 92u8, 137u8, 29u8, 190u8, 214u8, - 232u8, 100u8, 66u8, 100u8, 168u8, 149u8, 122u8, 93u8, 17u8, 236u8, - 104u8, + 27u8, 32u8, 16u8, 79u8, 172u8, 124u8, 44u8, 13u8, 176u8, 89u8, 69u8, + 60u8, 45u8, 176u8, 72u8, 151u8, 252u8, 5u8, 243u8, 82u8, 170u8, 51u8, + 179u8, 197u8, 117u8, 177u8, 110u8, 111u8, 97u8, 15u8, 109u8, 169u8, ], ) } @@ -2689,10 +3115,9 @@ pub mod api { authority_id, }, [ - 40u8, 126u8, 113u8, 27u8, 245u8, 45u8, 123u8, 138u8, 12u8, 3u8, 125u8, - 186u8, 151u8, 53u8, 186u8, 93u8, 13u8, 150u8, 163u8, 176u8, 206u8, - 89u8, 244u8, 127u8, 182u8, 85u8, 203u8, 41u8, 101u8, 183u8, 209u8, - 179u8, + 13u8, 144u8, 66u8, 235u8, 24u8, 190u8, 39u8, 75u8, 29u8, 157u8, 215u8, + 181u8, 173u8, 145u8, 224u8, 244u8, 189u8, 79u8, 6u8, 116u8, 139u8, + 196u8, 54u8, 16u8, 89u8, 190u8, 121u8, 43u8, 137u8, 150u8, 117u8, 68u8, ], ) } @@ -2848,9 +3273,9 @@ pub mod api { "configuration", types::Configuration {}, [ - 8u8, 81u8, 234u8, 29u8, 30u8, 198u8, 76u8, 19u8, 188u8, 198u8, 127u8, - 33u8, 141u8, 95u8, 132u8, 106u8, 31u8, 41u8, 215u8, 54u8, 240u8, 65u8, - 59u8, 160u8, 188u8, 237u8, 10u8, 143u8, 250u8, 79u8, 45u8, 161u8, + 50u8, 198u8, 27u8, 26u8, 92u8, 199u8, 8u8, 181u8, 12u8, 199u8, 116u8, + 247u8, 95u8, 70u8, 241u8, 24u8, 14u8, 250u8, 179u8, 77u8, 251u8, 55u8, + 133u8, 8u8, 142u8, 107u8, 6u8, 214u8, 228u8, 38u8, 134u8, 153u8, ], ) } @@ -2885,9 +3310,10 @@ pub mod api { "current_epoch", types::CurrentEpoch {}, [ - 73u8, 171u8, 149u8, 138u8, 230u8, 95u8, 241u8, 189u8, 207u8, 145u8, - 103u8, 76u8, 79u8, 44u8, 250u8, 68u8, 238u8, 4u8, 149u8, 234u8, 165u8, - 91u8, 89u8, 228u8, 132u8, 201u8, 203u8, 98u8, 209u8, 137u8, 8u8, 63u8, + 70u8, 68u8, 222u8, 110u8, 96u8, 143u8, 126u8, 136u8, 182u8, 163u8, + 104u8, 122u8, 21u8, 156u8, 6u8, 26u8, 86u8, 145u8, 153u8, 133u8, 251u8, + 137u8, 238u8, 218u8, 132u8, 218u8, 222u8, 140u8, 190u8, 232u8, 197u8, + 86u8, ], ) } @@ -2904,10 +3330,10 @@ pub mod api { "next_epoch", types::NextEpoch {}, [ - 191u8, 124u8, 183u8, 209u8, 73u8, 171u8, 164u8, 244u8, 68u8, 239u8, - 196u8, 54u8, 188u8, 85u8, 229u8, 175u8, 29u8, 89u8, 148u8, 108u8, - 208u8, 156u8, 62u8, 193u8, 167u8, 184u8, 251u8, 245u8, 123u8, 87u8, - 19u8, 225u8, + 141u8, 86u8, 122u8, 185u8, 215u8, 255u8, 142u8, 131u8, 8u8, 178u8, + 143u8, 200u8, 148u8, 84u8, 174u8, 215u8, 91u8, 251u8, 243u8, 155u8, + 92u8, 13u8, 44u8, 53u8, 128u8, 26u8, 165u8, 172u8, 49u8, 33u8, 130u8, + 148u8, ], ) } @@ -2935,10 +3361,9 @@ pub mod api { "generate_key_ownership_proof", types::GenerateKeyOwnershipProof { slot, authority_id }, [ - 235u8, 220u8, 75u8, 20u8, 175u8, 246u8, 127u8, 176u8, 225u8, 25u8, - 240u8, 252u8, 58u8, 254u8, 153u8, 133u8, 197u8, 168u8, 19u8, 231u8, - 234u8, 173u8, 58u8, 152u8, 212u8, 123u8, 13u8, 131u8, 84u8, 221u8, - 98u8, 46u8, + 13u8, 228u8, 75u8, 150u8, 203u8, 132u8, 82u8, 188u8, 17u8, 70u8, 169u8, + 19u8, 102u8, 96u8, 217u8, 209u8, 215u8, 196u8, 78u8, 141u8, 12u8, 14u8, + 151u8, 65u8, 173u8, 2u8, 100u8, 150u8, 18u8, 99u8, 19u8, 196u8, ], ) } @@ -2966,9 +3391,9 @@ pub mod api { key_owner_proof, }, [ - 9u8, 163u8, 149u8, 31u8, 89u8, 32u8, 224u8, 116u8, 102u8, 46u8, 10u8, - 189u8, 35u8, 166u8, 111u8, 156u8, 204u8, 80u8, 35u8, 64u8, 223u8, 3u8, - 4u8, 0u8, 97u8, 118u8, 124u8, 142u8, 224u8, 160u8, 2u8, 50u8, + 99u8, 80u8, 38u8, 173u8, 235u8, 48u8, 229u8, 88u8, 250u8, 165u8, 57u8, + 245u8, 85u8, 156u8, 114u8, 190u8, 144u8, 78u8, 37u8, 22u8, 36u8, 36u8, + 53u8, 174u8, 118u8, 222u8, 16u8, 159u8, 201u8, 254u8, 233u8, 82u8, ], ) } @@ -3151,9 +3576,9 @@ pub mod api { "authorities", types::Authorities {}, [ - 231u8, 109u8, 175u8, 33u8, 103u8, 6u8, 157u8, 241u8, 62u8, 92u8, 246u8, - 9u8, 109u8, 137u8, 233u8, 96u8, 103u8, 59u8, 201u8, 132u8, 102u8, 32u8, - 19u8, 183u8, 106u8, 146u8, 41u8, 172u8, 147u8, 55u8, 156u8, 77u8, + 165u8, 81u8, 77u8, 215u8, 27u8, 128u8, 36u8, 135u8, 216u8, 203u8, 60u8, + 250u8, 235u8, 22u8, 149u8, 99u8, 233u8, 114u8, 62u8, 69u8, 27u8, 185u8, + 45u8, 164u8, 136u8, 168u8, 108u8, 168u8, 24u8, 3u8, 66u8, 155u8, ], ) } @@ -3655,83 +4080,95 @@ pub mod api { pub mod genesis_builder { use super::root_mod; use super::runtime_types; - #[doc = " API to interact with GenesisConfig for the runtime"] + #[doc = " API to interact with RuntimeGenesisConfig for the runtime"] pub struct GenesisBuilder; impl GenesisBuilder { - #[doc = " Creates the default `GenesisConfig` and returns it as a JSON blob."] + #[doc = " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the"] + #[doc = " storage."] #[doc = ""] - #[doc = " This function instantiates the default `GenesisConfig` struct for the runtime and serializes it into a JSON"] - #[doc = " blob. It returns a `Vec` containing the JSON representation of the default `GenesisConfig`."] - pub fn create_default_config( + #[doc = " In the case of a FRAME-based runtime, this function deserializes the full `RuntimeGenesisConfig` from the given JSON blob and"] + #[doc = " puts it into the storage. If the provided JSON blob is incorrect or incomplete or the"] + #[doc = " deserialization fails, an error is returned."] + #[doc = ""] + #[doc = " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no"] + #[doc = " defaults will be used."] + pub fn build_state( &self, + json: types::build_state::Json, ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< - types::CreateDefaultConfig, - types::create_default_config::output::Output, + types::BuildState, + types::build_state::output::Output, > { ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( "GenesisBuilder", - "create_default_config", - types::CreateDefaultConfig {}, + "build_state", + types::BuildState { json }, [ - 238u8, 5u8, 139u8, 81u8, 184u8, 155u8, 221u8, 118u8, 190u8, 76u8, - 229u8, 67u8, 132u8, 89u8, 83u8, 80u8, 56u8, 171u8, 169u8, 64u8, 123u8, - 20u8, 129u8, 159u8, 28u8, 135u8, 84u8, 52u8, 192u8, 98u8, 104u8, 214u8, + 203u8, 233u8, 104u8, 116u8, 111u8, 131u8, 201u8, 235u8, 117u8, 116u8, + 140u8, 185u8, 93u8, 25u8, 155u8, 210u8, 56u8, 49u8, 23u8, 32u8, 253u8, + 92u8, 149u8, 241u8, 85u8, 245u8, 137u8, 45u8, 209u8, 189u8, 81u8, 2u8, ], ) } - #[doc = " Build `GenesisConfig` from a JSON blob not using any defaults and store it in the storage."] + #[doc = " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by"] + #[doc = " `id`."] #[doc = ""] - #[doc = " This function deserializes the full `GenesisConfig` from the given JSON blob and puts it into the storage."] - #[doc = " If the provided JSON blob is incorrect or incomplete or the deserialization fails, an error is returned."] - #[doc = " It is recommended to log any errors encountered during the process."] + #[doc = " If `id` is `None` the function returns JSON blob representation of the default"] + #[doc = " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default"] + #[doc = " `RuntimeGenesisConfig`."] #[doc = ""] - #[doc = " Please note that provided json blob must contain all `GenesisConfig` fields, no defaults will be used."] - pub fn build_config( + #[doc = " Otherwise function returns a JSON representation of the built-in, named"] + #[doc = " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not"] + #[doc = " exists. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of"] + #[doc = " (potentially nested) key-value pairs that are intended for customizing the default"] + #[doc = " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation"] + #[doc = " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can"] + #[doc = " be used in `build_state` method."] + pub fn get_preset( &self, - json: types::build_config::Json, + id: types::get_preset::Id, ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< - types::BuildConfig, - types::build_config::output::Output, + types::GetPreset, + types::get_preset::output::Output, > { ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( "GenesisBuilder", - "build_config", - types::BuildConfig { json }, + "get_preset", + types::GetPreset { id }, [ - 6u8, 98u8, 68u8, 125u8, 157u8, 26u8, 107u8, 86u8, 213u8, 227u8, 26u8, - 229u8, 122u8, 161u8, 229u8, 114u8, 123u8, 192u8, 66u8, 231u8, 148u8, - 175u8, 5u8, 185u8, 248u8, 88u8, 40u8, 122u8, 230u8, 209u8, 170u8, - 254u8, + 43u8, 153u8, 23u8, 52u8, 113u8, 161u8, 227u8, 122u8, 169u8, 135u8, + 119u8, 8u8, 128u8, 33u8, 143u8, 235u8, 13u8, 173u8, 58u8, 121u8, 178u8, + 223u8, 66u8, 217u8, 22u8, 244u8, 168u8, 113u8, 202u8, 186u8, 241u8, + 124u8, + ], + ) + } + #[doc = " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets."] + #[doc = ""] + #[doc = " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If"] + #[doc = " no named presets are provided by the runtime the list is empty."] + pub fn preset_names( + &self, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::PresetNames, + types::preset_names::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "GenesisBuilder", + "preset_names", + types::PresetNames {}, + [ + 150u8, 117u8, 54u8, 129u8, 221u8, 130u8, 186u8, 71u8, 13u8, 140u8, + 77u8, 180u8, 141u8, 37u8, 22u8, 219u8, 149u8, 218u8, 186u8, 206u8, + 80u8, 42u8, 165u8, 41u8, 99u8, 184u8, 73u8, 37u8, 125u8, 188u8, 167u8, + 122u8, ], ) } } pub mod types { use super::runtime_types; - pub mod create_default_config { - use super::runtime_types; - pub mod output { - use super::runtime_types; - pub type Output = - ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; - } - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct CreateDefaultConfig {} - pub mod build_config { + pub mod build_state { use super::runtime_types; pub type Json = ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; @@ -3757,9 +4194,61 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct BuildConfig { - pub json: build_config::Json, + pub struct BuildState { + pub json: build_state::Json, } + pub mod get_preset { + use super::runtime_types; + pub type Id = + ::core::option::Option<::subxt::ext::subxt_core::alloc::string::String>; + pub mod output { + use super::runtime_types; + pub type Output = ::core::option::Option< + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct GetPreset { + pub id: get_preset::Id, + } + pub mod preset_names { + use super::runtime_types; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< + ::subxt::ext::subxt_core::alloc::string::String, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct PresetNames {} } } } @@ -3788,15 +4277,9 @@ pub mod api { pub fn transaction_payment(&self) -> transaction_payment::constants::ConstantsApi { transaction_payment::constants::ConstantsApi } - pub fn beefy(&self) -> beefy::constants::ConstantsApi { - beefy::constants::ConstantsApi - } pub fn grandpa(&self) -> grandpa::constants::ConstantsApi { grandpa::constants::ConstantsApi } - pub fn im_online(&self) -> im_online::constants::ConstantsApi { - im_online::constants::ConstantsApi - } pub fn treasury(&self) -> treasury::constants::ConstantsApi { treasury::constants::ConstantsApi } @@ -3873,6 +4356,12 @@ pub mod api { pub fn crowdloan(&self) -> crowdloan::constants::ConstantsApi { crowdloan::constants::ConstantsApi } + pub fn coretime(&self) -> coretime::constants::ConstantsApi { + coretime::constants::ConstantsApi + } + pub fn beefy(&self) -> beefy::constants::ConstantsApi { + beefy::constants::ConstantsApi + } pub fn assigned_slots(&self) -> assigned_slots::constants::ConstantsApi { assigned_slots::constants::ConstantsApi } @@ -3897,6 +4386,9 @@ pub mod api { pub fn balances(&self) -> balances::storage::StorageApi { balances::storage::StorageApi } + pub fn parameters(&self) -> parameters::storage::StorageApi { + parameters::storage::StorageApi + } pub fn transaction_payment(&self) -> transaction_payment::storage::StorageApi { transaction_payment::storage::StorageApi } @@ -3906,14 +4398,8 @@ pub mod api { pub fn offences(&self) -> offences::storage::StorageApi { offences::storage::StorageApi } - pub fn beefy(&self) -> beefy::storage::StorageApi { - beefy::storage::StorageApi - } - pub fn mmr(&self) -> mmr::storage::StorageApi { - mmr::storage::StorageApi - } - pub fn mmr_leaf(&self) -> mmr_leaf::storage::StorageApi { - mmr_leaf::storage::StorageApi + pub fn historical(&self) -> historical::storage::StorageApi { + historical::storage::StorageApi } pub fn session(&self) -> session::storage::StorageApi { session::storage::StorageApi @@ -3921,8 +4407,8 @@ pub mod api { pub fn grandpa(&self) -> grandpa::storage::StorageApi { grandpa::storage::StorageApi } - pub fn im_online(&self) -> im_online::storage::StorageApi { - im_online::storage::StorageApi + pub fn authority_discovery(&self) -> authority_discovery::storage::StorageApi { + authority_discovery::storage::StorageApi } pub fn treasury(&self) -> treasury::storage::StorageApi { treasury::storage::StorageApi @@ -4023,14 +4509,16 @@ pub mod api { pub fn message_queue(&self) -> message_queue::storage::StorageApi { message_queue::storage::StorageApi } - pub fn para_assignment_provider(&self) -> para_assignment_provider::storage::StorageApi { - para_assignment_provider::storage::StorageApi - } pub fn on_demand_assignment_provider( &self, ) -> on_demand_assignment_provider::storage::StorageApi { on_demand_assignment_provider::storage::StorageApi } + pub fn coretime_assignment_provider( + &self, + ) -> coretime_assignment_provider::storage::StorageApi { + coretime_assignment_provider::storage::StorageApi + } pub fn registrar(&self) -> registrar::storage::StorageApi { registrar::storage::StorageApi } @@ -4046,6 +4534,15 @@ pub mod api { pub fn xcm_pallet(&self) -> xcm_pallet::storage::StorageApi { xcm_pallet::storage::StorageApi } + pub fn beefy(&self) -> beefy::storage::StorageApi { + beefy::storage::StorageApi + } + pub fn mmr(&self) -> mmr::storage::StorageApi { + mmr::storage::StorageApi + } + pub fn mmr_leaf(&self) -> mmr_leaf::storage::StorageApi { + mmr_leaf::storage::StorageApi + } pub fn assigned_slots(&self) -> assigned_slots::storage::StorageApi { assigned_slots::storage::StorageApi } @@ -4076,8 +4573,8 @@ pub mod api { pub fn balances(&self) -> balances::calls::TransactionApi { balances::calls::TransactionApi } - pub fn beefy(&self) -> beefy::calls::TransactionApi { - beefy::calls::TransactionApi + pub fn parameters(&self) -> parameters::calls::TransactionApi { + parameters::calls::TransactionApi } pub fn session(&self) -> session::calls::TransactionApi { session::calls::TransactionApi @@ -4085,9 +4582,6 @@ pub mod api { pub fn grandpa(&self) -> grandpa::calls::TransactionApi { grandpa::calls::TransactionApi } - pub fn im_online(&self) -> im_online::calls::TransactionApi { - im_online::calls::TransactionApi - } pub fn treasury(&self) -> treasury::calls::TransactionApi { treasury::calls::TransactionApi } @@ -4198,9 +4692,18 @@ pub mod api { pub fn crowdloan(&self) -> crowdloan::calls::TransactionApi { crowdloan::calls::TransactionApi } + pub fn coretime(&self) -> coretime::calls::TransactionApi { + coretime::calls::TransactionApi + } pub fn xcm_pallet(&self) -> xcm_pallet::calls::TransactionApi { xcm_pallet::calls::TransactionApi } + pub fn beefy(&self) -> beefy::calls::TransactionApi { + beefy::calls::TransactionApi + } + pub fn identity_migrator(&self) -> identity_migrator::calls::TransactionApi { + identity_migrator::calls::TransactionApi + } pub fn paras_sudo_wrapper(&self) -> paras_sudo_wrapper::calls::TransactionApi { paras_sudo_wrapper::calls::TransactionApi } @@ -4213,6 +4716,9 @@ pub mod api { pub fn state_trie_migration(&self) -> state_trie_migration::calls::TransactionApi { state_trie_migration::calls::TransactionApi } + pub fn root_testing(&self) -> root_testing::calls::TransactionApi { + root_testing::calls::TransactionApi + } pub fn sudo(&self) -> sudo::calls::TransactionApi { sudo::calls::TransactionApi } @@ -4226,9 +4732,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 175u8, 118u8, 21u8, 61u8, 145u8, 16u8, 77u8, 206u8, 11u8, 26u8, 133u8, 39u8, 11u8, - 10u8, 45u8, 3u8, 37u8, 12u8, 170u8, 170u8, 252u8, 10u8, 141u8, 176u8, 190u8, 76u8, - 176u8, 211u8, 99u8, 9u8, 160u8, 78u8, + 45u8, 147u8, 222u8, 224u8, 134u8, 251u8, 240u8, 220u8, 113u8, 51u8, 168u8, 190u8, + 125u8, 200u8, 235u8, 218u8, 245u8, 224u8, 72u8, 91u8, 91u8, 25u8, 100u8, 235u8, + 113u8, 48u8, 204u8, 14u8, 216u8, 157u8, 192u8, 219u8, ] } pub mod system { @@ -4258,7 +4764,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remark`]."] + #[doc = "Make some on-chain remark."] + #[doc = ""] + #[doc = "Can be executed by every `origin`."] pub struct Remark { pub remark: remark::Remark, } @@ -4285,7 +4793,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_heap_pages`]."] + #[doc = "Set the number of pages in the WebAssembly environment's heap."] pub struct SetHeapPages { pub pages: set_heap_pages::Pages, } @@ -4311,7 +4819,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_code`]."] + #[doc = "Set the new runtime code."] pub struct SetCode { pub code: set_code::Code, } @@ -4338,7 +4846,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_code_without_checks`]."] + #[doc = "Set the new runtime code without doing any checks of the given `code`."] + #[doc = ""] + #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"] + #[doc = "version!"] pub struct SetCodeWithoutChecks { pub code: set_code_without_checks::Code, } @@ -4365,7 +4876,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_storage`]."] + #[doc = "Set some items of storage."] pub struct SetStorage { pub items: set_storage::Items, } @@ -4394,7 +4905,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill_storage`]."] + #[doc = "Kill some items from storage."] pub struct KillStorage { pub keys: kill_storage::Keys, } @@ -4422,7 +4933,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill_prefix`]."] + #[doc = "Kill all storage items with a key that starts with the given prefix."] + #[doc = ""] + #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"] + #[doc = "the prefix we are removing to accurately calculate the weight of this function."] pub struct KillPrefix { pub prefix: kill_prefix::Prefix, pub subkeys: kill_prefix::Subkeys, @@ -4451,7 +4965,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remark_with_event`]."] + #[doc = "Make some on-chain remark and emit event."] pub struct RemarkWithEvent { pub remark: remark_with_event::Remark, } @@ -4464,10 +4978,109 @@ pub mod api { const PALLET: &'static str = "System"; const CALL: &'static str = "remark_with_event"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "This call requires Root origin."] + pub struct AuthorizeUpgrade { + pub code_hash: authorize_upgrade::CodeHash, + } + pub mod authorize_upgrade { + use super::runtime_types; + pub type CodeHash = ::subxt::ext::subxt_core::utils::H256; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AuthorizeUpgrade { + const PALLET: &'static str = "System"; + const CALL: &'static str = "authorize_upgrade"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"] + #[doc = "example that the spec name remains the same and that the version number increases. Not"] + #[doc = "recommended for normal use. Use `authorize_upgrade` instead."] + #[doc = ""] + #[doc = "This call requires Root origin."] + pub struct AuthorizeUpgradeWithoutChecks { + pub code_hash: authorize_upgrade_without_checks::CodeHash, + } + pub mod authorize_upgrade_without_checks { + use super::runtime_types; + pub type CodeHash = ::subxt::ext::subxt_core::utils::H256; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AuthorizeUpgradeWithoutChecks { + const PALLET: &'static str = "System"; + const CALL: &'static str = "authorize_upgrade_without_checks"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."] + #[doc = ""] + #[doc = "If the authorization required a version check, this call will ensure the spec name"] + #[doc = "remains unchanged and that the spec version has increased."] + #[doc = ""] + #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"] + #[doc = "the new `code` in the same block or attempt to schedule the upgrade."] + #[doc = ""] + #[doc = "All origins are allowed."] + pub struct ApplyAuthorizedUpgrade { + pub code: apply_authorized_upgrade::Code, + } + pub mod apply_authorized_upgrade { + use super::runtime_types; + pub type Code = + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApplyAuthorizedUpgrade { + const PALLET: &'static str = "System"; + const CALL: &'static str = "apply_authorized_upgrade"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::remark`]."] + #[doc = "Make some on-chain remark."] + #[doc = ""] + #[doc = "Can be executed by every `origin`."] pub fn remark( &self, remark: types::remark::Remark, @@ -4485,7 +5098,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_heap_pages`]."] + #[doc = "Set the number of pages in the WebAssembly environment's heap."] pub fn set_heap_pages( &self, pages: types::set_heap_pages::Pages, @@ -4503,7 +5116,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_code`]."] + #[doc = "Set the new runtime code."] pub fn set_code( &self, code: types::set_code::Code, @@ -4520,7 +5133,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_code_without_checks`]."] + #[doc = "Set the new runtime code without doing any checks of the given `code`."] + #[doc = ""] + #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"] + #[doc = "version!"] pub fn set_code_without_checks( &self, code: types::set_code_without_checks::Code, @@ -4538,7 +5154,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_storage`]."] + #[doc = "Set some items of storage."] pub fn set_storage( &self, items: types::set_storage::Items, @@ -4556,7 +5172,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill_storage`]."] + #[doc = "Kill some items from storage."] pub fn kill_storage( &self, keys: types::kill_storage::Keys, @@ -4574,7 +5190,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill_prefix`]."] + #[doc = "Kill all storage items with a key that starts with the given prefix."] + #[doc = ""] + #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"] + #[doc = "the prefix we are removing to accurately calculate the weight of this function."] pub fn kill_prefix( &self, prefix: types::kill_prefix::Prefix, @@ -4593,7 +5212,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remark_with_event`]."] + #[doc = "Make some on-chain remark and emit event."] pub fn remark_with_event( &self, remark: types::remark_with_event::Remark, @@ -4610,6 +5229,79 @@ pub mod api { ], ) } + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "This call requires Root origin."] + pub fn authorize_upgrade( + &self, + code_hash: types::authorize_upgrade::CodeHash, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "System", + "authorize_upgrade", + types::AuthorizeUpgrade { code_hash }, + [ + 4u8, 14u8, 76u8, 107u8, 209u8, 129u8, 9u8, 39u8, 193u8, 17u8, 84u8, + 254u8, 170u8, 214u8, 24u8, 155u8, 29u8, 184u8, 249u8, 241u8, 109u8, + 58u8, 145u8, 131u8, 109u8, 63u8, 38u8, 165u8, 107u8, 215u8, 217u8, + 172u8, + ], + ) + } + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"] + #[doc = "example that the spec name remains the same and that the version number increases. Not"] + #[doc = "recommended for normal use. Use `authorize_upgrade` instead."] + #[doc = ""] + #[doc = "This call requires Root origin."] + pub fn authorize_upgrade_without_checks( + &self, + code_hash: types::authorize_upgrade_without_checks::CodeHash, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::AuthorizeUpgradeWithoutChecks, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "System", + "authorize_upgrade_without_checks", + types::AuthorizeUpgradeWithoutChecks { code_hash }, + [ + 126u8, 126u8, 55u8, 26u8, 47u8, 55u8, 66u8, 8u8, 167u8, 18u8, 29u8, + 136u8, 146u8, 14u8, 189u8, 117u8, 16u8, 227u8, 162u8, 61u8, 149u8, + 197u8, 104u8, 184u8, 185u8, 161u8, 99u8, 154u8, 80u8, 125u8, 181u8, + 233u8, + ], + ) + } + #[doc = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."] + #[doc = ""] + #[doc = "If the authorization required a version check, this call will ensure the spec name"] + #[doc = "remains unchanged and that the spec version has increased."] + #[doc = ""] + #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"] + #[doc = "the new `code` in the same block or attempt to schedule the upgrade."] + #[doc = ""] + #[doc = "All origins are allowed."] + pub fn apply_authorized_upgrade( + &self, + code: types::apply_authorized_upgrade::Code, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ApplyAuthorizedUpgrade, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "System", + "apply_authorized_upgrade", + types::ApplyAuthorizedUpgrade { code }, + [ + 232u8, 107u8, 127u8, 38u8, 230u8, 29u8, 97u8, 4u8, 160u8, 191u8, 222u8, + 156u8, 245u8, 102u8, 196u8, 141u8, 44u8, 163u8, 98u8, 68u8, 125u8, + 32u8, 124u8, 101u8, 108u8, 93u8, 211u8, 52u8, 0u8, 231u8, 33u8, 227u8, + ], + ) + } } } #[doc = "Event for the System pallet."] @@ -4746,6 +5438,30 @@ pub mod api { const PALLET: &'static str = "System"; const EVENT: &'static str = "Remarked"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "An upgrade was authorized."] + pub struct UpgradeAuthorized { + pub code_hash: upgrade_authorized::CodeHash, + pub check_version: upgrade_authorized::CheckVersion, + } + pub mod upgrade_authorized { + use super::runtime_types; + pub type CodeHash = ::subxt::ext::subxt_core::utils::H256; + pub type CheckVersion = ::core::primitive::bool; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeAuthorized { + const PALLET: &'static str = "System"; + const EVENT: &'static str = "UpgradeAuthorized"; + } } pub mod storage { use super::runtime_types; @@ -4763,6 +5479,10 @@ pub mod api { use super::runtime_types; pub type ExtrinsicCount = ::core::primitive::u32; } + pub mod inherents_applied { + use super::runtime_types; + pub type InherentsApplied = ::core::primitive::bool; + } pub mod block_weight { use super::runtime_types; pub type BlockWeight = runtime_types::frame_support::dispatch::PerDispatchClass< @@ -4834,6 +5554,11 @@ pub mod api { use super::runtime_types; pub type ExecutionPhase = runtime_types::frame_system::Phase; } + pub mod authorized_upgrade { + use super::runtime_types; + pub type AuthorizedUpgrade = + runtime_types::frame_system::CodeUpgradeAuthorization; + } } pub struct StorageApi; impl StorageApi { @@ -4906,6 +5631,27 @@ pub mod api { ], ) } + #[doc = " Whether all inherents have been applied."] + pub fn inherents_applied( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::inherents_applied::InherentsApplied, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "System", + "InherentsApplied", + (), + [ + 132u8, 249u8, 142u8, 252u8, 8u8, 103u8, 80u8, 120u8, 50u8, 6u8, 188u8, + 223u8, 101u8, 55u8, 165u8, 189u8, 172u8, 249u8, 165u8, 230u8, 183u8, + 109u8, 34u8, 65u8, 185u8, 150u8, 29u8, 8u8, 186u8, 129u8, 135u8, 239u8, + ], + ) + } #[doc = " The current weight for the block."] pub fn block_weight( &self, @@ -5129,10 +5875,9 @@ pub mod api { "Events", (), [ - 52u8, 237u8, 85u8, 54u8, 238u8, 212u8, 107u8, 140u8, 46u8, 226u8, - 212u8, 254u8, 94u8, 185u8, 110u8, 10u8, 52u8, 19u8, 52u8, 76u8, 50u8, - 110u8, 156u8, 8u8, 175u8, 172u8, 137u8, 145u8, 2u8, 163u8, 167u8, - 186u8, + 84u8, 28u8, 250u8, 81u8, 40u8, 13u8, 135u8, 170u8, 3u8, 113u8, 248u8, + 222u8, 138u8, 9u8, 41u8, 241u8, 61u8, 18u8, 77u8, 116u8, 249u8, 90u8, + 236u8, 58u8, 59u8, 40u8, 199u8, 30u8, 216u8, 167u8, 198u8, 208u8, ], ) } @@ -5309,6 +6054,27 @@ pub mod api { ], ) } + #[doc = " `Some` if a code upgrade has been authorized."] + pub fn authorized_upgrade( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::authorized_upgrade::AuthorizedUpgrade, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "System", + "AuthorizedUpgrade", + (), + [ + 165u8, 97u8, 27u8, 138u8, 2u8, 28u8, 55u8, 92u8, 96u8, 96u8, 168u8, + 169u8, 55u8, 178u8, 44u8, 127u8, 58u8, 140u8, 206u8, 178u8, 1u8, 37u8, + 214u8, 213u8, 251u8, 123u8, 5u8, 111u8, 90u8, 148u8, 217u8, 135u8, + ], + ) + } } } pub mod constants { @@ -5381,7 +6147,7 @@ pub mod api { ], ) } - #[doc = " Get the chain's current version."] + #[doc = " Get the chain's in-code version."] pub fn version( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -5448,7 +6214,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] pub struct ReportEquivocation { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_equivocation::EquivocationProof, @@ -5484,7 +6253,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] pub struct ReportEquivocationUnsigned { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_equivocation_unsigned::EquivocationProof, @@ -5520,7 +6296,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::plan_config_change`]."] + #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"] + #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."] + #[doc = "Multiple calls to this method will replace any existing planned config change that had"] + #[doc = "not been enacted yet."] pub struct PlanConfigChange { pub config: plan_config_change::Config, } @@ -5536,7 +6315,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] pub fn report_equivocation( &self, equivocation_proof: types::report_equivocation::EquivocationProof, @@ -5553,14 +6335,21 @@ pub mod api { key_owner_proof, }, [ - 37u8, 70u8, 151u8, 149u8, 231u8, 197u8, 226u8, 88u8, 38u8, 138u8, - 147u8, 164u8, 250u8, 117u8, 156u8, 178u8, 44u8, 20u8, 123u8, 33u8, - 11u8, 106u8, 56u8, 122u8, 90u8, 11u8, 15u8, 219u8, 245u8, 18u8, 171u8, - 90u8, + 97u8, 65u8, 136u8, 207u8, 137u8, 113u8, 206u8, 76u8, 166u8, 245u8, + 231u8, 162u8, 65u8, 47u8, 251u8, 149u8, 68u8, 179u8, 13u8, 123u8, + 209u8, 146u8, 83u8, 54u8, 14u8, 150u8, 62u8, 195u8, 27u8, 190u8, 76u8, + 224u8, ], ) } - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] pub fn report_equivocation_unsigned( &self, equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, @@ -5578,13 +6367,16 @@ pub mod api { key_owner_proof, }, [ - 179u8, 248u8, 80u8, 171u8, 220u8, 8u8, 75u8, 215u8, 121u8, 151u8, - 255u8, 4u8, 6u8, 54u8, 141u8, 244u8, 111u8, 156u8, 183u8, 19u8, 192u8, - 195u8, 79u8, 53u8, 0u8, 170u8, 120u8, 227u8, 186u8, 45u8, 48u8, 57u8, + 184u8, 158u8, 14u8, 168u8, 175u8, 23u8, 10u8, 63u8, 54u8, 15u8, 182u8, + 163u8, 5u8, 49u8, 223u8, 197u8, 45u8, 204u8, 216u8, 26u8, 126u8, 157u8, + 242u8, 233u8, 228u8, 203u8, 117u8, 216u8, 185u8, 157u8, 199u8, 117u8, ], ) } - #[doc = "See [`Pallet::plan_config_change`]."] + #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"] + #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."] + #[doc = "Multiple calls to this method will replace any existing planned config change that had"] + #[doc = "not been enacted yet."] pub fn plan_config_change( &self, config: types::plan_config_change::Config, @@ -5656,7 +6448,7 @@ pub mod api { pub mod under_construction { use super::runtime_types; pub type UnderConstruction = - runtime_types::bounded_collections::bounded_vec::BoundedVec6< + runtime_types::bounded_collections::bounded_vec::BoundedVec7< [::core::primitive::u8; 32usize], >; pub type Param0 = ::core::primitive::u32; @@ -5692,7 +6484,7 @@ pub mod api { pub mod skipped_epochs { use super::runtime_types; pub type SkippedEpochs = - runtime_types::bounded_collections::bounded_vec::BoundedVec7<( + runtime_types::bounded_collections::bounded_vec::BoundedVec8<( ::core::primitive::u64, ::core::primitive::u32, )>; @@ -5737,10 +6529,10 @@ pub mod api { "Authorities", (), [ - 67u8, 196u8, 244u8, 13u8, 246u8, 245u8, 198u8, 98u8, 81u8, 55u8, 182u8, - 187u8, 214u8, 5u8, 181u8, 76u8, 251u8, 213u8, 144u8, 166u8, 36u8, - 153u8, 234u8, 181u8, 252u8, 55u8, 198u8, 175u8, 55u8, 211u8, 105u8, - 85u8, + 192u8, 157u8, 98u8, 244u8, 104u8, 38u8, 195u8, 114u8, 183u8, 62u8, + 247u8, 18u8, 31u8, 152u8, 246u8, 206u8, 97u8, 13u8, 118u8, 211u8, + 104u8, 54u8, 150u8, 152u8, 126u8, 170u8, 228u8, 158u8, 108u8, 129u8, + 134u8, 44u8, ], ) } @@ -5877,10 +6669,9 @@ pub mod api { "NextAuthorities", (), [ - 116u8, 95u8, 126u8, 199u8, 237u8, 90u8, 202u8, 227u8, 247u8, 56u8, - 201u8, 113u8, 239u8, 191u8, 151u8, 56u8, 156u8, 133u8, 61u8, 64u8, - 141u8, 26u8, 8u8, 95u8, 177u8, 255u8, 54u8, 223u8, 132u8, 74u8, 210u8, - 128u8, + 29u8, 161u8, 79u8, 221u8, 198u8, 101u8, 11u8, 17u8, 20u8, 17u8, 225u8, + 144u8, 35u8, 150u8, 241u8, 190u8, 106u8, 32u8, 230u8, 14u8, 212u8, + 126u8, 1u8, 96u8, 73u8, 173u8, 245u8, 39u8, 153u8, 33u8, 205u8, 174u8, ], ) } @@ -5977,9 +6768,10 @@ pub mod api { "Initialized", (), [ - 137u8, 31u8, 4u8, 130u8, 35u8, 232u8, 67u8, 108u8, 17u8, 123u8, 26u8, - 96u8, 238u8, 95u8, 138u8, 208u8, 163u8, 83u8, 218u8, 143u8, 8u8, 119u8, - 138u8, 130u8, 9u8, 194u8, 92u8, 40u8, 7u8, 89u8, 53u8, 237u8, + 169u8, 217u8, 237u8, 78u8, 186u8, 202u8, 206u8, 213u8, 54u8, 85u8, + 206u8, 166u8, 22u8, 138u8, 236u8, 60u8, 211u8, 169u8, 12u8, 183u8, + 23u8, 69u8, 194u8, 236u8, 112u8, 21u8, 62u8, 219u8, 92u8, 131u8, 134u8, + 145u8, ], ) } @@ -6242,7 +7034,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set`]."] + #[doc = "Set the current time."] + #[doc = ""] + #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"] + #[doc = "phase, if this call hasn't been invoked by that time."] + #[doc = ""] + #[doc = "The timestamp should be greater than the previous one by the amount specified by"] + #[doc = "[`Config::MinimumPeriod`]."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"] + #[doc = "that changing the complexity of this call could result exhausting the resources in a"] + #[doc = "block to execute any other calls."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"] + #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"] + #[doc = " `on_finalize`)"] + #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."] pub struct Set { #[codec(compact)] pub now: set::Now, @@ -6258,7 +7068,25 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::set`]."] + #[doc = "Set the current time."] + #[doc = ""] + #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"] + #[doc = "phase, if this call hasn't been invoked by that time."] + #[doc = ""] + #[doc = "The timestamp should be greater than the previous one by the amount specified by"] + #[doc = "[`Config::MinimumPeriod`]."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"] + #[doc = "that changing the complexity of this call could result exhausting the resources in a"] + #[doc = "block to execute any other calls."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"] + #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"] + #[doc = " `on_finalize`)"] + #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."] pub fn set( &self, now: types::set::Now, @@ -6396,7 +7224,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim`]."] + #[doc = "Assign an previously unassigned index."] + #[doc = ""] + #[doc = "Payment: `Deposit` is reserved from the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be claimed. This must not be in use."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Claim { pub index: claim::Index, } @@ -6422,7 +7261,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer`]."] + #[doc = "Assign an index already owned by the sender to another account. The balance reservation"] + #[doc = "is effectively transferred to the new account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Transfer { pub new: transfer::New, pub index: transfer::Index, @@ -6453,7 +7303,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::free`]."] + #[doc = "Free up an index owned by the sender."] + #[doc = ""] + #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."] + #[doc = ""] + #[doc = "- `index`: the index to be freed. This must be owned by the sender."] + #[doc = ""] + #[doc = "Emits `IndexFreed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Free { pub index: free::Index, } @@ -6479,7 +7340,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"] + #[doc = "held, then any deposit is reimbursed to its current owner."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `index`: the index to be (re-)assigned."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct ForceTransfer { pub new: force_transfer::New, pub index: force_transfer::Index, @@ -6512,7 +7385,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::freeze`]."] + #[doc = "Freeze an index so it will always point to the sender account. This consumes the"] + #[doc = "deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"] + #[doc = "non-frozen account `index`."] + #[doc = ""] + #[doc = "- `index`: the index to be frozen in place."] + #[doc = ""] + #[doc = "Emits `IndexFrozen` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Freeze { pub index: freeze::Index, } @@ -6527,7 +7411,18 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::claim`]."] + #[doc = "Assign an previously unassigned index."] + #[doc = ""] + #[doc = "Payment: `Deposit` is reserved from the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be claimed. This must not be in use."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn claim( &self, index: types::claim::Index, @@ -6544,7 +7439,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer`]."] + #[doc = "Assign an index already owned by the sender to another account. The balance reservation"] + #[doc = "is effectively transferred to the new account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn transfer( &self, new: types::transfer::New, @@ -6563,7 +7469,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::free`]."] + #[doc = "Free up an index owned by the sender."] + #[doc = ""] + #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."] + #[doc = ""] + #[doc = "- `index`: the index to be freed. This must be owned by the sender."] + #[doc = ""] + #[doc = "Emits `IndexFreed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn free( &self, index: types::free::Index, @@ -6581,7 +7498,19 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"] + #[doc = "held, then any deposit is reimbursed to its current owner."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `index`: the index to be (re-)assigned."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn force_transfer( &self, new: types::force_transfer::New, @@ -6601,7 +7530,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::freeze`]."] + #[doc = "Freeze an index so it will always point to the sender account. This consumes the"] + #[doc = "deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"] + #[doc = "non-frozen account `index`."] + #[doc = ""] + #[doc = "- `index`: the index to be frozen in place."] + #[doc = ""] + #[doc = "Emits `IndexFrozen` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn freeze( &self, index: types::freeze::Index, @@ -6813,7 +7753,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] pub struct TransferAllowDeath { pub dest: transfer_allow_death::Dest, #[codec(compact)] @@ -6845,7 +7791,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] pub struct ForceTransfer { pub source: force_transfer::Source, pub dest: force_transfer::Dest, @@ -6882,7 +7829,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] pub struct TransferKeepAlive { pub dest: transfer_keep_alive::Dest, #[codec(compact)] @@ -6914,7 +7866,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] pub struct TransferAll { pub dest: transfer_all::Dest, pub keep_alive: transfer_all::KeepAlive, @@ -6945,7 +7911,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] pub struct ForceUnreserve { pub who: force_unreserve::Who, pub amount: force_unreserve::Amount, @@ -6976,7 +7944,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] pub struct UpgradeAccounts { pub who: upgrade_accounts::Who, } @@ -7004,7 +7979,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] pub struct ForceSetBalance { pub who: force_set_balance::Who, #[codec(compact)] @@ -7022,10 +7999,49 @@ pub mod api { const PALLET: &'static str = "Balances"; const CALL: &'static str = "force_set_balance"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + pub struct ForceAdjustTotalIssuance { + pub direction: force_adjust_total_issuance::Direction, + #[codec(compact)] + pub delta: force_adjust_total_issuance::Delta, + } + pub mod force_adjust_total_issuance { + use super::runtime_types; + pub type Direction = runtime_types::pallet_balances::types::AdjustmentDirection; + pub type Delta = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceAdjustTotalIssuance { + const PALLET: &'static str = "Balances"; + const CALL: &'static str = "force_adjust_total_issuance"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] pub fn transfer_allow_death( &self, dest: types::transfer_allow_death::Dest, @@ -7044,7 +8060,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] pub fn force_transfer( &self, source: types::force_transfer::Source, @@ -7067,7 +8084,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] pub fn transfer_keep_alive( &self, dest: types::transfer_keep_alive::Dest, @@ -7085,7 +8107,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] pub fn transfer_all( &self, dest: types::transfer_all::Dest, @@ -7103,7 +8139,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] pub fn force_unreserve( &self, who: types::force_unreserve::Who, @@ -7122,7 +8160,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] pub fn upgrade_accounts( &self, who: types::upgrade_accounts::Who, @@ -7139,7 +8184,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] pub fn force_set_balance( &self, who: types::force_set_balance::Who, @@ -7157,6 +8204,30 @@ pub mod api { ], ) } + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + pub fn force_adjust_total_issuance( + &self, + direction: types::force_adjust_total_issuance::Direction, + delta: types::force_adjust_total_issuance::Delta, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ForceAdjustTotalIssuance, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Balances", + "force_adjust_total_issuance", + types::ForceAdjustTotalIssuance { direction, delta }, + [ + 208u8, 134u8, 56u8, 133u8, 232u8, 164u8, 10u8, 213u8, 53u8, 193u8, + 190u8, 63u8, 236u8, 186u8, 96u8, 122u8, 104u8, 87u8, 173u8, 38u8, 58u8, + 176u8, 21u8, 78u8, 42u8, 106u8, 46u8, 248u8, 251u8, 190u8, 150u8, + 202u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -7670,6 +8741,30 @@ pub mod api { const PALLET: &'static str = "Balances"; const EVENT: &'static str = "Thawed"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The `TotalIssuance` was forcefully changed."] + pub struct TotalIssuanceForced { + pub old: total_issuance_forced::Old, + pub new: total_issuance_forced::New, + } + pub mod total_issuance_forced { + use super::runtime_types; + pub type Old = ::core::primitive::u128; + pub type New = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for TotalIssuanceForced { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "TotalIssuanceForced"; + } } pub mod storage { use super::runtime_types; @@ -7702,7 +8797,7 @@ pub mod api { pub mod reserves { use super::runtime_types; pub type Reserves = - runtime_types::bounded_collections::bounded_vec::BoundedVec8< + runtime_types::bounded_collections::bounded_vec::BoundedVec9< runtime_types::pallet_balances::types::ReserveData< [::core::primitive::u8; 8usize], ::core::primitive::u128, @@ -7712,7 +8807,7 @@ pub mod api { } pub mod holds { use super::runtime_types; - pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec9< + pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec10< runtime_types::pallet_balances::types::IdAmount< runtime_types::rococo_runtime::RuntimeHoldReason, ::core::primitive::u128, @@ -7723,7 +8818,7 @@ pub mod api { pub mod freezes { use super::runtime_types; pub type Freezes = - runtime_types::bounded_collections::bounded_vec::BoundedVec10< + runtime_types::bounded_collections::bounded_vec::BoundedVec11< runtime_types::pallet_balances::types::IdAmount< (), ::core::primitive::u128, @@ -7872,6 +8967,8 @@ pub mod api { } #[doc = " Any liquidity locks on some account balances."] #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn locks_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -7894,6 +8991,8 @@ pub mod api { } #[doc = " Any liquidity locks on some account balances."] #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn locks( &self, _0: impl ::core::borrow::Borrow, @@ -7920,6 +9019,8 @@ pub mod api { ) } #[doc = " Named reserves on some account balances."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn reserves_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -7941,6 +9042,8 @@ pub mod api { ) } #[doc = " Named reserves on some account balances."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn reserves( &self, _0: impl ::core::borrow::Borrow, @@ -7981,10 +9084,10 @@ pub mod api { "Holds", (), [ - 72u8, 161u8, 107u8, 123u8, 240u8, 3u8, 198u8, 75u8, 46u8, 131u8, 122u8, - 141u8, 253u8, 141u8, 232u8, 192u8, 146u8, 54u8, 174u8, 162u8, 48u8, - 165u8, 226u8, 233u8, 12u8, 227u8, 23u8, 17u8, 237u8, 179u8, 193u8, - 166u8, + 181u8, 39u8, 29u8, 45u8, 45u8, 198u8, 129u8, 210u8, 189u8, 183u8, + 121u8, 125u8, 57u8, 90u8, 95u8, 107u8, 51u8, 13u8, 22u8, 105u8, 191u8, + 61u8, 54u8, 182u8, 50u8, 200u8, 137u8, 247u8, 180u8, 158u8, 16u8, + 193u8, ], ) } @@ -8008,10 +9111,10 @@ pub mod api { _0.borrow(), ), [ - 72u8, 161u8, 107u8, 123u8, 240u8, 3u8, 198u8, 75u8, 46u8, 131u8, 122u8, - 141u8, 253u8, 141u8, 232u8, 192u8, 146u8, 54u8, 174u8, 162u8, 48u8, - 165u8, 226u8, 233u8, 12u8, 227u8, 23u8, 17u8, 237u8, 179u8, 193u8, - 166u8, + 181u8, 39u8, 29u8, 45u8, 45u8, 198u8, 129u8, 210u8, 189u8, 183u8, + 121u8, 125u8, 57u8, 90u8, 95u8, 107u8, 51u8, 13u8, 22u8, 105u8, 191u8, + 61u8, 54u8, 182u8, 50u8, 200u8, 137u8, 247u8, 180u8, 158u8, 16u8, + 193u8, ], ) } @@ -8093,6 +9196,8 @@ pub mod api { } #[doc = " The maximum number of locks that should exist on an account."] #[doc = " Not strictly enforced, but used for weight estimation."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn max_locks( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -8110,6 +9215,8 @@ pub mod api { ) } #[doc = " The maximum number of named reserves that can exist on an account."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn max_reserves( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -8126,23 +9233,6 @@ pub mod api { ], ) } - #[doc = " The maximum number of holds that can exist on an account at any time."] - pub fn max_holds( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Balances", - "MaxHolds", - [ - 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, - 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, - 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, - 145u8, - ], - ) - } #[doc = " The maximum number of individual freeze locks that can exist on an account at any time."] pub fn max_freezes( &self, @@ -8163,6 +9253,170 @@ pub mod api { } } } + pub mod parameters { + use super::root_mod; + use super::runtime_types; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::pallet_parameters::pallet::Call; + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set the value of a parameter."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"] + #[doc = "deleted by setting them to `None`."] + pub struct SetParameter { + pub key_value: set_parameter::KeyValue, + } + pub mod set_parameter { + use super::runtime_types; + pub type KeyValue = runtime_types::rococo_runtime::RuntimeParameters; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetParameter { + const PALLET: &'static str = "Parameters"; + const CALL: &'static str = "set_parameter"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Set the value of a parameter."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"] + #[doc = "deleted by setting them to `None`."] + pub fn set_parameter( + &self, + key_value: types::set_parameter::KeyValue, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Parameters", + "set_parameter", + types::SetParameter { key_value }, + [ + 82u8, 119u8, 126u8, 179u8, 210u8, 236u8, 135u8, 48u8, 188u8, 108u8, + 183u8, 91u8, 202u8, 109u8, 117u8, 199u8, 73u8, 154u8, 5u8, 3u8, 122u8, + 247u8, 107u8, 7u8, 55u8, 20u8, 127u8, 171u8, 14u8, 177u8, 4u8, 225u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::pallet_parameters::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A Parameter was set."] + #[doc = ""] + #[doc = "Is also emitted when the value was not changed."] + pub struct Updated { + pub key: updated::Key, + pub old_value: updated::OldValue, + pub new_value: updated::NewValue, + } + pub mod updated { + use super::runtime_types; + pub type Key = runtime_types::rococo_runtime::RuntimeParametersKey; + pub type OldValue = + ::core::option::Option; + pub type NewValue = + ::core::option::Option; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for Updated { + const PALLET: &'static str = "Parameters"; + const EVENT: &'static str = "Updated"; + } + } + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod parameters { + use super::runtime_types; + pub type Parameters = runtime_types::rococo_runtime::RuntimeParametersValue; + pub type Param0 = runtime_types::rococo_runtime::RuntimeParametersKey; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Stored parameters."] + pub fn parameters_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::parameters::Parameters, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Parameters", + "Parameters", + (), + [ + 151u8, 247u8, 90u8, 253u8, 217u8, 155u8, 50u8, 150u8, 159u8, 224u8, + 124u8, 167u8, 68u8, 13u8, 0u8, 119u8, 152u8, 79u8, 233u8, 67u8, 226u8, + 226u8, 85u8, 11u8, 70u8, 154u8, 245u8, 119u8, 26u8, 172u8, 149u8, + 110u8, + ], + ) + } + #[doc = " Stored parameters."] + pub fn parameters( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::parameters::Param0, + >, + types::parameters::Parameters, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Parameters", + "Parameters", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 151u8, 247u8, 90u8, 253u8, 217u8, 155u8, 50u8, 150u8, 159u8, 224u8, + 124u8, 167u8, 68u8, 13u8, 0u8, 119u8, 152u8, 79u8, 233u8, 67u8, 226u8, + 226u8, 85u8, 11u8, 70u8, 154u8, 245u8, 119u8, 26u8, 172u8, 149u8, + 110u8, + ], + ) + } + } + } + } pub mod transaction_payment { use super::root_mod; use super::runtime_types; @@ -8262,10 +9516,10 @@ pub mod api { use super::runtime_types; pub struct ConstantsApi; impl ConstantsApi { - #[doc = " A fee mulitplier for `Operational` extrinsics to compute \"virtual tip\" to boost their"] + #[doc = " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their"] #[doc = " `priority`"] #[doc = ""] - #[doc = " This value is multipled by the `final_fee` to obtain a \"virtual tip\" that is later"] + #[doc = " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later"] #[doc = " added to a tip component in regular `priority` calculations."] #[doc = " It means that a `Normal` transaction can front-run a similarly-sized `Operational`"] #[doc = " extrinsic (with no tip), by including a tip value greater than the virtual tip."] @@ -8541,625 +9795,92 @@ pub mod api { pub mod historical { use super::root_mod; use super::runtime_types; - } - pub mod beefy { - use super::root_mod; - use super::runtime_types; - #[doc = "The `Error` enum of this pallet."] - pub type Error = runtime_types::pallet_beefy::pallet::Error; - #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] - pub type Call = runtime_types::pallet_beefy::pallet::Call; - pub mod calls { - use super::root_mod; - use super::runtime_types; - type DispatchError = runtime_types::sp_runtime::DispatchError; - pub mod types { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "See [`Pallet::report_equivocation`]."] - pub struct ReportEquivocation { - pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - report_equivocation::EquivocationProof, - >, - pub key_owner_proof: report_equivocation::KeyOwnerProof, - } - pub mod report_equivocation { - use super::runtime_types; - pub type EquivocationProof = - runtime_types::sp_consensus_beefy::EquivocationProof< - ::core::primitive::u32, - runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, - runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, - >; - pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocation { - const PALLET: &'static str = "Beefy"; - const CALL: &'static str = "report_equivocation"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] - pub struct ReportEquivocationUnsigned { - pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - report_equivocation_unsigned::EquivocationProof, - >, - pub key_owner_proof: report_equivocation_unsigned::KeyOwnerProof, - } - pub mod report_equivocation_unsigned { - use super::runtime_types; - pub type EquivocationProof = - runtime_types::sp_consensus_beefy::EquivocationProof< - ::core::primitive::u32, - runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, - runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, - >; - pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocationUnsigned { - const PALLET: &'static str = "Beefy"; - const CALL: &'static str = "report_equivocation_unsigned"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "See [`Pallet::set_new_genesis`]."] - pub struct SetNewGenesis { - pub delay_in_blocks: set_new_genesis::DelayInBlocks, - } - pub mod set_new_genesis { - use super::runtime_types; - pub type DelayInBlocks = ::core::primitive::u32; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNewGenesis { - const PALLET: &'static str = "Beefy"; - const CALL: &'static str = "set_new_genesis"; - } - } - pub struct TransactionApi; - impl TransactionApi { - #[doc = "See [`Pallet::report_equivocation`]."] - pub fn report_equivocation( - &self, - equivocation_proof: types::report_equivocation::EquivocationProof, - key_owner_proof: types::report_equivocation::KeyOwnerProof, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Beefy", - "report_equivocation", - types::ReportEquivocation { - equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( - equivocation_proof, - ), - key_owner_proof, - }, - [ - 156u8, 32u8, 92u8, 179u8, 165u8, 93u8, 216u8, 130u8, 121u8, 225u8, - 33u8, 141u8, 255u8, 12u8, 101u8, 136u8, 177u8, 25u8, 23u8, 239u8, 12u8, - 142u8, 88u8, 228u8, 85u8, 171u8, 218u8, 185u8, 146u8, 245u8, 149u8, - 85u8, - ], - ) - } - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] - pub fn report_equivocation_unsigned( - &self, - equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, - key_owner_proof: types::report_equivocation_unsigned::KeyOwnerProof, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< - types::ReportEquivocationUnsigned, - > { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Beefy", - "report_equivocation_unsigned", - types::ReportEquivocationUnsigned { - equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( - equivocation_proof, - ), - key_owner_proof, - }, - [ - 126u8, 201u8, 236u8, 234u8, 107u8, 52u8, 37u8, 115u8, 228u8, 232u8, - 103u8, 193u8, 143u8, 224u8, 79u8, 192u8, 207u8, 204u8, 161u8, 103u8, - 210u8, 131u8, 64u8, 251u8, 48u8, 196u8, 249u8, 148u8, 2u8, 179u8, - 135u8, 121u8, - ], - ) - } - #[doc = "See [`Pallet::set_new_genesis`]."] - pub fn set_new_genesis( - &self, - delay_in_blocks: types::set_new_genesis::DelayInBlocks, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Beefy", - "set_new_genesis", - types::SetNewGenesis { delay_in_blocks }, - [ - 147u8, 6u8, 252u8, 43u8, 77u8, 91u8, 170u8, 45u8, 112u8, 155u8, 158u8, - 79u8, 1u8, 116u8, 162u8, 146u8, 181u8, 9u8, 171u8, 48u8, 198u8, 210u8, - 243u8, 64u8, 229u8, 35u8, 28u8, 177u8, 144u8, 22u8, 165u8, 163u8, - ], - ) - } - } - } pub mod storage { use super::runtime_types; pub mod types { use super::runtime_types; - pub mod authorities { + pub mod historical_sessions { use super::runtime_types; - pub type Authorities = - runtime_types::bounded_collections::bounded_vec::BoundedVec11< - runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, - >; + pub type HistoricalSessions = ( + ::subxt::ext::subxt_core::utils::H256, + ::core::primitive::u32, + ); + pub type Param0 = ::core::primitive::u32; } - pub mod validator_set_id { + pub mod stored_range { use super::runtime_types; - pub type ValidatorSetId = ::core::primitive::u64; - } - pub mod next_authorities { - use super::runtime_types; - pub type NextAuthorities = - runtime_types::bounded_collections::bounded_vec::BoundedVec11< - runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, - >; - } - pub mod set_id_session { - use super::runtime_types; - pub type SetIdSession = ::core::primitive::u32; - pub type Param0 = ::core::primitive::u64; - } - pub mod genesis_block { - use super::runtime_types; - pub type GenesisBlock = ::core::option::Option<::core::primitive::u32>; + pub type StoredRange = (::core::primitive::u32, ::core::primitive::u32); } } pub struct StorageApi; impl StorageApi { - #[doc = " The current authorities set"] - pub fn authorities( + #[doc = " Mapping from historical session indices to session-data root hash and validator count."] + pub fn historical_sessions_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::authorities::Authorities, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "Authorities", - (), - [ - 53u8, 171u8, 94u8, 33u8, 46u8, 83u8, 105u8, 120u8, 123u8, 201u8, 141u8, - 71u8, 131u8, 150u8, 51u8, 121u8, 67u8, 45u8, 249u8, 146u8, 85u8, 113u8, - 23u8, 59u8, 59u8, 41u8, 0u8, 226u8, 98u8, 166u8, 253u8, 59u8, - ], - ) - } - #[doc = " The current validator set id"] - pub fn validator_set_id( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::validator_set_id::ValidatorSetId, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "ValidatorSetId", - (), - [ - 168u8, 84u8, 23u8, 134u8, 153u8, 30u8, 183u8, 176u8, 206u8, 100u8, - 109u8, 86u8, 109u8, 126u8, 146u8, 175u8, 173u8, 1u8, 253u8, 42u8, - 122u8, 207u8, 71u8, 4u8, 145u8, 83u8, 148u8, 29u8, 243u8, 52u8, 29u8, - 78u8, - ], - ) - } - #[doc = " Authorities set scheduled to be used with the next session"] - pub fn next_authorities( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::next_authorities::NextAuthorities, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "NextAuthorities", - (), - [ - 87u8, 180u8, 0u8, 85u8, 209u8, 13u8, 131u8, 103u8, 8u8, 226u8, 42u8, - 72u8, 38u8, 47u8, 190u8, 78u8, 62u8, 4u8, 161u8, 130u8, 87u8, 196u8, - 13u8, 209u8, 205u8, 98u8, 104u8, 91u8, 3u8, 47u8, 82u8, 11u8, - ], - ) - } - #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"] - #[doc = " members were responsible."] - #[doc = ""] - #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"] - #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"] - #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"] - #[doc = " was the owner of a given key on a given session, and what the active set ID was"] - #[doc = " during that session."] - #[doc = ""] - #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."] - pub fn set_id_session_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::set_id_session::SetIdSession, + types::historical_sessions::HistoricalSessions, (), (), ::subxt::ext::subxt_core::utils::Yes, > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "SetIdSession", + "Historical", + "HistoricalSessions", (), [ - 47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8, - 65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8, - 238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8, + 9u8, 138u8, 247u8, 141u8, 178u8, 146u8, 124u8, 81u8, 162u8, 211u8, + 205u8, 149u8, 222u8, 254u8, 253u8, 188u8, 170u8, 242u8, 218u8, 41u8, + 124u8, 178u8, 109u8, 209u8, 163u8, 125u8, 225u8, 206u8, 249u8, 175u8, + 117u8, 75u8, ], ) } - #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"] - #[doc = " members were responsible."] - #[doc = ""] - #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"] - #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"] - #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"] - #[doc = " was the owner of a given key on a given session, and what the active set ID was"] - #[doc = " during that session."] - #[doc = ""] - #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."] - pub fn set_id_session( + #[doc = " Mapping from historical session indices to session-data root hash and validator count."] + pub fn historical_sessions( &self, - _0: impl ::core::borrow::Borrow, + _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::set_id_session::Param0, + types::historical_sessions::Param0, >, - types::set_id_session::SetIdSession, + types::historical_sessions::HistoricalSessions, ::subxt::ext::subxt_core::utils::Yes, (), (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "SetIdSession", + "Historical", + "HistoricalSessions", ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( _0.borrow(), ), [ - 47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8, - 65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8, - 238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8, + 9u8, 138u8, 247u8, 141u8, 178u8, 146u8, 124u8, 81u8, 162u8, 211u8, + 205u8, 149u8, 222u8, 254u8, 253u8, 188u8, 170u8, 242u8, 218u8, 41u8, + 124u8, 178u8, 109u8, 209u8, 163u8, 125u8, 225u8, 206u8, 249u8, 175u8, + 117u8, 75u8, ], ) } - #[doc = " Block number where BEEFY consensus is enabled/started."] - #[doc = " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively"] - #[doc = " restarted from the newly set block number."] - pub fn genesis_block( + #[doc = " The range of historical sessions we store. [first, last)"] + pub fn stored_range( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::genesis_block::GenesisBlock, - ::subxt::ext::subxt_core::utils::Yes, + types::stored_range::StoredRange, ::subxt::ext::subxt_core::utils::Yes, (), + (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "GenesisBlock", + "Historical", + "StoredRange", (), [ - 198u8, 155u8, 11u8, 240u8, 189u8, 245u8, 159u8, 127u8, 55u8, 33u8, - 48u8, 29u8, 209u8, 119u8, 163u8, 24u8, 28u8, 22u8, 163u8, 163u8, 124u8, - 88u8, 126u8, 4u8, 193u8, 158u8, 29u8, 243u8, 212u8, 4u8, 41u8, 22u8, - ], - ) - } - } - } - pub mod constants { - use super::runtime_types; - pub struct ConstantsApi; - impl ConstantsApi { - #[doc = " The maximum number of authorities that can be added."] - pub fn max_authorities( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Beefy", - "MaxAuthorities", - [ - 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, - 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, - 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, - 145u8, - ], - ) - } - #[doc = " The maximum number of nominators for each validator."] - pub fn max_nominators( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Beefy", - "MaxNominators", - [ - 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, - 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, - 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, - 145u8, - ], - ) - } - #[doc = " The maximum number of entries to keep in the set id to session index mapping."] - #[doc = ""] - #[doc = " Since the `SetIdSession` map is only used for validating equivocations this"] - #[doc = " value should relate to the bonding duration of whatever staking system is"] - #[doc = " being used (if any). If equivocation handling is not enabled then this value"] - #[doc = " can be zero."] - pub fn max_set_id_session_entries( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u64, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Beefy", - "MaxSetIdSessionEntries", - [ - 128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8, - 59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8, - 103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8, - 246u8, - ], - ) - } - } - } - } - pub mod mmr { - use super::root_mod; - use super::runtime_types; - pub mod storage { - use super::runtime_types; - pub mod types { - use super::runtime_types; - pub mod root_hash { - use super::runtime_types; - pub type RootHash = ::subxt::ext::subxt_core::utils::H256; - } - pub mod number_of_leaves { - use super::runtime_types; - pub type NumberOfLeaves = ::core::primitive::u64; - } - pub mod nodes { - use super::runtime_types; - pub type Nodes = ::subxt::ext::subxt_core::utils::H256; - pub type Param0 = ::core::primitive::u64; - } - } - pub struct StorageApi; - impl StorageApi { - #[doc = " Latest MMR Root hash."] - pub fn root_hash( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::root_hash::RootHash, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Mmr", - "RootHash", - (), - [ - 111u8, 206u8, 173u8, 92u8, 67u8, 49u8, 150u8, 113u8, 90u8, 245u8, 38u8, - 254u8, 76u8, 250u8, 167u8, 66u8, 130u8, 129u8, 251u8, 220u8, 172u8, - 229u8, 162u8, 251u8, 36u8, 227u8, 43u8, 189u8, 7u8, 106u8, 23u8, 13u8, - ], - ) - } - #[doc = " Current size of the MMR (number of leaves)."] - pub fn number_of_leaves( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::number_of_leaves::NumberOfLeaves, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Mmr", - "NumberOfLeaves", - (), - [ - 123u8, 58u8, 149u8, 174u8, 85u8, 45u8, 20u8, 115u8, 241u8, 0u8, 51u8, - 174u8, 234u8, 60u8, 230u8, 59u8, 237u8, 144u8, 170u8, 32u8, 4u8, 0u8, - 34u8, 163u8, 238u8, 205u8, 93u8, 208u8, 53u8, 38u8, 141u8, 195u8, - ], - ) - } - #[doc = " Hashes of the nodes in the MMR."] - #[doc = ""] - #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"] - #[doc = " are pruned and only stored in the Offchain DB."] - pub fn nodes_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::nodes::Nodes, - (), - (), - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Mmr", - "Nodes", - (), - [ - 27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8, - 206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8, - 249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8, - ], - ) - } - #[doc = " Hashes of the nodes in the MMR."] - #[doc = ""] - #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"] - #[doc = " are pruned and only stored in the Offchain DB."] - pub fn nodes( - &self, - _0: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::nodes::Param0, - >, - types::nodes::Nodes, - ::subxt::ext::subxt_core::utils::Yes, - (), - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Mmr", - "Nodes", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - [ - 27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8, - 206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8, - 249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8, - ], - ) - } - } - } - } - pub mod mmr_leaf { - use super::root_mod; - use super::runtime_types; - pub mod storage { - use super::runtime_types; - pub mod types { - use super::runtime_types; - pub mod beefy_authorities { - use super::runtime_types; - pub type BeefyAuthorities = - runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet< - ::subxt::ext::subxt_core::utils::H256, - >; - } - pub mod beefy_next_authorities { - use super::runtime_types; - pub type BeefyNextAuthorities = - runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet< - ::subxt::ext::subxt_core::utils::H256, - >; - } - } - pub struct StorageApi; - impl StorageApi { - #[doc = " Details of current BEEFY authority set."] - pub fn beefy_authorities( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::beefy_authorities::BeefyAuthorities, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "MmrLeaf", - "BeefyAuthorities", - (), - [ - 128u8, 35u8, 176u8, 79u8, 224u8, 58u8, 214u8, 234u8, 231u8, 71u8, - 227u8, 153u8, 180u8, 189u8, 66u8, 44u8, 47u8, 174u8, 0u8, 83u8, 121u8, - 182u8, 226u8, 44u8, 224u8, 173u8, 237u8, 102u8, 231u8, 146u8, 110u8, - 7u8, - ], - ) - } - #[doc = " Details of next BEEFY authority set."] - #[doc = ""] - #[doc = " This storage entry is used as cache for calls to `update_beefy_next_authority_set`."] - pub fn beefy_next_authorities( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::beefy_next_authorities::BeefyNextAuthorities, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "MmrLeaf", - "BeefyNextAuthorities", - (), - [ - 97u8, 71u8, 52u8, 111u8, 120u8, 251u8, 183u8, 155u8, 177u8, 100u8, - 236u8, 142u8, 204u8, 117u8, 95u8, 40u8, 201u8, 36u8, 32u8, 82u8, 38u8, - 234u8, 135u8, 39u8, 224u8, 69u8, 94u8, 85u8, 12u8, 89u8, 97u8, 218u8, + 134u8, 32u8, 250u8, 13u8, 201u8, 25u8, 54u8, 243u8, 231u8, 81u8, 252u8, + 231u8, 68u8, 217u8, 235u8, 43u8, 22u8, 223u8, 220u8, 133u8, 198u8, + 218u8, 95u8, 152u8, 189u8, 87u8, 6u8, 228u8, 242u8, 59u8, 232u8, 59u8, ], ) } @@ -9193,7 +9914,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_keys`]."] + #[doc = "Sets the session key(s) of the function caller to `keys`."] + #[doc = "Allows an account to set its session key prior to becoming a validator."] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be signed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"] + #[doc = " fixed."] pub struct SetKeys { pub keys: set_keys::Keys, pub proof: set_keys::Proof, @@ -9222,7 +9951,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::purge_keys`]."] + #[doc = "Removes any session key(s) of the function caller."] + #[doc = ""] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be Signed and the account must be either be"] + #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"] + #[doc = "means being a controller account) or directly convertible into a validator ID (which"] + #[doc = "usually means being a stash account)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"] + #[doc = " `T::Keys::key_ids()` which is fixed."] pub struct PurgeKeys; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PurgeKeys { const PALLET: &'static str = "Session"; @@ -9231,7 +9971,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::set_keys`]."] + #[doc = "Sets the session key(s) of the function caller to `keys`."] + #[doc = "Allows an account to set its session key prior to becoming a validator."] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be signed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"] + #[doc = " fixed."] pub fn set_keys( &self, keys: types::set_keys::Keys, @@ -9243,13 +9991,24 @@ pub mod api { "set_keys", types::SetKeys { keys, proof }, [ - 50u8, 154u8, 235u8, 252u8, 160u8, 25u8, 233u8, 90u8, 76u8, 227u8, 22u8, - 129u8, 221u8, 129u8, 95u8, 124u8, 117u8, 117u8, 43u8, 17u8, 109u8, - 252u8, 39u8, 115u8, 150u8, 80u8, 38u8, 34u8, 62u8, 237u8, 248u8, 246u8, + 251u8, 79u8, 44u8, 78u8, 55u8, 160u8, 150u8, 159u8, 183u8, 86u8, 129u8, + 32u8, 250u8, 138u8, 223u8, 100u8, 40u8, 203u8, 116u8, 224u8, 244u8, + 142u8, 7u8, 154u8, 147u8, 97u8, 160u8, 162u8, 95u8, 5u8, 213u8, 246u8, ], ) } - #[doc = "See [`Pallet::purge_keys`]."] + #[doc = "Removes any session key(s) of the function caller."] + #[doc = ""] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be Signed and the account must be either be"] + #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"] + #[doc = "means being a controller account) or directly convertible into a validator ID (which"] + #[doc = "usually means being a stash account)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"] + #[doc = " `T::Keys::key_ids()` which is fixed."] pub fn purge_keys( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -9423,9 +10182,9 @@ pub mod api { "QueuedKeys", (), [ - 251u8, 240u8, 64u8, 86u8, 241u8, 74u8, 141u8, 38u8, 46u8, 18u8, 92u8, - 101u8, 227u8, 161u8, 58u8, 222u8, 17u8, 29u8, 248u8, 237u8, 74u8, 69u8, - 18u8, 16u8, 129u8, 187u8, 172u8, 249u8, 162u8, 96u8, 218u8, 186u8, + 54u8, 232u8, 4u8, 80u8, 89u8, 214u8, 20u8, 219u8, 48u8, 108u8, 26u8, + 89u8, 170u8, 210u8, 66u8, 37u8, 12u8, 60u8, 148u8, 186u8, 241u8, 64u8, + 83u8, 37u8, 124u8, 217u8, 51u8, 120u8, 148u8, 205u8, 85u8, 48u8, ], ) } @@ -9469,9 +10228,9 @@ pub mod api { "NextKeys", (), [ - 87u8, 61u8, 243u8, 159u8, 164u8, 196u8, 130u8, 218u8, 136u8, 189u8, - 253u8, 151u8, 230u8, 9u8, 214u8, 58u8, 102u8, 67u8, 61u8, 138u8, 242u8, - 214u8, 80u8, 166u8, 130u8, 47u8, 141u8, 197u8, 11u8, 73u8, 100u8, 16u8, + 123u8, 233u8, 243u8, 13u8, 162u8, 60u8, 206u8, 97u8, 76u8, 43u8, 184u8, + 99u8, 17u8, 23u8, 110u8, 108u8, 131u8, 195u8, 109u8, 24u8, 217u8, 93u8, + 99u8, 41u8, 95u8, 196u8, 239u8, 243u8, 191u8, 131u8, 2u8, 57u8, ], ) } @@ -9495,9 +10254,9 @@ pub mod api { _0.borrow(), ), [ - 87u8, 61u8, 243u8, 159u8, 164u8, 196u8, 130u8, 218u8, 136u8, 189u8, - 253u8, 151u8, 230u8, 9u8, 214u8, 58u8, 102u8, 67u8, 61u8, 138u8, 242u8, - 214u8, 80u8, 166u8, 130u8, 47u8, 141u8, 197u8, 11u8, 73u8, 100u8, 16u8, + 123u8, 233u8, 243u8, 13u8, 162u8, 60u8, 206u8, 97u8, 76u8, 43u8, 184u8, + 99u8, 17u8, 23u8, 110u8, 108u8, 131u8, 195u8, 109u8, 24u8, 217u8, 93u8, + 99u8, 41u8, 95u8, 196u8, 239u8, 243u8, 191u8, 131u8, 2u8, 57u8, ], ) } @@ -9618,7 +10377,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] pub struct ReportEquivocation { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_equivocation::EquivocationProof, @@ -9652,7 +10414,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] pub struct ReportEquivocationUnsigned { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_equivocation_unsigned::EquivocationProof, @@ -9686,7 +10456,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::note_stalled`]."] + #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."] + #[doc = ""] + #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"] + #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"] + #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."] + #[doc = "The block production rate (which may be slowed down because of finality lagging) should"] + #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"] + #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"] + #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"] + #[doc = "block of all validators of the new authority set."] + #[doc = ""] + #[doc = "Only callable by root."] pub struct NoteStalled { pub delay: note_stalled::Delay, pub best_finalized_block_number: note_stalled::BestFinalizedBlockNumber, @@ -9703,7 +10484,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] pub fn report_equivocation( &self, equivocation_proof: types::report_equivocation::EquivocationProof, @@ -9720,13 +10504,22 @@ pub mod api { key_owner_proof, }, [ - 11u8, 183u8, 81u8, 93u8, 41u8, 7u8, 70u8, 155u8, 8u8, 57u8, 177u8, - 245u8, 131u8, 79u8, 236u8, 118u8, 147u8, 114u8, 40u8, 204u8, 177u8, - 2u8, 43u8, 42u8, 2u8, 201u8, 202u8, 120u8, 150u8, 109u8, 108u8, 156u8, + 197u8, 206u8, 246u8, 26u8, 171u8, 25u8, 214u8, 211u8, 138u8, 132u8, + 148u8, 48u8, 66u8, 12u8, 92u8, 17u8, 190u8, 155u8, 121u8, 222u8, 226u8, + 171u8, 208u8, 123u8, 253u8, 247u8, 253u8, 191u8, 90u8, 4u8, 224u8, + 104u8, ], ) } - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] pub fn report_equivocation_unsigned( &self, equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, @@ -9744,13 +10537,24 @@ pub mod api { key_owner_proof, }, [ - 141u8, 133u8, 227u8, 65u8, 22u8, 181u8, 108u8, 9u8, 157u8, 27u8, 124u8, - 53u8, 177u8, 27u8, 5u8, 16u8, 193u8, 66u8, 59u8, 87u8, 143u8, 238u8, - 251u8, 167u8, 117u8, 138u8, 246u8, 236u8, 65u8, 148u8, 20u8, 131u8, + 109u8, 97u8, 251u8, 184u8, 77u8, 61u8, 95u8, 187u8, 132u8, 146u8, 18u8, + 105u8, 109u8, 124u8, 181u8, 74u8, 143u8, 171u8, 248u8, 188u8, 69u8, + 63u8, 65u8, 92u8, 64u8, 42u8, 104u8, 131u8, 67u8, 202u8, 172u8, 73u8, ], ) } - #[doc = "See [`Pallet::note_stalled`]."] + #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."] + #[doc = ""] + #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"] + #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"] + #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."] + #[doc = "The block production rate (which may be slowed down because of finality lagging) should"] + #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"] + #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"] + #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"] + #[doc = "block of all validators of the new authority set."] + #[doc = ""] + #[doc = "Only callable by root."] pub fn note_stalled( &self, delay: types::note_stalled::Delay, @@ -9866,6 +10670,14 @@ pub mod api { pub type SetIdSession = ::core::primitive::u32; pub type Param0 = ::core::primitive::u64; } + pub mod authorities { + use super::runtime_types; + pub type Authorities = + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec4<( + runtime_types::sp_consensus_grandpa::app::Public, + ::core::primitive::u64, + )>; + } } pub struct StorageApi; impl StorageApi { @@ -9905,10 +10717,10 @@ pub mod api { "PendingChange", (), [ - 150u8, 194u8, 185u8, 248u8, 239u8, 43u8, 141u8, 253u8, 61u8, 106u8, - 74u8, 164u8, 209u8, 204u8, 206u8, 200u8, 32u8, 38u8, 11u8, 78u8, 84u8, - 243u8, 181u8, 142u8, 179u8, 151u8, 81u8, 204u8, 244u8, 150u8, 137u8, - 250u8, + 32u8, 165u8, 141u8, 100u8, 109u8, 66u8, 58u8, 22u8, 118u8, 84u8, 92u8, + 164u8, 119u8, 130u8, 104u8, 25u8, 244u8, 111u8, 223u8, 54u8, 184u8, + 95u8, 196u8, 30u8, 244u8, 129u8, 110u8, 127u8, 200u8, 66u8, 226u8, + 26u8, ], ) } @@ -10042,6 +10854,28 @@ pub mod api { ], ) } + #[doc = " The current list of authorities."] + pub fn authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::authorities::Authorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Grandpa", + "Authorities", + (), + [ + 192u8, 157u8, 98u8, 244u8, 104u8, 38u8, 195u8, 114u8, 183u8, 62u8, + 247u8, 18u8, 31u8, 152u8, 246u8, 206u8, 97u8, 13u8, 118u8, 211u8, + 104u8, 54u8, 150u8, 152u8, 126u8, 170u8, 228u8, 158u8, 108u8, 129u8, + 134u8, 44u8, + ], + ) + } } } pub mod constants { @@ -10107,206 +10941,31 @@ pub mod api { } } } - pub mod im_online { + pub mod authority_discovery { use super::root_mod; use super::runtime_types; - #[doc = "The `Error` enum of this pallet."] - pub type Error = runtime_types::pallet_im_online::pallet::Error; - #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] - pub type Call = runtime_types::pallet_im_online::pallet::Call; - pub mod calls { - use super::root_mod; - use super::runtime_types; - type DispatchError = runtime_types::sp_runtime::DispatchError; - pub mod types { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "See [`Pallet::heartbeat`]."] - pub struct Heartbeat { - pub heartbeat: heartbeat::Heartbeat, - pub signature: heartbeat::Signature, - } - pub mod heartbeat { - use super::runtime_types; - pub type Heartbeat = - runtime_types::pallet_im_online::Heartbeat<::core::primitive::u32>; - pub type Signature = - runtime_types::pallet_im_online::sr25519::app_sr25519::Signature; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Heartbeat { - const PALLET: &'static str = "ImOnline"; - const CALL: &'static str = "heartbeat"; - } - } - pub struct TransactionApi; - impl TransactionApi { - #[doc = "See [`Pallet::heartbeat`]."] - pub fn heartbeat( - &self, - heartbeat: types::heartbeat::Heartbeat, - signature: types::heartbeat::Signature, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "ImOnline", - "heartbeat", - types::Heartbeat { - heartbeat, - signature, - }, - [ - 41u8, 78u8, 115u8, 250u8, 94u8, 34u8, 215u8, 28u8, 33u8, 175u8, 203u8, - 205u8, 14u8, 40u8, 197u8, 51u8, 24u8, 198u8, 173u8, 32u8, 119u8, 154u8, - 213u8, 125u8, 219u8, 3u8, 128u8, 52u8, 166u8, 223u8, 241u8, 129u8, - ], - ) - } - } - } - #[doc = "The `Event` enum of this pallet"] - pub type Event = runtime_types::pallet_im_online::pallet::Event; - pub mod events { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "A new heartbeat was received from `AuthorityId`."] - pub struct HeartbeatReceived { - pub authority_id: heartbeat_received::AuthorityId, - } - pub mod heartbeat_received { - use super::runtime_types; - pub type AuthorityId = - runtime_types::pallet_im_online::sr25519::app_sr25519::Public; - } - impl ::subxt::ext::subxt_core::events::StaticEvent for HeartbeatReceived { - const PALLET: &'static str = "ImOnline"; - const EVENT: &'static str = "HeartbeatReceived"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "At the end of the session, no offence was committed."] - pub struct AllGood; - impl ::subxt::ext::subxt_core::events::StaticEvent for AllGood { - const PALLET: &'static str = "ImOnline"; - const EVENT: &'static str = "AllGood"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "At the end of the session, at least one validator was found to be offline."] - pub struct SomeOffline { - pub offline: some_offline::Offline, - } - pub mod some_offline { - use super::runtime_types; - pub type Offline = ::subxt::ext::subxt_core::alloc::vec::Vec<( - ::subxt::ext::subxt_core::utils::AccountId32, - (), - )>; - } - impl ::subxt::ext::subxt_core::events::StaticEvent for SomeOffline { - const PALLET: &'static str = "ImOnline"; - const EVENT: &'static str = "SomeOffline"; - } - } pub mod storage { use super::runtime_types; pub mod types { use super::runtime_types; - pub mod heartbeat_after { - use super::runtime_types; - pub type HeartbeatAfter = ::core::primitive::u32; - } pub mod keys { use super::runtime_types; pub type Keys = runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec5< - runtime_types::pallet_im_online::sr25519::app_sr25519::Public, + runtime_types::sp_authority_discovery::app::Public, >; } - pub mod received_heartbeats { + pub mod next_keys { use super::runtime_types; - pub type ReceivedHeartbeats = ::core::primitive::bool; - pub type Param0 = ::core::primitive::u32; - pub type Param1 = ::core::primitive::u32; - } - pub mod authored_blocks { - use super::runtime_types; - pub type AuthoredBlocks = ::core::primitive::u32; - pub type Param0 = ::core::primitive::u32; - pub type Param1 = ::subxt::ext::subxt_core::utils::AccountId32; + pub type NextKeys = + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec5< + runtime_types::sp_authority_discovery::app::Public, + >; } } pub struct StorageApi; impl StorageApi { - #[doc = " The block number after which it's ok to send heartbeats in the current"] - #[doc = " session."] - #[doc = ""] - #[doc = " At the beginning of each session we set this to a value that should fall"] - #[doc = " roughly in the middle of the session duration. The idea is to first wait for"] - #[doc = " the validators to produce a block in the current session, so that the"] - #[doc = " heartbeat later on will not be necessary."] - #[doc = ""] - #[doc = " This value will only be used as a fallback if we fail to get a proper session"] - #[doc = " progress estimate from `NextSessionRotation`, as those estimates should be"] - #[doc = " more accurate then the value we calculate for `HeartbeatAfter`."] - pub fn heartbeat_after( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::heartbeat_after::HeartbeatAfter, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "HeartbeatAfter", - (), - [ - 36u8, 179u8, 76u8, 254u8, 3u8, 184u8, 154u8, 142u8, 70u8, 104u8, 44u8, - 244u8, 39u8, 97u8, 31u8, 31u8, 93u8, 228u8, 185u8, 224u8, 13u8, 160u8, - 231u8, 210u8, 110u8, 143u8, 116u8, 29u8, 0u8, 215u8, 217u8, 137u8, - ], - ) - } - #[doc = " The current set of keys that may issue a heartbeat."] + #[doc = " Keys of the current authority set."] pub fn keys( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -10317,223 +10976,41 @@ pub mod api { (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", + "AuthorityDiscovery", "Keys", (), [ - 111u8, 104u8, 188u8, 46u8, 152u8, 140u8, 137u8, 244u8, 52u8, 214u8, - 115u8, 156u8, 39u8, 239u8, 15u8, 168u8, 193u8, 125u8, 57u8, 195u8, - 250u8, 156u8, 234u8, 222u8, 222u8, 253u8, 135u8, 232u8, 196u8, 163u8, - 29u8, 218u8, + 35u8, 71u8, 73u8, 255u8, 160u8, 250u8, 38u8, 205u8, 32u8, 139u8, 236u8, + 83u8, 194u8, 12u8, 20u8, 221u8, 114u8, 94u8, 196u8, 246u8, 136u8, + 175u8, 70u8, 98u8, 91u8, 50u8, 236u8, 131u8, 131u8, 146u8, 150u8, + 192u8, ], ) } - #[doc = " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`."] - pub fn received_heartbeats_iter( + #[doc = " Keys of the next authority set."] + pub fn next_keys( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::received_heartbeats::ReceivedHeartbeats, - (), - (), + types::next_keys::NextKeys, ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "ReceivedHeartbeats", + "AuthorityDiscovery", + "NextKeys", (), [ - 30u8, 155u8, 42u8, 200u8, 223u8, 48u8, 127u8, 31u8, 253u8, 195u8, - 234u8, 108u8, 64u8, 27u8, 247u8, 17u8, 187u8, 199u8, 41u8, 138u8, 55u8, - 163u8, 94u8, 226u8, 10u8, 3u8, 132u8, 129u8, 8u8, 138u8, 137u8, 171u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`."] - pub fn received_heartbeats_iter1( - &self, - _0: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::received_heartbeats::Param0, - >, - types::received_heartbeats::ReceivedHeartbeats, - (), - (), - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "ReceivedHeartbeats", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - [ - 30u8, 155u8, 42u8, 200u8, 223u8, 48u8, 127u8, 31u8, 253u8, 195u8, - 234u8, 108u8, 64u8, 27u8, 247u8, 17u8, 187u8, 199u8, 41u8, 138u8, 55u8, - 163u8, 94u8, 226u8, 10u8, 3u8, 132u8, 129u8, 8u8, 138u8, 137u8, 171u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`."] - pub fn received_heartbeats( - &self, - _0: impl ::core::borrow::Borrow, - _1: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ( - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::received_heartbeats::Param0, - >, - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::received_heartbeats::Param1, - >, - ), - types::received_heartbeats::ReceivedHeartbeats, - ::subxt::ext::subxt_core::utils::Yes, - (), - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "ReceivedHeartbeats", - ( - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _1.borrow(), - ), - ), - [ - 30u8, 155u8, 42u8, 200u8, 223u8, 48u8, 127u8, 31u8, 253u8, 195u8, - 234u8, 108u8, 64u8, 27u8, 247u8, 17u8, 187u8, 199u8, 41u8, 138u8, 55u8, - 163u8, 94u8, 226u8, 10u8, 3u8, 132u8, 129u8, 8u8, 138u8, 137u8, 171u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `ValidatorId` to the"] - #[doc = " number of blocks authored by the given authority."] - pub fn authored_blocks_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::authored_blocks::AuthoredBlocks, - (), - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "AuthoredBlocks", - (), - [ - 123u8, 76u8, 230u8, 113u8, 65u8, 255u8, 99u8, 79u8, 131u8, 139u8, - 218u8, 20u8, 174u8, 191u8, 224u8, 67u8, 137u8, 48u8, 146u8, 209u8, - 148u8, 69u8, 130u8, 9u8, 173u8, 253u8, 206u8, 196u8, 68u8, 160u8, - 233u8, 126u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `ValidatorId` to the"] - #[doc = " number of blocks authored by the given authority."] - pub fn authored_blocks_iter1( - &self, - _0: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::authored_blocks::Param0, - >, - types::authored_blocks::AuthoredBlocks, - (), - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "AuthoredBlocks", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - [ - 123u8, 76u8, 230u8, 113u8, 65u8, 255u8, 99u8, 79u8, 131u8, 139u8, - 218u8, 20u8, 174u8, 191u8, 224u8, 67u8, 137u8, 48u8, 146u8, 209u8, - 148u8, 69u8, 130u8, 9u8, 173u8, 253u8, 206u8, 196u8, 68u8, 160u8, - 233u8, 126u8, - ], - ) - } - #[doc = " For each session index, we keep a mapping of `ValidatorId` to the"] - #[doc = " number of blocks authored by the given authority."] - pub fn authored_blocks( - &self, - _0: impl ::core::borrow::Borrow, - _1: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ( - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::authored_blocks::Param0, - >, - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::authored_blocks::Param1, - >, - ), - types::authored_blocks::AuthoredBlocks, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "AuthoredBlocks", - ( - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _1.borrow(), - ), - ), - [ - 123u8, 76u8, 230u8, 113u8, 65u8, 255u8, 99u8, 79u8, 131u8, 139u8, - 218u8, 20u8, 174u8, 191u8, 224u8, 67u8, 137u8, 48u8, 146u8, 209u8, - 148u8, 69u8, 130u8, 9u8, 173u8, 253u8, 206u8, 196u8, 68u8, 160u8, - 233u8, 126u8, + 54u8, 44u8, 61u8, 196u8, 2u8, 249u8, 185u8, 199u8, 245u8, 154u8, 178u8, + 109u8, 237u8, 147u8, 72u8, 209u8, 72u8, 196u8, 31u8, 192u8, 217u8, + 231u8, 71u8, 28u8, 148u8, 138u8, 29u8, 115u8, 247u8, 95u8, 185u8, + 189u8, ], ) } } } - pub mod constants { - use super::runtime_types; - pub struct ConstantsApi; - impl ConstantsApi { - #[doc = " A configuration for base priority of unsigned transactions."] - #[doc = ""] - #[doc = " This is exposed so that it can be tuned for particular runtime, when"] - #[doc = " multiple pallets send unsigned transactions."] - pub fn unsigned_priority( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u64, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "ImOnline", - "UnsignedPriority", - [ - 128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8, - 59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8, - 103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8, - 246u8, - ], - ) - } - } - } - } - pub mod authority_discovery { - use super::root_mod; - use super::runtime_types; } pub mod treasury { use super::root_mod; @@ -10562,7 +11039,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::propose_spend`]."] + #[doc = "Put forward a suggestion for spending."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] + #[doc = "It is returned once the proposal is awarded."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Proposed`] if successful."] pub struct ProposeSpend { #[codec(compact)] pub value: propose_spend::Value, @@ -10594,7 +11086,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reject_proposal`]."] + #[doc = "Reject a proposed spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "The original deposit will be slashed."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Rejected`] if successful."] pub struct RejectProposal { #[codec(compact)] pub proposal_id: reject_proposal::ProposalId, @@ -10621,7 +11127,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::approve_proposal`]."] + #[doc = "Approve a proposal."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::ApproveOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] + #[doc = "deposit will be returned."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = " - O(1)."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "No events are emitted from this dispatch."] pub struct ApproveProposal { #[codec(compact)] pub proposal_id: approve_proposal::ProposalId, @@ -10648,7 +11170,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::spend_local`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."] + #[doc = ""] + #[doc = "### Details"] + #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"] + #[doc = "beneficiary."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The destination account for the transfer."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::SpendApproved`] if successful."] pub struct SpendLocal { #[codec(compact)] pub amount: spend_local::Amount, @@ -10680,7 +11218,27 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_approval`]."] + #[doc = "Force a previously approved proposal to be removed from the approval queue."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The original deposit will no longer be returned."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `proposal_id`: The index of a proposal"] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(A) where `A` is the number of approvals"] + #[doc = ""] + #[doc = "### Errors"] + #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"] + #[doc = " approval queue, i.e., the proposal has not been approved. This could also mean the"] + #[doc = " proposal does not exist altogether, thus there is no way it would have been approved"] + #[doc = " in the first place."] pub struct RemoveApproval { #[codec(compact)] pub proposal_id: remove_approval::ProposalId, @@ -10707,7 +11265,32 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::spend`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"] + #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"] + #[doc = "for assertion using the [`Config::BalanceConverter`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"] + #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"] + #[doc = "the [`Config::PayoutPeriod`]."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The beneficiary of the spend."] + #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"] + #[doc = " the past if the resulting spend has not yet expired according to the"] + #[doc = " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"] + #[doc = " approval."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendApproved`] if successful."] pub struct Spend { pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box, #[codec(compact)] @@ -10721,7 +11304,7 @@ pub mod api { pub type AssetKind = runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset; pub type Amount = ::core::primitive::u128; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; pub type ValidFrom = ::core::option::Option<::core::primitive::u32>; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Spend { @@ -10742,7 +11325,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::payout`]."] + #[doc = "Claim a spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"] + #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."] + #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"] + #[doc = "dispatchable before retrying with the current function."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Paid`] if successful."] pub struct Payout { pub index: payout::Index, } @@ -10768,7 +11369,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::check_status`]."] + #[doc = "Check the status of the spend and remove it from the storage if processed."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The status check is a prerequisite for retrying a failed payout."] + #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"] + #[doc = "function. In such instances, transaction fees are refunded."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."] + #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."] pub struct CheckStatus { pub index: check_status::Index, } @@ -10794,7 +11413,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::void_spend`]."] + #[doc = "Void previously approved spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "A spend void is only possible if the payout has not been attempted yet."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendVoided`] if successful."] pub struct VoidSpend { pub index: void_spend::Index, } @@ -10809,7 +11443,22 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::propose_spend`]."] + #[doc = "Put forward a suggestion for spending."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] + #[doc = "It is returned once the proposal is awarded."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Proposed`] if successful."] pub fn propose_spend( &self, value: types::propose_spend::Value, @@ -10827,7 +11476,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::reject_proposal`]."] + #[doc = "Reject a proposed spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "The original deposit will be slashed."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Rejected`] if successful."] pub fn reject_proposal( &self, proposal_id: types::reject_proposal::ProposalId, @@ -10844,7 +11507,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::approve_proposal`]."] + #[doc = "Approve a proposal."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::ApproveOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] + #[doc = "deposit will be returned."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = " - O(1)."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "No events are emitted from this dispatch."] pub fn approve_proposal( &self, proposal_id: types::approve_proposal::ProposalId, @@ -10861,7 +11540,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::spend_local`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."] + #[doc = ""] + #[doc = "### Details"] + #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"] + #[doc = "beneficiary."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The destination account for the transfer."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::SpendApproved`] if successful."] pub fn spend_local( &self, amount: types::spend_local::Amount, @@ -10882,7 +11577,27 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_approval`]."] + #[doc = "Force a previously approved proposal to be removed from the approval queue."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The original deposit will no longer be returned."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `proposal_id`: The index of a proposal"] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(A) where `A` is the number of approvals"] + #[doc = ""] + #[doc = "### Errors"] + #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"] + #[doc = " approval queue, i.e., the proposal has not been approved. This could also mean the"] + #[doc = " proposal does not exist altogether, thus there is no way it would have been approved"] + #[doc = " in the first place."] pub fn remove_approval( &self, proposal_id: types::remove_approval::ProposalId, @@ -10900,7 +11615,32 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::spend`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"] + #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"] + #[doc = "for assertion using the [`Config::BalanceConverter`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"] + #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"] + #[doc = "the [`Config::PayoutPeriod`]."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The beneficiary of the spend."] + #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"] + #[doc = " the past if the resulting spend has not yet expired according to the"] + #[doc = " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"] + #[doc = " approval."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendApproved`] if successful."] pub fn spend( &self, asset_kind: types::spend::AssetKind, @@ -10923,14 +11663,32 @@ pub mod api { valid_from, }, [ - 124u8, 75u8, 215u8, 13u8, 48u8, 105u8, 201u8, 35u8, 199u8, 228u8, 38u8, - 229u8, 147u8, 255u8, 237u8, 249u8, 114u8, 154u8, 129u8, 209u8, 177u8, - 17u8, 70u8, 107u8, 74u8, 175u8, 244u8, 132u8, 206u8, 24u8, 224u8, - 156u8, + 127u8, 68u8, 115u8, 140u8, 122u8, 90u8, 253u8, 105u8, 230u8, 137u8, + 104u8, 130u8, 221u8, 123u8, 49u8, 126u8, 247u8, 80u8, 12u8, 4u8, 223u8, + 218u8, 187u8, 192u8, 61u8, 221u8, 46u8, 211u8, 71u8, 196u8, 55u8, + 237u8, ], ) } - #[doc = "See [`Pallet::payout`]."] + #[doc = "Claim a spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"] + #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."] + #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"] + #[doc = "dispatchable before retrying with the current function."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Paid`] if successful."] pub fn payout( &self, index: types::payout::Index, @@ -10947,7 +11705,25 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::check_status`]."] + #[doc = "Check the status of the spend and remove it from the storage if processed."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The status check is a prerequisite for retrying a failed payout."] + #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"] + #[doc = "function. In such instances, transaction fees are refunded."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."] + #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."] pub fn check_status( &self, index: types::check_status::Index, @@ -10964,7 +11740,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::void_spend`]."] + #[doc = "Void previously approved spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "A spend void is only possible if the payout has not been attempted yet."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendVoided`] if successful."] pub fn void_spend( &self, index: types::void_spend::Index, @@ -11222,7 +12013,7 @@ pub mod api { pub type AssetKind = runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset; pub type Amount = ::core::primitive::u128; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; pub type ValidFrom = ::core::primitive::u32; pub type ExpireAt = ::core::primitive::u32; } @@ -11360,7 +12151,7 @@ pub mod api { pub type Spends = runtime_types::pallet_treasury::SpendStatus< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, ::core::primitive::u128, - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, ::core::primitive::u32, ::core::primitive::u64, >; @@ -11519,10 +12310,10 @@ pub mod api { "Spends", (), [ - 231u8, 192u8, 40u8, 149u8, 163u8, 98u8, 111u8, 136u8, 44u8, 162u8, - 87u8, 181u8, 233u8, 204u8, 87u8, 111u8, 210u8, 225u8, 235u8, 73u8, - 217u8, 8u8, 129u8, 51u8, 54u8, 85u8, 33u8, 103u8, 186u8, 128u8, 61u8, - 5u8, + 207u8, 104u8, 63u8, 103u8, 177u8, 66u8, 236u8, 100u8, 122u8, 213u8, + 125u8, 153u8, 180u8, 219u8, 124u8, 22u8, 88u8, 161u8, 188u8, 197u8, + 70u8, 46u8, 72u8, 170u8, 146u8, 4u8, 127u8, 160u8, 204u8, 2u8, 89u8, + 95u8, ], ) } @@ -11546,10 +12337,10 @@ pub mod api { _0.borrow(), ), [ - 231u8, 192u8, 40u8, 149u8, 163u8, 98u8, 111u8, 136u8, 44u8, 162u8, - 87u8, 181u8, 233u8, 204u8, 87u8, 111u8, 210u8, 225u8, 235u8, 73u8, - 217u8, 8u8, 129u8, 51u8, 54u8, 85u8, 33u8, 103u8, 186u8, 128u8, 61u8, - 5u8, + 207u8, 104u8, 63u8, 103u8, 177u8, 66u8, 236u8, 100u8, 122u8, 213u8, + 125u8, 153u8, 180u8, 219u8, 124u8, 22u8, 88u8, 161u8, 188u8, 197u8, + 70u8, 46u8, 72u8, 170u8, 146u8, 4u8, 127u8, 160u8, 204u8, 2u8, 89u8, + 95u8, ], ) } @@ -11724,7 +12515,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vote`]."] + #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"] + #[doc = "otherwise it is a vote to keep the status quo."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `poll_index`: The index of the poll to vote for."] + #[doc = "- `vote`: The vote configuration."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."] pub struct Vote { #[codec(compact)] pub poll_index: vote::PollIndex, @@ -11755,7 +12554,29 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::delegate`]."] + #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"] + #[doc = "particular class of polls."] + #[doc = ""] + #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] + #[doc = "time appropriate for the conviction's lock period."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] + #[doc = " - be delegating already; or"] + #[doc = " - have no voting activity (if there is, then it will need to be removed through"] + #[doc = " `remove_vote`)."] + #[doc = ""] + #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."] + #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"] + #[doc = " to this function are required."] + #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] + #[doc = " account is undelegated, the funds will be locked for the corresponding period."] + #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] + #[doc = " be more than the account's current balance."] + #[doc = ""] + #[doc = "Emits `Delegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] pub struct Delegate { pub class: delegate::Class, pub to: delegate::To, @@ -11791,7 +12612,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::undelegate`]."] + #[doc = "Undelegate the voting power of the sending account for a particular class of polls."] + #[doc = ""] + #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] + #[doc = "of the conviction with which the delegation was issued has passed."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] + #[doc = "currently delegating."] + #[doc = ""] + #[doc = "- `class`: The class of polls to remove the delegation from."] + #[doc = ""] + #[doc = "Emits `Undelegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] pub struct Undelegate { pub class: undelegate::Class, } @@ -11817,7 +12651,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unlock`]."] + #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"] + #[doc = "class."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `class`: The class of polls to unlock."] + #[doc = "- `target`: The account to remove the lock on."] + #[doc = ""] + #[doc = "Weight: `O(R)` with R number of vote of target."] pub struct Unlock { pub class: unlock::Class, pub target: unlock::Target, @@ -11848,7 +12690,35 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If:"] + #[doc = "- the poll was cancelled, or"] + #[doc = "- the poll is ongoing, or"] + #[doc = "- the poll has ended such that"] + #[doc = " - the vote of the account was in opposition to the result; or"] + #[doc = " - there was no conviction to the account's vote; or"] + #[doc = " - the account made a split vote"] + #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] + #[doc = "funds being available."] + #[doc = ""] + #[doc = "If, however, the poll has ended and:"] + #[doc = "- it finished corresponding to the vote of the account, and"] + #[doc = "- the account made a standard vote with conviction, and"] + #[doc = "- the lock period of the conviction is not over"] + #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] + #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] + #[doc = "of both the amount locked and the time is it locked for)."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] + #[doc = "registered for poll `index`."] + #[doc = ""] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"] + #[doc = " which have finished or are cancelled, this must be `Some`."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] pub struct RemoveVote { pub class: remove_vote::Class, pub index: remove_vote::Index, @@ -11876,7 +12746,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_other_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] + #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] + #[doc = "either because the poll was cancelled, because the voter lost the poll or"] + #[doc = "because the conviction period is over."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"] + #[doc = " `index`."] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: The class of the poll."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] pub struct RemoveOtherVote { pub target: remove_other_vote::Target, pub class: remove_other_vote::Class, @@ -11898,7 +12783,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::vote`]."] + #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"] + #[doc = "otherwise it is a vote to keep the status quo."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `poll_index`: The index of the poll to vote for."] + #[doc = "- `vote`: The vote configuration."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."] pub fn vote( &self, poll_index: types::vote::PollIndex, @@ -11917,7 +12810,29 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::delegate`]."] + #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"] + #[doc = "particular class of polls."] + #[doc = ""] + #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] + #[doc = "time appropriate for the conviction's lock period."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] + #[doc = " - be delegating already; or"] + #[doc = " - have no voting activity (if there is, then it will need to be removed through"] + #[doc = " `remove_vote`)."] + #[doc = ""] + #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."] + #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"] + #[doc = " to this function are required."] + #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] + #[doc = " account is undelegated, the funds will be locked for the corresponding period."] + #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] + #[doc = " be more than the account's current balance."] + #[doc = ""] + #[doc = "Emits `Delegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] pub fn delegate( &self, class: types::delegate::Class, @@ -11942,7 +12857,20 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::undelegate`]."] + #[doc = "Undelegate the voting power of the sending account for a particular class of polls."] + #[doc = ""] + #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] + #[doc = "of the conviction with which the delegation was issued has passed."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] + #[doc = "currently delegating."] + #[doc = ""] + #[doc = "- `class`: The class of polls to remove the delegation from."] + #[doc = ""] + #[doc = "Emits `Undelegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] pub fn undelegate( &self, class: types::undelegate::Class, @@ -11960,7 +12888,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unlock`]."] + #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"] + #[doc = "class."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `class`: The class of polls to unlock."] + #[doc = "- `target`: The account to remove the lock on."] + #[doc = ""] + #[doc = "Weight: `O(R)` with R number of vote of target."] pub fn unlock( &self, class: types::unlock::Class, @@ -11979,7 +12915,35 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If:"] + #[doc = "- the poll was cancelled, or"] + #[doc = "- the poll is ongoing, or"] + #[doc = "- the poll has ended such that"] + #[doc = " - the vote of the account was in opposition to the result; or"] + #[doc = " - there was no conviction to the account's vote; or"] + #[doc = " - the account made a split vote"] + #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] + #[doc = "funds being available."] + #[doc = ""] + #[doc = "If, however, the poll has ended and:"] + #[doc = "- it finished corresponding to the vote of the account, and"] + #[doc = "- the account made a standard vote with conviction, and"] + #[doc = "- the lock period of the conviction is not over"] + #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] + #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] + #[doc = "of both the amount locked and the time is it locked for)."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] + #[doc = "registered for poll `index`."] + #[doc = ""] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"] + #[doc = " which have finished or are cancelled, this must be `Some`."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] pub fn remove_vote( &self, class: types::remove_vote::Class, @@ -11998,7 +12962,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_other_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] + #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] + #[doc = "either because the poll was cancelled, because the voter lost the poll or"] + #[doc = "because the conviction period is over."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"] + #[doc = " `index`."] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: The class of the poll."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] pub fn remove_other_vote( &self, target: types::remove_other_vote::Target, @@ -12310,7 +13289,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] pub struct Submit { pub proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -12347,7 +13334,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] pub struct PlaceDecisionDeposit { pub index: place_decision_deposit::Index, } @@ -12373,7 +13367,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] pub struct RefundDecisionDeposit { pub index: refund_decision_deposit::Index, } @@ -12399,7 +13399,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] pub struct Cancel { pub index: cancel::Index, } @@ -12425,7 +13430,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] pub struct Kill { pub index: kill::Index, } @@ -12451,7 +13461,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] pub struct NudgeReferendum { pub index: nudge_referendum::Index, } @@ -12477,7 +13490,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] pub struct OneFewerDeciding { pub track: one_fewer_deciding::Track, } @@ -12503,7 +13524,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] pub struct RefundSubmissionDeposit { pub index: refund_submission_deposit::Index, } @@ -12529,7 +13556,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] pub struct SetMetadata { pub index: set_metadata::Index, pub maybe_hash: set_metadata::MaybeHash, @@ -12547,7 +13580,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] pub fn submit( &self, proposal_origin: types::submit::ProposalOrigin, @@ -12566,14 +13607,20 @@ pub mod api { enactment_moment, }, [ - 116u8, 212u8, 158u8, 18u8, 89u8, 136u8, 153u8, 97u8, 43u8, 197u8, - 200u8, 161u8, 145u8, 102u8, 19u8, 25u8, 135u8, 13u8, 199u8, 101u8, - 107u8, 221u8, 244u8, 15u8, 192u8, 176u8, 3u8, 154u8, 248u8, 70u8, - 113u8, 69u8, + 252u8, 72u8, 60u8, 208u8, 214u8, 81u8, 179u8, 80u8, 7u8, 215u8, 54u8, + 7u8, 214u8, 49u8, 72u8, 70u8, 213u8, 143u8, 217u8, 190u8, 47u8, 3u8, + 191u8, 110u8, 67u8, 139u8, 137u8, 215u8, 14u8, 225u8, 124u8, 117u8, ], ) } - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] pub fn place_decision_deposit( &self, index: types::place_decision_deposit::Index, @@ -12590,7 +13637,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] pub fn refund_decision_deposit( &self, index: types::refund_decision_deposit::Index, @@ -12608,7 +13661,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] pub fn cancel( &self, index: types::cancel::Index, @@ -12626,7 +13684,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] pub fn kill( &self, index: types::kill::Index, @@ -12644,7 +13707,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] pub fn nudge_referendum( &self, index: types::nudge_referendum::Index, @@ -12662,7 +13728,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] pub fn one_fewer_deciding( &self, track: types::one_fewer_deciding::Track, @@ -12680,7 +13754,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] pub fn refund_submission_deposit( &self, index: types::refund_submission_deposit::Index, @@ -12698,7 +13778,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] pub fn set_metadata( &self, index: types::set_metadata::Index, @@ -12814,7 +13900,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "A deposit has been slashaed."] + #[doc = "A deposit has been slashed."] pub struct DepositSlashed { pub who: deposit_slashed::Who, pub amount: deposit_slashed::Amount, @@ -13211,9 +14297,10 @@ pub mod api { "ReferendumInfoFor", (), [ - 82u8, 199u8, 121u8, 36u8, 81u8, 129u8, 79u8, 226u8, 19u8, 57u8, 26u8, - 76u8, 195u8, 60u8, 78u8, 91u8, 198u8, 250u8, 105u8, 111u8, 235u8, 11u8, - 195u8, 4u8, 39u8, 92u8, 156u8, 53u8, 248u8, 89u8, 26u8, 112u8, + 244u8, 215u8, 156u8, 181u8, 105u8, 12u8, 138u8, 249u8, 173u8, 158u8, + 171u8, 67u8, 107u8, 228u8, 45u8, 180u8, 252u8, 244u8, 186u8, 78u8, + 226u8, 223u8, 168u8, 137u8, 6u8, 232u8, 169u8, 108u8, 104u8, 211u8, + 1u8, 157u8, ], ) } @@ -13237,9 +14324,10 @@ pub mod api { _0.borrow(), ), [ - 82u8, 199u8, 121u8, 36u8, 81u8, 129u8, 79u8, 226u8, 19u8, 57u8, 26u8, - 76u8, 195u8, 60u8, 78u8, 91u8, 198u8, 250u8, 105u8, 111u8, 235u8, 11u8, - 195u8, 4u8, 39u8, 92u8, 156u8, 53u8, 248u8, 89u8, 26u8, 112u8, + 244u8, 215u8, 156u8, 181u8, 105u8, 12u8, 138u8, 249u8, 173u8, 158u8, + 171u8, 67u8, 107u8, 228u8, 45u8, 180u8, 252u8, 244u8, 186u8, 78u8, + 226u8, 223u8, 168u8, 137u8, 6u8, 232u8, 169u8, 108u8, 104u8, 211u8, + 1u8, 157u8, ], ) } @@ -13533,7 +14621,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_member`]."] + #[doc = "Introduce a new member."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AddOrigin`."] + #[doc = "- `who`: Account of non-member which will become a member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] pub struct AddMember { pub who: add_member::Who, } @@ -13562,7 +14655,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::promote_member`]."] + #[doc = "Increment the rank of an existing member by one."] + #[doc = ""] + #[doc = "- `origin`: Must be the `PromoteOrigin`."] + #[doc = "- `who`: Account of existing member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] pub struct PromoteMember { pub who: promote_member::Who, } @@ -13591,7 +14689,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::demote_member`]."] + #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"] + #[doc = "then they are removed entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `DemoteOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."] pub struct DemoteMember { pub who: demote_member::Who, } @@ -13620,7 +14724,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_member`]."] + #[doc = "Remove the member entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `RemoveOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = "- `min_rank`: The rank of the member or greater."] + #[doc = ""] + #[doc = "Weight: `O(min_rank)`."] pub struct RemoveMember { pub who: remove_member::Who, pub min_rank: remove_member::MinRank, @@ -13651,7 +14761,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vote`]."] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by a member account."] + #[doc = "- `poll`: Index of a poll which is ongoing."] + #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."] + #[doc = ""] + #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."] pub struct Vote { pub poll: vote::Poll, pub aye: vote::Aye, @@ -13679,7 +14799,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cleanup_poll`]."] + #[doc = "Remove votes from the given poll. It must have ended."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by any account."] + #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"] + #[doc = " exist."] + #[doc = "- `max`: Maximum number of vote items from remove in this call."] + #[doc = ""] + #[doc = "Transaction fees are waived if the operation is successful."] + #[doc = ""] + #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."] pub struct CleanupPoll { pub poll_index: cleanup_poll::PollIndex, pub max: cleanup_poll::Max, @@ -13693,10 +14822,53 @@ pub mod api { const PALLET: &'static str = "FellowshipCollective"; const CALL: &'static str = "cleanup_poll"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Exchanges a member with a new account and the same existing rank."] + #[doc = ""] + #[doc = "- `origin`: Must be the `ExchangeOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."] + #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."] + pub struct ExchangeMember { + pub who: exchange_member::Who, + pub new_who: exchange_member::NewWho, + } + pub mod exchange_member { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type NewWho = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ExchangeMember { + const PALLET: &'static str = "FellowshipCollective"; + const CALL: &'static str = "exchange_member"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::add_member`]."] + #[doc = "Introduce a new member."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AddOrigin`."] + #[doc = "- `who`: Account of non-member which will become a member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] pub fn add_member( &self, who: types::add_member::Who, @@ -13713,7 +14885,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::promote_member`]."] + #[doc = "Increment the rank of an existing member by one."] + #[doc = ""] + #[doc = "- `origin`: Must be the `PromoteOrigin`."] + #[doc = "- `who`: Account of existing member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] pub fn promote_member( &self, who: types::promote_member::Who, @@ -13731,7 +14908,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::demote_member`]."] + #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"] + #[doc = "then they are removed entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `DemoteOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."] pub fn demote_member( &self, who: types::demote_member::Who, @@ -13749,7 +14932,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_member`]."] + #[doc = "Remove the member entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `RemoveOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = "- `min_rank`: The rank of the member or greater."] + #[doc = ""] + #[doc = "Weight: `O(min_rank)`."] pub fn remove_member( &self, who: types::remove_member::Who, @@ -13768,7 +14957,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vote`]."] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by a member account."] + #[doc = "- `poll`: Index of a poll which is ongoing."] + #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."] + #[doc = ""] + #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."] pub fn vote( &self, poll: types::vote::Poll, @@ -13786,7 +14985,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cleanup_poll`]."] + #[doc = "Remove votes from the given poll. It must have ended."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by any account."] + #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"] + #[doc = " exist."] + #[doc = "- `max`: Maximum number of vote items from remove in this call."] + #[doc = ""] + #[doc = "Transaction fees are waived if the operation is successful."] + #[doc = ""] + #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."] pub fn cleanup_poll( &self, poll_index: types::cleanup_poll::PollIndex, @@ -13805,6 +15013,29 @@ pub mod api { ], ) } + #[doc = "Exchanges a member with a new account and the same existing rank."] + #[doc = ""] + #[doc = "- `origin`: Must be the `ExchangeOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."] + #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."] + pub fn exchange_member( + &self, + who: types::exchange_member::Who, + new_who: types::exchange_member::NewWho, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "FellowshipCollective", + "exchange_member", + types::ExchangeMember { who, new_who }, + [ + 240u8, 208u8, 76u8, 147u8, 117u8, 23u8, 91u8, 37u8, 22u8, 101u8, 53u8, + 247u8, 161u8, 94u8, 109u8, 233u8, 104u8, 129u8, 67u8, 31u8, 223u8, + 182u8, 50u8, 233u8, 120u8, 129u8, 224u8, 135u8, 52u8, 162u8, 26u8, + 189u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -13910,6 +15141,30 @@ pub mod api { const PALLET: &'static str = "FellowshipCollective"; const EVENT: &'static str = "Voted"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The member `who` had their `AccountId` changed to `new_who`."] + pub struct MemberExchanged { + pub who: member_exchanged::Who, + pub new_who: member_exchanged::NewWho, + } + pub mod member_exchanged { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type NewWho = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for MemberExchanged { + const PALLET: &'static str = "FellowshipCollective"; + const EVENT: &'static str = "MemberExchanged"; + } } pub mod storage { use super::runtime_types; @@ -13946,7 +15201,7 @@ pub mod api { pub mod voting_cleanup { use super::runtime_types; pub type VotingCleanup = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -14388,7 +15643,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] pub struct Submit { pub proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -14425,7 +15688,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] pub struct PlaceDecisionDeposit { pub index: place_decision_deposit::Index, } @@ -14451,7 +15721,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] pub struct RefundDecisionDeposit { pub index: refund_decision_deposit::Index, } @@ -14477,7 +15753,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] pub struct Cancel { pub index: cancel::Index, } @@ -14503,7 +15784,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] pub struct Kill { pub index: kill::Index, } @@ -14529,7 +15815,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] pub struct NudgeReferendum { pub index: nudge_referendum::Index, } @@ -14555,7 +15844,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] pub struct OneFewerDeciding { pub track: one_fewer_deciding::Track, } @@ -14581,7 +15878,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] pub struct RefundSubmissionDeposit { pub index: refund_submission_deposit::Index, } @@ -14607,7 +15910,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] pub struct SetMetadata { pub index: set_metadata::Index, pub maybe_hash: set_metadata::MaybeHash, @@ -14625,7 +15934,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] pub fn submit( &self, proposal_origin: types::submit::ProposalOrigin, @@ -14644,14 +15961,20 @@ pub mod api { enactment_moment, }, [ - 116u8, 212u8, 158u8, 18u8, 89u8, 136u8, 153u8, 97u8, 43u8, 197u8, - 200u8, 161u8, 145u8, 102u8, 19u8, 25u8, 135u8, 13u8, 199u8, 101u8, - 107u8, 221u8, 244u8, 15u8, 192u8, 176u8, 3u8, 154u8, 248u8, 70u8, - 113u8, 69u8, + 252u8, 72u8, 60u8, 208u8, 214u8, 81u8, 179u8, 80u8, 7u8, 215u8, 54u8, + 7u8, 214u8, 49u8, 72u8, 70u8, 213u8, 143u8, 217u8, 190u8, 47u8, 3u8, + 191u8, 110u8, 67u8, 139u8, 137u8, 215u8, 14u8, 225u8, 124u8, 117u8, ], ) } - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] pub fn place_decision_deposit( &self, index: types::place_decision_deposit::Index, @@ -14668,7 +15991,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] pub fn refund_decision_deposit( &self, index: types::refund_decision_deposit::Index, @@ -14686,7 +16015,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] pub fn cancel( &self, index: types::cancel::Index, @@ -14704,7 +16038,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] pub fn kill( &self, index: types::kill::Index, @@ -14722,7 +16061,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] pub fn nudge_referendum( &self, index: types::nudge_referendum::Index, @@ -14740,7 +16082,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] pub fn one_fewer_deciding( &self, track: types::one_fewer_deciding::Track, @@ -14758,7 +16108,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] pub fn refund_submission_deposit( &self, index: types::refund_submission_deposit::Index, @@ -14776,7 +16132,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] pub fn set_metadata( &self, index: types::set_metadata::Index, @@ -14892,7 +16254,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "A deposit has been slashaed."] + #[doc = "A deposit has been slashed."] pub struct DepositSlashed { pub who: deposit_slashed::Who, pub amount: deposit_slashed::Amount, @@ -15281,9 +16643,10 @@ pub mod api { "ReferendumInfoFor", (), [ - 154u8, 115u8, 139u8, 27u8, 56u8, 76u8, 212u8, 73u8, 155u8, 177u8, 26u8, - 156u8, 1u8, 163u8, 243u8, 143u8, 10u8, 188u8, 63u8, 63u8, 190u8, 158u8, - 142u8, 61u8, 245u8, 254u8, 11u8, 109u8, 170u8, 98u8, 77u8, 95u8, + 64u8, 146u8, 31u8, 207u8, 209u8, 86u8, 44u8, 53u8, 78u8, 240u8, 222u8, + 131u8, 225u8, 83u8, 114u8, 205u8, 225u8, 20u8, 128u8, 183u8, 19u8, + 204u8, 67u8, 31u8, 154u8, 115u8, 183u8, 218u8, 34u8, 134u8, 222u8, + 32u8, ], ) } @@ -15307,9 +16670,10 @@ pub mod api { _0.borrow(), ), [ - 154u8, 115u8, 139u8, 27u8, 56u8, 76u8, 212u8, 73u8, 155u8, 177u8, 26u8, - 156u8, 1u8, 163u8, 243u8, 143u8, 10u8, 188u8, 63u8, 63u8, 190u8, 158u8, - 142u8, 61u8, 245u8, 254u8, 11u8, 109u8, 170u8, 98u8, 77u8, 95u8, + 64u8, 146u8, 31u8, 207u8, 209u8, 86u8, 44u8, 53u8, 78u8, 240u8, 222u8, + 131u8, 225u8, 83u8, 114u8, 205u8, 225u8, 20u8, 128u8, 183u8, 19u8, + 204u8, 67u8, 31u8, 154u8, 115u8, 183u8, 218u8, 34u8, 134u8, 222u8, + 32u8, ], ) } @@ -15578,6 +16942,10 @@ pub mod api { } } } + pub mod origins { + use super::root_mod; + use super::runtime_types; + } pub mod whitelist { use super::root_mod; use super::runtime_types; @@ -15605,7 +16973,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::whitelist_call`]."] pub struct WhitelistCall { pub call_hash: whitelist_call::CallHash, } @@ -15631,7 +16998,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_whitelisted_call`]."] pub struct RemoveWhitelistedCall { pub call_hash: remove_whitelisted_call::CallHash, } @@ -15657,7 +17023,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dispatch_whitelisted_call`]."] pub struct DispatchWhitelistedCall { pub call_hash: dispatch_whitelisted_call::CallHash, pub call_encoded_len: dispatch_whitelisted_call::CallEncodedLen, @@ -15687,7 +17052,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dispatch_whitelisted_call_with_preimage`]."] pub struct DispatchWhitelistedCallWithPreimage { pub call: ::subxt::ext::subxt_core::alloc::boxed::Box< dispatch_whitelisted_call_with_preimage::Call, @@ -15704,7 +17068,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::whitelist_call`]."] pub fn whitelist_call( &self, call_hash: types::whitelist_call::CallHash, @@ -15722,7 +17085,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_whitelisted_call`]."] pub fn remove_whitelisted_call( &self, call_hash: types::remove_whitelisted_call::CallHash, @@ -15741,7 +17103,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dispatch_whitelisted_call`]."] pub fn dispatch_whitelisted_call( &self, call_hash: types::dispatch_whitelisted_call::CallHash, @@ -15766,7 +17127,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dispatch_whitelisted_call_with_preimage`]."] pub fn dispatch_whitelisted_call_with_preimage( &self, call: types::dispatch_whitelisted_call_with_preimage::Call, @@ -15780,10 +17140,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 85u8, 176u8, 96u8, 176u8, 10u8, 112u8, 30u8, 206u8, 107u8, 111u8, - 195u8, 253u8, 48u8, 252u8, 56u8, 75u8, 138u8, 201u8, 222u8, 79u8, - 234u8, 5u8, 81u8, 108u8, 103u8, 189u8, 81u8, 151u8, 57u8, 135u8, 63u8, - 222u8, + 167u8, 174u8, 32u8, 86u8, 126u8, 225u8, 219u8, 33u8, 94u8, 90u8, 139u8, + 237u8, 114u8, 142u8, 12u8, 27u8, 1u8, 244u8, 103u8, 172u8, 158u8, + 222u8, 144u8, 247u8, 155u8, 90u8, 101u8, 133u8, 34u8, 26u8, 120u8, + 68u8, ], ) } @@ -15951,7 +17311,30 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim`]."] + #[doc = "Make a claim to collect your DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to claim is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub struct Claim { pub dest: claim::Dest, pub ethereum_signature: claim::EthereumSignature, @@ -15980,7 +17363,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::mint_claim`]."] + #[doc = "Mint a new claim to collect DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The Ethereum address allowed to collect this claim."] + #[doc = "- `value`: The number of DOTs that will be claimed."] + #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "We assume worst case that both vesting and statement is being inserted."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub struct MintClaim { pub who: mint_claim::Who, pub value: mint_claim::Value, @@ -16018,7 +17415,33 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_attest`]."] + #[doc = "Make a claim to collect your DOTs by signing a statement."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)(statement)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"] + #[doc = "expected according to your purchase arrangement."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim_attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub struct ClaimAttest { pub dest: claim_attest::Dest, pub ethereum_signature: claim_attest::EthereumSignature, @@ -16050,7 +17473,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::attest`]."] + #[doc = "Attest to a statement, needed to finalize the claims process."] + #[doc = ""] + #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"] + #[doc = "`SignedExtension`."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"] + #[doc = "and provides a `statement` which is expected for the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to do pre-validation on `attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub struct Attest { pub statement: attest::Statement, } @@ -16077,7 +17518,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::move_claim`]."] pub struct MoveClaim { pub old: move_claim::Old, pub new: move_claim::New, @@ -16097,7 +17537,30 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::claim`]."] + #[doc = "Make a claim to collect your DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to claim is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub fn claim( &self, dest: types::claim::Dest, @@ -16119,7 +17582,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::mint_claim`]."] + #[doc = "Mint a new claim to collect DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The Ethereum address allowed to collect this claim."] + #[doc = "- `value`: The number of DOTs that will be claimed."] + #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "We assume worst case that both vesting and statement is being inserted."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub fn mint_claim( &self, who: types::mint_claim::Who, @@ -16144,7 +17621,33 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_attest`]."] + #[doc = "Make a claim to collect your DOTs by signing a statement."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)(statement)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"] + #[doc = "expected according to your purchase arrangement."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim_attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub fn claim_attest( &self, dest: types::claim_attest::Dest, @@ -16167,7 +17670,25 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::attest`]."] + #[doc = "Attest to a statement, needed to finalize the claims process."] + #[doc = ""] + #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"] + #[doc = "`SignedExtension`."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"] + #[doc = "and provides a `statement` which is expected for the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to do pre-validation on `attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub fn attest( &self, statement: types::attest::Statement, @@ -16185,7 +17706,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::move_claim`]."] pub fn move_claim( &self, old: types::move_claim::Old, @@ -16554,7 +18074,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + #[doc = ""] + #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"] + #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"] + #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"] + #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"] + #[doc = "event is deposited."] pub struct Batch { pub calls: batch::Calls, } @@ -16582,7 +18119,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::as_derivative`]."] + #[doc = "Send a call through an indexed pseudonym of the sender."] + #[doc = ""] + #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"] + #[doc = "use the same filter as the origin of this call."] + #[doc = ""] + #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."] + #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"] + #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"] + #[doc = "in the Multisig pallet instead."] + #[doc = ""] + #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub struct AsDerivative { pub index: as_derivative::Index, pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -16610,7 +18159,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::batch_all`]."] + #[doc = "Send a batch of dispatch calls and atomically execute them."] + #[doc = "The whole transaction will rollback and fail if any of the calls failed."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] pub struct BatchAll { pub calls: batch_all::Calls, } @@ -16638,7 +18199,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dispatch_as`]."] + #[doc = "Dispatches a function call with a provided origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct DispatchAs { pub as_origin: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -16667,7 +18233,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = "Unlike `batch`, it allows errors and won't interrupt."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] pub struct ForceBatch { pub calls: force_batch::Calls, } @@ -16695,7 +18273,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::with_weight`]."] + #[doc = "Dispatch a function call with a specified weight."] + #[doc = ""] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Root origin to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] pub struct WithWeight { pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, pub weight: with_weight::Weight, @@ -16712,7 +18295,24 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + #[doc = ""] + #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"] + #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"] + #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"] + #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"] + #[doc = "event is deposited."] pub fn batch( &self, calls: types::batch::Calls, @@ -16723,14 +18323,25 @@ pub mod api { "batch", types::Batch { calls }, [ - 240u8, 229u8, 246u8, 172u8, 254u8, 190u8, 97u8, 110u8, 105u8, 221u8, - 115u8, 188u8, 52u8, 86u8, 113u8, 118u8, 146u8, 240u8, 235u8, 2u8, - 171u8, 219u8, 18u8, 212u8, 39u8, 217u8, 66u8, 80u8, 55u8, 148u8, 241u8, - 20u8, + 83u8, 189u8, 188u8, 242u8, 176u8, 192u8, 73u8, 10u8, 42u8, 161u8, 5u8, + 203u8, 163u8, 45u8, 172u8, 235u8, 231u8, 224u8, 75u8, 253u8, 5u8, + 180u8, 89u8, 17u8, 162u8, 85u8, 21u8, 199u8, 226u8, 214u8, 18u8, 80u8, ], ) } - #[doc = "See [`Pallet::as_derivative`]."] + #[doc = "Send a call through an indexed pseudonym of the sender."] + #[doc = ""] + #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"] + #[doc = "use the same filter as the origin of this call."] + #[doc = ""] + #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."] + #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"] + #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"] + #[doc = "in the Multisig pallet instead."] + #[doc = ""] + #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub fn as_derivative( &self, index: types::as_derivative::Index, @@ -16745,14 +18356,26 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 98u8, 181u8, 74u8, 231u8, 95u8, 220u8, 13u8, 120u8, 161u8, 144u8, - 254u8, 82u8, 141u8, 143u8, 226u8, 62u8, 106u8, 112u8, 179u8, 127u8, - 54u8, 43u8, 161u8, 255u8, 235u8, 22u8, 192u8, 236u8, 153u8, 67u8, 80u8, - 210u8, + 209u8, 221u8, 227u8, 40u8, 184u8, 8u8, 29u8, 14u8, 75u8, 224u8, 248u8, + 64u8, 121u8, 33u8, 119u8, 106u8, 203u8, 163u8, 192u8, 209u8, 178u8, + 251u8, 204u8, 181u8, 15u8, 165u8, 241u8, 175u8, 85u8, 23u8, 123u8, + 143u8, ], ) } - #[doc = "See [`Pallet::batch_all`]."] + #[doc = "Send a batch of dispatch calls and atomically execute them."] + #[doc = "The whole transaction will rollback and fail if any of the calls failed."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] pub fn batch_all( &self, calls: types::batch_all::Calls, @@ -16763,13 +18386,19 @@ pub mod api { "batch_all", types::BatchAll { calls }, [ - 61u8, 70u8, 75u8, 34u8, 128u8, 54u8, 146u8, 49u8, 207u8, 184u8, 143u8, - 45u8, 106u8, 74u8, 187u8, 49u8, 236u8, 184u8, 73u8, 134u8, 48u8, 157u8, - 214u8, 229u8, 131u8, 168u8, 86u8, 54u8, 193u8, 141u8, 99u8, 119u8, + 205u8, 125u8, 72u8, 233u8, 47u8, 35u8, 91u8, 191u8, 214u8, 50u8, 31u8, + 165u8, 247u8, 89u8, 194u8, 222u8, 225u8, 119u8, 58u8, 218u8, 152u8, + 182u8, 135u8, 241u8, 198u8, 64u8, 121u8, 227u8, 184u8, 127u8, 57u8, + 144u8, ], ) } - #[doc = "See [`Pallet::dispatch_as`]."] + #[doc = "Dispatches a function call with a provided origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn dispatch_as( &self, as_origin: types::dispatch_as::AsOrigin, @@ -16784,14 +18413,26 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 235u8, 229u8, 32u8, 93u8, 159u8, 163u8, 87u8, 10u8, 109u8, 88u8, 64u8, - 172u8, 102u8, 230u8, 117u8, 68u8, 177u8, 24u8, 48u8, 157u8, 77u8, - 110u8, 40u8, 186u8, 114u8, 14u8, 116u8, 208u8, 246u8, 14u8, 56u8, - 111u8, + 87u8, 161u8, 238u8, 19u8, 135u8, 184u8, 32u8, 241u8, 185u8, 171u8, + 204u8, 120u8, 189u8, 131u8, 14u8, 76u8, 155u8, 234u8, 83u8, 170u8, + 62u8, 229u8, 207u8, 243u8, 254u8, 239u8, 139u8, 27u8, 226u8, 77u8, + 46u8, 116u8, ], ) } - #[doc = "See [`Pallet::force_batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = "Unlike `batch`, it allows errors and won't interrupt."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] pub fn force_batch( &self, calls: types::force_batch::Calls, @@ -16802,14 +18443,19 @@ pub mod api { "force_batch", types::ForceBatch { calls }, [ - 214u8, 240u8, 219u8, 153u8, 214u8, 181u8, 142u8, 224u8, 190u8, 86u8, - 225u8, 221u8, 211u8, 162u8, 32u8, 224u8, 8u8, 130u8, 242u8, 167u8, - 190u8, 123u8, 230u8, 44u8, 222u8, 177u8, 73u8, 154u8, 177u8, 226u8, - 112u8, 157u8, + 203u8, 26u8, 64u8, 171u8, 254u8, 29u8, 251u8, 118u8, 229u8, 156u8, + 29u8, 171u8, 20u8, 59u8, 71u8, 56u8, 18u8, 159u8, 43u8, 201u8, 128u8, + 30u8, 192u8, 166u8, 233u8, 136u8, 191u8, 128u8, 201u8, 104u8, 148u8, + 90u8, ], ) } - #[doc = "See [`Pallet::with_weight`]."] + #[doc = "Dispatch a function call with a specified weight."] + #[doc = ""] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Root origin to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] pub fn with_weight( &self, call: types::with_weight::Call, @@ -16824,10 +18470,9 @@ pub mod api { weight, }, [ - 73u8, 59u8, 91u8, 218u8, 154u8, 105u8, 247u8, 29u8, 131u8, 199u8, - 149u8, 245u8, 124u8, 16u8, 104u8, 150u8, 160u8, 196u8, 10u8, 26u8, - 205u8, 150u8, 76u8, 102u8, 246u8, 83u8, 131u8, 66u8, 235u8, 215u8, - 203u8, 214u8, + 65u8, 142u8, 46u8, 163u8, 152u8, 170u8, 48u8, 244u8, 56u8, 176u8, + 125u8, 179u8, 237u8, 43u8, 4u8, 31u8, 71u8, 96u8, 68u8, 85u8, 125u8, + 61u8, 144u8, 143u8, 148u8, 98u8, 154u8, 227u8, 95u8, 28u8, 34u8, 63u8, ], ) } @@ -17007,7 +18652,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_registrar`]."] + #[doc = "Add a registrar to the system."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."] + #[doc = ""] + #[doc = "- `account`: the account of the registrar."] + #[doc = ""] + #[doc = "Emits `RegistrarAdded` if successful."] pub struct AddRegistrar { pub account: add_registrar::Account, } @@ -17036,13 +18687,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_identity`]."] + #[doc = "Set an account's identity information and reserve the appropriate deposit."] + #[doc = ""] + #[doc = "If the account already has identity information, the deposit is taken as part payment"] + #[doc = "for the new deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `info`: The identity information."] + #[doc = ""] + #[doc = "Emits `IdentitySet` if successful."] pub struct SetIdentity { pub info: ::subxt::ext::subxt_core::alloc::boxed::Box, } pub mod set_identity { use super::runtime_types; - pub type Info = runtime_types::pallet_identity::types::IdentityInfo; + pub type Info = runtime_types::pallet_identity::legacy::IdentityInfo; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetIdentity { const PALLET: &'static str = "Identity"; @@ -17062,7 +18722,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_subs`]."] + #[doc = "Set the sub-accounts of the sender."] + #[doc = ""] + #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"] + #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "- `subs`: The identity's (new) sub-accounts."] pub struct SetSubs { pub subs: set_subs::Subs, } @@ -17091,7 +18759,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::clear_identity`]."] + #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."] + #[doc = ""] + #[doc = "Payment: All reserved balances on the account are returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "Emits `IdentityCleared` if successful."] pub struct ClearIdentity; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClearIdentity { const PALLET: &'static str = "Identity"; @@ -17111,7 +18786,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::request_judgement`]."] + #[doc = "Request a judgement from a registrar."] + #[doc = ""] + #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"] + #[doc = "given."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."] + #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] + #[doc = ""] + #[doc = "```nocompile"] + #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "```"] + #[doc = ""] + #[doc = "Emits `JudgementRequested` if successful."] pub struct RequestJudgement { #[codec(compact)] pub reg_index: request_judgement::RegIndex, @@ -17141,7 +18831,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_request`]."] + #[doc = "Cancel a previous request."] + #[doc = ""] + #[doc = "Payment: A previously reserved deposit is returned on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."] + #[doc = ""] + #[doc = "Emits `JudgementUnrequested` if successful."] pub struct CancelRequest { pub reg_index: cancel_request::RegIndex, } @@ -17167,7 +18866,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_fee`]."] + #[doc = "Set the fee required for a judgement to be requested from a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fee`: the new fee."] pub struct SetFee { #[codec(compact)] pub index: set_fee::Index, @@ -17197,7 +18902,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_account_id`]."] + #[doc = "Change the account associated with a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `new`: the new account ID."] pub struct SetAccountId { #[codec(compact)] pub index: set_account_id::Index, @@ -17229,7 +18940,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_fields`]."] + #[doc = "Set the field information for a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fields`: the fields that the registrar concerns themselves with."] pub struct SetFields { #[codec(compact)] pub index: set_fields::Index, @@ -17238,9 +18955,7 @@ pub mod api { pub mod set_fields { use super::runtime_types; pub type Index = ::core::primitive::u32; - pub type Fields = runtime_types::pallet_identity::types::BitFlags< - runtime_types::pallet_identity::types::IdentityField, - >; + pub type Fields = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetFields { const PALLET: &'static str = "Identity"; @@ -17260,7 +18975,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::provide_judgement`]."] + #[doc = "Provide a judgement for an account's identity."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `reg_index`."] + #[doc = ""] + #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."] + #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"] + #[doc = " provided."] + #[doc = ""] + #[doc = "Note: Judgements do not apply to a username."] + #[doc = ""] + #[doc = "Emits `JudgementGiven` if successful."] pub struct ProvideJudgement { #[codec(compact)] pub reg_index: provide_judgement::RegIndex, @@ -17297,7 +19026,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill_identity`]."] + #[doc = "Remove an account's identity and sub-account information and slash the deposits."] + #[doc = ""] + #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"] + #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"] + #[doc = "manually using `cancel_request`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] + #[doc = ""] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = ""] + #[doc = "Emits `IdentityKilled` if successful."] pub struct KillIdentity { pub target: kill_identity::Target, } @@ -17326,7 +19066,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_sub`]."] + #[doc = "Add the given account to the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub struct AddSub { pub sub: add_sub::Sub, pub data: add_sub::Data, @@ -17357,7 +19103,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::rename_sub`]."] + #[doc = "Alter the associated name of the given sub-account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub struct RenameSub { pub sub: rename_sub::Sub, pub data: rename_sub::Data, @@ -17388,7 +19137,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_sub`]."] + #[doc = "Remove the given account from the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub struct RemoveSub { pub sub: remove_sub::Sub, } @@ -17417,16 +19172,260 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::quit_sub`]."] + #[doc = "Remove the sender as a sub-account."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender (*not* the original depositor)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "super-identity."] + #[doc = ""] + #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"] + #[doc = "controller of an account is maliciously registered as a sub-account."] pub struct QuitSub; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for QuitSub { const PALLET: &'static str = "Identity"; const CALL: &'static str = "quit_sub"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] + #[doc = ""] + #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] + #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + pub struct AddUsernameAuthority { + pub authority: add_username_authority::Authority, + pub suffix: add_username_authority::Suffix, + pub allocation: add_username_authority::Allocation, + } + pub mod add_username_authority { + use super::runtime_types; + pub type Authority = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type Suffix = + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; + pub type Allocation = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddUsernameAuthority { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "add_username_authority"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Remove `authority` from the username authorities."] + pub struct RemoveUsernameAuthority { + pub authority: remove_username_authority::Authority, + } + pub mod remove_username_authority { + use super::runtime_types; + pub type Authority = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveUsernameAuthority { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_username_authority"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set the username for `who`. Must be called by a username authority."] + #[doc = ""] + #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "accept them later."] + #[doc = ""] + #[doc = "Usernames must:"] + #[doc = " - Only contain lowercase ASCII characters or digits."] + #[doc = " - When combined with the suffix of the issuing authority be _less than_ the"] + #[doc = " `MaxUsernameLength`."] + pub struct SetUsernameFor { + pub who: set_username_for::Who, + pub username: set_username_for::Username, + pub signature: set_username_for::Signature, + } + pub mod set_username_for { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type Username = + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; + pub type Signature = + ::core::option::Option; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetUsernameFor { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "set_username_for"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Accept a given username that an `authority` granted. The call must include the full"] + #[doc = "username, as in `username.suffix`."] + pub struct AcceptUsername { + pub username: accept_username::Username, + } + pub mod accept_username { + use super::runtime_types; + pub type Username = + runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AcceptUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "accept_username"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Remove an expired username approval. The username was approved by an authority but never"] + #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"] + #[doc = "full username, as in `username.suffix`."] + pub struct RemoveExpiredApproval { + pub username: remove_expired_approval::Username, + } + pub mod remove_expired_approval { + use super::runtime_types; + pub type Username = + runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveExpiredApproval { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_expired_approval"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set a given username as the primary. The username should include the suffix."] + pub struct SetPrimaryUsername { + pub username: set_primary_username::Username, + } + pub mod set_primary_username { + use super::runtime_types; + pub type Username = + runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetPrimaryUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "set_primary_username"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] + #[doc = "gets a username but then calls `clear_identity`."] + pub struct RemoveDanglingUsername { + pub username: remove_dangling_username::Username, + } + pub mod remove_dangling_username { + use super::runtime_types; + pub type Username = + runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveDanglingUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_dangling_username"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::add_registrar`]."] + #[doc = "Add a registrar to the system."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."] + #[doc = ""] + #[doc = "- `account`: the account of the registrar."] + #[doc = ""] + #[doc = "Emits `RegistrarAdded` if successful."] pub fn add_registrar( &self, account: types::add_registrar::Account, @@ -17443,7 +19442,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_identity`]."] + #[doc = "Set an account's identity information and reserve the appropriate deposit."] + #[doc = ""] + #[doc = "If the account already has identity information, the deposit is taken as part payment"] + #[doc = "for the new deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `info`: The identity information."] + #[doc = ""] + #[doc = "Emits `IdentitySet` if successful."] pub fn set_identity( &self, info: types::set_identity::Info, @@ -17463,7 +19471,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_subs`]."] + #[doc = "Set the sub-accounts of the sender."] + #[doc = ""] + #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"] + #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "- `subs`: The identity's (new) sub-accounts."] pub fn set_subs( &self, subs: types::set_subs::Subs, @@ -17481,7 +19497,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::clear_identity`]."] + #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."] + #[doc = ""] + #[doc = "Payment: All reserved balances on the account are returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "Emits `IdentityCleared` if successful."] pub fn clear_identity( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -17498,7 +19521,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::request_judgement`]."] + #[doc = "Request a judgement from a registrar."] + #[doc = ""] + #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"] + #[doc = "given."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."] + #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] + #[doc = ""] + #[doc = "```nocompile"] + #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "```"] + #[doc = ""] + #[doc = "Emits `JudgementRequested` if successful."] pub fn request_judgement( &self, reg_index: types::request_judgement::RegIndex, @@ -17516,7 +19554,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_request`]."] + #[doc = "Cancel a previous request."] + #[doc = ""] + #[doc = "Payment: A previously reserved deposit is returned on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."] + #[doc = ""] + #[doc = "Emits `JudgementUnrequested` if successful."] pub fn cancel_request( &self, reg_index: types::cancel_request::RegIndex, @@ -17534,7 +19581,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_fee`]."] + #[doc = "Set the fee required for a judgement to be requested from a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fee`: the new fee."] pub fn set_fee( &self, index: types::set_fee::Index, @@ -17553,7 +19606,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_account_id`]."] + #[doc = "Change the account associated with a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `new`: the new account ID."] pub fn set_account_id( &self, index: types::set_account_id::Index, @@ -17572,7 +19631,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_fields`]."] + #[doc = "Set the field information for a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fields`: the fields that the registrar concerns themselves with."] pub fn set_fields( &self, index: types::set_fields::Index, @@ -17584,13 +19649,28 @@ pub mod api { "set_fields", types::SetFields { index, fields }, [ - 25u8, 129u8, 119u8, 232u8, 18u8, 32u8, 77u8, 23u8, 185u8, 56u8, 32u8, - 199u8, 74u8, 174u8, 104u8, 203u8, 171u8, 253u8, 19u8, 225u8, 101u8, - 239u8, 14u8, 242u8, 157u8, 51u8, 203u8, 74u8, 1u8, 65u8, 165u8, 205u8, + 75u8, 38u8, 58u8, 93u8, 92u8, 164u8, 146u8, 146u8, 183u8, 245u8, 135u8, + 235u8, 12u8, 148u8, 37u8, 193u8, 58u8, 66u8, 173u8, 223u8, 166u8, + 169u8, 54u8, 159u8, 141u8, 36u8, 25u8, 231u8, 190u8, 211u8, 254u8, + 38u8, ], ) } - #[doc = "See [`Pallet::provide_judgement`]."] + #[doc = "Provide a judgement for an account's identity."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `reg_index`."] + #[doc = ""] + #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."] + #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"] + #[doc = " provided."] + #[doc = ""] + #[doc = "Note: Judgements do not apply to a username."] + #[doc = ""] + #[doc = "Emits `JudgementGiven` if successful."] pub fn provide_judgement( &self, reg_index: types::provide_judgement::RegIndex, @@ -17616,7 +19696,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill_identity`]."] + #[doc = "Remove an account's identity and sub-account information and slash the deposits."] + #[doc = ""] + #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"] + #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"] + #[doc = "manually using `cancel_request`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] + #[doc = ""] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = ""] + #[doc = "Emits `IdentityKilled` if successful."] pub fn kill_identity( &self, target: types::kill_identity::Target, @@ -17634,7 +19725,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::add_sub`]."] + #[doc = "Add the given account to the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub fn add_sub( &self, sub: types::add_sub::Sub, @@ -17652,7 +19749,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::rename_sub`]."] + #[doc = "Alter the associated name of the given sub-account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub fn rename_sub( &self, sub: types::rename_sub::Sub, @@ -17671,7 +19771,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_sub`]."] + #[doc = "Remove the given account from the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub fn remove_sub( &self, sub: types::remove_sub::Sub, @@ -17688,7 +19794,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::quit_sub`]."] + #[doc = "Remove the sender as a sub-account."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender (*not* the original depositor)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "super-identity."] + #[doc = ""] + #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"] + #[doc = "controller of an account is maliciously registered as a sub-account."] pub fn quit_sub( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -17705,6 +19820,156 @@ pub mod api { ], ) } + #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] + #[doc = ""] + #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] + #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + pub fn add_username_authority( + &self, + authority: types::add_username_authority::Authority, + suffix: types::add_username_authority::Suffix, + allocation: types::add_username_authority::Allocation, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "add_username_authority", + types::AddUsernameAuthority { + authority, + suffix, + allocation, + }, + [ + 225u8, 197u8, 122u8, 209u8, 206u8, 241u8, 247u8, 232u8, 196u8, 110u8, + 75u8, 157u8, 44u8, 181u8, 35u8, 75u8, 182u8, 219u8, 100u8, 64u8, 208u8, + 112u8, 120u8, 229u8, 211u8, 69u8, 193u8, 214u8, 195u8, 98u8, 10u8, + 25u8, + ], + ) + } + #[doc = "Remove `authority` from the username authorities."] + pub fn remove_username_authority( + &self, + authority: types::remove_username_authority::Authority, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::RemoveUsernameAuthority, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "remove_username_authority", + types::RemoveUsernameAuthority { authority }, + [ + 4u8, 182u8, 89u8, 1u8, 183u8, 15u8, 215u8, 48u8, 165u8, 97u8, 252u8, + 54u8, 223u8, 18u8, 211u8, 227u8, 226u8, 230u8, 185u8, 71u8, 202u8, + 95u8, 191u8, 6u8, 118u8, 144u8, 92u8, 98u8, 64u8, 243u8, 2u8, 137u8, + ], + ) + } + #[doc = "Set the username for `who`. Must be called by a username authority."] + #[doc = ""] + #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "accept them later."] + #[doc = ""] + #[doc = "Usernames must:"] + #[doc = " - Only contain lowercase ASCII characters or digits."] + #[doc = " - When combined with the suffix of the issuing authority be _less than_ the"] + #[doc = " `MaxUsernameLength`."] + pub fn set_username_for( + &self, + who: types::set_username_for::Who, + username: types::set_username_for::Username, + signature: types::set_username_for::Signature, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "set_username_for", + types::SetUsernameFor { + who, + username, + signature, + }, + [ + 208u8, 124u8, 47u8, 129u8, 27u8, 182u8, 185u8, 76u8, 173u8, 187u8, + 193u8, 4u8, 252u8, 195u8, 204u8, 101u8, 233u8, 33u8, 62u8, 6u8, 50u8, + 20u8, 224u8, 26u8, 125u8, 192u8, 220u8, 56u8, 255u8, 249u8, 85u8, 50u8, + ], + ) + } + #[doc = "Accept a given username that an `authority` granted. The call must include the full"] + #[doc = "username, as in `username.suffix`."] + pub fn accept_username( + &self, + username: types::accept_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "accept_username", + types::AcceptUsername { username }, + [ + 247u8, 162u8, 83u8, 250u8, 214u8, 7u8, 12u8, 253u8, 227u8, 4u8, 95u8, + 71u8, 150u8, 218u8, 216u8, 86u8, 137u8, 37u8, 114u8, 188u8, 18u8, + 232u8, 229u8, 179u8, 172u8, 251u8, 70u8, 29u8, 18u8, 86u8, 33u8, 129u8, + ], + ) + } + #[doc = "Remove an expired username approval. The username was approved by an authority but never"] + #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"] + #[doc = "full username, as in `username.suffix`."] + pub fn remove_expired_approval( + &self, + username: types::remove_expired_approval::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::RemoveExpiredApproval, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "remove_expired_approval", + types::RemoveExpiredApproval { username }, + [ + 159u8, 171u8, 27u8, 97u8, 224u8, 171u8, 14u8, 89u8, 65u8, 213u8, 208u8, + 67u8, 118u8, 146u8, 0u8, 131u8, 82u8, 186u8, 142u8, 52u8, 173u8, 90u8, + 104u8, 107u8, 114u8, 202u8, 123u8, 222u8, 49u8, 53u8, 59u8, 61u8, + ], + ) + } + #[doc = "Set a given username as the primary. The username should include the suffix."] + pub fn set_primary_username( + &self, + username: types::set_primary_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "set_primary_username", + types::SetPrimaryUsername { username }, + [ + 3u8, 25u8, 56u8, 26u8, 108u8, 165u8, 84u8, 231u8, 16u8, 4u8, 6u8, + 232u8, 141u8, 7u8, 254u8, 50u8, 26u8, 230u8, 66u8, 245u8, 255u8, 101u8, + 183u8, 234u8, 197u8, 186u8, 132u8, 197u8, 251u8, 84u8, 212u8, 162u8, + ], + ) + } + #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] + #[doc = "gets a username but then calls `clear_identity`."] + pub fn remove_dangling_username( + &self, + username: types::remove_dangling_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::RemoveDanglingUsername, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "remove_dangling_username", + types::RemoveDanglingUsername { username }, + [ + 220u8, 67u8, 52u8, 223u8, 169u8, 81u8, 202u8, 74u8, 199u8, 169u8, 89u8, + 60u8, 57u8, 153u8, 240u8, 105u8, 188u8, 222u8, 250u8, 247u8, 91u8, + 137u8, 37u8, 212u8, 10u8, 51u8, 9u8, 202u8, 165u8, 155u8, 222u8, 29u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -17954,6 +20219,179 @@ pub mod api { const PALLET: &'static str = "Identity"; const EVENT: &'static str = "SubIdentityRevoked"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A username authority was added."] + pub struct AuthorityAdded { + pub authority: authority_added::Authority, + } + pub mod authority_added { + use super::runtime_types; + pub type Authority = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for AuthorityAdded { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "AuthorityAdded"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A username authority was removed."] + pub struct AuthorityRemoved { + pub authority: authority_removed::Authority, + } + pub mod authority_removed { + use super::runtime_types; + pub type Authority = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for AuthorityRemoved { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "AuthorityRemoved"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A username was set for `who`."] + pub struct UsernameSet { + pub who: username_set::Who, + pub username: username_set::Username, + } + pub mod username_set { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameSet { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameSet"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A username was queued, but `who` must accept it prior to `expiration`."] + pub struct UsernameQueued { + pub who: username_queued::Who, + pub username: username_queued::Username, + pub expiration: username_queued::Expiration, + } + pub mod username_queued { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + pub type Expiration = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameQueued { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameQueued"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A queued username passed its expiration without being claimed and was removed."] + pub struct PreapprovalExpired { + pub whose: preapproval_expired::Whose, + } + pub mod preapproval_expired { + use super::runtime_types; + pub type Whose = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for PreapprovalExpired { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "PreapprovalExpired"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A username was set as a primary and can be looked up from `who`."] + pub struct PrimaryUsernameSet { + pub who: primary_username_set::Who, + pub username: primary_username_set::Username, + } + pub mod primary_username_set { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for PrimaryUsernameSet { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "PrimaryUsernameSet"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A dangling username (as in, a username corresponding to an account that has removed its"] + #[doc = "identity) has been removed."] + pub struct DanglingUsernameRemoved { + pub who: dangling_username_removed::Who, + pub username: dangling_username_removed::Username, + } + pub mod dangling_username_removed { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for DanglingUsernameRemoved { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "DanglingUsernameRemoved"; + } } pub mod storage { use super::runtime_types; @@ -17961,9 +20399,17 @@ pub mod api { use super::runtime_types; pub mod identity_of { use super::runtime_types; - pub type IdentityOf = runtime_types::pallet_identity::types::Registration< - ::core::primitive::u128, - >; + pub type IdentityOf = ( + runtime_types::pallet_identity::types::Registration< + ::core::primitive::u128, + runtime_types::pallet_identity::legacy::IdentityInfo, + >, + ::core::option::Option< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + >, + ); pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } pub mod super_of { @@ -17992,14 +20438,43 @@ pub mod api { runtime_types::pallet_identity::types::RegistrarInfo< ::core::primitive::u128, ::subxt::ext::subxt_core::utils::AccountId32, + ::core::primitive::u64, >, >, >; } + pub mod username_authorities { + use super::runtime_types; + pub type UsernameAuthorities = + runtime_types::pallet_identity::types::AuthorityProperties< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + >; + pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; + } + pub mod account_of_username { + use super::runtime_types; + pub type AccountOfUsername = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + pub mod pending_usernames { + use super::runtime_types; + pub type PendingUsernames = ( + ::subxt::ext::subxt_core::utils::AccountId32, + ::core::primitive::u32, + ); + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } } pub struct StorageApi; impl StorageApi { - #[doc = " Information that is pertinent to identify the entity behind an account."] + #[doc = " Information that is pertinent to identify the entity behind an account. First item is the"] + #[doc = " registration, second is the account's primary username."] #[doc = ""] #[doc = " TWOX-NOTE: OK ― `AccountId` is a secure hash."] pub fn identity_of_iter( @@ -18016,13 +20491,14 @@ pub mod api { "IdentityOf", (), [ - 112u8, 2u8, 209u8, 123u8, 138u8, 171u8, 80u8, 243u8, 226u8, 88u8, 81u8, - 49u8, 59u8, 172u8, 88u8, 180u8, 255u8, 119u8, 57u8, 16u8, 169u8, 149u8, - 77u8, 239u8, 73u8, 182u8, 28u8, 112u8, 150u8, 110u8, 65u8, 139u8, + 0u8, 73u8, 213u8, 52u8, 49u8, 235u8, 238u8, 43u8, 119u8, 12u8, 35u8, + 162u8, 230u8, 24u8, 246u8, 200u8, 44u8, 254u8, 13u8, 84u8, 10u8, 27u8, + 159u8, 6u8, 176u8, 125u8, 24u8, 212u8, 250u8, 154u8, 181u8, 12u8, ], ) } - #[doc = " Information that is pertinent to identify the entity behind an account."] + #[doc = " Information that is pertinent to identify the entity behind an account. First item is the"] + #[doc = " registration, second is the account's primary username."] #[doc = ""] #[doc = " TWOX-NOTE: OK ― `AccountId` is a secure hash."] pub fn identity_of( @@ -18044,9 +20520,9 @@ pub mod api { _0.borrow(), ), [ - 112u8, 2u8, 209u8, 123u8, 138u8, 171u8, 80u8, 243u8, 226u8, 88u8, 81u8, - 49u8, 59u8, 172u8, 88u8, 180u8, 255u8, 119u8, 57u8, 16u8, 169u8, 149u8, - 77u8, 239u8, 73u8, 182u8, 28u8, 112u8, 150u8, 110u8, 65u8, 139u8, + 0u8, 73u8, 213u8, 52u8, 49u8, 235u8, 238u8, 43u8, 119u8, 12u8, 35u8, + 162u8, 230u8, 24u8, 246u8, 200u8, 44u8, 254u8, 13u8, 84u8, 10u8, 27u8, + 159u8, 6u8, 176u8, 125u8, 24u8, 212u8, 250u8, 154u8, 181u8, 12u8, ], ) } @@ -18174,10 +20650,173 @@ pub mod api { "Registrars", (), [ - 207u8, 253u8, 229u8, 237u8, 228u8, 85u8, 173u8, 74u8, 164u8, 67u8, - 144u8, 144u8, 5u8, 242u8, 84u8, 187u8, 110u8, 181u8, 2u8, 162u8, 239u8, - 212u8, 72u8, 233u8, 160u8, 196u8, 121u8, 218u8, 100u8, 0u8, 219u8, - 181u8, + 167u8, 99u8, 159u8, 117u8, 103u8, 243u8, 208u8, 113u8, 57u8, 225u8, + 27u8, 25u8, 188u8, 120u8, 15u8, 40u8, 134u8, 169u8, 108u8, 134u8, 83u8, + 184u8, 223u8, 170u8, 194u8, 19u8, 168u8, 43u8, 119u8, 76u8, 94u8, + 154u8, + ], + ) + } + #[doc = " A map of the accounts who are authorized to grant usernames."] + pub fn username_authorities_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::username_authorities::UsernameAuthorities, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "UsernameAuthorities", + (), + [ + 89u8, 102u8, 60u8, 184u8, 127u8, 244u8, 3u8, 61u8, 209u8, 78u8, 178u8, + 44u8, 159u8, 27u8, 7u8, 0u8, 22u8, 116u8, 42u8, 240u8, 130u8, 93u8, + 214u8, 182u8, 79u8, 222u8, 19u8, 20u8, 34u8, 198u8, 164u8, 146u8, + ], + ) + } + #[doc = " A map of the accounts who are authorized to grant usernames."] + pub fn username_authorities( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::username_authorities::Param0, + >, + types::username_authorities::UsernameAuthorities, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "UsernameAuthorities", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 89u8, 102u8, 60u8, 184u8, 127u8, 244u8, 3u8, 61u8, 209u8, 78u8, 178u8, + 44u8, 159u8, 27u8, 7u8, 0u8, 22u8, 116u8, 42u8, 240u8, 130u8, 93u8, + 214u8, 182u8, 79u8, 222u8, 19u8, 20u8, 34u8, 198u8, 164u8, 146u8, + ], + ) + } + #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it. The value should"] + #[doc = " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity."] + #[doc = ""] + #[doc = " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one"] + #[doc = " primary username."] + pub fn account_of_username_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::account_of_username::AccountOfUsername, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "AccountOfUsername", + (), + [ + 131u8, 96u8, 207u8, 217u8, 223u8, 54u8, 51u8, 156u8, 8u8, 238u8, 134u8, + 57u8, 42u8, 110u8, 180u8, 107u8, 30u8, 109u8, 162u8, 110u8, 178u8, + 127u8, 151u8, 163u8, 89u8, 127u8, 181u8, 213u8, 74u8, 129u8, 207u8, + 15u8, + ], + ) + } + #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it. The value should"] + #[doc = " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity."] + #[doc = ""] + #[doc = " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one"] + #[doc = " primary username."] + pub fn account_of_username( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::account_of_username::Param0, + >, + types::account_of_username::AccountOfUsername, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "AccountOfUsername", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 131u8, 96u8, 207u8, 217u8, 223u8, 54u8, 51u8, 156u8, 8u8, 238u8, 134u8, + 57u8, 42u8, 110u8, 180u8, 107u8, 30u8, 109u8, 162u8, 110u8, 178u8, + 127u8, 151u8, 163u8, 89u8, 127u8, 181u8, 213u8, 74u8, 129u8, 207u8, + 15u8, + ], + ) + } + #[doc = " Usernames that an authority has granted, but that the account controller has not confirmed"] + #[doc = " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature"] + #[doc = " because they are a pure proxy, multisig, etc. In order to confirm it, they should call"] + #[doc = " [`Call::accept_username`]."] + #[doc = ""] + #[doc = " First tuple item is the account and second is the acceptance deadline."] + pub fn pending_usernames_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::pending_usernames::PendingUsernames, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "PendingUsernames", + (), + [ + 237u8, 213u8, 92u8, 249u8, 11u8, 169u8, 104u8, 7u8, 201u8, 133u8, + 164u8, 64u8, 191u8, 172u8, 169u8, 229u8, 206u8, 105u8, 190u8, 113u8, + 21u8, 13u8, 70u8, 74u8, 140u8, 125u8, 123u8, 48u8, 183u8, 181u8, 170u8, + 147u8, + ], + ) + } + #[doc = " Usernames that an authority has granted, but that the account controller has not confirmed"] + #[doc = " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature"] + #[doc = " because they are a pure proxy, multisig, etc. In order to confirm it, they should call"] + #[doc = " [`Call::accept_username`]."] + #[doc = ""] + #[doc = " First tuple item is the account and second is the acceptance deadline."] + pub fn pending_usernames( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::pending_usernames::Param0, + >, + types::pending_usernames::PendingUsernames, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "PendingUsernames", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 237u8, 213u8, 92u8, 249u8, 11u8, 169u8, 104u8, 7u8, 201u8, 133u8, + 164u8, 64u8, 191u8, 172u8, 169u8, 229u8, 206u8, 105u8, 190u8, 113u8, + 21u8, 13u8, 70u8, 74u8, 140u8, 125u8, 123u8, 48u8, 183u8, 181u8, 170u8, + 147u8, ], ) } @@ -18187,7 +20826,7 @@ pub mod api { use super::runtime_types; pub struct ConstantsApi; impl ConstantsApi { - #[doc = " The amount held on deposit for a registered identity"] + #[doc = " The amount held on deposit for a registered identity."] pub fn basic_deposit( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -18203,15 +20842,15 @@ pub mod api { ], ) } - #[doc = " The amount held on deposit per additional field for a registered identity."] - pub fn field_deposit( + #[doc = " The amount held on deposit per encoded byte for a registered identity."] + pub fn byte_deposit( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< ::core::primitive::u128, > { ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( "Identity", - "FieldDeposit", + "ByteDeposit", [ 84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8, 27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8, @@ -18254,25 +20893,7 @@ pub mod api { ], ) } - #[doc = " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O"] - #[doc = " required to access an identity, but can be pretty high."] - pub fn max_additional_fields( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Identity", - "MaxAdditionalFields", - [ - 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, - 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, - 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, - 145u8, - ], - ) - } - #[doc = " Maxmimum number of registrars allowed in the system. Needed to bound the complexity"] + #[doc = " Maximum number of registrars allowed in the system. Needed to bound the complexity"] #[doc = " of, e.g., updating judgements."] pub fn max_registrars( &self, @@ -18290,6 +20911,57 @@ pub mod api { ], ) } + #[doc = " The number of blocks within which a username grant must be accepted."] + pub fn pending_username_expiration( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Identity", + "PendingUsernameExpiration", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + #[doc = " The maximum length of a suffix."] + pub fn max_suffix_length( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Identity", + "MaxSuffixLength", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + #[doc = " The maximum length of a username, including its suffix and any system-added delimiters."] + pub fn max_username_length( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Identity", + "MaxUsernameLength", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } } } } @@ -18320,7 +20992,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::bid`]."] + #[doc = "A user outside of the society can make a bid for entry."] + #[doc = ""] + #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"] + #[doc = "when the bid becomes a member, or if the bid calls `unbid`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."] pub struct Bid { pub value: bid::Value, } @@ -18346,7 +21026,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unbid`]."] + #[doc = "A bidder can remove their bid for entry into society."] + #[doc = "By doing so, they will have their candidate deposit returned or"] + #[doc = "they will unvouch their voucher."] + #[doc = ""] + #[doc = "Payment: The bid deposit is unreserved if the user made a bid."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."] pub struct Unbid; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Unbid { const PALLET: &'static str = "Society"; @@ -18366,7 +21052,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vouch`]."] + #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."] + #[doc = ""] + #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"] + #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"] + #[doc = "the suspension judgement origin, the member will be banned from vouching again."] + #[doc = ""] + #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"] + #[doc = "be paid as a portion of the reward the member will receive for joining the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The user who you would like to vouch for."] + #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"] + #[doc = "a member in the society."] + #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"] + #[doc = "the society. Tips larger than `value` will be saturated upon payout."] pub struct Vouch { pub who: vouch::Who, pub value: vouch::Value, @@ -18399,7 +21101,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unvouch`]."] + #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"] + #[doc = "only a bidder (and not a candidate)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."] pub struct Unvouch; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Unvouch { const PALLET: &'static str = "Society"; @@ -18419,7 +21127,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vote`]."] + #[doc = "As a member, vote on a candidate."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `candidate`: The candidate that the member would like to bid on."] + #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"] + #[doc = " rejected (`false`)."] pub struct Vote { pub candidate: vote::Candidate, pub approve: vote::Approve, @@ -18450,7 +21165,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::defender_vote`]."] + #[doc = "As a member, vote on the defender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `approve`: A boolean which says if the candidate should be"] + #[doc = "approved (`true`) or rejected (`false`)."] pub struct DefenderVote { pub approve: defender_vote::Approve, } @@ -18476,7 +21197,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::payout`]."] + #[doc = "Transfer the first matured payout for the sender and remove it from the records."] + #[doc = ""] + #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"] + #[doc = "payouts."] + #[doc = ""] + #[doc = "Payment: The member will receive a payment equal to their first matured"] + #[doc = "payout to their free balance."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member with"] + #[doc = "payouts remaining."] pub struct Payout; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Payout { const PALLET: &'static str = "Society"; @@ -18496,7 +21226,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::waive_repay`]."] + #[doc = "Repay the payment previously given to the member with the signed origin, remove any"] + #[doc = "pending payments, and elevate them from rank 0 to rank 1."] pub struct WaiveRepay { pub amount: waive_repay::Amount, } @@ -18522,7 +21253,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::found_society`]."] + #[doc = "Found the society."] + #[doc = ""] + #[doc = "This is done as a discrete action in order to allow for the"] + #[doc = "pallet to be included into a running chain and can only be done once."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `founder` - The first member and head of the newly founded society."] + #[doc = "- `max_members` - The initial max number of members for the society."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] + #[doc = "- `rules` - The rules of this society concerning membership."] + #[doc = ""] + #[doc = "Complexity: O(1)"] pub struct FoundSociety { pub founder: found_society::Founder, pub max_members: found_society::MaxMembers, @@ -18562,7 +21309,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Dissolve the society and remove all members."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"] + #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"] + #[doc = "member."] pub struct Dissolve; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Dissolve { const PALLET: &'static str = "Society"; @@ -18582,7 +21333,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::judge_suspended_member`]."] + #[doc = "Allow suspension judgement origin to make judgement on a suspended member."] + #[doc = ""] + #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"] + #[doc = "any of the existing storage items for that member."] + #[doc = ""] + #[doc = "If a suspended member is rejected, remove all associated storage items, including"] + #[doc = "their payouts, and remove any vouched bids they currently have."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed from the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended member to be judged."] + #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"] + #[doc = " (`true`) or rejects (`false`) a suspended member."] pub struct JudgeSuspendedMember { pub who: judge_suspended_member::Who, pub forgive: judge_suspended_member::Forgive, @@ -18613,7 +21377,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_parameters`]."] + #[doc = "Change the maximum number of members in society and the maximum number of new candidates"] + #[doc = "in a single intake period."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed by the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"] + #[doc = " than the current number of members."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] pub struct SetParameters { pub max_members: set_parameters::MaxMembers, pub max_intake: set_parameters::MaxIntake, @@ -18645,7 +21420,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::punish_skeptic`]."] + #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"] + #[doc = "candidate."] pub struct PunishSkeptic; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PunishSkeptic { const PALLET: &'static str = "Society"; @@ -18665,7 +21441,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the"] + #[doc = "the candidate, and only after the period for voting has ended."] pub struct ClaimMembership; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimMembership { const PALLET: &'static str = "Society"; @@ -18685,7 +21462,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::bestow_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"] + #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"] + #[doc = "clearly rejected."] pub struct BestowMembership { pub candidate: bestow_membership::Candidate, } @@ -18711,7 +21490,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kick_candidate`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"] + #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"] + #[doc = "have a clear approval."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] pub struct KickCandidate { pub candidate: kick_candidate::Candidate, } @@ -18737,7 +21520,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::resign_candidacy`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the candidate."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] pub struct ResignCandidacy; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ResignCandidacy { const PALLET: &'static str = "Society"; @@ -18757,7 +21542,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::drop_candidate`]."] + #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"] + #[doc = "signed origin but only at the end of the subsequent round and only for"] + #[doc = "a candidate with more rejections than approvals."] + #[doc = ""] + #[doc = "The bid deposit is lost and the voucher is banned."] pub struct DropCandidate { pub candidate: drop_candidate::Candidate, } @@ -18783,7 +21572,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cleanup_candidacy`]."] + #[doc = "Remove up to `max` stale votes for the given `candidate`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."] pub struct CleanupCandidacy { pub candidate: cleanup_candidacy::Candidate, pub max: cleanup_candidacy::Max, @@ -18811,7 +21602,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cleanup_challenge`]."] + #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the challenge round is ended."] pub struct CleanupChallenge { pub challenge_round: cleanup_challenge::ChallengeRound, pub max: cleanup_challenge::Max, @@ -18828,7 +21621,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::bid`]."] + #[doc = "A user outside of the society can make a bid for entry."] + #[doc = ""] + #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"] + #[doc = "when the bid becomes a member, or if the bid calls `unbid`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."] pub fn bid( &self, value: types::bid::Value, @@ -18845,7 +21646,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unbid`]."] + #[doc = "A bidder can remove their bid for entry into society."] + #[doc = "By doing so, they will have their candidate deposit returned or"] + #[doc = "they will unvouch their voucher."] + #[doc = ""] + #[doc = "Payment: The bid deposit is unreserved if the user made a bid."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."] pub fn unbid( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -18862,7 +21669,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vouch`]."] + #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."] + #[doc = ""] + #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"] + #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"] + #[doc = "the suspension judgement origin, the member will be banned from vouching again."] + #[doc = ""] + #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"] + #[doc = "be paid as a portion of the reward the member will receive for joining the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The user who you would like to vouch for."] + #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"] + #[doc = "a member in the society."] + #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"] + #[doc = "the society. Tips larger than `value` will be saturated upon payout."] pub fn vouch( &self, who: types::vouch::Who, @@ -18881,7 +21704,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unvouch`]."] + #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"] + #[doc = "only a bidder (and not a candidate)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."] pub fn unvouch( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -18898,7 +21727,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vote`]."] + #[doc = "As a member, vote on a candidate."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `candidate`: The candidate that the member would like to bid on."] + #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"] + #[doc = " rejected (`false`)."] pub fn vote( &self, candidate: types::vote::Candidate, @@ -18916,7 +21752,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::defender_vote`]."] + #[doc = "As a member, vote on the defender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `approve`: A boolean which says if the candidate should be"] + #[doc = "approved (`true`) or rejected (`false`)."] pub fn defender_vote( &self, approve: types::defender_vote::Approve, @@ -18934,7 +21776,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::payout`]."] + #[doc = "Transfer the first matured payout for the sender and remove it from the records."] + #[doc = ""] + #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"] + #[doc = "payouts."] + #[doc = ""] + #[doc = "Payment: The member will receive a payment equal to their first matured"] + #[doc = "payout to their free balance."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member with"] + #[doc = "payouts remaining."] pub fn payout( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -18950,7 +21801,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::waive_repay`]."] + #[doc = "Repay the payment previously given to the member with the signed origin, remove any"] + #[doc = "pending payments, and elevate them from rank 0 to rank 1."] pub fn waive_repay( &self, amount: types::waive_repay::Amount, @@ -18967,7 +21819,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::found_society`]."] + #[doc = "Found the society."] + #[doc = ""] + #[doc = "This is done as a discrete action in order to allow for the"] + #[doc = "pallet to be included into a running chain and can only be done once."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `founder` - The first member and head of the newly founded society."] + #[doc = "- `max_members` - The initial max number of members for the society."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] + #[doc = "- `rules` - The rules of this society concerning membership."] + #[doc = ""] + #[doc = "Complexity: O(1)"] pub fn found_society( &self, founder: types::found_society::Founder, @@ -18997,7 +21865,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Dissolve the society and remove all members."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"] + #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"] + #[doc = "member."] pub fn dissolve( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -19014,7 +21886,20 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::judge_suspended_member`]."] + #[doc = "Allow suspension judgement origin to make judgement on a suspended member."] + #[doc = ""] + #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"] + #[doc = "any of the existing storage items for that member."] + #[doc = ""] + #[doc = "If a suspended member is rejected, remove all associated storage items, including"] + #[doc = "their payouts, and remove any vouched bids they currently have."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed from the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended member to be judged."] + #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"] + #[doc = " (`true`) or rejects (`false`) a suspended member."] pub fn judge_suspended_member( &self, who: types::judge_suspended_member::Who, @@ -19032,7 +21917,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_parameters`]."] + #[doc = "Change the maximum number of members in society and the maximum number of new candidates"] + #[doc = "in a single intake period."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed by the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"] + #[doc = " than the current number of members."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] pub fn set_parameters( &self, max_members: types::set_parameters::MaxMembers, @@ -19058,7 +21954,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::punish_skeptic`]."] + #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"] + #[doc = "candidate."] pub fn punish_skeptic( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -19075,7 +21972,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the"] + #[doc = "the candidate, and only after the period for voting has ended."] pub fn claim_membership( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -19091,7 +21989,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::bestow_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"] + #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"] + #[doc = "clearly rejected."] pub fn bestow_membership( &self, candidate: types::bestow_membership::Candidate, @@ -19108,7 +22008,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kick_candidate`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"] + #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"] + #[doc = "have a clear approval."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] pub fn kick_candidate( &self, candidate: types::kick_candidate::Candidate, @@ -19125,7 +22029,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::resign_candidacy`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the candidate."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] pub fn resign_candidacy( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -19142,7 +22048,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::drop_candidate`]."] + #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"] + #[doc = "signed origin but only at the end of the subsequent round and only for"] + #[doc = "a candidate with more rejections than approvals."] + #[doc = ""] + #[doc = "The bid deposit is lost and the voucher is banned."] pub fn drop_candidate( &self, candidate: types::drop_candidate::Candidate, @@ -19159,7 +22069,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cleanup_candidacy`]."] + #[doc = "Remove up to `max` stale votes for the given `candidate`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."] pub fn cleanup_candidacy( &self, candidate: types::cleanup_candidacy::Candidate, @@ -19178,7 +22090,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cleanup_challenge`]."] + #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the challenge round is ended."] pub fn cleanup_challenge( &self, challenge_round: types::cleanup_challenge::ChallengeRound, @@ -19694,7 +22608,7 @@ pub mod api { pub mod vote_clear_cursor { use super::runtime_types; pub type VoteClearCursor = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; @@ -20638,7 +23552,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::as_recovered`]."] + #[doc = "Send a call through a recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."] + #[doc = "- `call`: The call you want to make with the recovered account."] pub struct AsRecovered { pub account: as_recovered::Account, pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -20669,7 +23590,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_recovered`]."] + #[doc = "Allow ROOT to bypass the recovery process and set an a rescuer account"] + #[doc = "for a lost account directly."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The \"lost account\" to be recovered."] + #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."] pub struct SetRecovered { pub lost: set_recovered::Lost, pub rescuer: set_recovered::Rescuer, @@ -20703,7 +23631,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::create_recovery`]."] + #[doc = "Create a recovery configuration for your account. This makes your account recoverable."] + #[doc = ""] + #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"] + #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"] + #[doc = "in full when the user calls `remove_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"] + #[doc = " ordered and contain no duplicate values."] + #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"] + #[doc = " account can be recovered. Should be less than or equal to the length of the list of"] + #[doc = " friends."] + #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"] + #[doc = " needs to pass before the account can be recovered."] pub struct CreateRecovery { pub friends: create_recovery::Friends, pub threshold: create_recovery::Threshold, @@ -20735,7 +23678,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::initiate_recovery`]."] + #[doc = "Initiate the process for recovering a recoverable account."] + #[doc = ""] + #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"] + #[doc = "recovery process. This deposit will always be repatriated to the account"] + #[doc = "trying to be recovered. See `close_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to recover. This account needs to be"] + #[doc = " recoverable (i.e. have a recovery configuration)."] pub struct InitiateRecovery { pub account: initiate_recovery::Account, } @@ -20764,7 +23717,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vouch_recovery`]."] + #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"] + #[doc = "process for that account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""] + #[doc = "for the recoverable account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The lost account that you want to recover."] + #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."] + #[doc = ""] + #[doc = "The combination of these two parameters must point to an active recovery"] + #[doc = "process."] pub struct VouchRecovery { pub lost: vouch_recovery::Lost, pub rescuer: vouch_recovery::Rescuer, @@ -20798,7 +23762,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_recovery`]."] + #[doc = "Allow a successful rescuer to claim their recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""] + #[doc = "who has successfully completed the account recovery process: collected"] + #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"] + #[doc = " you."] pub struct ClaimRecovery { pub account: claim_recovery::Account, } @@ -20827,7 +23799,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::close_recovery`]."] + #[doc = "As the controller of a recoverable account, close an active recovery"] + #[doc = "process for your account."] + #[doc = ""] + #[doc = "Payment: By calling this function, the recoverable account will receive"] + #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account with an active recovery process for it."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `rescuer`: The account trying to rescue this recoverable account."] pub struct CloseRecovery { pub rescuer: close_recovery::Rescuer, } @@ -20856,7 +23838,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_recovery`]."] + #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."] + #[doc = ""] + #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"] + #[doc = "recovery attempts before calling this function else it will fail."] + #[doc = ""] + #[doc = "Payment: By calling this function the recoverable account will unreserve"] + #[doc = "their recovery configuration deposit."] + #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account (i.e. has a recovery configuration)."] pub struct RemoveRecovery; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveRecovery { const PALLET: &'static str = "Recovery"; @@ -20876,7 +23868,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_recovered`]."] + #[doc = "Cancel the ability to use `as_recovered` for `account`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you are able to call on-behalf-of."] pub struct CancelRecovered { pub account: cancel_recovered::Account, } @@ -20894,7 +23892,14 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::as_recovered`]."] + #[doc = "Send a call through a recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."] + #[doc = "- `call`: The call you want to make with the recovered account."] pub fn as_recovered( &self, account: types::as_recovered::Account, @@ -20909,14 +23914,20 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 132u8, 94u8, 18u8, 16u8, 239u8, 67u8, 148u8, 125u8, 211u8, 36u8, 235u8, - 248u8, 182u8, 156u8, 31u8, 86u8, 222u8, 157u8, 184u8, 224u8, 140u8, - 128u8, 168u8, 185u8, 169u8, 179u8, 67u8, 196u8, 157u8, 249u8, 228u8, - 33u8, + 132u8, 37u8, 218u8, 159u8, 191u8, 34u8, 163u8, 81u8, 248u8, 49u8, 86u8, + 154u8, 137u8, 128u8, 38u8, 252u8, 68u8, 212u8, 51u8, 118u8, 179u8, + 98u8, 40u8, 52u8, 164u8, 174u8, 49u8, 200u8, 192u8, 207u8, 1u8, 108u8, ], ) } - #[doc = "See [`Pallet::set_recovered`]."] + #[doc = "Allow ROOT to bypass the recovery process and set an a rescuer account"] + #[doc = "for a lost account directly."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The \"lost account\" to be recovered."] + #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."] pub fn set_recovered( &self, lost: types::set_recovered::Lost, @@ -20934,7 +23945,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::create_recovery`]."] + #[doc = "Create a recovery configuration for your account. This makes your account recoverable."] + #[doc = ""] + #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"] + #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"] + #[doc = "in full when the user calls `remove_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"] + #[doc = " ordered and contain no duplicate values."] + #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"] + #[doc = " account can be recovered. Should be less than or equal to the length of the list of"] + #[doc = " friends."] + #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"] + #[doc = " needs to pass before the account can be recovered."] pub fn create_recovery( &self, friends: types::create_recovery::Friends, @@ -20957,7 +23983,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::initiate_recovery`]."] + #[doc = "Initiate the process for recovering a recoverable account."] + #[doc = ""] + #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"] + #[doc = "recovery process. This deposit will always be repatriated to the account"] + #[doc = "trying to be recovered. See `close_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to recover. This account needs to be"] + #[doc = " recoverable (i.e. have a recovery configuration)."] pub fn initiate_recovery( &self, account: types::initiate_recovery::Account, @@ -20974,7 +24010,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vouch_recovery`]."] + #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"] + #[doc = "process for that account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""] + #[doc = "for the recoverable account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The lost account that you want to recover."] + #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."] + #[doc = ""] + #[doc = "The combination of these two parameters must point to an active recovery"] + #[doc = "process."] pub fn vouch_recovery( &self, lost: types::vouch_recovery::Lost, @@ -20992,7 +24039,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_recovery`]."] + #[doc = "Allow a successful rescuer to claim their recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""] + #[doc = "who has successfully completed the account recovery process: collected"] + #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"] + #[doc = " you."] pub fn claim_recovery( &self, account: types::claim_recovery::Account, @@ -21010,7 +24065,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::close_recovery`]."] + #[doc = "As the controller of a recoverable account, close an active recovery"] + #[doc = "process for your account."] + #[doc = ""] + #[doc = "Payment: By calling this function, the recoverable account will receive"] + #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account with an active recovery process for it."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `rescuer`: The account trying to rescue this recoverable account."] pub fn close_recovery( &self, rescuer: types::close_recovery::Rescuer, @@ -21028,7 +24093,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_recovery`]."] + #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."] + #[doc = ""] + #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"] + #[doc = "recovery attempts before calling this function else it will fail."] + #[doc = ""] + #[doc = "Payment: By calling this function the recoverable account will unreserve"] + #[doc = "their recovery configuration deposit."] + #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account (i.e. has a recovery configuration)."] pub fn remove_recovery( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -21045,7 +24120,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_recovered`]."] + #[doc = "Cancel the ability to use `as_recovered` for `account`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you are able to call on-behalf-of."] pub fn cancel_recovered( &self, account: types::cancel_recovered::Account, @@ -21560,7 +24641,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vest`]."] + #[doc = "Unlock any vested funds of the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Vest; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Vest { const PALLET: &'static str = "Vesting"; @@ -21580,7 +24669,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vest_other`]."] + #[doc = "Unlock any vested funds of a `target` account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct VestOther { pub target: vest_other::Target, } @@ -21609,7 +24708,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vested_transfer`]."] + #[doc = "Create a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account receiving the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct VestedTransfer { pub target: vested_transfer::Target, pub schedule: vested_transfer::Schedule, @@ -21643,7 +24754,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_vested_transfer`]."] + #[doc = "Force a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `source`: The account whose funds should be transferred."] + #[doc = "- `target`: The account that should be transferred the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct ForceVestedTransfer { pub source: force_vested_transfer::Source, pub target: force_vested_transfer::Target, @@ -21682,7 +24806,27 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::merge_schedules`]."] + #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"] + #[doc = "the highest possible start and end blocks. If both schedules have already started the"] + #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"] + #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"] + #[doc = "unmodified."] + #[doc = ""] + #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."] + #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."] + #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"] + #[doc = "and both will be removed."] + #[doc = ""] + #[doc = "Merged schedule attributes:"] + #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"] + #[doc = " current_block)`."] + #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."] + #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `schedule1_index`: index of the first schedule to merge."] + #[doc = "- `schedule2_index`: index of the second schedule to merge."] pub struct MergeSchedules { pub schedule1_index: merge_schedules::Schedule1Index, pub schedule2_index: merge_schedules::Schedule2Index, @@ -21696,10 +24840,54 @@ pub mod api { const PALLET: &'static str = "Vesting"; const CALL: &'static str = "merge_schedules"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Force remove a vesting schedule"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `target`: An account that has a vesting schedule"] + #[doc = "- `schedule_index`: The vesting schedule index that should be removed"] + pub struct ForceRemoveVestingSchedule { + pub target: force_remove_vesting_schedule::Target, + pub schedule_index: force_remove_vesting_schedule::ScheduleIndex, + } + pub mod force_remove_vesting_schedule { + use super::runtime_types; + pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type ScheduleIndex = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceRemoveVestingSchedule { + const PALLET: &'static str = "Vesting"; + const CALL: &'static str = "force_remove_vesting_schedule"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::vest`]."] + #[doc = "Unlock any vested funds of the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn vest( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -21716,7 +24904,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vest_other`]."] + #[doc = "Unlock any vested funds of a `target` account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn vest_other( &self, target: types::vest_other::Target, @@ -21733,7 +24931,19 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vested_transfer`]."] + #[doc = "Create a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account receiving the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn vested_transfer( &self, target: types::vested_transfer::Target, @@ -21751,7 +24961,20 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_vested_transfer`]."] + #[doc = "Force a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `source`: The account whose funds should be transferred."] + #[doc = "- `target`: The account that should be transferred the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn force_vested_transfer( &self, source: types::force_vested_transfer::Source, @@ -21775,7 +24998,27 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::merge_schedules`]."] + #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"] + #[doc = "the highest possible start and end blocks. If both schedules have already started the"] + #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"] + #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"] + #[doc = "unmodified."] + #[doc = ""] + #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."] + #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."] + #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"] + #[doc = "and both will be removed."] + #[doc = ""] + #[doc = "Merged schedule attributes:"] + #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"] + #[doc = " current_block)`."] + #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."] + #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `schedule1_index`: index of the first schedule to merge."] + #[doc = "- `schedule2_index`: index of the second schedule to merge."] pub fn merge_schedules( &self, schedule1_index: types::merge_schedules::Schedule1Index, @@ -21796,6 +25039,33 @@ pub mod api { ], ) } + #[doc = "Force remove a vesting schedule"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `target`: An account that has a vesting schedule"] + #[doc = "- `schedule_index`: The vesting schedule index that should be removed"] + pub fn force_remove_vesting_schedule( + &self, + target: types::force_remove_vesting_schedule::Target, + schedule_index: types::force_remove_vesting_schedule::ScheduleIndex, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ForceRemoveVestingSchedule, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Vesting", + "force_remove_vesting_schedule", + types::ForceRemoveVestingSchedule { + target, + schedule_index, + }, + [ + 211u8, 253u8, 60u8, 15u8, 20u8, 53u8, 23u8, 13u8, 45u8, 223u8, 136u8, + 183u8, 162u8, 143u8, 196u8, 188u8, 35u8, 64u8, 174u8, 16u8, 47u8, 13u8, + 147u8, 173u8, 120u8, 143u8, 75u8, 89u8, 128u8, 187u8, 9u8, 18u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -22012,7 +25282,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule`]."] + #[doc = "Anonymously schedule a task."] pub struct Schedule { pub when: schedule::When, pub maybe_periodic: schedule::MaybePeriodic, @@ -22045,7 +25315,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an anonymously scheduled task."] pub struct Cancel { pub when: cancel::When, pub index: cancel::Index, @@ -22073,7 +25343,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule_named`]."] + #[doc = "Schedule a named task."] pub struct ScheduleNamed { pub id: schedule_named::Id, pub when: schedule_named::When, @@ -22108,7 +25378,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_named`]."] + #[doc = "Cancel a named scheduled task."] pub struct CancelNamed { pub id: cancel_named::Id, } @@ -22134,7 +25404,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule_after`]."] + #[doc = "Anonymously schedule a task after a delay."] pub struct ScheduleAfter { pub after: schedule_after::After, pub maybe_periodic: schedule_after::MaybePeriodic, @@ -22167,7 +25437,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule_named_after`]."] + #[doc = "Schedule a named task after a delay."] pub struct ScheduleNamedAfter { pub id: schedule_named_after::Id, pub after: schedule_named_after::After, @@ -22189,10 +25459,144 @@ pub mod api { const PALLET: &'static str = "Scheduler"; const CALL: &'static str = "schedule_named_after"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"] + #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"] + #[doc = "succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + pub struct SetRetry { + pub task: set_retry::Task, + pub retries: set_retry::Retries, + pub period: set_retry::Period, + } + pub mod set_retry { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + pub type Retries = ::core::primitive::u8; + pub type Period = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetRetry { + const PALLET: &'static str = "Scheduler"; + const CALL: &'static str = "set_retry"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"] + #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"] + #[doc = "it succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + pub struct SetRetryNamed { + pub id: set_retry_named::Id, + pub retries: set_retry_named::Retries, + pub period: set_retry_named::Period, + } + pub mod set_retry_named { + use super::runtime_types; + pub type Id = [::core::primitive::u8; 32usize]; + pub type Retries = ::core::primitive::u8; + pub type Period = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetRetryNamed { + const PALLET: &'static str = "Scheduler"; + const CALL: &'static str = "set_retry_named"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Removes the retry configuration of a task."] + pub struct CancelRetry { + pub task: cancel_retry::Task, + } + pub mod cancel_retry { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelRetry { + const PALLET: &'static str = "Scheduler"; + const CALL: &'static str = "cancel_retry"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Cancel the retry configuration of a named task."] + pub struct CancelRetryNamed { + pub id: cancel_retry_named::Id, + } + pub mod cancel_retry_named { + use super::runtime_types; + pub type Id = [::core::primitive::u8; 32usize]; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelRetryNamed { + const PALLET: &'static str = "Scheduler"; + const CALL: &'static str = "cancel_retry_named"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::schedule`]."] + #[doc = "Anonymously schedule a task."] pub fn schedule( &self, when: types::schedule::When, @@ -22211,14 +25615,14 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 252u8, 254u8, 42u8, 224u8, 241u8, 137u8, 180u8, 193u8, 26u8, 146u8, - 35u8, 137u8, 255u8, 216u8, 163u8, 49u8, 213u8, 110u8, 57u8, 170u8, - 216u8, 56u8, 196u8, 95u8, 74u8, 66u8, 15u8, 209u8, 137u8, 34u8, 175u8, - 238u8, + 237u8, 223u8, 182u8, 213u8, 50u8, 19u8, 162u8, 71u8, 232u8, 61u8, + 118u8, 151u8, 138u8, 98u8, 231u8, 211u8, 240u8, 44u8, 121u8, 163u8, + 74u8, 126u8, 120u8, 135u8, 42u8, 126u8, 218u8, 203u8, 130u8, 83u8, + 31u8, 186u8, ], ) } - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an anonymously scheduled task."] pub fn cancel( &self, when: types::cancel::When, @@ -22237,7 +25641,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::schedule_named`]."] + #[doc = "Schedule a named task."] pub fn schedule_named( &self, id: types::schedule_named::Id, @@ -22258,14 +25662,14 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 45u8, 36u8, 20u8, 248u8, 180u8, 54u8, 108u8, 243u8, 147u8, 74u8, 234u8, - 254u8, 138u8, 186u8, 88u8, 29u8, 195u8, 57u8, 197u8, 231u8, 174u8, - 141u8, 250u8, 76u8, 93u8, 53u8, 34u8, 247u8, 103u8, 138u8, 160u8, - 198u8, + 79u8, 255u8, 243u8, 125u8, 102u8, 184u8, 58u8, 167u8, 210u8, 69u8, + 162u8, 77u8, 190u8, 147u8, 113u8, 64u8, 239u8, 95u8, 169u8, 110u8, + 141u8, 194u8, 23u8, 213u8, 105u8, 131u8, 207u8, 9u8, 47u8, 250u8, + 112u8, 53u8, ], ) } - #[doc = "See [`Pallet::cancel_named`]."] + #[doc = "Cancel a named scheduled task."] pub fn cancel_named( &self, id: types::cancel_named::Id, @@ -22282,7 +25686,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::schedule_after`]."] + #[doc = "Anonymously schedule a task after a delay."] pub fn schedule_after( &self, after: types::schedule_after::After, @@ -22301,13 +25705,14 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 161u8, 65u8, 247u8, 115u8, 13u8, 56u8, 115u8, 110u8, 92u8, 6u8, 119u8, - 247u8, 90u8, 174u8, 97u8, 217u8, 73u8, 49u8, 17u8, 2u8, 117u8, 225u8, - 251u8, 48u8, 148u8, 105u8, 136u8, 83u8, 65u8, 178u8, 65u8, 96u8, + 209u8, 175u8, 150u8, 26u8, 50u8, 139u8, 49u8, 186u8, 146u8, 42u8, + 254u8, 251u8, 17u8, 45u8, 119u8, 189u8, 103u8, 33u8, 76u8, 25u8, 233u8, + 228u8, 50u8, 142u8, 254u8, 236u8, 4u8, 19u8, 220u8, 221u8, 141u8, + 100u8, ], ) } - #[doc = "See [`Pallet::schedule_named_after`]."] + #[doc = "Schedule a named task after a delay."] pub fn schedule_named_after( &self, id: types::schedule_named_after::Id, @@ -22328,9 +25733,114 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 215u8, 126u8, 151u8, 2u8, 165u8, 35u8, 101u8, 79u8, 101u8, 79u8, 27u8, - 17u8, 244u8, 244u8, 166u8, 173u8, 2u8, 26u8, 222u8, 154u8, 106u8, - 232u8, 202u8, 86u8, 226u8, 222u8, 9u8, 17u8, 221u8, 85u8, 85u8, 140u8, + 108u8, 70u8, 141u8, 162u8, 197u8, 227u8, 232u8, 124u8, 121u8, 77u8, + 144u8, 42u8, 83u8, 110u8, 106u8, 126u8, 240u8, 2u8, 236u8, 103u8, + 148u8, 67u8, 128u8, 62u8, 24u8, 242u8, 179u8, 59u8, 215u8, 245u8, + 225u8, 135u8, + ], + ) + } + #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"] + #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"] + #[doc = "succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + pub fn set_retry( + &self, + task: types::set_retry::Task, + retries: types::set_retry::Retries, + period: types::set_retry::Period, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Scheduler", + "set_retry", + types::SetRetry { + task, + retries, + period, + }, + [ + 2u8, 242u8, 180u8, 69u8, 237u8, 168u8, 243u8, 93u8, 47u8, 222u8, 189u8, + 74u8, 233u8, 106u8, 54u8, 40u8, 160u8, 61u8, 78u8, 138u8, 232u8, 20u8, + 243u8, 17u8, 151u8, 194u8, 67u8, 200u8, 186u8, 192u8, 210u8, 214u8, + ], + ) + } + #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"] + #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"] + #[doc = "it succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + pub fn set_retry_named( + &self, + id: types::set_retry_named::Id, + retries: types::set_retry_named::Retries, + period: types::set_retry_named::Period, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Scheduler", + "set_retry_named", + types::SetRetryNamed { + id, + retries, + period, + }, + [ + 240u8, 102u8, 255u8, 253u8, 52u8, 81u8, 164u8, 170u8, 184u8, 178u8, + 254u8, 126u8, 41u8, 247u8, 121u8, 22u8, 254u8, 136u8, 237u8, 37u8, + 11u8, 42u8, 227u8, 234u8, 132u8, 83u8, 109u8, 168u8, 31u8, 44u8, 231u8, + 70u8, + ], + ) + } + #[doc = "Removes the retry configuration of a task."] + pub fn cancel_retry( + &self, + task: types::cancel_retry::Task, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Scheduler", + "cancel_retry", + types::CancelRetry { task }, + [ + 142u8, 126u8, 127u8, 216u8, 64u8, 189u8, 42u8, 126u8, 63u8, 249u8, + 211u8, 202u8, 224u8, 197u8, 199u8, 240u8, 58u8, 94u8, 219u8, 177u8, + 20u8, 210u8, 153u8, 0u8, 127u8, 255u8, 235u8, 238u8, 170u8, 240u8, + 44u8, 49u8, + ], + ) + } + #[doc = "Cancel the retry configuration of a named task."] + pub fn cancel_retry_named( + &self, + id: types::cancel_retry_named::Id, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Scheduler", + "cancel_retry_named", + types::CancelRetryNamed { id }, + [ + 76u8, 157u8, 253u8, 113u8, 162u8, 54u8, 98u8, 21u8, 62u8, 44u8, 155u8, + 202u8, 2u8, 28u8, 153u8, 219u8, 67u8, 166u8, 206u8, 79u8, 139u8, 3u8, + 119u8, 182u8, 254u8, 134u8, 143u8, 121u8, 155u8, 220u8, 192u8, 209u8, ], ) } @@ -22425,6 +25935,58 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Set a retry configuration for some task."] + pub struct RetrySet { + pub task: retry_set::Task, + pub id: retry_set::Id, + pub period: retry_set::Period, + pub retries: retry_set::Retries, + } + pub mod retry_set { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>; + pub type Period = ::core::primitive::u32; + pub type Retries = ::core::primitive::u8; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for RetrySet { + const PALLET: &'static str = "Scheduler"; + const EVENT: &'static str = "RetrySet"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Cancel a retry configuration for some task."] + pub struct RetryCancelled { + pub task: retry_cancelled::Task, + pub id: retry_cancelled::Id, + } + pub mod retry_cancelled { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for RetryCancelled { + const PALLET: &'static str = "Scheduler"; + const EVENT: &'static str = "RetryCancelled"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The call for the provided hash was not found so the task has been aborted."] pub struct CallUnavailable { pub task: call_unavailable::Task, @@ -22473,6 +26035,31 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The given task was unable to be retried since the agenda is full at that block or there"] + #[doc = "was not enough weight to reschedule it."] + pub struct RetryFailed { + pub task: retry_failed::Task, + pub id: retry_failed::Id, + } + pub mod retry_failed { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for RetryFailed { + const PALLET: &'static str = "Scheduler"; + const EVENT: &'static str = "RetryFailed"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The given task can never be executed since it is overweight."] pub struct PermanentlyOverweight { pub task: permanently_overweight::Task, @@ -22514,6 +26101,13 @@ pub mod api { >; pub type Param0 = ::core::primitive::u32; } + pub mod retries { + use super::runtime_types; + pub type Retries = + runtime_types::pallet_scheduler::RetryConfig<::core::primitive::u32>; + pub type Param0 = ::core::primitive::u32; + pub type Param1 = ::core::primitive::u32; + } pub mod lookup { use super::runtime_types; pub type Lookup = (::core::primitive::u32, ::core::primitive::u32); @@ -22557,9 +26151,9 @@ pub mod api { "Agenda", (), [ - 247u8, 226u8, 115u8, 70u8, 172u8, 69u8, 26u8, 24u8, 46u8, 202u8, 118u8, - 250u8, 111u8, 236u8, 77u8, 255u8, 26u8, 125u8, 18u8, 8u8, 24u8, 230u8, - 222u8, 140u8, 179u8, 235u8, 19u8, 161u8, 40u8, 78u8, 26u8, 173u8, + 10u8, 123u8, 252u8, 106u8, 154u8, 9u8, 245u8, 203u8, 188u8, 254u8, + 20u8, 41u8, 6u8, 226u8, 78u8, 188u8, 0u8, 173u8, 143u8, 44u8, 117u8, + 249u8, 180u8, 13u8, 236u8, 224u8, 170u8, 202u8, 24u8, 3u8, 163u8, 37u8, ], ) } @@ -22583,9 +26177,96 @@ pub mod api { _0.borrow(), ), [ - 247u8, 226u8, 115u8, 70u8, 172u8, 69u8, 26u8, 24u8, 46u8, 202u8, 118u8, - 250u8, 111u8, 236u8, 77u8, 255u8, 26u8, 125u8, 18u8, 8u8, 24u8, 230u8, - 222u8, 140u8, 179u8, 235u8, 19u8, 161u8, 40u8, 78u8, 26u8, 173u8, + 10u8, 123u8, 252u8, 106u8, 154u8, 9u8, 245u8, 203u8, 188u8, 254u8, + 20u8, 41u8, 6u8, 226u8, 78u8, 188u8, 0u8, 173u8, 143u8, 44u8, 117u8, + 249u8, 180u8, 13u8, 236u8, 224u8, 170u8, 202u8, 24u8, 3u8, 163u8, 37u8, + ], + ) + } + #[doc = " Retry configurations for items to be executed, indexed by task address."] + pub fn retries_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::retries::Retries, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Scheduler", + "Retries", + (), + [ + 164u8, 27u8, 208u8, 185u8, 19u8, 232u8, 190u8, 97u8, 137u8, 73u8, + 146u8, 10u8, 241u8, 176u8, 251u8, 140u8, 133u8, 65u8, 190u8, 162u8, + 59u8, 32u8, 77u8, 201u8, 27u8, 78u8, 183u8, 164u8, 74u8, 46u8, 139u8, + 145u8, + ], + ) + } + #[doc = " Retry configurations for items to be executed, indexed by task address."] + pub fn retries_iter1( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::retries::Param0, + >, + types::retries::Retries, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Scheduler", + "Retries", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 164u8, 27u8, 208u8, 185u8, 19u8, 232u8, 190u8, 97u8, 137u8, 73u8, + 146u8, 10u8, 241u8, 176u8, 251u8, 140u8, 133u8, 65u8, 190u8, 162u8, + 59u8, 32u8, 77u8, 201u8, 27u8, 78u8, 183u8, 164u8, 74u8, 46u8, 139u8, + 145u8, + ], + ) + } + #[doc = " Retry configurations for items to be executed, indexed by task address."] + pub fn retries( + &self, + _0: impl ::core::borrow::Borrow, + _1: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ( + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::retries::Param0, + >, + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::retries::Param1, + >, + ), + types::retries::Retries, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Scheduler", + "Retries", + ( + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _1.borrow(), + ), + ), + [ + 164u8, 27u8, 208u8, 185u8, 19u8, 232u8, 190u8, 97u8, 137u8, 73u8, + 146u8, 10u8, 241u8, 176u8, 251u8, 140u8, 133u8, 65u8, 190u8, 162u8, + 59u8, 32u8, 77u8, 201u8, 27u8, 78u8, 183u8, 164u8, 74u8, 46u8, 139u8, + 145u8, ], ) } @@ -22716,7 +26397,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::proxy`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] pub struct Proxy { pub real: proxy::Real, pub force_proxy_type: proxy::ForceProxyType, @@ -22750,7 +26439,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_proxy`]."] + #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."] + #[doc = "- `proxy_type`: The permissions allowed for this proxy account."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] pub struct AddProxy { pub delegate: add_proxy::Delegate, pub proxy_type: add_proxy::ProxyType, @@ -22783,7 +26480,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_proxy`]."] + #[doc = "Unregister a proxy account for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."] + #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."] pub struct RemoveProxy { pub delegate: remove_proxy::Delegate, pub proxy_type: remove_proxy::ProxyType, @@ -22816,7 +26519,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_proxies`]."] + #[doc = "Unregister all proxy accounts for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "WARNING: This may be called on accounts created by `pure`, however if done, then"] + #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"] pub struct RemoveProxies; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveProxies { const PALLET: &'static str = "Proxy"; @@ -22836,7 +26544,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::create_pure`]."] + #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"] + #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."] + #[doc = ""] + #[doc = "Requires a `Signed` origin."] + #[doc = ""] + #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"] + #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"] + #[doc = "allow for maximum flexibility."] + #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"] + #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"] + #[doc = "want to use `0`."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + #[doc = ""] + #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"] + #[doc = "same sender, with the same parameters."] + #[doc = ""] + #[doc = "Fails if there are insufficient funds to pay for deposit."] pub struct CreatePure { pub proxy_type: create_pure::ProxyType, pub delay: create_pure::Delay, @@ -22866,7 +26591,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill_pure`]."] + #[doc = "Removes a previously spawned pure proxy."] + #[doc = ""] + #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"] + #[doc = "inaccessible."] + #[doc = ""] + #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"] + #[doc = "`pure` with corresponding parameters."] + #[doc = ""] + #[doc = "- `spawner`: The account that originally called `pure` to create this account."] + #[doc = "- `index`: The disambiguation index originally passed to `pure`. Probably `0`."] + #[doc = "- `proxy_type`: The proxy type originally passed to `pure`."] + #[doc = "- `height`: The height of the chain when the call to `pure` was processed."] + #[doc = "- `ext_index`: The extrinsic index in which the call to `pure` was processed."] + #[doc = ""] + #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"] + #[doc = "account whose `pure` call has corresponding parameters."] pub struct KillPure { pub spawner: kill_pure::Spawner, pub proxy_type: kill_pure::ProxyType, @@ -22905,7 +26645,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::announce`]."] + #[doc = "Publish the hash of a proxy-call that will be made in the future."] + #[doc = ""] + #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"] + #[doc = "if the delay associated with the proxy relationship is greater than zero."] + #[doc = ""] + #[doc = "No more than `MaxPending` announcements may be made at any one time."] + #[doc = ""] + #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"] + #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] pub struct Announce { pub real: announce::Real, pub call_hash: announce::CallHash, @@ -22936,7 +26690,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_announcement`]."] + #[doc = "Remove a given announcement."] + #[doc = ""] + #[doc = "May be called by a proxy account to remove a call they previously announced and return"] + #[doc = "the deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] pub struct RemoveAnnouncement { pub real: remove_announcement::Real, pub call_hash: remove_announcement::CallHash, @@ -22967,7 +26730,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reject_announcement`]."] + #[doc = "Remove the given announcement of a delegate."] + #[doc = ""] + #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"] + #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `delegate`: The account that previously announced the call."] + #[doc = "- `call_hash`: The hash of the call to be made."] pub struct RejectAnnouncement { pub delegate: reject_announcement::Delegate, pub call_hash: reject_announcement::CallHash, @@ -22998,7 +26770,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::proxy_announced`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "Removes any corresponding announcement(s)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] pub struct ProxyAnnounced { pub delegate: proxy_announced::Delegate, pub real: proxy_announced::Real, @@ -23026,7 +26808,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::proxy`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] pub fn proxy( &self, real: types::proxy::Real, @@ -23043,13 +26833,21 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 98u8, 141u8, 93u8, 220u8, 59u8, 37u8, 195u8, 192u8, 188u8, 135u8, - 200u8, 219u8, 164u8, 53u8, 109u8, 30u8, 116u8, 248u8, 13u8, 14u8, 99u8, - 128u8, 30u8, 33u8, 242u8, 89u8, 73u8, 25u8, 198u8, 19u8, 252u8, 157u8, + 78u8, 197u8, 86u8, 211u8, 86u8, 51u8, 128u8, 21u8, 116u8, 196u8, 40u8, + 30u8, 9u8, 179u8, 35u8, 53u8, 245u8, 49u8, 75u8, 68u8, 115u8, 53u8, + 24u8, 230u8, 172u8, 28u8, 91u8, 184u8, 186u8, 197u8, 230u8, 253u8, ], ) } - #[doc = "See [`Pallet::add_proxy`]."] + #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."] + #[doc = "- `proxy_type`: The permissions allowed for this proxy account."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] pub fn add_proxy( &self, delegate: types::add_proxy::Delegate, @@ -23073,7 +26871,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_proxy`]."] + #[doc = "Unregister a proxy account for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."] + #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."] pub fn remove_proxy( &self, delegate: types::remove_proxy::Delegate, @@ -23096,7 +26900,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_proxies`]."] + #[doc = "Unregister all proxy accounts for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "WARNING: This may be called on accounts created by `pure`, however if done, then"] + #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"] pub fn remove_proxies( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -23113,7 +26922,24 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::create_pure`]."] + #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"] + #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."] + #[doc = ""] + #[doc = "Requires a `Signed` origin."] + #[doc = ""] + #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"] + #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"] + #[doc = "allow for maximum flexibility."] + #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"] + #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"] + #[doc = "want to use `0`."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + #[doc = ""] + #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"] + #[doc = "same sender, with the same parameters."] + #[doc = ""] + #[doc = "Fails if there are insufficient funds to pay for deposit."] pub fn create_pure( &self, proxy_type: types::create_pure::ProxyType, @@ -23136,7 +26962,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill_pure`]."] + #[doc = "Removes a previously spawned pure proxy."] + #[doc = ""] + #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"] + #[doc = "inaccessible."] + #[doc = ""] + #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"] + #[doc = "`pure` with corresponding parameters."] + #[doc = ""] + #[doc = "- `spawner`: The account that originally called `pure` to create this account."] + #[doc = "- `index`: The disambiguation index originally passed to `pure`. Probably `0`."] + #[doc = "- `proxy_type`: The proxy type originally passed to `pure`."] + #[doc = "- `height`: The height of the chain when the call to `pure` was processed."] + #[doc = "- `ext_index`: The extrinsic index in which the call to `pure` was processed."] + #[doc = ""] + #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"] + #[doc = "account whose `pure` call has corresponding parameters."] pub fn kill_pure( &self, spawner: types::kill_pure::Spawner, @@ -23163,7 +27004,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::announce`]."] + #[doc = "Publish the hash of a proxy-call that will be made in the future."] + #[doc = ""] + #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"] + #[doc = "if the delay associated with the proxy relationship is greater than zero."] + #[doc = ""] + #[doc = "No more than `MaxPending` announcements may be made at any one time."] + #[doc = ""] + #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"] + #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] pub fn announce( &self, real: types::announce::Real, @@ -23182,7 +27037,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_announcement`]."] + #[doc = "Remove a given announcement."] + #[doc = ""] + #[doc = "May be called by a proxy account to remove a call they previously announced and return"] + #[doc = "the deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] pub fn remove_announcement( &self, real: types::remove_announcement::Real, @@ -23200,7 +27064,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::reject_announcement`]."] + #[doc = "Remove the given announcement of a delegate."] + #[doc = ""] + #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"] + #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `delegate`: The account that previously announced the call."] + #[doc = "- `call_hash`: The hash of the call to be made."] pub fn reject_announcement( &self, delegate: types::reject_announcement::Delegate, @@ -23221,7 +27094,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::proxy_announced`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "Removes any corresponding announcement(s)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] pub fn proxy_announced( &self, delegate: types::proxy_announced::Delegate, @@ -23240,9 +27123,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 26u8, 255u8, 179u8, 183u8, 103u8, 89u8, 89u8, 142u8, 60u8, 152u8, 25u8, - 111u8, 125u8, 218u8, 47u8, 141u8, 211u8, 194u8, 193u8, 46u8, 34u8, - 134u8, 79u8, 218u8, 94u8, 45u8, 203u8, 17u8, 82u8, 3u8, 49u8, 217u8, + 75u8, 59u8, 213u8, 56u8, 241u8, 197u8, 214u8, 45u8, 27u8, 216u8, 197u8, + 233u8, 119u8, 55u8, 149u8, 160u8, 75u8, 37u8, 238u8, 183u8, 35u8, 76u8, + 242u8, 162u8, 202u8, 0u8, 44u8, 118u8, 19u8, 72u8, 214u8, 109u8, ], ) } @@ -23667,7 +27550,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::as_multi_threshold_1`]."] + #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"] + #[doc = "multi-signature, but do not participate in the approval process."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."] pub struct AsMultiThreshold1 { pub other_signatories: as_multi_threshold1::OtherSignatories, pub call: @@ -23698,7 +27592,45 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "If there are enough, then dispatch the call."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "NOTE: Unless this is the final approval, you will generally want to use"] + #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"] + #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"] + #[doc = "may be found in the deposited `MultisigExecuted` event."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S + Z + Call)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- The weight of the `call`."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] pub struct AsMulti { pub threshold: as_multi::Threshold, pub other_signatories: as_multi::OtherSignatories, @@ -23736,7 +27668,36 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::approve_as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] pub struct ApproveAsMulti { pub threshold: approve_as_multi::Threshold, pub other_signatories: approve_as_multi::OtherSignatories, @@ -23774,7 +27735,27 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_as_multi`]."] + #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"] + #[doc = "for this operation will be unreserved on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"] + #[doc = "transaction for this dispatch."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- One event."] + #[doc = "- I/O: 1 read `O(S)`, one remove."] + #[doc = "- Storage: removes one item."] pub struct CancelAsMulti { pub threshold: cancel_as_multi::Threshold, pub other_signatories: cancel_as_multi::OtherSignatories, @@ -23798,7 +27779,18 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::as_multi_threshold_1`]."] + #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"] + #[doc = "multi-signature, but do not participate in the approval process."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."] pub fn as_multi_threshold_1( &self, other_signatories: types::as_multi_threshold1::OtherSignatories, @@ -23813,14 +27805,51 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 193u8, 159u8, 235u8, 139u8, 215u8, 236u8, 234u8, 123u8, 30u8, 127u8, - 92u8, 58u8, 140u8, 165u8, 232u8, 42u8, 90u8, 11u8, 176u8, 101u8, 211u8, - 245u8, 255u8, 57u8, 203u8, 18u8, 250u8, 227u8, 188u8, 229u8, 241u8, - 230u8, + 232u8, 210u8, 141u8, 104u8, 194u8, 137u8, 63u8, 167u8, 239u8, 220u8, + 184u8, 214u8, 187u8, 32u8, 69u8, 65u8, 57u8, 92u8, 110u8, 25u8, 212u8, + 253u8, 202u8, 92u8, 225u8, 231u8, 80u8, 13u8, 61u8, 73u8, 6u8, 176u8, ], ) } - #[doc = "See [`Pallet::as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "If there are enough, then dispatch the call."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "NOTE: Unless this is the final approval, you will generally want to use"] + #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"] + #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"] + #[doc = "may be found in the deposited `MultisigExecuted` event."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S + Z + Call)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- The weight of the `call`."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] pub fn as_multi( &self, threshold: types::as_multi::Threshold, @@ -23841,14 +27870,43 @@ pub mod api { max_weight, }, [ - 101u8, 52u8, 26u8, 235u8, 226u8, 182u8, 13u8, 173u8, 150u8, 137u8, - 150u8, 147u8, 155u8, 127u8, 99u8, 254u8, 187u8, 27u8, 109u8, 227u8, - 158u8, 249u8, 19u8, 33u8, 216u8, 156u8, 223u8, 174u8, 89u8, 95u8, 91u8, - 208u8, + 200u8, 45u8, 11u8, 159u8, 30u8, 144u8, 248u8, 116u8, 245u8, 237u8, + 61u8, 115u8, 87u8, 73u8, 2u8, 251u8, 20u8, 245u8, 142u8, 212u8, 140u8, + 222u8, 233u8, 115u8, 187u8, 90u8, 251u8, 19u8, 15u8, 254u8, 104u8, + 174u8, ], ) } - #[doc = "See [`Pallet::approve_as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] pub fn approve_as_multi( &self, threshold: types::approve_as_multi::Threshold, @@ -23875,7 +27933,27 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_as_multi`]."] + #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"] + #[doc = "for this operation will be unreserved on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"] + #[doc = "transaction for this dispatch."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- One event."] + #[doc = "- I/O: 1 read `O(S)`, one remove."] + #[doc = "- Storage: removes one item."] pub fn cancel_as_multi( &self, threshold: types::cancel_as_multi::Threshold, @@ -24216,7 +28294,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::note_preimage`]."] + #[doc = "Register a preimage on-chain."] + #[doc = ""] + #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"] + #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."] pub struct NotePreimage { pub bytes: note_preimage::Bytes, } @@ -24243,7 +28324,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unnote_preimage`]."] + #[doc = "Clear an unrequested preimage from the runtime storage."] + #[doc = ""] + #[doc = "If `len` is provided, then it will be a much cheaper operation."] + #[doc = ""] + #[doc = "- `hash`: The hash of the preimage to be removed from the store."] + #[doc = "- `len`: The length of the preimage of `hash`."] pub struct UnnotePreimage { pub hash: unnote_preimage::Hash, } @@ -24269,7 +28355,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::request_preimage`]."] + #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."] + #[doc = ""] + #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"] + #[doc = "a user may have paid, and take the control of the preimage out of their hands."] pub struct RequestPreimage { pub hash: request_preimage::Hash, } @@ -24295,7 +28384,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unrequest_preimage`]."] + #[doc = "Clear a previously made request for a preimage."] + #[doc = ""] + #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."] pub struct UnrequestPreimage { pub hash: unrequest_preimage::Hash, } @@ -24321,7 +28412,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::ensure_updated`]."] + #[doc = "Ensure that the a bulk of pre-images is upgraded."] + #[doc = ""] + #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."] pub struct EnsureUpdated { pub hashes: ensure_updated::Hashes, } @@ -24338,7 +28431,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::note_preimage`]."] + #[doc = "Register a preimage on-chain."] + #[doc = ""] + #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"] + #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."] pub fn note_preimage( &self, bytes: types::note_preimage::Bytes, @@ -24355,7 +28451,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unnote_preimage`]."] + #[doc = "Clear an unrequested preimage from the runtime storage."] + #[doc = ""] + #[doc = "If `len` is provided, then it will be a much cheaper operation."] + #[doc = ""] + #[doc = "- `hash`: The hash of the preimage to be removed from the store."] + #[doc = "- `len`: The length of the preimage of `hash`."] pub fn unnote_preimage( &self, hash: types::unnote_preimage::Hash, @@ -24373,7 +28474,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::request_preimage`]."] + #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."] + #[doc = ""] + #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"] + #[doc = "a user may have paid, and take the control of the preimage out of their hands."] pub fn request_preimage( &self, hash: types::request_preimage::Hash, @@ -24390,7 +28494,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unrequest_preimage`]."] + #[doc = "Clear a previously made request for a preimage."] + #[doc = ""] + #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."] pub fn unrequest_preimage( &self, hash: types::unrequest_preimage::Hash, @@ -24408,7 +28514,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::ensure_updated`]."] + #[doc = "Ensure that the a bulk of pre-images is upgraded."] + #[doc = ""] + #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."] pub fn ensure_updated( &self, hashes: types::ensure_updated::Hashes, @@ -24522,7 +28630,7 @@ pub mod api { pub mod preimage_for { use super::runtime_types; pub type PreimageFor = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::subxt::ext::subxt_core::utils::H256; @@ -24741,7 +28849,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::create`]."] + #[doc = "Initialize a conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub struct Create { pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box, pub rate: create::Rate, @@ -24770,7 +28881,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::update`]."] + #[doc = "Update the conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub struct Update { pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box, pub rate: update::Rate, @@ -24799,7 +28913,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove`]."] + #[doc = "Remove an existing conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub struct Remove { pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box, } @@ -24815,7 +28932,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::create`]."] + #[doc = "Initialize a conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub fn create( &self, asset_kind: types::create::AssetKind, @@ -24832,14 +28952,16 @@ pub mod api { rate, }, [ - 154u8, 152u8, 38u8, 160u8, 110u8, 48u8, 11u8, 80u8, 92u8, 50u8, 177u8, - 170u8, 43u8, 6u8, 192u8, 234u8, 105u8, 114u8, 165u8, 178u8, 173u8, - 134u8, 92u8, 233u8, 123u8, 191u8, 176u8, 154u8, 222u8, 224u8, 32u8, - 183u8, + 163u8, 173u8, 223u8, 197u8, 42u8, 251u8, 151u8, 159u8, 252u8, 132u8, + 225u8, 224u8, 207u8, 127u8, 38u8, 0u8, 101u8, 46u8, 29u8, 65u8, 2u8, + 241u8, 3u8, 79u8, 218u8, 10u8, 159u8, 122u8, 48u8, 7u8, 225u8, 103u8, ], ) } - #[doc = "See [`Pallet::update`]."] + #[doc = "Update the conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub fn update( &self, asset_kind: types::update::AssetKind, @@ -24856,14 +28978,16 @@ pub mod api { rate, }, [ - 188u8, 71u8, 197u8, 156u8, 105u8, 63u8, 11u8, 90u8, 124u8, 227u8, - 146u8, 78u8, 93u8, 216u8, 100u8, 41u8, 128u8, 115u8, 66u8, 243u8, - 198u8, 61u8, 115u8, 30u8, 170u8, 218u8, 254u8, 203u8, 37u8, 141u8, - 67u8, 179u8, + 21u8, 51u8, 198u8, 111u8, 185u8, 155u8, 215u8, 34u8, 5u8, 135u8, 138u8, + 77u8, 76u8, 158u8, 63u8, 240u8, 117u8, 39u8, 83u8, 146u8, 70u8, 136u8, + 61u8, 159u8, 30u8, 66u8, 85u8, 41u8, 122u8, 174u8, 25u8, 49u8, ], ) } - #[doc = "See [`Pallet::remove`]."] + #[doc = "Remove an existing conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub fn remove( &self, asset_kind: types::remove::AssetKind, @@ -24878,10 +29002,10 @@ pub mod api { ), }, [ - 229u8, 203u8, 96u8, 158u8, 162u8, 236u8, 80u8, 239u8, 106u8, 193u8, - 85u8, 234u8, 99u8, 87u8, 214u8, 214u8, 157u8, 55u8, 70u8, 91u8, 9u8, - 187u8, 105u8, 99u8, 134u8, 181u8, 56u8, 212u8, 152u8, 136u8, 100u8, - 32u8, + 205u8, 34u8, 63u8, 131u8, 204u8, 76u8, 186u8, 233u8, 160u8, 45u8, + 231u8, 159u8, 186u8, 60u8, 97u8, 218u8, 174u8, 144u8, 106u8, 58u8, + 69u8, 23u8, 244u8, 129u8, 19u8, 250u8, 16u8, 99u8, 165u8, 165u8, 101u8, + 18u8, ], ) } @@ -24995,9 +29119,10 @@ pub mod api { "ConversionRateToNative", (), [ - 211u8, 210u8, 178u8, 27u8, 157u8, 1u8, 68u8, 252u8, 84u8, 174u8, 141u8, - 185u8, 177u8, 39u8, 49u8, 35u8, 65u8, 254u8, 204u8, 246u8, 132u8, 59u8, - 190u8, 228u8, 135u8, 237u8, 161u8, 35u8, 21u8, 114u8, 88u8, 174u8, + 230u8, 127u8, 110u8, 126u8, 79u8, 168u8, 134u8, 97u8, 195u8, 105u8, + 16u8, 57u8, 197u8, 104u8, 87u8, 144u8, 83u8, 188u8, 85u8, 253u8, 230u8, + 194u8, 183u8, 235u8, 152u8, 222u8, 40u8, 20u8, 135u8, 98u8, 140u8, + 108u8, ], ) } @@ -25023,9 +29148,10 @@ pub mod api { _0.borrow(), ), [ - 211u8, 210u8, 178u8, 27u8, 157u8, 1u8, 68u8, 252u8, 84u8, 174u8, 141u8, - 185u8, 177u8, 39u8, 49u8, 35u8, 65u8, 254u8, 204u8, 246u8, 132u8, 59u8, - 190u8, 228u8, 135u8, 237u8, 161u8, 35u8, 21u8, 114u8, 88u8, 174u8, + 230u8, 127u8, 110u8, 126u8, 79u8, 168u8, 134u8, 97u8, 195u8, 105u8, + 16u8, 57u8, 197u8, 104u8, 87u8, 144u8, 83u8, 188u8, 85u8, 253u8, 230u8, + 194u8, 183u8, 235u8, 152u8, 222u8, 40u8, 20u8, 135u8, 98u8, 140u8, + 108u8, ], ) } @@ -25059,7 +29185,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::propose_bounty`]."] + #[doc = "Propose a new bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"] + #[doc = "or slashed when rejected."] + #[doc = ""] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = "- `value`: The total payment amount of this bounty, curator fee included."] + #[doc = "- `description`: The description of this bounty."] pub struct ProposeBounty { #[codec(compact)] pub value: propose_bounty::Value, @@ -25089,7 +29226,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::approve_bounty`]."] + #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct ApproveBounty { #[codec(compact)] pub bounty_id: approve_bounty::BountyId, @@ -25116,7 +29259,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose a curator to a funded bounty."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct ProposeCurator { #[codec(compact)] pub bounty_id: propose_curator::BountyId, @@ -25151,7 +29299,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a bounty."] + #[doc = ""] + #[doc = "This function can only be called by the `RejectOrigin` a signed origin."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"] + #[doc = "malicious or inactive. As a result, we will slash the curator when possible."] + #[doc = ""] + #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"] + #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"] + #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"] + #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"] + #[doc = "we should pick a new curator. In this case the curator should also be slashed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct UnassignCurator { #[codec(compact)] pub bounty_id: unassign_curator::BountyId, @@ -25178,7 +29342,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for a bounty."] + #[doc = "A deposit will be reserved from curator and refund upon successful payout."] + #[doc = ""] + #[doc = "May only be called from the curator."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct AcceptCurator { #[codec(compact)] pub bounty_id: accept_curator::BountyId, @@ -25205,7 +29375,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::award_bounty`]."] + #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"] + #[doc = "after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to award."] + #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct AwardBounty { #[codec(compact)] pub bounty_id: award_bounty::BountyId, @@ -25237,7 +29416,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_bounty`]."] + #[doc = "Claim the payout from an awarded bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to claim."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct ClaimBounty { #[codec(compact)] pub bounty_id: claim_bounty::BountyId, @@ -25264,7 +29450,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::close_bounty`]."] + #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"] + #[doc = "the curator deposit will be unreserved if possible."] + #[doc = ""] + #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to cancel."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct CloseBounty { #[codec(compact)] pub bounty_id: close_bounty::BountyId, @@ -25291,7 +29485,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::extend_bounty_expiry`]."] + #[doc = "Extend the expiry time of an active bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to extend."] + #[doc = "- `remark`: additional information."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct ExtendBountyExpiry { #[codec(compact)] pub bounty_id: extend_bounty_expiry::BountyId, @@ -25310,7 +29512,18 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::propose_bounty`]."] + #[doc = "Propose a new bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"] + #[doc = "or slashed when rejected."] + #[doc = ""] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = "- `value`: The total payment amount of this bounty, curator fee included."] + #[doc = "- `description`: The description of this bounty."] pub fn propose_bounty( &self, value: types::propose_bounty::Value, @@ -25328,7 +29541,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::approve_bounty`]."] + #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn approve_bounty( &self, bounty_id: types::approve_bounty::BountyId, @@ -25346,7 +29565,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose a curator to a funded bounty."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn propose_curator( &self, bounty_id: types::propose_curator::BountyId, @@ -25369,7 +29593,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a bounty."] + #[doc = ""] + #[doc = "This function can only be called by the `RejectOrigin` a signed origin."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"] + #[doc = "malicious or inactive. As a result, we will slash the curator when possible."] + #[doc = ""] + #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"] + #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"] + #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"] + #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"] + #[doc = "we should pick a new curator. In this case the curator should also be slashed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn unassign_curator( &self, bounty_id: types::unassign_curator::BountyId, @@ -25387,7 +29627,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for a bounty."] + #[doc = "A deposit will be reserved from curator and refund upon successful payout."] + #[doc = ""] + #[doc = "May only be called from the curator."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn accept_curator( &self, bounty_id: types::accept_curator::BountyId, @@ -25404,7 +29650,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::award_bounty`]."] + #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"] + #[doc = "after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to award."] + #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn award_bounty( &self, bounty_id: types::award_bounty::BountyId, @@ -25425,7 +29680,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_bounty`]."] + #[doc = "Claim the payout from an awarded bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to claim."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn claim_bounty( &self, bounty_id: types::claim_bounty::BountyId, @@ -25443,7 +29705,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::close_bounty`]."] + #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"] + #[doc = "the curator deposit will be unreserved if possible."] + #[doc = ""] + #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to cancel."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn close_bounty( &self, bounty_id: types::close_bounty::BountyId, @@ -25461,7 +29731,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::extend_bounty_expiry`]."] + #[doc = "Extend the expiry time of an active bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to extend."] + #[doc = "- `remark`: additional information."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn extend_bounty_expiry( &self, bounty_id: types::extend_bounty_expiry::BountyId, @@ -25761,7 +30039,7 @@ pub mod api { pub mod bounty_descriptions { use super::runtime_types; pub type BountyDescriptions = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -26105,7 +30383,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_child_bounty`]."] + #[doc = "Add a new child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of parent"] + #[doc = "bounty and the parent bounty must be in \"active\" state."] + #[doc = ""] + #[doc = "Child-bounty gets added successfully & fund gets transferred from"] + #[doc = "parent bounty to child-bounty account, if parent bounty has enough"] + #[doc = "funds, else the call fails."] + #[doc = ""] + #[doc = "Upper bound to maximum number of active child bounties that can be"] + #[doc = "added are managed via runtime trait config"] + #[doc = "[`Config::MaxActiveChildBountyCount`]."] + #[doc = ""] + #[doc = "If the call is success, the status of child-bounty is updated to"] + #[doc = "\"Added\"."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."] + #[doc = "- `value`: Value for executing the proposal."] + #[doc = "- `description`: Text description for the child-bounty."] pub struct AddChildBounty { #[codec(compact)] pub parent_bounty_id: add_child_bounty::ParentBountyId, @@ -26138,7 +30434,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose curator for funded child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be curator of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `curator`: Address of child-bounty curator."] + #[doc = "- `fee`: payment fee to child-bounty curator for execution."] pub struct ProposeCurator { #[codec(compact)] pub parent_bounty_id: propose_curator::ParentBountyId, @@ -26176,7 +30486,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for the child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this"] + #[doc = "child-bounty."] + #[doc = ""] + #[doc = "A deposit will be reserved from the curator and refund upon"] + #[doc = "successful payout or cancellation."] + #[doc = ""] + #[doc = "Fee for curator is deducted from curator fee of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"] + #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub struct AcceptCurator { #[codec(compact)] pub parent_bounty_id: accept_curator::ParentBountyId, @@ -26206,7 +30534,40 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"] + #[doc = "the curator of the parent bounty, or any signed origin."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin and the child-bounty"] + #[doc = "curator, parent bounty must be in active state, for this call to"] + #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"] + #[doc = "this call irrespective of the parent bounty state."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin` or the"] + #[doc = "parent bounty curator, we assume that the child-bounty curator is"] + #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"] + #[doc = "slashed."] + #[doc = ""] + #[doc = "If the origin is the child-bounty curator, we take this as a sign"] + #[doc = "that they are unable to do their job, and are willingly giving up."] + #[doc = "We could slash the deposit, but for now we allow them to unreserve"] + #[doc = "their deposit and exit without issue. (We may want to change this if"] + #[doc = "it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"] + #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"] + #[doc = "inactive state of child-bounty curator."] + #[doc = ""] + #[doc = "This allows anyone in the community to call out that a child-bounty"] + #[doc = "curator is not doing their due diligence, and we should pick a new"] + #[doc = "one. In this case the child-bounty curator deposit is slashed."] + #[doc = ""] + #[doc = "State of child-bounty is moved to Added state on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub struct UnassignCurator { #[codec(compact)] pub parent_bounty_id: unassign_curator::ParentBountyId, @@ -26236,7 +30597,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::award_child_bounty`]."] + #[doc = "Award child-bounty to a beneficiary."] + #[doc = ""] + #[doc = "The beneficiary will be able to claim the funds after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the parent curator or"] + #[doc = "curator of this child-bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in active state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `beneficiary`: Beneficiary account."] pub struct AwardChildBounty { #[codec(compact)] pub parent_bounty_id: award_child_bounty::ParentBountyId, @@ -26271,7 +30648,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_child_bounty`]."] + #[doc = "Claim the payout from an awarded child-bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call may be any signed origin."] + #[doc = ""] + #[doc = "Call works independent of parent bounty state, No need for parent"] + #[doc = "bounty to be in active state."] + #[doc = ""] + #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"] + #[doc = "paid & curator deposit is unreserved."] + #[doc = ""] + #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"] + #[doc = "call. And instance of child-bounty is removed from the state on"] + #[doc = "successful call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub struct ClaimChildBounty { #[codec(compact)] pub parent_bounty_id: claim_child_bounty::ParentBountyId, @@ -26301,7 +30693,28 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::close_child_bounty`]."] + #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"] + #[doc = "are transferred to parent bounty account. The child-bounty curator"] + #[doc = "deposit may be unreserved if possible."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be either parent curator or"] + #[doc = "`T::RejectOrigin`."] + #[doc = ""] + #[doc = "If the state of child-bounty is `Active`, curator deposit is"] + #[doc = "unreserved."] + #[doc = ""] + #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"] + #[doc = "returns `PendingPayout` error."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"] + #[doc = "active state, for this child-bounty call to work. For origin"] + #[doc = "T::RejectOrigin execution is forced."] + #[doc = ""] + #[doc = "Instance of child-bounty is removed from the state on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub struct CloseChildBounty { #[codec(compact)] pub parent_bounty_id: close_child_bounty::ParentBountyId, @@ -26320,7 +30733,25 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::add_child_bounty`]."] + #[doc = "Add a new child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of parent"] + #[doc = "bounty and the parent bounty must be in \"active\" state."] + #[doc = ""] + #[doc = "Child-bounty gets added successfully & fund gets transferred from"] + #[doc = "parent bounty to child-bounty account, if parent bounty has enough"] + #[doc = "funds, else the call fails."] + #[doc = ""] + #[doc = "Upper bound to maximum number of active child bounties that can be"] + #[doc = "added are managed via runtime trait config"] + #[doc = "[`Config::MaxActiveChildBountyCount`]."] + #[doc = ""] + #[doc = "If the call is success, the status of child-bounty is updated to"] + #[doc = "\"Added\"."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."] + #[doc = "- `value`: Value for executing the proposal."] + #[doc = "- `description`: Text description for the child-bounty."] pub fn add_child_bounty( &self, parent_bounty_id: types::add_child_bounty::ParentBountyId, @@ -26344,7 +30775,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose curator for funded child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be curator of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `curator`: Address of child-bounty curator."] + #[doc = "- `fee`: payment fee to child-bounty curator for execution."] pub fn propose_curator( &self, parent_bounty_id: types::propose_curator::ParentBountyId, @@ -26369,7 +30814,25 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for the child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this"] + #[doc = "child-bounty."] + #[doc = ""] + #[doc = "A deposit will be reserved from the curator and refund upon"] + #[doc = "successful payout or cancellation."] + #[doc = ""] + #[doc = "Fee for curator is deducted from curator fee of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"] + #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub fn accept_curator( &self, parent_bounty_id: types::accept_curator::ParentBountyId, @@ -26391,7 +30854,40 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"] + #[doc = "the curator of the parent bounty, or any signed origin."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin and the child-bounty"] + #[doc = "curator, parent bounty must be in active state, for this call to"] + #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"] + #[doc = "this call irrespective of the parent bounty state."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin` or the"] + #[doc = "parent bounty curator, we assume that the child-bounty curator is"] + #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"] + #[doc = "slashed."] + #[doc = ""] + #[doc = "If the origin is the child-bounty curator, we take this as a sign"] + #[doc = "that they are unable to do their job, and are willingly giving up."] + #[doc = "We could slash the deposit, but for now we allow them to unreserve"] + #[doc = "their deposit and exit without issue. (We may want to change this if"] + #[doc = "it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"] + #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"] + #[doc = "inactive state of child-bounty curator."] + #[doc = ""] + #[doc = "This allows anyone in the community to call out that a child-bounty"] + #[doc = "curator is not doing their due diligence, and we should pick a new"] + #[doc = "one. In this case the child-bounty curator deposit is slashed."] + #[doc = ""] + #[doc = "State of child-bounty is moved to Added state on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub fn unassign_curator( &self, parent_bounty_id: types::unassign_curator::ParentBountyId, @@ -26413,7 +30909,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::award_child_bounty`]."] + #[doc = "Award child-bounty to a beneficiary."] + #[doc = ""] + #[doc = "The beneficiary will be able to claim the funds after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the parent curator or"] + #[doc = "curator of this child-bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in active state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `beneficiary`: Beneficiary account."] pub fn award_child_bounty( &self, parent_bounty_id: types::award_child_bounty::ParentBountyId, @@ -26436,7 +30948,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_child_bounty`]."] + #[doc = "Claim the payout from an awarded child-bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call may be any signed origin."] + #[doc = ""] + #[doc = "Call works independent of parent bounty state, No need for parent"] + #[doc = "bounty to be in active state."] + #[doc = ""] + #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"] + #[doc = "paid & curator deposit is unreserved."] + #[doc = ""] + #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"] + #[doc = "call. And instance of child-bounty is removed from the state on"] + #[doc = "successful call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub fn claim_child_bounty( &self, parent_bounty_id: types::claim_child_bounty::ParentBountyId, @@ -26457,7 +30984,28 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::close_child_bounty`]."] + #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"] + #[doc = "are transferred to parent bounty account. The child-bounty curator"] + #[doc = "deposit may be unreserved if possible."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be either parent curator or"] + #[doc = "`T::RejectOrigin`."] + #[doc = ""] + #[doc = "If the state of child-bounty is `Active`, curator deposit is"] + #[doc = "unreserved."] + #[doc = ""] + #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"] + #[doc = "returns `PendingPayout` error."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"] + #[doc = "active state, for this child-bounty call to work. For origin"] + #[doc = "T::RejectOrigin execution is forced."] + #[doc = ""] + #[doc = "Instance of child-bounty is removed from the state on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub fn close_child_bounty( &self, parent_bounty_id: types::close_child_bounty::ParentBountyId, @@ -26613,7 +31161,7 @@ pub mod api { pub mod child_bounty_descriptions { use super::runtime_types; pub type ChildBountyDescriptions = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -26946,7 +31494,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_bid`]."] + #[doc = "Place a bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."] + #[doc = ""] + #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"] + #[doc = " consolidated, removed. Must be at least `MinBid`."] + #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"] + #[doc = " thawed. Must be greater than 1 and no more than `QueueCount`."] + #[doc = ""] + #[doc = "Complexities:"] + #[doc = "- `Queues[duration].len()` (just take max)."] pub struct PlaceBid { #[codec(compact)] pub amount: place_bid::Amount, @@ -26975,7 +31533,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::retract_bid`]."] + #[doc = "Retract a previously placed bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"] + #[doc = "of `amount` for `duration`."] + #[doc = ""] + #[doc = "- `amount`: The amount of the previous bid."] + #[doc = "- `duration`: The duration of the previous bid."] pub struct RetractBid { #[codec(compact)] pub amount: retract_bid::Amount, @@ -27004,7 +31568,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::fund_deficit`]."] + #[doc = "Ensure we have sufficient funding for all potential payouts."] + #[doc = ""] + #[doc = "- `origin`: Must be accepted by `FundOrigin`."] pub struct FundDeficit; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for FundDeficit { const PALLET: &'static str = "Nis"; @@ -27024,7 +31590,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::thaw_private`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"] + #[doc = " well as any fungible counterpart."] + #[doc = "- `index`: The index of the receipt."] + #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"] + #[doc = " `None`, then all of it should be."] pub struct ThawPrivate { #[codec(compact)] pub index: thaw_private::Index, @@ -27055,7 +31628,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::thaw_communal`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"] + #[doc = " for receipt `index`."] + #[doc = "- `index`: The index of the receipt."] pub struct ThawCommunal { #[codec(compact)] pub index: thaw_communal::Index, @@ -27082,7 +31660,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::communify`]."] + #[doc = "Make a private receipt communal and create fungible counterparts for its owner."] pub struct Communify { #[codec(compact)] pub index: communify::Index, @@ -27109,7 +31687,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::privatize`]."] + #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."] pub struct Privatize { #[codec(compact)] pub index: privatize::Index, @@ -27125,7 +31703,17 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::place_bid`]."] + #[doc = "Place a bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."] + #[doc = ""] + #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"] + #[doc = " consolidated, removed. Must be at least `MinBid`."] + #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"] + #[doc = " thawed. Must be greater than 1 and no more than `QueueCount`."] + #[doc = ""] + #[doc = "Complexities:"] + #[doc = "- `Queues[duration].len()` (just take max)."] pub fn place_bid( &self, amount: types::place_bid::Amount, @@ -27144,7 +31732,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::retract_bid`]."] + #[doc = "Retract a previously placed bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"] + #[doc = "of `amount` for `duration`."] + #[doc = ""] + #[doc = "- `amount`: The amount of the previous bid."] + #[doc = "- `duration`: The duration of the previous bid."] pub fn retract_bid( &self, amount: types::retract_bid::Amount, @@ -27162,7 +31756,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::fund_deficit`]."] + #[doc = "Ensure we have sufficient funding for all potential payouts."] + #[doc = ""] + #[doc = "- `origin`: Must be accepted by `FundOrigin`."] pub fn fund_deficit( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -27179,7 +31775,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::thaw_private`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"] + #[doc = " well as any fungible counterpart."] + #[doc = "- `index`: The index of the receipt."] + #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"] + #[doc = " `None`, then all of it should be."] pub fn thaw_private( &self, index: types::thaw_private::Index, @@ -27200,7 +31803,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::thaw_communal`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"] + #[doc = " for receipt `index`."] + #[doc = "- `index`: The index of the receipt."] pub fn thaw_communal( &self, index: types::thaw_communal::Index, @@ -27218,7 +31826,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::communify`]."] + #[doc = "Make a private receipt communal and create fungible counterparts for its owner."] pub fn communify( &self, index: types::communify::Index, @@ -27236,7 +31844,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::privatize`]."] + #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."] pub fn privatize( &self, index: types::privatize::Index, @@ -27430,7 +32038,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "A receipt was transfered."] + #[doc = "A receipt was transferred."] pub struct Transferred { pub from: transferred::From, pub to: transferred::To, @@ -27853,7 +32461,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] pub struct TransferAllowDeath { pub dest: transfer_allow_death::Dest, #[codec(compact)] @@ -27885,7 +32499,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] pub struct ForceTransfer { pub source: force_transfer::Source, pub dest: force_transfer::Dest, @@ -27922,7 +32537,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] pub struct TransferKeepAlive { pub dest: transfer_keep_alive::Dest, #[codec(compact)] @@ -27954,7 +32574,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] pub struct TransferAll { pub dest: transfer_all::Dest, pub keep_alive: transfer_all::KeepAlive, @@ -27985,7 +32619,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] pub struct ForceUnreserve { pub who: force_unreserve::Who, pub amount: force_unreserve::Amount, @@ -28016,7 +32652,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] pub struct UpgradeAccounts { pub who: upgrade_accounts::Who, } @@ -28044,7 +32687,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] pub struct ForceSetBalance { pub who: force_set_balance::Who, #[codec(compact)] @@ -28062,10 +32707,49 @@ pub mod api { const PALLET: &'static str = "NisCounterpartBalances"; const CALL: &'static str = "force_set_balance"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + pub struct ForceAdjustTotalIssuance { + pub direction: force_adjust_total_issuance::Direction, + #[codec(compact)] + pub delta: force_adjust_total_issuance::Delta, + } + pub mod force_adjust_total_issuance { + use super::runtime_types; + pub type Direction = runtime_types::pallet_balances::types::AdjustmentDirection; + pub type Delta = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceAdjustTotalIssuance { + const PALLET: &'static str = "NisCounterpartBalances"; + const CALL: &'static str = "force_adjust_total_issuance"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] pub fn transfer_allow_death( &self, dest: types::transfer_allow_death::Dest, @@ -28084,7 +32768,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] pub fn force_transfer( &self, source: types::force_transfer::Source, @@ -28107,7 +32792,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] pub fn transfer_keep_alive( &self, dest: types::transfer_keep_alive::Dest, @@ -28125,7 +32815,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] pub fn transfer_all( &self, dest: types::transfer_all::Dest, @@ -28143,7 +32847,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] pub fn force_unreserve( &self, who: types::force_unreserve::Who, @@ -28162,7 +32868,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] pub fn upgrade_accounts( &self, who: types::upgrade_accounts::Who, @@ -28179,7 +32892,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] pub fn force_set_balance( &self, who: types::force_set_balance::Who, @@ -28197,6 +32912,30 @@ pub mod api { ], ) } + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + pub fn force_adjust_total_issuance( + &self, + direction: types::force_adjust_total_issuance::Direction, + delta: types::force_adjust_total_issuance::Delta, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ForceAdjustTotalIssuance, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "NisCounterpartBalances", + "force_adjust_total_issuance", + types::ForceAdjustTotalIssuance { direction, delta }, + [ + 208u8, 134u8, 56u8, 133u8, 232u8, 164u8, 10u8, 213u8, 53u8, 193u8, + 190u8, 63u8, 236u8, 186u8, 96u8, 122u8, 104u8, 87u8, 173u8, 38u8, 58u8, + 176u8, 21u8, 78u8, 42u8, 106u8, 46u8, 248u8, 251u8, 190u8, 150u8, + 202u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -28710,6 +33449,30 @@ pub mod api { const PALLET: &'static str = "NisCounterpartBalances"; const EVENT: &'static str = "Thawed"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The `TotalIssuance` was forcefully changed."] + pub struct TotalIssuanceForced { + pub old: total_issuance_forced::Old, + pub new: total_issuance_forced::New, + } + pub mod total_issuance_forced { + use super::runtime_types; + pub type Old = ::core::primitive::u128; + pub type New = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for TotalIssuanceForced { + const PALLET: &'static str = "NisCounterpartBalances"; + const EVENT: &'static str = "TotalIssuanceForced"; + } } pub mod storage { use super::runtime_types; @@ -28742,7 +33505,7 @@ pub mod api { pub mod reserves { use super::runtime_types; pub type Reserves = - runtime_types::bounded_collections::bounded_vec::BoundedVec8< + runtime_types::bounded_collections::bounded_vec::BoundedVec9< runtime_types::pallet_balances::types::ReserveData< [::core::primitive::u8; 8usize], ::core::primitive::u128, @@ -28752,7 +33515,7 @@ pub mod api { } pub mod holds { use super::runtime_types; - pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec9< + pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec10< runtime_types::pallet_balances::types::IdAmount< runtime_types::rococo_runtime::RuntimeHoldReason, ::core::primitive::u128, @@ -28763,7 +33526,7 @@ pub mod api { pub mod freezes { use super::runtime_types; pub type Freezes = - runtime_types::bounded_collections::bounded_vec::BoundedVec10< + runtime_types::bounded_collections::bounded_vec::BoundedVec11< runtime_types::pallet_balances::types::IdAmount< (), ::core::primitive::u128, @@ -28912,6 +33675,8 @@ pub mod api { } #[doc = " Any liquidity locks on some account balances."] #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn locks_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -28934,6 +33699,8 @@ pub mod api { } #[doc = " Any liquidity locks on some account balances."] #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn locks( &self, _0: impl ::core::borrow::Borrow, @@ -28960,6 +33727,8 @@ pub mod api { ) } #[doc = " Named reserves on some account balances."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn reserves_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -28981,6 +33750,8 @@ pub mod api { ) } #[doc = " Named reserves on some account balances."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn reserves( &self, _0: impl ::core::borrow::Borrow, @@ -29021,10 +33792,10 @@ pub mod api { "Holds", (), [ - 72u8, 161u8, 107u8, 123u8, 240u8, 3u8, 198u8, 75u8, 46u8, 131u8, 122u8, - 141u8, 253u8, 141u8, 232u8, 192u8, 146u8, 54u8, 174u8, 162u8, 48u8, - 165u8, 226u8, 233u8, 12u8, 227u8, 23u8, 17u8, 237u8, 179u8, 193u8, - 166u8, + 181u8, 39u8, 29u8, 45u8, 45u8, 198u8, 129u8, 210u8, 189u8, 183u8, + 121u8, 125u8, 57u8, 90u8, 95u8, 107u8, 51u8, 13u8, 22u8, 105u8, 191u8, + 61u8, 54u8, 182u8, 50u8, 200u8, 137u8, 247u8, 180u8, 158u8, 16u8, + 193u8, ], ) } @@ -29048,10 +33819,10 @@ pub mod api { _0.borrow(), ), [ - 72u8, 161u8, 107u8, 123u8, 240u8, 3u8, 198u8, 75u8, 46u8, 131u8, 122u8, - 141u8, 253u8, 141u8, 232u8, 192u8, 146u8, 54u8, 174u8, 162u8, 48u8, - 165u8, 226u8, 233u8, 12u8, 227u8, 23u8, 17u8, 237u8, 179u8, 193u8, - 166u8, + 181u8, 39u8, 29u8, 45u8, 45u8, 198u8, 129u8, 210u8, 189u8, 183u8, + 121u8, 125u8, 57u8, 90u8, 95u8, 107u8, 51u8, 13u8, 22u8, 105u8, 191u8, + 61u8, 54u8, 182u8, 50u8, 200u8, 137u8, 247u8, 180u8, 158u8, 16u8, + 193u8, ], ) } @@ -29133,6 +33904,8 @@ pub mod api { } #[doc = " The maximum number of locks that should exist on an account."] #[doc = " Not strictly enforced, but used for weight estimation."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn max_locks( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -29150,6 +33923,8 @@ pub mod api { ) } #[doc = " The maximum number of named reserves that can exist on an account."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn max_reserves( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -29166,23 +33941,6 @@ pub mod api { ], ) } - #[doc = " The maximum number of holds that can exist on an account at any time."] - pub fn max_holds( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "NisCounterpartBalances", - "MaxHolds", - [ - 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, - 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, - 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, - 145u8, - ], - ) - } #[doc = " The maximum number of individual freeze locks that can exist on an account at any time."] pub fn max_freezes( &self, @@ -29234,7 +33992,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_validation_upgrade_cooldown`]."] + #[doc = "Set the validation upgrade cooldown."] pub struct SetValidationUpgradeCooldown { pub new: set_validation_upgrade_cooldown::New, } @@ -29260,7 +34018,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_validation_upgrade_delay`]."] + #[doc = "Set the validation upgrade delay."] pub struct SetValidationUpgradeDelay { pub new: set_validation_upgrade_delay::New, } @@ -29286,7 +34044,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_code_retention_period`]."] + #[doc = "Set the acceptance period for an included candidate."] pub struct SetCodeRetentionPeriod { pub new: set_code_retention_period::New, } @@ -29312,7 +34070,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_code_size`]."] + #[doc = "Set the max validation code size for incoming upgrades."] pub struct SetMaxCodeSize { pub new: set_max_code_size::New, } @@ -29338,7 +34096,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_pov_size`]."] + #[doc = "Set the max POV block size for incoming upgrades."] pub struct SetMaxPovSize { pub new: set_max_pov_size::New, } @@ -29364,7 +34122,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_head_data_size`]."] + #[doc = "Set the max head data size for paras."] pub struct SetMaxHeadDataSize { pub new: set_max_head_data_size::New, } @@ -29390,17 +34148,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_cores`]."] - pub struct SetOnDemandCores { - pub new: set_on_demand_cores::New, + #[doc = "Set the number of coretime execution cores."] + #[doc = ""] + #[doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"] + #[doc = "this, if you really know what you are doing!"] + pub struct SetCoretimeCores { + pub new: set_coretime_cores::New, } - pub mod set_on_demand_cores { + pub mod set_coretime_cores { use super::runtime_types; pub type New = ::core::primitive::u32; } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetOnDemandCores { + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetCoretimeCores { const PALLET: &'static str = "Configuration"; - const CALL: &'static str = "set_on_demand_cores"; + const CALL: &'static str = "set_coretime_cores"; } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -29416,17 +34177,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_retries`]."] - pub struct SetOnDemandRetries { - pub new: set_on_demand_retries::New, + #[doc = "Set the max number of times a claim may timeout on a core before it is abandoned"] + pub struct SetMaxAvailabilityTimeouts { + pub new: set_max_availability_timeouts::New, } - pub mod set_on_demand_retries { + pub mod set_max_availability_timeouts { use super::runtime_types; pub type New = ::core::primitive::u32; } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetOnDemandRetries { + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxAvailabilityTimeouts { const PALLET: &'static str = "Configuration"; - const CALL: &'static str = "set_on_demand_retries"; + const CALL: &'static str = "set_max_availability_timeouts"; } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -29442,7 +34203,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_group_rotation_frequency`]."] + #[doc = "Set the parachain validator-group rotation frequency"] pub struct SetGroupRotationFrequency { pub new: set_group_rotation_frequency::New, } @@ -29468,7 +34229,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_paras_availability_period`]."] + #[doc = "Set the availability period for paras."] pub struct SetParasAvailabilityPeriod { pub new: set_paras_availability_period::New, } @@ -29494,7 +34255,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_scheduling_lookahead`]."] + #[doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."] pub struct SetSchedulingLookahead { pub new: set_scheduling_lookahead::New, } @@ -29520,7 +34281,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_validators_per_core`]."] + #[doc = "Set the maximum number of validators to assign to any core."] pub struct SetMaxValidatorsPerCore { pub new: set_max_validators_per_core::New, } @@ -29546,7 +34307,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_validators`]."] + #[doc = "Set the maximum number of validators to use in parachain consensus."] pub struct SetMaxValidators { pub new: set_max_validators::New, } @@ -29572,7 +34333,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_dispute_period`]."] + #[doc = "Set the dispute period, in number of sessions to keep for disputes."] pub struct SetDisputePeriod { pub new: set_dispute_period::New, } @@ -29598,7 +34359,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]."] + #[doc = "Set the dispute post conclusion acceptance period."] pub struct SetDisputePostConclusionAcceptancePeriod { pub new: set_dispute_post_conclusion_acceptance_period::New, } @@ -29626,7 +34387,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_no_show_slots`]."] + #[doc = "Set the no show slots, in number of number of consensus slots."] + #[doc = "Must be at least 1."] pub struct SetNoShowSlots { pub new: set_no_show_slots::New, } @@ -29652,7 +34414,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_n_delay_tranches`]."] + #[doc = "Set the total number of delay tranches."] pub struct SetNDelayTranches { pub new: set_n_delay_tranches::New, } @@ -29678,7 +34440,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_zeroth_delay_tranche_width`]."] + #[doc = "Set the zeroth delay tranche width."] pub struct SetZerothDelayTrancheWidth { pub new: set_zeroth_delay_tranche_width::New, } @@ -29704,7 +34466,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_needed_approvals`]."] + #[doc = "Set the number of validators needed to approve a block."] pub struct SetNeededApprovals { pub new: set_needed_approvals::New, } @@ -29730,7 +34492,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_relay_vrf_modulo_samples`]."] + #[doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."] pub struct SetRelayVrfModuloSamples { pub new: set_relay_vrf_modulo_samples::New, } @@ -29756,7 +34518,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_upward_queue_count`]."] + #[doc = "Sets the maximum items that can present in a upward dispatch queue at once."] pub struct SetMaxUpwardQueueCount { pub new: set_max_upward_queue_count::New, } @@ -29782,7 +34544,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_upward_queue_size`]."] + #[doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"] + #[doc = "once."] pub struct SetMaxUpwardQueueSize { pub new: set_max_upward_queue_size::New, } @@ -29808,7 +34571,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_downward_message_size`]."] + #[doc = "Set the critical downward message size."] pub struct SetMaxDownwardMessageSize { pub new: set_max_downward_message_size::New, } @@ -29834,7 +34597,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_upward_message_size`]."] + #[doc = "Sets the maximum size of an upward message that can be sent by a candidate."] pub struct SetMaxUpwardMessageSize { pub new: set_max_upward_message_size::New, } @@ -29860,7 +34623,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_upward_message_num_per_candidate`]."] + #[doc = "Sets the maximum number of messages that a candidate can contain."] pub struct SetMaxUpwardMessageNumPerCandidate { pub new: set_max_upward_message_num_per_candidate::New, } @@ -29886,7 +34649,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_open_request_ttl`]."] + #[doc = "Sets the number of sessions after which an HRMP open channel request expires."] pub struct SetHrmpOpenRequestTtl { pub new: set_hrmp_open_request_ttl::New, } @@ -29912,7 +34675,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_sender_deposit`]."] + #[doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."] pub struct SetHrmpSenderDeposit { pub new: set_hrmp_sender_deposit::New, } @@ -29938,7 +34701,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_recipient_deposit`]."] + #[doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"] + #[doc = "channel."] pub struct SetHrmpRecipientDeposit { pub new: set_hrmp_recipient_deposit::New, } @@ -29964,7 +34728,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_channel_max_capacity`]."] + #[doc = "Sets the maximum number of messages allowed in an HRMP channel at once."] pub struct SetHrmpChannelMaxCapacity { pub new: set_hrmp_channel_max_capacity::New, } @@ -29990,7 +34754,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_channel_max_total_size`]."] + #[doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."] pub struct SetHrmpChannelMaxTotalSize { pub new: set_hrmp_channel_max_total_size::New, } @@ -30016,7 +34780,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_max_parachain_inbound_channels`]."] + #[doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."] pub struct SetHrmpMaxParachainInboundChannels { pub new: set_hrmp_max_parachain_inbound_channels::New, } @@ -30042,7 +34806,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_channel_max_message_size`]."] + #[doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."] pub struct SetHrmpChannelMaxMessageSize { pub new: set_hrmp_channel_max_message_size::New, } @@ -30068,7 +34832,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_max_parachain_outbound_channels`]."] + #[doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."] pub struct SetHrmpMaxParachainOutboundChannels { pub new: set_hrmp_max_parachain_outbound_channels::New, } @@ -30094,7 +34858,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_max_message_num_per_candidate`]."] + #[doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."] pub struct SetHrmpMaxMessageNumPerCandidate { pub new: set_hrmp_max_message_num_per_candidate::New, } @@ -30120,7 +34884,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_pvf_voting_ttl`]."] + #[doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."] pub struct SetPvfVotingTtl { pub new: set_pvf_voting_ttl::New, } @@ -30146,7 +34910,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_minimum_validation_upgrade_delay`]."] + #[doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"] + #[doc = "upgrade taking place."] + #[doc = ""] + #[doc = "See the field documentation for information and constraints for the new value."] pub struct SetMinimumValidationUpgradeDelay { pub new: set_minimum_validation_upgrade_delay::New, } @@ -30172,7 +34939,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_bypass_consistency_check`]."] + #[doc = "Setting this to true will disable consistency checks for the configuration setters."] + #[doc = "Use with caution."] pub struct SetBypassConsistencyCheck { pub new: set_bypass_consistency_check::New, } @@ -30198,14 +34966,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_async_backing_params`]."] + #[doc = "Set the asynchronous backing parameters."] pub struct SetAsyncBackingParams { pub new: set_async_backing_params::New, } pub mod set_async_backing_params { use super::runtime_types; pub type New = - runtime_types::polkadot_primitives::v6::async_backing::AsyncBackingParams; + runtime_types::polkadot_primitives::v7::async_backing::AsyncBackingParams; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetAsyncBackingParams { const PALLET: &'static str = "Configuration"; @@ -30225,14 +34993,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_executor_params`]."] + #[doc = "Set PVF executor parameters."] pub struct SetExecutorParams { pub new: set_executor_params::New, } pub mod set_executor_params { use super::runtime_types; pub type New = - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams; + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParams; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetExecutorParams { const PALLET: &'static str = "Configuration"; @@ -30252,7 +35020,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_base_fee`]."] + #[doc = "Set the on demand (parathreads) base fee."] pub struct SetOnDemandBaseFee { pub new: set_on_demand_base_fee::New, } @@ -30278,7 +35046,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_fee_variability`]."] + #[doc = "Set the on demand (parathreads) fee variability."] pub struct SetOnDemandFeeVariability { pub new: set_on_demand_fee_variability::New, } @@ -30304,7 +35072,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_queue_max_size`]."] + #[doc = "Set the on demand (parathreads) queue max size."] pub struct SetOnDemandQueueMaxSize { pub new: set_on_demand_queue_max_size::New, } @@ -30330,7 +35098,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_target_queue_utilization`]."] + #[doc = "Set the on demand (parathreads) fee variability."] pub struct SetOnDemandTargetQueueUtilization { pub new: set_on_demand_target_queue_utilization::New, } @@ -30356,7 +35124,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_ttl`]."] + #[doc = "Set the on demand (parathreads) ttl in the claimqueue."] pub struct SetOnDemandTtl { pub new: set_on_demand_ttl::New, } @@ -30382,7 +35150,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_minimum_backing_votes`]."] + #[doc = "Set the minimum backing votes threshold."] pub struct SetMinimumBackingVotes { pub new: set_minimum_backing_votes::New, } @@ -30394,10 +35162,92 @@ pub mod api { const PALLET: &'static str = "Configuration"; const CALL: &'static str = "set_minimum_backing_votes"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set/Unset a node feature."] + pub struct SetNodeFeature { + pub index: set_node_feature::Index, + pub value: set_node_feature::Value, + } + pub mod set_node_feature { + use super::runtime_types; + pub type Index = ::core::primitive::u8; + pub type Value = ::core::primitive::bool; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNodeFeature { + const PALLET: &'static str = "Configuration"; + const CALL: &'static str = "set_node_feature"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set approval-voting-params."] + pub struct SetApprovalVotingParams { + pub new: set_approval_voting_params::New, + } + pub mod set_approval_voting_params { + use super::runtime_types; + pub type New = runtime_types::polkadot_primitives::v7::ApprovalVotingParams; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetApprovalVotingParams { + const PALLET: &'static str = "Configuration"; + const CALL: &'static str = "set_approval_voting_params"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set scheduler-params."] + pub struct SetSchedulerParams { + pub new: set_scheduler_params::New, + } + pub mod set_scheduler_params { + use super::runtime_types; + pub type New = runtime_types::polkadot_primitives::vstaging::SchedulerParams< + ::core::primitive::u32, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetSchedulerParams { + const PALLET: &'static str = "Configuration"; + const CALL: &'static str = "set_scheduler_params"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::set_validation_upgrade_cooldown`]."] + #[doc = "Set the validation upgrade cooldown."] pub fn set_validation_upgrade_cooldown( &self, new: types::set_validation_upgrade_cooldown::New, @@ -30416,7 +35266,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_validation_upgrade_delay`]."] + #[doc = "Set the validation upgrade delay."] pub fn set_validation_upgrade_delay( &self, new: types::set_validation_upgrade_delay::New, @@ -30434,7 +35284,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_code_retention_period`]."] + #[doc = "Set the acceptance period for an included candidate."] pub fn set_code_retention_period( &self, new: types::set_code_retention_period::New, @@ -30453,7 +35303,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_code_size`]."] + #[doc = "Set the max validation code size for incoming upgrades."] pub fn set_max_code_size( &self, new: types::set_max_code_size::New, @@ -30471,7 +35321,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_pov_size`]."] + #[doc = "Set the max POV block size for incoming upgrades."] pub fn set_max_pov_size( &self, new: types::set_max_pov_size::New, @@ -30488,7 +35338,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_head_data_size`]."] + #[doc = "Set the max head data size for paras."] pub fn set_max_head_data_size( &self, new: types::set_max_head_data_size::New, @@ -30506,43 +35356,45 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_cores`]."] - pub fn set_on_demand_cores( + #[doc = "Set the number of coretime execution cores."] + #[doc = ""] + #[doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"] + #[doc = "this, if you really know what you are doing!"] + pub fn set_coretime_cores( &self, - new: types::set_on_demand_cores::New, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + new: types::set_coretime_cores::New, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload { ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( "Configuration", - "set_on_demand_cores", - types::SetOnDemandCores { new }, + "set_coretime_cores", + types::SetCoretimeCores { new }, [ - 157u8, 26u8, 82u8, 103u8, 83u8, 214u8, 92u8, 176u8, 93u8, 70u8, 32u8, - 217u8, 139u8, 30u8, 145u8, 237u8, 34u8, 121u8, 190u8, 17u8, 128u8, - 243u8, 241u8, 181u8, 85u8, 141u8, 107u8, 70u8, 121u8, 119u8, 20u8, - 104u8, + 179u8, 131u8, 211u8, 152u8, 167u8, 6u8, 108u8, 94u8, 179u8, 97u8, 87u8, + 227u8, 57u8, 120u8, 133u8, 130u8, 59u8, 243u8, 224u8, 2u8, 11u8, 86u8, + 251u8, 77u8, 159u8, 177u8, 145u8, 34u8, 117u8, 93u8, 28u8, 52u8, ], ) } - #[doc = "See [`Pallet::set_on_demand_retries`]."] - pub fn set_on_demand_retries( + #[doc = "Set the max number of times a claim may timeout on a core before it is abandoned"] + pub fn set_max_availability_timeouts( &self, - new: types::set_on_demand_retries::New, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { + new: types::set_max_availability_timeouts::New, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::SetMaxAvailabilityTimeouts, + > { ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( "Configuration", - "set_on_demand_retries", - types::SetOnDemandRetries { new }, + "set_max_availability_timeouts", + types::SetMaxAvailabilityTimeouts { new }, [ - 228u8, 78u8, 216u8, 66u8, 17u8, 51u8, 84u8, 14u8, 80u8, 67u8, 24u8, - 138u8, 177u8, 108u8, 203u8, 87u8, 240u8, 125u8, 111u8, 223u8, 216u8, - 212u8, 69u8, 236u8, 216u8, 178u8, 166u8, 145u8, 115u8, 47u8, 147u8, - 235u8, + 53u8, 141u8, 53u8, 9u8, 149u8, 145u8, 48u8, 165u8, 157u8, 2u8, 45u8, + 23u8, 128u8, 233u8, 27u8, 132u8, 189u8, 212u8, 45u8, 187u8, 2u8, 112u8, + 26u8, 88u8, 233u8, 84u8, 148u8, 73u8, 222u8, 208u8, 195u8, 153u8, ], ) } - #[doc = "See [`Pallet::set_group_rotation_frequency`]."] + #[doc = "Set the parachain validator-group rotation frequency"] pub fn set_group_rotation_frequency( &self, new: types::set_group_rotation_frequency::New, @@ -30560,7 +35412,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_paras_availability_period`]."] + #[doc = "Set the availability period for paras."] pub fn set_paras_availability_period( &self, new: types::set_paras_availability_period::New, @@ -30578,7 +35430,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_scheduling_lookahead`]."] + #[doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."] pub fn set_scheduling_lookahead( &self, new: types::set_scheduling_lookahead::New, @@ -30597,7 +35449,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_validators_per_core`]."] + #[doc = "Set the maximum number of validators to assign to any core."] pub fn set_max_validators_per_core( &self, new: types::set_max_validators_per_core::New, @@ -30616,7 +35468,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_validators`]."] + #[doc = "Set the maximum number of validators to use in parachain consensus."] pub fn set_max_validators( &self, new: types::set_max_validators::New, @@ -30634,7 +35486,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_dispute_period`]."] + #[doc = "Set the dispute period, in number of sessions to keep for disputes."] pub fn set_dispute_period( &self, new: types::set_dispute_period::New, @@ -30652,7 +35504,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]."] + #[doc = "Set the dispute post conclusion acceptance period."] pub fn set_dispute_post_conclusion_acceptance_period( &self, new: types::set_dispute_post_conclusion_acceptance_period::New, @@ -30671,7 +35523,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_no_show_slots`]."] + #[doc = "Set the no show slots, in number of number of consensus slots."] + #[doc = "Must be at least 1."] pub fn set_no_show_slots( &self, new: types::set_no_show_slots::New, @@ -30688,7 +35541,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_n_delay_tranches`]."] + #[doc = "Set the total number of delay tranches."] pub fn set_n_delay_tranches( &self, new: types::set_n_delay_tranches::New, @@ -30706,7 +35559,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_zeroth_delay_tranche_width`]."] + #[doc = "Set the zeroth delay tranche width."] pub fn set_zeroth_delay_tranche_width( &self, new: types::set_zeroth_delay_tranche_width::New, @@ -30724,7 +35577,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_needed_approvals`]."] + #[doc = "Set the number of validators needed to approve a block."] pub fn set_needed_approvals( &self, new: types::set_needed_approvals::New, @@ -30741,7 +35594,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_relay_vrf_modulo_samples`]."] + #[doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."] pub fn set_relay_vrf_modulo_samples( &self, new: types::set_relay_vrf_modulo_samples::New, @@ -30760,7 +35613,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_upward_queue_count`]."] + #[doc = "Sets the maximum items that can present in a upward dispatch queue at once."] pub fn set_max_upward_queue_count( &self, new: types::set_max_upward_queue_count::New, @@ -30779,7 +35632,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_upward_queue_size`]."] + #[doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"] + #[doc = "once."] pub fn set_max_upward_queue_size( &self, new: types::set_max_upward_queue_size::New, @@ -30798,7 +35652,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_downward_message_size`]."] + #[doc = "Set the critical downward message size."] pub fn set_max_downward_message_size( &self, new: types::set_max_downward_message_size::New, @@ -30816,7 +35670,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_upward_message_size`]."] + #[doc = "Sets the maximum size of an upward message that can be sent by a candidate."] pub fn set_max_upward_message_size( &self, new: types::set_max_upward_message_size::New, @@ -30835,7 +35689,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_upward_message_num_per_candidate`]."] + #[doc = "Sets the maximum number of messages that a candidate can contain."] pub fn set_max_upward_message_num_per_candidate( &self, new: types::set_max_upward_message_num_per_candidate::New, @@ -30853,7 +35707,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_open_request_ttl`]."] + #[doc = "Sets the number of sessions after which an HRMP open channel request expires."] pub fn set_hrmp_open_request_ttl( &self, new: types::set_hrmp_open_request_ttl::New, @@ -30871,7 +35725,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_sender_deposit`]."] + #[doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."] pub fn set_hrmp_sender_deposit( &self, new: types::set_hrmp_sender_deposit::New, @@ -30888,7 +35742,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_recipient_deposit`]."] + #[doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"] + #[doc = "channel."] pub fn set_hrmp_recipient_deposit( &self, new: types::set_hrmp_recipient_deposit::New, @@ -30907,7 +35762,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_channel_max_capacity`]."] + #[doc = "Sets the maximum number of messages allowed in an HRMP channel at once."] pub fn set_hrmp_channel_max_capacity( &self, new: types::set_hrmp_channel_max_capacity::New, @@ -30926,7 +35781,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_channel_max_total_size`]."] + #[doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."] pub fn set_hrmp_channel_max_total_size( &self, new: types::set_hrmp_channel_max_total_size::New, @@ -30944,7 +35799,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_max_parachain_inbound_channels`]."] + #[doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."] pub fn set_hrmp_max_parachain_inbound_channels( &self, new: types::set_hrmp_max_parachain_inbound_channels::New, @@ -30962,7 +35817,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_channel_max_message_size`]."] + #[doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."] pub fn set_hrmp_channel_max_message_size( &self, new: types::set_hrmp_channel_max_message_size::New, @@ -30981,7 +35836,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_max_parachain_outbound_channels`]."] + #[doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."] pub fn set_hrmp_max_parachain_outbound_channels( &self, new: types::set_hrmp_max_parachain_outbound_channels::New, @@ -30999,7 +35854,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_max_message_num_per_candidate`]."] + #[doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."] pub fn set_hrmp_max_message_num_per_candidate( &self, new: types::set_hrmp_max_message_num_per_candidate::New, @@ -31017,7 +35872,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_pvf_voting_ttl`]."] + #[doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."] pub fn set_pvf_voting_ttl( &self, new: types::set_pvf_voting_ttl::New, @@ -31035,7 +35890,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_minimum_validation_upgrade_delay`]."] + #[doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"] + #[doc = "upgrade taking place."] + #[doc = ""] + #[doc = "See the field documentation for information and constraints for the new value."] pub fn set_minimum_validation_upgrade_delay( &self, new: types::set_minimum_validation_upgrade_delay::New, @@ -31054,7 +35912,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_bypass_consistency_check`]."] + #[doc = "Setting this to true will disable consistency checks for the configuration setters."] + #[doc = "Use with caution."] pub fn set_bypass_consistency_check( &self, new: types::set_bypass_consistency_check::New, @@ -31073,7 +35932,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_async_backing_params`]."] + #[doc = "Set the asynchronous backing parameters."] pub fn set_async_backing_params( &self, new: types::set_async_backing_params::New, @@ -31092,7 +35951,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_executor_params`]."] + #[doc = "Set PVF executor parameters."] pub fn set_executor_params( &self, new: types::set_executor_params::New, @@ -31103,13 +35962,13 @@ pub mod api { "set_executor_params", types::SetExecutorParams { new }, [ - 219u8, 27u8, 25u8, 162u8, 61u8, 189u8, 61u8, 32u8, 101u8, 139u8, 89u8, - 51u8, 191u8, 223u8, 94u8, 145u8, 109u8, 247u8, 22u8, 64u8, 178u8, 97u8, - 239u8, 0u8, 125u8, 20u8, 62u8, 210u8, 110u8, 79u8, 225u8, 43u8, + 79u8, 167u8, 242u8, 14u8, 22u8, 177u8, 240u8, 134u8, 154u8, 77u8, + 233u8, 188u8, 110u8, 223u8, 25u8, 52u8, 58u8, 241u8, 226u8, 255u8, 2u8, + 26u8, 8u8, 241u8, 125u8, 33u8, 63u8, 204u8, 93u8, 31u8, 229u8, 0u8, ], ) } - #[doc = "See [`Pallet::set_on_demand_base_fee`]."] + #[doc = "Set the on demand (parathreads) base fee."] pub fn set_on_demand_base_fee( &self, new: types::set_on_demand_base_fee::New, @@ -31126,7 +35985,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_fee_variability`]."] + #[doc = "Set the on demand (parathreads) fee variability."] pub fn set_on_demand_fee_variability( &self, new: types::set_on_demand_fee_variability::New, @@ -31145,7 +36004,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_queue_max_size`]."] + #[doc = "Set the on demand (parathreads) queue max size."] pub fn set_on_demand_queue_max_size( &self, new: types::set_on_demand_queue_max_size::New, @@ -31163,7 +36022,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_target_queue_utilization`]."] + #[doc = "Set the on demand (parathreads) fee variability."] pub fn set_on_demand_target_queue_utilization( &self, new: types::set_on_demand_target_queue_utilization::New, @@ -31182,7 +36041,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_ttl`]."] + #[doc = "Set the on demand (parathreads) ttl in the claimqueue."] pub fn set_on_demand_ttl( &self, new: types::set_on_demand_ttl::New, @@ -31200,7 +36059,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_minimum_backing_votes`]."] + #[doc = "Set the minimum backing votes threshold."] pub fn set_minimum_backing_votes( &self, new: types::set_minimum_backing_votes::New, @@ -31218,6 +36077,60 @@ pub mod api { ], ) } + #[doc = "Set/Unset a node feature."] + pub fn set_node_feature( + &self, + index: types::set_node_feature::Index, + value: types::set_node_feature::Value, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Configuration", + "set_node_feature", + types::SetNodeFeature { index, value }, + [ + 255u8, 19u8, 208u8, 76u8, 122u8, 6u8, 42u8, 182u8, 118u8, 151u8, 245u8, + 80u8, 162u8, 243u8, 45u8, 57u8, 122u8, 148u8, 98u8, 170u8, 157u8, 40u8, + 92u8, 234u8, 12u8, 141u8, 54u8, 80u8, 97u8, 249u8, 115u8, 27u8, + ], + ) + } + #[doc = "Set approval-voting-params."] + pub fn set_approval_voting_params( + &self, + new: types::set_approval_voting_params::New, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::SetApprovalVotingParams, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Configuration", + "set_approval_voting_params", + types::SetApprovalVotingParams { new }, + [ + 248u8, 81u8, 74u8, 103u8, 28u8, 108u8, 190u8, 177u8, 201u8, 252u8, + 87u8, 236u8, 20u8, 189u8, 192u8, 173u8, 40u8, 160u8, 170u8, 187u8, + 42u8, 108u8, 184u8, 131u8, 120u8, 237u8, 229u8, 240u8, 128u8, 49u8, + 163u8, 11u8, + ], + ) + } + #[doc = "Set scheduler-params."] + pub fn set_scheduler_params( + &self, + new: types::set_scheduler_params::New, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Configuration", + "set_scheduler_params", + types::SetSchedulerParams { new }, + [ + 191u8, 87u8, 235u8, 71u8, 143u8, 46u8, 2u8, 88u8, 111u8, 15u8, 251u8, + 230u8, 241u8, 172u8, 183u8, 110u8, 33u8, 26u8, 43u8, 119u8, 74u8, 62u8, + 200u8, 226u8, 83u8, 180u8, 123u8, 132u8, 171u8, 65u8, 30u8, 13u8, + ], + ) + } } } pub mod storage { @@ -31254,10 +36167,9 @@ pub mod api { "ActiveConfig", (), [ - 126u8, 223u8, 107u8, 199u8, 21u8, 114u8, 19u8, 172u8, 27u8, 108u8, - 189u8, 165u8, 33u8, 220u8, 57u8, 81u8, 137u8, 242u8, 204u8, 148u8, - 61u8, 161u8, 156u8, 36u8, 20u8, 172u8, 117u8, 30u8, 152u8, 210u8, - 207u8, 161u8, + 9u8, 85u8, 45u8, 253u8, 3u8, 175u8, 115u8, 58u8, 71u8, 169u8, 68u8, + 163u8, 231u8, 24u8, 231u8, 216u8, 61u8, 134u8, 59u8, 89u8, 31u8, 103u8, + 105u8, 8u8, 182u8, 99u8, 51u8, 130u8, 255u8, 2u8, 0u8, 147u8, ], ) } @@ -31282,10 +36194,9 @@ pub mod api { "PendingConfigs", (), [ - 105u8, 89u8, 53u8, 156u8, 60u8, 53u8, 196u8, 187u8, 5u8, 122u8, 186u8, - 196u8, 162u8, 133u8, 254u8, 178u8, 130u8, 143u8, 90u8, 23u8, 234u8, - 105u8, 9u8, 121u8, 142u8, 123u8, 136u8, 166u8, 95u8, 215u8, 176u8, - 46u8, + 7u8, 170u8, 38u8, 177u8, 76u8, 75u8, 198u8, 192u8, 247u8, 137u8, 85u8, + 17u8, 74u8, 93u8, 170u8, 177u8, 198u8, 208u8, 183u8, 28u8, 178u8, 5u8, + 39u8, 246u8, 175u8, 78u8, 145u8, 37u8, 212u8, 20u8, 52u8, 110u8, ], ) } @@ -31341,13 +36252,13 @@ pub mod api { pub mod active_validator_indices { use super::runtime_types; pub type ActiveValidatorIndices = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >; } pub mod active_validator_keys { use super::runtime_types; pub type ActiveValidatorKeys = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, >; } pub mod allowed_relay_parents { @@ -31417,10 +36328,9 @@ pub mod api { "ActiveValidatorKeys", (), [ - 155u8, 151u8, 155u8, 8u8, 23u8, 38u8, 91u8, 12u8, 94u8, 69u8, 228u8, - 185u8, 14u8, 219u8, 215u8, 98u8, 235u8, 222u8, 157u8, 180u8, 230u8, - 121u8, 205u8, 167u8, 156u8, 134u8, 180u8, 213u8, 87u8, 61u8, 174u8, - 222u8, + 228u8, 111u8, 152u8, 198u8, 158u8, 9u8, 193u8, 222u8, 92u8, 190u8, + 91u8, 24u8, 98u8, 156u8, 88u8, 231u8, 255u8, 1u8, 74u8, 56u8, 44u8, + 110u8, 175u8, 29u8, 45u8, 242u8, 129u8, 181u8, 145u8, 5u8, 28u8, 40u8, ], ) } @@ -31489,13 +36399,13 @@ pub mod api { ); pub mod candidate_backed { use super::runtime_types; - pub type Field0 = runtime_types::polkadot_primitives::v6::CandidateReceipt< + pub type Field0 = runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >; pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::HeadData; - pub type Field2 = runtime_types::polkadot_primitives::v6::CoreIndex; - pub type Field3 = runtime_types::polkadot_primitives::v6::GroupIndex; + pub type Field2 = runtime_types::polkadot_primitives::v7::CoreIndex; + pub type Field3 = runtime_types::polkadot_primitives::v7::GroupIndex; } impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateBacked { const PALLET: &'static str = "ParaInclusion"; @@ -31520,13 +36430,13 @@ pub mod api { ); pub mod candidate_included { use super::runtime_types; - pub type Field0 = runtime_types::polkadot_primitives::v6::CandidateReceipt< + pub type Field0 = runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >; pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::HeadData; - pub type Field2 = runtime_types::polkadot_primitives::v6::CoreIndex; - pub type Field3 = runtime_types::polkadot_primitives::v6::GroupIndex; + pub type Field2 = runtime_types::polkadot_primitives::v7::CoreIndex; + pub type Field3 = runtime_types::polkadot_primitives::v7::GroupIndex; } impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateIncluded { const PALLET: &'static str = "ParaInclusion"; @@ -31550,12 +36460,12 @@ pub mod api { ); pub mod candidate_timed_out { use super::runtime_types; - pub type Field0 = runtime_types::polkadot_primitives::v6::CandidateReceipt< + pub type Field0 = runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >; pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::HeadData; - pub type Field2 = runtime_types::polkadot_primitives::v6::CoreIndex; + pub type Field2 = runtime_types::polkadot_primitives::v7::CoreIndex; } impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateTimedOut { const PALLET: &'static str = "ParaInclusion"; @@ -31590,165 +36500,66 @@ pub mod api { use super::runtime_types; pub mod types { use super::runtime_types; - pub mod availability_bitfields { + pub mod v1 { use super::runtime_types; - pub type AvailabilityBitfields = runtime_types :: polkadot_runtime_parachains :: inclusion :: AvailabilityBitfieldRecord < :: core :: primitive :: u32 > ; - pub type Param0 = runtime_types::polkadot_primitives::v6::ValidatorIndex; - } - pub mod pending_availability { - use super::runtime_types; - pub type PendingAvailability = runtime_types :: polkadot_runtime_parachains :: inclusion :: CandidatePendingAvailability < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > ; - pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; - } - pub mod pending_availability_commitments { - use super::runtime_types; - pub type PendingAvailabilityCommitments = - runtime_types::polkadot_primitives::v6::CandidateCommitments< - ::core::primitive::u32, - >; + pub type V1 = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: inclusion :: CandidatePendingAvailability < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > > ; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } } pub struct StorageApi; impl StorageApi { - #[doc = " The latest bitfield for each validator, referred to by their index in the validator set."] - pub fn availability_bitfields_iter( + #[doc = " Candidates pending availability by `ParaId`. They form a chain starting from the latest"] + #[doc = " included head of the para."] + #[doc = " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage"] + #[doc = " would otherwise have the exact same prefix which could cause undefined behaviour when doing"] + #[doc = " the migration."] + pub fn v1_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::availability_bitfields::AvailabilityBitfields, + types::v1::V1, (), (), ::subxt::ext::subxt_core::utils::Yes, > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "ParaInclusion", - "AvailabilityBitfields", + "V1", (), [ - 163u8, 169u8, 217u8, 160u8, 147u8, 165u8, 186u8, 21u8, 171u8, 177u8, - 74u8, 69u8, 55u8, 205u8, 46u8, 13u8, 253u8, 83u8, 55u8, 190u8, 22u8, - 61u8, 32u8, 209u8, 54u8, 120u8, 187u8, 39u8, 114u8, 70u8, 212u8, 170u8, + 168u8, 102u8, 148u8, 186u8, 81u8, 2u8, 106u8, 60u8, 191u8, 34u8, 196u8, + 207u8, 208u8, 186u8, 138u8, 3u8, 31u8, 128u8, 200u8, 132u8, 34u8, + 248u8, 248u8, 14u8, 109u8, 197u8, 44u8, 140u8, 253u8, 33u8, 186u8, + 71u8, ], ) } - #[doc = " The latest bitfield for each validator, referred to by their index in the validator set."] - pub fn availability_bitfields( + #[doc = " Candidates pending availability by `ParaId`. They form a chain starting from the latest"] + #[doc = " included head of the para."] + #[doc = " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage"] + #[doc = " would otherwise have the exact same prefix which could cause undefined behaviour when doing"] + #[doc = " the migration."] + pub fn v1( &self, - _0: impl ::core::borrow::Borrow, + _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::availability_bitfields::Param0, - >, - types::availability_bitfields::AvailabilityBitfields, + ::subxt::ext::subxt_core::storage::address::StaticStorageKey, + types::v1::V1, ::subxt::ext::subxt_core::utils::Yes, (), (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "ParaInclusion", - "AvailabilityBitfields", + "V1", ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( _0.borrow(), ), [ - 163u8, 169u8, 217u8, 160u8, 147u8, 165u8, 186u8, 21u8, 171u8, 177u8, - 74u8, 69u8, 55u8, 205u8, 46u8, 13u8, 253u8, 83u8, 55u8, 190u8, 22u8, - 61u8, 32u8, 209u8, 54u8, 120u8, 187u8, 39u8, 114u8, 70u8, 212u8, 170u8, - ], - ) - } - #[doc = " Candidates pending availability by `ParaId`."] - pub fn pending_availability_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::pending_availability::PendingAvailability, - (), - (), - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ParaInclusion", - "PendingAvailability", - (), - [ - 164u8, 175u8, 34u8, 182u8, 190u8, 147u8, 42u8, 185u8, 162u8, 130u8, - 33u8, 159u8, 234u8, 242u8, 90u8, 119u8, 2u8, 195u8, 48u8, 150u8, 135u8, - 87u8, 8u8, 142u8, 243u8, 142u8, 57u8, 121u8, 225u8, 218u8, 22u8, 132u8, - ], - ) - } - #[doc = " Candidates pending availability by `ParaId`."] - pub fn pending_availability( - &self, - _0: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::pending_availability::Param0, - >, - types::pending_availability::PendingAvailability, - ::subxt::ext::subxt_core::utils::Yes, - (), - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ParaInclusion", - "PendingAvailability", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - [ - 164u8, 175u8, 34u8, 182u8, 190u8, 147u8, 42u8, 185u8, 162u8, 130u8, - 33u8, 159u8, 234u8, 242u8, 90u8, 119u8, 2u8, 195u8, 48u8, 150u8, 135u8, - 87u8, 8u8, 142u8, 243u8, 142u8, 57u8, 121u8, 225u8, 218u8, 22u8, 132u8, - ], - ) - } - #[doc = " The commitments of candidates pending availability, by `ParaId`."] - pub fn pending_availability_commitments_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::pending_availability_commitments::PendingAvailabilityCommitments, - (), - (), - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ParaInclusion", - "PendingAvailabilityCommitments", - (), - [ - 196u8, 210u8, 210u8, 16u8, 246u8, 105u8, 121u8, 178u8, 5u8, 48u8, 40u8, - 183u8, 63u8, 147u8, 48u8, 74u8, 20u8, 83u8, 76u8, 84u8, 41u8, 30u8, - 182u8, 246u8, 164u8, 108u8, 113u8, 16u8, 169u8, 64u8, 97u8, 202u8, - ], - ) - } - #[doc = " The commitments of candidates pending availability, by `ParaId`."] - pub fn pending_availability_commitments( - &self, - _0: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::pending_availability_commitments::Param0, - >, - types::pending_availability_commitments::PendingAvailabilityCommitments, - ::subxt::ext::subxt_core::utils::Yes, - (), - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ParaInclusion", - "PendingAvailabilityCommitments", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - [ - 196u8, 210u8, 210u8, 16u8, 246u8, 105u8, 121u8, 178u8, 5u8, 48u8, 40u8, - 183u8, 63u8, 147u8, 48u8, 74u8, 20u8, 83u8, 76u8, 84u8, 41u8, 30u8, - 182u8, 246u8, 164u8, 108u8, 113u8, 16u8, 169u8, 64u8, 97u8, 202u8, + 168u8, 102u8, 148u8, 186u8, 81u8, 2u8, 106u8, 60u8, 191u8, 34u8, 196u8, + 207u8, 208u8, 186u8, 138u8, 3u8, 31u8, 128u8, 200u8, 132u8, 34u8, + 248u8, 248u8, 14u8, 109u8, 197u8, 44u8, 140u8, 253u8, 33u8, 186u8, + 71u8, ], ) } @@ -31782,13 +36593,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::enter`]."] + #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."] pub struct Enter { pub data: enter::Data, } pub mod enter { use super::runtime_types; - pub type Data = runtime_types::polkadot_primitives::v6::InherentData< + pub type Data = runtime_types::polkadot_primitives::v7::InherentData< runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>, >; } @@ -31799,7 +36610,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::enter`]."] + #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."] pub fn enter( &self, data: types::enter::Data, @@ -31810,9 +36621,9 @@ pub mod api { "enter", types::Enter { data }, [ - 145u8, 120u8, 158u8, 39u8, 139u8, 223u8, 236u8, 209u8, 253u8, 108u8, - 188u8, 21u8, 23u8, 61u8, 25u8, 171u8, 30u8, 203u8, 161u8, 117u8, 90u8, - 55u8, 50u8, 107u8, 26u8, 52u8, 26u8, 158u8, 56u8, 218u8, 186u8, 142u8, + 244u8, 74u8, 26u8, 233u8, 127u8, 208u8, 55u8, 137u8, 180u8, 244u8, + 70u8, 55u8, 177u8, 211u8, 53u8, 224u8, 167u8, 95u8, 71u8, 211u8, 204u8, + 137u8, 42u8, 149u8, 209u8, 214u8, 26u8, 2u8, 67u8, 107u8, 131u8, 72u8, ], ) } @@ -31829,7 +36640,7 @@ pub mod api { pub mod on_chain_votes { use super::runtime_types; pub type OnChainVotes = - runtime_types::polkadot_primitives::v6::ScrapedOnChainVotes< + runtime_types::polkadot_primitives::v7::ScrapedOnChainVotes< ::subxt::ext::subxt_core::utils::H256, >; } @@ -31877,10 +36688,9 @@ pub mod api { "OnChainVotes", (), [ - 200u8, 210u8, 42u8, 153u8, 85u8, 71u8, 171u8, 108u8, 148u8, 212u8, - 108u8, 61u8, 178u8, 77u8, 129u8, 90u8, 120u8, 218u8, 228u8, 152u8, - 120u8, 226u8, 29u8, 82u8, 239u8, 146u8, 41u8, 164u8, 193u8, 207u8, - 246u8, 115u8, + 97u8, 41u8, 197u8, 241u8, 12u8, 210u8, 132u8, 148u8, 4u8, 230u8, 206u8, + 170u8, 41u8, 135u8, 147u8, 63u8, 47u8, 192u8, 0u8, 133u8, 104u8, 186u8, + 137u8, 94u8, 227u8, 108u8, 253u8, 86u8, 207u8, 233u8, 65u8, 27u8, ], ) } @@ -31898,7 +36708,7 @@ pub mod api { use super::runtime_types; pub type ValidatorGroups = ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >, >; } @@ -31916,7 +36726,7 @@ pub mod api { } pub mod claim_queue { use super::runtime_types; - pub type ClaimQueue = :: subxt :: ext :: subxt_core :: utils :: KeyedVec < runtime_types :: polkadot_primitives :: v6 :: CoreIndex , :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: scheduler :: pallet :: ParasEntry < :: core :: primitive :: u32 > > > > ; + pub type ClaimQueue = :: subxt :: ext :: subxt_core :: utils :: KeyedVec < runtime_types :: polkadot_primitives :: v7 :: CoreIndex , :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: scheduler :: pallet :: ParasEntry < :: core :: primitive :: u32 > > > ; } } pub struct StorageApi; @@ -31948,10 +36758,8 @@ pub mod api { ], ) } - #[doc = " One entry for each availability core. Entries are `None` if the core is not currently"] - #[doc = " occupied. Can be temporarily `Some` if scheduled but not occupied."] - #[doc = " The i'th parachain belongs to the i'th core, with the remaining cores all being"] - #[doc = " parathread-multiplexers."] + #[doc = " One entry for each availability core. The i'th parachain belongs to the i'th core, with the"] + #[doc = " remaining cores all being on demand parachain multiplexers."] #[doc = ""] #[doc = " Bounded by the maximum of either of these two values:"] #[doc = " * The number of parachains and parathread multiplexers"] @@ -31970,9 +36778,10 @@ pub mod api { "AvailabilityCores", (), [ - 134u8, 59u8, 206u8, 4u8, 69u8, 72u8, 73u8, 25u8, 139u8, 152u8, 202u8, - 43u8, 224u8, 77u8, 64u8, 57u8, 218u8, 245u8, 254u8, 222u8, 227u8, 95u8, - 119u8, 134u8, 218u8, 47u8, 154u8, 233u8, 229u8, 172u8, 100u8, 86u8, + 250u8, 177u8, 44u8, 237u8, 5u8, 116u8, 135u8, 99u8, 136u8, 209u8, + 181u8, 145u8, 254u8, 57u8, 42u8, 92u8, 236u8, 67u8, 128u8, 171u8, + 200u8, 88u8, 40u8, 31u8, 163u8, 128u8, 15u8, 96u8, 181u8, 224u8, 162u8, + 188u8, ], ) } @@ -32004,10 +36813,8 @@ pub mod api { ) } #[doc = " One entry for each availability core. The `VecDeque` represents the assignments to be"] - #[doc = " scheduled on that core. `None` is used to signal to not schedule the next para of the core"] - #[doc = " as there is one currently being scheduled. Not using `None` here would overwrite the"] - #[doc = " `CoreState` in the runtime API. The value contained here will not be valid after the end of"] - #[doc = " a block. Runtime APIs should be used to determine scheduled cores/ for the upcoming block."] + #[doc = " scheduled on that core. The value contained here will not be valid after the end of"] + #[doc = " a block. Runtime APIs should be used to determine scheduled cores for the upcoming block."] pub fn claim_queue( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -32022,9 +36829,10 @@ pub mod api { "ClaimQueue", (), [ - 132u8, 78u8, 109u8, 225u8, 170u8, 78u8, 17u8, 53u8, 56u8, 218u8, 14u8, - 17u8, 230u8, 247u8, 11u8, 223u8, 18u8, 98u8, 92u8, 164u8, 223u8, 143u8, - 241u8, 64u8, 185u8, 108u8, 228u8, 137u8, 122u8, 100u8, 29u8, 239u8, + 192u8, 65u8, 227u8, 114u8, 125u8, 169u8, 134u8, 70u8, 201u8, 99u8, + 246u8, 23u8, 0u8, 143u8, 163u8, 87u8, 216u8, 1u8, 184u8, 124u8, 23u8, + 180u8, 132u8, 143u8, 202u8, 81u8, 144u8, 242u8, 15u8, 141u8, 124u8, + 126u8, ], ) } @@ -32058,7 +36866,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_current_code`]."] + #[doc = "Set the storage for the parachain validation code immediately."] pub struct ForceSetCurrentCode { pub para: force_set_current_code::Para, pub new_code: force_set_current_code::NewCode, @@ -32087,7 +36895,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_current_head`]."] + #[doc = "Set the storage for the current parachain head data immediately."] pub struct ForceSetCurrentHead { pub para: force_set_current_head::Para, pub new_head: force_set_current_head::NewHead, @@ -32116,7 +36924,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_schedule_code_upgrade`]."] + #[doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."] pub struct ForceScheduleCodeUpgrade { pub para: force_schedule_code_upgrade::Para, pub new_code: force_schedule_code_upgrade::NewCode, @@ -32147,7 +36955,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_note_new_head`]."] + #[doc = "Note a new block head for para within the context of the current block."] pub struct ForceNoteNewHead { pub para: force_note_new_head::Para, pub new_head: force_note_new_head::NewHead, @@ -32176,7 +36984,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_queue_action`]."] + #[doc = "Put a parachain directly into the next session's action queue."] + #[doc = "We can't queue it any sooner than this without going into the"] + #[doc = "initializer..."] pub struct ForceQueueAction { pub para: force_queue_action::Para, } @@ -32202,7 +37012,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_trusted_validation_code`]."] + #[doc = "Adds the validation code to the storage."] + #[doc = ""] + #[doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"] + #[doc = "is running for that code, it will be instantly accepted."] + #[doc = ""] + #[doc = "Otherwise, the code will be added into the storage. Note that the code will be added"] + #[doc = "into storage with reference count 0. This is to account the fact that there are no users"] + #[doc = "for this code yet. The caller will have to make sure that this code eventually gets"] + #[doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"] + #[doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"] + #[doc = "manipulation."] + #[doc = ""] + #[doc = "This function is mainly meant to be used for upgrading parachains that do not follow"] + #[doc = "the go-ahead signal while the PVF pre-checking feature is enabled."] pub struct AddTrustedValidationCode { pub validation_code: add_trusted_validation_code::ValidationCode, } @@ -32229,7 +37052,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::poke_unused_validation_code`]."] + #[doc = "Remove the validation code from the storage iff the reference count is 0."] + #[doc = ""] + #[doc = "This is better than removing the storage directly, because it will not remove the code"] + #[doc = "that was suddenly got used by some parachain while this dispatchable was pending"] + #[doc = "dispatching."] pub struct PokeUnusedValidationCode { pub validation_code_hash: poke_unused_validation_code::ValidationCodeHash, } @@ -32255,16 +37082,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::include_pvf_check_statement`]."] + #[doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"] + #[doc = "enacts the results if that was the last vote before achieving the supermajority."] pub struct IncludePvfCheckStatement { pub stmt: include_pvf_check_statement::Stmt, pub signature: include_pvf_check_statement::Signature, } pub mod include_pvf_check_statement { use super::runtime_types; - pub type Stmt = runtime_types::polkadot_primitives::v6::PvfCheckStatement; + pub type Stmt = runtime_types::polkadot_primitives::v7::PvfCheckStatement; pub type Signature = - runtime_types::polkadot_primitives::v6::validator_app::Signature; + runtime_types::polkadot_primitives::v7::validator_app::Signature; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for IncludePvfCheckStatement { const PALLET: &'static str = "Paras"; @@ -32284,7 +37112,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_most_recent_context`]."] + #[doc = "Set the storage for the current parachain head data immediately."] pub struct ForceSetMostRecentContext { pub para: force_set_most_recent_context::Para, pub context: force_set_most_recent_context::Context, @@ -32301,7 +37129,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_set_current_code`]."] + #[doc = "Set the storage for the parachain validation code immediately."] pub fn force_set_current_code( &self, para: types::force_set_current_code::Para, @@ -32320,7 +37148,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_set_current_head`]."] + #[doc = "Set the storage for the current parachain head data immediately."] pub fn force_set_current_head( &self, para: types::force_set_current_head::Para, @@ -32339,7 +37167,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_schedule_code_upgrade`]."] + #[doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."] pub fn force_schedule_code_upgrade( &self, para: types::force_schedule_code_upgrade::Para, @@ -32364,7 +37192,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_note_new_head`]."] + #[doc = "Note a new block head for para within the context of the current block."] pub fn force_note_new_head( &self, para: types::force_note_new_head::Para, @@ -32382,7 +37210,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_queue_action`]."] + #[doc = "Put a parachain directly into the next session's action queue."] + #[doc = "We can't queue it any sooner than this without going into the"] + #[doc = "initializer..."] pub fn force_queue_action( &self, para: types::force_queue_action::Para, @@ -32400,7 +37230,20 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::add_trusted_validation_code`]."] + #[doc = "Adds the validation code to the storage."] + #[doc = ""] + #[doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"] + #[doc = "is running for that code, it will be instantly accepted."] + #[doc = ""] + #[doc = "Otherwise, the code will be added into the storage. Note that the code will be added"] + #[doc = "into storage with reference count 0. This is to account the fact that there are no users"] + #[doc = "for this code yet. The caller will have to make sure that this code eventually gets"] + #[doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"] + #[doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"] + #[doc = "manipulation."] + #[doc = ""] + #[doc = "This function is mainly meant to be used for upgrading parachains that do not follow"] + #[doc = "the go-ahead signal while the PVF pre-checking feature is enabled."] pub fn add_trusted_validation_code( &self, validation_code: types::add_trusted_validation_code::ValidationCode, @@ -32419,7 +37262,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::poke_unused_validation_code`]."] + #[doc = "Remove the validation code from the storage iff the reference count is 0."] + #[doc = ""] + #[doc = "This is better than removing the storage directly, because it will not remove the code"] + #[doc = "that was suddenly got used by some parachain while this dispatchable was pending"] + #[doc = "dispatching."] pub fn poke_unused_validation_code( &self, validation_code_hash: types::poke_unused_validation_code::ValidationCodeHash, @@ -32439,7 +37286,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::include_pvf_check_statement`]."] + #[doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"] + #[doc = "enacts the results if that was the last vote before achieving the supermajority."] pub fn include_pvf_check_statement( &self, stmt: types::include_pvf_check_statement::Stmt, @@ -32452,14 +37300,13 @@ pub mod api { "include_pvf_check_statement", types::IncludePvfCheckStatement { stmt, signature }, [ - 104u8, 113u8, 121u8, 186u8, 41u8, 70u8, 254u8, 44u8, 207u8, 94u8, 61u8, - 148u8, 106u8, 240u8, 165u8, 223u8, 231u8, 190u8, 157u8, 97u8, 55u8, - 90u8, 229u8, 112u8, 129u8, 224u8, 29u8, 180u8, 242u8, 203u8, 195u8, - 19u8, + 207u8, 92u8, 120u8, 222u8, 183u8, 105u8, 82u8, 155u8, 62u8, 41u8, 87u8, + 66u8, 240u8, 71u8, 160u8, 114u8, 99u8, 195u8, 247u8, 190u8, 40u8, + 132u8, 71u8, 161u8, 109u8, 207u8, 9u8, 163u8, 125u8, 98u8, 71u8, 107u8, ], ) } - #[doc = "See [`Pallet::force_set_most_recent_context`]."] + #[doc = "Set the storage for the current parachain head data immediately."] pub fn force_set_most_recent_context( &self, para: types::force_set_most_recent_context::Para, @@ -32734,6 +37581,13 @@ pub mod api { pub type FutureCodeUpgrades = ::core::primitive::u32; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } + pub mod future_code_upgrades_at { + use super::runtime_types; + pub type FutureCodeUpgradesAt = ::subxt::ext::subxt_core::alloc::vec::Vec<( + runtime_types::polkadot_parachain_primitives::primitives::Id, + ::core::primitive::u32, + )>; + } pub mod future_code_hash { use super::runtime_types; pub type FutureCodeHash = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ; @@ -32742,13 +37596,13 @@ pub mod api { pub mod upgrade_go_ahead_signal { use super::runtime_types; pub type UpgradeGoAheadSignal = - runtime_types::polkadot_primitives::v6::UpgradeGoAhead; + runtime_types::polkadot_primitives::v7::UpgradeGoAhead; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } pub mod upgrade_restriction_signal { use super::runtime_types; pub type UpgradeRestrictionSignal = - runtime_types::polkadot_primitives::v6::UpgradeRestriction; + runtime_types::polkadot_primitives::v7::UpgradeRestriction; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } pub mod upgrade_cooldowns { @@ -32810,9 +37664,9 @@ pub mod api { "PvfActiveVoteMap", (), [ - 72u8, 55u8, 139u8, 104u8, 161u8, 63u8, 114u8, 153u8, 16u8, 221u8, 60u8, - 88u8, 52u8, 207u8, 123u8, 193u8, 11u8, 30u8, 19u8, 39u8, 231u8, 39u8, - 251u8, 44u8, 248u8, 129u8, 181u8, 173u8, 248u8, 89u8, 43u8, 106u8, + 180u8, 73u8, 103u8, 207u8, 245u8, 111u8, 142u8, 8u8, 159u8, 143u8, + 245u8, 212u8, 149u8, 78u8, 213u8, 224u8, 206u8, 8u8, 95u8, 40u8, 24u8, + 72u8, 123u8, 41u8, 198u8, 190u8, 9u8, 33u8, 247u8, 205u8, 60u8, 199u8, ], ) } @@ -32839,9 +37693,9 @@ pub mod api { _0.borrow(), ), [ - 72u8, 55u8, 139u8, 104u8, 161u8, 63u8, 114u8, 153u8, 16u8, 221u8, 60u8, - 88u8, 52u8, 207u8, 123u8, 193u8, 11u8, 30u8, 19u8, 39u8, 231u8, 39u8, - 251u8, 44u8, 248u8, 129u8, 181u8, 173u8, 248u8, 89u8, 43u8, 106u8, + 180u8, 73u8, 103u8, 207u8, 245u8, 111u8, 142u8, 8u8, 159u8, 143u8, + 245u8, 212u8, 149u8, 78u8, 213u8, 224u8, 206u8, 8u8, 95u8, 40u8, 24u8, + 72u8, 123u8, 41u8, 198u8, 190u8, 9u8, 33u8, 247u8, 205u8, 60u8, 199u8, ], ) } @@ -33257,7 +38111,8 @@ pub mod api { ], ) } - #[doc = " The block number at which the planned code change is expected for a para."] + #[doc = " The block number at which the planned code change is expected for a parachain."] + #[doc = ""] #[doc = " The change will be applied after the first parablock for this ID included which executes"] #[doc = " in the context of a relay chain block with a number >= `expected_at`."] pub fn future_code_upgrades_iter( @@ -33280,7 +38135,8 @@ pub mod api { ], ) } - #[doc = " The block number at which the planned code change is expected for a para."] + #[doc = " The block number at which the planned code change is expected for a parachain."] + #[doc = ""] #[doc = " The change will be applied after the first parablock for this ID included which executes"] #[doc = " in the context of a relay chain block with a number >= `expected_at`."] pub fn future_code_upgrades( @@ -33308,6 +38164,35 @@ pub mod api { ], ) } + #[doc = " The list of upcoming future code upgrades."] + #[doc = ""] + #[doc = " Each item is a pair of the parachain and the expected block at which the upgrade should be"] + #[doc = " applied. The upgrade will be applied at the given relay chain block. In contrast to"] + #[doc = " [`FutureCodeUpgrades`] this code upgrade will be applied regardless the parachain making any"] + #[doc = " progress or not."] + #[doc = ""] + #[doc = " Ordered ascending by block number."] + pub fn future_code_upgrades_at( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::future_code_upgrades_at::FutureCodeUpgradesAt, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Paras", + "FutureCodeUpgradesAt", + (), + [ + 106u8, 115u8, 201u8, 132u8, 198u8, 78u8, 236u8, 157u8, 246u8, 176u8, + 236u8, 158u8, 90u8, 166u8, 25u8, 230u8, 30u8, 149u8, 163u8, 15u8, + 108u8, 145u8, 167u8, 118u8, 74u8, 211u8, 96u8, 173u8, 56u8, 11u8, + 181u8, 146u8, + ], + ) + } #[doc = " The actual future code hash of a para."] #[doc = ""] #[doc = " Corresponding code can be retrieved with [`CodeByHash`]."] @@ -33515,8 +38400,10 @@ pub mod api { ], ) } - #[doc = " The list of upcoming code upgrades. Each item is a pair of which para performs a code"] - #[doc = " upgrade and at which relay-chain block it is expected at."] + #[doc = " The list of upcoming code upgrades."] + #[doc = ""] + #[doc = " Each item is a pair of which para performs a code upgrade and at which relay-chain block it"] + #[doc = " is expected at."] #[doc = ""] #[doc = " Ordered ascending by block number."] pub fn upcoming_upgrades( @@ -33793,7 +38680,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_approve`]."] + #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"] + #[doc = "blocks in all relay chain blocks up to and including the given number in the current"] + #[doc = "chain are valid and should be finalized."] pub struct ForceApprove { pub up_to: force_approve::UpTo, } @@ -33808,7 +38697,9 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_approve`]."] + #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"] + #[doc = "blocks in all relay chain blocks up to and including the given number in the current"] + #[doc = "chain are valid and should be finalized."] pub fn force_approve( &self, up_to: types::force_approve::UpTo, @@ -33892,9 +38783,10 @@ pub mod api { "BufferedSessionChanges", (), [ - 99u8, 153u8, 100u8, 11u8, 28u8, 62u8, 163u8, 239u8, 177u8, 55u8, 151u8, - 242u8, 227u8, 59u8, 176u8, 10u8, 227u8, 51u8, 252u8, 191u8, 233u8, - 36u8, 1u8, 131u8, 255u8, 56u8, 6u8, 65u8, 5u8, 185u8, 114u8, 139u8, + 52u8, 253u8, 99u8, 88u8, 47u8, 128u8, 246u8, 183u8, 252u8, 144u8, + 187u8, 140u8, 169u8, 21u8, 167u8, 72u8, 246u8, 217u8, 140u8, 234u8, + 222u8, 57u8, 254u8, 33u8, 237u8, 212u8, 136u8, 204u8, 79u8, 185u8, + 83u8, 36u8, ], ) } @@ -34116,7 +39008,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::hrmp_init_open_channel`]."] + #[doc = "Initiate opening a channel from a parachain to a given recipient with given channel"] + #[doc = "parameters."] + #[doc = ""] + #[doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."] + #[doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."] + #[doc = ""] + #[doc = "These numbers are a subject to the relay-chain configuration limits."] + #[doc = ""] + #[doc = "The channel can be opened only after the recipient confirms it and only on a session"] + #[doc = "change."] pub struct HrmpInitOpenChannel { pub recipient: hrmp_init_open_channel::Recipient, pub proposed_max_capacity: hrmp_init_open_channel::ProposedMaxCapacity, @@ -34147,7 +39048,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::hrmp_accept_open_channel`]."] + #[doc = "Accept a pending open channel request from the given sender."] + #[doc = ""] + #[doc = "The channel will be opened only on the next session boundary."] pub struct HrmpAcceptOpenChannel { pub sender: hrmp_accept_open_channel::Sender, } @@ -34173,7 +39076,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::hrmp_close_channel`]."] + #[doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"] + #[doc = "recipient in the channel being closed."] + #[doc = ""] + #[doc = "The closure can only happen on a session change."] pub struct HrmpCloseChannel { pub channel_id: hrmp_close_channel::ChannelId, } @@ -34200,7 +39106,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_clean_hrmp`]."] + #[doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."] + #[doc = "Normally this happens once per session, but this allows you to trigger the cleanup"] + #[doc = "immediately for a specific parachain."] + #[doc = ""] + #[doc = "Number of inbound and outbound channels for `para` must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub struct ForceCleanHrmp { pub para: force_clean_hrmp::Para, pub num_inbound: force_clean_hrmp::NumInbound, @@ -34230,7 +39142,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_process_hrmp_open`]."] + #[doc = "Force process HRMP open channel requests."] + #[doc = ""] + #[doc = "If there are pending HRMP open channel requests, you can use this function to process"] + #[doc = "all of those requests immediately."] + #[doc = ""] + #[doc = "Total number of opening channels must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub struct ForceProcessHrmpOpen { pub channels: force_process_hrmp_open::Channels, } @@ -34256,7 +39175,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_process_hrmp_close`]."] + #[doc = "Force process HRMP close channel requests."] + #[doc = ""] + #[doc = "If there are pending HRMP close channel requests, you can use this function to process"] + #[doc = "all of those requests immediately."] + #[doc = ""] + #[doc = "Total number of closing channels must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub struct ForceProcessHrmpClose { pub channels: force_process_hrmp_close::Channels, } @@ -34282,7 +39208,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::hrmp_cancel_open_request`]."] + #[doc = "This cancels a pending open channel request. It can be canceled by either of the sender"] + #[doc = "or the recipient for that request. The origin must be either of those."] + #[doc = ""] + #[doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"] + #[doc = "already accepted."] + #[doc = ""] + #[doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"] + #[doc = "witness data."] pub struct HrmpCancelOpenRequest { pub channel_id: hrmp_cancel_open_request::ChannelId, pub open_requests: hrmp_cancel_open_request::OpenRequests, @@ -34311,7 +39244,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_open_hrmp_channel`]."] + #[doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"] + #[doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"] + #[doc = "configured limits."] + #[doc = ""] + #[doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"] + #[doc = "governed by the system, e.g. a system parachain."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub struct ForceOpenHrmpChannel { pub sender: force_open_hrmp_channel::Sender, pub recipient: force_open_hrmp_channel::Recipient, @@ -34344,7 +39284,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::establish_system_channel`]."] + #[doc = "Establish an HRMP channel between two system chains. If the channel does not already"] + #[doc = "exist, the transaction fees will be refunded to the caller. The system does not take"] + #[doc = "deposits for channels between system chains, and automatically sets the message number"] + #[doc = "and size limits to the maximum allowed by the network's configuration."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `sender`: A system chain, `ParaId`."] + #[doc = "- `recipient`: A system chain, `ParaId`."] + #[doc = ""] + #[doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"] + #[doc = "the channel does not exist yet, there is no fee."] pub struct EstablishSystemChannel { pub sender: establish_system_channel::Sender, pub recipient: establish_system_channel::Recipient, @@ -34373,7 +39324,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::poke_channel_deposits`]."] + #[doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"] + #[doc = "with system chains do not require a deposit."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `sender`: A chain, `ParaId`."] + #[doc = "- `recipient`: A chain, `ParaId`."] + #[doc = ""] + #[doc = "Any signed origin can call this function."] pub struct PokeChannelDeposits { pub sender: poke_channel_deposits::Sender, pub recipient: poke_channel_deposits::Recipient, @@ -34388,10 +39347,52 @@ pub mod api { const PALLET: &'static str = "Hrmp"; const CALL: &'static str = "poke_channel_deposits"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `target_system_chain`: A system chain, `ParaId`."] + #[doc = ""] + #[doc = "The origin needs to be the parachain origin."] + pub struct EstablishChannelWithSystem { + pub target_system_chain: establish_channel_with_system::TargetSystemChain, + } + pub mod establish_channel_with_system { + use super::runtime_types; + pub type TargetSystemChain = + runtime_types::polkadot_parachain_primitives::primitives::Id; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for EstablishChannelWithSystem { + const PALLET: &'static str = "Hrmp"; + const CALL: &'static str = "establish_channel_with_system"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::hrmp_init_open_channel`]."] + #[doc = "Initiate opening a channel from a parachain to a given recipient with given channel"] + #[doc = "parameters."] + #[doc = ""] + #[doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."] + #[doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."] + #[doc = ""] + #[doc = "These numbers are a subject to the relay-chain configuration limits."] + #[doc = ""] + #[doc = "The channel can be opened only after the recipient confirms it and only on a session"] + #[doc = "change."] pub fn hrmp_init_open_channel( &self, recipient: types::hrmp_init_open_channel::Recipient, @@ -34415,7 +39416,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::hrmp_accept_open_channel`]."] + #[doc = "Accept a pending open channel request from the given sender."] + #[doc = ""] + #[doc = "The channel will be opened only on the next session boundary."] pub fn hrmp_accept_open_channel( &self, sender: types::hrmp_accept_open_channel::Sender, @@ -34433,7 +39436,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::hrmp_close_channel`]."] + #[doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"] + #[doc = "recipient in the channel being closed."] + #[doc = ""] + #[doc = "The closure can only happen on a session change."] pub fn hrmp_close_channel( &self, channel_id: types::hrmp_close_channel::ChannelId, @@ -34451,7 +39457,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_clean_hrmp`]."] + #[doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."] + #[doc = "Normally this happens once per session, but this allows you to trigger the cleanup"] + #[doc = "immediately for a specific parachain."] + #[doc = ""] + #[doc = "Number of inbound and outbound channels for `para` must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub fn force_clean_hrmp( &self, para: types::force_clean_hrmp::Para, @@ -34474,7 +39486,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_process_hrmp_open`]."] + #[doc = "Force process HRMP open channel requests."] + #[doc = ""] + #[doc = "If there are pending HRMP open channel requests, you can use this function to process"] + #[doc = "all of those requests immediately."] + #[doc = ""] + #[doc = "Total number of opening channels must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub fn force_process_hrmp_open( &self, channels: types::force_process_hrmp_open::Channels, @@ -34492,7 +39511,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_process_hrmp_close`]."] + #[doc = "Force process HRMP close channel requests."] + #[doc = ""] + #[doc = "If there are pending HRMP close channel requests, you can use this function to process"] + #[doc = "all of those requests immediately."] + #[doc = ""] + #[doc = "Total number of closing channels must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub fn force_process_hrmp_close( &self, channels: types::force_process_hrmp_close::Channels, @@ -34511,7 +39537,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::hrmp_cancel_open_request`]."] + #[doc = "This cancels a pending open channel request. It can be canceled by either of the sender"] + #[doc = "or the recipient for that request. The origin must be either of those."] + #[doc = ""] + #[doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"] + #[doc = "already accepted."] + #[doc = ""] + #[doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"] + #[doc = "witness data."] pub fn hrmp_cancel_open_request( &self, channel_id: types::hrmp_cancel_open_request::ChannelId, @@ -34533,7 +39566,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_open_hrmp_channel`]."] + #[doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"] + #[doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"] + #[doc = "configured limits."] + #[doc = ""] + #[doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"] + #[doc = "governed by the system, e.g. a system parachain."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub fn force_open_hrmp_channel( &self, sender: types::force_open_hrmp_channel::Sender, @@ -34558,7 +39598,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::establish_system_channel`]."] + #[doc = "Establish an HRMP channel between two system chains. If the channel does not already"] + #[doc = "exist, the transaction fees will be refunded to the caller. The system does not take"] + #[doc = "deposits for channels between system chains, and automatically sets the message number"] + #[doc = "and size limits to the maximum allowed by the network's configuration."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `sender`: A system chain, `ParaId`."] + #[doc = "- `recipient`: A system chain, `ParaId`."] + #[doc = ""] + #[doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"] + #[doc = "the channel does not exist yet, there is no fee."] pub fn establish_system_channel( &self, sender: types::establish_system_channel::Sender, @@ -34577,7 +39628,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::poke_channel_deposits`]."] + #[doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"] + #[doc = "with system chains do not require a deposit."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `sender`: A chain, `ParaId`."] + #[doc = "- `recipient`: A chain, `ParaId`."] + #[doc = ""] + #[doc = "Any signed origin can call this function."] pub fn poke_channel_deposits( &self, sender: types::poke_channel_deposits::Sender, @@ -34595,6 +39654,32 @@ pub mod api { ], ) } + #[doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `target_system_chain`: A system chain, `ParaId`."] + #[doc = ""] + #[doc = "The origin needs to be the parachain origin."] + pub fn establish_channel_with_system( + &self, + target_system_chain: types::establish_channel_with_system::TargetSystemChain, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::EstablishChannelWithSystem, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Hrmp", + "establish_channel_with_system", + types::EstablishChannelWithSystem { + target_system_chain, + }, + [ + 97u8, 88u8, 72u8, 195u8, 37u8, 11u8, 77u8, 206u8, 254u8, 81u8, 104u8, + 73u8, 220u8, 240u8, 187u8, 154u8, 131u8, 146u8, 128u8, 116u8, 223u8, + 35u8, 105u8, 236u8, 208u8, 99u8, 233u8, 74u8, 115u8, 166u8, 5u8, 205u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -34741,7 +39826,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "An HRMP channel was opened between two system chains."] + #[doc = "An HRMP channel was opened with a system chain."] pub struct HrmpSystemChannelOpened { pub sender: hrmp_system_channel_opened::Sender, pub recipient: hrmp_system_channel_opened::Recipient, @@ -35486,7 +40571,7 @@ pub mod api { pub mod assignment_keys_unsafe { use super::runtime_types; pub type AssignmentKeysUnsafe = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::assignment_app::Public, + runtime_types::polkadot_primitives::v7::assignment_app::Public, >; } pub mod earliest_stored_session { @@ -35495,7 +40580,7 @@ pub mod api { } pub mod sessions { use super::runtime_types; - pub type Sessions = runtime_types::polkadot_primitives::v6::SessionInfo; + pub type Sessions = runtime_types::polkadot_primitives::v7::SessionInfo; pub type Param0 = ::core::primitive::u32; } pub mod account_keys { @@ -35508,7 +40593,7 @@ pub mod api { pub mod session_executor_params { use super::runtime_types; pub type SessionExecutorParams = - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams; + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParams; pub type Param0 = ::core::primitive::u32; } } @@ -35531,9 +40616,10 @@ pub mod api { "AssignmentKeysUnsafe", (), [ - 51u8, 155u8, 91u8, 101u8, 118u8, 243u8, 134u8, 138u8, 147u8, 59u8, - 195u8, 186u8, 54u8, 187u8, 36u8, 14u8, 91u8, 141u8, 60u8, 139u8, 28u8, - 74u8, 111u8, 232u8, 198u8, 229u8, 61u8, 63u8, 72u8, 214u8, 152u8, 2u8, + 180u8, 187u8, 151u8, 97u8, 28u8, 143u8, 44u8, 107u8, 127u8, 16u8, 82u8, + 208u8, 210u8, 99u8, 211u8, 54u8, 252u8, 164u8, 138u8, 142u8, 124u8, + 117u8, 217u8, 184u8, 223u8, 65u8, 45u8, 143u8, 220u8, 212u8, 254u8, + 173u8, ], ) } @@ -35575,10 +40661,10 @@ pub mod api { "Sessions", (), [ - 254u8, 40u8, 169u8, 18u8, 252u8, 203u8, 49u8, 182u8, 123u8, 19u8, - 241u8, 150u8, 227u8, 153u8, 108u8, 109u8, 66u8, 129u8, 157u8, 27u8, - 130u8, 215u8, 105u8, 18u8, 163u8, 72u8, 182u8, 243u8, 31u8, 157u8, - 103u8, 111u8, + 234u8, 87u8, 239u8, 243u8, 224u8, 177u8, 208u8, 208u8, 80u8, 111u8, + 190u8, 108u8, 189u8, 81u8, 68u8, 30u8, 108u8, 83u8, 43u8, 150u8, 87u8, + 156u8, 68u8, 231u8, 151u8, 67u8, 26u8, 223u8, 218u8, 137u8, 229u8, + 228u8, ], ) } @@ -35604,10 +40690,10 @@ pub mod api { _0.borrow(), ), [ - 254u8, 40u8, 169u8, 18u8, 252u8, 203u8, 49u8, 182u8, 123u8, 19u8, - 241u8, 150u8, 227u8, 153u8, 108u8, 109u8, 66u8, 129u8, 157u8, 27u8, - 130u8, 215u8, 105u8, 18u8, 163u8, 72u8, 182u8, 243u8, 31u8, 157u8, - 103u8, 111u8, + 234u8, 87u8, 239u8, 243u8, 224u8, 177u8, 208u8, 208u8, 80u8, 111u8, + 190u8, 108u8, 189u8, 81u8, 68u8, 30u8, 108u8, 83u8, 43u8, 150u8, 87u8, + 156u8, 68u8, 231u8, 151u8, 67u8, 26u8, 223u8, 218u8, 137u8, 229u8, + 228u8, ], ) } @@ -35675,10 +40761,9 @@ pub mod api { "SessionExecutorParams", (), [ - 102u8, 51u8, 28u8, 199u8, 238u8, 229u8, 99u8, 38u8, 116u8, 154u8, - 250u8, 136u8, 240u8, 122u8, 82u8, 13u8, 139u8, 160u8, 149u8, 218u8, - 162u8, 130u8, 109u8, 251u8, 10u8, 109u8, 200u8, 158u8, 32u8, 157u8, - 84u8, 234u8, + 38u8, 80u8, 118u8, 112u8, 189u8, 55u8, 95u8, 184u8, 19u8, 8u8, 114u8, + 6u8, 173u8, 80u8, 254u8, 98u8, 107u8, 202u8, 215u8, 107u8, 149u8, + 157u8, 145u8, 8u8, 249u8, 255u8, 83u8, 199u8, 47u8, 179u8, 208u8, 83u8, ], ) } @@ -35702,10 +40787,9 @@ pub mod api { _0.borrow(), ), [ - 102u8, 51u8, 28u8, 199u8, 238u8, 229u8, 99u8, 38u8, 116u8, 154u8, - 250u8, 136u8, 240u8, 122u8, 82u8, 13u8, 139u8, 160u8, 149u8, 218u8, - 162u8, 130u8, 109u8, 251u8, 10u8, 109u8, 200u8, 158u8, 32u8, 157u8, - 84u8, 234u8, + 38u8, 80u8, 118u8, 112u8, 189u8, 55u8, 95u8, 184u8, 19u8, 8u8, 114u8, + 6u8, 173u8, 80u8, 254u8, 98u8, 107u8, 202u8, 215u8, 107u8, 149u8, + 157u8, 145u8, 8u8, 249u8, 255u8, 83u8, 199u8, 47u8, 179u8, 208u8, 83u8, ], ) } @@ -35739,7 +40823,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_unfreeze`]."] pub struct ForceUnfreeze; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceUnfreeze { const PALLET: &'static str = "ParasDisputes"; @@ -35748,7 +40831,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_unfreeze`]."] pub fn force_unfreeze( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -35855,7 +40937,7 @@ pub mod api { } pub mod disputes { use super::runtime_types; - pub type Disputes = runtime_types::polkadot_primitives::v6::DisputeState< + pub type Disputes = runtime_types::polkadot_primitives::v7::DisputeState< ::core::primitive::u32, >; pub type Param0 = ::core::primitive::u32; @@ -35864,7 +40946,7 @@ pub mod api { pub mod backers_on_disputes { use super::runtime_types; pub type BackersOnDisputes = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >; pub type Param0 = ::core::primitive::u32; pub type Param1 = runtime_types::polkadot_core_primitives::CandidateHash; @@ -36228,7 +41310,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_dispute_lost_unsigned`]."] pub struct ReportDisputeLostUnsigned { pub dispute_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_dispute_lost_unsigned::DisputeProof, @@ -36238,7 +41319,7 @@ pub mod api { pub mod report_dispute_lost_unsigned { use super::runtime_types; pub type DisputeProof = - runtime_types::polkadot_primitives::v6::slashing::DisputeProof; + runtime_types::polkadot_primitives::v7::slashing::DisputeProof; pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportDisputeLostUnsigned { @@ -36248,7 +41329,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::report_dispute_lost_unsigned`]."] pub fn report_dispute_lost_unsigned( &self, dispute_proof: types::report_dispute_lost_unsigned::DisputeProof, @@ -36266,10 +41346,9 @@ pub mod api { key_owner_proof, }, [ - 57u8, 99u8, 246u8, 126u8, 203u8, 239u8, 64u8, 182u8, 167u8, 204u8, - 96u8, 221u8, 126u8, 94u8, 254u8, 210u8, 18u8, 182u8, 207u8, 32u8, - 250u8, 249u8, 116u8, 156u8, 210u8, 63u8, 254u8, 74u8, 86u8, 101u8, - 28u8, 229u8, + 18u8, 73u8, 202u8, 17u8, 170u8, 157u8, 84u8, 74u8, 185u8, 45u8, 77u8, + 154u8, 79u8, 108u8, 36u8, 247u8, 125u8, 6u8, 170u8, 179u8, 64u8, 149u8, + 201u8, 138u8, 74u8, 148u8, 37u8, 120u8, 235u8, 220u8, 214u8, 95u8, ], ) } @@ -36282,7 +41361,7 @@ pub mod api { pub mod unapplied_slashes { use super::runtime_types; pub type UnappliedSlashes = - runtime_types::polkadot_primitives::v6::slashing::PendingSlashes; + runtime_types::polkadot_primitives::v7::slashing::PendingSlashes; pub type Param0 = ::core::primitive::u32; pub type Param1 = runtime_types::polkadot_core_primitives::CandidateHash; } @@ -36309,10 +41388,10 @@ pub mod api { "UnappliedSlashes", (), [ - 114u8, 171u8, 137u8, 142u8, 180u8, 125u8, 226u8, 240u8, 99u8, 181u8, - 68u8, 221u8, 91u8, 124u8, 172u8, 93u8, 103u8, 12u8, 95u8, 43u8, 67u8, - 59u8, 29u8, 133u8, 140u8, 17u8, 141u8, 228u8, 145u8, 201u8, 82u8, - 126u8, + 139u8, 156u8, 52u8, 31u8, 151u8, 223u8, 139u8, 230u8, 222u8, 217u8, + 12u8, 49u8, 83u8, 192u8, 23u8, 89u8, 204u8, 185u8, 212u8, 185u8, 176u8, + 49u8, 91u8, 206u8, 184u8, 98u8, 65u8, 151u8, 246u8, 128u8, 149u8, + 186u8, ], ) } @@ -36336,10 +41415,10 @@ pub mod api { _0.borrow(), ), [ - 114u8, 171u8, 137u8, 142u8, 180u8, 125u8, 226u8, 240u8, 99u8, 181u8, - 68u8, 221u8, 91u8, 124u8, 172u8, 93u8, 103u8, 12u8, 95u8, 43u8, 67u8, - 59u8, 29u8, 133u8, 140u8, 17u8, 141u8, 228u8, 145u8, 201u8, 82u8, - 126u8, + 139u8, 156u8, 52u8, 31u8, 151u8, 223u8, 139u8, 230u8, 222u8, 217u8, + 12u8, 49u8, 83u8, 192u8, 23u8, 89u8, 204u8, 185u8, 212u8, 185u8, 176u8, + 49u8, 91u8, 206u8, 184u8, 98u8, 65u8, 151u8, 246u8, 128u8, 149u8, + 186u8, ], ) } @@ -36374,10 +41453,10 @@ pub mod api { ), ), [ - 114u8, 171u8, 137u8, 142u8, 180u8, 125u8, 226u8, 240u8, 99u8, 181u8, - 68u8, 221u8, 91u8, 124u8, 172u8, 93u8, 103u8, 12u8, 95u8, 43u8, 67u8, - 59u8, 29u8, 133u8, 140u8, 17u8, 141u8, 228u8, 145u8, 201u8, 82u8, - 126u8, + 139u8, 156u8, 52u8, 31u8, 151u8, 223u8, 139u8, 230u8, 222u8, 217u8, + 12u8, 49u8, 83u8, 192u8, 23u8, 89u8, 204u8, 185u8, 212u8, 185u8, 176u8, + 49u8, 91u8, 206u8, 184u8, 98u8, 65u8, 151u8, 246u8, 128u8, 149u8, + 186u8, ], ) } @@ -36458,7 +41537,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reap_page`]."] + #[doc = "Remove a page which has no more messages remaining to be processed or is stale."] pub struct ReapPage { pub message_origin: reap_page::MessageOrigin, pub page_index: reap_page::PageIndex, @@ -36486,7 +41565,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::execute_overweight`]."] + #[doc = "Execute an overweight message."] + #[doc = ""] + #[doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] + #[doc = "as success condition."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `message_origin`: The origin from which the message to be executed arrived."] + #[doc = "- `page`: The page in the queue in which the message to be executed is sitting."] + #[doc = "- `index`: The index into the queue of the message to be executed."] + #[doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] + #[doc = " of the message."] + #[doc = ""] + #[doc = "Benchmark complexity considerations: O(index + weight_limit)."] pub struct ExecuteOverweight { pub message_origin: execute_overweight::MessageOrigin, pub page: execute_overweight::Page, @@ -36507,7 +41598,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::reap_page`]."] + #[doc = "Remove a page which has no more messages remaining to be processed or is stale."] pub fn reap_page( &self, message_origin: types::reap_page::MessageOrigin, @@ -36528,7 +41619,19 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::execute_overweight`]."] + #[doc = "Execute an overweight message."] + #[doc = ""] + #[doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] + #[doc = "as success condition."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `message_origin`: The origin from which the message to be executed arrived."] + #[doc = "- `page`: The page in the queue in which the message to be executed is sitting."] + #[doc = "- `index`: The index into the queue of the message to be executed."] + #[doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] + #[doc = " of the message."] + #[doc = ""] + #[doc = "Benchmark complexity considerations: O(index + weight_limit)."] pub fn execute_overweight( &self, message_origin: types::execute_overweight::MessageOrigin, @@ -36578,7 +41681,7 @@ pub mod api { } pub mod processing_failed { use super::runtime_types; - pub type Id = [::core::primitive::u8; 32usize]; + pub type Id = ::subxt::ext::subxt_core::utils::H256; pub type Origin = runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin; pub type Error = @@ -36607,7 +41710,7 @@ pub mod api { } pub mod processed { use super::runtime_types; - pub type Id = [::core::primitive::u8; 32usize]; + pub type Id = ::subxt::ext::subxt_core::utils::H256; pub type Origin = runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin; pub type WeightUsed = runtime_types::sp_weights::weight_v2::Weight; @@ -36900,10 +42003,11 @@ pub mod api { ) } #[doc = " The amount of weight (if any) which should be provided to the message queue for"] - #[doc = " servicing enqueued items."] + #[doc = " servicing enqueued items `on_initialize`."] #[doc = ""] #[doc = " This may be legitimately `None` in the case that you will call"] - #[doc = " `ServiceQueues::service_queues` manually."] + #[doc = " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have"] + #[doc = " it run in `on_idle`."] pub fn service_weight( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -36919,21 +42023,29 @@ pub mod api { ], ) } + #[doc = " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which"] + #[doc = " should be provided to the message queue for servicing enqueued items `on_idle`."] + #[doc = " Useful for parachains to process messages at the same block they are received."] + #[doc = ""] + #[doc = " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`."] + pub fn idle_max_service_weight( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::option::Option, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "MessageQueue", + "IdleMaxServiceWeight", + [ + 204u8, 140u8, 63u8, 167u8, 49u8, 8u8, 148u8, 163u8, 190u8, 224u8, 15u8, + 103u8, 86u8, 153u8, 248u8, 117u8, 223u8, 117u8, 210u8, 80u8, 205u8, + 155u8, 40u8, 11u8, 59u8, 63u8, 129u8, 156u8, 17u8, 83u8, 177u8, 250u8, + ], + ) + } } } } - pub mod para_assignment_provider { - use super::root_mod; - use super::runtime_types; - pub mod storage { - use super::runtime_types; - pub mod types { - use super::runtime_types; - } - pub struct StorageApi; - impl StorageApi {} - } - } pub mod on_demand_assignment_provider { use super::root_mod; use super::runtime_types; @@ -36963,7 +42075,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_order_allow_death`]."] + #[doc = "Create a single on demand core order."] + #[doc = "Will use the spot price for the current block and will reap the account if needed."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] pub struct PlaceOrderAllowDeath { pub max_amount: place_order_allow_death::MaxAmount, pub para_id: place_order_allow_death::ParaId, @@ -36991,7 +42118,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_order_keep_alive`]."] + #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"] + #[doc = "check that placing the order will not reap the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] pub struct PlaceOrderKeepAlive { pub max_amount: place_order_keep_alive::MaxAmount, pub para_id: place_order_keep_alive::ParaId, @@ -37008,7 +42150,22 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::place_order_allow_death`]."] + #[doc = "Create a single on demand core order."] + #[doc = "Will use the spot price for the current block and will reap the account if needed."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] pub fn place_order_allow_death( &self, max_amount: types::place_order_allow_death::MaxAmount, @@ -37030,7 +42187,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::place_order_keep_alive`]."] + #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"] + #[doc = "check that placing the order will not reap the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] pub fn place_order_keep_alive( &self, max_amount: types::place_order_keep_alive::MaxAmount, @@ -37109,69 +42281,27 @@ pub mod api { use super::runtime_types; pub mod types { use super::runtime_types; - pub mod spot_traffic { - use super::runtime_types; - pub type SpotTraffic = runtime_types::sp_arithmetic::fixed_point::FixedU128; - } - pub mod on_demand_queue { - use super::runtime_types; - pub type OnDemandQueue = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_runtime_parachains::scheduler::common::Assignment, - >; - } pub mod para_id_affinity { use super::runtime_types; pub type ParaIdAffinity = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: CoreAffinityCount ; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } + pub mod queue_status { + use super::runtime_types; + pub type QueueStatus = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueStatusType ; + } + pub mod free_entries { + use super::runtime_types; + pub type FreeEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: EnqueuedOrder > ; + } + pub mod affinity_entries { + use super::runtime_types; + pub type AffinityEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: EnqueuedOrder > ; + pub type Param0 = runtime_types::polkadot_primitives::v7::CoreIndex; + } } pub struct StorageApi; impl StorageApi { - #[doc = " Keeps track of the multiplier used to calculate the current spot price for the on demand"] - #[doc = " assigner."] - pub fn spot_traffic( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::spot_traffic::SpotTraffic, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "OnDemandAssignmentProvider", - "SpotTraffic", - (), - [ - 8u8, 236u8, 233u8, 156u8, 211u8, 45u8, 192u8, 58u8, 108u8, 247u8, 47u8, - 97u8, 229u8, 26u8, 188u8, 67u8, 98u8, 43u8, 11u8, 11u8, 1u8, 127u8, - 15u8, 75u8, 25u8, 19u8, 220u8, 16u8, 121u8, 223u8, 207u8, 226u8, - ], - ) - } - #[doc = " The order storage entry. Uses a VecDeque to be able to push to the front of the"] - #[doc = " queue from the scheduler on session boundaries."] - pub fn on_demand_queue( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::on_demand_queue::OnDemandQueue, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "OnDemandAssignmentProvider", - "OnDemandQueue", - (), - [ - 241u8, 10u8, 89u8, 240u8, 227u8, 90u8, 218u8, 35u8, 80u8, 244u8, 219u8, - 112u8, 177u8, 143u8, 43u8, 228u8, 224u8, 165u8, 217u8, 65u8, 17u8, - 182u8, 61u8, 173u8, 214u8, 140u8, 224u8, 68u8, 68u8, 226u8, 208u8, - 156u8, - ], - ) - } #[doc = " Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in"] #[doc = " it's lookahead. Keeping track of this affinity prevents parallel execution of the same"] #[doc = " `ParaId` on two or more `CoreIndex`es."] @@ -37189,9 +42319,10 @@ pub mod api { "ParaIdAffinity", (), [ - 145u8, 117u8, 2u8, 170u8, 99u8, 68u8, 166u8, 236u8, 247u8, 80u8, 202u8, - 87u8, 116u8, 244u8, 218u8, 172u8, 41u8, 187u8, 170u8, 163u8, 187u8, - 13u8, 9u8, 19u8, 55u8, 167u8, 67u8, 30u8, 57u8, 162u8, 226u8, 65u8, + 84u8, 171u8, 103u8, 180u8, 176u8, 210u8, 232u8, 184u8, 221u8, 129u8, + 174u8, 253u8, 250u8, 168u8, 2u8, 250u8, 105u8, 143u8, 120u8, 204u8, + 30u8, 242u8, 151u8, 44u8, 48u8, 150u8, 81u8, 194u8, 191u8, 91u8, 29u8, + 46u8, ], ) } @@ -37202,7 +42333,9 @@ pub mod api { &self, _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::para_id_affinity::Param0, + >, types::para_id_affinity::ParaIdAffinity, ::subxt::ext::subxt_core::utils::Yes, (), @@ -37211,11 +42344,106 @@ pub mod api { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "OnDemandAssignmentProvider", "ParaIdAffinity", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 84u8, 171u8, 103u8, 180u8, 176u8, 210u8, 232u8, 184u8, 221u8, 129u8, + 174u8, 253u8, 250u8, 168u8, 2u8, 250u8, 105u8, 143u8, 120u8, 204u8, + 30u8, 242u8, 151u8, 44u8, 48u8, 150u8, 81u8, 194u8, 191u8, 91u8, 29u8, + 46u8, + ], + ) + } + #[doc = " Overall status of queue (both free + affinity entries)"] + pub fn queue_status( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::queue_status::QueueStatus, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "QueueStatus", (), [ - 145u8, 117u8, 2u8, 170u8, 99u8, 68u8, 166u8, 236u8, 247u8, 80u8, 202u8, - 87u8, 116u8, 244u8, 218u8, 172u8, 41u8, 187u8, 170u8, 163u8, 187u8, - 13u8, 9u8, 19u8, 55u8, 167u8, 67u8, 30u8, 57u8, 162u8, 226u8, 65u8, + 44u8, 67u8, 88u8, 179u8, 0u8, 178u8, 233u8, 101u8, 156u8, 215u8, 99u8, + 242u8, 236u8, 2u8, 153u8, 32u8, 214u8, 247u8, 193u8, 234u8, 194u8, + 30u8, 182u8, 151u8, 18u8, 121u8, 208u8, 146u8, 231u8, 6u8, 162u8, 20u8, + ], + ) + } + #[doc = " Priority queue for all orders which don't yet (or not any more) have any core affinity."] + pub fn free_entries( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::free_entries::FreeEntries, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "FreeEntries", + (), + [ + 229u8, 190u8, 235u8, 140u8, 35u8, 221u8, 62u8, 119u8, 131u8, 211u8, + 177u8, 218u8, 84u8, 132u8, 135u8, 118u8, 138u8, 227u8, 186u8, 52u8, + 102u8, 190u8, 155u8, 123u8, 232u8, 136u8, 97u8, 203u8, 55u8, 113u8, + 194u8, 7u8, + ], + ) + } + #[doc = " Queue entries that are currently bound to a particular core due to core affinity."] + pub fn affinity_entries_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::affinity_entries::AffinityEntries, + (), + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "AffinityEntries", + (), + [ + 130u8, 236u8, 62u8, 133u8, 71u8, 121u8, 51u8, 37u8, 27u8, 240u8, 134u8, + 28u8, 221u8, 211u8, 28u8, 182u8, 222u8, 220u8, 249u8, 227u8, 2u8, + 124u8, 71u8, 252u8, 208u8, 36u8, 219u8, 147u8, 235u8, 254u8, 36u8, + 90u8, + ], + ) + } + #[doc = " Queue entries that are currently bound to a particular core due to core affinity."] + pub fn affinity_entries( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::affinity_entries::Param0, + >, + types::affinity_entries::AffinityEntries, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "AffinityEntries", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 130u8, 236u8, 62u8, 133u8, 71u8, 121u8, 51u8, 37u8, 27u8, 240u8, 134u8, + 28u8, 221u8, 211u8, 28u8, 182u8, 222u8, 220u8, 249u8, 227u8, 2u8, + 124u8, 71u8, 252u8, 208u8, 36u8, 219u8, 147u8, 235u8, 254u8, 36u8, + 90u8, ], ) } @@ -37245,9 +42473,159 @@ pub mod api { } } } - pub mod parachains_assignment_provider { + pub mod coretime_assignment_provider { use super::root_mod; use super::runtime_types; + #[doc = "The `Error` enum of this pallet."] + pub type Error = + runtime_types::polkadot_runtime_parachains::assigner_coretime::pallet::Error; + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod core_schedules { + use super::runtime_types; + pub type CoreSchedules = + runtime_types::polkadot_runtime_parachains::assigner_coretime::Schedule< + ::core::primitive::u32, + >; + pub type Param0 = ::core::primitive::u32; + pub type Param1 = runtime_types::polkadot_primitives::v7::CoreIndex; + } + pub mod core_descriptors { + use super::runtime_types; + pub type CoreDescriptors = runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: CoreDescriptor < :: core :: primitive :: u32 > ; + pub type Param0 = runtime_types::polkadot_primitives::v7::CoreIndex; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Scheduled assignment sets."] + #[doc = ""] + #[doc = " Assignments as of the given block number. They will go into state once the block number is"] + #[doc = " reached (and replace whatever was in there before)."] + pub fn core_schedules_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::core_schedules::CoreSchedules, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + (), + [ + 34u8, 85u8, 91u8, 158u8, 28u8, 200u8, 76u8, 188u8, 253u8, 91u8, 153u8, + 42u8, 42u8, 227u8, 119u8, 181u8, 247u8, 44u8, 29u8, 24u8, 128u8, 49u8, + 57u8, 248u8, 24u8, 145u8, 34u8, 74u8, 21u8, 225u8, 159u8, 232u8, + ], + ) + } + #[doc = " Scheduled assignment sets."] + #[doc = ""] + #[doc = " Assignments as of the given block number. They will go into state once the block number is"] + #[doc = " reached (and replace whatever was in there before)."] + pub fn core_schedules_iter1( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::core_schedules::CoreSchedules, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + (), + [ + 34u8, 85u8, 91u8, 158u8, 28u8, 200u8, 76u8, 188u8, 253u8, 91u8, 153u8, + 42u8, 42u8, 227u8, 119u8, 181u8, 247u8, 44u8, 29u8, 24u8, 128u8, 49u8, + 57u8, 248u8, 24u8, 145u8, 34u8, 74u8, 21u8, 225u8, 159u8, 232u8, + ], + ) + } + #[doc = " Scheduled assignment sets."] + #[doc = ""] + #[doc = " Assignments as of the given block number. They will go into state once the block number is"] + #[doc = " reached (and replace whatever was in there before)."] + pub fn core_schedules( + &self, + _0: impl ::core::borrow::Borrow, + _1: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ((), ()), + types::core_schedules::CoreSchedules, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + ((), ()), + [ + 34u8, 85u8, 91u8, 158u8, 28u8, 200u8, 76u8, 188u8, 253u8, 91u8, 153u8, + 42u8, 42u8, 227u8, 119u8, 181u8, 247u8, 44u8, 29u8, 24u8, 128u8, 49u8, + 57u8, 248u8, 24u8, 145u8, 34u8, 74u8, 21u8, 225u8, 159u8, 232u8, + ], + ) + } + #[doc = " Assignments which are currently active."] + #[doc = ""] + #[doc = " They will be picked from `PendingAssignments` once we reach the scheduled block number in"] + #[doc = " `PendingAssignments`."] + pub fn core_descriptors_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::core_descriptors::CoreDescriptors, + (), + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreDescriptors", + (), + [ + 1u8, 90u8, 208u8, 119u8, 150u8, 241u8, 133u8, 74u8, 22u8, 166u8, 13u8, + 7u8, 73u8, 136u8, 105u8, 61u8, 251u8, 245u8, 164u8, 7u8, 45u8, 68u8, + 190u8, 224u8, 34u8, 22u8, 30u8, 250u8, 171u8, 152u8, 238u8, 120u8, + ], + ) + } + #[doc = " Assignments which are currently active."] + #[doc = ""] + #[doc = " They will be picked from `PendingAssignments` once we reach the scheduled block number in"] + #[doc = " `PendingAssignments`."] + pub fn core_descriptors( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::core_descriptors::CoreDescriptors, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreDescriptors", + (), + [ + 1u8, 90u8, 208u8, 119u8, 150u8, 241u8, 133u8, 74u8, 22u8, 166u8, 13u8, + 7u8, 73u8, 136u8, 105u8, 61u8, 251u8, 245u8, 164u8, 7u8, 45u8, 68u8, + 190u8, 224u8, 34u8, 22u8, 30u8, 250u8, 171u8, 152u8, 238u8, 120u8, + ], + ) + } + } + } } pub mod registrar { use super::root_mod; @@ -37276,7 +42654,26 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::register`]."] + #[doc = "Register head data and validation code for a reserved Para Id."] + #[doc = ""] + #[doc = "## Arguments"] + #[doc = "- `origin`: Must be called by a `Signed` origin."] + #[doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."] + #[doc = "- `genesis_head`: The genesis head data of the parachain/thread."] + #[doc = "- `validation_code`: The initial validation code of the parachain/thread."] + #[doc = ""] + #[doc = "## Deposits/Fees"] + #[doc = "The account with the originating signature must reserve a deposit."] + #[doc = ""] + #[doc = "The deposit is required to cover the costs associated with storing the genesis head"] + #[doc = "data and the validation code."] + #[doc = "This accounts for the potential to store validation code of a size up to the"] + #[doc = "`max_code_size`, as defined in the configuration pallet"] + #[doc = ""] + #[doc = "Anything already reserved previously for this para ID is accounted for."] + #[doc = ""] + #[doc = "## Events"] + #[doc = "The `Registered` event is emitted in case of success."] pub struct Register { pub id: register::Id, pub genesis_head: register::GenesisHead, @@ -37308,7 +42705,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_register`]."] + #[doc = "Force the registration of a Para Id on the relay chain."] + #[doc = ""] + #[doc = "This function must be called by a Root origin."] + #[doc = ""] + #[doc = "The deposit taken can be specified for this registration. Any `ParaId`"] + #[doc = "can be registered, including sub-1000 IDs which are System Parachains."] pub struct ForceRegister { pub who: force_register::Who, pub deposit: force_register::Deposit, @@ -37344,7 +42746,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::deregister`]."] + #[doc = "Deregister a Para Id, freeing all data and returning any deposit."] + #[doc = ""] + #[doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"] + #[doc = "on-demand parachain."] pub struct Deregister { pub id: deregister::Id, } @@ -37370,7 +42775,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::swap`]."] + #[doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"] + #[doc = "holding."] + #[doc = ""] + #[doc = "The origin must be Root, the `para` owner, or the `para` itself."] + #[doc = ""] + #[doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"] + #[doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."] + #[doc = ""] + #[doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"] + #[doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"] + #[doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"] + #[doc = "parachain), auction information and the auction deposit are switched."] pub struct Swap { pub id: swap::Id, pub other: swap::Other, @@ -37398,7 +42814,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_lock`]."] + #[doc = "Remove a manager lock from a para. This will allow the manager of a"] + #[doc = "previously locked para to deregister or swap a para without using governance."] + #[doc = ""] + #[doc = "Can only be called by the Root origin or the parachain."] pub struct RemoveLock { pub para: remove_lock::Para, } @@ -37424,7 +42843,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reserve`]."] + #[doc = "Reserve a Para Id on the relay chain."] + #[doc = ""] + #[doc = "This function will reserve a new Para Id to be owned/managed by the origin account."] + #[doc = "The origin account is able to register head data and validation code using `register` to"] + #[doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"] + #[doc = "be upgraded to a lease holding parachain."] + #[doc = ""] + #[doc = "## Arguments"] + #[doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"] + #[doc = " para ID."] + #[doc = ""] + #[doc = "## Deposits/Fees"] + #[doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."] + #[doc = ""] + #[doc = "## Events"] + #[doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"] + #[doc = "use."] pub struct Reserve; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Reserve { const PALLET: &'static str = "Registrar"; @@ -37444,7 +42879,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_lock`]."] + #[doc = "Add a manager lock from a para. This will prevent the manager of a"] + #[doc = "para to deregister or swap a para."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub struct AddLock { pub para: add_lock::Para, } @@ -37470,7 +42909,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule_code_upgrade`]."] + #[doc = "Schedule a parachain upgrade."] + #[doc = ""] + #[doc = "This will kick off a check of `new_code` by all validators. After the majority of the"] + #[doc = "validators have reported on the validity of the code, the code will either be enacted"] + #[doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"] + #[doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"] + #[doc = "new code. The parachain itself will not be informed explicitly that the validation code"] + #[doc = "has changed."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub struct ScheduleCodeUpgrade { pub para: schedule_code_upgrade::Para, pub new_code: schedule_code_upgrade::NewCode, @@ -37499,7 +42948,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_current_head`]."] + #[doc = "Set the parachain's current head."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub struct SetCurrentHead { pub para: set_current_head::Para, pub new_head: set_current_head::NewHead, @@ -37517,7 +42969,26 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::register`]."] + #[doc = "Register head data and validation code for a reserved Para Id."] + #[doc = ""] + #[doc = "## Arguments"] + #[doc = "- `origin`: Must be called by a `Signed` origin."] + #[doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."] + #[doc = "- `genesis_head`: The genesis head data of the parachain/thread."] + #[doc = "- `validation_code`: The initial validation code of the parachain/thread."] + #[doc = ""] + #[doc = "## Deposits/Fees"] + #[doc = "The account with the originating signature must reserve a deposit."] + #[doc = ""] + #[doc = "The deposit is required to cover the costs associated with storing the genesis head"] + #[doc = "data and the validation code."] + #[doc = "This accounts for the potential to store validation code of a size up to the"] + #[doc = "`max_code_size`, as defined in the configuration pallet"] + #[doc = ""] + #[doc = "Anything already reserved previously for this para ID is accounted for."] + #[doc = ""] + #[doc = "## Events"] + #[doc = "The `Registered` event is emitted in case of success."] pub fn register( &self, id: types::register::Id, @@ -37540,7 +43011,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_register`]."] + #[doc = "Force the registration of a Para Id on the relay chain."] + #[doc = ""] + #[doc = "This function must be called by a Root origin."] + #[doc = ""] + #[doc = "The deposit taken can be specified for this registration. Any `ParaId`"] + #[doc = "can be registered, including sub-1000 IDs which are System Parachains."] pub fn force_register( &self, who: types::force_register::Who, @@ -37568,7 +43044,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::deregister`]."] + #[doc = "Deregister a Para Id, freeing all data and returning any deposit."] + #[doc = ""] + #[doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"] + #[doc = "on-demand parachain."] pub fn deregister( &self, id: types::deregister::Id, @@ -37585,7 +43064,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::swap`]."] + #[doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"] + #[doc = "holding."] + #[doc = ""] + #[doc = "The origin must be Root, the `para` owner, or the `para` itself."] + #[doc = ""] + #[doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"] + #[doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."] + #[doc = ""] + #[doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"] + #[doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"] + #[doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"] + #[doc = "parachain), auction information and the auction deposit are switched."] pub fn swap( &self, id: types::swap::Id, @@ -37604,7 +43094,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_lock`]."] + #[doc = "Remove a manager lock from a para. This will allow the manager of a"] + #[doc = "previously locked para to deregister or swap a para without using governance."] + #[doc = ""] + #[doc = "Can only be called by the Root origin or the parachain."] pub fn remove_lock( &self, para: types::remove_lock::Para, @@ -37621,7 +43114,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::reserve`]."] + #[doc = "Reserve a Para Id on the relay chain."] + #[doc = ""] + #[doc = "This function will reserve a new Para Id to be owned/managed by the origin account."] + #[doc = "The origin account is able to register head data and validation code using `register` to"] + #[doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"] + #[doc = "be upgraded to a lease holding parachain."] + #[doc = ""] + #[doc = "## Arguments"] + #[doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"] + #[doc = " para ID."] + #[doc = ""] + #[doc = "## Deposits/Fees"] + #[doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."] + #[doc = ""] + #[doc = "## Events"] + #[doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"] + #[doc = "use."] pub fn reserve( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -37637,7 +43146,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::add_lock`]."] + #[doc = "Add a manager lock from a para. This will prevent the manager of a"] + #[doc = "para to deregister or swap a para."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub fn add_lock( &self, para: types::add_lock::Para, @@ -37654,7 +43167,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::schedule_code_upgrade`]."] + #[doc = "Schedule a parachain upgrade."] + #[doc = ""] + #[doc = "This will kick off a check of `new_code` by all validators. After the majority of the"] + #[doc = "validators have reported on the validity of the code, the code will either be enacted"] + #[doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"] + #[doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"] + #[doc = "new code. The parachain itself will not be informed explicitly that the validation code"] + #[doc = "has changed."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub fn schedule_code_upgrade( &self, para: types::schedule_code_upgrade::Para, @@ -37673,7 +43196,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_current_head`]."] + #[doc = "Set the parachain's current head."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub fn set_current_head( &self, para: types::set_current_head::Para, @@ -38009,7 +43535,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_lease`]."] + #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"] + #[doc = "happen independently of any other on-chain mechanism to use it."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] pub struct ForceLease { pub para: force_lease::Para, pub leaser: force_lease::Leaser, @@ -38043,7 +43572,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::clear_all_leases`]."] + #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] pub struct ClearAllLeases { pub para: clear_all_leases::Para, } @@ -38069,7 +43600,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::trigger_onboard`]."] + #[doc = "Try to onboard a parachain that has a lease for the current lease period."] + #[doc = ""] + #[doc = "This function can be useful if there was some state issue with a para that should"] + #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"] + #[doc = "let them onboard from here."] + #[doc = ""] + #[doc = "Origin must be signed, but can be called by anyone."] pub struct TriggerOnboard { pub para: trigger_onboard::Para, } @@ -38084,7 +43621,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_lease`]."] + #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"] + #[doc = "happen independently of any other on-chain mechanism to use it."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] pub fn force_lease( &self, para: types::force_lease::Para, @@ -38112,7 +43652,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::clear_all_leases`]."] + #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] pub fn clear_all_leases( &self, para: types::clear_all_leases::Para, @@ -38129,7 +43671,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::trigger_onboard`]."] + #[doc = "Try to onboard a parachain that has a lease for the current lease period."] + #[doc = ""] + #[doc = "This function can be useful if there was some state issue with a para that should"] + #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"] + #[doc = "let them onboard from here."] + #[doc = ""] + #[doc = "Origin must be signed, but can be called by anyone."] pub fn trigger_onboard( &self, para: types::trigger_onboard::Para, @@ -38375,7 +43923,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::new_auction`]."] + #[doc = "Create a new auction."] + #[doc = ""] + #[doc = "This can only happen when there isn't already an auction in progress and may only be"] + #[doc = "called by the root origin. Accepts the `duration` of this auction and the"] + #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."] pub struct NewAuction { #[codec(compact)] pub duration: new_auction::Duration, @@ -38405,7 +43957,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::bid`]."] + #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"] + #[doc = "parachain."] + #[doc = ""] + #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"] + #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."] + #[doc = ""] + #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"] + #[doc = "funded by) the same account."] + #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"] + #[doc = "value of `AuctionCounter`."] + #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"] + #[doc = "bid win. This amount is held throughout the range."] pub struct Bid { #[codec(compact)] pub para: bid::Para, @@ -38444,7 +44011,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_auction`]."] + #[doc = "Cancel an in-progress auction."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] pub struct CancelAuction; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelAuction { const PALLET: &'static str = "Auctions"; @@ -38453,7 +44022,11 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::new_auction`]."] + #[doc = "Create a new auction."] + #[doc = ""] + #[doc = "This can only happen when there isn't already an auction in progress and may only be"] + #[doc = "called by the root origin. Accepts the `duration` of this auction and the"] + #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."] pub fn new_auction( &self, duration: types::new_auction::Duration, @@ -38475,7 +44048,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::bid`]."] + #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"] + #[doc = "parachain."] + #[doc = ""] + #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"] + #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."] + #[doc = ""] + #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"] + #[doc = "funded by) the same account."] + #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"] + #[doc = "value of `AuctionCounter`."] + #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"] + #[doc = "bid win. This amount is held throughout the range."] pub fn bid( &self, para: types::bid::Para, @@ -38502,7 +44090,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_auction`]."] + #[doc = "Cancel an in-progress auction."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] pub fn cancel_auction( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -39028,7 +44618,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::create`]."] + #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"] + #[doc = "range."] + #[doc = ""] + #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"] + #[doc = "by the parachain manager."] pub struct Create { #[codec(compact)] pub index: create::Index, @@ -39070,7 +44664,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::contribute`]."] + #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"] + #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."] pub struct Contribute { #[codec(compact)] pub index: contribute::Index, @@ -39103,7 +44698,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::withdraw`]."] + #[doc = "Withdraw full balance of a specific contributor."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] + #[doc = ""] + #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"] + #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"] + #[doc = "- it must not already be in retirement;"] + #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"] + #[doc = "- and either:"] + #[doc = " - the block number must be at least `end`; or"] + #[doc = " - the current lease period must be greater than the fund's `last_period`."] + #[doc = ""] + #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"] + #[doc = "block number."] + #[doc = ""] + #[doc = "- `who`: The account whose contribution should be withdrawn."] + #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."] pub struct Withdraw { pub who: withdraw::Who, #[codec(compact)] @@ -39132,7 +44743,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund`]."] + #[doc = "Automatically refund contributors of an ended crowdloan."] + #[doc = "Due to weight restrictions, this function may need to be called multiple"] + #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] pub struct Refund { #[codec(compact)] pub index: refund::Index, @@ -39159,7 +44774,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."] pub struct Dissolve { #[codec(compact)] pub index: dissolve::Index, @@ -39186,7 +44801,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::edit`]."] + #[doc = "Edit the configuration for an in-progress crowdloan."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] pub struct Edit { #[codec(compact)] pub index: edit::Index, @@ -39228,7 +44845,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_memo`]."] + #[doc = "Add an optional memo to an existing crowdloan contribution."] + #[doc = ""] + #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."] pub struct AddMemo { pub index: add_memo::Index, pub memo: add_memo::Memo, @@ -39257,7 +44876,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::poke`]."] + #[doc = "Poke the fund into `NewRaise`"] + #[doc = ""] + #[doc = "Origin must be Signed, and the fund has non-zero raise."] pub struct Poke { pub index: poke::Index, } @@ -39283,7 +44904,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::contribute_all`]."] + #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"] + #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"] + #[doc = "ended and the funds are unused."] pub struct ContributeAll { #[codec(compact)] pub index: contribute_all::Index, @@ -39302,7 +44925,11 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::create`]."] + #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"] + #[doc = "range."] + #[doc = ""] + #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"] + #[doc = "by the parachain manager."] pub fn create( &self, index: types::create::Index, @@ -39325,13 +44952,15 @@ pub mod api { verifier, }, [ - 236u8, 3u8, 248u8, 168u8, 136u8, 216u8, 20u8, 58u8, 179u8, 13u8, 184u8, - 73u8, 105u8, 35u8, 167u8, 66u8, 117u8, 195u8, 41u8, 41u8, 117u8, 176u8, - 65u8, 18u8, 225u8, 66u8, 2u8, 61u8, 212u8, 92u8, 117u8, 90u8, + 93u8, 62u8, 50u8, 153u8, 231u8, 103u8, 233u8, 109u8, 182u8, 182u8, + 174u8, 247u8, 176u8, 234u8, 224u8, 108u8, 143u8, 213u8, 99u8, 60u8, + 91u8, 209u8, 120u8, 83u8, 54u8, 16u8, 169u8, 156u8, 49u8, 232u8, 228u8, + 89u8, ], ) } - #[doc = "See [`Pallet::contribute`]."] + #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"] + #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."] pub fn contribute( &self, index: types::contribute::Index, @@ -39348,14 +44977,29 @@ pub mod api { signature, }, [ - 186u8, 247u8, 240u8, 7u8, 12u8, 239u8, 39u8, 191u8, 150u8, 219u8, - 137u8, 122u8, 214u8, 61u8, 62u8, 180u8, 229u8, 181u8, 105u8, 190u8, - 228u8, 55u8, 242u8, 70u8, 91u8, 118u8, 143u8, 233u8, 186u8, 231u8, - 207u8, 106u8, + 235u8, 111u8, 40u8, 4u8, 141u8, 19u8, 229u8, 202u8, 158u8, 30u8, 112u8, + 53u8, 113u8, 65u8, 162u8, 226u8, 116u8, 221u8, 118u8, 54u8, 204u8, + 50u8, 23u8, 246u8, 20u8, 245u8, 187u8, 150u8, 142u8, 184u8, 96u8, 84u8, ], ) } - #[doc = "See [`Pallet::withdraw`]."] + #[doc = "Withdraw full balance of a specific contributor."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] + #[doc = ""] + #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"] + #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"] + #[doc = "- it must not already be in retirement;"] + #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"] + #[doc = "- and either:"] + #[doc = " - the block number must be at least `end`; or"] + #[doc = " - the current lease period must be greater than the fund's `last_period`."] + #[doc = ""] + #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"] + #[doc = "block number."] + #[doc = ""] + #[doc = "- `who`: The account whose contribution should be withdrawn."] + #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."] pub fn withdraw( &self, who: types::withdraw::Who, @@ -39373,7 +45017,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund`]."] + #[doc = "Automatically refund contributors of an ended crowdloan."] + #[doc = "Due to weight restrictions, this function may need to be called multiple"] + #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] pub fn refund( &self, index: types::refund::Index, @@ -39391,7 +45039,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."] pub fn dissolve( &self, index: types::dissolve::Index, @@ -39409,7 +45057,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::edit`]."] + #[doc = "Edit the configuration for an in-progress crowdloan."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] pub fn edit( &self, index: types::edit::Index, @@ -39432,14 +45082,16 @@ pub mod api { verifier, }, [ - 126u8, 29u8, 232u8, 93u8, 94u8, 23u8, 47u8, 217u8, 62u8, 2u8, 161u8, - 31u8, 156u8, 229u8, 109u8, 45u8, 97u8, 101u8, 189u8, 139u8, 40u8, - 238u8, 150u8, 94u8, 145u8, 77u8, 26u8, 153u8, 217u8, 171u8, 48u8, - 195u8, + 185u8, 194u8, 173u8, 141u8, 104u8, 157u8, 104u8, 216u8, 223u8, 189u8, + 184u8, 104u8, 71u8, 177u8, 70u8, 129u8, 207u8, 167u8, 80u8, 247u8, + 149u8, 151u8, 211u8, 119u8, 224u8, 214u8, 214u8, 15u8, 88u8, 116u8, + 191u8, 234u8, ], ) } - #[doc = "See [`Pallet::add_memo`]."] + #[doc = "Add an optional memo to an existing crowdloan contribution."] + #[doc = ""] + #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."] pub fn add_memo( &self, index: types::add_memo::Index, @@ -39458,7 +45110,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::poke`]."] + #[doc = "Poke the fund into `NewRaise`"] + #[doc = ""] + #[doc = "Origin must be Signed, and the fund has non-zero raise."] pub fn poke( &self, index: types::poke::Index, @@ -39476,7 +45130,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::contribute_all`]."] + #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"] + #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"] + #[doc = "ended and the funds are unused."] pub fn contribute_all( &self, index: types::contribute_all::Index, @@ -39488,9 +45144,9 @@ pub mod api { "contribute_all", types::ContributeAll { index, signature }, [ - 233u8, 62u8, 129u8, 168u8, 161u8, 163u8, 78u8, 92u8, 191u8, 239u8, - 61u8, 2u8, 198u8, 246u8, 246u8, 81u8, 32u8, 131u8, 118u8, 170u8, 72u8, - 87u8, 17u8, 26u8, 55u8, 10u8, 146u8, 184u8, 213u8, 200u8, 252u8, 50u8, + 167u8, 206u8, 26u8, 124u8, 97u8, 175u8, 170u8, 30u8, 34u8, 29u8, 1u8, + 189u8, 8u8, 168u8, 108u8, 7u8, 154u8, 248u8, 96u8, 158u8, 15u8, 160u8, + 222u8, 205u8, 143u8, 18u8, 128u8, 215u8, 29u8, 109u8, 158u8, 11u8, ], ) } @@ -39783,10 +45439,10 @@ pub mod api { "Funds", (), [ - 191u8, 255u8, 37u8, 49u8, 246u8, 246u8, 168u8, 178u8, 73u8, 238u8, - 49u8, 76u8, 66u8, 246u8, 207u8, 12u8, 76u8, 233u8, 31u8, 218u8, 132u8, - 236u8, 237u8, 210u8, 116u8, 159u8, 191u8, 89u8, 212u8, 167u8, 61u8, - 41u8, + 201u8, 39u8, 80u8, 58u8, 162u8, 213u8, 138u8, 215u8, 11u8, 6u8, 39u8, + 197u8, 142u8, 151u8, 231u8, 166u8, 255u8, 142u8, 219u8, 116u8, 56u8, + 187u8, 128u8, 11u8, 216u8, 49u8, 95u8, 154u8, 55u8, 241u8, 185u8, + 198u8, ], ) } @@ -39810,10 +45466,10 @@ pub mod api { _0.borrow(), ), [ - 191u8, 255u8, 37u8, 49u8, 246u8, 246u8, 168u8, 178u8, 73u8, 238u8, - 49u8, 76u8, 66u8, 246u8, 207u8, 12u8, 76u8, 233u8, 31u8, 218u8, 132u8, - 236u8, 237u8, 210u8, 116u8, 159u8, 191u8, 89u8, 212u8, 167u8, 61u8, - 41u8, + 201u8, 39u8, 80u8, 58u8, 162u8, 213u8, 138u8, 215u8, 11u8, 6u8, 39u8, + 197u8, 142u8, 151u8, 231u8, 166u8, 255u8, 142u8, 219u8, 116u8, 56u8, + 187u8, 128u8, 11u8, 216u8, 49u8, 95u8, 154u8, 55u8, 241u8, 185u8, + 198u8, ], ) } @@ -39943,6 +45599,215 @@ pub mod api { } } } + pub mod coretime { + use super::root_mod; + use super::runtime_types; + #[doc = "The `Error` enum of this pallet."] + pub type Error = runtime_types::polkadot_runtime_parachains::coretime::pallet::Error; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::polkadot_runtime_parachains::coretime::pallet::Call; + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct RequestCoreCount { + pub count: request_core_count::Count, + } + pub mod request_core_count { + use super::runtime_types; + pub type Count = ::core::primitive::u16; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RequestCoreCount { + const PALLET: &'static str = "Coretime"; + const CALL: &'static str = "request_core_count"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] + #[doc = "to be used."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the Broker system parachain."] + #[doc = "-`core`: The core that should be scheduled."] + #[doc = "-`begin`: The starting blockheight of the instruction."] + #[doc = "-`assignment`: How the blockspace should be utilised."] + #[doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] + pub struct AssignCore { + pub core: assign_core::Core, + pub begin: assign_core::Begin, + pub assignment: assign_core::Assignment, + pub end_hint: assign_core::EndHint, + } + pub mod assign_core { + use super::runtime_types; + pub type Core = ::core::primitive::u16; + pub type Begin = ::core::primitive::u32; + pub type Assignment = ::subxt::ext::subxt_core::alloc::vec::Vec<( + runtime_types::pallet_broker::coretime_interface::CoreAssignment, + runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600, + )>; + pub type EndHint = ::core::option::Option<::core::primitive::u32>; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AssignCore { + const PALLET: &'static str = "Coretime"; + const CALL: &'static str = "assign_core"; + } + } + pub struct TransactionApi; + impl TransactionApi { + pub fn request_core_count( + &self, + count: types::request_core_count::Count, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Coretime", + "request_core_count", + types::RequestCoreCount { count }, + [ + 8u8, 225u8, 74u8, 162u8, 188u8, 3u8, 191u8, 45u8, 167u8, 21u8, 227u8, + 200u8, 65u8, 221u8, 49u8, 212u8, 12u8, 229u8, 160u8, 178u8, 136u8, + 13u8, 131u8, 42u8, 220u8, 3u8, 151u8, 241u8, 210u8, 158u8, 218u8, + 217u8, + ], + ) + } + #[doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] + #[doc = "to be used."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the Broker system parachain."] + #[doc = "-`core`: The core that should be scheduled."] + #[doc = "-`begin`: The starting blockheight of the instruction."] + #[doc = "-`assignment`: How the blockspace should be utilised."] + #[doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] + pub fn assign_core( + &self, + core: types::assign_core::Core, + begin: types::assign_core::Begin, + assignment: types::assign_core::Assignment, + end_hint: types::assign_core::EndHint, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Coretime", + "assign_core", + types::AssignCore { + core, + begin, + assignment, + end_hint, + }, + [ + 113u8, 133u8, 153u8, 202u8, 209u8, 53u8, 168u8, 214u8, 153u8, 232u8, + 170u8, 35u8, 63u8, 87u8, 5u8, 108u8, 188u8, 55u8, 111u8, 55u8, 22u8, + 1u8, 190u8, 216u8, 233u8, 185u8, 135u8, 172u8, 15u8, 254u8, 91u8, 92u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::polkadot_runtime_parachains::coretime::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The broker chain has asked for revenue information for a specific block."] + pub struct RevenueInfoRequested { + pub when: revenue_info_requested::When, + } + pub mod revenue_info_requested { + use super::runtime_types; + pub type When = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for RevenueInfoRequested { + const PALLET: &'static str = "Coretime"; + const EVENT: &'static str = "RevenueInfoRequested"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A core has received a new assignment from the broker chain."] + pub struct CoreAssigned { + pub core: core_assigned::Core, + } + pub mod core_assigned { + use super::runtime_types; + pub type Core = runtime_types::polkadot_primitives::v7::CoreIndex; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for CoreAssigned { + const PALLET: &'static str = "Coretime"; + const EVENT: &'static str = "CoreAssigned"; + } + } + pub mod constants { + use super::runtime_types; + pub struct ConstantsApi; + impl ConstantsApi { + #[doc = " The ParaId of the broker system parachain."] + pub fn broker_id( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Coretime", + "BrokerId", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + } + } + } pub mod xcm_pallet { use super::root_mod; use super::runtime_types; @@ -39970,14 +45835,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::send`]."] pub struct Send { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, pub message: ::subxt::ext::subxt_core::alloc::boxed::Box, } pub mod send { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; + pub type Dest = runtime_types::xcm::VersionedLocation; pub type Message = runtime_types::xcm::VersionedXcm1; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Send { @@ -39998,7 +45862,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::teleport_assets`]."] + #[doc = "Teleport some assets from the local chain to some destination chain."] + #[doc = ""] + #[doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] + #[doc = "with all fees taken as needed from the asset."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` chain."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] pub struct TeleportAssets { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, pub beneficiary: @@ -40009,9 +45890,9 @@ pub mod api { } pub mod teleport_assets { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; pub type FeeAssetItem = ::core::primitive::u32; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TeleportAssets { @@ -40032,7 +45913,36 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reserve_transfer_assets`]."] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve."] + #[doc = ""] + #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] + #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] + #[doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] + #[doc = " to mint and deposit reserve-based assets to `beneficiary`."] + #[doc = ""] + #[doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] + #[doc = "with all fees taken as needed from the asset."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] pub struct ReserveTransferAssets { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -40046,9 +45956,9 @@ pub mod api { } pub mod reserve_transfer_assets { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; pub type FeeAssetItem = ::core::primitive::u32; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReserveTransferAssets { @@ -40069,7 +45979,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::execute`]."] + #[doc = "Execute an XCM message from a local, signed, origin."] + #[doc = ""] + #[doc = "An event is deposited indicating whether `msg` could be executed completely or only"] + #[doc = "partially."] + #[doc = ""] + #[doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] + #[doc = "the maximum amount of weight that the message could take to be executed, then no"] + #[doc = "execution attempt will be made."] pub struct Execute { pub message: ::subxt::ext::subxt_core::alloc::boxed::Box, pub max_weight: execute::MaxWeight, @@ -40097,7 +46014,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_xcm_version`]."] + #[doc = "Extoll that a particular destination can be communicated with through a particular"] + #[doc = "version of XCM."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The destination that is being described."] + #[doc = "- `xcm_version`: The latest version of XCM that `location` supports."] pub struct ForceXcmVersion { pub location: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -40105,8 +46027,7 @@ pub mod api { } pub mod force_xcm_version { use super::runtime_types; - pub type Location = - runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Location = runtime_types::staging_xcm::v4::location::Location; pub type Version = ::core::primitive::u32; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceXcmVersion { @@ -40127,7 +46048,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_default_xcm_version`]."] + #[doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] + #[doc = "version a destination can accept is unknown)."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] pub struct ForceDefaultXcmVersion { pub maybe_xcm_version: force_default_xcm_version::MaybeXcmVersion, } @@ -40153,7 +46078,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_subscribe_version_notify`]."] + #[doc = "Ask a location to notify us regarding their XCM version and any changes to it."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The location to which we should subscribe for XCM version notifications."] pub struct ForceSubscribeVersionNotify { pub location: ::subxt::ext::subxt_core::alloc::boxed::Box< force_subscribe_version_notify::Location, @@ -40161,7 +46089,7 @@ pub mod api { } pub mod force_subscribe_version_notify { use super::runtime_types; - pub type Location = runtime_types::xcm::VersionedMultiLocation; + pub type Location = runtime_types::xcm::VersionedLocation; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSubscribeVersionNotify { const PALLET: &'static str = "XcmPallet"; @@ -40181,7 +46109,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_unsubscribe_version_notify`]."] + #[doc = "Require that a particular destination should no longer notify us regarding any XCM"] + #[doc = "version changes."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The location to which we are currently subscribed for XCM version"] + #[doc = " notifications which we no longer desire."] pub struct ForceUnsubscribeVersionNotify { pub location: ::subxt::ext::subxt_core::alloc::boxed::Box< force_unsubscribe_version_notify::Location, @@ -40189,7 +46122,7 @@ pub mod api { } pub mod force_unsubscribe_version_notify { use super::runtime_types; - pub type Location = runtime_types::xcm::VersionedMultiLocation; + pub type Location = runtime_types::xcm::VersionedLocation; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceUnsubscribeVersionNotify { const PALLET: &'static str = "XcmPallet"; @@ -40209,7 +46142,36 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::limited_reserve_transfer_assets`]."] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve."] + #[doc = ""] + #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] + #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] + #[doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] + #[doc = " to mint and deposit reserve-based assets to `beneficiary`."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] pub struct LimitedReserveTransferAssets { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box< limited_reserve_transfer_assets::Dest, @@ -40225,9 +46187,9 @@ pub mod api { } pub mod limited_reserve_transfer_assets { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; pub type FeeAssetItem = ::core::primitive::u32; pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; } @@ -40249,7 +46211,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::limited_teleport_assets`]."] + #[doc = "Teleport some assets from the local chain to some destination chain."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` chain."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] pub struct LimitedTeleportAssets { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -40264,9 +46243,9 @@ pub mod api { } pub mod limited_teleport_assets { use super::runtime_types; - pub type Dest = runtime_types::xcm::VersionedMultiLocation; - pub type Beneficiary = runtime_types::xcm::VersionedMultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; pub type FeeAssetItem = ::core::primitive::u32; pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; } @@ -40288,7 +46267,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_suspension`]."] + #[doc = "Set or unset the global suspension state of the XCM executor."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `suspended`: `true` to suspend, `false` to resume."] pub struct ForceSuspension { pub suspended: force_suspension::Suspended, } @@ -40300,10 +46282,210 @@ pub mod api { const PALLET: &'static str = "XcmPallet"; const CALL: &'static str = "force_suspension"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve, or through teleports."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] + #[doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] + #[doc = "operation will fail and the sent assets may be at risk."] + #[doc = ""] + #[doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] + #[doc = "to `dest`, no limitations imposed on `fees`."] + #[doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] + #[doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] + #[doc = " `beneficiary`."] + #[doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] + #[doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] + #[doc = " to `beneficiary`."] + #[doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] + #[doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] + #[doc = " and deposit reserve-based assets to `beneficiary`."] + #[doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] + #[doc = " assets and deposit them to `beneficiary`."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] + #[doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] + #[doc = " from relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] + pub struct TransferAssets { + pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, + pub beneficiary: + ::subxt::ext::subxt_core::alloc::boxed::Box, + pub assets: + ::subxt::ext::subxt_core::alloc::boxed::Box, + pub fee_asset_item: transfer_assets::FeeAssetItem, + pub weight_limit: transfer_assets::WeightLimit, + } + pub mod transfer_assets { + use super::runtime_types; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; + pub type FeeAssetItem = ::core::primitive::u32; + pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAssets { + const PALLET: &'static str = "XcmPallet"; + const CALL: &'static str = "transfer_assets"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] + #[doc = ""] + #[doc = "- `origin`: Anyone can call this extrinsic."] + #[doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] + #[doc = "was the latest when they were trapped."] + #[doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] + pub struct ClaimAssets { + pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box, + pub beneficiary: + ::subxt::ext::subxt_core::alloc::boxed::Box, + } + pub mod claim_assets { + use super::runtime_types; + pub type Assets = runtime_types::xcm::VersionedAssets; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimAssets { + const PALLET: &'static str = "XcmPallet"; + const CALL: &'static str = "claim_assets"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] + #[doc = "types for assets and fees."] + #[doc = ""] + #[doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] + #[doc = "provide the `assets_transfer_type` to be used for `assets`:"] + #[doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] + #[doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] + #[doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] + #[doc = " the remote `reserve` is Asset Hub."] + #[doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] + #[doc = " mint/teleport assets and deposit them to `beneficiary`."] + #[doc = ""] + #[doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] + #[doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] + #[doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] + #[doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] + #[doc = "specified through `fees_transfer_type`."] + #[doc = ""] + #[doc = "The caller needs to specify what should happen to the transferred assets once they reach"] + #[doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] + #[doc = "contains the instructions to execute on `dest` as a final step."] + #[doc = " This is usually as simple as:"] + #[doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] + #[doc = " but could be something more exotic like sending the `assets` even further."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] + #[doc = " parachain across a bridge to another ecosystem destination."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] + #[doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] + #[doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] + #[doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] + #[doc = " transfer, which also determines what happens to the assets on the destination chain."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] + pub struct TransferAssetsUsingTypeAndThen { + pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::Dest, + >, + pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::Assets, + >, + pub assets_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::AssetsTransferType, + >, + pub remote_fees_id: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::RemoteFeesId, + >, + pub fees_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::FeesTransferType, + >, + pub custom_xcm_on_dest: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::CustomXcmOnDest, + >, + pub weight_limit: transfer_assets_using_type_and_then::WeightLimit, + } + pub mod transfer_assets_using_type_and_then { + use super::runtime_types; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; + pub type AssetsTransferType = + runtime_types::staging_xcm_executor::traits::asset_transfer::TransferType; + pub type RemoteFeesId = runtime_types::xcm::VersionedAssetId; + pub type FeesTransferType = + runtime_types::staging_xcm_executor::traits::asset_transfer::TransferType; + pub type CustomXcmOnDest = runtime_types::xcm::VersionedXcm1; + pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAssetsUsingTypeAndThen { + const PALLET: &'static str = "XcmPallet"; + const CALL: &'static str = "transfer_assets_using_type_and_then"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::send`]."] pub fn send( &self, dest: types::send::Dest, @@ -40318,13 +46500,31 @@ pub mod api { message: ::subxt::ext::subxt_core::alloc::boxed::Box::new(message), }, [ - 147u8, 255u8, 86u8, 82u8, 17u8, 159u8, 225u8, 145u8, 220u8, 89u8, 71u8, - 23u8, 193u8, 249u8, 12u8, 70u8, 19u8, 140u8, 232u8, 97u8, 12u8, 220u8, - 113u8, 65u8, 4u8, 255u8, 138u8, 10u8, 231u8, 122u8, 67u8, 105u8, + 47u8, 63u8, 128u8, 176u8, 10u8, 137u8, 124u8, 238u8, 155u8, 37u8, + 193u8, 160u8, 83u8, 240u8, 21u8, 179u8, 169u8, 131u8, 27u8, 104u8, + 195u8, 208u8, 123u8, 14u8, 221u8, 12u8, 45u8, 81u8, 148u8, 76u8, 17u8, + 100u8, ], ) } - #[doc = "See [`Pallet::teleport_assets`]."] + #[doc = "Teleport some assets from the local chain to some destination chain."] + #[doc = ""] + #[doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] + #[doc = "with all fees taken as needed from the asset."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` chain."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] pub fn teleport_assets( &self, dest: types::teleport_assets::Dest, @@ -40345,13 +46545,42 @@ pub mod api { fee_asset_item, }, [ - 56u8, 144u8, 237u8, 60u8, 157u8, 5u8, 7u8, 129u8, 41u8, 149u8, 160u8, - 100u8, 233u8, 102u8, 181u8, 140u8, 115u8, 213u8, 29u8, 132u8, 16u8, - 30u8, 23u8, 82u8, 140u8, 134u8, 37u8, 87u8, 3u8, 99u8, 172u8, 42u8, + 124u8, 191u8, 118u8, 61u8, 45u8, 225u8, 97u8, 83u8, 198u8, 20u8, 139u8, + 117u8, 241u8, 1u8, 19u8, 54u8, 79u8, 181u8, 131u8, 112u8, 11u8, 118u8, + 147u8, 12u8, 89u8, 156u8, 123u8, 123u8, 195u8, 45u8, 50u8, 107u8, ], ) } - #[doc = "See [`Pallet::reserve_transfer_assets`]."] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve."] + #[doc = ""] + #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] + #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] + #[doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] + #[doc = " to mint and deposit reserve-based assets to `beneficiary`."] + #[doc = ""] + #[doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] + #[doc = "with all fees taken as needed from the asset."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] pub fn reserve_transfer_assets( &self, dest: types::reserve_transfer_assets::Dest, @@ -40373,13 +46602,21 @@ pub mod api { fee_asset_item, }, [ - 21u8, 167u8, 44u8, 22u8, 210u8, 73u8, 148u8, 7u8, 91u8, 108u8, 148u8, - 205u8, 170u8, 243u8, 142u8, 224u8, 205u8, 119u8, 252u8, 22u8, 203u8, - 32u8, 73u8, 200u8, 178u8, 14u8, 167u8, 147u8, 166u8, 55u8, 14u8, 231u8, + 97u8, 102u8, 230u8, 44u8, 135u8, 197u8, 43u8, 53u8, 182u8, 125u8, + 140u8, 141u8, 229u8, 73u8, 29u8, 55u8, 159u8, 104u8, 197u8, 20u8, + 124u8, 234u8, 250u8, 94u8, 133u8, 253u8, 189u8, 6u8, 216u8, 162u8, + 218u8, 89u8, ], ) } - #[doc = "See [`Pallet::execute`]."] + #[doc = "Execute an XCM message from a local, signed, origin."] + #[doc = ""] + #[doc = "An event is deposited indicating whether `msg` could be executed completely or only"] + #[doc = "partially."] + #[doc = ""] + #[doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] + #[doc = "the maximum amount of weight that the message could take to be executed, then no"] + #[doc = "execution attempt will be made."] pub fn execute( &self, message: types::execute::Message, @@ -40394,13 +46631,19 @@ pub mod api { max_weight, }, [ - 15u8, 97u8, 86u8, 111u8, 105u8, 116u8, 109u8, 206u8, 70u8, 8u8, 57u8, - 232u8, 133u8, 132u8, 30u8, 219u8, 34u8, 69u8, 0u8, 213u8, 98u8, 241u8, - 186u8, 93u8, 216u8, 39u8, 73u8, 24u8, 193u8, 87u8, 92u8, 31u8, + 71u8, 109u8, 92u8, 110u8, 198u8, 150u8, 140u8, 125u8, 248u8, 236u8, + 177u8, 156u8, 198u8, 223u8, 51u8, 15u8, 52u8, 240u8, 20u8, 200u8, 68u8, + 145u8, 36u8, 156u8, 159u8, 153u8, 125u8, 48u8, 181u8, 61u8, 53u8, + 208u8, ], ) } - #[doc = "See [`Pallet::force_xcm_version`]."] + #[doc = "Extoll that a particular destination can be communicated with through a particular"] + #[doc = "version of XCM."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The destination that is being described."] + #[doc = "- `xcm_version`: The latest version of XCM that `location` supports."] pub fn force_xcm_version( &self, location: types::force_xcm_version::Location, @@ -40415,13 +46658,17 @@ pub mod api { version, }, [ - 110u8, 11u8, 78u8, 255u8, 66u8, 2u8, 55u8, 108u8, 92u8, 151u8, 231u8, - 175u8, 75u8, 156u8, 34u8, 191u8, 0u8, 56u8, 104u8, 197u8, 70u8, 204u8, - 73u8, 234u8, 173u8, 251u8, 88u8, 226u8, 3u8, 136u8, 228u8, 136u8, + 69u8, 151u8, 198u8, 154u8, 69u8, 181u8, 41u8, 111u8, 145u8, 230u8, + 103u8, 42u8, 237u8, 91u8, 235u8, 6u8, 156u8, 65u8, 187u8, 48u8, 171u8, + 200u8, 49u8, 4u8, 9u8, 210u8, 229u8, 152u8, 187u8, 88u8, 80u8, 246u8, ], ) } - #[doc = "See [`Pallet::force_default_xcm_version`]."] + #[doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] + #[doc = "version a destination can accept is unknown)."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] pub fn force_default_xcm_version( &self, maybe_xcm_version: types::force_default_xcm_version::MaybeXcmVersion, @@ -40440,7 +46687,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_subscribe_version_notify`]."] + #[doc = "Ask a location to notify us regarding their XCM version and any changes to it."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The location to which we should subscribe for XCM version notifications."] pub fn force_subscribe_version_notify( &self, location: types::force_subscribe_version_notify::Location, @@ -40454,13 +46704,18 @@ pub mod api { location: ::subxt::ext::subxt_core::alloc::boxed::Box::new(location), }, [ - 112u8, 254u8, 138u8, 12u8, 203u8, 176u8, 251u8, 167u8, 223u8, 0u8, - 71u8, 148u8, 19u8, 179u8, 47u8, 96u8, 188u8, 189u8, 14u8, 172u8, 1u8, - 1u8, 192u8, 107u8, 137u8, 158u8, 22u8, 9u8, 138u8, 241u8, 32u8, 47u8, + 203u8, 171u8, 70u8, 130u8, 46u8, 63u8, 76u8, 50u8, 105u8, 23u8, 249u8, + 190u8, 115u8, 74u8, 70u8, 125u8, 132u8, 112u8, 138u8, 60u8, 33u8, 35u8, + 45u8, 29u8, 95u8, 103u8, 187u8, 182u8, 188u8, 196u8, 248u8, 152u8, ], ) } - #[doc = "See [`Pallet::force_unsubscribe_version_notify`]."] + #[doc = "Require that a particular destination should no longer notify us regarding any XCM"] + #[doc = "version changes."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The location to which we are currently subscribed for XCM version"] + #[doc = " notifications which we no longer desire."] pub fn force_unsubscribe_version_notify( &self, location: types::force_unsubscribe_version_notify::Location, @@ -40474,14 +46729,42 @@ pub mod api { location: ::subxt::ext::subxt_core::alloc::boxed::Box::new(location), }, [ - 205u8, 143u8, 230u8, 143u8, 166u8, 184u8, 53u8, 252u8, 118u8, 184u8, - 209u8, 227u8, 225u8, 184u8, 254u8, 244u8, 101u8, 56u8, 27u8, 128u8, - 40u8, 159u8, 178u8, 62u8, 63u8, 164u8, 59u8, 236u8, 1u8, 168u8, 202u8, - 42u8, + 6u8, 113u8, 168u8, 215u8, 233u8, 202u8, 249u8, 134u8, 131u8, 8u8, + 142u8, 203u8, 142u8, 95u8, 216u8, 70u8, 38u8, 99u8, 166u8, 97u8, 218u8, + 132u8, 247u8, 14u8, 42u8, 99u8, 4u8, 115u8, 200u8, 180u8, 213u8, 50u8, ], ) } - #[doc = "See [`Pallet::limited_reserve_transfer_assets`]."] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve."] + #[doc = ""] + #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] + #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] + #[doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] + #[doc = " to mint and deposit reserve-based assets to `beneficiary`."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] pub fn limited_reserve_transfer_assets( &self, dest: types::limited_reserve_transfer_assets::Dest, @@ -40505,14 +46788,31 @@ pub mod api { weight_limit, }, [ - 10u8, 139u8, 165u8, 239u8, 92u8, 178u8, 169u8, 62u8, 166u8, 236u8, - 50u8, 12u8, 196u8, 3u8, 233u8, 209u8, 3u8, 159u8, 184u8, 234u8, 171u8, - 46u8, 145u8, 134u8, 241u8, 155u8, 221u8, 173u8, 166u8, 94u8, 147u8, - 88u8, + 198u8, 66u8, 204u8, 162u8, 222u8, 246u8, 141u8, 165u8, 241u8, 62u8, + 43u8, 236u8, 56u8, 200u8, 54u8, 47u8, 174u8, 83u8, 167u8, 220u8, 174u8, + 111u8, 123u8, 202u8, 248u8, 232u8, 166u8, 80u8, 152u8, 223u8, 86u8, + 141u8, ], ) } - #[doc = "See [`Pallet::limited_teleport_assets`]."] + #[doc = "Teleport some assets from the local chain to some destination chain."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` chain."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] pub fn limited_teleport_assets( &self, dest: types::limited_teleport_assets::Dest, @@ -40536,14 +46836,16 @@ pub mod api { weight_limit, }, [ - 156u8, 205u8, 105u8, 18u8, 120u8, 130u8, 144u8, 67u8, 152u8, 188u8, - 109u8, 121u8, 4u8, 240u8, 123u8, 112u8, 72u8, 153u8, 2u8, 111u8, 183u8, - 170u8, 199u8, 82u8, 33u8, 117u8, 43u8, 133u8, 208u8, 44u8, 118u8, - 107u8, + 70u8, 61u8, 32u8, 43u8, 101u8, 104u8, 251u8, 60u8, 212u8, 124u8, 113u8, + 243u8, 241u8, 183u8, 5u8, 231u8, 209u8, 231u8, 136u8, 3u8, 145u8, + 242u8, 179u8, 171u8, 185u8, 185u8, 7u8, 34u8, 5u8, 203u8, 21u8, 210u8, ], ) } - #[doc = "See [`Pallet::force_suspension`]."] + #[doc = "Set or unset the global suspension state of the XCM executor."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `suspended`: `true` to suspend, `false` to resume."] pub fn force_suspension( &self, suspended: types::force_suspension::Suspended, @@ -40560,6 +46862,184 @@ pub mod api { ], ) } + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve, or through teleports."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] + #[doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] + #[doc = "operation will fail and the sent assets may be at risk."] + #[doc = ""] + #[doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] + #[doc = "to `dest`, no limitations imposed on `fees`."] + #[doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] + #[doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] + #[doc = " `beneficiary`."] + #[doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] + #[doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] + #[doc = " to `beneficiary`."] + #[doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] + #[doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] + #[doc = " and deposit reserve-based assets to `beneficiary`."] + #[doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] + #[doc = " assets and deposit them to `beneficiary`."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] + #[doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] + #[doc = " from relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] + pub fn transfer_assets( + &self, + dest: types::transfer_assets::Dest, + beneficiary: types::transfer_assets::Beneficiary, + assets: types::transfer_assets::Assets, + fee_asset_item: types::transfer_assets::FeeAssetItem, + weight_limit: types::transfer_assets::WeightLimit, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "XcmPallet", + "transfer_assets", + types::TransferAssets { + dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest), + beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + beneficiary, + ), + assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets), + fee_asset_item, + weight_limit, + }, + [ + 44u8, 155u8, 182u8, 37u8, 123u8, 148u8, 150u8, 191u8, 117u8, 32u8, + 16u8, 238u8, 121u8, 188u8, 217u8, 110u8, 10u8, 236u8, 174u8, 91u8, + 100u8, 201u8, 109u8, 109u8, 60u8, 177u8, 233u8, 66u8, 181u8, 191u8, + 105u8, 37u8, + ], + ) + } + #[doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] + #[doc = ""] + #[doc = "- `origin`: Anyone can call this extrinsic."] + #[doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] + #[doc = "was the latest when they were trapped."] + #[doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] + pub fn claim_assets( + &self, + assets: types::claim_assets::Assets, + beneficiary: types::claim_assets::Beneficiary, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "XcmPallet", + "claim_assets", + types::ClaimAssets { + assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets), + beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + beneficiary, + ), + }, + [ + 155u8, 23u8, 166u8, 172u8, 251u8, 171u8, 136u8, 240u8, 253u8, 51u8, + 164u8, 43u8, 141u8, 23u8, 189u8, 177u8, 33u8, 32u8, 212u8, 56u8, 174u8, + 165u8, 129u8, 7u8, 49u8, 217u8, 213u8, 214u8, 250u8, 91u8, 200u8, + 195u8, + ], + ) + } + #[doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] + #[doc = "types for assets and fees."] + #[doc = ""] + #[doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] + #[doc = "provide the `assets_transfer_type` to be used for `assets`:"] + #[doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] + #[doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] + #[doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] + #[doc = " the remote `reserve` is Asset Hub."] + #[doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] + #[doc = " mint/teleport assets and deposit them to `beneficiary`."] + #[doc = ""] + #[doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] + #[doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] + #[doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] + #[doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] + #[doc = "specified through `fees_transfer_type`."] + #[doc = ""] + #[doc = "The caller needs to specify what should happen to the transferred assets once they reach"] + #[doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] + #[doc = "contains the instructions to execute on `dest` as a final step."] + #[doc = " This is usually as simple as:"] + #[doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] + #[doc = " but could be something more exotic like sending the `assets` even further."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] + #[doc = " parachain across a bridge to another ecosystem destination."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] + #[doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] + #[doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] + #[doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] + #[doc = " transfer, which also determines what happens to the assets on the destination chain."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] + pub fn transfer_assets_using_type_and_then( + &self, + dest: types::transfer_assets_using_type_and_then::Dest, + assets: types::transfer_assets_using_type_and_then::Assets, + assets_transfer_type : types :: transfer_assets_using_type_and_then :: AssetsTransferType, + remote_fees_id: types::transfer_assets_using_type_and_then::RemoteFeesId, + fees_transfer_type : types :: transfer_assets_using_type_and_then :: FeesTransferType, + custom_xcm_on_dest: types::transfer_assets_using_type_and_then::CustomXcmOnDest, + weight_limit: types::transfer_assets_using_type_and_then::WeightLimit, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::TransferAssetsUsingTypeAndThen, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "XcmPallet", + "transfer_assets_using_type_and_then", + types::TransferAssetsUsingTypeAndThen { + dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest), + assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets), + assets_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + assets_transfer_type, + ), + remote_fees_id: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + remote_fees_id, + ), + fees_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + fees_transfer_type, + ), + custom_xcm_on_dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + custom_xcm_on_dest, + ), + weight_limit, + }, + [ + 128u8, 51u8, 64u8, 139u8, 106u8, 225u8, 14u8, 247u8, 44u8, 109u8, 11u8, + 15u8, 7u8, 235u8, 7u8, 195u8, 177u8, 94u8, 9u8, 107u8, 110u8, 174u8, + 154u8, 157u8, 20u8, 232u8, 38u8, 207u8, 228u8, 151u8, 10u8, 226u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -40582,7 +47062,7 @@ pub mod api { } pub mod attempted { use super::runtime_types; - pub type Outcome = runtime_types::xcm::v3::traits::Outcome; + pub type Outcome = runtime_types::staging_xcm::v4::traits::Outcome; } impl ::subxt::ext::subxt_core::events::StaticEvent for Attempted { const PALLET: &'static str = "XcmPallet"; @@ -40607,9 +47087,9 @@ pub mod api { } pub mod sent { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Message = runtime_types::xcm::v3::Xcm1; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Message = runtime_types::staging_xcm::v4::Xcm1; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for Sent { @@ -40635,7 +47115,7 @@ pub mod api { } pub mod unexpected_response { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::events::StaticEvent for UnexpectedResponse { @@ -40661,7 +47141,7 @@ pub mod api { pub mod response_ready { use super::runtime_types; pub type QueryId = ::core::primitive::u64; - pub type Response = runtime_types::xcm::v3::Response; + pub type Response = runtime_types::staging_xcm::v4::Response; } impl ::subxt::ext::subxt_core::events::StaticEvent for ResponseReady { const PALLET: &'static str = "XcmPallet"; @@ -40801,11 +47281,10 @@ pub mod api { } pub mod invalid_responder { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; - pub type ExpectedLocation = ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >; + pub type ExpectedLocation = + ::core::option::Option; } impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidResponder { const PALLET: &'static str = "XcmPallet"; @@ -40834,7 +47313,7 @@ pub mod api { } pub mod invalid_responder_version { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidResponderVersion { @@ -40882,8 +47361,8 @@ pub mod api { pub mod assets_trapped { use super::runtime_types; pub type Hash = ::subxt::ext::subxt_core::utils::H256; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Assets = runtime_types::xcm::VersionedAssets; } impl ::subxt::ext::subxt_core::events::StaticEvent for AssetsTrapped { const PALLET: &'static str = "XcmPallet"; @@ -40910,9 +47389,9 @@ pub mod api { } pub mod version_change_notified { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; pub type Result = ::core::primitive::u32; - pub type Cost = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for VersionChangeNotified { @@ -40937,7 +47416,7 @@ pub mod api { } pub mod supported_version_changed { use super::runtime_types; - pub type Location = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Location = runtime_types::staging_xcm::v4::location::Location; pub type Version = ::core::primitive::u32; } impl ::subxt::ext::subxt_core::events::StaticEvent for SupportedVersionChanged { @@ -40963,7 +47442,7 @@ pub mod api { } pub mod notify_target_send_fail { use super::runtime_types; - pub type Location = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Location = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; pub type Error = runtime_types::xcm::v3::traits::Error; } @@ -40989,7 +47468,7 @@ pub mod api { } pub mod notify_target_migration_fail { use super::runtime_types; - pub type Location = runtime_types::xcm::VersionedMultiLocation; + pub type Location = runtime_types::xcm::VersionedLocation; pub type QueryId = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::events::StaticEvent for NotifyTargetMigrationFail { @@ -41019,7 +47498,7 @@ pub mod api { } pub mod invalid_querier_version { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidQuerierVersion { @@ -41047,13 +47526,11 @@ pub mod api { } pub mod invalid_querier { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; pub type QueryId = ::core::primitive::u64; - pub type ExpectedQuerier = - runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type MaybeActualQuerier = ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >; + pub type ExpectedQuerier = runtime_types::staging_xcm::v4::location::Location; + pub type MaybeActualQuerier = + ::core::option::Option; } impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidQuerier { const PALLET: &'static str = "XcmPallet"; @@ -41078,8 +47555,8 @@ pub mod api { } pub mod version_notify_started { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Cost = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyStarted { @@ -41104,8 +47581,8 @@ pub mod api { } pub mod version_notify_requested { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Cost = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyRequested { @@ -41131,8 +47608,8 @@ pub mod api { } pub mod version_notify_unrequested { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Cost = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyUnrequested { @@ -41156,8 +47633,8 @@ pub mod api { } pub mod fees_paid { use super::runtime_types; - pub type Paying = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Fees = runtime_types::xcm::v3::multiasset::MultiAssets; + pub type Paying = runtime_types::staging_xcm::v4::location::Location; + pub type Fees = runtime_types::staging_xcm::v4::asset::Assets; } impl ::subxt::ext::subxt_core::events::StaticEvent for FeesPaid { const PALLET: &'static str = "XcmPallet"; @@ -41182,13 +47659,35 @@ pub mod api { pub mod assets_claimed { use super::runtime_types; pub type Hash = ::subxt::ext::subxt_core::utils::H256; - pub type Origin = runtime_types::staging_xcm::v3::multilocation::MultiLocation; - pub type Assets = runtime_types::xcm::VersionedMultiAssets; + pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Assets = runtime_types::xcm::VersionedAssets; } impl ::subxt::ext::subxt_core::events::StaticEvent for AssetsClaimed { const PALLET: &'static str = "XcmPallet"; const EVENT: &'static str = "AssetsClaimed"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A XCM version migration finished."] + pub struct VersionMigrationFinished { + pub version: version_migration_finished::Version, + } + pub mod version_migration_finished { + use super::runtime_types; + pub type Version = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for VersionMigrationFinished { + const PALLET: &'static str = "XcmPallet"; + const EVENT: &'static str = "VersionMigrationFinished"; + } } pub mod storage { use super::runtime_types; @@ -41217,13 +47716,13 @@ pub mod api { use super::runtime_types; pub type SupportedVersion = ::core::primitive::u32; pub type Param0 = ::core::primitive::u32; - pub type Param1 = runtime_types::xcm::VersionedMultiLocation; + pub type Param1 = runtime_types::xcm::VersionedLocation; } pub mod version_notifiers { use super::runtime_types; pub type VersionNotifiers = ::core::primitive::u64; pub type Param0 = ::core::primitive::u32; - pub type Param1 = runtime_types::xcm::VersionedMultiLocation; + pub type Param1 = runtime_types::xcm::VersionedLocation; } pub mod version_notify_targets { use super::runtime_types; @@ -41233,13 +47732,13 @@ pub mod api { ::core::primitive::u32, ); pub type Param0 = ::core::primitive::u32; - pub type Param1 = runtime_types::xcm::VersionedMultiLocation; + pub type Param1 = runtime_types::xcm::VersionedLocation; } pub mod version_discovery_queue { use super::runtime_types; pub type VersionDiscoveryQueue = runtime_types::bounded_collections::bounded_vec::BoundedVec26<( - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, ::core::primitive::u32, )>; } @@ -41261,7 +47760,7 @@ pub mod api { pub type LockedFungibles = runtime_types::bounded_collections::bounded_vec::BoundedVec28<( ::core::primitive::u128, - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, )>; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } @@ -41309,9 +47808,10 @@ pub mod api { "Queries", (), [ - 119u8, 5u8, 12u8, 91u8, 117u8, 240u8, 52u8, 192u8, 135u8, 139u8, 220u8, - 78u8, 207u8, 199u8, 71u8, 163u8, 100u8, 17u8, 6u8, 65u8, 200u8, 245u8, - 191u8, 82u8, 232u8, 128u8, 126u8, 70u8, 39u8, 63u8, 148u8, 219u8, + 246u8, 75u8, 240u8, 129u8, 106u8, 114u8, 99u8, 154u8, 176u8, 188u8, + 146u8, 125u8, 244u8, 103u8, 187u8, 171u8, 60u8, 119u8, 4u8, 90u8, 58u8, + 180u8, 48u8, 165u8, 145u8, 125u8, 227u8, 233u8, 11u8, 142u8, 122u8, + 3u8, ], ) } @@ -41335,15 +47835,16 @@ pub mod api { _0.borrow(), ), [ - 119u8, 5u8, 12u8, 91u8, 117u8, 240u8, 52u8, 192u8, 135u8, 139u8, 220u8, - 78u8, 207u8, 199u8, 71u8, 163u8, 100u8, 17u8, 6u8, 65u8, 200u8, 245u8, - 191u8, 82u8, 232u8, 128u8, 126u8, 70u8, 39u8, 63u8, 148u8, 219u8, + 246u8, 75u8, 240u8, 129u8, 106u8, 114u8, 99u8, 154u8, 176u8, 188u8, + 146u8, 125u8, 244u8, 103u8, 187u8, 171u8, 60u8, 119u8, 4u8, 90u8, 58u8, + 180u8, 48u8, 165u8, 145u8, 125u8, 227u8, 233u8, 11u8, 142u8, 122u8, + 3u8, ], ) } #[doc = " The existing asset traps."] #[doc = ""] - #[doc = " Key is the blake2 256 hash of (origin, versioned `MultiAssets`) pair. Value is the number of"] + #[doc = " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of"] #[doc = " times this pair has been trapped (usually just 1 if it exists at all)."] pub fn asset_traps_iter( &self, @@ -41367,7 +47868,7 @@ pub mod api { } #[doc = " The existing asset traps."] #[doc = ""] - #[doc = " Key is the blake2 256 hash of (origin, versioned `MultiAssets`) pair. Value is the number of"] + #[doc = " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of"] #[doc = " times this pair has been trapped (usually just 1 if it exists at all)."] pub fn asset_traps( &self, @@ -41432,9 +47933,10 @@ pub mod api { "SupportedVersion", (), [ - 144u8, 22u8, 91u8, 30u8, 139u8, 164u8, 95u8, 149u8, 97u8, 247u8, 12u8, - 212u8, 96u8, 16u8, 134u8, 236u8, 74u8, 57u8, 244u8, 169u8, 68u8, 63u8, - 111u8, 86u8, 65u8, 229u8, 104u8, 51u8, 44u8, 100u8, 47u8, 191u8, + 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, + 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, + 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, + 202u8, 24u8, ], ) } @@ -41458,9 +47960,10 @@ pub mod api { _0.borrow(), ), [ - 144u8, 22u8, 91u8, 30u8, 139u8, 164u8, 95u8, 149u8, 97u8, 247u8, 12u8, - 212u8, 96u8, 16u8, 134u8, 236u8, 74u8, 57u8, 244u8, 169u8, 68u8, 63u8, - 111u8, 86u8, 65u8, 229u8, 104u8, 51u8, 44u8, 100u8, 47u8, 191u8, + 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, + 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, + 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, + 202u8, 24u8, ], ) } @@ -41495,9 +47998,10 @@ pub mod api { ), ), [ - 144u8, 22u8, 91u8, 30u8, 139u8, 164u8, 95u8, 149u8, 97u8, 247u8, 12u8, - 212u8, 96u8, 16u8, 134u8, 236u8, 74u8, 57u8, 244u8, 169u8, 68u8, 63u8, - 111u8, 86u8, 65u8, 229u8, 104u8, 51u8, 44u8, 100u8, 47u8, 191u8, + 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, + 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, + 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, + 202u8, 24u8, ], ) } @@ -41516,9 +48020,10 @@ pub mod api { "VersionNotifiers", (), [ - 49u8, 190u8, 73u8, 67u8, 91u8, 69u8, 121u8, 206u8, 25u8, 82u8, 29u8, - 170u8, 157u8, 201u8, 168u8, 93u8, 181u8, 55u8, 226u8, 142u8, 136u8, - 46u8, 117u8, 208u8, 130u8, 90u8, 129u8, 39u8, 151u8, 92u8, 118u8, 75u8, + 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, + 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, + 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, + 201u8, 49u8, ], ) } @@ -41542,9 +48047,10 @@ pub mod api { _0.borrow(), ), [ - 49u8, 190u8, 73u8, 67u8, 91u8, 69u8, 121u8, 206u8, 25u8, 82u8, 29u8, - 170u8, 157u8, 201u8, 168u8, 93u8, 181u8, 55u8, 226u8, 142u8, 136u8, - 46u8, 117u8, 208u8, 130u8, 90u8, 129u8, 39u8, 151u8, 92u8, 118u8, 75u8, + 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, + 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, + 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, + 201u8, 49u8, ], ) } @@ -41579,9 +48085,10 @@ pub mod api { ), ), [ - 49u8, 190u8, 73u8, 67u8, 91u8, 69u8, 121u8, 206u8, 25u8, 82u8, 29u8, - 170u8, 157u8, 201u8, 168u8, 93u8, 181u8, 55u8, 226u8, 142u8, 136u8, - 46u8, 117u8, 208u8, 130u8, 90u8, 129u8, 39u8, 151u8, 92u8, 118u8, 75u8, + 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, + 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, + 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, + 201u8, 49u8, ], ) } @@ -41601,10 +48108,9 @@ pub mod api { "VersionNotifyTargets", (), [ - 1u8, 195u8, 40u8, 83u8, 216u8, 175u8, 241u8, 95u8, 42u8, 7u8, 85u8, - 253u8, 223u8, 241u8, 195u8, 41u8, 41u8, 21u8, 17u8, 171u8, 216u8, - 150u8, 39u8, 165u8, 215u8, 194u8, 201u8, 225u8, 179u8, 12u8, 52u8, - 173u8, + 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, + 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, + 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, ], ) } @@ -41629,10 +48135,9 @@ pub mod api { _0.borrow(), ), [ - 1u8, 195u8, 40u8, 83u8, 216u8, 175u8, 241u8, 95u8, 42u8, 7u8, 85u8, - 253u8, 223u8, 241u8, 195u8, 41u8, 41u8, 21u8, 17u8, 171u8, 216u8, - 150u8, 39u8, 165u8, 215u8, 194u8, 201u8, 225u8, 179u8, 12u8, 52u8, - 173u8, + 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, + 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, + 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, ], ) } @@ -41668,10 +48173,9 @@ pub mod api { ), ), [ - 1u8, 195u8, 40u8, 83u8, 216u8, 175u8, 241u8, 95u8, 42u8, 7u8, 85u8, - 253u8, 223u8, 241u8, 195u8, 41u8, 41u8, 21u8, 17u8, 171u8, 216u8, - 150u8, 39u8, 165u8, 215u8, 194u8, 201u8, 225u8, 179u8, 12u8, 52u8, - 173u8, + 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, + 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, + 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, ], ) } @@ -41692,9 +48196,10 @@ pub mod api { "VersionDiscoveryQueue", (), [ - 110u8, 87u8, 102u8, 193u8, 125u8, 129u8, 0u8, 221u8, 218u8, 229u8, - 101u8, 94u8, 74u8, 229u8, 246u8, 180u8, 113u8, 11u8, 15u8, 159u8, 98u8, - 90u8, 30u8, 112u8, 164u8, 236u8, 151u8, 220u8, 19u8, 83u8, 67u8, 248u8, + 95u8, 74u8, 97u8, 94u8, 40u8, 140u8, 175u8, 176u8, 224u8, 222u8, 83u8, + 199u8, 170u8, 102u8, 3u8, 77u8, 127u8, 208u8, 155u8, 122u8, 176u8, + 51u8, 15u8, 253u8, 231u8, 245u8, 91u8, 192u8, 60u8, 144u8, 101u8, + 168u8, ], ) } @@ -41734,9 +48239,10 @@ pub mod api { "RemoteLockedFungibles", (), [ - 74u8, 249u8, 83u8, 245u8, 44u8, 230u8, 152u8, 82u8, 4u8, 163u8, 230u8, - 121u8, 87u8, 143u8, 184u8, 12u8, 117u8, 112u8, 131u8, 160u8, 232u8, - 62u8, 175u8, 15u8, 81u8, 198u8, 182u8, 255u8, 37u8, 81u8, 6u8, 57u8, + 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, + 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, + 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, + 201u8, 150u8, ], ) } @@ -41760,9 +48266,10 @@ pub mod api { _0.borrow(), ), [ - 74u8, 249u8, 83u8, 245u8, 44u8, 230u8, 152u8, 82u8, 4u8, 163u8, 230u8, - 121u8, 87u8, 143u8, 184u8, 12u8, 117u8, 112u8, 131u8, 160u8, 232u8, - 62u8, 175u8, 15u8, 81u8, 198u8, 182u8, 255u8, 37u8, 81u8, 6u8, 57u8, + 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, + 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, + 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, + 201u8, 150u8, ], ) } @@ -41797,9 +48304,10 @@ pub mod api { ), ), [ - 74u8, 249u8, 83u8, 245u8, 44u8, 230u8, 152u8, 82u8, 4u8, 163u8, 230u8, - 121u8, 87u8, 143u8, 184u8, 12u8, 117u8, 112u8, 131u8, 160u8, 232u8, - 62u8, 175u8, 15u8, 81u8, 198u8, 182u8, 255u8, 37u8, 81u8, 6u8, 57u8, + 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, + 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, + 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, + 201u8, 150u8, ], ) } @@ -41841,9 +48349,10 @@ pub mod api { ), ), [ - 74u8, 249u8, 83u8, 245u8, 44u8, 230u8, 152u8, 82u8, 4u8, 163u8, 230u8, - 121u8, 87u8, 143u8, 184u8, 12u8, 117u8, 112u8, 131u8, 160u8, 232u8, - 62u8, 175u8, 15u8, 81u8, 198u8, 182u8, 255u8, 37u8, 81u8, 6u8, 57u8, + 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, + 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, + 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, + 201u8, 150u8, ], ) } @@ -41862,10 +48371,9 @@ pub mod api { "LockedFungibles", (), [ - 110u8, 220u8, 127u8, 176u8, 219u8, 23u8, 132u8, 36u8, 224u8, 187u8, - 25u8, 103u8, 126u8, 99u8, 34u8, 105u8, 57u8, 182u8, 162u8, 69u8, 24u8, - 67u8, 221u8, 103u8, 79u8, 139u8, 187u8, 162u8, 113u8, 109u8, 163u8, - 35u8, + 254u8, 234u8, 1u8, 27u8, 27u8, 32u8, 217u8, 24u8, 47u8, 30u8, 62u8, + 80u8, 86u8, 125u8, 120u8, 24u8, 143u8, 229u8, 161u8, 153u8, 240u8, + 246u8, 80u8, 15u8, 49u8, 189u8, 20u8, 204u8, 239u8, 198u8, 97u8, 174u8, ], ) } @@ -41889,10 +48397,9 @@ pub mod api { _0.borrow(), ), [ - 110u8, 220u8, 127u8, 176u8, 219u8, 23u8, 132u8, 36u8, 224u8, 187u8, - 25u8, 103u8, 126u8, 99u8, 34u8, 105u8, 57u8, 182u8, 162u8, 69u8, 24u8, - 67u8, 221u8, 103u8, 79u8, 139u8, 187u8, 162u8, 113u8, 109u8, 163u8, - 35u8, + 254u8, 234u8, 1u8, 27u8, 27u8, 32u8, 217u8, 24u8, 47u8, 30u8, 62u8, + 80u8, 86u8, 125u8, 120u8, 24u8, 143u8, 229u8, 161u8, 153u8, 240u8, + 246u8, 80u8, 15u8, 49u8, 189u8, 20u8, 204u8, 239u8, 198u8, 97u8, 174u8, ], ) } @@ -41920,6 +48427,823 @@ pub mod api { } } } + pub mod beefy { + use super::root_mod; + use super::runtime_types; + #[doc = "The `Error` enum of this pallet."] + pub type Error = runtime_types::pallet_beefy::pallet::Error; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::pallet_beefy::pallet::Call; + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + pub struct ReportEquivocation { + pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + report_equivocation::EquivocationProof, + >, + pub key_owner_proof: report_equivocation::KeyOwnerProof, + } + pub mod report_equivocation { + use super::runtime_types; + pub type EquivocationProof = + runtime_types::sp_consensus_beefy::EquivocationProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, + >; + pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocation { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "report_equivocation"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + pub struct ReportEquivocationUnsigned { + pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + report_equivocation_unsigned::EquivocationProof, + >, + pub key_owner_proof: report_equivocation_unsigned::KeyOwnerProof, + } + pub mod report_equivocation_unsigned { + use super::runtime_types; + pub type EquivocationProof = + runtime_types::sp_consensus_beefy::EquivocationProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, + >; + pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocationUnsigned { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "report_equivocation_unsigned"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"] + #[doc = "future."] + #[doc = ""] + #[doc = "Note: `delay_in_blocks` has to be at least 1."] + pub struct SetNewGenesis { + pub delay_in_blocks: set_new_genesis::DelayInBlocks, + } + pub mod set_new_genesis { + use super::runtime_types; + pub type DelayInBlocks = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNewGenesis { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "set_new_genesis"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + pub fn report_equivocation( + &self, + equivocation_proof: types::report_equivocation::EquivocationProof, + key_owner_proof: types::report_equivocation::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "report_equivocation", + types::ReportEquivocation { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + equivocation_proof, + ), + key_owner_proof, + }, + [ + 196u8, 92u8, 30u8, 54u8, 79u8, 96u8, 54u8, 238u8, 29u8, 255u8, 252u8, + 236u8, 8u8, 104u8, 107u8, 190u8, 115u8, 54u8, 232u8, 58u8, 145u8, + 191u8, 110u8, 12u8, 165u8, 154u8, 48u8, 216u8, 178u8, 99u8, 123u8, + 218u8, + ], + ) + } + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + pub fn report_equivocation_unsigned( + &self, + equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, + key_owner_proof: types::report_equivocation_unsigned::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ReportEquivocationUnsigned, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "report_equivocation_unsigned", + types::ReportEquivocationUnsigned { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + equivocation_proof, + ), + key_owner_proof, + }, + [ + 106u8, 120u8, 157u8, 177u8, 251u8, 12u8, 39u8, 235u8, 94u8, 241u8, + 75u8, 204u8, 100u8, 82u8, 246u8, 168u8, 238u8, 155u8, 163u8, 20u8, + 83u8, 81u8, 77u8, 206u8, 10u8, 159u8, 196u8, 223u8, 11u8, 98u8, 128u8, + 97u8, + ], + ) + } + #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"] + #[doc = "future."] + #[doc = ""] + #[doc = "Note: `delay_in_blocks` has to be at least 1."] + pub fn set_new_genesis( + &self, + delay_in_blocks: types::set_new_genesis::DelayInBlocks, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "set_new_genesis", + types::SetNewGenesis { delay_in_blocks }, + [ + 147u8, 6u8, 252u8, 43u8, 77u8, 91u8, 170u8, 45u8, 112u8, 155u8, 158u8, + 79u8, 1u8, 116u8, 162u8, 146u8, 181u8, 9u8, 171u8, 48u8, 198u8, 210u8, + 243u8, 64u8, 229u8, 35u8, 28u8, 177u8, 144u8, 22u8, 165u8, 163u8, + ], + ) + } + } + } + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod authorities { + use super::runtime_types; + pub type Authorities = + runtime_types::bounded_collections::bounded_vec::BoundedVec29< + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >; + } + pub mod validator_set_id { + use super::runtime_types; + pub type ValidatorSetId = ::core::primitive::u64; + } + pub mod next_authorities { + use super::runtime_types; + pub type NextAuthorities = + runtime_types::bounded_collections::bounded_vec::BoundedVec29< + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >; + } + pub mod set_id_session { + use super::runtime_types; + pub type SetIdSession = ::core::primitive::u32; + pub type Param0 = ::core::primitive::u64; + } + pub mod genesis_block { + use super::runtime_types; + pub type GenesisBlock = ::core::option::Option<::core::primitive::u32>; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " The current authorities set"] + pub fn authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::authorities::Authorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "Authorities", + (), + [ + 135u8, 146u8, 24u8, 144u8, 245u8, 251u8, 253u8, 63u8, 44u8, 46u8, 72u8, + 115u8, 190u8, 93u8, 201u8, 244u8, 80u8, 80u8, 156u8, 171u8, 69u8, + 126u8, 67u8, 51u8, 196u8, 136u8, 93u8, 176u8, 111u8, 247u8, 19u8, + 161u8, + ], + ) + } + #[doc = " The current validator set id"] + pub fn validator_set_id( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::validator_set_id::ValidatorSetId, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "ValidatorSetId", + (), + [ + 168u8, 84u8, 23u8, 134u8, 153u8, 30u8, 183u8, 176u8, 206u8, 100u8, + 109u8, 86u8, 109u8, 126u8, 146u8, 175u8, 173u8, 1u8, 253u8, 42u8, + 122u8, 207u8, 71u8, 4u8, 145u8, 83u8, 148u8, 29u8, 243u8, 52u8, 29u8, + 78u8, + ], + ) + } + #[doc = " Authorities set scheduled to be used with the next session"] + pub fn next_authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::next_authorities::NextAuthorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "NextAuthorities", + (), + [ + 183u8, 185u8, 111u8, 92u8, 70u8, 221u8, 225u8, 184u8, 218u8, 97u8, + 108u8, 66u8, 60u8, 148u8, 40u8, 73u8, 236u8, 28u8, 169u8, 32u8, 202u8, + 125u8, 238u8, 246u8, 210u8, 51u8, 25u8, 61u8, 220u8, 195u8, 156u8, + 217u8, + ], + ) + } + #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"] + #[doc = " members were responsible."] + #[doc = ""] + #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"] + #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"] + #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"] + #[doc = " was the owner of a given key on a given session, and what the active set ID was"] + #[doc = " during that session."] + #[doc = ""] + #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."] + pub fn set_id_session_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::set_id_session::SetIdSession, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "SetIdSession", + (), + [ + 47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8, + 65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8, + 238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8, + ], + ) + } + #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"] + #[doc = " members were responsible."] + #[doc = ""] + #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"] + #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"] + #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"] + #[doc = " was the owner of a given key on a given session, and what the active set ID was"] + #[doc = " during that session."] + #[doc = ""] + #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."] + pub fn set_id_session( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::set_id_session::Param0, + >, + types::set_id_session::SetIdSession, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "SetIdSession", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8, + 65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8, + 238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8, + ], + ) + } + #[doc = " Block number where BEEFY consensus is enabled/started."] + #[doc = " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively"] + #[doc = " restarted from the newly set block number."] + pub fn genesis_block( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::genesis_block::GenesisBlock, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "GenesisBlock", + (), + [ + 198u8, 155u8, 11u8, 240u8, 189u8, 245u8, 159u8, 127u8, 55u8, 33u8, + 48u8, 29u8, 209u8, 119u8, 163u8, 24u8, 28u8, 22u8, 163u8, 163u8, 124u8, + 88u8, 126u8, 4u8, 193u8, 158u8, 29u8, 243u8, 212u8, 4u8, 41u8, 22u8, + ], + ) + } + } + } + pub mod constants { + use super::runtime_types; + pub struct ConstantsApi; + impl ConstantsApi { + #[doc = " The maximum number of authorities that can be added."] + pub fn max_authorities( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Beefy", + "MaxAuthorities", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + #[doc = " The maximum number of nominators for each validator."] + pub fn max_nominators( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Beefy", + "MaxNominators", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + #[doc = " The maximum number of entries to keep in the set id to session index mapping."] + #[doc = ""] + #[doc = " Since the `SetIdSession` map is only used for validating equivocations this"] + #[doc = " value should relate to the bonding duration of whatever staking system is"] + #[doc = " being used (if any). If equivocation handling is not enabled then this value"] + #[doc = " can be zero."] + pub fn max_set_id_session_entries( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u64, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Beefy", + "MaxSetIdSessionEntries", + [ + 128u8, 214u8, 205u8, 242u8, 181u8, 142u8, 124u8, 231u8, 190u8, 146u8, + 59u8, 226u8, 157u8, 101u8, 103u8, 117u8, 249u8, 65u8, 18u8, 191u8, + 103u8, 119u8, 53u8, 85u8, 81u8, 96u8, 220u8, 42u8, 184u8, 239u8, 42u8, + 246u8, + ], + ) + } + } + } + } + pub mod mmr { + use super::root_mod; + use super::runtime_types; + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod root_hash { + use super::runtime_types; + pub type RootHash = ::subxt::ext::subxt_core::utils::H256; + } + pub mod number_of_leaves { + use super::runtime_types; + pub type NumberOfLeaves = ::core::primitive::u64; + } + pub mod nodes { + use super::runtime_types; + pub type Nodes = ::subxt::ext::subxt_core::utils::H256; + pub type Param0 = ::core::primitive::u64; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Latest MMR Root hash."] + pub fn root_hash( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::root_hash::RootHash, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Mmr", + "RootHash", + (), + [ + 111u8, 206u8, 173u8, 92u8, 67u8, 49u8, 150u8, 113u8, 90u8, 245u8, 38u8, + 254u8, 76u8, 250u8, 167u8, 66u8, 130u8, 129u8, 251u8, 220u8, 172u8, + 229u8, 162u8, 251u8, 36u8, 227u8, 43u8, 189u8, 7u8, 106u8, 23u8, 13u8, + ], + ) + } + #[doc = " Current size of the MMR (number of leaves)."] + pub fn number_of_leaves( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::number_of_leaves::NumberOfLeaves, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Mmr", + "NumberOfLeaves", + (), + [ + 123u8, 58u8, 149u8, 174u8, 85u8, 45u8, 20u8, 115u8, 241u8, 0u8, 51u8, + 174u8, 234u8, 60u8, 230u8, 59u8, 237u8, 144u8, 170u8, 32u8, 4u8, 0u8, + 34u8, 163u8, 238u8, 205u8, 93u8, 208u8, 53u8, 38u8, 141u8, 195u8, + ], + ) + } + #[doc = " Hashes of the nodes in the MMR."] + #[doc = ""] + #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"] + #[doc = " are pruned and only stored in the Offchain DB."] + pub fn nodes_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::nodes::Nodes, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Mmr", + "Nodes", + (), + [ + 27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8, + 206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8, + 249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8, + ], + ) + } + #[doc = " Hashes of the nodes in the MMR."] + #[doc = ""] + #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"] + #[doc = " are pruned and only stored in the Offchain DB."] + pub fn nodes( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::nodes::Param0, + >, + types::nodes::Nodes, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Mmr", + "Nodes", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8, + 206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8, + 249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8, + ], + ) + } + } + } + } + pub mod mmr_leaf { + use super::root_mod; + use super::runtime_types; + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod beefy_authorities { + use super::runtime_types; + pub type BeefyAuthorities = + runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet< + ::subxt::ext::subxt_core::utils::H256, + >; + } + pub mod beefy_next_authorities { + use super::runtime_types; + pub type BeefyNextAuthorities = + runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet< + ::subxt::ext::subxt_core::utils::H256, + >; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Details of current BEEFY authority set."] + pub fn beefy_authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::beefy_authorities::BeefyAuthorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "MmrLeaf", + "BeefyAuthorities", + (), + [ + 128u8, 35u8, 176u8, 79u8, 224u8, 58u8, 214u8, 234u8, 231u8, 71u8, + 227u8, 153u8, 180u8, 189u8, 66u8, 44u8, 47u8, 174u8, 0u8, 83u8, 121u8, + 182u8, 226u8, 44u8, 224u8, 173u8, 237u8, 102u8, 231u8, 146u8, 110u8, + 7u8, + ], + ) + } + #[doc = " Details of next BEEFY authority set."] + #[doc = ""] + #[doc = " This storage entry is used as cache for calls to `update_beefy_next_authority_set`."] + pub fn beefy_next_authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::beefy_next_authorities::BeefyNextAuthorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "MmrLeaf", + "BeefyNextAuthorities", + (), + [ + 97u8, 71u8, 52u8, 111u8, 120u8, 251u8, 183u8, 155u8, 177u8, 100u8, + 236u8, 142u8, 204u8, 117u8, 95u8, 40u8, 201u8, 36u8, 32u8, 82u8, 38u8, + 234u8, 135u8, 39u8, 224u8, 69u8, 94u8, 85u8, 12u8, 89u8, 97u8, 218u8, + ], + ) + } + } + } + } + pub mod identity_migrator { + use super::root_mod; + use super::runtime_types; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::polkadot_runtime_common::identity_migrator::pallet::Call; + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"] + #[doc = "deposits held and removing storage items associated with `who`."] + pub struct ReapIdentity { + pub who: reap_identity::Who, + } + pub mod reap_identity { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReapIdentity { + const PALLET: &'static str = "IdentityMigrator"; + const CALL: &'static str = "reap_identity"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"] + #[doc = "Instruction."] + pub struct PokeDeposit { + pub who: poke_deposit::Who, + } + pub mod poke_deposit { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit { + const PALLET: &'static str = "IdentityMigrator"; + const CALL: &'static str = "poke_deposit"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"] + #[doc = "deposits held and removing storage items associated with `who`."] + pub fn reap_identity( + &self, + who: types::reap_identity::Who, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "IdentityMigrator", + "reap_identity", + types::ReapIdentity { who }, + [ + 187u8, 110u8, 202u8, 220u8, 54u8, 240u8, 242u8, 171u8, 5u8, 83u8, + 129u8, 93u8, 213u8, 208u8, 21u8, 236u8, 121u8, 128u8, 127u8, 121u8, + 153u8, 118u8, 232u8, 44u8, 20u8, 124u8, 214u8, 185u8, 249u8, 182u8, + 136u8, 96u8, + ], + ) + } + #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"] + #[doc = "Instruction."] + pub fn poke_deposit( + &self, + who: types::poke_deposit::Who, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "IdentityMigrator", + "poke_deposit", + types::PokeDeposit { who }, + [ + 42u8, 67u8, 168u8, 124u8, 75u8, 32u8, 143u8, 173u8, 14u8, 28u8, 76u8, + 35u8, 196u8, 255u8, 250u8, 33u8, 128u8, 159u8, 132u8, 124u8, 51u8, + 243u8, 166u8, 55u8, 208u8, 101u8, 188u8, 133u8, 36u8, 18u8, 119u8, + 146u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::polkadot_runtime_common::identity_migrator::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The identity and all sub accounts were reaped for `who`."] + pub struct IdentityReaped { + pub who: identity_reaped::Who, + } + pub mod identity_reaped { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for IdentityReaped { + const PALLET: &'static str = "IdentityMigrator"; + const EVENT: &'static str = "IdentityReaped"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The deposits held for `who` were updated. `identity` is the new deposit held for"] + #[doc = "identity info, and `subs` is the new deposit held for the sub-accounts."] + pub struct DepositUpdated { + pub who: deposit_updated::Who, + pub identity: deposit_updated::Identity, + pub subs: deposit_updated::Subs, + } + pub mod deposit_updated { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Identity = ::core::primitive::u128; + pub type Subs = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for DepositUpdated { + const PALLET: &'static str = "IdentityMigrator"; + const EVENT: &'static str = "DepositUpdated"; + } + } + } pub mod paras_sudo_wrapper { use super::root_mod; use super::runtime_types; @@ -41947,7 +49271,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_schedule_para_initialize`]."] + #[doc = "Schedule a para to be initialized at the start of the next session."] + #[doc = ""] + #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"] + #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"] + #[doc = "running coretime chain required."] pub struct SudoScheduleParaInitialize { pub id: sudo_schedule_para_initialize::Id, pub genesis: sudo_schedule_para_initialize::Genesis, @@ -41976,7 +49304,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_schedule_para_cleanup`]."] + #[doc = "Schedule a para to be cleaned up at the start of the next session."] pub struct SudoScheduleParaCleanup { pub id: sudo_schedule_para_cleanup::Id, } @@ -42002,7 +49330,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_schedule_parathread_upgrade`]."] + #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"] pub struct SudoScheduleParathreadUpgrade { pub id: sudo_schedule_parathread_upgrade::Id, } @@ -42028,7 +49356,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_schedule_parachain_downgrade`]."] + #[doc = "Downgrade a lease holding parachain to an on-demand parachain"] pub struct SudoScheduleParachainDowngrade { pub id: sudo_schedule_parachain_downgrade::Id, } @@ -42054,7 +49382,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_queue_downward_xcm`]."] + #[doc = "Send a downward XCM to the given para."] + #[doc = ""] + #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"] + #[doc = "size `config.max_downward_message_size`."] pub struct SudoQueueDownwardXcm { pub id: sudo_queue_downward_xcm::Id, pub xcm: @@ -42083,7 +49414,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_establish_hrmp_channel`]."] + #[doc = "Forcefully establish a channel from the sender to the recipient."] + #[doc = ""] + #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"] + #[doc = "`Hrmp::hrmp_accept_open_channel`."] pub struct SudoEstablishHrmpChannel { pub sender: sudo_establish_hrmp_channel::Sender, pub recipient: sudo_establish_hrmp_channel::Recipient, @@ -42105,7 +49439,11 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::sudo_schedule_para_initialize`]."] + #[doc = "Schedule a para to be initialized at the start of the next session."] + #[doc = ""] + #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"] + #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"] + #[doc = "running coretime chain required."] pub fn sudo_schedule_para_initialize( &self, id: types::sudo_schedule_para_initialize::Id, @@ -42124,7 +49462,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_schedule_para_cleanup`]."] + #[doc = "Schedule a para to be cleaned up at the start of the next session."] pub fn sudo_schedule_para_cleanup( &self, id: types::sudo_schedule_para_cleanup::Id, @@ -42142,7 +49480,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_schedule_parathread_upgrade`]."] + #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"] pub fn sudo_schedule_parathread_upgrade( &self, id: types::sudo_schedule_parathread_upgrade::Id, @@ -42161,7 +49499,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_schedule_parachain_downgrade`]."] + #[doc = "Downgrade a lease holding parachain to an on-demand parachain"] pub fn sudo_schedule_parachain_downgrade( &self, id: types::sudo_schedule_parachain_downgrade::Id, @@ -42180,7 +49518,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_queue_downward_xcm`]."] + #[doc = "Send a downward XCM to the given para."] + #[doc = ""] + #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"] + #[doc = "size `config.max_downward_message_size`."] pub fn sudo_queue_downward_xcm( &self, id: types::sudo_queue_downward_xcm::Id, @@ -42195,14 +49536,16 @@ pub mod api { xcm: ::subxt::ext::subxt_core::alloc::boxed::Box::new(xcm), }, [ - 144u8, 179u8, 113u8, 39u8, 46u8, 58u8, 218u8, 220u8, 98u8, 232u8, - 121u8, 119u8, 127u8, 99u8, 52u8, 189u8, 232u8, 28u8, 233u8, 54u8, - 122u8, 206u8, 155u8, 7u8, 88u8, 167u8, 203u8, 251u8, 96u8, 156u8, 23u8, - 54u8, + 35u8, 59u8, 126u8, 248u8, 211u8, 246u8, 239u8, 67u8, 252u8, 100u8, + 231u8, 46u8, 197u8, 83u8, 150u8, 54u8, 215u8, 188u8, 76u8, 193u8, 60u8, + 38u8, 251u8, 162u8, 19u8, 15u8, 214u8, 51u8, 24u8, 2u8, 9u8, 116u8, ], ) } - #[doc = "See [`Pallet::sudo_establish_hrmp_channel`]."] + #[doc = "Forcefully establish a channel from the sender to the recipient."] + #[doc = ""] + #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"] + #[doc = "`Hrmp::hrmp_accept_open_channel`."] pub fn sudo_establish_hrmp_channel( &self, sender: types::sudo_establish_hrmp_channel::Sender, @@ -42258,7 +49601,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::assign_perm_parachain_slot`]."] + #[doc = "Assign a permanent parachain slot and immediately create a lease for it."] pub struct AssignPermParachainSlot { pub id: assign_perm_parachain_slot::Id, } @@ -42284,7 +49627,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::assign_temp_parachain_slot`]."] + #[doc = "Assign a temporary parachain slot. The function tries to create a lease for it"] + #[doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"] + #[doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."] pub struct AssignTempParachainSlot { pub id: assign_temp_parachain_slot::Id, pub lease_period_start: assign_temp_parachain_slot::LeasePeriodStart, @@ -42312,7 +49657,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unassign_parachain_slot`]."] + #[doc = "Unassign a permanent or temporary parachain slot"] pub struct UnassignParachainSlot { pub id: unassign_parachain_slot::Id, } @@ -42338,7 +49683,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_permanent_slots`]."] + #[doc = "Sets the storage value [`MaxPermanentSlots`]."] pub struct SetMaxPermanentSlots { pub slots: set_max_permanent_slots::Slots, } @@ -42364,7 +49709,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_temporary_slots`]."] + #[doc = "Sets the storage value [`MaxTemporarySlots`]."] pub struct SetMaxTemporarySlots { pub slots: set_max_temporary_slots::Slots, } @@ -42379,7 +49724,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::assign_perm_parachain_slot`]."] + #[doc = "Assign a permanent parachain slot and immediately create a lease for it."] pub fn assign_perm_parachain_slot( &self, id: types::assign_perm_parachain_slot::Id, @@ -42397,7 +49742,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::assign_temp_parachain_slot`]."] + #[doc = "Assign a temporary parachain slot. The function tries to create a lease for it"] + #[doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"] + #[doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."] pub fn assign_temp_parachain_slot( &self, id: types::assign_temp_parachain_slot::Id, @@ -42420,7 +49767,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unassign_parachain_slot`]."] + #[doc = "Unassign a permanent or temporary parachain slot"] pub fn unassign_parachain_slot( &self, id: types::unassign_parachain_slot::Id, @@ -42439,7 +49786,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_permanent_slots`]."] + #[doc = "Sets the storage value [`MaxPermanentSlots`]."] pub fn set_max_permanent_slots( &self, slots: types::set_max_permanent_slots::Slots, @@ -42456,7 +49803,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_temporary_slots`]."] + #[doc = "Sets the storage value [`MaxTemporarySlots`]."] pub fn set_max_temporary_slots( &self, slots: types::set_max_temporary_slots::Slots, @@ -42893,7 +50240,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::register_validators`]."] + #[doc = "Add new validators to the set."] + #[doc = ""] + #[doc = "The new validators will be active from current session + 2."] pub struct RegisterValidators { pub validators: register_validators::Validators, } @@ -42921,7 +50270,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::deregister_validators`]."] + #[doc = "Remove validators from the set."] + #[doc = ""] + #[doc = "The removed validators will be deactivated from current session + 2."] pub struct DeregisterValidators { pub validators: deregister_validators::Validators, } @@ -42938,7 +50289,9 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::register_validators`]."] + #[doc = "Add new validators to the set."] + #[doc = ""] + #[doc = "The new validators will be active from current session + 2."] pub fn register_validators( &self, validators: types::register_validators::Validators, @@ -42956,7 +50309,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::deregister_validators`]."] + #[doc = "Remove validators from the set."] + #[doc = ""] + #[doc = "The removed validators will be deactivated from current session + 2."] pub fn deregister_validators( &self, validators: types::deregister_validators::Validators, @@ -43117,7 +50472,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::control_auto_migration`]."] + #[doc = "Control the automatic migration."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."] pub struct ControlAutoMigration { pub maybe_config: control_auto_migration::MaybeConfig, } @@ -43145,7 +50502,27 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::continue_migrate`]."] + #[doc = "Continue the migration for the given `limits`."] + #[doc = ""] + #[doc = "The dispatch origin of this call can be any signed account."] + #[doc = ""] + #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"] + #[doc = "Upon successful execution, the transaction fee is returned."] + #[doc = ""] + #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"] + #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"] + #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"] + #[doc = "`real_size_upper` bytes of read data."] + #[doc = ""] + #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"] + #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"] + #[doc = "from caller, saying that they believed `witness_task` was the last state of the"] + #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"] + #[doc = "holds. In case `witness_task` does not match, the transaction fails."] + #[doc = ""] + #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"] + #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"] + #[doc = "`size` limit can always be overwritten."] pub struct ContinueMigrate { pub limits: continue_migrate::Limits, pub real_size_upper: continue_migrate::RealSizeUpper, @@ -43177,7 +50554,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::migrate_custom_top`]."] + #[doc = "Migrate the list of top keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] pub struct MigrateCustomTop { pub keys: migrate_custom_top::Keys, pub witness_size: migrate_custom_top::WitnessSize, @@ -43207,7 +50587,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::migrate_custom_child`]."] + #[doc = "Migrate the list of child keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "All of the given child keys must be present under one `child_root`."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] pub struct MigrateCustomChild { pub root: migrate_custom_child::Root, pub child_keys: migrate_custom_child::ChildKeys, @@ -43240,7 +50625,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_signed_max_limits`]."] + #[doc = "Set the maximum limit of the signed migration."] pub struct SetSignedMaxLimits { pub limits: set_signed_max_limits::Limits, } @@ -43267,7 +50652,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_progress`]."] + #[doc = "Forcefully set the progress the running migration."] + #[doc = ""] + #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"] + #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"] + #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"] + #[doc = "used, so probably it is already migrated."] + #[doc = ""] + #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"] + #[doc = "process."] pub struct ForceSetProgress { pub progress_top: force_set_progress::ProgressTop, pub progress_child: force_set_progress::ProgressChild, @@ -43286,7 +50679,9 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::control_auto_migration`]."] + #[doc = "Control the automatic migration."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."] pub fn control_auto_migration( &self, maybe_config: types::control_auto_migration::MaybeConfig, @@ -43303,7 +50698,27 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::continue_migrate`]."] + #[doc = "Continue the migration for the given `limits`."] + #[doc = ""] + #[doc = "The dispatch origin of this call can be any signed account."] + #[doc = ""] + #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"] + #[doc = "Upon successful execution, the transaction fee is returned."] + #[doc = ""] + #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"] + #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"] + #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"] + #[doc = "`real_size_upper` bytes of read data."] + #[doc = ""] + #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"] + #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"] + #[doc = "from caller, saying that they believed `witness_task` was the last state of the"] + #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"] + #[doc = "holds. In case `witness_task` does not match, the transaction fails."] + #[doc = ""] + #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"] + #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"] + #[doc = "`size` limit can always be overwritten."] pub fn continue_migrate( &self, limits: types::continue_migrate::Limits, @@ -43327,7 +50742,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::migrate_custom_top`]."] + #[doc = "Migrate the list of top keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] pub fn migrate_custom_top( &self, keys: types::migrate_custom_top::Keys, @@ -43345,7 +50763,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::migrate_custom_child`]."] + #[doc = "Migrate the list of child keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "All of the given child keys must be present under one `child_root`."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] pub fn migrate_custom_child( &self, root: types::migrate_custom_child::Root, @@ -43368,7 +50791,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_signed_max_limits`]."] + #[doc = "Set the maximum limit of the signed migration."] pub fn set_signed_max_limits( &self, limits: types::set_signed_max_limits::Limits, @@ -43385,7 +50808,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_set_progress`]."] + #[doc = "Forcefully set the progress the running migration."] + #[doc = ""] + #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"] + #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"] + #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"] + #[doc = "used, so probably it is already migrated."] + #[doc = ""] + #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"] + #[doc = "process."] pub fn force_set_progress( &self, progress_top: types::force_set_progress::ProgressTop, @@ -43624,7 +51055,7 @@ pub mod api { #[doc = " - [`frame_support::storage::StorageDoubleMap`]: 96 byte"] #[doc = ""] #[doc = " For more info see"] - #[doc = " "] + #[doc = " "] pub fn max_key_len( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -43644,10 +51075,126 @@ pub mod api { } } } + pub mod root_testing { + use super::root_mod; + use super::runtime_types; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::pallet_root_testing::pallet::Call; + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "A dispatch that will fill the block weight up to the given ratio."] + pub struct FillBlock { + pub ratio: fill_block::Ratio, + } + pub mod fill_block { + use super::runtime_types; + pub type Ratio = runtime_types::sp_arithmetic::per_things::Perbill; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for FillBlock { + const PALLET: &'static str = "RootTesting"; + const CALL: &'static str = "fill_block"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct TriggerDefensive; + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TriggerDefensive { + const PALLET: &'static str = "RootTesting"; + const CALL: &'static str = "trigger_defensive"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "A dispatch that will fill the block weight up to the given ratio."] + pub fn fill_block( + &self, + ratio: types::fill_block::Ratio, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "RootTesting", + "fill_block", + types::FillBlock { ratio }, + [ + 164u8, 37u8, 43u8, 91u8, 125u8, 34u8, 208u8, 126u8, 67u8, 94u8, 184u8, + 240u8, 68u8, 208u8, 41u8, 206u8, 172u8, 95u8, 111u8, 115u8, 9u8, 250u8, + 163u8, 66u8, 240u8, 0u8, 237u8, 140u8, 87u8, 57u8, 162u8, 117u8, + ], + ) + } + pub fn trigger_defensive( + &self, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "RootTesting", + "trigger_defensive", + types::TriggerDefensive {}, + [ + 170u8, 234u8, 12u8, 158u8, 10u8, 171u8, 161u8, 144u8, 101u8, 67u8, + 150u8, 128u8, 105u8, 234u8, 223u8, 60u8, 241u8, 245u8, 112u8, 21u8, + 80u8, 216u8, 72u8, 147u8, 22u8, 125u8, 19u8, 200u8, 171u8, 153u8, 88u8, + 194u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::pallet_root_testing::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Event dispatched when the trigger_defensive extrinsic is called."] + pub struct DefensiveTestCall; + impl ::subxt::ext::subxt_core::events::StaticEvent for DefensiveTestCall { + const PALLET: &'static str = "RootTesting"; + const EVENT: &'static str = "DefensiveTestCall"; + } + } + } pub mod sudo { use super::root_mod; use super::runtime_types; - #[doc = "Error for the Sudo pallet"] + #[doc = "Error for the Sudo pallet."] pub type Error = runtime_types::pallet_sudo::pallet::Error; #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub type Call = runtime_types::pallet_sudo::pallet::Call; @@ -43671,7 +51218,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] pub struct Sudo { pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, } @@ -43697,7 +51244,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_unchecked_weight`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Sudo user to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub struct SudoUncheckedWeight { pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -43726,7 +51277,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_key`]."] + #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"] + #[doc = "key."] pub struct SetKey { pub new: set_key::New, } @@ -43755,7 +51307,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_as`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"] + #[doc = "a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub struct SudoAs { pub who: sudo_as::Who, pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -43772,10 +51327,32 @@ pub mod api { const PALLET: &'static str = "Sudo"; const CALL: &'static str = "sudo_as"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] + pub struct RemoveKey; + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveKey { + const PALLET: &'static str = "Sudo"; + const CALL: &'static str = "remove_key"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::sudo`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] pub fn sudo( &self, call: types::sudo::Call, @@ -43788,13 +51365,17 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 56u8, 148u8, 134u8, 0u8, 111u8, 126u8, 24u8, 154u8, 223u8, 48u8, 246u8, - 206u8, 238u8, 120u8, 128u8, 149u8, 172u8, 101u8, 130u8, 156u8, 150u8, - 30u8, 8u8, 160u8, 241u8, 58u8, 220u8, 53u8, 75u8, 115u8, 77u8, 222u8, + 207u8, 241u8, 175u8, 27u8, 15u8, 184u8, 167u8, 208u8, 146u8, 2u8, 50u8, + 175u8, 156u8, 23u8, 123u8, 29u8, 148u8, 50u8, 78u8, 233u8, 227u8, + 197u8, 106u8, 145u8, 63u8, 53u8, 250u8, 86u8, 54u8, 73u8, 37u8, 185u8, ], ) } - #[doc = "See [`Pallet::sudo_unchecked_weight`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Sudo user to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub fn sudo_unchecked_weight( &self, call: types::sudo_unchecked_weight::Call, @@ -43809,14 +51390,15 @@ pub mod api { weight, }, [ - 125u8, 67u8, 243u8, 4u8, 12u8, 40u8, 182u8, 28u8, 143u8, 31u8, 201u8, - 50u8, 55u8, 136u8, 117u8, 189u8, 112u8, 186u8, 22u8, 25u8, 127u8, - 223u8, 255u8, 50u8, 111u8, 207u8, 85u8, 125u8, 59u8, 179u8, 239u8, - 212u8, + 163u8, 247u8, 148u8, 30u8, 150u8, 96u8, 213u8, 236u8, 75u8, 43u8, + 249u8, 37u8, 106u8, 133u8, 67u8, 104u8, 22u8, 204u8, 51u8, 194u8, + 212u8, 18u8, 97u8, 255u8, 34u8, 170u8, 210u8, 172u8, 25u8, 111u8, 73u8, + 145u8, ], ) } - #[doc = "See [`Pallet::set_key`]."] + #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"] + #[doc = "key."] pub fn set_key( &self, new: types::set_key::New, @@ -43833,7 +51415,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_as`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"] + #[doc = "a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub fn sudo_as( &self, who: types::sudo_as::Who, @@ -43848,10 +51433,29 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 149u8, 84u8, 143u8, 109u8, 44u8, 175u8, 20u8, 56u8, 122u8, 248u8, - 185u8, 163u8, 218u8, 12u8, 170u8, 231u8, 118u8, 189u8, 252u8, 27u8, - 35u8, 172u8, 2u8, 108u8, 63u8, 210u8, 245u8, 96u8, 162u8, 100u8, 15u8, - 39u8, + 21u8, 24u8, 13u8, 171u8, 211u8, 184u8, 102u8, 151u8, 31u8, 75u8, 183u8, + 163u8, 35u8, 125u8, 120u8, 31u8, 72u8, 185u8, 186u8, 245u8, 139u8, + 112u8, 244u8, 245u8, 137u8, 152u8, 190u8, 182u8, 11u8, 1u8, 75u8, + 159u8, + ], + ) + } + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] + pub fn remove_key( + &self, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Sudo", + "remove_key", + types::RemoveKey {}, + [ + 133u8, 253u8, 54u8, 175u8, 202u8, 239u8, 5u8, 198u8, 180u8, 138u8, + 25u8, 28u8, 109u8, 40u8, 30u8, 56u8, 126u8, 100u8, 52u8, 205u8, 250u8, + 191u8, 61u8, 195u8, 172u8, 142u8, 184u8, 239u8, 247u8, 10u8, 211u8, + 79u8, ], ) } @@ -43896,12 +51500,13 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The sudo key has been updated."] pub struct KeyChanged { - pub old_sudoer: key_changed::OldSudoer, + pub old: key_changed::Old, + pub new: key_changed::New, } pub mod key_changed { use super::runtime_types; - pub type OldSudoer = - ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>; + pub type Old = ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>; + pub type New = ::subxt::ext::subxt_core::utils::AccountId32; } impl ::subxt::ext::subxt_core::events::StaticEvent for KeyChanged { const PALLET: &'static str = "Sudo"; @@ -43917,6 +51522,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The key was permanently removed."] + pub struct KeyRemoved; + impl ::subxt::ext::subxt_core::events::StaticEvent for KeyRemoved { + const PALLET: &'static str = "Sudo"; + const EVENT: &'static str = "KeyRemoved"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A [sudo_as](Pallet::sudo_as) call just took place."] pub struct SudoAsDone { pub sudo_result: sudo_as_done::SudoResult, @@ -44301,6 +51922,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] + pub struct BoundedVec29<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] pub struct BoundedVec3<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -44690,6 +52326,8 @@ pub mod api { Overweight(runtime_types::sp_weights::weight_v2::Weight), #[codec(index = 4)] Yield, + #[codec(index = 5)] + StackLimitReached, } } pub mod preimages { @@ -44715,7 +52353,7 @@ pub mod api { }, #[codec(index = 1)] Inline( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, ), @@ -45024,25 +52662,30 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::remark`]."] + #[doc = "Make some on-chain remark."] + #[doc = ""] + #[doc = "Can be executed by every `origin`."] remark { remark: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::set_heap_pages`]."] + #[doc = "Set the number of pages in the WebAssembly environment's heap."] set_heap_pages { pages: ::core::primitive::u64 }, #[codec(index = 2)] - #[doc = "See [`Pallet::set_code`]."] + #[doc = "Set the new runtime code."] set_code { code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 3)] - #[doc = "See [`Pallet::set_code_without_checks`]."] + #[doc = "Set the new runtime code without doing any checks of the given `code`."] + #[doc = ""] + #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"] + #[doc = "version!"] set_code_without_checks { code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 4)] - #[doc = "See [`Pallet::set_storage`]."] + #[doc = "Set some items of storage."] set_storage { items: ::subxt::ext::subxt_core::alloc::vec::Vec<( ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, @@ -45050,23 +52693,59 @@ pub mod api { )>, }, #[codec(index = 5)] - #[doc = "See [`Pallet::kill_storage`]."] + #[doc = "Kill some items from storage."] kill_storage { keys: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, >, }, #[codec(index = 6)] - #[doc = "See [`Pallet::kill_prefix`]."] + #[doc = "Kill all storage items with a key that starts with the given prefix."] + #[doc = ""] + #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"] + #[doc = "the prefix we are removing to accurately calculate the weight of this function."] kill_prefix { prefix: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, subkeys: ::core::primitive::u32, }, #[codec(index = 7)] - #[doc = "See [`Pallet::remark_with_event`]."] + #[doc = "Make some on-chain remark and emit event."] remark_with_event { remark: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, + #[codec(index = 9)] + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "This call requires Root origin."] + authorize_upgrade { + code_hash: ::subxt::ext::subxt_core::utils::H256, + }, + #[codec(index = 10)] + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"] + #[doc = "example that the spec name remains the same and that the version number increases. Not"] + #[doc = "recommended for normal use. Use `authorize_upgrade` instead."] + #[doc = ""] + #[doc = "This call requires Root origin."] + authorize_upgrade_without_checks { + code_hash: ::subxt::ext::subxt_core::utils::H256, + }, + #[codec(index = 11)] + #[doc = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."] + #[doc = ""] + #[doc = "If the authorization required a version check, this call will ensure the spec name"] + #[doc = "remains unchanged and that the spec version has increased."] + #[doc = ""] + #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"] + #[doc = "the new `code` in the same block or attempt to schedule the upgrade."] + #[doc = ""] + #[doc = "All origins are allowed."] + apply_authorized_upgrade { + code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45106,6 +52785,15 @@ pub mod api { #[codec(index = 5)] #[doc = "The origin filter prevent the call to be dispatched."] CallFiltered, + #[codec(index = 6)] + #[doc = "A multi-block migration is ongoing and prevents the current code from being replaced."] + MultiBlockMigrationsOngoing, + #[codec(index = 7)] + #[doc = "No upgrade authorized."] + NothingAuthorized, + #[codec(index = 8)] + #[doc = "The submitted code is not authorized."] + Unauthorized, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45153,6 +52841,12 @@ pub mod api { sender: ::subxt::ext::subxt_core::utils::AccountId32, hash: ::subxt::ext::subxt_core::utils::H256, }, + #[codec(index = 6)] + #[doc = "An upgrade was authorized."] + UpgradeAuthorized { + code_hash: ::subxt::ext::subxt_core::utils::H256, + check_version: ::core::primitive::bool, + }, } } #[derive( @@ -45182,6 +52876,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct CodeUpgradeAuthorization { + pub code_hash: ::subxt::ext::subxt_core::utils::H256, + pub check_version: ::core::primitive::bool, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct EventRecord<_0, _1> { pub phase: runtime_types::frame_system::Phase, pub event: _0, @@ -45242,7 +52950,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::create`]."] + #[doc = "Initialize a conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] create { asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -45250,7 +52961,10 @@ pub mod api { rate: runtime_types::sp_arithmetic::fixed_point::FixedU128, }, #[codec(index = 1)] - #[doc = "See [`Pallet::update`]."] + #[doc = "Update the conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] update { asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -45258,7 +52972,10 @@ pub mod api { rate: runtime_types::sp_arithmetic::fixed_point::FixedU128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::remove`]."] + #[doc = "Remove an existing conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] remove { asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -45287,6 +53004,9 @@ pub mod api { #[codec(index = 1)] #[doc = "The given asset ID already has an assigned conversion rate and cannot be re-created."] AlreadyExists, + #[codec(index = 2)] + #[doc = "Overflow ocurred when calculating the inverse rate."] + Overflow, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45346,7 +53066,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] report_equivocation { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_slots::EquivocationProof< @@ -45359,7 +53082,14 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 1)] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] report_equivocation_unsigned { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_slots::EquivocationProof< @@ -45372,7 +53102,10 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 2)] - #[doc = "See [`Pallet::plan_config_change`]."] + #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"] + #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."] + #[doc = "Multiple calls to this method will replace any existing planned config change that had"] + #[doc = "not been enacted yet."] plan_config_change { config: runtime_types::sp_consensus_babe::digests::NextConfigDescriptor, }, @@ -45429,7 +53162,13 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] transfer_allow_death { dest: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45439,7 +53178,8 @@ pub mod api { value: ::core::primitive::u128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] force_transfer { source: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45453,7 +53193,12 @@ pub mod api { value: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] transfer_keep_alive { dest: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45463,7 +53208,21 @@ pub mod api { value: ::core::primitive::u128, }, #[codec(index = 4)] - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] transfer_all { dest: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45472,7 +53231,9 @@ pub mod api { keep_alive: ::core::primitive::bool, }, #[codec(index = 5)] - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] force_unreserve { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45481,14 +53242,23 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 6)] - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] upgrade_accounts { who: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, >, }, #[codec(index = 8)] - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] force_set_balance { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45497,6 +53267,17 @@ pub mod api { #[codec(compact)] new_free: ::core::primitive::u128, }, + #[codec(index = 9)] + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + force_adjust_total_issuance { + direction: runtime_types::pallet_balances::types::AdjustmentDirection, + #[codec(compact)] + delta: ::core::primitive::u128, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45539,11 +53320,17 @@ pub mod api { #[doc = "Number of named reserves exceed `MaxReserves`."] TooManyReserves, #[codec(index = 8)] - #[doc = "Number of holds exceed `MaxHolds`."] + #[doc = "Number of holds exceed `VariantCountOf`."] TooManyHolds, #[codec(index = 9)] #[doc = "Number of freezes exceed `MaxFreezes`."] TooManyFreezes, + #[codec(index = 10)] + #[doc = "The issuance cannot be modified since it is already deactivated."] + IssuanceDeactivated, + #[codec(index = 11)] + #[doc = "The delta cannot be zero."] + DeltaZero, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45686,6 +53473,12 @@ pub mod api { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, + #[codec(index = 21)] + #[doc = "The `TotalIssuance` was forcefully changed."] + TotalIssuanceForced { + old: ::core::primitive::u128, + new: ::core::primitive::u128, + }, } } pub mod types { @@ -45724,6 +53517,26 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] + pub enum AdjustmentDirection { + #[codec(index = 0)] + Increase, + #[codec(index = 1)] + Decrease, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] pub struct BalanceLock<_0> { pub id: [::core::primitive::u8; 8usize], pub amount: _0, @@ -45826,7 +53639,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] report_equivocation { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_beefy::EquivocationProof< @@ -45838,7 +53654,15 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 1)] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] report_equivocation_unsigned { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_beefy::EquivocationProof< @@ -45850,7 +53674,10 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 2)] - #[doc = "See [`Pallet::set_new_genesis`]."] + #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"] + #[doc = "future."] + #[doc = ""] + #[doc = "Note: `delay_in_blocks` has to be at least 1."] set_new_genesis { delay_in_blocks: ::core::primitive::u32, }, @@ -45907,7 +53734,18 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::propose_bounty`]."] + #[doc = "Propose a new bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"] + #[doc = "or slashed when rejected."] + #[doc = ""] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = "- `value`: The total payment amount of this bounty, curator fee included."] + #[doc = "- `description`: The description of this bounty."] propose_bounty { #[codec(compact)] value: ::core::primitive::u128, @@ -45915,13 +53753,24 @@ pub mod api { ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::approve_bounty`]."] + #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] approve_bounty { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose a curator to a funded bounty."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] propose_curator { #[codec(compact)] bounty_id: ::core::primitive::u32, @@ -45933,19 +53782,50 @@ pub mod api { fee: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a bounty."] + #[doc = ""] + #[doc = "This function can only be called by the `RejectOrigin` a signed origin."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"] + #[doc = "malicious or inactive. As a result, we will slash the curator when possible."] + #[doc = ""] + #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"] + #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"] + #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"] + #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"] + #[doc = "we should pick a new curator. In this case the curator should also be slashed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] unassign_curator { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 4)] - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for a bounty."] + #[doc = "A deposit will be reserved from curator and refund upon successful payout."] + #[doc = ""] + #[doc = "May only be called from the curator."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] accept_curator { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 5)] - #[doc = "See [`Pallet::award_bounty`]."] + #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"] + #[doc = "after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to award."] + #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] award_bounty { #[codec(compact)] bounty_id: ::core::primitive::u32, @@ -45955,19 +53835,42 @@ pub mod api { >, }, #[codec(index = 6)] - #[doc = "See [`Pallet::claim_bounty`]."] + #[doc = "Claim the payout from an awarded bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to claim."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] claim_bounty { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 7)] - #[doc = "See [`Pallet::close_bounty`]."] + #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"] + #[doc = "the curator deposit will be unreserved if possible."] + #[doc = ""] + #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to cancel."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] close_bounty { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 8)] - #[doc = "See [`Pallet::extend_bounty_expiry`]."] + #[doc = "Extend the expiry time of an active bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to extend."] + #[doc = "- `remark`: additional information."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] extend_bounty_expiry { #[codec(compact)] bounty_id: ::core::primitive::u32, @@ -46139,6 +54042,34 @@ pub mod api { }, } } + pub mod pallet_broker { + use super::runtime_types; + pub mod coretime_interface { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum CoreAssignment { + #[codec(index = 0)] + Idle, + #[codec(index = 1)] + Pool, + #[codec(index = 2)] + Task(::core::primitive::u32), + } + } + } pub mod pallet_child_bounties { use super::runtime_types; pub mod pallet { @@ -46160,7 +54091,25 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::add_child_bounty`]."] + #[doc = "Add a new child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of parent"] + #[doc = "bounty and the parent bounty must be in \"active\" state."] + #[doc = ""] + #[doc = "Child-bounty gets added successfully & fund gets transferred from"] + #[doc = "parent bounty to child-bounty account, if parent bounty has enough"] + #[doc = "funds, else the call fails."] + #[doc = ""] + #[doc = "Upper bound to maximum number of active child bounties that can be"] + #[doc = "added are managed via runtime trait config"] + #[doc = "[`Config::MaxActiveChildBountyCount`]."] + #[doc = ""] + #[doc = "If the call is success, the status of child-bounty is updated to"] + #[doc = "\"Added\"."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."] + #[doc = "- `value`: Value for executing the proposal."] + #[doc = "- `description`: Text description for the child-bounty."] add_child_bounty { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46170,7 +54119,21 @@ pub mod api { ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose curator for funded child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be curator of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `curator`: Address of child-bounty curator."] + #[doc = "- `fee`: payment fee to child-bounty curator for execution."] propose_curator { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46184,7 +54147,25 @@ pub mod api { fee: ::core::primitive::u128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for the child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this"] + #[doc = "child-bounty."] + #[doc = ""] + #[doc = "A deposit will be reserved from the curator and refund upon"] + #[doc = "successful payout or cancellation."] + #[doc = ""] + #[doc = "Fee for curator is deducted from curator fee of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"] + #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] accept_curator { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46192,7 +54173,40 @@ pub mod api { child_bounty_id: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"] + #[doc = "the curator of the parent bounty, or any signed origin."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin and the child-bounty"] + #[doc = "curator, parent bounty must be in active state, for this call to"] + #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"] + #[doc = "this call irrespective of the parent bounty state."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin` or the"] + #[doc = "parent bounty curator, we assume that the child-bounty curator is"] + #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"] + #[doc = "slashed."] + #[doc = ""] + #[doc = "If the origin is the child-bounty curator, we take this as a sign"] + #[doc = "that they are unable to do their job, and are willingly giving up."] + #[doc = "We could slash the deposit, but for now we allow them to unreserve"] + #[doc = "their deposit and exit without issue. (We may want to change this if"] + #[doc = "it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"] + #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"] + #[doc = "inactive state of child-bounty curator."] + #[doc = ""] + #[doc = "This allows anyone in the community to call out that a child-bounty"] + #[doc = "curator is not doing their due diligence, and we should pick a new"] + #[doc = "one. In this case the child-bounty curator deposit is slashed."] + #[doc = ""] + #[doc = "State of child-bounty is moved to Added state on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] unassign_curator { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46200,7 +54214,23 @@ pub mod api { child_bounty_id: ::core::primitive::u32, }, #[codec(index = 4)] - #[doc = "See [`Pallet::award_child_bounty`]."] + #[doc = "Award child-bounty to a beneficiary."] + #[doc = ""] + #[doc = "The beneficiary will be able to claim the funds after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the parent curator or"] + #[doc = "curator of this child-bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in active state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `beneficiary`: Beneficiary account."] award_child_bounty { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46212,7 +54242,22 @@ pub mod api { >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::claim_child_bounty`]."] + #[doc = "Claim the payout from an awarded child-bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call may be any signed origin."] + #[doc = ""] + #[doc = "Call works independent of parent bounty state, No need for parent"] + #[doc = "bounty to be in active state."] + #[doc = ""] + #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"] + #[doc = "paid & curator deposit is unreserved."] + #[doc = ""] + #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"] + #[doc = "call. And instance of child-bounty is removed from the state on"] + #[doc = "successful call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] claim_child_bounty { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46220,7 +54265,28 @@ pub mod api { child_bounty_id: ::core::primitive::u32, }, #[codec(index = 6)] - #[doc = "See [`Pallet::close_child_bounty`]."] + #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"] + #[doc = "are transferred to parent bounty account. The child-bounty curator"] + #[doc = "deposit may be unreserved if possible."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be either parent curator or"] + #[doc = "`T::RejectOrigin`."] + #[doc = ""] + #[doc = "If the state of child-bounty is `Active`, curator deposit is"] + #[doc = "unreserved."] + #[doc = ""] + #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"] + #[doc = "returns `PendingPayout` error."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"] + #[doc = "active state, for this child-bounty call to work. For origin"] + #[doc = "T::RejectOrigin execution is forced."] + #[doc = ""] + #[doc = "Instance of child-bounty is removed from the state on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] close_child_bounty { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46395,7 +54461,15 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::vote`]."] + #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"] + #[doc = "otherwise it is a vote to keep the status quo."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `poll_index`: The index of the poll to vote for."] + #[doc = "- `vote`: The vote configuration."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."] vote { #[codec(compact)] poll_index: ::core::primitive::u32, @@ -46404,7 +54478,29 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::delegate`]."] + #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"] + #[doc = "particular class of polls."] + #[doc = ""] + #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] + #[doc = "time appropriate for the conviction's lock period."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] + #[doc = " - be delegating already; or"] + #[doc = " - have no voting activity (if there is, then it will need to be removed through"] + #[doc = " `remove_vote`)."] + #[doc = ""] + #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."] + #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"] + #[doc = " to this function are required."] + #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] + #[doc = " account is undelegated, the funds will be locked for the corresponding period."] + #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] + #[doc = " be more than the account's current balance."] + #[doc = ""] + #[doc = "Emits `Delegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] delegate { class: ::core::primitive::u16, to: ::subxt::ext::subxt_core::utils::MultiAddress< @@ -46415,10 +54511,31 @@ pub mod api { balance: ::core::primitive::u128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::undelegate`]."] + #[doc = "Undelegate the voting power of the sending account for a particular class of polls."] + #[doc = ""] + #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] + #[doc = "of the conviction with which the delegation was issued has passed."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] + #[doc = "currently delegating."] + #[doc = ""] + #[doc = "- `class`: The class of polls to remove the delegation from."] + #[doc = ""] + #[doc = "Emits `Undelegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] undelegate { class: ::core::primitive::u16 }, #[codec(index = 3)] - #[doc = "See [`Pallet::unlock`]."] + #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"] + #[doc = "class."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `class`: The class of polls to unlock."] + #[doc = "- `target`: The account to remove the lock on."] + #[doc = ""] + #[doc = "Weight: `O(R)` with R number of vote of target."] unlock { class: ::core::primitive::u16, target: ::subxt::ext::subxt_core::utils::MultiAddress< @@ -46427,13 +54544,56 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::remove_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If:"] + #[doc = "- the poll was cancelled, or"] + #[doc = "- the poll is ongoing, or"] + #[doc = "- the poll has ended such that"] + #[doc = " - the vote of the account was in opposition to the result; or"] + #[doc = " - there was no conviction to the account's vote; or"] + #[doc = " - the account made a split vote"] + #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] + #[doc = "funds being available."] + #[doc = ""] + #[doc = "If, however, the poll has ended and:"] + #[doc = "- it finished corresponding to the vote of the account, and"] + #[doc = "- the account made a standard vote with conviction, and"] + #[doc = "- the lock period of the conviction is not over"] + #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] + #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] + #[doc = "of both the amount locked and the time is it locked for)."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] + #[doc = "registered for poll `index`."] + #[doc = ""] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"] + #[doc = " which have finished or are cancelled, this must be `Some`."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] remove_vote { class: ::core::option::Option<::core::primitive::u16>, index: ::core::primitive::u32, }, #[codec(index = 5)] - #[doc = "See [`Pallet::remove_other_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] + #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] + #[doc = "either because the poll was cancelled, because the voter lost the poll or"] + #[doc = "because the conviction period is over."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"] + #[doc = " `index`."] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: The class of the poll."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] remove_other_vote { target: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46476,7 +54636,7 @@ pub mod api { AlreadyDelegating, #[codec(index = 5)] #[doc = "The account currently has votes attached to it and the operation cannot succeed until"] - #[doc = "these are removed, either through `unvote` or `reap_vote`."] + #[doc = "these are removed through `remove_vote`."] AlreadyVoting, #[codec(index = 6)] #[doc = "Too high a balance was provided that the account cannot afford."] @@ -46715,7 +54875,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] report_equivocation { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_grandpa::EquivocationProof< @@ -46726,7 +54889,15 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 1)] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] report_equivocation_unsigned { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_grandpa::EquivocationProof< @@ -46737,7 +54908,18 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 2)] - #[doc = "See [`Pallet::note_stalled`]."] + #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."] + #[doc = ""] + #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"] + #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"] + #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."] + #[doc = "The block production rate (which may be slowed down because of finality lagging) should"] + #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"] + #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"] + #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"] + #[doc = "block of all validators of the new authority set."] + #[doc = ""] + #[doc = "Only callable by root."] note_stalled { delay: ::core::primitive::u32, best_finalized_block_number: ::core::primitive::u32, @@ -46858,6 +55040,37 @@ pub mod api { } pub mod pallet_identity { use super::runtime_types; + pub mod legacy { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct IdentityInfo { + pub additional: runtime_types::bounded_collections::bounded_vec::BoundedVec1<( + runtime_types::pallet_identity::types::Data, + runtime_types::pallet_identity::types::Data, + )>, + pub display: runtime_types::pallet_identity::types::Data, + pub legal: runtime_types::pallet_identity::types::Data, + pub web: runtime_types::pallet_identity::types::Data, + pub riot: runtime_types::pallet_identity::types::Data, + pub email: runtime_types::pallet_identity::types::Data, + pub pgp_fingerprint: ::core::option::Option<[::core::primitive::u8; 20usize]>, + pub image: runtime_types::pallet_identity::types::Data, + pub twitter: runtime_types::pallet_identity::types::Data, + } + } pub mod pallet { use super::runtime_types; #[derive( @@ -46877,7 +55090,13 @@ pub mod api { #[doc = "Identity pallet declaration."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::add_registrar`]."] + #[doc = "Add a registrar to the system."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."] + #[doc = ""] + #[doc = "- `account`: the account of the registrar."] + #[doc = ""] + #[doc = "Emits `RegistrarAdded` if successful."] add_registrar { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46885,14 +55104,31 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::set_identity`]."] + #[doc = "Set an account's identity information and reserve the appropriate deposit."] + #[doc = ""] + #[doc = "If the account already has identity information, the deposit is taken as part payment"] + #[doc = "for the new deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `info`: The identity information."] + #[doc = ""] + #[doc = "Emits `IdentitySet` if successful."] set_identity { info: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::pallet_identity::types::IdentityInfo, + runtime_types::pallet_identity::legacy::IdentityInfo, >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::set_subs`]."] + #[doc = "Set the sub-accounts of the sender."] + #[doc = ""] + #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"] + #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "- `subs`: The identity's (new) sub-accounts."] set_subs { subs: ::subxt::ext::subxt_core::alloc::vec::Vec<( ::subxt::ext::subxt_core::utils::AccountId32, @@ -46900,10 +55136,32 @@ pub mod api { )>, }, #[codec(index = 3)] - #[doc = "See [`Pallet::clear_identity`]."] + #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."] + #[doc = ""] + #[doc = "Payment: All reserved balances on the account are returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "Emits `IdentityCleared` if successful."] clear_identity, #[codec(index = 4)] - #[doc = "See [`Pallet::request_judgement`]."] + #[doc = "Request a judgement from a registrar."] + #[doc = ""] + #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"] + #[doc = "given."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."] + #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] + #[doc = ""] + #[doc = "```nocompile"] + #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "```"] + #[doc = ""] + #[doc = "Emits `JudgementRequested` if successful."] request_judgement { #[codec(compact)] reg_index: ::core::primitive::u32, @@ -46911,10 +55169,25 @@ pub mod api { max_fee: ::core::primitive::u128, }, #[codec(index = 5)] - #[doc = "See [`Pallet::cancel_request`]."] + #[doc = "Cancel a previous request."] + #[doc = ""] + #[doc = "Payment: A previously reserved deposit is returned on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."] + #[doc = ""] + #[doc = "Emits `JudgementUnrequested` if successful."] cancel_request { reg_index: ::core::primitive::u32 }, #[codec(index = 6)] - #[doc = "See [`Pallet::set_fee`]."] + #[doc = "Set the fee required for a judgement to be requested from a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fee`: the new fee."] set_fee { #[codec(compact)] index: ::core::primitive::u32, @@ -46922,7 +55195,13 @@ pub mod api { fee: ::core::primitive::u128, }, #[codec(index = 7)] - #[doc = "See [`Pallet::set_account_id`]."] + #[doc = "Change the account associated with a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `new`: the new account ID."] set_account_id { #[codec(compact)] index: ::core::primitive::u32, @@ -46932,16 +55211,34 @@ pub mod api { >, }, #[codec(index = 8)] - #[doc = "See [`Pallet::set_fields`]."] + #[doc = "Set the field information for a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fields`: the fields that the registrar concerns themselves with."] set_fields { #[codec(compact)] index: ::core::primitive::u32, - fields: runtime_types::pallet_identity::types::BitFlags< - runtime_types::pallet_identity::types::IdentityField, - >, + fields: ::core::primitive::u64, }, #[codec(index = 9)] - #[doc = "See [`Pallet::provide_judgement`]."] + #[doc = "Provide a judgement for an account's identity."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `reg_index`."] + #[doc = ""] + #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."] + #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"] + #[doc = " provided."] + #[doc = ""] + #[doc = "Note: Judgements do not apply to a username."] + #[doc = ""] + #[doc = "Emits `JudgementGiven` if successful."] provide_judgement { #[codec(compact)] reg_index: ::core::primitive::u32, @@ -46955,7 +55252,18 @@ pub mod api { identity: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 10)] - #[doc = "See [`Pallet::kill_identity`]."] + #[doc = "Remove an account's identity and sub-account information and slash the deposits."] + #[doc = ""] + #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"] + #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"] + #[doc = "manually using `cancel_request`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] + #[doc = ""] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = ""] + #[doc = "Emits `IdentityKilled` if successful."] kill_identity { target: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46963,7 +55271,13 @@ pub mod api { >, }, #[codec(index = 11)] - #[doc = "See [`Pallet::add_sub`]."] + #[doc = "Add the given account to the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] add_sub { sub: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46972,7 +55286,10 @@ pub mod api { data: runtime_types::pallet_identity::types::Data, }, #[codec(index = 12)] - #[doc = "See [`Pallet::rename_sub`]."] + #[doc = "Alter the associated name of the given sub-account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] rename_sub { sub: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46981,7 +55298,13 @@ pub mod api { data: runtime_types::pallet_identity::types::Data, }, #[codec(index = 13)] - #[doc = "See [`Pallet::remove_sub`]."] + #[doc = "Remove the given account from the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] remove_sub { sub: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46989,8 +55312,89 @@ pub mod api { >, }, #[codec(index = 14)] - #[doc = "See [`Pallet::quit_sub`]."] + #[doc = "Remove the sender as a sub-account."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender (*not* the original depositor)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "super-identity."] + #[doc = ""] + #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"] + #[doc = "controller of an account is maliciously registered as a sub-account."] quit_sub, + #[codec(index = 15)] + #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] + #[doc = ""] + #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] + #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + add_username_authority { + authority: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + suffix: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + allocation: ::core::primitive::u32, + }, + #[codec(index = 16)] + #[doc = "Remove `authority` from the username authorities."] + remove_username_authority { + authority: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + }, + #[codec(index = 17)] + #[doc = "Set the username for `who`. Must be called by a username authority."] + #[doc = ""] + #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "accept them later."] + #[doc = ""] + #[doc = "Usernames must:"] + #[doc = " - Only contain lowercase ASCII characters or digits."] + #[doc = " - When combined with the suffix of the issuing authority be _less than_ the"] + #[doc = " `MaxUsernameLength`."] + set_username_for { + who: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + username: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + signature: + ::core::option::Option, + }, + #[codec(index = 18)] + #[doc = "Accept a given username that an `authority` granted. The call must include the full"] + #[doc = "username, as in `username.suffix`."] + accept_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 19)] + #[doc = "Remove an expired username approval. The username was approved by an authority but never"] + #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"] + #[doc = "full username, as in `username.suffix`."] + remove_expired_approval { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 20)] + #[doc = "Set a given username as the primary. The username should include the suffix."] + set_primary_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 21)] + #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] + #[doc = "gets a username but then calls `clear_identity`."] + remove_dangling_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -47042,26 +55446,50 @@ pub mod api { #[doc = "The target is invalid."] InvalidTarget, #[codec(index = 11)] - #[doc = "Too many additional fields."] - TooManyFields, - #[codec(index = 12)] #[doc = "Maximum amount of registrars reached. Cannot add any more."] TooManyRegistrars, - #[codec(index = 13)] + #[codec(index = 12)] #[doc = "Account ID is already named."] AlreadyClaimed, - #[codec(index = 14)] + #[codec(index = 13)] #[doc = "Sender is not a sub-account."] NotSub, - #[codec(index = 15)] + #[codec(index = 14)] #[doc = "Sub-account isn't owned by sender."] NotOwned, - #[codec(index = 16)] + #[codec(index = 15)] #[doc = "The provided judgement was for a different identity."] JudgementForDifferentIdentity, - #[codec(index = 17)] + #[codec(index = 16)] #[doc = "Error that occurs when there is an issue paying for judgement."] JudgementPaymentFailed, + #[codec(index = 17)] + #[doc = "The provided suffix is too long."] + InvalidSuffix, + #[codec(index = 18)] + #[doc = "The sender does not have permission to issue a username."] + NotUsernameAuthority, + #[codec(index = 19)] + #[doc = "The authority cannot allocate any more usernames."] + NoAllocation, + #[codec(index = 20)] + #[doc = "The signature on a username was not valid."] + InvalidSignature, + #[codec(index = 21)] + #[doc = "Setting this username requires a signature, but none was provided."] + RequiresSignature, + #[codec(index = 22)] + #[doc = "The username does not meet the requirements."] + InvalidUsername, + #[codec(index = 23)] + #[doc = "The username is already taken."] + UsernameTaken, + #[codec(index = 24)] + #[doc = "The requested username does not exist."] + NoUsername, + #[codec(index = 25)] + #[doc = "The username cannot be forcefully removed because it can still be accepted."] + NotExpired, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -47141,12 +55569,60 @@ pub mod api { main: ::subxt::ext::subxt_core::utils::AccountId32, deposit: ::core::primitive::u128, }, + #[codec(index = 10)] + #[doc = "A username authority was added."] + AuthorityAdded { + authority: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 11)] + #[doc = "A username authority was removed."] + AuthorityRemoved { + authority: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 12)] + #[doc = "A username was set for `who`."] + UsernameSet { + who: ::subxt::ext::subxt_core::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 13)] + #[doc = "A username was queued, but `who` must accept it prior to `expiration`."] + UsernameQueued { + who: ::subxt::ext::subxt_core::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + expiration: ::core::primitive::u32, + }, + #[codec(index = 14)] + #[doc = "A queued username passed its expiration without being claimed and was removed."] + PreapprovalExpired { + whose: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 15)] + #[doc = "A username was set as a primary and can be looked up from `who`."] + PrimaryUsernameSet { + who: ::subxt::ext::subxt_core::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 16)] + #[doc = "A dangling username (as in, a username corresponding to an account that has removed its"] + #[doc = "identity) has been removed."] + DanglingUsernameRemoved { + who: ::subxt::ext::subxt_core::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, } } pub mod types { use super::runtime_types; #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, @@ -47160,10 +55636,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct BitFlags<_0>( - pub ::core::primitive::u64, - #[codec(skip)] pub ::core::marker::PhantomData<_0>, - ); + pub struct AuthorityProperties<_0> { + pub suffix: _0, + pub allocation: ::core::primitive::u32, + } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -47270,66 +55746,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum IdentityField { - #[codec(index = 1)] - Display, - #[codec(index = 2)] - Legal, - #[codec(index = 4)] - Web, - #[codec(index = 8)] - Riot, - #[codec(index = 16)] - Email, - #[codec(index = 32)] - PgpFingerprint, - #[codec(index = 64)] - Image, - #[codec(index = 128)] - Twitter, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct IdentityInfo { - pub additional: runtime_types::bounded_collections::bounded_vec::BoundedVec1<( - runtime_types::pallet_identity::types::Data, - runtime_types::pallet_identity::types::Data, - )>, - pub display: runtime_types::pallet_identity::types::Data, - pub legal: runtime_types::pallet_identity::types::Data, - pub web: runtime_types::pallet_identity::types::Data, - pub riot: runtime_types::pallet_identity::types::Data, - pub email: runtime_types::pallet_identity::types::Data, - pub pgp_fingerprint: ::core::option::Option<[::core::primitive::u8; 20usize]>, - pub image: runtime_types::pallet_identity::types::Data, - pub twitter: runtime_types::pallet_identity::types::Data, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] pub enum Judgement<_0> { #[codec(index = 0)] Unknown, @@ -47360,12 +55776,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct RegistrarInfo<_0, _1> { + pub struct RegistrarInfo<_0, _1, _2> { pub account: _1, pub fee: _0, - pub fields: runtime_types::pallet_identity::types::BitFlags< - runtime_types::pallet_identity::types::IdentityField, - >, + pub fields: _2, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -47381,155 +55795,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Registration<_0> { + pub struct Registration<_0, _2> { pub judgements: runtime_types::bounded_collections::bounded_vec::BoundedVec17<( ::core::primitive::u32, runtime_types::pallet_identity::types::Judgement<_0>, )>, pub deposit: _0, - pub info: runtime_types::pallet_identity::types::IdentityInfo, + pub info: _2, } } } - pub mod pallet_im_online { - use super::runtime_types; - pub mod pallet { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] - pub enum Call { - #[codec(index = 0)] - #[doc = "See [`Pallet::heartbeat`]."] - heartbeat { - heartbeat: - runtime_types::pallet_im_online::Heartbeat<::core::primitive::u32>, - signature: runtime_types::pallet_im_online::sr25519::app_sr25519::Signature, - }, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "The `Error` enum of this pallet."] - pub enum Error { - #[codec(index = 0)] - #[doc = "Non existent public key."] - InvalidKey, - #[codec(index = 1)] - #[doc = "Duplicated heartbeat."] - DuplicatedHeartbeat, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "The `Event` enum of this pallet"] - pub enum Event { - #[codec(index = 0)] - #[doc = "A new heartbeat was received from `AuthorityId`."] - HeartbeatReceived { - authority_id: runtime_types::pallet_im_online::sr25519::app_sr25519::Public, - }, - #[codec(index = 1)] - #[doc = "At the end of the session, no offence was committed."] - AllGood, - #[codec(index = 2)] - #[doc = "At the end of the session, at least one validator was found to be offline."] - SomeOffline { - offline: ::subxt::ext::subxt_core::alloc::vec::Vec<( - ::subxt::ext::subxt_core::utils::AccountId32, - (), - )>, - }, - } - } - pub mod sr25519 { - use super::runtime_types; - pub mod app_sr25519 { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); - } - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub struct Heartbeat<_0> { - pub block_number: _0, - pub session_index: ::core::primitive::u32, - pub authority_index: ::core::primitive::u32, - pub validators_len: ::core::primitive::u32, - } - } pub mod pallet_indices { use super::runtime_types; pub mod pallet { @@ -47551,10 +55827,32 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::claim`]."] + #[doc = "Assign an previously unassigned index."] + #[doc = ""] + #[doc = "Payment: `Deposit` is reserved from the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be claimed. This must not be in use."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] claim { index: ::core::primitive::u32 }, #[codec(index = 1)] - #[doc = "See [`Pallet::transfer`]."] + #[doc = "Assign an index already owned by the sender to another account. The balance reservation"] + #[doc = "is effectively transferred to the new account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] transfer { new: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -47563,10 +55861,33 @@ pub mod api { index: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::free`]."] + #[doc = "Free up an index owned by the sender."] + #[doc = ""] + #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."] + #[doc = ""] + #[doc = "- `index`: the index to be freed. This must be owned by the sender."] + #[doc = ""] + #[doc = "Emits `IndexFreed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] free { index: ::core::primitive::u32 }, #[codec(index = 3)] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"] + #[doc = "held, then any deposit is reimbursed to its current owner."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `index`: the index to be (re-)assigned."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] force_transfer { new: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -47576,7 +55897,18 @@ pub mod api { freeze: ::core::primitive::bool, }, #[codec(index = 4)] - #[doc = "See [`Pallet::freeze`]."] + #[doc = "Freeze an index so it will always point to the sender account. This consumes the"] + #[doc = "deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"] + #[doc = "non-frozen account `index`."] + #[doc = ""] + #[doc = "- `index`: the index to be frozen in place."] + #[doc = ""] + #[doc = "Emits `IndexFrozen` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] freeze { index: ::core::primitive::u32 }, } #[derive( @@ -47665,7 +55997,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::reap_page`]."] reap_page { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "See [`Pallet::execute_overweight`]."] execute_overweight { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page : :: core :: primitive :: u32 , index : :: core :: primitive :: u32 , weight_limit : runtime_types :: sp_weights :: weight_v2 :: Weight , } , } + # [codec (index = 0)] # [doc = "Remove a page which has no more messages remaining to be processed or is stale."] reap_page { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Execute an overweight message."] # [doc = ""] # [doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] # [doc = "as success condition."] # [doc = ""] # [doc = "- `origin`: Must be `Signed`."] # [doc = "- `message_origin`: The origin from which the message to be executed arrived."] # [doc = "- `page`: The page in the queue in which the message to be executed is sitting."] # [doc = "- `index`: The index into the queue of the message to be executed."] # [doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] # [doc = " of the message."] # [doc = ""] # [doc = "Benchmark complexity considerations: O(index + weight_limit)."] execute_overweight { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page : :: core :: primitive :: u32 , index : :: core :: primitive :: u32 , weight_limit : runtime_types :: sp_weights :: weight_v2 :: Weight , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -47712,6 +56044,9 @@ pub mod api { #[doc = ""] #[doc = "This can change at any time and may resolve in the future by re-trying."] QueuePaused, + #[codec(index = 8)] + #[doc = "Another call is in progress and needs to finish before this call can happen."] + RecursiveDisallowed, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -47729,7 +56064,7 @@ pub mod api { )] #[doc = "The `Event` enum of this pallet"] pub enum Event { - # [codec (index = 0)] # [doc = "Message discarded due to an error in the `MessageProcessor` (usually a format error)."] ProcessingFailed { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , error : runtime_types :: frame_support :: traits :: messages :: ProcessMessageError , } , # [codec (index = 1)] # [doc = "Message is processed."] Processed { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , weight_used : runtime_types :: sp_weights :: weight_v2 :: Weight , success : :: core :: primitive :: bool , } , # [codec (index = 2)] # [doc = "Message placed in overweight queue."] OverweightEnqueued { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , message_index : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "This page was reaped."] PageReaped { origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , index : :: core :: primitive :: u32 , } , } + # [codec (index = 0)] # [doc = "Message discarded due to an error in the `MessageProcessor` (usually a format error)."] ProcessingFailed { id : :: subxt :: ext :: subxt_core :: utils :: H256 , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , error : runtime_types :: frame_support :: traits :: messages :: ProcessMessageError , } , # [codec (index = 1)] # [doc = "Message is processed."] Processed { id : :: subxt :: ext :: subxt_core :: utils :: H256 , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , weight_used : runtime_types :: sp_weights :: weight_v2 :: Weight , success : :: core :: primitive :: bool , } , # [codec (index = 2)] # [doc = "Message placed in overweight queue."] OverweightEnqueued { id : [:: core :: primitive :: u8 ; 32usize] , origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , message_index : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "This page was reaped."] PageReaped { origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , index : :: core :: primitive :: u32 , } , } } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -47780,7 +56115,7 @@ pub mod api { pub first_index: _0, pub first: _0, pub last: _0, - pub heap: runtime_types::bounded_collections::bounded_vec::BoundedVec5< + pub heap: runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, } @@ -47806,7 +56141,18 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::as_multi_threshold_1`]."] + #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"] + #[doc = "multi-signature, but do not participate in the approval process."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."] as_multi_threshold_1 { other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, @@ -47816,7 +56162,45 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "If there are enough, then dispatch the call."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "NOTE: Unless this is the final approval, you will generally want to use"] + #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"] + #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"] + #[doc = "may be found in the deposited `MultisigExecuted` event."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S + Z + Call)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- The weight of the `call`."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] as_multi { threshold: ::core::primitive::u16, other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec< @@ -47831,7 +56215,36 @@ pub mod api { max_weight: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 2)] - #[doc = "See [`Pallet::approve_as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] approve_as_multi { threshold: ::core::primitive::u16, other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec< @@ -47844,7 +56257,27 @@ pub mod api { max_weight: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 3)] - #[doc = "See [`Pallet::cancel_as_multi`]."] + #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"] + #[doc = "for this operation will be unreserved on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"] + #[doc = "transaction for this dispatch."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- One event."] + #[doc = "- I/O: 1 read `O(S)`, one remove."] + #[doc = "- Storage: removes one item."] cancel_as_multi { threshold: ::core::primitive::u16, other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec< @@ -48038,24 +56471,49 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::place_bid`]."] + #[doc = "Place a bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."] + #[doc = ""] + #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"] + #[doc = " consolidated, removed. Must be at least `MinBid`."] + #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"] + #[doc = " thawed. Must be greater than 1 and no more than `QueueCount`."] + #[doc = ""] + #[doc = "Complexities:"] + #[doc = "- `Queues[duration].len()` (just take max)."] place_bid { #[codec(compact)] amount: ::core::primitive::u128, duration: ::core::primitive::u32, }, #[codec(index = 1)] - #[doc = "See [`Pallet::retract_bid`]."] + #[doc = "Retract a previously placed bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"] + #[doc = "of `amount` for `duration`."] + #[doc = ""] + #[doc = "- `amount`: The amount of the previous bid."] + #[doc = "- `duration`: The duration of the previous bid."] retract_bid { #[codec(compact)] amount: ::core::primitive::u128, duration: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::fund_deficit`]."] + #[doc = "Ensure we have sufficient funding for all potential payouts."] + #[doc = ""] + #[doc = "- `origin`: Must be accepted by `FundOrigin`."] fund_deficit, #[codec(index = 3)] - #[doc = "See [`Pallet::thaw_private`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"] + #[doc = " well as any fungible counterpart."] + #[doc = "- `index`: The index of the receipt."] + #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"] + #[doc = " `None`, then all of it should be."] thaw_private { #[codec(compact)] index: ::core::primitive::u32, @@ -48064,19 +56522,24 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::thaw_communal`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"] + #[doc = " for receipt `index`."] + #[doc = "- `index`: The index of the receipt."] thaw_communal { #[codec(compact)] index: ::core::primitive::u32, }, #[codec(index = 5)] - #[doc = "See [`Pallet::communify`]."] + #[doc = "Make a private receipt communal and create fungible counterparts for its owner."] communify { #[codec(compact)] index: ::core::primitive::u32, }, #[codec(index = 6)] - #[doc = "See [`Pallet::privatize`]."] + #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."] privatize { #[codec(compact)] index: ::core::primitive::u32, @@ -48136,7 +56599,7 @@ pub mod api { #[doc = "The thaw throttle has been reached for this period."] Throttled, #[codec(index = 12)] - #[doc = "The operation would result in a receipt worth an insignficant value."] + #[doc = "The operation would result in a receipt worth an insignificant value."] MakesDust, #[codec(index = 13)] #[doc = "The receipt is already communal."] @@ -48204,7 +56667,7 @@ pub mod api { #[doc = "An automatic funding of the deficit was made."] Funded { deficit: ::core::primitive::u128 }, #[codec(index = 6)] - #[doc = "A receipt was transfered."] + #[doc = "A receipt was transferred."] Transferred { from: ::subxt::ext::subxt_core::utils::AccountId32, to: ::subxt::ext::subxt_core::utils::AccountId32, @@ -48302,6 +56765,67 @@ pub mod api { } } } + pub mod pallet_parameters { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Set the value of a parameter."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"] + #[doc = "deleted by setting them to `None`."] + set_parameter { + key_value: runtime_types::rococo_runtime::RuntimeParameters, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "A Parameter was set."] + #[doc = ""] + #[doc = "Is also emitted when the value was not changed."] + Updated { + key: runtime_types::rococo_runtime::RuntimeParametersKey, + old_value: ::core::option::Option< + runtime_types::rococo_runtime::RuntimeParametersValue, + >, + new_value: ::core::option::Option< + runtime_types::rococo_runtime::RuntimeParametersValue, + >, + }, + } + } + } pub mod pallet_preimage { use super::runtime_types; pub mod pallet { @@ -48323,27 +56847,42 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::note_preimage`]."] + #[doc = "Register a preimage on-chain."] + #[doc = ""] + #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"] + #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."] note_preimage { bytes: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::unnote_preimage`]."] + #[doc = "Clear an unrequested preimage from the runtime storage."] + #[doc = ""] + #[doc = "If `len` is provided, then it will be a much cheaper operation."] + #[doc = ""] + #[doc = "- `hash`: The hash of the preimage to be removed from the store."] + #[doc = "- `len`: The length of the preimage of `hash`."] unnote_preimage { hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 2)] - #[doc = "See [`Pallet::request_preimage`]."] + #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."] + #[doc = ""] + #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"] + #[doc = "a user may have paid, and take the control of the preimage out of their hands."] request_preimage { hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 3)] - #[doc = "See [`Pallet::unrequest_preimage`]."] + #[doc = "Clear a previously made request for a preimage."] + #[doc = ""] + #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."] unrequest_preimage { hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 4)] - #[doc = "See [`Pallet::ensure_updated`]."] + #[doc = "Ensure that the a bulk of pre-images is upgraded."] + #[doc = ""] + #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."] ensure_updated { hashes: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::H256, @@ -48510,7 +57049,15 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::proxy`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] proxy { real: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48523,7 +57070,15 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::add_proxy`]."] + #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."] + #[doc = "- `proxy_type`: The permissions allowed for this proxy account."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] add_proxy { delegate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48533,7 +57088,13 @@ pub mod api { delay: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::remove_proxy`]."] + #[doc = "Unregister a proxy account for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."] + #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."] remove_proxy { delegate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48543,17 +57104,54 @@ pub mod api { delay: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::remove_proxies`]."] + #[doc = "Unregister all proxy accounts for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "WARNING: This may be called on accounts created by `pure`, however if done, then"] + #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"] remove_proxies, #[codec(index = 4)] - #[doc = "See [`Pallet::create_pure`]."] + #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"] + #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."] + #[doc = ""] + #[doc = "Requires a `Signed` origin."] + #[doc = ""] + #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"] + #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"] + #[doc = "allow for maximum flexibility."] + #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"] + #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"] + #[doc = "want to use `0`."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + #[doc = ""] + #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"] + #[doc = "same sender, with the same parameters."] + #[doc = ""] + #[doc = "Fails if there are insufficient funds to pay for deposit."] create_pure { proxy_type: runtime_types::rococo_runtime::ProxyType, delay: ::core::primitive::u32, index: ::core::primitive::u16, }, #[codec(index = 5)] - #[doc = "See [`Pallet::kill_pure`]."] + #[doc = "Removes a previously spawned pure proxy."] + #[doc = ""] + #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"] + #[doc = "inaccessible."] + #[doc = ""] + #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"] + #[doc = "`pure` with corresponding parameters."] + #[doc = ""] + #[doc = "- `spawner`: The account that originally called `pure` to create this account."] + #[doc = "- `index`: The disambiguation index originally passed to `pure`. Probably `0`."] + #[doc = "- `proxy_type`: The proxy type originally passed to `pure`."] + #[doc = "- `height`: The height of the chain when the call to `pure` was processed."] + #[doc = "- `ext_index`: The extrinsic index in which the call to `pure` was processed."] + #[doc = ""] + #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"] + #[doc = "account whose `pure` call has corresponding parameters."] kill_pure { spawner: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48567,7 +57165,21 @@ pub mod api { ext_index: ::core::primitive::u32, }, #[codec(index = 6)] - #[doc = "See [`Pallet::announce`]."] + #[doc = "Publish the hash of a proxy-call that will be made in the future."] + #[doc = ""] + #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"] + #[doc = "if the delay associated with the proxy relationship is greater than zero."] + #[doc = ""] + #[doc = "No more than `MaxPending` announcements may be made at any one time."] + #[doc = ""] + #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"] + #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] announce { real: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48576,7 +57188,16 @@ pub mod api { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 7)] - #[doc = "See [`Pallet::remove_announcement`]."] + #[doc = "Remove a given announcement."] + #[doc = ""] + #[doc = "May be called by a proxy account to remove a call they previously announced and return"] + #[doc = "the deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] remove_announcement { real: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48585,7 +57206,16 @@ pub mod api { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 8)] - #[doc = "See [`Pallet::reject_announcement`]."] + #[doc = "Remove the given announcement of a delegate."] + #[doc = ""] + #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"] + #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `delegate`: The account that previously announced the call."] + #[doc = "- `call_hash`: The hash of the call to be made."] reject_announcement { delegate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48594,7 +57224,17 @@ pub mod api { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 9)] - #[doc = "See [`Pallet::proxy_announced`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "Removes any corresponding announcement(s)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] proxy_announced { delegate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48760,7 +57400,12 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::add_member`]."] + #[doc = "Introduce a new member."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AddOrigin`."] + #[doc = "- `who`: Account of non-member which will become a member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] add_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48768,7 +57413,12 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::promote_member`]."] + #[doc = "Increment the rank of an existing member by one."] + #[doc = ""] + #[doc = "- `origin`: Must be the `PromoteOrigin`."] + #[doc = "- `who`: Account of existing member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] promote_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48776,7 +57426,13 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::demote_member`]."] + #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"] + #[doc = "then they are removed entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `DemoteOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."] demote_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48784,7 +57440,13 @@ pub mod api { >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::remove_member`]."] + #[doc = "Remove the member entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `RemoveOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = "- `min_rank`: The rank of the member or greater."] + #[doc = ""] + #[doc = "Weight: `O(min_rank)`."] remove_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48793,17 +57455,52 @@ pub mod api { min_rank: ::core::primitive::u16, }, #[codec(index = 4)] - #[doc = "See [`Pallet::vote`]."] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by a member account."] + #[doc = "- `poll`: Index of a poll which is ongoing."] + #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."] + #[doc = ""] + #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."] vote { poll: ::core::primitive::u32, aye: ::core::primitive::bool, }, #[codec(index = 5)] - #[doc = "See [`Pallet::cleanup_poll`]."] + #[doc = "Remove votes from the given poll. It must have ended."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by any account."] + #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"] + #[doc = " exist."] + #[doc = "- `max`: Maximum number of vote items from remove in this call."] + #[doc = ""] + #[doc = "Transaction fees are waived if the operation is successful."] + #[doc = ""] + #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."] cleanup_poll { poll_index: ::core::primitive::u32, max: ::core::primitive::u32, }, + #[codec(index = 6)] + #[doc = "Exchanges a member with a new account and the same existing rank."] + #[doc = ""] + #[doc = "- `origin`: Must be the `ExchangeOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."] + #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."] + exchange_member { + who: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + new_who: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -48848,6 +57545,9 @@ pub mod api { #[codec(index = 8)] #[doc = "The origin is not sufficiently privileged to do the operation."] NoPermission, + #[codec(index = 9)] + #[doc = "The new member to exchange is the same as the old member"] + SameMember, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -48891,6 +57591,12 @@ pub mod api { vote: runtime_types::pallet_ranked_collective::VoteRecord, tally: runtime_types::pallet_ranked_collective::Tally, }, + #[codec(index = 4)] + #[doc = "The member `who` had their `AccountId` changed to `new_who`."] + MemberExchanged { + who: ::subxt::ext::subxt_core::utils::AccountId32, + new_who: ::subxt::ext::subxt_core::utils::AccountId32, + }, } } #[derive( @@ -48960,7 +57666,14 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::as_recovered`]."] + #[doc = "Send a call through a recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."] + #[doc = "- `call`: The call you want to make with the recovered account."] as_recovered { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48971,7 +57684,14 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::set_recovered`]."] + #[doc = "Allow ROOT to bypass the recovery process and set an a rescuer account"] + #[doc = "for a lost account directly."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The \"lost account\" to be recovered."] + #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."] set_recovered { lost: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48983,7 +57703,22 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::create_recovery`]."] + #[doc = "Create a recovery configuration for your account. This makes your account recoverable."] + #[doc = ""] + #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"] + #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"] + #[doc = "in full when the user calls `remove_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"] + #[doc = " ordered and contain no duplicate values."] + #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"] + #[doc = " account can be recovered. Should be less than or equal to the length of the list of"] + #[doc = " friends."] + #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"] + #[doc = " needs to pass before the account can be recovered."] create_recovery { friends: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48992,7 +57727,17 @@ pub mod api { delay_period: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::initiate_recovery`]."] + #[doc = "Initiate the process for recovering a recoverable account."] + #[doc = ""] + #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"] + #[doc = "recovery process. This deposit will always be repatriated to the account"] + #[doc = "trying to be recovered. See `close_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to recover. This account needs to be"] + #[doc = " recoverable (i.e. have a recovery configuration)."] initiate_recovery { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49000,7 +57745,18 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::vouch_recovery`]."] + #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"] + #[doc = "process for that account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""] + #[doc = "for the recoverable account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The lost account that you want to recover."] + #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."] + #[doc = ""] + #[doc = "The combination of these two parameters must point to an active recovery"] + #[doc = "process."] vouch_recovery { lost: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49012,7 +57768,15 @@ pub mod api { >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::claim_recovery`]."] + #[doc = "Allow a successful rescuer to claim their recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""] + #[doc = "who has successfully completed the account recovery process: collected"] + #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"] + #[doc = " you."] claim_recovery { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49020,7 +57784,17 @@ pub mod api { >, }, #[codec(index = 6)] - #[doc = "See [`Pallet::close_recovery`]."] + #[doc = "As the controller of a recoverable account, close an active recovery"] + #[doc = "process for your account."] + #[doc = ""] + #[doc = "Payment: By calling this function, the recoverable account will receive"] + #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account with an active recovery process for it."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `rescuer`: The account trying to rescue this recoverable account."] close_recovery { rescuer: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49028,10 +57802,26 @@ pub mod api { >, }, #[codec(index = 7)] - #[doc = "See [`Pallet::remove_recovery`]."] + #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."] + #[doc = ""] + #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"] + #[doc = "recovery attempts before calling this function else it will fail."] + #[doc = ""] + #[doc = "Payment: By calling this function the recoverable account will unreserve"] + #[doc = "their recovery configuration deposit."] + #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account (i.e. has a recovery configuration)."] remove_recovery, #[codec(index = 8)] - #[doc = "See [`Pallet::cancel_recovered`]."] + #[doc = "Cancel the ability to use `as_recovered` for `account`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you are able to call on-behalf-of."] cancel_recovered { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49210,7 +58000,15 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] submit { proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::OriginCaller, @@ -49225,28 +58023,74 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] place_decision_deposit { index: ::core::primitive::u32 }, #[codec(index = 2)] - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] refund_decision_deposit { index: ::core::primitive::u32 }, #[codec(index = 3)] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] cancel { index: ::core::primitive::u32 }, #[codec(index = 4)] - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] kill { index: ::core::primitive::u32 }, #[codec(index = 5)] - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] nudge_referendum { index: ::core::primitive::u32 }, #[codec(index = 6)] - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] one_fewer_deciding { track: ::core::primitive::u16 }, #[codec(index = 7)] - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] refund_submission_deposit { index: ::core::primitive::u32 }, #[codec(index = 8)] - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] set_metadata { index: ::core::primitive::u32, maybe_hash: ::core::option::Option<::subxt::ext::subxt_core::utils::H256>, @@ -49307,6 +58151,9 @@ pub mod api { #[codec(index = 12)] #[doc = "The preimage does not exist."] PreimageNotExist, + #[codec(index = 13)] + #[doc = "The preimage is stored with a different length than the one provided."] + PreimageStoredWithDifferentLength, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -49349,7 +58196,7 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "A deposit has been slashaed."] + #[doc = "A deposit has been slashed."] DepositSlashed { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, @@ -49475,7 +58322,7 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "A deposit has been slashaed."] + #[doc = "A deposit has been slashed."] DepositSlashed { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, @@ -49822,6 +58669,56 @@ pub mod api { } } } + pub mod pallet_root_testing { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "A dispatch that will fill the block weight up to the given ratio."] + fill_block { + ratio: runtime_types::sp_arithmetic::per_things::Perbill, + }, + #[codec(index = 1)] + trigger_defensive, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "Event dispatched when the trigger_defensive extrinsic is called."] + DefensiveTestCall, + } + } + } pub mod pallet_scheduler { use super::runtime_types; pub mod pallet { @@ -49843,7 +58740,7 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::schedule`]."] + #[doc = "Anonymously schedule a task."] schedule { when: ::core::primitive::u32, maybe_periodic: ::core::option::Option<( @@ -49856,13 +58753,13 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an anonymously scheduled task."] cancel { when: ::core::primitive::u32, index: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::schedule_named`]."] + #[doc = "Schedule a named task."] schedule_named { id: [::core::primitive::u8; 32usize], when: ::core::primitive::u32, @@ -49876,12 +58773,12 @@ pub mod api { >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::cancel_named`]."] + #[doc = "Cancel a named scheduled task."] cancel_named { id: [::core::primitive::u8; 32usize], }, #[codec(index = 4)] - #[doc = "See [`Pallet::schedule_after`]."] + #[doc = "Anonymously schedule a task after a delay."] schedule_after { after: ::core::primitive::u32, maybe_periodic: ::core::option::Option<( @@ -49894,7 +58791,7 @@ pub mod api { >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::schedule_named_after`]."] + #[doc = "Schedule a named task after a delay."] schedule_named_after { id: [::core::primitive::u8; 32usize], after: ::core::primitive::u32, @@ -49907,6 +58804,52 @@ pub mod api { runtime_types::rococo_runtime::RuntimeCall, >, }, + #[codec(index = 6)] + #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"] + #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"] + #[doc = "succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + set_retry { + task: (::core::primitive::u32, ::core::primitive::u32), + retries: ::core::primitive::u8, + period: ::core::primitive::u32, + }, + #[codec(index = 7)] + #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"] + #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"] + #[doc = "it succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + set_retry_named { + id: [::core::primitive::u8; 32usize], + retries: ::core::primitive::u8, + period: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Removes the retry configuration of a task."] + cancel_retry { + task: (::core::primitive::u32, ::core::primitive::u32), + }, + #[codec(index = 9)] + #[doc = "Cancel the retry configuration of a named task."] + cancel_retry_named { + id: [::core::primitive::u8; 32usize], + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -49977,18 +58920,39 @@ pub mod api { ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>, }, #[codec(index = 3)] + #[doc = "Set a retry configuration for some task."] + RetrySet { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + period: ::core::primitive::u32, + retries: ::core::primitive::u8, + }, + #[codec(index = 4)] + #[doc = "Cancel a retry configuration for some task."] + RetryCancelled { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + }, + #[codec(index = 5)] #[doc = "The call for the provided hash was not found so the task has been aborted."] CallUnavailable { task: (::core::primitive::u32, ::core::primitive::u32), id: ::core::option::Option<[::core::primitive::u8; 32usize]>, }, - #[codec(index = 4)] + #[codec(index = 6)] #[doc = "The given task was unable to be renewed since the agenda is full at that block."] PeriodicFailed { task: (::core::primitive::u32, ::core::primitive::u32), id: ::core::option::Option<[::core::primitive::u8; 32usize]>, }, - #[codec(index = 5)] + #[codec(index = 7)] + #[doc = "The given task was unable to be retried since the agenda is full at that block or there"] + #[doc = "was not enough weight to reschedule it."] + RetryFailed { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + }, + #[codec(index = 8)] #[doc = "The given task can never be executed since it is overweight."] PermanentlyOverweight { task: (::core::primitive::u32, ::core::primitive::u32), @@ -50006,6 +58970,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct RetryConfig<_0> { + pub total_retries: ::core::primitive::u8, + pub remaining: ::core::primitive::u8, + pub period: _0, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Scheduled<_0, _1, _2, _3, _4> { pub maybe_id: ::core::option::Option<_0>, pub priority: ::core::primitive::u8, @@ -50037,13 +59016,32 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::set_keys`]."] + #[doc = "Sets the session key(s) of the function caller to `keys`."] + #[doc = "Allows an account to set its session key prior to becoming a validator."] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be signed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"] + #[doc = " fixed."] set_keys { keys: runtime_types::rococo_runtime::SessionKeys, proof: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::purge_keys`]."] + #[doc = "Removes any session key(s) of the function caller."] + #[doc = ""] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be Signed and the account must be either be"] + #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"] + #[doc = "means being a controller account) or directly convertible into a validator ID (which"] + #[doc = "usually means being a stash account)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"] + #[doc = " `T::Keys::key_ids()` which is fixed."] purge_keys, } #[derive( @@ -50124,13 +59122,43 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::bid`]."] + #[doc = "A user outside of the society can make a bid for entry."] + #[doc = ""] + #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"] + #[doc = "when the bid becomes a member, or if the bid calls `unbid`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."] bid { value: ::core::primitive::u128 }, #[codec(index = 1)] - #[doc = "See [`Pallet::unbid`]."] + #[doc = "A bidder can remove their bid for entry into society."] + #[doc = "By doing so, they will have their candidate deposit returned or"] + #[doc = "they will unvouch their voucher."] + #[doc = ""] + #[doc = "Payment: The bid deposit is unreserved if the user made a bid."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."] unbid, #[codec(index = 2)] - #[doc = "See [`Pallet::vouch`]."] + #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."] + #[doc = ""] + #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"] + #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"] + #[doc = "the suspension judgement origin, the member will be banned from vouching again."] + #[doc = ""] + #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"] + #[doc = "be paid as a portion of the reward the member will receive for joining the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The user who you would like to vouch for."] + #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"] + #[doc = "a member in the society."] + #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"] + #[doc = "the society. Tips larger than `value` will be saturated upon payout."] vouch { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50140,10 +59168,23 @@ pub mod api { tip: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "See [`Pallet::unvouch`]."] + #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"] + #[doc = "only a bidder (and not a candidate)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."] unvouch, #[codec(index = 4)] - #[doc = "See [`Pallet::vote`]."] + #[doc = "As a member, vote on a candidate."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `candidate`: The candidate that the member would like to bid on."] + #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"] + #[doc = " rejected (`false`)."] vote { candidate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50152,16 +59193,48 @@ pub mod api { approve: ::core::primitive::bool, }, #[codec(index = 5)] - #[doc = "See [`Pallet::defender_vote`]."] + #[doc = "As a member, vote on the defender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `approve`: A boolean which says if the candidate should be"] + #[doc = "approved (`true`) or rejected (`false`)."] defender_vote { approve: ::core::primitive::bool }, #[codec(index = 6)] - #[doc = "See [`Pallet::payout`]."] + #[doc = "Transfer the first matured payout for the sender and remove it from the records."] + #[doc = ""] + #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"] + #[doc = "payouts."] + #[doc = ""] + #[doc = "Payment: The member will receive a payment equal to their first matured"] + #[doc = "payout to their free balance."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member with"] + #[doc = "payouts remaining."] payout, #[codec(index = 7)] - #[doc = "See [`Pallet::waive_repay`]."] + #[doc = "Repay the payment previously given to the member with the signed origin, remove any"] + #[doc = "pending payments, and elevate them from rank 0 to rank 1."] waive_repay { amount: ::core::primitive::u128 }, #[codec(index = 8)] - #[doc = "See [`Pallet::found_society`]."] + #[doc = "Found the society."] + #[doc = ""] + #[doc = "This is done as a discrete action in order to allow for the"] + #[doc = "pallet to be included into a running chain and can only be done once."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `founder` - The first member and head of the newly founded society."] + #[doc = "- `max_members` - The initial max number of members for the society."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] + #[doc = "- `rules` - The rules of this society concerning membership."] + #[doc = ""] + #[doc = "Complexity: O(1)"] found_society { founder: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50174,10 +59247,27 @@ pub mod api { rules: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 9)] - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Dissolve the society and remove all members."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"] + #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"] + #[doc = "member."] dissolve, #[codec(index = 10)] - #[doc = "See [`Pallet::judge_suspended_member`]."] + #[doc = "Allow suspension judgement origin to make judgement on a suspended member."] + #[doc = ""] + #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"] + #[doc = "any of the existing storage items for that member."] + #[doc = ""] + #[doc = "If a suspended member is rejected, remove all associated storage items, including"] + #[doc = "their payouts, and remove any vouched bids they currently have."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed from the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended member to be judged."] + #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"] + #[doc = " (`true`) or rejects (`false`) a suspended member."] judge_suspended_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50186,7 +59276,18 @@ pub mod api { forgive: ::core::primitive::bool, }, #[codec(index = 11)] - #[doc = "See [`Pallet::set_parameters`]."] + #[doc = "Change the maximum number of members in society and the maximum number of new candidates"] + #[doc = "in a single intake period."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed by the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"] + #[doc = " than the current number of members."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] set_parameters { max_members: ::core::primitive::u32, max_intake: ::core::primitive::u32, @@ -50194,37 +59295,55 @@ pub mod api { candidate_deposit: ::core::primitive::u128, }, #[codec(index = 12)] - #[doc = "See [`Pallet::punish_skeptic`]."] + #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"] + #[doc = "candidate."] punish_skeptic, #[codec(index = 13)] - #[doc = "See [`Pallet::claim_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the"] + #[doc = "the candidate, and only after the period for voting has ended."] claim_membership, #[codec(index = 14)] - #[doc = "See [`Pallet::bestow_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"] + #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"] + #[doc = "clearly rejected."] bestow_membership { candidate: ::subxt::ext::subxt_core::utils::AccountId32, }, #[codec(index = 15)] - #[doc = "See [`Pallet::kick_candidate`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"] + #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"] + #[doc = "have a clear approval."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] kick_candidate { candidate: ::subxt::ext::subxt_core::utils::AccountId32, }, #[codec(index = 16)] - #[doc = "See [`Pallet::resign_candidacy`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the candidate."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] resign_candidacy, #[codec(index = 17)] - #[doc = "See [`Pallet::drop_candidate`]."] + #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"] + #[doc = "signed origin but only at the end of the subsequent round and only for"] + #[doc = "a candidate with more rejections than approvals."] + #[doc = ""] + #[doc = "The bid deposit is lost and the voucher is banned."] drop_candidate { candidate: ::subxt::ext::subxt_core::utils::AccountId32, }, #[codec(index = 18)] - #[doc = "See [`Pallet::cleanup_candidacy`]."] + #[doc = "Remove up to `max` stale votes for the given `candidate`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."] cleanup_candidacy { candidate: ::subxt::ext::subxt_core::utils::AccountId32, max: ::core::primitive::u32, }, #[codec(index = 19)] - #[doc = "See [`Pallet::cleanup_challenge`]."] + #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the challenge round is ended."] cleanup_challenge { challenge_round: ::core::primitive::u32, max: ::core::primitive::u32, @@ -50633,14 +59752,36 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::control_auto_migration`]."] + #[doc = "Control the automatic migration."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."] control_auto_migration { maybe_config: ::core::option::Option< runtime_types::pallet_state_trie_migration::pallet::MigrationLimits, >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::continue_migrate`]."] + #[doc = "Continue the migration for the given `limits`."] + #[doc = ""] + #[doc = "The dispatch origin of this call can be any signed account."] + #[doc = ""] + #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"] + #[doc = "Upon successful execution, the transaction fee is returned."] + #[doc = ""] + #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"] + #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"] + #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"] + #[doc = "`real_size_upper` bytes of read data."] + #[doc = ""] + #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"] + #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"] + #[doc = "from caller, saying that they believed `witness_task` was the last state of the"] + #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"] + #[doc = "holds. In case `witness_task` does not match, the transaction fails."] + #[doc = ""] + #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"] + #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"] + #[doc = "`size` limit can always be overwritten."] continue_migrate { limits: runtime_types::pallet_state_trie_migration::pallet::MigrationLimits, real_size_upper: ::core::primitive::u32, @@ -50648,7 +59789,10 @@ pub mod api { runtime_types::pallet_state_trie_migration::pallet::MigrationTask, }, #[codec(index = 2)] - #[doc = "See [`Pallet::migrate_custom_top`]."] + #[doc = "Migrate the list of top keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] migrate_custom_top { keys: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, @@ -50656,7 +59800,12 @@ pub mod api { witness_size: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::migrate_custom_child`]."] + #[doc = "Migrate the list of child keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "All of the given child keys must be present under one `child_root`."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] migrate_custom_child { root: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, child_keys: ::subxt::ext::subxt_core::alloc::vec::Vec< @@ -50665,12 +59814,20 @@ pub mod api { total_size: ::core::primitive::u32, }, #[codec(index = 4)] - #[doc = "See [`Pallet::set_signed_max_limits`]."] + #[doc = "Set the maximum limit of the signed migration."] set_signed_max_limits { limits: runtime_types::pallet_state_trie_migration::pallet::MigrationLimits, }, #[codec(index = 5)] - #[doc = "See [`Pallet::force_set_progress`]."] + #[doc = "Forcefully set the progress the running migration."] + #[doc = ""] + #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"] + #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"] + #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"] + #[doc = "used, so probably it is already migrated."] + #[doc = ""] + #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"] + #[doc = "process."] force_set_progress { progress_top: runtime_types::pallet_state_trie_migration::pallet::Progress, progress_child: @@ -50772,6 +59929,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] + pub enum HoldReason { + #[codec(index = 0)] + SlashForMigrate, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] pub enum MigrationCompute { #[codec(index = 0)] Signed, @@ -50837,7 +60012,7 @@ pub mod api { ToStart, #[codec(index = 1)] LastKey( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, ), @@ -50867,14 +60042,18 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::sudo`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] sudo { call: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::RuntimeCall, >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::sudo_unchecked_weight`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Sudo user to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] sudo_unchecked_weight { call: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::RuntimeCall, @@ -50882,7 +60061,8 @@ pub mod api { weight: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 2)] - #[doc = "See [`Pallet::set_key`]."] + #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"] + #[doc = "key."] set_key { new: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50890,7 +60070,10 @@ pub mod api { >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::sudo_as`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"] + #[doc = "a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] sudo_as { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50900,6 +60083,11 @@ pub mod api { runtime_types::rococo_runtime::RuntimeCall, >, }, + #[codec(index = 4)] + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] + remove_key, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -50915,10 +60103,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "Error for the Sudo pallet"] + #[doc = "Error for the Sudo pallet."] pub enum Error { #[codec(index = 0)] - #[doc = "Sender must be the Sudo account"] + #[doc = "Sender must be the Sudo account."] RequireSudo, } #[derive( @@ -50946,10 +60134,13 @@ pub mod api { #[codec(index = 1)] #[doc = "The sudo key has been updated."] KeyChanged { - old_sudoer: - ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>, + old: ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>, + new: ::subxt::ext::subxt_core::utils::AccountId32, }, #[codec(index = 2)] + #[doc = "The key was permanently removed."] + KeyRemoved, + #[codec(index = 3)] #[doc = "A [sudo_as](Pallet::sudo_as) call just took place."] SudoAsDone { sudo_result: @@ -50979,7 +60170,25 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::set`]."] + #[doc = "Set the current time."] + #[doc = ""] + #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"] + #[doc = "phase, if this call hasn't been invoked by that time."] + #[doc = ""] + #[doc = "The timestamp should be greater than the previous one by the amount specified by"] + #[doc = "[`Config::MinimumPeriod`]."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"] + #[doc = "that changing the complexity of this call could result exhausting the resources in a"] + #[doc = "block to execute any other calls."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"] + #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"] + #[doc = " `on_finalize`)"] + #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."] set { #[codec(compact)] now: ::core::primitive::u64, @@ -51127,7 +60336,22 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::propose_spend`]."] + #[doc = "Put forward a suggestion for spending."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] + #[doc = "It is returned once the proposal is awarded."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Proposed`] if successful."] propose_spend { #[codec(compact)] value: ::core::primitive::u128, @@ -51137,19 +60361,65 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::reject_proposal`]."] + #[doc = "Reject a proposed spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "The original deposit will be slashed."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Rejected`] if successful."] reject_proposal { #[codec(compact)] proposal_id: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::approve_proposal`]."] + #[doc = "Approve a proposal."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::ApproveOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] + #[doc = "deposit will be returned."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = " - O(1)."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "No events are emitted from this dispatch."] approve_proposal { #[codec(compact)] proposal_id: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::spend_local`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."] + #[doc = ""] + #[doc = "### Details"] + #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"] + #[doc = "beneficiary."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The destination account for the transfer."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::SpendApproved`] if successful."] spend_local { #[codec(compact)] amount: ::core::primitive::u128, @@ -51159,13 +60429,58 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::remove_approval`]."] + #[doc = "Force a previously approved proposal to be removed from the approval queue."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The original deposit will no longer be returned."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `proposal_id`: The index of a proposal"] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(A) where `A` is the number of approvals"] + #[doc = ""] + #[doc = "### Errors"] + #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"] + #[doc = " approval queue, i.e., the proposal has not been approved. This could also mean the"] + #[doc = " proposal does not exist altogether, thus there is no way it would have been approved"] + #[doc = " in the first place."] remove_approval { #[codec(compact)] proposal_id: ::core::primitive::u32, }, #[codec(index = 5)] - #[doc = "See [`Pallet::spend`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"] + #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"] + #[doc = "for assertion using the [`Config::BalanceConverter`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"] + #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"] + #[doc = "the [`Config::PayoutPeriod`]."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The beneficiary of the spend."] + #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"] + #[doc = " the past if the resulting spend has not yet expired according to the"] + #[doc = " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"] + #[doc = " approval."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendApproved`] if successful."] spend { asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -51173,18 +60488,69 @@ pub mod api { #[codec(compact)] amount: ::core::primitive::u128, beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, >, valid_from: ::core::option::Option<::core::primitive::u32>, }, #[codec(index = 6)] - #[doc = "See [`Pallet::payout`]."] + #[doc = "Claim a spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"] + #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."] + #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"] + #[doc = "dispatchable before retrying with the current function."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Paid`] if successful."] payout { index: ::core::primitive::u32 }, #[codec(index = 7)] - #[doc = "See [`Pallet::check_status`]."] + #[doc = "Check the status of the spend and remove it from the storage if processed."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The status check is a prerequisite for retrying a failed payout."] + #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"] + #[doc = "function. In such instances, transaction fees are refunded."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."] + #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."] check_status { index: ::core::primitive::u32 }, #[codec(index = 8)] - #[doc = "See [`Pallet::void_spend`]."] + #[doc = "Void previously approved spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "A spend void is only possible if the payout has not been attempted yet."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendVoided`] if successful."] void_spend { index: ::core::primitive::u32 }, } #[derive( @@ -51313,7 +60679,7 @@ pub mod api { asset_kind: runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, amount: ::core::primitive::u128, - beneficiary: runtime_types::xcm::VersionedMultiLocation, + beneficiary: runtime_types::xcm::VersionedLocation, valid_from: ::core::primitive::u32, expire_at: ::core::primitive::u32, }, @@ -51412,14 +60778,43 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + #[doc = ""] + #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"] + #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"] + #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"] + #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"] + #[doc = "event is deposited."] batch { calls: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::rococo_runtime::RuntimeCall, >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::as_derivative`]."] + #[doc = "Send a call through an indexed pseudonym of the sender."] + #[doc = ""] + #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"] + #[doc = "use the same filter as the origin of this call."] + #[doc = ""] + #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."] + #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"] + #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"] + #[doc = "in the Multisig pallet instead."] + #[doc = ""] + #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] as_derivative { index: ::core::primitive::u16, call: ::subxt::ext::subxt_core::alloc::boxed::Box< @@ -51427,14 +60822,31 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::batch_all`]."] + #[doc = "Send a batch of dispatch calls and atomically execute them."] + #[doc = "The whole transaction will rollback and fail if any of the calls failed."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] batch_all { calls: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::rococo_runtime::RuntimeCall, >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::dispatch_as`]."] + #[doc = "Dispatches a function call with a provided origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] dispatch_as { as_origin: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::OriginCaller, @@ -51444,14 +60856,31 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::force_batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = "Unlike `batch`, it allows errors and won't interrupt."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] force_batch { calls: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::rococo_runtime::RuntimeCall, >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::with_weight`]."] + #[doc = "Dispatch a function call with a specified weight."] + #[doc = ""] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Root origin to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] with_weight { call: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::RuntimeCall, @@ -51546,10 +60975,28 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::vest`]."] + #[doc = "Unlock any vested funds of the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] vest, #[codec(index = 1)] - #[doc = "See [`Pallet::vest_other`]."] + #[doc = "Unlock any vested funds of a `target` account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] vest_other { target: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -51557,7 +61004,19 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::vested_transfer`]."] + #[doc = "Create a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account receiving the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] vested_transfer { target: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -51569,7 +61028,20 @@ pub mod api { >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::force_vested_transfer`]."] + #[doc = "Force a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `source`: The account whose funds should be transferred."] + #[doc = "- `target`: The account that should be transferred the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] force_vested_transfer { source: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -51585,11 +61057,45 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::merge_schedules`]."] + #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"] + #[doc = "the highest possible start and end blocks. If both schedules have already started the"] + #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"] + #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"] + #[doc = "unmodified."] + #[doc = ""] + #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."] + #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."] + #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"] + #[doc = "and both will be removed."] + #[doc = ""] + #[doc = "Merged schedule attributes:"] + #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"] + #[doc = " current_block)`."] + #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."] + #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `schedule1_index`: index of the first schedule to merge."] + #[doc = "- `schedule2_index`: index of the second schedule to merge."] merge_schedules { schedule1_index: ::core::primitive::u32, schedule2_index: ::core::primitive::u32, }, + #[codec(index = 5)] + #[doc = "Force remove a vesting schedule"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `target`: An account that has a vesting schedule"] + #[doc = "- `schedule_index`: The vesting schedule index that should be removed"] + force_remove_vesting_schedule { + target: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + schedule_index: ::core::primitive::u32, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -51714,24 +61220,20 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::whitelist_call`]."] whitelist_call { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 1)] - #[doc = "See [`Pallet::remove_whitelisted_call`]."] remove_whitelisted_call { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 2)] - #[doc = "See [`Pallet::dispatch_whitelisted_call`]."] dispatch_whitelisted_call { call_hash: ::subxt::ext::subxt_core::utils::H256, call_encoded_len: ::core::primitive::u32, call_weight_witness: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 3)] - #[doc = "See [`Pallet::dispatch_whitelisted_call_with_preimage`]."] dispatch_whitelisted_call_with_preimage { call: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::RuntimeCall, @@ -51827,113 +61329,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - #[codec(index = 0)] - #[doc = "See [`Pallet::send`]."] - send { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - message: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedXcm1, - >, - }, - #[codec(index = 1)] - #[doc = "See [`Pallet::teleport_assets`]."] - teleport_assets { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - assets: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiAssets, - >, - fee_asset_item: ::core::primitive::u32, - }, - #[codec(index = 2)] - #[doc = "See [`Pallet::reserve_transfer_assets`]."] - reserve_transfer_assets { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - assets: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiAssets, - >, - fee_asset_item: ::core::primitive::u32, - }, - #[codec(index = 3)] - #[doc = "See [`Pallet::execute`]."] - execute { - message: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedXcm2, - >, - max_weight: runtime_types::sp_weights::weight_v2::Weight, - }, - #[codec(index = 4)] - #[doc = "See [`Pallet::force_xcm_version`]."] - force_xcm_version { - location: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >, - version: ::core::primitive::u32, - }, - #[codec(index = 5)] - #[doc = "See [`Pallet::force_default_xcm_version`]."] - force_default_xcm_version { - maybe_xcm_version: ::core::option::Option<::core::primitive::u32>, - }, - #[codec(index = 6)] - #[doc = "See [`Pallet::force_subscribe_version_notify`]."] - force_subscribe_version_notify { - location: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - }, - #[codec(index = 7)] - #[doc = "See [`Pallet::force_unsubscribe_version_notify`]."] - force_unsubscribe_version_notify { - location: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - }, - #[codec(index = 8)] - #[doc = "See [`Pallet::limited_reserve_transfer_assets`]."] - limited_reserve_transfer_assets { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - assets: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiAssets, - >, - fee_asset_item: ::core::primitive::u32, - weight_limit: runtime_types::xcm::v3::WeightLimit, - }, - #[codec(index = 9)] - #[doc = "See [`Pallet::limited_teleport_assets`]."] - limited_teleport_assets { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - assets: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiAssets, - >, - fee_asset_item: ::core::primitive::u32, - weight_limit: runtime_types::xcm::v3::WeightLimit, - }, - #[codec(index = 10)] - #[doc = "See [`Pallet::force_suspension`]."] - force_suspension { suspended: ::core::primitive::bool }, - } + # [codec (index = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm1 > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm2 > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v4 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = " notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = " `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = " to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = " and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = " assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = " from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = " the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = " mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = " This is usually as simple as:"] # [doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = " but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = " parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = " transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm1 > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -51965,7 +61361,7 @@ pub mod api { #[doc = "The message's weight could not be determined."] UnweighableMessage, #[codec(index = 4)] - #[doc = "The destination `MultiLocation` provided cannot be inverted."] + #[doc = "The destination `Location` provided cannot be inverted."] DestinationNotInvertible, #[codec(index = 5)] #[doc = "The assets to be sent are empty."] @@ -51993,8 +61389,8 @@ pub mod api { #[doc = "The location is invalid since it already has a subscription from us."] AlreadySubscribed, #[codec(index = 13)] - #[doc = "Invalid asset for the operation."] - InvalidAsset, + #[doc = "Could not check-out the assets for teleportation to the destination chain."] + CannotCheckOutTeleport, #[codec(index = 14)] #[doc = "The owner does not own (all) of the asset that they wish to do the operation on."] LowBalance, @@ -52013,6 +61409,18 @@ pub mod api { #[codec(index = 19)] #[doc = "The unlock operation cannot succeed because there are still consumers of the lock."] InUse, + #[codec(index = 21)] + #[doc = "Invalid asset, reserve chain could not be determined for it."] + InvalidAssetUnknownReserve, + #[codec(index = 22)] + #[doc = "Invalid asset, do not support remote asset reserves with different fees reserves."] + InvalidAssetUnsupportedReserve, + #[codec(index = 23)] + #[doc = "Too many assets with different reserve locations have been attempted for transfer."] + TooManyReserves, + #[codec(index = 24)] + #[doc = "Local XCM execution incomplete."] + LocalExecutionIncomplete, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52033,14 +61441,14 @@ pub mod api { #[codec(index = 0)] #[doc = "Execution of an XCM message was attempted."] Attempted { - outcome: runtime_types::xcm::v3::traits::Outcome, + outcome: runtime_types::staging_xcm::v4::traits::Outcome, }, #[codec(index = 1)] #[doc = "A XCM message was sent."] Sent { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - message: runtime_types::xcm::v3::Xcm1, + origin: runtime_types::staging_xcm::v4::location::Location, + destination: runtime_types::staging_xcm::v4::location::Location, + message: runtime_types::staging_xcm::v4::Xcm1, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 2)] @@ -52048,7 +61456,7 @@ pub mod api { #[doc = "matching query was never registered, it may be because it is a duplicate response, or"] #[doc = "because the query timed out."] UnexpectedResponse { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 3)] @@ -52056,7 +61464,7 @@ pub mod api { #[doc = "no registered notification call."] ResponseReady { query_id: ::core::primitive::u64, - response: runtime_types::xcm::v3::Response, + response: runtime_types::staging_xcm::v4::Response, }, #[codec(index = 4)] #[doc = "Query response has been received and query is removed. The registered notification has"] @@ -52099,10 +61507,10 @@ pub mod api { #[doc = "not match that expected. The query remains registered for a later, valid, response to"] #[doc = "be received and acted upon."] InvalidResponder { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, expected_location: ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, + runtime_types::staging_xcm::v4::location::Location, >, }, #[codec(index = 9)] @@ -52114,7 +61522,7 @@ pub mod api { #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"] #[doc = "needed."] InvalidResponderVersion { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 10)] @@ -52124,31 +61532,31 @@ pub mod api { #[doc = "Some assets have been placed in an asset trap."] AssetsTrapped { hash: ::subxt::ext::subxt_core::utils::H256, - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - assets: runtime_types::xcm::VersionedMultiAssets, + origin: runtime_types::staging_xcm::v4::location::Location, + assets: runtime_types::xcm::VersionedAssets, }, #[codec(index = 12)] #[doc = "An XCM version change notification message has been attempted to be sent."] #[doc = ""] #[doc = "The cost of sending it (borne by the chain) is included."] VersionChangeNotified { - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + destination: runtime_types::staging_xcm::v4::location::Location, result: ::core::primitive::u32, - cost: runtime_types::xcm::v3::multiasset::MultiAssets, + cost: runtime_types::staging_xcm::v4::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 13)] #[doc = "The supported version of a location has been changed. This might be through an"] #[doc = "automatic notification or a manual intervention."] SupportedVersionChanged { - location: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + location: runtime_types::staging_xcm::v4::location::Location, version: ::core::primitive::u32, }, #[codec(index = 14)] #[doc = "A given location which had a version change subscription was dropped owing to an error"] #[doc = "sending the notification to it."] NotifyTargetSendFail { - location: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + location: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, error: runtime_types::xcm::v3::traits::Error, }, @@ -52156,7 +61564,7 @@ pub mod api { #[doc = "A given location which had a version change subscription was dropped owing to an error"] #[doc = "migrating the location to our new XCM format."] NotifyTargetMigrationFail { - location: runtime_types::xcm::VersionedMultiLocation, + location: runtime_types::xcm::VersionedLocation, query_id: ::core::primitive::u64, }, #[codec(index = 16)] @@ -52168,7 +61576,7 @@ pub mod api { #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"] #[doc = "needed."] InvalidQuerierVersion { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 17)] @@ -52176,50 +61584,52 @@ pub mod api { #[doc = "not match the expected. The query remains registered for a later, valid, response to"] #[doc = "be received and acted upon."] InvalidQuerier { - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, + origin: runtime_types::staging_xcm::v4::location::Location, query_id: ::core::primitive::u64, - expected_querier: - runtime_types::staging_xcm::v3::multilocation::MultiLocation, + expected_querier: runtime_types::staging_xcm::v4::location::Location, maybe_actual_querier: ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, + runtime_types::staging_xcm::v4::location::Location, >, }, #[codec(index = 18)] #[doc = "A remote has requested XCM version change notification from us and we have honored it."] #[doc = "A version information message is sent to them and its cost is included."] VersionNotifyStarted { - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - cost: runtime_types::xcm::v3::multiasset::MultiAssets, + destination: runtime_types::staging_xcm::v4::location::Location, + cost: runtime_types::staging_xcm::v4::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 19)] #[doc = "We have requested that a remote chain send us XCM version change notifications."] VersionNotifyRequested { - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - cost: runtime_types::xcm::v3::multiasset::MultiAssets, + destination: runtime_types::staging_xcm::v4::location::Location, + cost: runtime_types::staging_xcm::v4::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 20)] #[doc = "We have requested that a remote chain stops sending us XCM version change"] #[doc = "notifications."] VersionNotifyUnrequested { - destination: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - cost: runtime_types::xcm::v3::multiasset::MultiAssets, + destination: runtime_types::staging_xcm::v4::location::Location, + cost: runtime_types::staging_xcm::v4::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 21)] #[doc = "Fees were paid from a location for an operation (often for using `SendXcm`)."] FeesPaid { - paying: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - fees: runtime_types::xcm::v3::multiasset::MultiAssets, + paying: runtime_types::staging_xcm::v4::location::Location, + fees: runtime_types::staging_xcm::v4::asset::Assets, }, #[codec(index = 22)] #[doc = "Some assets have been claimed from an asset trap"] AssetsClaimed { hash: ::subxt::ext::subxt_core::utils::H256, - origin: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - assets: runtime_types::xcm::VersionedMultiAssets, + origin: runtime_types::staging_xcm::v4::location::Location, + assets: runtime_types::xcm::VersionedAssets, }, + #[codec(index = 23)] + #[doc = "A XCM version migration finished."] + VersionMigrationFinished { version: ::core::primitive::u32 }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52237,9 +61647,9 @@ pub mod api { )] pub enum Origin { #[codec(index = 0)] - Xcm(runtime_types::staging_xcm::v3::multilocation::MultiLocation), + Xcm(runtime_types::staging_xcm::v4::location::Location), #[codec(index = 1)] - Response(runtime_types::staging_xcm::v3::multilocation::MultiLocation), + Response(runtime_types::staging_xcm::v4::location::Location), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52258,16 +61668,16 @@ pub mod api { pub enum QueryStatus<_0> { #[codec(index = 0)] Pending { - responder: runtime_types::xcm::VersionedMultiLocation, + responder: runtime_types::xcm::VersionedLocation, maybe_match_querier: - ::core::option::Option, + ::core::option::Option, maybe_notify: ::core::option::Option<(::core::primitive::u8, ::core::primitive::u8)>, timeout: _0, }, #[codec(index = 1)] VersionNotifier { - origin: runtime_types::xcm::VersionedMultiLocation, + origin: runtime_types::xcm::VersionedLocation, is_active: ::core::primitive::bool, }, #[codec(index = 2)] @@ -52292,8 +61702,8 @@ pub mod api { )] pub struct RemoteLockedFungibleRecord<_0> { pub amount: ::core::primitive::u128, - pub owner: runtime_types::xcm::VersionedMultiLocation, - pub locker: runtime_types::xcm::VersionedMultiLocation, + pub owner: runtime_types::xcm::VersionedLocation, + pub locker: runtime_types::xcm::VersionedLocation, pub consumers: runtime_types::bounded_collections::bounded_vec::BoundedVec27<( _0, ::core::primitive::u128, @@ -52476,7 +61886,7 @@ pub mod api { } pub mod polkadot_primitives { use super::runtime_types; - pub mod v6 { + pub mod v7 { use super::runtime_types; pub mod assignment_app { use super::runtime_types; @@ -52494,7 +61904,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); } pub mod async_backing { use super::runtime_types; @@ -52530,7 +61940,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct BackingState < _0 , _1 > { pub constraints : runtime_types :: polkadot_primitives :: v6 :: async_backing :: Constraints < _1 > , pub pending_availability : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_primitives :: v6 :: async_backing :: CandidatePendingAvailability < _0 , _1 > > , } + pub struct BackingState < _0 , _1 > { pub constraints : runtime_types :: polkadot_primitives :: v7 :: async_backing :: Constraints < _1 > , pub pending_availability : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_primitives :: v7 :: async_backing :: CandidatePendingAvailability < _0 , _1 > > , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52548,9 +61958,9 @@ pub mod api { pub struct CandidatePendingAvailability<_0, _1> { pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash, pub descriptor: - runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, + runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, pub commitments: - runtime_types::polkadot_primitives::v6::CandidateCommitments<_1>, + runtime_types::polkadot_primitives::v7::CandidateCommitments<_1>, pub relay_parent_number: _1, pub max_pov_size: ::core::primitive::u32, } @@ -52568,7 +61978,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Constraints < _0 > { pub min_relay_parent_number : _0 , pub max_pov_size : :: core :: primitive :: u32 , pub max_code_size : :: core :: primitive :: u32 , pub ump_remaining : :: core :: primitive :: u32 , pub ump_remaining_bytes : :: core :: primitive :: u32 , pub max_ump_num_per_candidate : :: core :: primitive :: u32 , pub dmp_remaining_messages : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < _0 > , pub hrmp_inbound : runtime_types :: polkadot_primitives :: v6 :: async_backing :: InboundHrmpLimitations < _0 > , pub hrmp_channels_out : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: polkadot_parachain_primitives :: primitives :: Id , runtime_types :: polkadot_primitives :: v6 :: async_backing :: OutboundHrmpChannelLimitations ,) > , pub max_hrmp_num_per_candidate : :: core :: primitive :: u32 , pub required_parent : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub upgrade_restriction : :: core :: option :: Option < runtime_types :: polkadot_primitives :: v6 :: UpgradeRestriction > , pub future_validation_code : :: core :: option :: Option < (_0 , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > , } + pub struct Constraints < _0 > { pub min_relay_parent_number : _0 , pub max_pov_size : :: core :: primitive :: u32 , pub max_code_size : :: core :: primitive :: u32 , pub ump_remaining : :: core :: primitive :: u32 , pub ump_remaining_bytes : :: core :: primitive :: u32 , pub max_ump_num_per_candidate : :: core :: primitive :: u32 , pub dmp_remaining_messages : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < _0 > , pub hrmp_inbound : runtime_types :: polkadot_primitives :: v7 :: async_backing :: InboundHrmpLimitations < _0 > , pub hrmp_channels_out : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: polkadot_parachain_primitives :: primitives :: Id , runtime_types :: polkadot_primitives :: v7 :: async_backing :: OutboundHrmpChannelLimitations ,) > , pub max_hrmp_num_per_candidate : :: core :: primitive :: u32 , pub required_parent : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub upgrade_restriction : :: core :: option :: Option < runtime_types :: polkadot_primitives :: v7 :: UpgradeRestriction > , pub future_validation_code : :: core :: option :: Option < (_0 , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52621,7 +62031,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52636,7 +62046,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); + pub struct Signature(pub [::core::primitive::u8; 64usize]); } pub mod executor_params { use super::runtime_types; @@ -52665,12 +62075,12 @@ pub mod api { PrecheckingMaxMemory(::core::primitive::u64), #[codec(index = 5)] PvfPrepTimeout( - runtime_types::polkadot_primitives::v6::PvfPrepTimeoutKind, + runtime_types::polkadot_primitives::v7::PvfPrepKind, ::core::primitive::u64, ), #[codec(index = 6)] PvfExecTimeout( - runtime_types::polkadot_primitives::v6::PvfExecTimeoutKind, + runtime_types::polkadot_primitives::v7::PvfExecKind, ::core::primitive::u64, ), #[codec(index = 7)] @@ -52692,7 +62102,7 @@ pub mod api { )] pub struct ExecutorParams( pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParam, + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParam, >, ); } @@ -52714,9 +62124,9 @@ pub mod api { )] pub struct UncheckedSigned<_0, _1> { pub payload: _0, - pub validator_index: runtime_types::polkadot_primitives::v6::ValidatorIndex, + pub validator_index: runtime_types::polkadot_primitives::v7::ValidatorIndex, pub signature: - runtime_types::polkadot_primitives::v6::validator_app::Signature, + runtime_types::polkadot_primitives::v7::validator_app::Signature, #[codec(skip)] pub __ignore: ::core::marker::PhantomData<_1>, } @@ -52739,12 +62149,12 @@ pub mod api { )] pub struct DisputeProof { pub time_slot: - runtime_types::polkadot_primitives::v6::slashing::DisputesTimeSlot, + runtime_types::polkadot_primitives::v7::slashing::DisputesTimeSlot, pub kind: - runtime_types::polkadot_primitives::v6::slashing::SlashingOffenceKind, - pub validator_index: runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::slashing::SlashingOffenceKind, + pub validator_index: runtime_types::polkadot_primitives::v7::ValidatorIndex, pub validator_id: - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52797,11 +62207,11 @@ pub mod api { )] pub struct PendingSlashes { pub keys: ::subxt::ext::subxt_core::utils::KeyedVec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::ValidatorIndex, + runtime_types::polkadot_primitives::v7::validator_app::Public, >, pub kind: - runtime_types::polkadot_primitives::v6::slashing::SlashingOffenceKind, + runtime_types::polkadot_primitives::v7::slashing::SlashingOffenceKind, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52840,7 +62250,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52855,7 +62265,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); + pub struct Signature(pub [::core::primitive::u8; 64usize]); + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ApprovalVotingParams { + pub max_approval_coalesce_count: ::core::primitive::u32, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52893,9 +62321,9 @@ pub mod api { )] pub struct BackedCandidate<_0> { pub candidate: - runtime_types::polkadot_primitives::v6::CommittedCandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CommittedCandidateReceipt<_0>, pub validity_votes: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidityAttestation, + runtime_types::polkadot_primitives::v7::ValidityAttestation, >, pub validator_indices: ::subxt::ext::subxt_core::utils::bits::DecodedBits< ::core::primitive::u8, @@ -52918,11 +62346,11 @@ pub mod api { )] pub struct CandidateCommitments<_0> { pub upward_messages: - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec3< ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, >, pub horizontal_messages: - runtime_types::bounded_collections::bounded_vec::BoundedVec3< + runtime_types::bounded_collections::bounded_vec::BoundedVec4< runtime_types::polkadot_core_primitives::OutboundHrmpMessage< runtime_types::polkadot_parachain_primitives::primitives::Id, >, @@ -52949,7 +62377,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct CandidateDescriptor < _0 > { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub relay_parent : _0 , pub collator : runtime_types :: polkadot_primitives :: v6 :: collator_app :: Public , pub persisted_validation_data_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub pov_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub erasure_root : :: subxt :: ext :: subxt_core :: utils :: H256 , pub signature : runtime_types :: polkadot_primitives :: v6 :: collator_app :: Signature , pub para_head : :: subxt :: ext :: subxt_core :: utils :: H256 , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } + pub struct CandidateDescriptor < _0 > { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub relay_parent : _0 , pub collator : runtime_types :: polkadot_primitives :: v7 :: collator_app :: Public , pub persisted_validation_data_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub pov_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub erasure_root : :: subxt :: ext :: subxt_core :: utils :: H256 , pub signature : runtime_types :: polkadot_primitives :: v7 :: collator_app :: Signature , pub para_head : :: subxt :: ext :: subxt_core :: utils :: H256 , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52967,23 +62395,23 @@ pub mod api { pub enum CandidateEvent<_0> { #[codec(index = 0)] CandidateBacked( - runtime_types::polkadot_primitives::v6::CandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CandidateReceipt<_0>, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, - runtime_types::polkadot_primitives::v6::GroupIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, + runtime_types::polkadot_primitives::v7::GroupIndex, ), #[codec(index = 1)] CandidateIncluded( - runtime_types::polkadot_primitives::v6::CandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CandidateReceipt<_0>, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, - runtime_types::polkadot_primitives::v6::GroupIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, + runtime_types::polkadot_primitives::v7::GroupIndex, ), #[codec(index = 2)] CandidateTimedOut( - runtime_types::polkadot_primitives::v6::CandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CandidateReceipt<_0>, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, ), } #[derive( @@ -53001,7 +62429,7 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct CandidateReceipt<_0> { - pub descriptor: runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, + pub descriptor: runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, pub commitments_hash: ::subxt::ext::subxt_core::utils::H256, } #[derive( @@ -53019,8 +62447,8 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct CommittedCandidateReceipt<_0> { - pub descriptor: runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, - pub commitments: runtime_types::polkadot_primitives::v6::CandidateCommitments< + pub descriptor: runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, + pub commitments: runtime_types::polkadot_primitives::v7::CandidateCommitments< ::core::primitive::u32, >, } @@ -53056,9 +62484,9 @@ pub mod api { )] pub enum CoreState<_0, _1> { #[codec(index = 0)] - Occupied(runtime_types::polkadot_primitives::v6::OccupiedCore<_0, _1>), + Occupied(runtime_types::polkadot_primitives::v7::OccupiedCore<_0, _1>), #[codec(index = 1)] - Scheduled(runtime_types::polkadot_primitives::v6::ScheduledCore), + Scheduled(runtime_types::polkadot_primitives::v7::ScheduledCore), #[codec(index = 2)] Free, } @@ -53104,9 +62532,9 @@ pub mod api { )] pub enum DisputeStatement { #[codec(index = 0)] - Valid(runtime_types::polkadot_primitives::v6::ValidDisputeStatementKind), + Valid(runtime_types::polkadot_primitives::v7::ValidDisputeStatementKind), #[codec(index = 1)] - Invalid(runtime_types::polkadot_primitives::v6::InvalidDisputeStatementKind), + Invalid(runtime_types::polkadot_primitives::v7::InvalidDisputeStatementKind), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -53126,9 +62554,9 @@ pub mod api { pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash, pub session: ::core::primitive::u32, pub statements: ::subxt::ext::subxt_core::alloc::vec::Vec<( - runtime_types::polkadot_primitives::v6::DisputeStatement, - runtime_types::polkadot_primitives::v6::ValidatorIndex, - runtime_types::polkadot_primitives::v6::validator_app::Signature, + runtime_types::polkadot_primitives::v7::DisputeStatement, + runtime_types::polkadot_primitives::v7::ValidatorIndex, + runtime_types::polkadot_primitives::v7::validator_app::Signature, )>, } #[derive( @@ -53218,18 +62646,18 @@ pub mod api { )] pub struct InherentData<_0> { pub bitfields: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::signed::UncheckedSigned< - runtime_types::polkadot_primitives::v6::AvailabilityBitfield, - runtime_types::polkadot_primitives::v6::AvailabilityBitfield, + runtime_types::polkadot_primitives::v7::signed::UncheckedSigned< + runtime_types::polkadot_primitives::v7::AvailabilityBitfield, + runtime_types::polkadot_primitives::v7::AvailabilityBitfield, >, >, pub backed_candidates: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::BackedCandidate< + runtime_types::polkadot_primitives::v7::BackedCandidate< ::subxt::ext::subxt_core::utils::H256, >, >, pub disputes: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::DisputeStatementSet, + runtime_types::polkadot_primitives::v7::DisputeStatementSet, >, pub parent_header: _0, } @@ -53267,21 +62695,21 @@ pub mod api { )] pub struct OccupiedCore<_0, _1> { pub next_up_on_available: ::core::option::Option< - runtime_types::polkadot_primitives::v6::ScheduledCore, + runtime_types::polkadot_primitives::v7::ScheduledCore, >, pub occupied_since: _1, pub time_out_at: _1, pub next_up_on_time_out: ::core::option::Option< - runtime_types::polkadot_primitives::v6::ScheduledCore, + runtime_types::polkadot_primitives::v7::ScheduledCore, >, pub availability: ::subxt::ext::subxt_core::utils::bits::DecodedBits< ::core::primitive::u8, ::subxt::ext::subxt_core::utils::bits::Lsb0, >, - pub group_responsible: runtime_types::polkadot_primitives::v6::GroupIndex, + pub group_responsible: runtime_types::polkadot_primitives::v7::GroupIndex, pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash, pub candidate_descriptor: - runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, + runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -53340,7 +62768,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct PvfCheckStatement { pub accept : :: core :: primitive :: bool , pub subject : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub session_index : :: core :: primitive :: u32 , pub validator_index : runtime_types :: polkadot_primitives :: v6 :: ValidatorIndex , } + pub struct PvfCheckStatement { pub accept : :: core :: primitive :: bool , pub subject : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub session_index : :: core :: primitive :: u32 , pub validator_index : runtime_types :: polkadot_primitives :: v7 :: ValidatorIndex , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -53355,7 +62783,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum PvfExecTimeoutKind { + pub enum PvfExecKind { #[codec(index = 0)] Backing, #[codec(index = 1)] @@ -53375,11 +62803,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum PvfPrepTimeoutKind { + pub enum PvfPrepKind { #[codec(index = 0)] Precheck, #[codec(index = 1)] - Lenient, + Prepare, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -53398,7 +62826,7 @@ pub mod api { pub struct ScheduledCore { pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, pub collator: ::core::option::Option< - runtime_types::polkadot_primitives::v6::collator_app::Public, + runtime_types::polkadot_primitives::v7::collator_app::Public, >, } #[derive( @@ -53419,14 +62847,14 @@ pub mod api { pub session: ::core::primitive::u32, pub backing_validators_per_candidate: ::subxt::ext::subxt_core::alloc::vec::Vec<( - runtime_types::polkadot_primitives::v6::CandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CandidateReceipt<_0>, ::subxt::ext::subxt_core::alloc::vec::Vec<( - runtime_types::polkadot_primitives::v6::ValidatorIndex, - runtime_types::polkadot_primitives::v6::ValidityAttestation, + runtime_types::polkadot_primitives::v7::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidityAttestation, )>, )>, pub disputes: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::DisputeStatementSet, + runtime_types::polkadot_primitives::v7::DisputeStatementSet, >, } #[derive( @@ -53445,24 +62873,24 @@ pub mod api { )] pub struct SessionInfo { pub active_validator_indices: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >, pub random_seed: [::core::primitive::u8; 32usize], pub dispute_period: ::core::primitive::u32, - pub validators: runtime_types::polkadot_primitives::v6::IndexedVec1< - runtime_types::polkadot_primitives::v6::ValidatorIndex, - runtime_types::polkadot_primitives::v6::validator_app::Public, + pub validators: runtime_types::polkadot_primitives::v7::IndexedVec1< + runtime_types::polkadot_primitives::v7::ValidatorIndex, + runtime_types::polkadot_primitives::v7::validator_app::Public, >, pub discovery_keys: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::sp_authority_discovery::app::Public, >, pub assignment_keys: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::assignment_app::Public, + runtime_types::polkadot_primitives::v7::assignment_app::Public, >, - pub validator_groups: runtime_types::polkadot_primitives::v6::IndexedVec2< - runtime_types::polkadot_primitives::v6::GroupIndex, + pub validator_groups: runtime_types::polkadot_primitives::v7::IndexedVec2< + runtime_types::polkadot_primitives::v7::GroupIndex, ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >, >, pub n_cores: ::core::primitive::u32, @@ -53533,6 +62961,12 @@ pub mod api { BackingValid(::subxt::ext::subxt_core::utils::H256), #[codec(index = 3)] ApprovalChecking, + #[codec(index = 4)] + ApprovalCheckingMultipleCandidates( + ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::polkadot_core_primitives::CandidateHash, + >, + ), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, @@ -53566,9 +63000,41 @@ pub mod api { )] pub enum ValidityAttestation { #[codec(index = 1)] - Implicit(runtime_types::polkadot_primitives::v6::validator_app::Signature), + Implicit(runtime_types::polkadot_primitives::v7::validator_app::Signature), #[codec(index = 2)] - Explicit(runtime_types::polkadot_primitives::v6::validator_app::Signature), + Explicit(runtime_types::polkadot_primitives::v7::validator_app::Signature), + } + } + pub mod vstaging { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct SchedulerParams<_0> { + pub group_rotation_frequency: _0, + pub paras_availability_period: _0, + pub max_validators_per_core: ::core::option::Option<_0>, + pub lookahead: ::core::primitive::u32, + pub num_cores: ::core::primitive::u32, + pub max_availability_timeouts: ::core::primitive::u32, + pub on_demand_queue_max_size: ::core::primitive::u32, + pub on_demand_target_queue_utilization: + runtime_types::sp_arithmetic::per_things::Perbill, + pub on_demand_fee_variability: + runtime_types::sp_arithmetic::per_things::Perbill, + pub on_demand_base_fee: ::core::primitive::u128, + pub ttl: _0, } } } @@ -53594,7 +63060,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::assign_perm_parachain_slot`]."] assign_perm_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 1)] # [doc = "See [`Pallet::assign_temp_parachain_slot`]."] assign_temp_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , lease_period_start : runtime_types :: polkadot_runtime_common :: assigned_slots :: SlotLeasePeriodStart , } , # [codec (index = 2)] # [doc = "See [`Pallet::unassign_parachain_slot`]."] unassign_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "See [`Pallet::set_max_permanent_slots`]."] set_max_permanent_slots { slots : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "See [`Pallet::set_max_temporary_slots`]."] set_max_temporary_slots { slots : :: core :: primitive :: u32 , } , } + # [codec (index = 0)] # [doc = "Assign a permanent parachain slot and immediately create a lease for it."] assign_perm_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 1)] # [doc = "Assign a temporary parachain slot. The function tries to create a lease for it"] # [doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"] # [doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."] assign_temp_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , lease_period_start : runtime_types :: polkadot_runtime_common :: assigned_slots :: SlotLeasePeriodStart , } , # [codec (index = 2)] # [doc = "Unassign a permanent or temporary parachain slot"] unassign_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "Sets the storage value [`MaxPermanentSlots`]."] set_max_permanent_slots { slots : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Sets the storage value [`MaxTemporarySlots`]."] set_max_temporary_slots { slots : :: core :: primitive :: u32 , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -53736,7 +63202,11 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::new_auction`]."] + #[doc = "Create a new auction."] + #[doc = ""] + #[doc = "This can only happen when there isn't already an auction in progress and may only be"] + #[doc = "called by the root origin. Accepts the `duration` of this auction and the"] + #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."] new_auction { #[codec(compact)] duration: ::core::primitive::u32, @@ -53744,7 +63214,22 @@ pub mod api { lease_period_index: ::core::primitive::u32, }, #[codec(index = 1)] - #[doc = "See [`Pallet::bid`]."] + #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"] + #[doc = "parachain."] + #[doc = ""] + #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"] + #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."] + #[doc = ""] + #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"] + #[doc = "funded by) the same account."] + #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"] + #[doc = "value of `AuctionCounter`."] + #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"] + #[doc = "bid win. This amount is held throughout the range."] bid { #[codec(compact)] para: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -53758,7 +63243,9 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::cancel_auction`]."] + #[doc = "Cancel an in-progress auction."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] cancel_auction, } #[derive( @@ -53890,14 +63377,51 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::claim`]."] + #[doc = "Make a claim to collect your DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to claim is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] claim { dest: ::subxt::ext::subxt_core::utils::AccountId32, ethereum_signature: runtime_types::polkadot_runtime_common::claims::EcdsaSignature, }, #[codec(index = 1)] - #[doc = "See [`Pallet::mint_claim`]."] + #[doc = "Mint a new claim to collect DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The Ethereum address allowed to collect this claim."] + #[doc = "- `value`: The number of DOTs that will be claimed."] + #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "We assume worst case that both vesting and statement is being inserted."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] mint_claim { who: runtime_types::polkadot_runtime_common::claims::EthereumAddress, value: ::core::primitive::u128, @@ -53911,7 +63435,33 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::claim_attest`]."] + #[doc = "Make a claim to collect your DOTs by signing a statement."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)(statement)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"] + #[doc = "expected according to your purchase arrangement."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim_attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] claim_attest { dest: ::subxt::ext::subxt_core::utils::AccountId32, ethereum_signature: @@ -53920,13 +63470,30 @@ pub mod api { ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 3)] - #[doc = "See [`Pallet::attest`]."] + #[doc = "Attest to a statement, needed to finalize the claims process."] + #[doc = ""] + #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"] + #[doc = "`SignedExtension`."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"] + #[doc = "and provides a `statement` which is expected for the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to do pre-validation on `attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] attest { statement: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 4)] - #[doc = "See [`Pallet::move_claim`]."] move_claim { old: runtime_types::polkadot_runtime_common::claims::EthereumAddress, new: runtime_types::polkadot_runtime_common::claims::EthereumAddress, @@ -54069,7 +63636,11 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::create`]."] + #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"] + #[doc = "range."] + #[doc = ""] + #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"] + #[doc = "by the parachain manager."] create { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54085,7 +63656,8 @@ pub mod api { ::core::option::Option, }, #[codec(index = 1)] - #[doc = "See [`Pallet::contribute`]."] + #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"] + #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."] contribute { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54095,26 +63667,48 @@ pub mod api { ::core::option::Option, }, #[codec(index = 2)] - #[doc = "See [`Pallet::withdraw`]."] + #[doc = "Withdraw full balance of a specific contributor."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] + #[doc = ""] + #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"] + #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"] + #[doc = "- it must not already be in retirement;"] + #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"] + #[doc = "- and either:"] + #[doc = " - the block number must be at least `end`; or"] + #[doc = " - the current lease period must be greater than the fund's `last_period`."] + #[doc = ""] + #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"] + #[doc = "block number."] + #[doc = ""] + #[doc = "- `who`: The account whose contribution should be withdrawn."] + #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."] withdraw { who: ::subxt::ext::subxt_core::utils::AccountId32, #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 3)] - #[doc = "See [`Pallet::refund`]."] + #[doc = "Automatically refund contributors of an ended crowdloan."] + #[doc = "Due to weight restrictions, this function may need to be called multiple"] + #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] refund { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 4)] - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."] dissolve { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 5)] - #[doc = "See [`Pallet::edit`]."] + #[doc = "Edit the configuration for an in-progress crowdloan."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] edit { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54130,18 +63724,24 @@ pub mod api { ::core::option::Option, }, #[codec(index = 6)] - #[doc = "See [`Pallet::add_memo`]."] + #[doc = "Add an optional memo to an existing crowdloan contribution."] + #[doc = ""] + #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."] add_memo { index: runtime_types::polkadot_parachain_primitives::primitives::Id, memo: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 7)] - #[doc = "See [`Pallet::poke`]."] + #[doc = "Poke the fund into `NewRaise`"] + #[doc = ""] + #[doc = "Origin must be Signed, and the fund has non-zero raise."] poke { index: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 8)] - #[doc = "See [`Pallet::contribute_all`]."] + #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"] + #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"] + #[doc = "ended and the funds are unused."] contribute_all { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54367,6 +63967,71 @@ pub mod api { Ending(_0), } } + pub mod identity_migrator { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"] + #[doc = "deposits held and removing storage items associated with `who`."] + reap_identity { + who: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 1)] + #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"] + #[doc = "Instruction."] + poke_deposit { + who: ::subxt::ext::subxt_core::utils::AccountId32, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "The identity and all sub accounts were reaped for `who`."] + IdentityReaped { + who: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 1)] + #[doc = "The deposits held for `who` were updated. `identity` is the new deposit held for"] + #[doc = "identity info, and `subs` is the new deposit held for the sub-accounts."] + DepositUpdated { + who: ::subxt::ext::subxt_core::utils::AccountId32, + identity: ::core::primitive::u128, + subs: ::core::primitive::u128, + }, + } + } + } pub mod impls { use super::runtime_types; #[derive( @@ -54389,6 +64054,11 @@ pub mod api { location: runtime_types::staging_xcm::v3::multilocation::MultiLocation, asset_id: runtime_types::xcm::v3::multiasset::AssetId, }, + #[codec(index = 4)] + V4 { + location: runtime_types::staging_xcm::v4::location::Location, + asset_id: runtime_types::staging_xcm::v4::asset::AssetId, + }, } } pub mod paras_registrar { @@ -54411,7 +64081,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::register`]."] register { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "See [`Pallet::force_register`]."] force_register { who : :: subxt :: ext :: subxt_core :: utils :: AccountId32 , deposit : :: core :: primitive :: u128 , id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 2)] # [doc = "See [`Pallet::deregister`]."] deregister { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "See [`Pallet::swap`]."] swap { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , other : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 4)] # [doc = "See [`Pallet::remove_lock`]."] remove_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "See [`Pallet::reserve`]."] reserve , # [codec (index = 6)] # [doc = "See [`Pallet::add_lock`]."] add_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 7)] # [doc = "See [`Pallet::schedule_code_upgrade`]."] schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 8)] # [doc = "See [`Pallet::set_current_head`]."] set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , } + # [codec (index = 0)] # [doc = "Register head data and validation code for a reserved Para Id."] # [doc = ""] # [doc = "## Arguments"] # [doc = "- `origin`: Must be called by a `Signed` origin."] # [doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."] # [doc = "- `genesis_head`: The genesis head data of the parachain/thread."] # [doc = "- `validation_code`: The initial validation code of the parachain/thread."] # [doc = ""] # [doc = "## Deposits/Fees"] # [doc = "The account with the originating signature must reserve a deposit."] # [doc = ""] # [doc = "The deposit is required to cover the costs associated with storing the genesis head"] # [doc = "data and the validation code."] # [doc = "This accounts for the potential to store validation code of a size up to the"] # [doc = "`max_code_size`, as defined in the configuration pallet"] # [doc = ""] # [doc = "Anything already reserved previously for this para ID is accounted for."] # [doc = ""] # [doc = "## Events"] # [doc = "The `Registered` event is emitted in case of success."] register { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "Force the registration of a Para Id on the relay chain."] # [doc = ""] # [doc = "This function must be called by a Root origin."] # [doc = ""] # [doc = "The deposit taken can be specified for this registration. Any `ParaId`"] # [doc = "can be registered, including sub-1000 IDs which are System Parachains."] force_register { who : :: subxt :: ext :: subxt_core :: utils :: AccountId32 , deposit : :: core :: primitive :: u128 , id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 2)] # [doc = "Deregister a Para Id, freeing all data and returning any deposit."] # [doc = ""] # [doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"] # [doc = "on-demand parachain."] deregister { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"] # [doc = "holding."] # [doc = ""] # [doc = "The origin must be Root, the `para` owner, or the `para` itself."] # [doc = ""] # [doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"] # [doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."] # [doc = ""] # [doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"] # [doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"] # [doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"] # [doc = "parachain), auction information and the auction deposit are switched."] swap { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , other : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 4)] # [doc = "Remove a manager lock from a para. This will allow the manager of a"] # [doc = "previously locked para to deregister or swap a para without using governance."] # [doc = ""] # [doc = "Can only be called by the Root origin or the parachain."] remove_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "Reserve a Para Id on the relay chain."] # [doc = ""] # [doc = "This function will reserve a new Para Id to be owned/managed by the origin account."] # [doc = "The origin account is able to register head data and validation code using `register` to"] # [doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"] # [doc = "be upgraded to a lease holding parachain."] # [doc = ""] # [doc = "## Arguments"] # [doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"] # [doc = " para ID."] # [doc = ""] # [doc = "## Deposits/Fees"] # [doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."] # [doc = ""] # [doc = "## Events"] # [doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"] # [doc = "use."] reserve , # [codec (index = 6)] # [doc = "Add a manager lock from a para. This will prevent the manager of a"] # [doc = "para to deregister or swap a para."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] add_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 7)] # [doc = "Schedule a parachain upgrade."] # [doc = ""] # [doc = "This will kick off a check of `new_code` by all validators. After the majority of the"] # [doc = "validators have reported on the validity of the code, the code will either be enacted"] # [doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"] # [doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"] # [doc = "new code. The parachain itself will not be informed explicitly that the validation code"] # [doc = "has changed."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 8)] # [doc = "Set the parachain's current head."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -54466,8 +64136,8 @@ pub mod api { #[doc = "The ID given for registration has not been reserved."] NotReserved, #[codec(index = 12)] - #[doc = "Registering parachain with empty code is not allowed."] - EmptyCode, + #[doc = "The validation code is invalid."] + InvalidCode, #[codec(index = 13)] #[doc = "Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras"] #[doc = "are correct for the swap to work."] @@ -54551,29 +64221,36 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::sudo_schedule_para_initialize`]."] + #[doc = "Schedule a para to be initialized at the start of the next session."] + #[doc = ""] + #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"] + #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"] + #[doc = "running coretime chain required."] sudo_schedule_para_initialize { id: runtime_types::polkadot_parachain_primitives::primitives::Id, genesis: runtime_types::polkadot_runtime_parachains::paras::ParaGenesisArgs, }, #[codec(index = 1)] - #[doc = "See [`Pallet::sudo_schedule_para_cleanup`]."] + #[doc = "Schedule a para to be cleaned up at the start of the next session."] sudo_schedule_para_cleanup { id: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 2)] - #[doc = "See [`Pallet::sudo_schedule_parathread_upgrade`]."] + #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"] sudo_schedule_parathread_upgrade { id: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 3)] - #[doc = "See [`Pallet::sudo_schedule_parachain_downgrade`]."] + #[doc = "Downgrade a lease holding parachain to an on-demand parachain"] sudo_schedule_parachain_downgrade { id: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 4)] - #[doc = "See [`Pallet::sudo_queue_downward_xcm`]."] + #[doc = "Send a downward XCM to the given para."] + #[doc = ""] + #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"] + #[doc = "size `config.max_downward_message_size`."] sudo_queue_downward_xcm { id: runtime_types::polkadot_parachain_primitives::primitives::Id, xcm: ::subxt::ext::subxt_core::alloc::boxed::Box< @@ -54581,7 +64258,10 @@ pub mod api { >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::sudo_establish_hrmp_channel`]."] + #[doc = "Forcefully establish a channel from the sender to the recipient."] + #[doc = ""] + #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"] + #[doc = "`Hrmp::hrmp_accept_open_channel`."] sudo_establish_hrmp_channel { sender: runtime_types::polkadot_parachain_primitives::primitives::Id, recipient: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54630,6 +64310,9 @@ pub mod api { #[codec(index = 7)] #[doc = "Cannot downgrade lease holding parachain to on-demand."] CannotDowngrade, + #[codec(index = 8)] + #[doc = "There are more cores than supported by the runtime."] + TooManyCores, } } } @@ -54654,7 +64337,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::force_lease`]."] + #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"] + #[doc = "happen independently of any other on-chain mechanism to use it."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] force_lease { para: runtime_types::polkadot_parachain_primitives::primitives::Id, leaser: ::subxt::ext::subxt_core::utils::AccountId32, @@ -54663,12 +64349,20 @@ pub mod api { period_count: ::core::primitive::u32, }, #[codec(index = 1)] - #[doc = "See [`Pallet::clear_all_leases`]."] + #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] clear_all_leases { para: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 2)] - #[doc = "See [`Pallet::trigger_onboard`]."] + #[doc = "Try to onboard a parachain that has a lease for the current lease period."] + #[doc = ""] + #[doc = "This function can be useful if there was some state issue with a para that should"] + #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"] + #[doc = "let them onboard from here."] + #[doc = ""] + #[doc = "Origin must be signed, but can be called by anyone."] trigger_onboard { para: runtime_types::polkadot_parachain_primitives::primitives::Id, }, @@ -54735,6 +64429,153 @@ pub mod api { } pub mod polkadot_runtime_parachains { use super::runtime_types; + pub mod assigner_coretime { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Error` enum of this pallet."] + pub enum Error { + #[codec(index = 0)] + AssignmentsEmpty, + #[codec(index = 1)] + #[doc = "Assignments together exceeded 57600."] + OverScheduled, + #[codec(index = 2)] + #[doc = "Assignments together less than 57600"] + UnderScheduled, + #[codec(index = 3)] + #[doc = "assign_core is only allowed to append new assignments at the end of already existing"] + #[doc = "ones."] + DisallowedInsert, + #[codec(index = 4)] + #[doc = "Tried to insert a schedule for the same core and block number as an existing schedule"] + DuplicateInsert, + #[codec(index = 5)] + #[doc = "Tried to add an unsorted set of assignments"] + AssignmentsNotSorted, + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct AssignmentState { + pub ratio: + runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600, + pub remaining: + runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct CoreDescriptor < _0 > { pub queue : :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: QueueDescriptor < _0 > > , pub current_work : :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: WorkState < _0 > > , } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct PartsOf57600(pub ::core::primitive::u16); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueDescriptor<_0> { + pub first: _0, + pub last: _0, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Schedule<_0> { + pub assignments: ::subxt::ext::subxt_core::alloc::vec::Vec<( + runtime_types::pallet_broker::coretime_interface::CoreAssignment, + runtime_types::polkadot_runtime_parachains::assigner_coretime::PartsOf57600, + )>, + pub end_hint: ::core::option::Option<_0>, + pub next_schedule: ::core::option::Option<_0>, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct WorkState < _0 > { pub assignments : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: pallet_broker :: coretime_interface :: CoreAssignment , runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: AssignmentState ,) > , pub end_hint : :: core :: option :: Option < _0 > , pub pos : :: core :: primitive :: u16 , pub step : runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: PartsOf57600 , } + } pub mod assigner_on_demand { use super::runtime_types; pub mod pallet { @@ -54756,13 +64597,43 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::place_order_allow_death`]."] + #[doc = "Create a single on demand core order."] + #[doc = "Will use the spot price for the current block and will reap the account if needed."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] place_order_allow_death { max_amount: ::core::primitive::u128, para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 1)] - #[doc = "See [`Pallet::place_order_keep_alive`]."] + #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"] + #[doc = "check that placing the order will not reap the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] place_order_keep_alive { max_amount: ::core::primitive::u128, para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54785,20 +64656,12 @@ pub mod api { #[doc = "The `Error` enum of this pallet."] pub enum Error { #[codec(index = 0)] - #[doc = "The `ParaId` supplied to the `place_order` call is not a valid `ParaThread`, making the"] - #[doc = "call is invalid."] - InvalidParaId, - #[codec(index = 1)] #[doc = "The order queue is full, `place_order` will not continue."] QueueFull, - #[codec(index = 2)] + #[codec(index = 1)] #[doc = "The current spot price is higher than the max amount specified in the `place_order`"] #[doc = "call, making it invalid."] SpotPriceHigherThanMaxAmount, - #[codec(index = 3)] - #[doc = "There are no on demand cores available. `place_order` will not add anything to the"] - #[doc = "queue."] - NoOnDemandCores, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -54844,9 +64707,75 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct CoreAffinityCount { - pub core_idx: runtime_types::polkadot_primitives::v6::CoreIndex, + pub core_index: runtime_types::polkadot_primitives::v7::CoreIndex, pub count: ::core::primitive::u32, } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct EnqueuedOrder { + pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + pub idx: + runtime_types::polkadot_runtime_parachains::assigner_on_demand::QueueIndex, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueIndex(pub ::core::primitive::u32); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueStatusType { pub traffic : runtime_types :: sp_arithmetic :: fixed_point :: FixedU128 , pub next_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueIndex , pub smallest_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueIndex , pub freed_indices : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: ReverseQueueIndex > , } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ReverseQueueIndex(pub ::core::primitive::u32); } pub mod configuration { use super::runtime_types; @@ -54868,7 +64797,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::set_validation_upgrade_cooldown`]."] set_validation_upgrade_cooldown { new : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "See [`Pallet::set_validation_upgrade_delay`]."] set_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "See [`Pallet::set_code_retention_period`]."] set_code_retention_period { new : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "See [`Pallet::set_max_code_size`]."] set_max_code_size { new : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "See [`Pallet::set_max_pov_size`]."] set_max_pov_size { new : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "See [`Pallet::set_max_head_data_size`]."] set_max_head_data_size { new : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "See [`Pallet::set_on_demand_cores`]."] set_on_demand_cores { new : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "See [`Pallet::set_on_demand_retries`]."] set_on_demand_retries { new : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "See [`Pallet::set_group_rotation_frequency`]."] set_group_rotation_frequency { new : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "See [`Pallet::set_paras_availability_period`]."] set_paras_availability_period { new : :: core :: primitive :: u32 , } , # [codec (index = 11)] # [doc = "See [`Pallet::set_scheduling_lookahead`]."] set_scheduling_lookahead { new : :: core :: primitive :: u32 , } , # [codec (index = 12)] # [doc = "See [`Pallet::set_max_validators_per_core`]."] set_max_validators_per_core { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 13)] # [doc = "See [`Pallet::set_max_validators`]."] set_max_validators { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "See [`Pallet::set_dispute_period`]."] set_dispute_period { new : :: core :: primitive :: u32 , } , # [codec (index = 15)] # [doc = "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]."] set_dispute_post_conclusion_acceptance_period { new : :: core :: primitive :: u32 , } , # [codec (index = 18)] # [doc = "See [`Pallet::set_no_show_slots`]."] set_no_show_slots { new : :: core :: primitive :: u32 , } , # [codec (index = 19)] # [doc = "See [`Pallet::set_n_delay_tranches`]."] set_n_delay_tranches { new : :: core :: primitive :: u32 , } , # [codec (index = 20)] # [doc = "See [`Pallet::set_zeroth_delay_tranche_width`]."] set_zeroth_delay_tranche_width { new : :: core :: primitive :: u32 , } , # [codec (index = 21)] # [doc = "See [`Pallet::set_needed_approvals`]."] set_needed_approvals { new : :: core :: primitive :: u32 , } , # [codec (index = 22)] # [doc = "See [`Pallet::set_relay_vrf_modulo_samples`]."] set_relay_vrf_modulo_samples { new : :: core :: primitive :: u32 , } , # [codec (index = 23)] # [doc = "See [`Pallet::set_max_upward_queue_count`]."] set_max_upward_queue_count { new : :: core :: primitive :: u32 , } , # [codec (index = 24)] # [doc = "See [`Pallet::set_max_upward_queue_size`]."] set_max_upward_queue_size { new : :: core :: primitive :: u32 , } , # [codec (index = 25)] # [doc = "See [`Pallet::set_max_downward_message_size`]."] set_max_downward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 27)] # [doc = "See [`Pallet::set_max_upward_message_size`]."] set_max_upward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 28)] # [doc = "See [`Pallet::set_max_upward_message_num_per_candidate`]."] set_max_upward_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 29)] # [doc = "See [`Pallet::set_hrmp_open_request_ttl`]."] set_hrmp_open_request_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 30)] # [doc = "See [`Pallet::set_hrmp_sender_deposit`]."] set_hrmp_sender_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 31)] # [doc = "See [`Pallet::set_hrmp_recipient_deposit`]."] set_hrmp_recipient_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 32)] # [doc = "See [`Pallet::set_hrmp_channel_max_capacity`]."] set_hrmp_channel_max_capacity { new : :: core :: primitive :: u32 , } , # [codec (index = 33)] # [doc = "See [`Pallet::set_hrmp_channel_max_total_size`]."] set_hrmp_channel_max_total_size { new : :: core :: primitive :: u32 , } , # [codec (index = 34)] # [doc = "See [`Pallet::set_hrmp_max_parachain_inbound_channels`]."] set_hrmp_max_parachain_inbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 36)] # [doc = "See [`Pallet::set_hrmp_channel_max_message_size`]."] set_hrmp_channel_max_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 37)] # [doc = "See [`Pallet::set_hrmp_max_parachain_outbound_channels`]."] set_hrmp_max_parachain_outbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 39)] # [doc = "See [`Pallet::set_hrmp_max_message_num_per_candidate`]."] set_hrmp_max_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 42)] # [doc = "See [`Pallet::set_pvf_voting_ttl`]."] set_pvf_voting_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 43)] # [doc = "See [`Pallet::set_minimum_validation_upgrade_delay`]."] set_minimum_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 44)] # [doc = "See [`Pallet::set_bypass_consistency_check`]."] set_bypass_consistency_check { new : :: core :: primitive :: bool , } , # [codec (index = 45)] # [doc = "See [`Pallet::set_async_backing_params`]."] set_async_backing_params { new : runtime_types :: polkadot_primitives :: v6 :: async_backing :: AsyncBackingParams , } , # [codec (index = 46)] # [doc = "See [`Pallet::set_executor_params`]."] set_executor_params { new : runtime_types :: polkadot_primitives :: v6 :: executor_params :: ExecutorParams , } , # [codec (index = 47)] # [doc = "See [`Pallet::set_on_demand_base_fee`]."] set_on_demand_base_fee { new : :: core :: primitive :: u128 , } , # [codec (index = 48)] # [doc = "See [`Pallet::set_on_demand_fee_variability`]."] set_on_demand_fee_variability { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 49)] # [doc = "See [`Pallet::set_on_demand_queue_max_size`]."] set_on_demand_queue_max_size { new : :: core :: primitive :: u32 , } , # [codec (index = 50)] # [doc = "See [`Pallet::set_on_demand_target_queue_utilization`]."] set_on_demand_target_queue_utilization { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 51)] # [doc = "See [`Pallet::set_on_demand_ttl`]."] set_on_demand_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 52)] # [doc = "See [`Pallet::set_minimum_backing_votes`]."] set_minimum_backing_votes { new : :: core :: primitive :: u32 , } , } + # [codec (index = 0)] # [doc = "Set the validation upgrade cooldown."] set_validation_upgrade_cooldown { new : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Set the validation upgrade delay."] set_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Set the acceptance period for an included candidate."] set_code_retention_period { new : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Set the max validation code size for incoming upgrades."] set_max_code_size { new : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Set the max POV block size for incoming upgrades."] set_max_pov_size { new : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set the max head data size for paras."] set_max_head_data_size { new : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "Set the number of coretime execution cores."] # [doc = ""] # [doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"] # [doc = "this, if you really know what you are doing!"] set_coretime_cores { new : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "Set the max number of times a claim may timeout on a core before it is abandoned"] set_max_availability_timeouts { new : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "Set the parachain validator-group rotation frequency"] set_group_rotation_frequency { new : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "Set the availability period for paras."] set_paras_availability_period { new : :: core :: primitive :: u32 , } , # [codec (index = 11)] # [doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."] set_scheduling_lookahead { new : :: core :: primitive :: u32 , } , # [codec (index = 12)] # [doc = "Set the maximum number of validators to assign to any core."] set_max_validators_per_core { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 13)] # [doc = "Set the maximum number of validators to use in parachain consensus."] set_max_validators { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "Set the dispute period, in number of sessions to keep for disputes."] set_dispute_period { new : :: core :: primitive :: u32 , } , # [codec (index = 15)] # [doc = "Set the dispute post conclusion acceptance period."] set_dispute_post_conclusion_acceptance_period { new : :: core :: primitive :: u32 , } , # [codec (index = 18)] # [doc = "Set the no show slots, in number of number of consensus slots."] # [doc = "Must be at least 1."] set_no_show_slots { new : :: core :: primitive :: u32 , } , # [codec (index = 19)] # [doc = "Set the total number of delay tranches."] set_n_delay_tranches { new : :: core :: primitive :: u32 , } , # [codec (index = 20)] # [doc = "Set the zeroth delay tranche width."] set_zeroth_delay_tranche_width { new : :: core :: primitive :: u32 , } , # [codec (index = 21)] # [doc = "Set the number of validators needed to approve a block."] set_needed_approvals { new : :: core :: primitive :: u32 , } , # [codec (index = 22)] # [doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."] set_relay_vrf_modulo_samples { new : :: core :: primitive :: u32 , } , # [codec (index = 23)] # [doc = "Sets the maximum items that can present in a upward dispatch queue at once."] set_max_upward_queue_count { new : :: core :: primitive :: u32 , } , # [codec (index = 24)] # [doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"] # [doc = "once."] set_max_upward_queue_size { new : :: core :: primitive :: u32 , } , # [codec (index = 25)] # [doc = "Set the critical downward message size."] set_max_downward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 27)] # [doc = "Sets the maximum size of an upward message that can be sent by a candidate."] set_max_upward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 28)] # [doc = "Sets the maximum number of messages that a candidate can contain."] set_max_upward_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 29)] # [doc = "Sets the number of sessions after which an HRMP open channel request expires."] set_hrmp_open_request_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 30)] # [doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."] set_hrmp_sender_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 31)] # [doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"] # [doc = "channel."] set_hrmp_recipient_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 32)] # [doc = "Sets the maximum number of messages allowed in an HRMP channel at once."] set_hrmp_channel_max_capacity { new : :: core :: primitive :: u32 , } , # [codec (index = 33)] # [doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."] set_hrmp_channel_max_total_size { new : :: core :: primitive :: u32 , } , # [codec (index = 34)] # [doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."] set_hrmp_max_parachain_inbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 36)] # [doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."] set_hrmp_channel_max_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 37)] # [doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."] set_hrmp_max_parachain_outbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 39)] # [doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."] set_hrmp_max_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 42)] # [doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."] set_pvf_voting_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 43)] # [doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"] # [doc = "upgrade taking place."] # [doc = ""] # [doc = "See the field documentation for information and constraints for the new value."] set_minimum_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 44)] # [doc = "Setting this to true will disable consistency checks for the configuration setters."] # [doc = "Use with caution."] set_bypass_consistency_check { new : :: core :: primitive :: bool , } , # [codec (index = 45)] # [doc = "Set the asynchronous backing parameters."] set_async_backing_params { new : runtime_types :: polkadot_primitives :: v7 :: async_backing :: AsyncBackingParams , } , # [codec (index = 46)] # [doc = "Set PVF executor parameters."] set_executor_params { new : runtime_types :: polkadot_primitives :: v7 :: executor_params :: ExecutorParams , } , # [codec (index = 47)] # [doc = "Set the on demand (parathreads) base fee."] set_on_demand_base_fee { new : :: core :: primitive :: u128 , } , # [codec (index = 48)] # [doc = "Set the on demand (parathreads) fee variability."] set_on_demand_fee_variability { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 49)] # [doc = "Set the on demand (parathreads) queue max size."] set_on_demand_queue_max_size { new : :: core :: primitive :: u32 , } , # [codec (index = 50)] # [doc = "Set the on demand (parathreads) fee variability."] set_on_demand_target_queue_utilization { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 51)] # [doc = "Set the on demand (parathreads) ttl in the claimqueue."] set_on_demand_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 52)] # [doc = "Set the minimum backing votes threshold."] set_minimum_backing_votes { new : :: core :: primitive :: u32 , } , # [codec (index = 53)] # [doc = "Set/Unset a node feature."] set_node_feature { index : :: core :: primitive :: u8 , value : :: core :: primitive :: bool , } , # [codec (index = 54)] # [doc = "Set approval-voting-params."] set_approval_voting_params { new : runtime_types :: polkadot_primitives :: v7 :: ApprovalVotingParams , } , # [codec (index = 55)] # [doc = "Set scheduler-params."] set_scheduler_params { new : runtime_types :: polkadot_primitives :: vstaging :: SchedulerParams < :: core :: primitive :: u32 > , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -54915,7 +64844,7 @@ pub mod api { pub validation_upgrade_cooldown: _0, pub validation_upgrade_delay: _0, pub async_backing_params: - runtime_types::polkadot_primitives::v6::async_backing::AsyncBackingParams, + runtime_types::polkadot_primitives::v7::async_backing::AsyncBackingParams, pub max_pov_size: ::core::primitive::u32, pub max_downward_message_size: ::core::primitive::u32, pub hrmp_max_parachain_outbound_channels: ::core::primitive::u32, @@ -54926,21 +64855,8 @@ pub mod api { pub hrmp_max_parachain_inbound_channels: ::core::primitive::u32, pub hrmp_channel_max_message_size: ::core::primitive::u32, pub executor_params: - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams, + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParams, pub code_retention_period: _0, - pub on_demand_cores: ::core::primitive::u32, - pub on_demand_retries: ::core::primitive::u32, - pub on_demand_queue_max_size: ::core::primitive::u32, - pub on_demand_target_queue_utilization: - runtime_types::sp_arithmetic::per_things::Perbill, - pub on_demand_fee_variability: - runtime_types::sp_arithmetic::per_things::Perbill, - pub on_demand_base_fee: ::core::primitive::u128, - pub on_demand_ttl: _0, - pub group_rotation_frequency: _0, - pub paras_availability_period: _0, - pub scheduling_lookahead: ::core::primitive::u32, - pub max_validators_per_core: ::core::option::Option<_0>, pub max_validators: ::core::option::Option<_0>, pub dispute_period: ::core::primitive::u32, pub dispute_post_conclusion_acceptance_period: _0, @@ -54952,6 +64868,82 @@ pub mod api { pub pvf_voting_ttl: ::core::primitive::u32, pub minimum_validation_upgrade_delay: _0, pub minimum_backing_votes: ::core::primitive::u32, + pub node_features: ::subxt::ext::subxt_core::utils::bits::DecodedBits< + ::core::primitive::u8, + ::subxt::ext::subxt_core::utils::bits::Lsb0, + >, + pub approval_voting_params: + runtime_types::polkadot_primitives::v7::ApprovalVotingParams, + pub scheduler_params: + runtime_types::polkadot_primitives::vstaging::SchedulerParams<_0>, + } + } + pub mod coretime { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + # [codec (index = 1)] request_core_count { count : :: core :: primitive :: u16 , } , # [codec (index = 4)] # [doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] # [doc = "to be used."] # [doc = ""] # [doc = "Parameters:"] # [doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the Broker system parachain."] # [doc = "-`core`: The core that should be scheduled."] # [doc = "-`begin`: The starting blockheight of the instruction."] # [doc = "-`assignment`: How the blockspace should be utilised."] # [doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] assign_core { core : :: core :: primitive :: u16 , begin : :: core :: primitive :: u32 , assignment : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: pallet_broker :: coretime_interface :: CoreAssignment , runtime_types :: polkadot_runtime_parachains :: assigner_coretime :: PartsOf57600 ,) > , end_hint : :: core :: option :: Option < :: core :: primitive :: u32 > , } , } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Error` enum of this pallet."] + pub enum Error { + #[codec(index = 0)] + #[doc = "The paraid making the call is not the coretime brokerage system parachain."] + NotBroker, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "The broker chain has asked for revenue information for a specific block."] + RevenueInfoRequested { when: ::core::primitive::u32 }, + #[codec(index = 1)] + #[doc = "A core has received a new assignment from the broker chain."] + CoreAssigned { + core: runtime_types::polkadot_primitives::v7::CoreIndex, + }, + } } } pub mod disputes { @@ -54975,7 +64967,6 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::force_unfreeze`]."] force_unfreeze, } #[derive( @@ -55080,10 +65071,9 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::report_dispute_lost_unsigned`]."] report_dispute_lost_unsigned { dispute_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::polkadot_primitives::v6::slashing::DisputeProof, + runtime_types::polkadot_primitives::v7::slashing::DisputeProof, >, key_owner_proof: runtime_types::sp_session::MembershipProof, }, @@ -55187,7 +65177,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::hrmp_init_open_channel`]."] hrmp_init_open_channel { recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "See [`Pallet::hrmp_accept_open_channel`]."] hrmp_accept_open_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 2)] # [doc = "See [`Pallet::hrmp_close_channel`]."] hrmp_close_channel { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 3)] # [doc = "See [`Pallet::force_clean_hrmp`]."] force_clean_hrmp { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , num_inbound : :: core :: primitive :: u32 , num_outbound : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "See [`Pallet::force_process_hrmp_open`]."] force_process_hrmp_open { channels : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "See [`Pallet::force_process_hrmp_close`]."] force_process_hrmp_close { channels : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "See [`Pallet::hrmp_cancel_open_request`]."] hrmp_cancel_open_request { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , open_requests : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "See [`Pallet::force_open_hrmp_channel`]."] force_open_hrmp_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , max_capacity : :: core :: primitive :: u32 , max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "See [`Pallet::establish_system_channel`]."] establish_system_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 9)] # [doc = "See [`Pallet::poke_channel_deposits`]."] poke_channel_deposits { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , } + # [codec (index = 0)] # [doc = "Initiate opening a channel from a parachain to a given recipient with given channel"] # [doc = "parameters."] # [doc = ""] # [doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."] # [doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."] # [doc = ""] # [doc = "These numbers are a subject to the relay-chain configuration limits."] # [doc = ""] # [doc = "The channel can be opened only after the recipient confirms it and only on a session"] # [doc = "change."] hrmp_init_open_channel { recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Accept a pending open channel request from the given sender."] # [doc = ""] # [doc = "The channel will be opened only on the next session boundary."] hrmp_accept_open_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 2)] # [doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"] # [doc = "recipient in the channel being closed."] # [doc = ""] # [doc = "The closure can only happen on a session change."] hrmp_close_channel { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 3)] # [doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."] # [doc = "Normally this happens once per session, but this allows you to trigger the cleanup"] # [doc = "immediately for a specific parachain."] # [doc = ""] # [doc = "Number of inbound and outbound channels for `para` must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_clean_hrmp { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , num_inbound : :: core :: primitive :: u32 , num_outbound : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Force process HRMP open channel requests."] # [doc = ""] # [doc = "If there are pending HRMP open channel requests, you can use this function to process"] # [doc = "all of those requests immediately."] # [doc = ""] # [doc = "Total number of opening channels must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_process_hrmp_open { channels : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Force process HRMP close channel requests."] # [doc = ""] # [doc = "If there are pending HRMP close channel requests, you can use this function to process"] # [doc = "all of those requests immediately."] # [doc = ""] # [doc = "Total number of closing channels must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_process_hrmp_close { channels : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "This cancels a pending open channel request. It can be canceled by either of the sender"] # [doc = "or the recipient for that request. The origin must be either of those."] # [doc = ""] # [doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"] # [doc = "already accepted."] # [doc = ""] # [doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"] # [doc = "witness data."] hrmp_cancel_open_request { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , open_requests : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"] # [doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"] # [doc = "configured limits."] # [doc = ""] # [doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"] # [doc = "governed by the system, e.g. a system parachain."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_open_hrmp_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , max_capacity : :: core :: primitive :: u32 , max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "Establish an HRMP channel between two system chains. If the channel does not already"] # [doc = "exist, the transaction fees will be refunded to the caller. The system does not take"] # [doc = "deposits for channels between system chains, and automatically sets the message number"] # [doc = "and size limits to the maximum allowed by the network's configuration."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `sender`: A system chain, `ParaId`."] # [doc = "- `recipient`: A system chain, `ParaId`."] # [doc = ""] # [doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"] # [doc = "the channel does not exist yet, there is no fee."] establish_system_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 9)] # [doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"] # [doc = "with system chains do not require a deposit."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `sender`: A chain, `ParaId`."] # [doc = "- `recipient`: A chain, `ParaId`."] # [doc = ""] # [doc = "Any signed origin can call this function."] poke_channel_deposits { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 10)] # [doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `target_system_chain`: A system chain, `ParaId`."] # [doc = ""] # [doc = "The origin needs to be the parachain origin."] establish_channel_with_system { target_system_chain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -55281,7 +65271,7 @@ pub mod api { )] #[doc = "The `Event` enum of this pallet"] pub enum Event { - # [codec (index = 0)] # [doc = "Open HRMP channel requested."] OpenChannelRequested { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "An HRMP channel request sent by the receiver was canceled by either party."] OpenChannelCanceled { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 2)] # [doc = "Open HRMP channel accepted."] OpenChannelAccepted { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "HRMP channel closed."] ChannelClosed { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 4)] # [doc = "An HRMP channel was opened via Root origin."] HrmpChannelForceOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "An HRMP channel was opened between two system chains."] HrmpSystemChannelOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "An HRMP channel's deposits were updated."] OpenChannelDepositsUpdated { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , } + # [codec (index = 0)] # [doc = "Open HRMP channel requested."] OpenChannelRequested { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "An HRMP channel request sent by the receiver was canceled by either party."] OpenChannelCanceled { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 2)] # [doc = "Open HRMP channel accepted."] OpenChannelAccepted { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "HRMP channel closed."] ChannelClosed { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 4)] # [doc = "An HRMP channel was opened via Root origin."] HrmpChannelForceOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "An HRMP channel was opened with a system chain."] HrmpSystemChannelOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "An HRMP channel's deposits were updated."] OpenChannelDepositsUpdated { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , } } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55367,97 +65357,62 @@ pub mod api { #[doc = "The `Error` enum of this pallet."] pub enum Error { #[codec(index = 0)] - #[doc = "Validator indices are out of order or contains duplicates."] - UnsortedOrDuplicateValidatorIndices, - #[codec(index = 1)] - #[doc = "Dispute statement sets are out of order or contain duplicates."] - UnsortedOrDuplicateDisputeStatementSet, - #[codec(index = 2)] - #[doc = "Backed candidates are out of order (core index) or contain duplicates."] - UnsortedOrDuplicateBackedCandidates, - #[codec(index = 3)] - #[doc = "A different relay parent was provided compared to the on-chain stored one."] - UnexpectedRelayParent, - #[codec(index = 4)] - #[doc = "Availability bitfield has unexpected size."] - WrongBitfieldSize, - #[codec(index = 5)] - #[doc = "Bitfield consists of zeros only."] - BitfieldAllZeros, - #[codec(index = 6)] - #[doc = "Multiple bitfields submitted by same validator or validators out of order by index."] - BitfieldDuplicateOrUnordered, - #[codec(index = 7)] #[doc = "Validator index out of bounds."] ValidatorIndexOutOfBounds, - #[codec(index = 8)] - #[doc = "Invalid signature"] - InvalidBitfieldSignature, - #[codec(index = 9)] + #[codec(index = 1)] #[doc = "Candidate submitted but para not scheduled."] UnscheduledCandidate, - #[codec(index = 10)] - #[doc = "Candidate scheduled despite pending candidate already existing for the para."] - CandidateScheduledBeforeParaFree, - #[codec(index = 11)] - #[doc = "Scheduled cores out of order."] - ScheduledOutOfOrder, - #[codec(index = 12)] + #[codec(index = 2)] #[doc = "Head data exceeds the configured maximum."] HeadDataTooLarge, - #[codec(index = 13)] + #[codec(index = 3)] #[doc = "Code upgrade prematurely."] PrematureCodeUpgrade, - #[codec(index = 14)] + #[codec(index = 4)] #[doc = "Output code is too large"] NewCodeTooLarge, - #[codec(index = 15)] + #[codec(index = 5)] #[doc = "The candidate's relay-parent was not allowed. Either it was"] #[doc = "not recent enough or it didn't advance based on the last parachain block."] DisallowedRelayParent, - #[codec(index = 16)] + #[codec(index = 6)] #[doc = "Failed to compute group index for the core: either it's out of bounds"] #[doc = "or the relay parent doesn't belong to the current session."] InvalidAssignment, - #[codec(index = 17)] + #[codec(index = 7)] #[doc = "Invalid group index in core assignment."] InvalidGroupIndex, - #[codec(index = 18)] + #[codec(index = 8)] #[doc = "Insufficient (non-majority) backing."] InsufficientBacking, - #[codec(index = 19)] + #[codec(index = 9)] #[doc = "Invalid (bad signature, unknown validator, etc.) backing."] InvalidBacking, - #[codec(index = 20)] + #[codec(index = 10)] #[doc = "Collator did not sign PoV."] NotCollatorSigned, - #[codec(index = 21)] + #[codec(index = 11)] #[doc = "The validation data hash does not match expected."] ValidationDataHashMismatch, - #[codec(index = 22)] + #[codec(index = 12)] #[doc = "The downward message queue is not processed correctly."] IncorrectDownwardMessageHandling, - #[codec(index = 23)] + #[codec(index = 13)] #[doc = "At least one upward message sent does not pass the acceptance criteria."] InvalidUpwardMessages, - #[codec(index = 24)] + #[codec(index = 14)] #[doc = "The candidate didn't follow the rules of HRMP watermark advancement."] HrmpWatermarkMishandling, - #[codec(index = 25)] + #[codec(index = 15)] #[doc = "The HRMP messages sent by the candidate is not valid."] InvalidOutboundHrmp, - #[codec(index = 26)] + #[codec(index = 16)] #[doc = "The validation code hash of the candidate is not valid."] InvalidValidationCodeHash, - #[codec(index = 27)] + #[codec(index = 17)] #[doc = "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual"] #[doc = "para head in the commitments."] ParaHeadMismatch, - #[codec(index = 28)] - #[doc = "A bitfield that references a freed core,"] - #[doc = "either intentionally or as part of a concluded"] - #[doc = "invalid dispute."] - BitfieldReferencesFreedCore, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55478,31 +65433,31 @@ pub mod api { #[codec(index = 0)] #[doc = "A candidate was backed. `[candidate, head_data]`"] CandidateBacked( - runtime_types::polkadot_primitives::v6::CandidateReceipt< + runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, - runtime_types::polkadot_primitives::v6::GroupIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, + runtime_types::polkadot_primitives::v7::GroupIndex, ), #[codec(index = 1)] #[doc = "A candidate was included. `[candidate, head_data]`"] CandidateIncluded( - runtime_types::polkadot_primitives::v6::CandidateReceipt< + runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, - runtime_types::polkadot_primitives::v6::GroupIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, + runtime_types::polkadot_primitives::v7::GroupIndex, ), #[codec(index = 2)] #[doc = "A candidate timed out. `[candidate, head_data]`"] CandidateTimedOut( - runtime_types::polkadot_primitives::v6::CandidateReceipt< + runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, ), #[codec(index = 3)] #[doc = "Some upward messages have been received and will be processed."] @@ -55544,28 +65499,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct AvailabilityBitfieldRecord<_0> { - pub bitfield: runtime_types::polkadot_primitives::v6::AvailabilityBitfield, - pub submitted_at: _0, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] pub struct CandidatePendingAvailability<_0, _1> { - pub core: runtime_types::polkadot_primitives::v6::CoreIndex, + pub core: runtime_types::polkadot_primitives::v7::CoreIndex, pub hash: runtime_types::polkadot_core_primitives::CandidateHash, - pub descriptor: runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, + pub descriptor: runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, + pub commitments: + runtime_types::polkadot_primitives::v7::CandidateCommitments<_1>, pub availability_votes: ::subxt::ext::subxt_core::utils::bits::DecodedBits< ::core::primitive::u8, ::subxt::ext::subxt_core::utils::bits::Lsb0, @@ -55576,7 +65515,7 @@ pub mod api { >, pub relay_parent_number: _1, pub backed_in_number: _1, - pub backing_group: runtime_types::polkadot_primitives::v6::GroupIndex, + pub backing_group: runtime_types::polkadot_primitives::v7::GroupIndex, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55618,7 +65557,9 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::force_approve`]."] + #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"] + #[doc = "blocks in all relay chain blocks up to and including the given number in the current"] + #[doc = "chain are valid and should be finalized."] force_approve { up_to: ::core::primitive::u32 }, } } @@ -55638,10 +65579,10 @@ pub mod api { )] pub struct BufferedSessionChange { pub validators: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, >, pub queued: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, >, pub session_index: ::core::primitive::u32, } @@ -55690,7 +65631,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::force_set_current_code`]."] force_set_current_code { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "See [`Pallet::force_set_current_head`]."] force_set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 2)] # [doc = "See [`Pallet::force_schedule_code_upgrade`]."] force_schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , relay_parent_number : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "See [`Pallet::force_note_new_head`]."] force_note_new_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 4)] # [doc = "See [`Pallet::force_queue_action`]."] force_queue_action { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "See [`Pallet::add_trusted_validation_code`]."] add_trusted_validation_code { validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 6)] # [doc = "See [`Pallet::poke_unused_validation_code`]."] poke_unused_validation_code { validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } , # [codec (index = 7)] # [doc = "See [`Pallet::include_pvf_check_statement`]."] include_pvf_check_statement { stmt : runtime_types :: polkadot_primitives :: v6 :: PvfCheckStatement , signature : runtime_types :: polkadot_primitives :: v6 :: validator_app :: Signature , } , # [codec (index = 8)] # [doc = "See [`Pallet::force_set_most_recent_context`]."] force_set_most_recent_context { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , context : :: core :: primitive :: u32 , } , } + # [codec (index = 0)] # [doc = "Set the storage for the parachain validation code immediately."] force_set_current_code { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "Set the storage for the current parachain head data immediately."] force_set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 2)] # [doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."] force_schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , relay_parent_number : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Note a new block head for para within the context of the current block."] force_note_new_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 4)] # [doc = "Put a parachain directly into the next session's action queue."] # [doc = "We can't queue it any sooner than this without going into the"] # [doc = "initializer..."] force_queue_action { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "Adds the validation code to the storage."] # [doc = ""] # [doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"] # [doc = "is running for that code, it will be instantly accepted."] # [doc = ""] # [doc = "Otherwise, the code will be added into the storage. Note that the code will be added"] # [doc = "into storage with reference count 0. This is to account the fact that there are no users"] # [doc = "for this code yet. The caller will have to make sure that this code eventually gets"] # [doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"] # [doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"] # [doc = "manipulation."] # [doc = ""] # [doc = "This function is mainly meant to be used for upgrading parachains that do not follow"] # [doc = "the go-ahead signal while the PVF pre-checking feature is enabled."] add_trusted_validation_code { validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 6)] # [doc = "Remove the validation code from the storage iff the reference count is 0."] # [doc = ""] # [doc = "This is better than removing the storage directly, because it will not remove the code"] # [doc = "that was suddenly got used by some parachain while this dispatchable was pending"] # [doc = "dispatching."] poke_unused_validation_code { validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } , # [codec (index = 7)] # [doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"] # [doc = "enacts the results if that was the last vote before achieving the supermajority."] include_pvf_check_statement { stmt : runtime_types :: polkadot_primitives :: v7 :: PvfCheckStatement , signature : runtime_types :: polkadot_primitives :: v7 :: validator_app :: Signature , } , # [codec (index = 8)] # [doc = "Set the storage for the current parachain head data immediately."] force_set_most_recent_context { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , context : :: core :: primitive :: u32 , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -55743,6 +65684,9 @@ pub mod api { #[codec(index = 11)] #[doc = "Parachain cannot currently schedule a code upgrade."] CannotUpgradeCode, + #[codec(index = 12)] + #[doc = "Invalid validation code size."] + InvalidCode, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55883,7 +65827,8 @@ pub mod api { Upgrade { id: runtime_types::polkadot_parachain_primitives::primitives::Id, included_at: _0, - set_go_ahead: runtime_types::polkadot_runtime_parachains::paras::SetGoAhead, + upgrade_strategy: + runtime_types::polkadot_runtime_parachains::paras::UpgradeStrategy, }, } #[derive( @@ -55918,11 +65863,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum SetGoAhead { + pub enum UpgradeStrategy { #[codec(index = 0)] - Yes, + SetGoAheadSignal, #[codec(index = 1)] - No, + ApplyAtExpectedBlock, } } pub mod paras_inherent { @@ -55946,9 +65891,9 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::enter`]."] + #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."] enter { - data: runtime_types::polkadot_primitives::v6::InherentData< + data: runtime_types::polkadot_primitives::v7::InherentData< runtime_types::sp_runtime::generic::header::Header< ::core::primitive::u32, >, @@ -55979,17 +65924,15 @@ pub mod api { #[doc = "the parent."] InvalidParentHeader, #[codec(index = 2)] - #[doc = "Disputed candidate that was concluded invalid."] - CandidateConcludedInvalid, - #[codec(index = 3)] #[doc = "The data given to the inherent will result in an overweight block."] InherentOverweight, + #[codec(index = 3)] + #[doc = "A candidate was filtered during inherent execution. This should have only been done"] + #[doc = "during creation."] + CandidatesFilteredDuringExecution, #[codec(index = 4)] - #[doc = "The ordering of dispute statements was invalid."] - DisputeStatementsUnsortedOrDuplicates, - #[codec(index = 5)] - #[doc = "A dispute statement was invalid."] - DisputeInvalid, + #[doc = "Too many candidates supplied."] + UnscheduledCandidate, } } } @@ -56011,8 +65954,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Assignment { - pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + pub enum Assignment { + #[codec(index = 0)] + Pool { + para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + core_index: runtime_types::polkadot_primitives::v7::CoreIndex, + }, + #[codec(index = 1)] + Bulk(runtime_types::polkadot_parachain_primitives::primitives::Id), } } pub mod pallet { @@ -56093,6 +66042,213 @@ pub mod api { } pub mod rococo_runtime { use super::runtime_types; + pub mod dynamic_params { + use super::runtime_types; + pub mod nis { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct MinBid; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Parameters { + #[codec(index = 0)] + Target( + runtime_types::rococo_runtime::dynamic_params::nis::Target, + ::core::option::Option< + runtime_types::sp_arithmetic::per_things::Perquintill, + >, + ), + #[codec(index = 1)] + MinBid( + runtime_types::rococo_runtime::dynamic_params::nis::MinBid, + ::core::option::Option<::core::primitive::u128>, + ), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum ParametersKey { + #[codec(index = 0)] + Target(runtime_types::rococo_runtime::dynamic_params::nis::Target), + #[codec(index = 1)] + MinBid(runtime_types::rococo_runtime::dynamic_params::nis::MinBid), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum ParametersValue { + #[codec(index = 0)] + Target(runtime_types::sp_arithmetic::per_things::Perquintill), + #[codec(index = 1)] + MinBid(::core::primitive::u128), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Target; + } + pub mod preimage { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct BaseDeposit; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ByteDeposit; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Parameters { + #[codec(index = 0)] + BaseDeposit( + runtime_types::rococo_runtime::dynamic_params::preimage::BaseDeposit, + ::core::option::Option<::core::primitive::u128>, + ), + #[codec(index = 1)] + ByteDeposit( + runtime_types::rococo_runtime::dynamic_params::preimage::ByteDeposit, + ::core::option::Option<::core::primitive::u128>, + ), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum ParametersKey { + #[codec(index = 0)] + BaseDeposit( + runtime_types::rococo_runtime::dynamic_params::preimage::BaseDeposit, + ), + #[codec(index = 1)] + ByteDeposit( + runtime_types::rococo_runtime::dynamic_params::preimage::ByteDeposit, + ), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum ParametersValue { + #[codec(index = 0)] + BaseDeposit(::core::primitive::u128), + #[codec(index = 1)] + ByteDeposit(::core::primitive::u128), + } + } + } pub mod governance { use super::runtime_types; pub mod origins { @@ -56193,14 +66349,18 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::register_validators`]."] + #[doc = "Add new validators to the set."] + #[doc = ""] + #[doc = "The new validators will be active from current session + 2."] register_validators { validators: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::deregister_validators`]."] + #[doc = "Remove validators from the set."] + #[doc = ""] + #[doc = "The removed validators will be deactivated from current session + 2."] deregister_validators { validators: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, @@ -56312,14 +66472,12 @@ pub mod api { Indices(runtime_types::pallet_indices::pallet::Call), #[codec(index = 4)] Balances(runtime_types::pallet_balances::pallet::Call), - #[codec(index = 240)] - Beefy(runtime_types::pallet_beefy::pallet::Call), + #[codec(index = 6)] + Parameters(runtime_types::pallet_parameters::pallet::Call), #[codec(index = 8)] Session(runtime_types::pallet_session::pallet::Call), #[codec(index = 10)] Grandpa(runtime_types::pallet_grandpa::pallet::Call), - #[codec(index = 11)] - ImOnline(runtime_types::pallet_im_online::pallet::Call), #[codec(index = 18)] Treasury(runtime_types::pallet_treasury::pallet::Call), #[codec(index = 20)] @@ -56400,8 +66558,16 @@ pub mod api { Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Call), #[codec(index = 73)] Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Call), + #[codec(index = 74)] + Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Call), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Call), + #[codec(index = 240)] + Beefy(runtime_types::pallet_beefy::pallet::Call), + #[codec(index = 248)] + IdentityMigrator( + runtime_types::polkadot_runtime_common::identity_migrator::pallet::Call, + ), #[codec(index = 250)] ParasSudoWrapper( runtime_types::polkadot_runtime_common::paras_sudo_wrapper::pallet::Call, @@ -56412,6 +66578,8 @@ pub mod api { ValidatorManager(runtime_types::rococo_runtime::validator_manager::pallet::Call), #[codec(index = 254)] StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::Call), + #[codec(index = 249)] + RootTesting(runtime_types::pallet_root_testing::pallet::Call), #[codec(index = 255)] Sudo(runtime_types::pallet_sudo::pallet::Call), } @@ -56434,14 +66602,10 @@ pub mod api { Indices(runtime_types::pallet_indices::pallet::Error), #[codec(index = 4)] Balances(runtime_types::pallet_balances::pallet::Error), - #[codec(index = 240)] - Beefy(runtime_types::pallet_beefy::pallet::Error), #[codec(index = 8)] Session(runtime_types::pallet_session::pallet::Error), #[codec(index = 10)] Grandpa(runtime_types::pallet_grandpa::pallet::Error), - #[codec(index = 11)] - ImOnline(runtime_types::pallet_im_online::pallet::Error), #[codec(index = 18)] Treasury(runtime_types::pallet_treasury::pallet::Error), #[codec(index = 20)] @@ -56510,6 +66674,10 @@ pub mod api { OnDemandAssignmentProvider( runtime_types::polkadot_runtime_parachains::assigner_on_demand::pallet::Error, ), + #[codec(index = 68)] + CoretimeAssignmentProvider( + runtime_types::polkadot_runtime_parachains::assigner_coretime::pallet::Error, + ), #[codec(index = 70)] Registrar(runtime_types::polkadot_runtime_common::paras_registrar::pallet::Error), #[codec(index = 71)] @@ -56518,8 +66686,12 @@ pub mod api { Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Error), #[codec(index = 73)] Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Error), + #[codec(index = 74)] + Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Error), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Error), + #[codec(index = 240)] + Beefy(runtime_types::pallet_beefy::pallet::Error), #[codec(index = 250)] ParasSudoWrapper( runtime_types::polkadot_runtime_common::paras_sudo_wrapper::pallet::Error, @@ -56550,6 +66722,8 @@ pub mod api { Indices(runtime_types::pallet_indices::pallet::Event), #[codec(index = 4)] Balances(runtime_types::pallet_balances::pallet::Event), + #[codec(index = 6)] + Parameters(runtime_types::pallet_parameters::pallet::Event), #[codec(index = 33)] TransactionPayment(runtime_types::pallet_transaction_payment::pallet::Event), #[codec(index = 7)] @@ -56558,8 +66732,6 @@ pub mod api { Session(runtime_types::pallet_session::pallet::Event), #[codec(index = 10)] Grandpa(runtime_types::pallet_grandpa::pallet::Event), - #[codec(index = 11)] - ImOnline(runtime_types::pallet_im_online::pallet::Event), #[codec(index = 18)] Treasury(runtime_types::pallet_treasury::pallet::Event), #[codec(index = 20)] @@ -56624,8 +66796,14 @@ pub mod api { Auctions(runtime_types::polkadot_runtime_common::auctions::pallet::Event), #[codec(index = 73)] Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Event), + #[codec(index = 74)] + Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Event), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Event), + #[codec(index = 248)] + IdentityMigrator( + runtime_types::polkadot_runtime_common::identity_migrator::pallet::Event, + ), #[codec(index = 251)] AssignedSlots( runtime_types::polkadot_runtime_common::assigned_slots::pallet::Event, @@ -56634,6 +66812,8 @@ pub mod api { ValidatorManager(runtime_types::rococo_runtime::validator_manager::pallet::Event), #[codec(index = 254)] StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::Event), + #[codec(index = 249)] + RootTesting(runtime_types::pallet_root_testing::pallet::Event), #[codec(index = 255)] Sudo(runtime_types::pallet_sudo::pallet::Event), } @@ -56652,6 +66832,56 @@ pub mod api { Preimage(runtime_types::pallet_preimage::pallet::HoldReason), #[codec(index = 38)] Nis(runtime_types::pallet_nis::pallet::HoldReason), + #[codec(index = 254)] + StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::HoldReason), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum RuntimeParameters { + #[codec(index = 0)] + Nis(runtime_types::rococo_runtime::dynamic_params::nis::Parameters), + #[codec(index = 1)] + Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::Parameters), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum RuntimeParametersKey { + #[codec(index = 0)] + Nis(runtime_types::rococo_runtime::dynamic_params::nis::ParametersKey), + #[codec(index = 1)] + Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::ParametersKey), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum RuntimeParametersValue { + #[codec(index = 0)] + Nis(runtime_types::rococo_runtime::dynamic_params::nis::ParametersValue), + #[codec(index = 1)] + Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::ParametersValue), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -56666,9 +66896,8 @@ pub mod api { pub struct SessionKeys { pub grandpa: runtime_types::sp_consensus_grandpa::app::Public, pub babe: runtime_types::sp_consensus_babe::app::Public, - pub im_online: runtime_types::pallet_im_online::sr25519::app_sr25519::Public, - pub para_validator: runtime_types::polkadot_primitives::v6::validator_app::Public, - pub para_assignment: runtime_types::polkadot_primitives::v6::assignment_app::Public, + pub para_validator: runtime_types::polkadot_primitives::v7::validator_app::Public, + pub para_assignment: runtime_types::polkadot_primitives::v7::assignment_app::Public, pub authority_discovery: runtime_types::sp_authority_discovery::app::Public, pub beefy: runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, } @@ -56797,7 +67026,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); } } pub mod sp_consensus_babe { @@ -56818,7 +67047,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); } pub mod digests { use super::runtime_types; @@ -57052,7 +67281,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::ecdsa::Public); + pub struct Public(pub [::core::primitive::u8; 33usize]); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -57067,7 +67296,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Signature(pub runtime_types::sp_core::ecdsa::Signature); + pub struct Signature(pub [::core::primitive::u8; 65usize]); } pub mod mmr { use super::runtime_types; @@ -57189,7 +67418,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::ed25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -57204,7 +67433,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Signature(pub runtime_types::sp_core::ed25519::Signature); + pub struct Signature(pub [::core::primitive::u8; 64usize]); } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -57313,72 +67542,6 @@ pub mod api { )] pub struct KeyTypeId(pub [::core::primitive::u8; 4usize]); } - pub mod ecdsa { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Public(pub [::core::primitive::u8; 33usize]); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Signature(pub [::core::primitive::u8; 65usize]); - } - pub mod ed25519 { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Public(pub [::core::primitive::u8; 32usize]); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Signature(pub [::core::primitive::u8; 64usize]); - } pub mod sr25519 { use super::runtime_types; pub mod vrf { @@ -57398,40 +67561,10 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct VrfSignature { - pub output: [::core::primitive::u8; 32usize], + pub pre_output: [::core::primitive::u8; 32usize], pub proof: [::core::primitive::u8; 64usize], } } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Public(pub [::core::primitive::u8; 32usize]); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Signature(pub [::core::primitive::u8; 64usize]); } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -58406,6 +68539,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum ExtrinsicInclusionMode { + #[codec(index = 0)] + AllExtrinsics, + #[codec(index = 1)] + OnlyInherents, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ModuleError { pub index: ::core::primitive::u8, pub error: [::core::primitive::u8; 4usize], @@ -58422,11 +68571,11 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum MultiSignature { #[codec(index = 0)] - Ed25519(runtime_types::sp_core::ed25519::Signature), + Ed25519([::core::primitive::u8; 64usize]), #[codec(index = 1)] - Sr25519(runtime_types::sp_core::sr25519::Signature), + Sr25519([::core::primitive::u8; 64usize]), #[codec(index = 2)] - Ecdsa(runtime_types::sp_core::ecdsa::Signature), + Ecdsa([::core::primitive::u8; 65usize]), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -58440,11 +68589,11 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum MultiSigner { #[codec(index = 0)] - Ed25519(runtime_types::sp_core::ed25519::Public), + Ed25519([::core::primitive::u8; 32usize]), #[codec(index = 1)] - Sr25519(runtime_types::sp_core::sr25519::Public), + Sr25519([::core::primitive::u8; 32usize]), #[codec(index = 2)] - Ecdsa(runtime_types::sp_core::ecdsa::Public), + Ecdsa([::core::primitive::u8; 33usize]), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -58631,6 +68780,985 @@ pub mod api { } } } + pub mod v4 { + use super::runtime_types; + pub mod asset { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Asset { + pub id: runtime_types::staging_xcm::v4::asset::AssetId, + pub fun: runtime_types::staging_xcm::v4::asset::Fungibility, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum AssetFilter { + #[codec(index = 0)] + Definite(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 1)] + Wild(runtime_types::staging_xcm::v4::asset::WildAsset), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct AssetId(pub runtime_types::staging_xcm::v4::location::Location); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum AssetInstance { + #[codec(index = 0)] + Undefined, + #[codec(index = 1)] + Index(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 2)] + Array4([::core::primitive::u8; 4usize]), + #[codec(index = 3)] + Array8([::core::primitive::u8; 8usize]), + #[codec(index = 4)] + Array16([::core::primitive::u8; 16usize]), + #[codec(index = 5)] + Array32([::core::primitive::u8; 32usize]), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Assets( + pub ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v4::asset::Asset, + >, + ); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Fungibility { + #[codec(index = 0)] + Fungible(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 1)] + NonFungible(runtime_types::staging_xcm::v4::asset::AssetInstance), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum WildAsset { + #[codec(index = 0)] + All, + #[codec(index = 1)] + AllOf { + id: runtime_types::staging_xcm::v4::asset::AssetId, + fun: runtime_types::staging_xcm::v4::asset::WildFungibility, + }, + #[codec(index = 2)] + AllCounted(#[codec(compact)] ::core::primitive::u32), + #[codec(index = 3)] + AllOfCounted { + id: runtime_types::staging_xcm::v4::asset::AssetId, + fun: runtime_types::staging_xcm::v4::asset::WildFungibility, + #[codec(compact)] + count: ::core::primitive::u32, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum WildFungibility { + #[codec(index = 0)] + Fungible, + #[codec(index = 1)] + NonFungible, + } + } + pub mod junction { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Junction { + #[codec(index = 0)] + Parachain(#[codec(compact)] ::core::primitive::u32), + #[codec(index = 1)] + AccountId32 { + network: ::core::option::Option< + runtime_types::staging_xcm::v4::junction::NetworkId, + >, + id: [::core::primitive::u8; 32usize], + }, + #[codec(index = 2)] + AccountIndex64 { + network: ::core::option::Option< + runtime_types::staging_xcm::v4::junction::NetworkId, + >, + #[codec(compact)] + index: ::core::primitive::u64, + }, + #[codec(index = 3)] + AccountKey20 { + network: ::core::option::Option< + runtime_types::staging_xcm::v4::junction::NetworkId, + >, + key: [::core::primitive::u8; 20usize], + }, + #[codec(index = 4)] + PalletInstance(::core::primitive::u8), + #[codec(index = 5)] + GeneralIndex(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 6)] + GeneralKey { + length: ::core::primitive::u8, + data: [::core::primitive::u8; 32usize], + }, + #[codec(index = 7)] + OnlyChild, + #[codec(index = 8)] + Plurality { + id: runtime_types::xcm::v3::junction::BodyId, + part: runtime_types::xcm::v3::junction::BodyPart, + }, + #[codec(index = 9)] + GlobalConsensus(runtime_types::staging_xcm::v4::junction::NetworkId), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum NetworkId { + #[codec(index = 0)] + ByGenesis([::core::primitive::u8; 32usize]), + #[codec(index = 1)] + ByFork { + block_number: ::core::primitive::u64, + block_hash: [::core::primitive::u8; 32usize], + }, + #[codec(index = 2)] + Polkadot, + #[codec(index = 3)] + Kusama, + #[codec(index = 4)] + Westend, + #[codec(index = 5)] + Rococo, + #[codec(index = 6)] + Wococo, + #[codec(index = 7)] + Ethereum { + #[codec(compact)] + chain_id: ::core::primitive::u64, + }, + #[codec(index = 8)] + BitcoinCore, + #[codec(index = 9)] + BitcoinCash, + #[codec(index = 10)] + PolkadotBulletin, + } + } + pub mod junctions { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Junctions { + #[codec(index = 0)] + Here, + #[codec(index = 1)] + X1([runtime_types::staging_xcm::v4::junction::Junction; 1usize]), + #[codec(index = 2)] + X2([runtime_types::staging_xcm::v4::junction::Junction; 2usize]), + #[codec(index = 3)] + X3([runtime_types::staging_xcm::v4::junction::Junction; 3usize]), + #[codec(index = 4)] + X4([runtime_types::staging_xcm::v4::junction::Junction; 4usize]), + #[codec(index = 5)] + X5([runtime_types::staging_xcm::v4::junction::Junction; 5usize]), + #[codec(index = 6)] + X6([runtime_types::staging_xcm::v4::junction::Junction; 6usize]), + #[codec(index = 7)] + X7([runtime_types::staging_xcm::v4::junction::Junction; 7usize]), + #[codec(index = 8)] + X8([runtime_types::staging_xcm::v4::junction::Junction; 8usize]), + } + } + pub mod location { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Location { + pub parents: ::core::primitive::u8, + pub interior: runtime_types::staging_xcm::v4::junctions::Junctions, + } + } + pub mod traits { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Outcome { + #[codec(index = 0)] + Complete { + used: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 1)] + Incomplete { + used: runtime_types::sp_weights::weight_v2::Weight, + error: runtime_types::xcm::v3::traits::Error, + }, + #[codec(index = 2)] + Error { + error: runtime_types::xcm::v3::traits::Error, + }, + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Instruction1 { + #[codec(index = 0)] + WithdrawAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 1)] + ReserveAssetDeposited(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 2)] + ReceiveTeleportedAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 3)] + QueryResponse { + #[codec(compact)] + query_id: ::core::primitive::u64, + response: runtime_types::staging_xcm::v4::Response, + max_weight: runtime_types::sp_weights::weight_v2::Weight, + querier: ::core::option::Option< + runtime_types::staging_xcm::v4::location::Location, + >, + }, + #[codec(index = 4)] + TransferAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + beneficiary: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 5)] + TransferReserveAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 6)] + Transact { + origin_kind: runtime_types::xcm::v2::OriginKind, + require_weight_at_most: runtime_types::sp_weights::weight_v2::Weight, + call: runtime_types::xcm::double_encoded::DoubleEncoded, + }, + #[codec(index = 7)] + HrmpNewChannelOpenRequest { + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + max_message_size: ::core::primitive::u32, + #[codec(compact)] + max_capacity: ::core::primitive::u32, + }, + #[codec(index = 8)] + HrmpChannelAccepted { + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 9)] + HrmpChannelClosing { + #[codec(compact)] + initiator: ::core::primitive::u32, + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 10)] + ClearOrigin, + #[codec(index = 11)] + DescendOrigin(runtime_types::staging_xcm::v4::junctions::Junctions), + #[codec(index = 12)] + ReportError(runtime_types::staging_xcm::v4::QueryResponseInfo), + #[codec(index = 13)] + DepositAsset { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + beneficiary: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 14)] + DepositReserveAsset { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 15)] + ExchangeAsset { + give: runtime_types::staging_xcm::v4::asset::AssetFilter, + want: runtime_types::staging_xcm::v4::asset::Assets, + maximal: ::core::primitive::bool, + }, + #[codec(index = 16)] + InitiateReserveWithdraw { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + reserve: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 17)] + InitiateTeleport { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 18)] + ReportHolding { + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + }, + #[codec(index = 19)] + BuyExecution { + fees: runtime_types::staging_xcm::v4::asset::Asset, + weight_limit: runtime_types::xcm::v3::WeightLimit, + }, + #[codec(index = 20)] + RefundSurplus, + #[codec(index = 21)] + SetErrorHandler(runtime_types::staging_xcm::v4::Xcm1), + #[codec(index = 22)] + SetAppendix(runtime_types::staging_xcm::v4::Xcm1), + #[codec(index = 23)] + ClearError, + #[codec(index = 24)] + ClaimAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + ticket: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 25)] + Trap(#[codec(compact)] ::core::primitive::u64), + #[codec(index = 26)] + SubscribeVersion { + #[codec(compact)] + query_id: ::core::primitive::u64, + max_response_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 27)] + UnsubscribeVersion, + #[codec(index = 28)] + BurnAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 29)] + ExpectAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 30)] + ExpectOrigin( + ::core::option::Option, + ), + #[codec(index = 31)] + ExpectError( + ::core::option::Option<( + ::core::primitive::u32, + runtime_types::xcm::v3::traits::Error, + )>, + ), + #[codec(index = 32)] + ExpectTransactStatus(runtime_types::xcm::v3::MaybeErrorCode), + #[codec(index = 33)] + QueryPallet { + module_name: + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + }, + #[codec(index = 34)] + ExpectPallet { + #[codec(compact)] + index: ::core::primitive::u32, + name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + module_name: + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + #[codec(compact)] + crate_major: ::core::primitive::u32, + #[codec(compact)] + min_crate_minor: ::core::primitive::u32, + }, + #[codec(index = 35)] + ReportTransactStatus(runtime_types::staging_xcm::v4::QueryResponseInfo), + #[codec(index = 36)] + ClearTransactStatus, + #[codec(index = 37)] + UniversalOrigin(runtime_types::staging_xcm::v4::junction::Junction), + #[codec(index = 38)] + ExportMessage { + network: runtime_types::staging_xcm::v4::junction::NetworkId, + destination: runtime_types::staging_xcm::v4::junctions::Junctions, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 39)] + LockAsset { + asset: runtime_types::staging_xcm::v4::asset::Asset, + unlocker: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 40)] + UnlockAsset { + asset: runtime_types::staging_xcm::v4::asset::Asset, + target: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 41)] + NoteUnlockable { + asset: runtime_types::staging_xcm::v4::asset::Asset, + owner: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 42)] + RequestUnlock { + asset: runtime_types::staging_xcm::v4::asset::Asset, + locker: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 43)] + SetFeesMode { + jit_withdraw: ::core::primitive::bool, + }, + #[codec(index = 44)] + SetTopic([::core::primitive::u8; 32usize]), + #[codec(index = 45)] + ClearTopic, + #[codec(index = 46)] + AliasOrigin(runtime_types::staging_xcm::v4::location::Location), + #[codec(index = 47)] + UnpaidExecution { + weight_limit: runtime_types::xcm::v3::WeightLimit, + check_origin: ::core::option::Option< + runtime_types::staging_xcm::v4::location::Location, + >, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Instruction2 { + #[codec(index = 0)] + WithdrawAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 1)] + ReserveAssetDeposited(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 2)] + ReceiveTeleportedAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 3)] + QueryResponse { + #[codec(compact)] + query_id: ::core::primitive::u64, + response: runtime_types::staging_xcm::v4::Response, + max_weight: runtime_types::sp_weights::weight_v2::Weight, + querier: ::core::option::Option< + runtime_types::staging_xcm::v4::location::Location, + >, + }, + #[codec(index = 4)] + TransferAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + beneficiary: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 5)] + TransferReserveAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 6)] + Transact { + origin_kind: runtime_types::xcm::v2::OriginKind, + require_weight_at_most: runtime_types::sp_weights::weight_v2::Weight, + call: runtime_types::xcm::double_encoded::DoubleEncoded, + }, + #[codec(index = 7)] + HrmpNewChannelOpenRequest { + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + max_message_size: ::core::primitive::u32, + #[codec(compact)] + max_capacity: ::core::primitive::u32, + }, + #[codec(index = 8)] + HrmpChannelAccepted { + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 9)] + HrmpChannelClosing { + #[codec(compact)] + initiator: ::core::primitive::u32, + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 10)] + ClearOrigin, + #[codec(index = 11)] + DescendOrigin(runtime_types::staging_xcm::v4::junctions::Junctions), + #[codec(index = 12)] + ReportError(runtime_types::staging_xcm::v4::QueryResponseInfo), + #[codec(index = 13)] + DepositAsset { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + beneficiary: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 14)] + DepositReserveAsset { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 15)] + ExchangeAsset { + give: runtime_types::staging_xcm::v4::asset::AssetFilter, + want: runtime_types::staging_xcm::v4::asset::Assets, + maximal: ::core::primitive::bool, + }, + #[codec(index = 16)] + InitiateReserveWithdraw { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + reserve: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 17)] + InitiateTeleport { + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + dest: runtime_types::staging_xcm::v4::location::Location, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 18)] + ReportHolding { + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + assets: runtime_types::staging_xcm::v4::asset::AssetFilter, + }, + #[codec(index = 19)] + BuyExecution { + fees: runtime_types::staging_xcm::v4::asset::Asset, + weight_limit: runtime_types::xcm::v3::WeightLimit, + }, + #[codec(index = 20)] + RefundSurplus, + #[codec(index = 21)] + SetErrorHandler(runtime_types::staging_xcm::v4::Xcm2), + #[codec(index = 22)] + SetAppendix(runtime_types::staging_xcm::v4::Xcm2), + #[codec(index = 23)] + ClearError, + #[codec(index = 24)] + ClaimAsset { + assets: runtime_types::staging_xcm::v4::asset::Assets, + ticket: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 25)] + Trap(#[codec(compact)] ::core::primitive::u64), + #[codec(index = 26)] + SubscribeVersion { + #[codec(compact)] + query_id: ::core::primitive::u64, + max_response_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 27)] + UnsubscribeVersion, + #[codec(index = 28)] + BurnAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 29)] + ExpectAsset(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 30)] + ExpectOrigin( + ::core::option::Option, + ), + #[codec(index = 31)] + ExpectError( + ::core::option::Option<( + ::core::primitive::u32, + runtime_types::xcm::v3::traits::Error, + )>, + ), + #[codec(index = 32)] + ExpectTransactStatus(runtime_types::xcm::v3::MaybeErrorCode), + #[codec(index = 33)] + QueryPallet { + module_name: + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + }, + #[codec(index = 34)] + ExpectPallet { + #[codec(compact)] + index: ::core::primitive::u32, + name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + module_name: + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + #[codec(compact)] + crate_major: ::core::primitive::u32, + #[codec(compact)] + min_crate_minor: ::core::primitive::u32, + }, + #[codec(index = 35)] + ReportTransactStatus(runtime_types::staging_xcm::v4::QueryResponseInfo), + #[codec(index = 36)] + ClearTransactStatus, + #[codec(index = 37)] + UniversalOrigin(runtime_types::staging_xcm::v4::junction::Junction), + #[codec(index = 38)] + ExportMessage { + network: runtime_types::staging_xcm::v4::junction::NetworkId, + destination: runtime_types::staging_xcm::v4::junctions::Junctions, + xcm: runtime_types::staging_xcm::v4::Xcm1, + }, + #[codec(index = 39)] + LockAsset { + asset: runtime_types::staging_xcm::v4::asset::Asset, + unlocker: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 40)] + UnlockAsset { + asset: runtime_types::staging_xcm::v4::asset::Asset, + target: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 41)] + NoteUnlockable { + asset: runtime_types::staging_xcm::v4::asset::Asset, + owner: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 42)] + RequestUnlock { + asset: runtime_types::staging_xcm::v4::asset::Asset, + locker: runtime_types::staging_xcm::v4::location::Location, + }, + #[codec(index = 43)] + SetFeesMode { + jit_withdraw: ::core::primitive::bool, + }, + #[codec(index = 44)] + SetTopic([::core::primitive::u8; 32usize]), + #[codec(index = 45)] + ClearTopic, + #[codec(index = 46)] + AliasOrigin(runtime_types::staging_xcm::v4::location::Location), + #[codec(index = 47)] + UnpaidExecution { + weight_limit: runtime_types::xcm::v3::WeightLimit, + check_origin: ::core::option::Option< + runtime_types::staging_xcm::v4::location::Location, + >, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct PalletInfo { + #[codec(compact)] + pub index: ::core::primitive::u32, + pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + #[codec(compact)] + pub major: ::core::primitive::u32, + #[codec(compact)] + pub minor: ::core::primitive::u32, + #[codec(compact)] + pub patch: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryResponseInfo { + pub destination: runtime_types::staging_xcm::v4::location::Location, + #[codec(compact)] + pub query_id: ::core::primitive::u64, + pub max_weight: runtime_types::sp_weights::weight_v2::Weight, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Response { + #[codec(index = 0)] + Null, + #[codec(index = 1)] + Assets(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 2)] + ExecutionResult( + ::core::option::Option<( + ::core::primitive::u32, + runtime_types::xcm::v3::traits::Error, + )>, + ), + #[codec(index = 3)] + Version(::core::primitive::u32), + #[codec(index = 4)] + PalletsInfo( + runtime_types::bounded_collections::bounded_vec::BoundedVec6< + runtime_types::staging_xcm::v4::PalletInfo, + >, + ), + #[codec(index = 5)] + DispatchResult(runtime_types::xcm::v3::MaybeErrorCode), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Xcm1( + pub ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v4::Instruction1, + >, + ); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Xcm2( + pub ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v4::Instruction2, + >, + ); + } + } + pub mod staging_xcm_executor { + use super::runtime_types; + pub mod traits { + use super::runtime_types; + pub mod asset_transfer { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum TransferType { + #[codec(index = 0)] + Teleport, + #[codec(index = 1)] + LocalReserve, + #[codec(index = 2)] + DestinationReserve, + #[codec(index = 3)] + RemoteReserve(runtime_types::xcm::VersionedLocation), + } + } + } } pub mod xcm { use super::runtime_types; @@ -59761,6 +70889,8 @@ pub mod api { BitcoinCore, #[codec(index = 9)] BitcoinCash, + #[codec(index = 10)] + PolkadotBulletin, } } pub mod junctions { @@ -60120,31 +71250,6 @@ pub mod api { #[codec(index = 39)] ExceedsStackLimit, } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Outcome { - #[codec(index = 0)] - Complete(runtime_types::sp_weights::weight_v2::Weight), - #[codec(index = 1)] - Incomplete( - runtime_types::sp_weights::weight_v2::Weight, - runtime_types::xcm::v3::traits::Error, - ), - #[codec(index = 2)] - Error(runtime_types::xcm::v3::traits::Error), - } } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -60617,13 +71722,13 @@ pub mod api { Success, #[codec(index = 1)] Error( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, ), #[codec(index = 2)] TruncatedError( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, ), @@ -60645,10 +71750,10 @@ pub mod api { pub struct PalletInfo { #[codec(compact)] pub index: ::core::primitive::u32, - pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec5< + pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, - pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec5< + pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, #[codec(compact)] @@ -60708,7 +71813,7 @@ pub mod api { Version(::core::primitive::u32), #[codec(index = 4)] PalletsInfo( - runtime_types::bounded_collections::bounded_vec::BoundedVec4< + runtime_types::bounded_collections::bounded_vec::BoundedVec5< runtime_types::xcm::v3::PalletInfo, >, ), @@ -60787,6 +71892,8 @@ pub mod api { pub enum VersionedAssetId { #[codec(index = 3)] V3(runtime_types::xcm::v3::multiasset::AssetId), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::asset::AssetId), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -60798,11 +71905,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub enum VersionedMultiAssets { + pub enum VersionedAssets { #[codec(index = 1)] V2(runtime_types::xcm::v2::multiasset::MultiAssets), #[codec(index = 3)] V3(runtime_types::xcm::v3::multiasset::MultiAssets), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::asset::Assets), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -60814,11 +71923,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub enum VersionedMultiLocation { + pub enum VersionedLocation { #[codec(index = 1)] V2(runtime_types::xcm::v2::multilocation::MultiLocation), #[codec(index = 3)] V3(runtime_types::staging_xcm::v3::multilocation::MultiLocation), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::location::Location), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -60835,6 +71946,8 @@ pub mod api { V2(runtime_types::xcm::v2::Response), #[codec(index = 3)] V3(runtime_types::xcm::v3::Response), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::Response), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -60851,6 +71964,8 @@ pub mod api { V2(runtime_types::xcm::v2::Xcm1), #[codec(index = 3)] V3(runtime_types::xcm::v3::Xcm1), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::Xcm1), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -60867,6 +71982,35 @@ pub mod api { V2(runtime_types::xcm::v2::Xcm2), #[codec(index = 3)] V3(runtime_types::xcm::v3::Xcm2), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::Xcm2), + } + } + pub mod xcm_fee_payment_runtime_api { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum Error { + #[codec(index = 0)] + Unimplemented, + #[codec(index = 1)] + VersionedConversionFailed, + #[codec(index = 2)] + WeightNotComputable, + #[codec(index = 3)] + UnhandledXcmVersion, + #[codec(index = 4)] + AssetNotFound, + #[codec(index = 5)] + Unroutable, } } }