From 9773cb53c92bb9edd52035f9a81fe9f3c7d2516b Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 10:20:25 +0100 Subject: [PATCH] Update Artifacts (auto-generated) (#1463) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> --- artifacts/demo_chain_specs/polkadot.json | 8 +- artifacts/polkadot_metadata_full.scale | Bin 307633 -> 402123 bytes artifacts/polkadot_metadata_small.scale | Bin 61025 -> 69830 bytes artifacts/polkadot_metadata_tiny.scale | Bin 37920 -> 38035 bytes .../src/full_client/codegen/polkadot.rs | 8701 ++++++++++++++--- 5 files changed, 7613 insertions(+), 1096 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index a24aa92599..6b715a7ac7 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -43,10 +43,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x0499ed11844881f9a3e6791b1032a0e229db03a40fd8c5634cbacc85757c3c1b92abaf2b010173eef91000000000d3f7f9100000000004651bd04476837746eaf45e4269c11d1ae31c02468cf50d968b347db96ec3b198f8b82b0101d3f7f910000000003301fa100000000004440a975e0d61ca352b2acd649ebaa94d6c42695ce0ee438c627abe2c518171a352c22b01013301fa1000000000930afa100000000000000c440a975e0d61ca352b2acd649ebaa94d6c42695ce0ee438c627abe2c518171a352c22b01011f200000000000003301fa10000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a54010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec214541750100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b9200100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000028cbfe245b9eec3bf55d8d249ab3680490644aa23a7b688e00478e7fcb0fe02901000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a935010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b74010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc190100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f067877170100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf710100000000000000b6397b9e34e46715868bbaa83cb67dec4d78ce992f4a9c973e6fc1e2dde3d76b010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e70210100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf080100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b01000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b0100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c36010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d8708132010000000000000080413d2894759b53a03874bf96ffcb66117e4a08ad7f159c008f2b3b6cfcbb470100000000000000ea885fca10a9473631bcca2549cb8183beef534a7ee2bd59a0a6f74d97bcfc4401000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a796260100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede264010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d030100000000000000584bf60b8b17ddaf70f87f371bd2b425a3637e05c1b75469f45ea85717063b6901000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a3785590100000000000000f8db92b1e5f6e9a7f23435a2aadab56d5ab7746c978965d924de2f89ef063c21010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000b045bf0235bbe708e4d6918758650c9c7f9ab4d638e4a841807ed7c82ff7f63a0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b35150100000000000000800dd25a7aea3fd7359065185cb35b4a2fad0b81b3d58de638e6764dc8a8211d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e638010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb1901000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f610010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000ba12ca0e39666950f91cccac64a409fc9216e0e6e7466d26cbcf7925c3d0fe120100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f845010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f49533301000000000000009ad5ff7033b5708f5de5496a94c16fefa6de45ad641910b81d6699c37888435801000000000000003ed1ddb7a3c787fb4b4ec4b71c6d8b8227ec5b2b74206be0df38c9e85af482040100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d933193001000000000000000c73fd83ff0d798ecd6be0518e340dd60c45bdd386c95236ad1db6b1572f1c7d01000000000000004678cfe8b5ab7811861b19336b572f9c7175ad92efbd8a031e5fcdda58173f51010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d010000000000000092d42adbe88eb57759aac9f72ef4a88c3459635bf9886f4613371efd4e7fd14a0100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000b2967e3480b89af39e38367f948fb287568f27bfdac4b65fbc9d97536c79c7000100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d410100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b140201000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000007a07e4b6b4daf45f4af2a98e7458034447ae0e67e9a22596848e58d4ba73b9530100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed526401000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d80666401000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e01000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e2529010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da7201000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f0100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000003cfa50228b841c7d2fab03db7e4bf282cf14e127ab9b31c23fca1a79be54e823010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac56101000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000f6f94569aba4acba85b7745a91caaac8a89c95469cf2b9813891eeb94327937b010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de32010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a46301000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d6901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f01000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a460100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a010000000000000066f55d4bd0b47f3cdad20c74b98e204e51bd12799df198045a1d670e3661732b01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa3502010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e01000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f07685201000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000248cddedee20dbb65f20a1715c2490c09241f6800b72d0c4029a1c234f2ce74b01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba6201000000000000001cf3abc7c9d8027488ea2f5f2463fd091b194fbeeebf560875e8648fbc67dc240100000000000000ca526faf8ee5263d4006452735885dce304cf724040fce84399254d9160d6f350100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb5568770100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000b842693f8e988a596491b840510f98489ae286129b41fa51b8331ca3b82da7590100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e2101000000000000003289fb8751519a2f8d56df55e5491439852a63aa916d9d779cbf574df9a5d86e0100000000000000b85b1b7b8ed510a5bc1d0979fdc04ec7b73d84c7d1d767dafb6faccc8dfd402c010000000000000038ab6c4b18e1c86176cf53301ea990f1cdddcdc3f2c3e0f8dde126fa59f60b2f0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a1843220100000000000000840c71fc86d7df66080508495f2c2ef97ae503dbd75362c96a6dcfd2cb30b4450100000000000000040000000000000002651bd04476837746eaf45e4269c11d1ae31c02468cf50d968b347db96ec3b198f8b82b01011e20000000000000d3f7f910000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a54010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec214541750100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b9200100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000028cbfe245b9eec3bf55d8d249ab3680490644aa23a7b688e00478e7fcb0fe02901000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a935010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b74010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc190100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f067877170100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf710100000000000000b6397b9e34e46715868bbaa83cb67dec4d78ce992f4a9c973e6fc1e2dde3d76b010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e70210100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf080100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b01000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b0100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c36010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d8708132010000000000000080413d2894759b53a03874bf96ffcb66117e4a08ad7f159c008f2b3b6cfcbb470100000000000000ea885fca10a9473631bcca2549cb8183beef534a7ee2bd59a0a6f74d97bcfc4401000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a796260100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede264010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d030100000000000000584bf60b8b17ddaf70f87f371bd2b425a3637e05c1b75469f45ea85717063b6901000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a3785590100000000000000f8db92b1e5f6e9a7f23435a2aadab56d5ab7746c978965d924de2f89ef063c21010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000b045bf0235bbe708e4d6918758650c9c7f9ab4d638e4a841807ed7c82ff7f63a0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b35150100000000000000800dd25a7aea3fd7359065185cb35b4a2fad0b81b3d58de638e6764dc8a8211d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e638010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb1901000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f610010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000ba12ca0e39666950f91cccac64a409fc9216e0e6e7466d26cbcf7925c3d0fe120100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f845010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f49533301000000000000009ad5ff7033b5708f5de5496a94c16fefa6de45ad641910b81d6699c37888435801000000000000003ed1ddb7a3c787fb4b4ec4b71c6d8b8227ec5b2b74206be0df38c9e85af482040100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d933193001000000000000000c73fd83ff0d798ecd6be0518e340dd60c45bdd386c95236ad1db6b1572f1c7d01000000000000004678cfe8b5ab7811861b19336b572f9c7175ad92efbd8a031e5fcdda58173f51010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d010000000000000092d42adbe88eb57759aac9f72ef4a88c3459635bf9886f4613371efd4e7fd14a0100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000b2967e3480b89af39e38367f948fb287568f27bfdac4b65fbc9d97536c79c7000100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d410100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b140201000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000007a07e4b6b4daf45f4af2a98e7458034447ae0e67e9a22596848e58d4ba73b9530100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed526401000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d80666401000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e01000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e2529010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da7201000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f0100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000003cfa50228b841c7d2fab03db7e4bf282cf14e127ab9b31c23fca1a79be54e823010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac56101000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000f6f94569aba4acba85b7745a91caaac8a89c95469cf2b9813891eeb94327937b010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de32010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a46301000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d6901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f01000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a460100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a010000000000000066f55d4bd0b47f3cdad20c74b98e204e51bd12799df198045a1d670e3661732b01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa3502010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e01000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f07685201000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000248cddedee20dbb65f20a1715c2490c09241f6800b72d0c4029a1c234f2ce74b01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba6201000000000000001cf3abc7c9d8027488ea2f5f2463fd091b194fbeeebf560875e8648fbc67dc240100000000000000ca526faf8ee5263d4006452735885dce304cf724040fce84399254d9160d6f350100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb5568770100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000b842693f8e988a596491b840510f98489ae286129b41fa51b8331ca3b82da7590100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e2101000000000000003289fb8751519a2f8d56df55e5491439852a63aa916d9d779cbf574df9a5d86e0100000000000000b85b1b7b8ed510a5bc1d0979fdc04ec7b73d84c7d1d767dafb6faccc8dfd402c010000000000000038ab6c4b18e1c86176cf53301ea990f1cdddcdc3f2c3e0f8dde126fa59f60b2f0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a184322010000000000000069e31581291fb1d743f0e22442d12c828c5b1e0d6976003991273662361969e0010000000000000004000000000000000299ed11844881f9a3e6791b1032a0e229db03a40fd8c5634cbacc85757c3c1b92abaf2b01011d2000000000000073eef910000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a54010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec214541750100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b9200100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000028cbfe245b9eec3bf55d8d249ab3680490644aa23a7b688e00478e7fcb0fe02901000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a935010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e477588789720100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b74010000000000000042e7851b82d8b7722b9eeb5eead57b21bf533fd25acb10542a52889376fc3920010000000000000028ce9c093ac772f56acb8dfe8b33a3966d4b8699bd41814117352d397195bd5f010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc190100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f067877170100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf710100000000000000b6397b9e34e46715868bbaa83cb67dec4d78ce992f4a9c973e6fc1e2dde3d76b010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e70210100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf080100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b01000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b0100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa190100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c36010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d8708132010000000000000080413d2894759b53a03874bf96ffcb66117e4a08ad7f159c008f2b3b6cfcbb470100000000000000ea885fca10a9473631bcca2549cb8183beef534a7ee2bd59a0a6f74d97bcfc4401000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a796260100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede264010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d030100000000000000584bf60b8b17ddaf70f87f371bd2b425a3637e05c1b75469f45ea85717063b6901000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a3785590100000000000000f8db92b1e5f6e9a7f23435a2aadab56d5ab7746c978965d924de2f89ef063c21010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000b045bf0235bbe708e4d6918758650c9c7f9ab4d638e4a841807ed7c82ff7f63a0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b35150100000000000000800dd25a7aea3fd7359065185cb35b4a2fad0b81b3d58de638e6764dc8a8211d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e638010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb1901000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f610010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000ba12ca0e39666950f91cccac64a409fc9216e0e6e7466d26cbcf7925c3d0fe120100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f845010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f49533301000000000000009ad5ff7033b5708f5de5496a94c16fefa6de45ad641910b81d6699c37888435801000000000000003ed1ddb7a3c787fb4b4ec4b71c6d8b8227ec5b2b74206be0df38c9e85af482040100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000009c576fccaf2ffb4885a0ac8ed7ba0b80ee5fd060856fb9f80bdd3219e5d7800d01000000000000000c73fd83ff0d798ecd6be0518e340dd60c45bdd386c95236ad1db6b1572f1c7d01000000000000004678cfe8b5ab7811861b19336b572f9c7175ad92efbd8a031e5fcdda58173f51010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d010000000000000092d42adbe88eb57759aac9f72ef4a88c3459635bf9886f4613371efd4e7fd14a0100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000b2967e3480b89af39e38367f948fb287568f27bfdac4b65fbc9d97536c79c7000100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d410100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b140201000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000007a07e4b6b4daf45f4af2a98e7458034447ae0e67e9a22596848e58d4ba73b9530100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed526401000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d80666401000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e01000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000a811cc491bb3487d5e604dcf6dca3bf529437162f3b8cfb8514ffab16809ff600100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e2529010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da7201000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f0100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000003cfa50228b841c7d2fab03db7e4bf282cf14e127ab9b31c23fca1a79be54e823010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac56101000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e0100000000000000f6f94569aba4acba85b7745a91caaac8a89c95469cf2b9813891eeb94327937b010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de32010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a46301000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d6901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f01000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a460100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a010000000000000066f55d4bd0b47f3cdad20c74b98e204e51bd12799df198045a1d670e3661732b01000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000d0106f6fb9b008052da3223c389525681d9b6e4fdb73a4078f7f1949bfaa3502010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e01000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f07685201000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000248cddedee20dbb65f20a1715c2490c09241f6800b72d0c4029a1c234f2ce74b01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba6201000000000000001cf3abc7c9d8027488ea2f5f2463fd091b194fbeeebf560875e8648fbc67dc240100000000000000ca526faf8ee5263d4006452735885dce304cf724040fce84399254d9160d6f350100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000000c3292b5065b7b78a2de5f4fe397fff21df37c0ff7eef94c5fc4397f760e6e4601000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb5568770100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000b842693f8e988a596491b840510f98489ae286129b41fa51b8331ca3b82da7590100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e2101000000000000003289fb8751519a2f8d56df55e5491439852a63aa916d9d779cbf574df9a5d86e0100000000000000b85b1b7b8ed510a5bc1d0979fdc04ec7b73d84c7d1d767dafb6faccc8dfd402c010000000000000038ab6c4b18e1c86176cf53301ea990f1cdddcdc3f2c3e0f8dde126fa59f60b2f0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf00430100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a184322010000000000000035df8c67b3e36862a6d20e58b429c739fe60cdcb14a977335c692cf84061672f0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 4905142, - "finalizedBlockHeader": "0xbaf2c66b730543579b98aac3c82340520834bd8edb0825504768951a28f039c29e0faf0438c607f9e2b5704ee47af74adc75b555a5d9bbdfaf00caaed4642fc05318e8de41565cf4a345b56c5a24d8c446567c16929f2279c904371363048fef12c7013e0c0642414245b501033f0000006df9f910000000009c40b3360d552bc490667bd8a20a3ce5e6322f3bf196d98e65e4c6f720e5b84a18c53a29473c2731e3a029bf4170042482be4b4a539a83a247db59c5879f440ebee6eabb0526d1f8927754cda5fe9d46094d313edc5f6a1be6c3bf69641a190c04424545468403b2c2b8932a78da0ef27b6e51f96b877954d11041311ac99533f2903bf3c71cf7054241424501015a8edff0a718f96d27d5a4f975882a1ed4dddc3d137717f535600ca66f13710f68686b9dfa9c9365cc9883aaf2608cd39351a4cbcfc9b55d28fd72cb7ca8f08d", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000047f940bc985355be7187c709ded2b689b66d69e61e293a507f1d4f90bdbeceee01000000000000001bae9b223279cf7f43805d7158bc4a31a981be184f969784091af289f854a0a801000000000000004a3fc0fe1020c7f460c7bd23d0b657c03368552b2f0a12d80a1c406fd066e0db01000000000000009b992b5e9b99eb2cd3b2b648d6db81ed722a2feb4938d998b58dcb5d159fadfa0100000000000000aee9de3938173700b3e3f4fbf2b200ae296173a0854157f40de2598dd4cad8f10100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a760100000000000000243f110deac5efe8e963d794eb8706a1895ae1942523ab0fe9e1623515b7dea80100000000000000b61e9b13e849779be8f5378a670d61991875d8e091f359384d7be73d02d506930100000000000000426b2be4596a759a15028d84e08c5c56440e6cede68d088f47c671cc3387c3e6010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a501000000000000009fc0dde9a352d1ee6ec34287a06a99e80bcbe708469d795a8c29448bed6a6c45010000000000000054e3d0d93579bedb7759b60e4b5a009f93fc86ff8da59c00b06b318a4c8d95ea0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000a15896b8bbf01f757f120813bc2e78b21388eea66db4b0dc2e1afeabd3d46dc00100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e01000000000000000139b946b46bee4c61be50c986f2a9ef2e76917644e2ecd842c59d61a94ee612010000000000000019a9d56ea35496122fc44fcb5c29d27fbb43520556d6f8d97753767aaa0f228e0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000a5b094ae7c156592baa68ce18dab6368d5b665e9a0f07dfc5f54f58309e086c1010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b010000000000000097743d6364cdb6c4790cd37c4c2ab5fbc6c65e8bb606625e70a6ee04ed1650d9010000000000000008cc1d6c743da905511a39a6f0a68809a6bc32f8ac25e53bb2d6aca4f493fc9b0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da810100000000000000d04d64a07f144638f20f081de122b88fed0cc8bda57e4810e7afb38036dd8bbf0100000000000000f26945a8a64032a1defa76e720a99649125b55751b6088205e7acab901de670b01000000000000005cba2c6f569da1edc3778308da406f266aa53140381dbb3f14f22909ba6e30040100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b60100000000000000589fc35b132ef9d7ed9a6787a203e5a3a37f8cd6c775f47ac5e589d55d381a6401000000000000006f4855725ebb9eced957bae43ffa7d30657ce7d06b251ce20e2218bcf929e4050100000000000000749556da4a259bc1f0b8ea8e3726c2251656b92205c30b635ec9f42038f8defb01000000000000000ce4d93e25fa5302f4b059456f680047f87be428ae88579e0b862502b5ceed600100000000000000c1758f7cbffeb844419bc494a9dc65fb394259f01e9bf23789a75acc29d7d9620100000000000000c1c1ff5f66fefb5c0849e3b2333411d1f7e9dd4888600e334e7a33623f15fa360100000000000000fe240e80ff8a48a77947b394979cf361017cd906ddaab637d72cf72e729d79bf010000000000000006854c73f5703242d31d2576ac2297c93f0b5dc16ade0097c59d5dc0faa43c550100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000008aabd4f6d7ecec7a749c83fc7be33f3b4818cca6f93a4927b4964900df9454e50100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d301000000000000003948bfd09bbbc2fe6ac5dfe53146e32df50828eecf7b2b18cdcff8dc385cbd750100000000000000a2a4af2a11ae7ba812fcc32845583d0354a0f2ffb1271a53c9a976a0f47fff44010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db4720100000000000000070bae15860ce96e4a0cbdcc051c75e37a458c8e6c5ae59681d0ed938e588d4501000000000000003ec37919f9f43a9f85f539edfde3ceebea1b0e8279cb036641d588a9da81a6ad01000000000000005e48598ca89db19a4c279a251216d81e33f6b69e7d2ab4450968a1f9409df4a30100000000000000f510cb6c7032c9134dd3e50014ff6d391cfc91606d003fd4acd37e00f919d8350100000000000000cbd74a646a84b73518eadc73b1983dc9733839739576af9a98c698070a3a4b590100000000000000d2e72b0ab02a001b2e573c0d3b78404a7d3c600c3a9fd8ef38e823cad6ed3d6601000000000000003047f8f7e9c47fda9130ccd57d5dc8d407bd89b8dcf8ecbaccf00da184c73a570100000000000000024743c39cd9e151344dc23c65ee0346132d190a224b687be5c5ae31c5e7bb0a01000000000000004e3fb8c16ad624c1852777456805e5352d0221269de66949c95da4076206b35a01000000000000007ad55381f9de00220678c95a19489640fc61331e2a40d927e3d833555575c6fc0100000000000000485d1c94299c3b74c4a87aab7b7d8e2ec3256fce3bcdc0f33a4d2a196e4ee2b60100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e010000000000000027791275ae7d4735aa45e70210663067f7d268aa57126a26044c8f6d8572a7d80100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000ba95f5d0e987305bb794dfeae69d7dd6a7987aa66cd7c9d42aca15e9160ec6a10100000000000000ffd82ddc49373448bed6feb0032744e20068f4e21adc4cb6d2cbf05ce73f4ce40100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf127010000000000000016278af083f6d261762f8a97b6a09ff83e2f5927ce26c2e48f3c7e771dc7e6950100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b010000000000000067ccabbf18c035791cee9c748bea2ca03cf72c40f5ae786f297f84fb05973262010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe979470100000000000000b8183b905f28b87c68c2d5b2f39f009f2ee22b47235f6c6d6cf6e63121b490300100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000affb713ecdae328aa4436756f6a3e8add6b274d5ef1cc19d7aa69ab82c80e472010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000008a2b50acd1a4955fc814bf6720c7427902a6ce709f3a2d7c17c55b67f6f1c06301000000000000003a511828c0cdc0fd257387843fdbf6f19d5ca1ef1c29ec7e971fc9f1195eb60c0100000000000000ee5605c1a9ed9484a70b8a591339830f24530eefc4599a7c6188a78896908e2c0100000000000000ad06042b85ed16ff4e46f5a68eba9ac12395366ab17c2da24b4f6747b2c8934f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000e4b2cffd0b9cacfc500050b27ecae3c55b9b51bd9a416d62605118c8ad4fb09f0100000000000000b28ba3f09e3521f7d09f0098c6743bc218ee2970068adfa5d908d9d06e627ae50100000000000000f6d74de7b39455519a5d6480c8f12c93fc7a4cfc9af39154fc60857a39ad888b0100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000002bb7b11dfe79a12110b0370510ef20d40ba8a563f517310f8bf37cf7f0403de40100000000000000f86e50733ff2142e88fe5b898087b4b1d6a3250064a439097f8995069624adef0100000000000000bba7a1ccb67a410afedb8e033ad69c39e7c554ce0ce6584b0e6688bae30f7d69010000000000000040533a786cd0be9618126633512666b1b1b9ab3b436fa653c93e2f65da9c196b0100000000000000be95095d93298171c6fb8a1847adfa173d127e13f53482dcb694f891d68f0c58010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f01000000000000006a5f902cdeda2c2161d16bd21d586720c08c0bbb7b463d9c59147338d26a8a9601000000000000009c11e35911f023df6e4d218e53412ab4e4a20c17961d63ba381c913b51f394c001000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000ffcca343512faeffe1cb3a8a7ce62fa4ee0c7f6a5f3e5ac883482846e132813d010000000000000037483029302a84623f0a8db165fbed905b0a4fc25e7cfb56e975a0e98336a59b0100000000000000ecc7b49598787520ef6336abaf798adbadd6406bb889d8bcefacbbc1a887a3fa010000000000000053b5918f72e73f92f32b578d1b602f0cc554d98bee8c4e131ef0ac7a63399fb4010000000000000063e935d23d285cec7b014cb7736d65b4acffc45ca589003d3231de8e6db8a8aa01000000000000006180a56305eff3231eebe895b44751f075f826684ef42a862f11e79c3e689cd301000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000068f2c90b93ba6130eb3a03f568411a471d0710086a468f8cba32b34e37411dd01000000000000001b08e8788191e92c357ebc21cac8b35558598fbf2f15a5f9a6bc6d980c2857670100000000000000c7d9cab0fb88dccd0cf4abbf5df9d7f36a3de439c5070c599d397e74133bdfed0100000000000000866fe4ae134938ccf4c5caf01358881c75cfde473b0bb8a2623cc231db2ea3b901000000000000005d202a011f023dfaa6713f16bfd4409dde8bfe594abd59e2be32484c73b97982010000000000000008cb5d0ff7f138698c9fb80a1383155cff65ec7e127c5b3614e2e17963969f100100000000000000fc555c014d927fe7838e840609916b9af5d93892ce6f394398858286802b8c6101000000000000006727561447ed474ff4e15645b952a37fa5008d4e694d4853bb55594fa34c4f340100000000000000af9c4c3cf1a3581ee22c9d1a648bfe92fe6d3a7ae39410f213ef25ce6daecffe0100000000000000ec295fb809e22c332aa36a57afe05f2c093b2d13e52b0971d8265c5514e4e9690100000000000000efb5f1e4c4ba37f8c159d452d897c607a58518b8355a8454620b3e3ccc3271230100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a19001000000000000008c3dbd5a1b928cb51e918452191e5328b0f6e8de0259517831a90b02dba3e6110100000000000000aa6fd06015b8309ea9103f4b0e29bfa7e21ab5bb1431c3a76433f591c739f8380100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f49010000000000000023f07bcb8dade90cefd08732183d5fe32b89ad8a4f84987b9e4e7e767c2587560100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000f916634f9fd7e54374e30ac6b722ad1793c13cb2d5f2ad38769eaca2f79d414b01000000000000007ba967a2dae0d8839cf44710591db994d18e53b25ec6d0f861da0037c4a4366a0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b509212907010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f270100000000000000d0a196fdff4cbca9c7d8a893f9ed66d86038378d8faa1fd8543fcce60ff1cd8c0100000000000000d0b4aada93fb3d0b358e8d59f8914f5987acbc6f5b4f3e12a1ed8d962eded8270100000000000000941547f54cc3f578cd00bb09f03cc5a6d3684fc1e5279f8148b625d993dbf06f01000000000000004f950be5bf61958a0ae6e6a036b85b33ba838de8bd5508b558cbe2602d341168010000000000000082e6b6bf1f275c59fbde0dad91393ae690d5e644d11d23898a9ccfdda025920a010000000000000074b60dfb12745236ba9dc8f925efa21482b50c870c567638ba3240a05fe363d90100000000000000d761043f405069ac01285f1ff258450aac675f08d906b1ae0a1ce54eabcb36d901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000b770208e14dc236c373cad93e19b092e9c6c7a90604d941c19ca19923d33013f0100000000000000de74612da9080d47be35bf4ded2094e23c1de14477114ddcd7b76b815456ec0c0100000000000000d3b3d9703a265a51a137b9de348587c645a168981ef3e01c9dc482856751b8ef010000000000000003dd543dddd6ad00137ddf94a218bfa19d2f08b4365d696765dc25deef76598b0100000000000000cfb9f7f1fcf903a51af729ed1647aee928630e148990309f9dc9f3b14b114b760100000000000000a2ee8d9c22eba97998d63854409d99c87b21d079f5c888d863a81d41d6abf0110100000000000000d14a779884de1b2fbf079b8e47e8c0edb1c29e282996899a4eab5aaf1f4f41130100000000000000c2344c6fb787621295335b6b5acbab9531199901492d41e13a64dfb2927f83be01000000000000002ba5634557f15c4e9198d1ce0cc525e897d3fdecb0c18af8a53fe4e3384f4a1d0100000000000000fd9edd1de37e1788a07c1563d30ce7929cadd7684c279764e2126cc1477d4bb30100000000000000a70aece9abab1251e65fda7a67d7709c2c5ddb7a253c8a83f146c03732469bd101000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d01000000000000005208fe27477acbc6750d0caa831c0b26801c58eca046a6cf9d4143f85d877e8301000000000000005667d5ab2b7b56ad406d51dc657f573e65bc1fa542fc3ff43793a487af92aab601000000000000005cd3c5512d1bdedb73e633eb63f71e7f0bfadfb6990de4c8d2b2de1d2195df1e010000000000000021a0865e3e99965f51edf95012ffd7d6ea460956c5ba029cdf1c8820376e51c8010000000000000025ebbb2a00126545bbedf00318a78b6e61a0b52c81e30231ff45bd32e311472f0100000000000000726e7a352b2e7451af1998888180bdf7954e7849230d99bc86b4df51bef4399501000000000000007bbd4f800c34110b6c739ff1e8913a36ab62f25641c4bb7413cd354894b602930100000000000000500a9e1ea37636c24ebf4e32668897dae936eef42b6da49027f606d4f24a7e96010000000000000055d7ad9e836af36e9553c49dbd25d703db296fe5f60099918a12bd1abaa2f7830100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa064901000000000000001e1fe4a3c9f590aff5a70b9cae569605ac78531cc10d310436fe0c306cf2e36101000000000000008ad2a4c25ba87cadf77dccde3a56ac8387fb01a6e84d2dac43927f163e7ca0bf01000000000000004df6e4d7da2c11ddb9153c714699f9ab625bbcd5e8e38f1cdeee567dc04abc610100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb401000000000000009cfeed14dd2f96550a0e7edebd9c9a8c8b1d8f7efdd1abca01987654239f3c860100000000000000736925c31654df870fbc29437c9b2a488ac3262e5d80798534ad00c43a61e5470100000000000000572538d1aaea11c9979bf074e0723ba0228690aa9ee8aa0b81db32aabfd822de01000000000000004c3b4b0a3acf902acec7f5d868f77d78b17fa4cfc5f785d393c9f3d15e04880501000000000000008404cabeb0674765bb77af690fa838ba28fa2045d602994a89f07680f4851c83010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b8cf76a8082d518016ea5588be57b64e156ed23b0f72248975522c23d15ef16101000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000373b26b330a41547971874dd81c2cbbf8b7e3eda05b861c57205ad7e8c15bbcf01000000000000002a38a4dcdffc571d547ee3e59121fdd378335df7c65877f983f0957cdc9824130100000000000000620c78305072857b43dadced80ebc057dbfc82b58c14c7b63372ef02140867650100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca4801000000000000004dc2e72680dbf0156818114fa34d3591f8e6948df25a128e191190c66f6ac35301000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000811038f59afeb084566271eb138b0106a8ca013f57e589d6f777bc7bb2219e760100000000000000f5e2c973d4ccbdd36d8ed4e3dae75d3b50002cc1c74eb0a1fe29ef1ef8e3f0cc0100000000000000258f23d60623fcb1d699a35f79776a9e81e979150ba5098dcc8e3a69a407ff9a0100000000000000b1f748c87b12edf7242b4719cfe68e6761acaa4329beee538d6ff740941d3cd301000000000000008b35aa0d212e4032ede352d5426696c260c9ecffa632a2e14e6a6629a6c9f637010000000000000072341ca1eb3a0fd4e790318b51ace114315573d5355c9d5336e39382ba0642560100000000000000a79cd2241bd68004641baac25c1900da3a9e6d83101aea3ef2a58d78c657272f0100000000000000b14911cb101f45b88c437a36bd82a5f8641b1c55052060ea46ea2baea570e8bf0100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000003c1dcee818434058b7de26ee874ade21bd1149185d6dcba1f67048b931ec3dda01000000000000009d31c78ebe9664e2bd8ba41cddcd9c5b9fb0cc6f8be0a2e5b91f6bcf66a5c7530100000000000000290be52ae5259f3e8bd0cdf454004607867a97c1db86d0c9ff16c8c83625bc830100000000000000c91199db47b7591bf1a928534cdbd3e5979a0d09d6a464f2a9607ec444bd8a9701000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad3439701000000000000004c43a374e6b3e6f7d6c5a6b8518ae0d0d232a1c46d63af8fbc800045a14cbe930100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000f54bb82d58c665ce3289b8765c40e60d84f74da663c164c38e16784d5c142b2c01000000000000004d9b0bbfc6a294ee0492bdc595a5d8f7cf371c729c5c319a3822f0248bb4fef70100000000000000bbff79a9b92ef586f0be053cc01639b9a335ad8e2910146d070997e285007d830100000000000000ccc84b255e5e73b971f2e71d1903b5ef9bd6d0965ff3ce29c517c875bd7ab65701000000000000001babed13d56d28fdb937b07bce846689584099575382c273f7e425f822c8159f0100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a86601000000000000001887f7937a8ca4ec67ceaedebfad3d307b10f416219de1ed4f8646409eab730a0100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d8010000000000000042f20843bf75f4916ade8eb2faad0ada3795b3cacd29b679f18805f2826367550100000000000000be724139e9bdd099b70f7edab7d1acf0d05fa1a4ca212f5e2958d31f4272dcda0100000000000000ee40b85aa515fdbe6e559f815edc7ec1e321e0d152dd54258382ba31b54e447a0100000000000000134cf4720486824c6a27fa7892c8d82e805653ba1d98480267ec284a76b792c20100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f0100000000000000316bafdefb60951da2738d6c9c2ef1866d139b34b5eab6944d6bae754dd3fb110100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000ebb1834a568ea7653bc66f394937a0aa4f2f617118d2161e2c11c0d7d2febb9d0100000000000000b6d7ac98d6667fe8f4a186ef12a66b017df05a54e11b45d3f2967cb3d6b6827f010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000007a1291795805dbe300425311ae50ed698450b1912b62e5b5a3264c68bfa970760100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000000150276c1b3d28d42630801c1d4a738ae723887d9286e40ba48d10b0752f7dcc010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf02701000000000000009bbc024bfe4f072b94735afda064dc3c7da2b4bc0c50cfad44722543583a372e01000000000000002b71a8a81bc2be65f3224ba3711d1bb243446d154369e209f97d8375b5fe8deb0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf0100000000000000ef27d1d5573e6419ffcc7c4372668105118256b810ab2e2dbb5e7d8280ee94250100000000000000c7009be830fe78c42f12f0753923131d16300bac230650001636b6a546cf0aa30100000000000000ed3f97f83ee7799c4aeba9f40bd18134c862c1a30875fc1e038cd27bae3a739a0100000000000000348e8bacc2d40191a6a00e137c745a422ff8fb03148d2ff9cad75efbb7a670140100000000000000efb31c5039e45fda750af5d2ea31b3210a407b168adec8f98db1f3dbc4cd943801000000000000003afc780f5d6cf676fbafe8bc742aa01b64d7d12530ebe1aab2db123a23f439b00100000000000000bff74b6ff5ccdce9a659408871d486511938422a6e550fe0669ccd739f80108101000000000000009ac13f915431b39f99d8c0bed7e9c62d22e1e8b6daaee809920f491154ef6f8b01000000000000002ff9330a8c344ad3adf4d97db014a2d0891d4dd69f5c8369dad3e0b25566173e01000000000000008f44b6746d8d809da87915d6ec208a07ee63481d24b275c6424429e16ff4d25e0100000000000000e01d6eda8094e949bfbb05c819b509a12eb662a414b822f841d9555d58e1ce7601000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000059dadf17dc0f84c1c334e6a815a04bdfcd0988a3f3bcb713c66ae29e17276cc60100000000000000297dc7cf28b3d40a42c5e8faac876bf7227c670e6e031dd0e0537f4fb70e6fbe010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b01000000000000000909c1eff97923f6bd47e6ec8b5dc163b32d5b675a3b13138d3599e5cc77ab9f0100000000000000a5f788e86ee2d311357b7aa4a128f063fa4ee36958baf10304c10bde7421aa2c0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b6301000000000000002ef11bc5ce1e7b53f788ba01ba581b9171ef36449719ff3eb20973342a4a82850100000000000000e3a73e5e042574299206b6520770553482e099d075bf00cbeb139b5f6737afed01000000000000003bb30832d06cdd3e081afef0cf2b7770bfe81dc58081d1886443e4e4547da8a101000000000000002832b59000d2027d2bf57fdb40da04bd8aac1498923397517181cc487a92815201000000000000000cd7067f96a2d63fa72065302432f48690485fa5f47c9afab17123e0482785230100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000073dce1727ec50c50366378cd389246e19543d900d7e9dab8e323d04cf5b202a701000000000000002ada479e1fde7211de15900ed29035f6f07506cdbadc4c232aab96d62006b9de0100000000000000ee1a56541083b083f1a13b5f8aa4042a098de2cec4c43f3250baaba8f03a52ea010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd701000000000000005246164c02e9e6bfb7a2dbf7ba8a5440a189f8048373678f5b1085f217464c050100000000000000dea69c3badff9b8d7571cb6c538cd099544da7460a19e1b8651c5c530a6dd53c01000000000000001889f1b031fa7d64c4b480a17cd2941be2c02681bca397c93607091f37bf5ee1010000000000000005062bede97a45c6e1c6b593675ee07ce969fae45136cc2b2afc6e705a77f4700100000000000000dc6e03f650e4304ca8d1598dde8d4faf45891987bfc49ef785ace47c4c0b557301000000000000002d12330b8029ef13e02675c6df0e10c6fdbc10e974803730866e603305ff4471010000000000000018ede59e820bcdd0ed2faf99a21bdc916d71577dd35117f90efe77b8513e631001000000000000008c258b4ca16dfb8e5afde4cf40fecf115307798117b4860475511b3b5d5615840100000000000000309bf143989c9effebb5cf0ad8b5cd8ea1c8db104500606280ae90a93d6abc2e01000000000000000e7bc96895730726225e47e31c742fd44d3936f31ecd32658c694fc11df2522401000000000000006375ae0c1bf2b0388e16971715fd68c31ed179f38947531c165f0da2c3fe76670100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000095fde7b91441fae9d2a6360d30228392519293be5e78cf3305667595cb15e566010000000000000047ede3eca5f6c8f0a51f2d36d7d1c236aab07a8b2aaa6ab08c8ccf8d87ce3dd10100000000000000a5d172126aadfe80d2b711776674d61df5a1cd1a0129761fb2d2de58ed9d48a001000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d30100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e2811139738701000000000000009f677785cfbf44140bdf38770f3d8076f222aa1c9997842d89d580b0f256198f01000000000000009a0ea02dca493accceb975732f31c9d249d4c90ff1ca0bd86cbe00f1728146b401000000000000003adbd2d5abdb70ef56c2d8bd4a7c0d67882a1c2050a856937491e98496a496fe0100000000000000f7b6a82ff22dd13d5665015a8abec429d244f857d3d6dc78e3f3c65496e4a99f01000000000000002b07c366c1ed899a2ac9722b76e092828714a8177368e51ca05ec05c565866b301000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ff568b8e0dbe74604c6d04b5de6f2df03b343bea074c4495c6a10e511ba473d90100000000000000a7254986c00f94b1ced526583ce2ffc0e853afd27a8e90cd57178a328e633866010000000000000032bbff551f7ed51452d264d796315e578d982e942eebb60e519ca648935d8b0c01000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd880100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000068f911f5ffd2e94be67762e2eb02e792b79ac8983720f40615e27ad203e03c50100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000f33b53556f28f27d250585317cd57a18f37c5d5f2b3c1bd00a0c91ea54f1636f0100000000000000bcc6391e5ad7e8e51ab7cf27eb77d7a631428fd973ca532bd6756dc67acdc49e0100000000000000e056900cabddb471de9e1846d7efdddd8b5ad400b02fc54b4402ba725c78bf9a010000000000000006e45b1345e00445a4ed84345b8bb15ad011fe5b23fd8f074d8d3e332bd505950100000000000000232b04be856e808b2616319b11eec858097a8afee5c18f0af0e1c33f1c6973ad01000000000000001a02012d8a476cc43998b10fd5c8f5174ba2a2eedebf27fab9831c0d812b0528010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d55010000000000000079f73931b31ce353119fb4063412e844b16cb3eb92e592ebd822a8c21303554801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000030afa9ef79458f844a27a3881655b6eafb90b3912737f1bcddb95e78eb098c1d010000000000000031a46e639e57d1a11119b17f76617a35b3606d206fb5c3e87710f464f7a57de50100000000000000ed25d7114e2aef2f0e57dc2be1401a4994d8aaafb30223162634a512604a2366010000000000000038070000000000000001e7c32b0100e11c00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b01" + "babeEpochChanges": "0x04ad4c5d4ce4e7689598cb1a034e310d4b49a8d747570ffccc36ddfebcab9f2dac8f362d01013378fb10000000009381fb1000000000046a690e9e3ef109b31594ab8512ee6ab87516c7474c7561a6b8565d0e4e3a268ed23f2d01019381fb1000000000f38afb100000000008a39ffd114678a743574a02f96c4347c1ef02d4f3069aee13c08510c866cf98ae25492d0101f38afb10000000005394fb100000000000d11bad54f29791d523495959e233d6ed1ebc69a2547c7af45d98fe38b5c4c14c25492d0101f38afb10000000005394fb10000000000000106a690e9e3ef109b31594ab8512ee6ab87516c7474c7561a6b8565d0e4e3a268ed23f2d010148200000000000009381fb10000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a54010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b92001000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a935010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e4775887897201000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c84101000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b740100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc190100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f067877170100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf71010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e70210100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf080100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b01000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b0100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000003635c55546f19bfe62d84a220c4396b1c9d71a1acdb2da917a82f0c1415a2b020100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c36010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d87081320100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d01000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a796260100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede264010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d0301000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000b045bf0235bbe708e4d6918758650c9c7f9ab4d638e4a841807ed7c82ff7f63a0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b35150100000000000000800dd25a7aea3fd7359065185cb35b4a2fad0b81b3d58de638e6764dc8a8211d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e638010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb1901000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f610010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f845010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c81360100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d6901000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f4953330100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000004678cfe8b5ab7811861b19336b572f9c7175ad92efbd8a031e5fcdda58173f510100000000000000d878a4f7ee2b2bcd16621a1a7e7f05f85c769a45d2a84304d4a8c0237287c501010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d0100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000b2967e3480b89af39e38367f948fb287568f27bfdac4b65fbc9d97536c79c7000100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d4101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b140201000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e0100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000007a07e4b6b4daf45f4af2a98e7458034447ae0e67e9a22596848e58d4ba73b9530100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed526401000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d80666401000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e01000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c230100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e2529010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da7201000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f0100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000003cfa50228b841c7d2fab03db7e4bf282cf14e127ab9b31c23fca1a79be54e82301000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac56101000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000003213885ba6fd707b0716aeaad959cd824ab2f854e55963d9e69af006d194d51f01000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb32942010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a463010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d6901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f01000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a010000000000000078f6eabfa5ce5c858c1d0d378fea88e98bbad82c6c2acb6c587bde67066f695501000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e01000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000007836f32cd0a6a6ba2448cc32c48b0434efa8c92073a139f305aae8e73d2c844901000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f076852010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000248cddedee20dbb65f20a1715c2490c09241f6800b72d0c4029a1c234f2ce74b01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba6201000000000000001cf3abc7c9d8027488ea2f5f2463fd091b194fbeeebf560875e8648fbc67dc240100000000000000ca526faf8ee5263d4006452735885dce304cf724040fce84399254d9160d6f350100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d61010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa680100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e210100000000000000a2259245fb5a7251b99ee8f307b97ec6e7f20081c1f75284aa9b433153d888160100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf0043010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef770100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a18432201000000000000009d178b3894ab647ea01b24f37b7e08786bfc0fe3e2d6473ca018bb3f915989bf0100000000000000040000000000000002a39ffd114678a743574a02f96c4347c1ef02d4f3069aee13c08510c866cf98ae25492d01014920000000000000f38afb10000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a54010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b92001000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a935010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e4775887897201000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c84101000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b740100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc190100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f067877170100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf71010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e70210100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf080100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b01000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b0100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000003635c55546f19bfe62d84a220c4396b1c9d71a1acdb2da917a82f0c1415a2b020100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c36010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d87081320100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d01000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a796260100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede264010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d0301000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000b045bf0235bbe708e4d6918758650c9c7f9ab4d638e4a841807ed7c82ff7f63a0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b35150100000000000000800dd25a7aea3fd7359065185cb35b4a2fad0b81b3d58de638e6764dc8a8211d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e638010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb1901000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f610010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f845010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c81360100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d6901000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f4953330100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000004678cfe8b5ab7811861b19336b572f9c7175ad92efbd8a031e5fcdda58173f510100000000000000d878a4f7ee2b2bcd16621a1a7e7f05f85c769a45d2a84304d4a8c0237287c501010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d0100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000b2967e3480b89af39e38367f948fb287568f27bfdac4b65fbc9d97536c79c7000100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d4101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b140201000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e0100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000007a07e4b6b4daf45f4af2a98e7458034447ae0e67e9a22596848e58d4ba73b9530100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed526401000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d80666401000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e01000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c230100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e2529010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da7201000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f0100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000003cfa50228b841c7d2fab03db7e4bf282cf14e127ab9b31c23fca1a79be54e82301000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac56101000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000003213885ba6fd707b0716aeaad959cd824ab2f854e55963d9e69af006d194d51f01000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb32942010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a463010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d6901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f01000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a010000000000000078f6eabfa5ce5c858c1d0d378fea88e98bbad82c6c2acb6c587bde67066f695501000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e01000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000007836f32cd0a6a6ba2448cc32c48b0434efa8c92073a139f305aae8e73d2c844901000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f076852010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000248cddedee20dbb65f20a1715c2490c09241f6800b72d0c4029a1c234f2ce74b01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba6201000000000000001cf3abc7c9d8027488ea2f5f2463fd091b194fbeeebf560875e8648fbc67dc240100000000000000ca526faf8ee5263d4006452735885dce304cf724040fce84399254d9160d6f350100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d61010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa680100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e210100000000000000a2259245fb5a7251b99ee8f307b97ec6e7f20081c1f75284aa9b433153d888160100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf0043010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef770100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a18432201000000000000005e5bb43d13a2a07aeba5e7bb79c0d0e5c434cc1afb5c528be0c094b0b26762820100000000000000040000000000000002ad4c5d4ce4e7689598cb1a034e310d4b49a8d747570ffccc36ddfebcab9f2dac8f362d010147200000000000003378fb10000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a54010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b92001000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a935010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e4775887897201000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c84101000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b740100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc190100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f067877170100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf71010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e70210100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf080100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b01000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b0100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000003635c55546f19bfe62d84a220c4396b1c9d71a1acdb2da917a82f0c1415a2b020100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c36010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d87081320100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d01000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a796260100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede264010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d0301000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000b045bf0235bbe708e4d6918758650c9c7f9ab4d638e4a841807ed7c82ff7f63a0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b35150100000000000000800dd25a7aea3fd7359065185cb35b4a2fad0b81b3d58de638e6764dc8a8211d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e638010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb1901000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f610010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f845010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c81360100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d6901000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f4953330100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000004678cfe8b5ab7811861b19336b572f9c7175ad92efbd8a031e5fcdda58173f510100000000000000d878a4f7ee2b2bcd16621a1a7e7f05f85c769a45d2a84304d4a8c0237287c501010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d0100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000b2967e3480b89af39e38367f948fb287568f27bfdac4b65fbc9d97536c79c7000100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d4101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b140201000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e0100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000007a07e4b6b4daf45f4af2a98e7458034447ae0e67e9a22596848e58d4ba73b9530100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed526401000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d80666401000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e01000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c230100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e2529010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da7201000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f0100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000003cfa50228b841c7d2fab03db7e4bf282cf14e127ab9b31c23fca1a79be54e82301000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac56101000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000003213885ba6fd707b0716aeaad959cd824ab2f854e55963d9e69af006d194d51f01000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb32942010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a463010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d6901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f01000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a010000000000000078f6eabfa5ce5c858c1d0d378fea88e98bbad82c6c2acb6c587bde67066f695501000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e01000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000007836f32cd0a6a6ba2448cc32c48b0434efa8c92073a139f305aae8e73d2c844901000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f076852010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000248cddedee20dbb65f20a1715c2490c09241f6800b72d0c4029a1c234f2ce74b01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba6201000000000000001cf3abc7c9d8027488ea2f5f2463fd091b194fbeeebf560875e8648fbc67dc240100000000000000ca526faf8ee5263d4006452735885dce304cf724040fce84399254d9160d6f350100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d61010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa680100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e210100000000000000a2259245fb5a7251b99ee8f307b97ec6e7f20081c1f75284aa9b433153d888160100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf0043010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef770100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a1843220100000000000000977ec9303e296a197ae58c8ffc6e55679a99adf1b894d009dfd66d2b3f59a3d20100000000000000040000000000000002d11bad54f29791d523495959e233d6ed1ebc69a2547c7af45d98fe38b5c4c14c25492d01014920000000000000f38afb10000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a54010000000000000072ab87b654d80294c876cbefb534b3344c2f64159b015b89221331ec2145417501000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000488d520146f681678e9d229f5e29354edf65e521246b28a4175c0502e060b92001000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000c681c1acaa82eddba6e394ddc9a2fd1af34418448d544c34966a31c837667f28010000000000000020352ba0565811731625a8001d26f5d899e5856dedd0f9c6bc3bec2995704e5b01000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000e07afc6e4b429df62183d1e1c417703cf8467e0f1bc61f7e33954d8336c7a935010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000f6dddaaaa53b57763610037753656b591d90fa81efbadcabbeddf7378c23602701000000000000003e69835397599a4bf081775f9f42f0f4ee686d67c9af8eacc4a733fdcdb0290b0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000000b84e6e296de1009aeca95ee09bc5173aec6e91b1145b247d69e4775887897201000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a010000000000000024a57db63b380456d56d561d8a9da6db13d298045c9672bc4086a2e0a567d55c01000000000000006c50859d9dde209012eb3868c1a3a6e80ae8fa528ace9df68e92dbbae60368200100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c84101000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000007c5f58a83f8101943c089dba3ab906c07811e853444aa58dbcc986c4095fbe7c01000000000000005494142902284943201b7cf610306e8665eeeec87c014d607175c3f50f76103b010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000004e2753547f6ec0a896bcbc55b9eeab875e8019acdeb10b979210af63f24c4b740100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b010000000000000042ad4ba7e8a60af1abcee04fdd82ad02b24f1e2535bdb1abcdde886efbf0fc4301000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e09360100000000000000b89cbc83a386d6f5d4fed93289ee50fdf69d77369ca0c9a8b962554e3fc0d37e0100000000000000e61da4eefdd14434952c58dd1943f7f63185d03321ccc8835e4216badd16fc190100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f067877170100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000009a6223b8a7aac3a28f958d9f6c6abf55f87a38cd22fa563d6327a4d86da7b64d01000000000000006ca924ff8f8e69b8ea54dc988c67fbfc1d955f357f01e5ff4b8362ad7d756c3701000000000000009e280c8deea88069fe5118eefbb994d01373ff5dc213a65d06e6873b528f6c2f01000000000000002834c706b030a82a81ec43e2faf26a7d00392e1d8f2de8b7a876183ab612cb180100000000000000d0189a530b4048501596c4530054fe89f017360402da0ac197a8100ac693b06e010000000000000006ced0dafbe316bc507cfa57f506a58ad57ba7a69a8291ef87e8f0f5dceff6040100000000000000364360b4881f0f2831a226a422c79348776d43a2365dd636dea05a09381f8c2e01000000000000009092f9e937617716876caae2eee008bd44b0d0ed3f3af47073dcab55fcb1d5740100000000000000a86c7bdf11794e554439b09f9f294c8e0abaebf447c7bc54419434b8b95f864901000000000000009e9f565a8cb6e8f2154a9833735930a04003505856c3743a0f71afe64c7acf71010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e70210100000000000000e8308668e9f16683cc739791a6dd530b819f45e4ade2113ee2f27eed1c51d1200100000000000000e41b3ecad757b0a5ecbc6b29691681df25b3d2b5f1ea325b648e607a5d76cf080100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b010000000000000026d421de2e7251020ac2f8b8c7e348aa904dcaf0b6d5d73fa0113b476f7dd9030100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000004e5b37f3ecd0fb3131aba488083c145d60b924ef98b286a0066e0ded309e886b01000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b0100000000000000946071eab9c0fa1de9be2ad3c18041f1326faab41d84d9daf9f89c0daf9c0f00010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c0100000000000000d04077347325618eb5cef03729a157b910fac54ec7e344e65b6945fb9fbbeb3b0100000000000000fe3b55d17e25c44a3568885d9d37276df81fa5225d9d73ee67321c7826581b5a0100000000000000faa52c51af82fe8fcdde5ffa213721a8395acf22e30bbd2aa420626571e6183d010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000003635c55546f19bfe62d84a220c4396b1c9d71a1acdb2da917a82f0c1415a2b020100000000000000844b691aa95ff9a15b50f5e5f4f0e582db6621326cf18d7533f55bc27549497a01000000000000009c1863aefa0b4d5f3d48275769ad0ed04e1428db9694d83b9bb8b5d833f1b41101000000000000007c4b93d862704aad434ab3dc2cbef824df738c5dbe1ba7b34daa38b2aabf7c36010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000261ac3229b4bb7a376c37f17e287b2eb596d3b478370b722b6b41443d87081320100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d01000000000000001a36d936f4692ac8387ac0ca1f051970ae480271e39fc134436b86b8ec83b25d010000000000000026d7422872cbf4d4918046f240a13a37219a272f4326b3f3bd1249829bbcd12b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000e03dd3bbb140ffa44e0cc0e1846967b03aecccac78f6e2e0a1fd3ac0d34f554a0100000000000000ae2e94f092fbcfe263519f950b5ade09c474258a4e0d5e62570d02b3f71d85480100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a010000000000000088b8e0da91c48fd9bf94ca5ed7fb74797a037e626c98ac18cd76360ccd6ac11c010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a796260100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede264010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a52010000000000000098cd0a4eae6f560a9e760f8b806b36861b805798b4ee0ada29f6841855d51d0301000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000004ba7eb24012b133b20a8021b603a1483c4a5b9ad3415a4d7ca2b1ad625719550100000000000000202e3405e49bb882f1d49efc4a4adc5b62dcc96ec18346a48aad5a510c189b5001000000000000005c39533cbb607f1f52d82356d267a56399045e0d7b7e95887cfd8ec13173db2e0100000000000000b045bf0235bbe708e4d6918758650c9c7f9ab4d638e4a841807ed7c82ff7f63a0100000000000000ea6acde5149e930af7bc3b17b7f0bdcf12dfd3dc3437f774f823bbeef420a97201000000000000006e7a78e9fdfe275f3e000382ba30452729970578258839db6c0fc568e20b35150100000000000000800dd25a7aea3fd7359065185cb35b4a2fad0b81b3d58de638e6764dc8a8211d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e638010000000000000014e2f25dd3376eb7978d413c14322704a2ff3d9c0c2971acdcdf9720c2c13d6b010000000000000014cf97e739cfd033c2828f25ad3f15e8f6ef62ba97dd74164e77e61eb85454260100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb1901000000000000004cc9ff5edb36e361b088b0eff52fc6e6559c1169ff87ccdb62503bceab7c74450100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f610010000000000000020778d1b86af98ab30d7adea5f3a4f215d6d4a9fdc892d8999275b2c311fb05f0100000000000000b48cf50a4f94e83450a791d6de965c3e8127c1c915208f2b85df4c3a84b2042f0100000000000000c60a9f5f89ea3a56499bcd39bac7e038c25f5b7720d873fdc12b68d2531eb650010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000cef0feb2602582b96fec882181d34bd5504645c544c983b1a962188239eed90a0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000086cca25ca588d995ba36f447a87ee00073a24190e8335247875e1bb25823f845010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c81360100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d6901000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f7601000000000000001cbfaf2b91ee79c6288ad01dd5787070b34d5e1b8253a1765904eaa7d0b93f020100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000036a547b4aca95274437f3876bec0447f775eacd01b09d95869390d326a596d450100000000000000608b753074d6a1fd8e099224a7495f61e3db2cb91e1e88553113057a5f4953330100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000407e78f505ae833a2eaea113245bf6a5ef6abd0db66141f770cd6cd7a7e75d7101000000000000004678cfe8b5ab7811861b19336b572f9c7175ad92efbd8a031e5fcdda58173f510100000000000000d878a4f7ee2b2bcd16621a1a7e7f05f85c769a45d2a84304d4a8c0237287c501010000000000000078c91c4ee02089ea86612f66d6022a0cbd54afe470a162a72036611623924f6d0100000000000000e682cc2e71eeebb447a353fdf541b2ce7f9920ea1ad2d832bc35e3b49169bb6901000000000000008ec5856a5fd17617c0af76efea16a87d0c5e769eaad39e91c40dac93fb067d5d0100000000000000b2967e3480b89af39e38367f948fb287568f27bfdac4b65fbc9d97536c79c7000100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000009e5b6a03be0ed1cb27d61340f02efd1a285cf73519dead55195f001ffa274d4101000000000000004ed5f55ec45727a57e2d8d6914f6d2acffb17b9515d347ba045067502a0b140201000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e0100000000000000a6cfacf0aff2d5c6e8eadf71f397a64f2863e5f0b8793e3068aebd5b3030e13101000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000007a07e4b6b4daf45f4af2a98e7458034447ae0e67e9a22596848e58d4ba73b9530100000000000000469d81e8b43725a64da6b1ce10eb53eebe1aaebb9703f75ed452e12f45d262730100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed526401000000000000001cc40fa83cd0a4431aa63315b55c669370a4037756089f3402a9021e2d80666401000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e01000000000000001e9c3192d1c2e7e1d5aa731c1bd3ffac1b55bfff1cc1beb0745a6b54b4b32b180100000000000000fca464b97dee2e318ad8d4516fd606a5401f5d15467110112a3326ef96ce00760100000000000000bc3bf978ea283cf493b43928b605309be31def9d4a1daf47788017ac61c7c81b0100000000000000cebdabff22e607a75aa8db1bf875511a563200cce3f089972aca719649b6e1760100000000000000382fb32d7c8868ce3765e9ccfb462c04071a3d70cab3382c796a9115ab0c310301000000000000008a6dbf87f769167b4eb982f63b946f96a1f223b6a6f2789183fec09581b8e906010000000000000056927fdc8bff2063e108fe1b05bbde2f6219bda7d8663fafcf3d2976c72153590100000000000000b027ae418b6c79d9f3a2b05df499d3aaecfb327e6b9d7995a022dc5265ed76180100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fa49d3457520dd98ca1489b78354d7d30a9bdf2181140072ebda1c3dc3371e450100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c230100000000000000fe2848018ac215f72f551e58dd2d065d99b788b5a7aa59b9f9fe47a5bdbc046d0100000000000000b6ed5b0c17ca7560c71f1778694741009d3da979309617f0bb992084019e2529010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000343a9649237a3b9ed165df5a8b6655996a9920091530b4896b0edfa3afefa60e0100000000000000ca9919b307ac6204475ff029334863d464042fdb84da988119b6392d5862cc78010000000000000002e12aee8fa547e191b4395503c28d4b14650c1dc03c698d73f4cd30f03de90201000000000000004050f1025e1481eedf4d787eb4232123b271e5196dcd8670d754836297d0da7201000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000056606b6532cdbf27358fd067d61c2a65e4b3e8934c266a857320ff18e5c7654c01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000105cd6ed1f55fde42f7c82d0667316a4f1e26e9e53d96f540e5aff8905897b5c01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a7748010000000000000094d89cb8df2b03c76d41a6521e5803d6f98e204e1839b9ea747dc7e253d35b7f0100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000003491cc113ef8fe1165bb10e65cbb461955f92f8f0d82f2dcfe6664430dab853601000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000003cfa50228b841c7d2fab03db7e4bf282cf14e127ab9b31c23fca1a79be54e82301000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe08372156001000000000000001e2543674c697ffa09657ce9f9c4b610e46da5d73124410b327e6ba5d432263c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000001ab9d2c814ed7a719ef2aa94dcf4db8aaa0315a59d4b5699e86656a6ee9ac56101000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000b63f9ab3a147d76614bfb688751f79fb9a120d40af7ba3bb123c1957b91a411d010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000003213885ba6fd707b0716aeaad959cd824ab2f854e55963d9e69af006d194d51f01000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000fa1b0afc9ce9e9742c4825890f6d93bb87bd199e55e86ce66ba7c34ce43e273e010000000000000042c56bdb09d52942b0fedb07045113a641e2fd64a428b1fa608b5adff9ff4d640100000000000000fab301ce05079af0f67a042f807cb17a770c0e1a2ceb3d956d569b44625df87d010000000000000086ccdecaccbf1a58049c55793916611cb8749edf93085bb764e77636357ec172010000000000000012af78070e965616e16ab8cdceb871c02e09b180e3f0a69083419196c9ec665d0100000000000000f29cb4064a1cc3a79da2c9a9f336053cc69d50bcc737257ca2f071c37030510a0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb32942010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a010000000000000034caa67978c1a5280b5f58196edcdb5c864b02d0fd40af9c6e6b9716f3fb12680100000000000000fecb15325d9baf603112dd397d2e83d3694414f529d75c4b639c7e775b979b14010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e010000000000000036ff2156d388346076b08a5c89aa760b714eb1bd293e2f3e4c4f35049cca9372010000000000000092cca18f264bdcfc19e5c01515ea9d61a0bf0b4e46b2bcae372a428b9dc35e390100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a463010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000526fdfd1d78345a1b2843d392122962cf89a4f157af2a3d0c99607f506175115010000000000000008e80cc5ada5e557a1cea3658402bc83f9892b5c4e112b6e157e6e7d3663c47b0100000000000000a6730d04d45ee4e7e25d3f7b80b4e2ac12a6644a4128127fbe97e97a1d690d6901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000b6ad9df8c32a78e9481e75f484fd0b740554276c026736f0dbac0987db0885670100000000000000ea82745d9978e47fc6bb25fc01383aad42aeee65662b6af304474f0e4101b06f01000000000000000a6a0f8136fafe5c2e096704e37d12b47a1e46151489a23eb1713b37769fdf780100000000000000f25d3265659fca9d24ca877823644f1223714b0167d0a676cf3c9c447173d12f01000000000000009ab493c4c8007f49a3e7d1e9f1aef39b39cd66a496e90486e62664725c6ba06f0100000000000000ec19137bec15ab7c3cd7625e029b026746f6a90d28bf28cfd61457c40a8f26660100000000000000cc60431feaf7f1bf42d805f0c12a1978ca9b3ec0a21397a71ecfc2bb7d52d20a010000000000000078f6eabfa5ce5c858c1d0d378fea88e98bbad82c6c2acb6c587bde67066f695501000000000000001827754b7465edb9bf4ce981bdd3a33057f9450fc895e39654dbd51c3ab9835a0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e01000000000000009e3b3214afe654cf851be9e564e72f834168ff65ce346ac54024cdcd9325712101000000000000007836f32cd0a6a6ba2448cc32c48b0434efa8c92073a139f305aae8e73d2c844901000000000000005e7f927ca4edf203d65f682fae546d8d43913b253dad434800df66be1f076852010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000248cddedee20dbb65f20a1715c2490c09241f6800b72d0c4029a1c234f2ce74b01000000000000008ca0a873b2685dde8c4792832cabe50ea5a1f8a9a661a336689859319b66ba6201000000000000001cf3abc7c9d8027488ea2f5f2463fd091b194fbeeebf560875e8648fbc67dc240100000000000000ca526faf8ee5263d4006452735885dce304cf724040fce84399254d9160d6f350100000000000000d27da69172c428ddb80272e6fc6ec90985ee281b45f933e5bad65184bc3b5d0201000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d61010000000000000048970bde717a65371534a2b878995c8bc6c230d556035fa003da1c523092332a01000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009a62ccaeef1677fa3fde2e172bcea58f695a34304ccf5594b74fc7a7ce9fdd0001000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa680100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000058efa50da673a8c3b5799e278ae7d32f9eee340947f793f44348ba17e25a885f0100000000000000e6a08fa6af54d2308215f4a62d554dd5b82deaec8ba22a2e6ebade7202ab9e210100000000000000a2259245fb5a7251b99ee8f307b97ec6e7f20081c1f75284aa9b433153d888160100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000b41546275611fa185c88c7016e909222b3a757b476316766a72729d074d8e92b0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000723f8c9d81d0874cd4130cb58587c90ef454174e9d6d9dec11279a553caf0043010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef770100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c0100000000000000e0ee8ff76b364ad2ccc3e82e69cd700c0895607a449c5af3745bb3018a18432201000000000000005e5bb43d13a2a07aeba5e7bb79c0d0e5c434cc1afb5c528be0c094b0b26762820100000000000000040000000000000002", + "babeFinalizedBlockWeight": 4930225, + "finalizedBlockHeader": "0xdc8bb9ae1cef343fdd3953b848edb19d610dc774944b22c15ec9ab7b5a0d9fa72e2bb504cd68b77582e8272036e0fa710eb66c65b573d856e1c187df518ec4508c10fa6a0f038624486fee388df78a7b1f4a825281444dd7daebb2210ba94b65f956c03e0c0642414245b50103dc0000003b83fb10000000001226f6ab7b885bb9fd819a16ec72d031107f5aa04437340b9ee29c0c1b4b4f16fb1406351fd2bb9f7e9113635058eb595111adf9f7e6603d7c8f0605030345038050138f0ffaf501e3c2066daefaa654f2a8bf379243e9d215ea2e6c8b547e0104424545468403655ade9f06258891acab40411195e76791e4043d71903203f70a7204e84a41660542414245010176889e9683a83c8df341db3622e4a75becb6fad5f2d7990a01b2d44c6dde9772e5c140580136ad0fa6cce8685f8127e02b46b4d37c5f36fbc2c13fd1467faa83", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000047f940bc985355be7187c709ded2b689b66d69e61e293a507f1d4f90bdbeceee01000000000000004a3fc0fe1020c7f460c7bd23d0b657c03368552b2f0a12d80a1c406fd066e0db01000000000000009b992b5e9b99eb2cd3b2b648d6db81ed722a2feb4938d998b58dcb5d159fadfa0100000000000000aee9de3938173700b3e3f4fbf2b200ae296173a0854157f40de2598dd4cad8f101000000000000003255f477781804204f24ddfd080346b0e75c7c5a92b37cec1fbbe79fa93407b0010000000000000057c55b2bbb6b86d6e9aedef9b51904ec5b29d8c1271308aa625fa445532738320100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a760100000000000000243f110deac5efe8e963d794eb8706a1895ae1942523ab0fe9e1623515b7dea80100000000000000b61e9b13e849779be8f5378a670d61991875d8e091f359384d7be73d02d506930100000000000000426b2be4596a759a15028d84e08c5c56440e6cede68d088f47c671cc3387c3e6010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000a15896b8bbf01f757f120813bc2e78b21388eea66db4b0dc2e1afeabd3d46dc00100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e01000000000000000139b946b46bee4c61be50c986f2a9ef2e76917644e2ecd842c59d61a94ee612010000000000000019a9d56ea35496122fc44fcb5c29d27fbb43520556d6f8d97753767aaa0f228e0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000a5b094ae7c156592baa68ce18dab6368d5b665e9a0f07dfc5f54f58309e086c10100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b89222010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b010000000000000097743d6364cdb6c4790cd37c4c2ab5fbc6c65e8bb606625e70a6ee04ed1650d9010000000000000008cc1d6c743da905511a39a6f0a68809a6bc32f8ac25e53bb2d6aca4f493fc9b0100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000c442b92816b7325602d86354ffdb7dc272c56468f3bb8d6c659e47b31deaa2c40100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da810100000000000000d04d64a07f144638f20f081de122b88fed0cc8bda57e4810e7afb38036dd8bbf0100000000000000f26945a8a64032a1defa76e720a99649125b55751b6088205e7acab901de670b01000000000000005cba2c6f569da1edc3778308da406f266aa53140381dbb3f14f22909ba6e30040100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b60100000000000000589fc35b132ef9d7ed9a6787a203e5a3a37f8cd6c775f47ac5e589d55d381a6401000000000000006f4855725ebb9eced957bae43ffa7d30657ce7d06b251ce20e2218bcf929e4050100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d560100000000000000c1758f7cbffeb844419bc494a9dc65fb394259f01e9bf23789a75acc29d7d9620100000000000000c1c1ff5f66fefb5c0849e3b2333411d1f7e9dd4888600e334e7a33623f15fa360100000000000000fe240e80ff8a48a77947b394979cf361017cd906ddaab637d72cf72e729d79bf010000000000000006854c73f5703242d31d2576ac2297c93f0b5dc16ade0097c59d5dc0faa43c550100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f8101000000000000008aabd4f6d7ecec7a749c83fc7be33f3b4818cca6f93a4927b4964900df9454e50100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d301000000000000003948bfd09bbbc2fe6ac5dfe53146e32df50828eecf7b2b18cdcff8dc385cbd750100000000000000a2a4af2a11ae7ba812fcc32845583d0354a0f2ffb1271a53c9a976a0f47fff44010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db4720100000000000000070bae15860ce96e4a0cbdcc051c75e37a458c8e6c5ae59681d0ed938e588d4501000000000000003ec37919f9f43a9f85f539edfde3ceebea1b0e8279cb036641d588a9da81a6ad01000000000000005e48598ca89db19a4c279a251216d81e33f6b69e7d2ab4450968a1f9409df4a30100000000000000f510cb6c7032c9134dd3e50014ff6d391cfc91606d003fd4acd37e00f919d8350100000000000000cbd74a646a84b73518eadc73b1983dc9733839739576af9a98c698070a3a4b590100000000000000d2e72b0ab02a001b2e573c0d3b78404a7d3c600c3a9fd8ef38e823cad6ed3d6601000000000000003047f8f7e9c47fda9130ccd57d5dc8d407bd89b8dcf8ecbaccf00da184c73a570100000000000000024743c39cd9e151344dc23c65ee0346132d190a224b687be5c5ae31c5e7bb0a01000000000000004e3fb8c16ad624c1852777456805e5352d0221269de66949c95da4076206b35a01000000000000007ad55381f9de00220678c95a19489640fc61331e2a40d927e3d833555575c6fc01000000000000009b11703e71109c2f7e5d5ed6780e867236062929da90c70ea616af2e99e80f2d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e010000000000000027791275ae7d4735aa45e70210663067f7d268aa57126a26044c8f6d8572a7d80100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000ba95f5d0e987305bb794dfeae69d7dd6a7987aa66cd7c9d42aca15e9160ec6a10100000000000000ffd82ddc49373448bed6feb0032744e20068f4e21adc4cb6d2cbf05ce73f4ce40100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf127010000000000000016278af083f6d261762f8a97b6a09ff83e2f5927ce26c2e48f3c7e771dc7e6950100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b010000000000000067ccabbf18c035791cee9c748bea2ca03cf72c40f5ae786f297f84fb05973262010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe979470100000000000000b8183b905f28b87c68c2d5b2f39f009f2ee22b47235f6c6d6cf6e63121b490300100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000affb713ecdae328aa4436756f6a3e8add6b274d5ef1cc19d7aa69ab82c80e472010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000008a2b50acd1a4955fc814bf6720c7427902a6ce709f3a2d7c17c55b67f6f1c06301000000000000003a511828c0cdc0fd257387843fdbf6f19d5ca1ef1c29ec7e971fc9f1195eb60c0100000000000000ee5605c1a9ed9484a70b8a591339830f24530eefc4599a7c6188a78896908e2c0100000000000000ad06042b85ed16ff4e46f5a68eba9ac12395366ab17c2da24b4f6747b2c8934f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd01000000000000005d2b07941a21adb6ba52298c2f0b0bdb6023e4a1713018762a5f61973b2fd1e80100000000000000e4b2cffd0b9cacfc500050b27ecae3c55b9b51bd9a416d62605118c8ad4fb09f0100000000000000b28ba3f09e3521f7d09f0098c6743bc218ee2970068adfa5d908d9d06e627ae50100000000000000f6d74de7b39455519a5d6480c8f12c93fc7a4cfc9af39154fc60857a39ad888b0100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000002bb7b11dfe79a12110b0370510ef20d40ba8a563f517310f8bf37cf7f0403de40100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b4010000000000000040533a786cd0be9618126633512666b1b1b9ab3b436fa653c93e2f65da9c196b0100000000000000be95095d93298171c6fb8a1847adfa173d127e13f53482dcb694f891d68f0c58010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f01000000000000006a5f902cdeda2c2161d16bd21d586720c08c0bbb7b463d9c59147338d26a8a9601000000000000009c11e35911f023df6e4d218e53412ab4e4a20c17961d63ba381c913b51f394c001000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000ffcca343512faeffe1cb3a8a7ce62fa4ee0c7f6a5f3e5ac883482846e132813d010000000000000037483029302a84623f0a8db165fbed905b0a4fc25e7cfb56e975a0e98336a59b0100000000000000ecc7b49598787520ef6336abaf798adbadd6406bb889d8bcefacbbc1a887a3fa010000000000000053b5918f72e73f92f32b578d1b602f0cc554d98bee8c4e131ef0ac7a63399fb4010000000000000063e935d23d285cec7b014cb7736d65b4acffc45ca589003d3231de8e6db8a8aa0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000293ec1101d6cc9df89a04ede0ac8ced7418803cc1d52a36ca8e45cca734388f90100000000000000c7d9cab0fb88dccd0cf4abbf5df9d7f36a3de439c5070c599d397e74133bdfed0100000000000000866fe4ae134938ccf4c5caf01358881c75cfde473b0bb8a2623cc231db2ea3b901000000000000005d202a011f023dfaa6713f16bfd4409dde8bfe594abd59e2be32484c73b97982010000000000000008cb5d0ff7f138698c9fb80a1383155cff65ec7e127c5b3614e2e17963969f100100000000000000fc555c014d927fe7838e840609916b9af5d93892ce6f394398858286802b8c6101000000000000006727561447ed474ff4e15645b952a37fa5008d4e694d4853bb55594fa34c4f340100000000000000af9c4c3cf1a3581ee22c9d1a648bfe92fe6d3a7ae39410f213ef25ce6daecffe0100000000000000ec295fb809e22c332aa36a57afe05f2c093b2d13e52b0971d8265c5514e4e9690100000000000000efb5f1e4c4ba37f8c159d452d897c607a58518b8355a8454620b3e3ccc3271230100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a19001000000000000008c3dbd5a1b928cb51e918452191e5328b0f6e8de0259517831a90b02dba3e6110100000000000000aa6fd06015b8309ea9103f4b0e29bfa7e21ab5bb1431c3a76433f591c739f8380100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f49010000000000000023f07bcb8dade90cefd08732183d5fe32b89ad8a4f84987b9e4e7e767c2587560100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000f916634f9fd7e54374e30ac6b722ad1793c13cb2d5f2ad38769eaca2f79d414b01000000000000007ba967a2dae0d8839cf44710591db994d18e53b25ec6d0f861da0037c4a4366a0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b509212907010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f270100000000000000d0a196fdff4cbca9c7d8a893f9ed66d86038378d8faa1fd8543fcce60ff1cd8c0100000000000000d0b4aada93fb3d0b358e8d59f8914f5987acbc6f5b4f3e12a1ed8d962eded82701000000000000004f950be5bf61958a0ae6e6a036b85b33ba838de8bd5508b558cbe2602d341168010000000000000082e6b6bf1f275c59fbde0dad91393ae690d5e644d11d23898a9ccfdda025920a010000000000000074b60dfb12745236ba9dc8f925efa21482b50c870c567638ba3240a05fe363d90100000000000000d761043f405069ac01285f1ff258450aac675f08d906b1ae0a1ce54eabcb36d901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000b770208e14dc236c373cad93e19b092e9c6c7a90604d941c19ca19923d33013f0100000000000000de74612da9080d47be35bf4ded2094e23c1de14477114ddcd7b76b815456ec0c0100000000000000b9f54ca6fa0be84b1c7b42a426f37cb4218cc7840b9e1aea647e215739cf19540100000000000000d3b3d9703a265a51a137b9de348587c645a168981ef3e01c9dc482856751b8ef010000000000000003dd543dddd6ad00137ddf94a218bfa19d2f08b4365d696765dc25deef76598b0100000000000000cfb9f7f1fcf903a51af729ed1647aee928630e148990309f9dc9f3b14b114b760100000000000000a2ee8d9c22eba97998d63854409d99c87b21d079f5c888d863a81d41d6abf0110100000000000000d14a779884de1b2fbf079b8e47e8c0edb1c29e282996899a4eab5aaf1f4f41130100000000000000c2344c6fb787621295335b6b5acbab9531199901492d41e13a64dfb2927f83be01000000000000002ba5634557f15c4e9198d1ce0cc525e897d3fdecb0c18af8a53fe4e3384f4a1d01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d01000000000000005208fe27477acbc6750d0caa831c0b26801c58eca046a6cf9d4143f85d877e83010000000000000021a0865e3e99965f51edf95012ffd7d6ea460956c5ba029cdf1c8820376e51c801000000000000001468c7f6c2eb735d70a1226e3c0c9834e5994e34a57ce30c2633fbdab2a4886d010000000000000025ebbb2a00126545bbedf00318a78b6e61a0b52c81e30231ff45bd32e311472f01000000000000007bbd4f800c34110b6c739ff1e8913a36ab62f25641c4bb7413cd354894b602930100000000000000500a9e1ea37636c24ebf4e32668897dae936eef42b6da49027f606d4f24a7e96010000000000000055d7ad9e836af36e9553c49dbd25d703db296fe5f60099918a12bd1abaa2f7830100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa064901000000000000001e1fe4a3c9f590aff5a70b9cae569605ac78531cc10d310436fe0c306cf2e36101000000000000004df6e4d7da2c11ddb9153c714699f9ab625bbcd5e8e38f1cdeee567dc04abc610100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb401000000000000009cfeed14dd2f96550a0e7edebd9c9a8c8b1d8f7efdd1abca01987654239f3c860100000000000000736925c31654df870fbc29437c9b2a488ac3262e5d80798534ad00c43a61e54701000000000000004c3b4b0a3acf902acec7f5d868f77d78b17fa4cfc5f785d393c9f3d15e04880501000000000000008404cabeb0674765bb77af690fa838ba28fa2045d602994a89f07680f4851c83010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b8cf76a8082d518016ea5588be57b64e156ed23b0f72248975522c23d15ef16101000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000373b26b330a41547971874dd81c2cbbf8b7e3eda05b861c57205ad7e8c15bbcf01000000000000002a38a4dcdffc571d547ee3e59121fdd378335df7c65877f983f0957cdc9824130100000000000000620c78305072857b43dadced80ebc057dbfc82b58c14c7b63372ef02140867650100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca4801000000000000004dc2e72680dbf0156818114fa34d3591f8e6948df25a128e191190c66f6ac35301000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000811038f59afeb084566271eb138b0106a8ca013f57e589d6f777bc7bb2219e760100000000000000f5e2c973d4ccbdd36d8ed4e3dae75d3b50002cc1c74eb0a1fe29ef1ef8e3f0cc0100000000000000258f23d60623fcb1d699a35f79776a9e81e979150ba5098dcc8e3a69a407ff9a0100000000000000b1f748c87b12edf7242b4719cfe68e6761acaa4329beee538d6ff740941d3cd301000000000000008b35aa0d212e4032ede352d5426696c260c9ecffa632a2e14e6a6629a6c9f637010000000000000072341ca1eb3a0fd4e790318b51ace114315573d5355c9d5336e39382ba0642560100000000000000a79cd2241bd68004641baac25c1900da3a9e6d83101aea3ef2a58d78c657272f0100000000000000b14911cb101f45b88c437a36bd82a5f8641b1c55052060ea46ea2baea570e8bf0100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000003c1dcee818434058b7de26ee874ade21bd1149185d6dcba1f67048b931ec3dda01000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000290be52ae5259f3e8bd0cdf454004607867a97c1db86d0c9ff16c8c83625bc830100000000000000c91199db47b7591bf1a928534cdbd3e5979a0d09d6a464f2a9607ec444bd8a9701000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad3439701000000000000004c43a374e6b3e6f7d6c5a6b8518ae0d0d232a1c46d63af8fbc800045a14cbe930100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000f54bb82d58c665ce3289b8765c40e60d84f74da663c164c38e16784d5c142b2c01000000000000004d9b0bbfc6a294ee0492bdc595a5d8f7cf371c729c5c319a3822f0248bb4fef70100000000000000bbff79a9b92ef586f0be053cc01639b9a335ad8e2910146d070997e285007d830100000000000000ccc84b255e5e73b971f2e71d1903b5ef9bd6d0965ff3ce29c517c875bd7ab65701000000000000001babed13d56d28fdb937b07bce846689584099575382c273f7e425f822c8159f0100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a86601000000000000001887f7937a8ca4ec67ceaedebfad3d307b10f416219de1ed4f8646409eab730a0100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d8010000000000000042f20843bf75f4916ade8eb2faad0ada3795b3cacd29b679f18805f2826367550100000000000000be724139e9bdd099b70f7edab7d1acf0d05fa1a4ca212f5e2958d31f4272dcda0100000000000000ee40b85aa515fdbe6e559f815edc7ec1e321e0d152dd54258382ba31b54e447a0100000000000000134cf4720486824c6a27fa7892c8d82e805653ba1d98480267ec284a76b792c20100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f0100000000000000316bafdefb60951da2738d6c9c2ef1866d139b34b5eab6944d6bae754dd3fb110100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000ebb1834a568ea7653bc66f394937a0aa4f2f617118d2161e2c11c0d7d2febb9d0100000000000000b6d7ac98d6667fe8f4a186ef12a66b017df05a54e11b45d3f2967cb3d6b6827f010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000007a1291795805dbe300425311ae50ed698450b1912b62e5b5a3264c68bfa970760100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000000150276c1b3d28d42630801c1d4a738ae723887d9286e40ba48d10b0752f7dcc01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a6010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf02701000000000000009bbc024bfe4f072b94735afda064dc3c7da2b4bc0c50cfad44722543583a372e01000000000000002b71a8a81bc2be65f3224ba3711d1bb243446d154369e209f97d8375b5fe8deb0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf0100000000000000ef27d1d5573e6419ffcc7c4372668105118256b810ab2e2dbb5e7d8280ee94250100000000000000c7009be830fe78c42f12f0753923131d16300bac230650001636b6a546cf0aa30100000000000000ed3f97f83ee7799c4aeba9f40bd18134c862c1a30875fc1e038cd27bae3a739a0100000000000000348e8bacc2d40191a6a00e137c745a422ff8fb03148d2ff9cad75efbb7a67014010000000000000066b964258b3239799608ad4ffde6214a7b04ab3e0fd889fc7eb078548b3518ec01000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000efb31c5039e45fda750af5d2ea31b3210a407b168adec8f98db1f3dbc4cd94380100000000000000bff74b6ff5ccdce9a659408871d486511938422a6e550fe0669ccd739f80108101000000000000009ac13f915431b39f99d8c0bed7e9c62d22e1e8b6daaee809920f491154ef6f8b01000000000000002ff9330a8c344ad3adf4d97db014a2d0891d4dd69f5c8369dad3e0b25566173e01000000000000008f44b6746d8d809da87915d6ec208a07ee63481d24b275c6424429e16ff4d25e0100000000000000e01d6eda8094e949bfbb05c819b509a12eb662a414b822f841d9555d58e1ce7601000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000059dadf17dc0f84c1c334e6a815a04bdfcd0988a3f3bcb713c66ae29e17276cc60100000000000000297dc7cf28b3d40a42c5e8faac876bf7227c670e6e031dd0e0537f4fb70e6fbe010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b01000000000000000909c1eff97923f6bd47e6ec8b5dc163b32d5b675a3b13138d3599e5cc77ab9f0100000000000000a5f788e86ee2d311357b7aa4a128f063fa4ee36958baf10304c10bde7421aa2c0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b6301000000000000002ef11bc5ce1e7b53f788ba01ba581b9171ef36449719ff3eb20973342a4a82850100000000000000e3a73e5e042574299206b6520770553482e099d075bf00cbeb139b5f6737afed01000000000000003bb30832d06cdd3e081afef0cf2b7770bfe81dc58081d1886443e4e4547da8a101000000000000002832b59000d2027d2bf57fdb40da04bd8aac1498923397517181cc487a92815201000000000000000cd7067f96a2d63fa72065302432f48690485fa5f47c9afab17123e0482785230100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea45670100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000073dce1727ec50c50366378cd389246e19543d900d7e9dab8e323d04cf5b202a701000000000000002ada479e1fde7211de15900ed29035f6f07506cdbadc4c232aab96d62006b9de0100000000000000ee1a56541083b083f1a13b5f8aa4042a098de2cec4c43f3250baaba8f03a52ea010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd701000000000000005246164c02e9e6bfb7a2dbf7ba8a5440a189f8048373678f5b1085f217464c050100000000000000dea69c3badff9b8d7571cb6c538cd099544da7460a19e1b8651c5c530a6dd53c01000000000000001889f1b031fa7d64c4b480a17cd2941be2c02681bca397c93607091f37bf5ee1010000000000000005062bede97a45c6e1c6b593675ee07ce969fae45136cc2b2afc6e705a77f4700100000000000000dc6e03f650e4304ca8d1598dde8d4faf45891987bfc49ef785ace47c4c0b5573010000000000000018ede59e820bcdd0ed2faf99a21bdc916d71577dd35117f90efe77b8513e631001000000000000008c258b4ca16dfb8e5afde4cf40fecf115307798117b4860475511b3b5d561584010000000000000034b7b6219ad085de72069d3eea14c419a637ae610ab55c6389aa10b2c22a5ec901000000000000000e7bc96895730726225e47e31c742fd44d3936f31ecd32658c694fc11df252240100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000095fde7b91441fae9d2a6360d30228392519293be5e78cf3305667595cb15e566010000000000000047ede3eca5f6c8f0a51f2d36d7d1c236aab07a8b2aaa6ab08c8ccf8d87ce3dd101000000000000008e82b9499c7d6ff25d62c88428d0b6a1d56e5f166dd46f0ad3d8d373465fa8840100000000000000a5d172126aadfe80d2b711776674d61df5a1cd1a0129761fb2d2de58ed9d48a00100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e2811139738701000000000000009f677785cfbf44140bdf38770f3d8076f222aa1c9997842d89d580b0f256198f01000000000000009a0ea02dca493accceb975732f31c9d249d4c90ff1ca0bd86cbe00f1728146b401000000000000003adbd2d5abdb70ef56c2d8bd4a7c0d67882a1c2050a856937491e98496a496fe0100000000000000f7b6a82ff22dd13d5665015a8abec429d244f857d3d6dc78e3f3c65496e4a99f01000000000000002b07c366c1ed899a2ac9722b76e092828714a8177368e51ca05ec05c565866b301000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c4501000000000000001ac44a1e32a5aabcb2bd23d6586da06e7d97d49a36cd670acaee574df1b912210100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba74934010000000000000032bbff551f7ed51452d264d796315e578d982e942eebb60e519ca648935d8b0c01000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd880100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa347010000000000000078a2957fa87dcd755360693156976dc31d1ca27a869e032fb1a2d46ae06fd8d10100000000000000068f911f5ffd2e94be67762e2eb02e792b79ac8983720f40615e27ad203e03c50100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000f33b53556f28f27d250585317cd57a18f37c5d5f2b3c1bd00a0c91ea54f1636f0100000000000000e056900cabddb471de9e1846d7efdddd8b5ad400b02fc54b4402ba725c78bf9a0100000000000000e3686e9ce1551a491d0b0a1a1c7f66d8f1910d33d5e6f4b873807e37c96c4fb8010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d55010000000000000079f73931b31ce353119fb4063412e844b16cb3eb92e592ebd822a8c21303554801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000030afa9ef79458f844a27a3881655b6eafb90b3912737f1bcddb95e78eb098c1d010000000000000053bbc598c69604e82050d2008b95b491ce8c826dc39a2e300437ffacc86d52ef010000000000000031a46e639e57d1a11119b17f76617a35b3606d206fb5c3e87710f464f7a57de50100000000000000ed25d7114e2aef2f0e57dc2be1401a4994d8aaafb30223162634a512604a2366010000000000000045070000000000000001cb4a2d0100151d00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d01" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index ddde0b5f46309aace441be7ba555ebe4ca95fb6a..070797601ace8ba50f323a28614bb73c82350cdb 100644 GIT binary patch delta 131879 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

sd!&hEY+#ao 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⁡$Ik_7yb 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 O-h7Dr8a%ztY5PCLWZU@w delta 38185 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 SG~wa)6$)(fOe_IUc^Lq4tee&V diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index af3db68469505fdb1953b0bb95f140e5bcbe8e2a..8f750277f4ba91150acb8b9643b38e61b265c06c 100644 GIT binary patch delta 15598 zcmd6O4|G)JnfLq7+=K*^Hj%_8A;<*=NMJG~HP9gvB#uGhRmHj^5vMcAT+p?|Qdd_+(UES~d zJ@0$(WQN!ly7rvU_xL41=ht8d_CnN_WfHzZSu#K@2pxz)5UF^{;gp{do&%6LsYk%}2nFW34R z_a>5N%1B2Nap#IBX2e5AI+2=`BUr20=~`OpXUxUeM#kJ4qyIX^-L6&HHN0~}B5s*+ zD`R!VMiN};#F-aPm1@nr+8YNDB8*=?kir)!{WN) zE&N9DrQ&Uv?rd>A4~SnEd$7R#S^c#X&>UpzZ&7e-c>%*XeYCGYZ9vApyK{4L*5 z%k`wNG3CLU7QRJ%t0uA7!ybS>9$_7Lq)1}}_|QuHe%6OCt|!=T z`tXa*wbx|xjK#{rJ;s=+TZx#dC*n=Pun~#tDKloI#(eD11|zNyo4Pq+1~X|hqz_N( z<~}nusRt6N2y7ql`7JX&6gG|IP||?fHC`n@J+@bB@9i+tdOB?C@l0&kOzDXceOQjr zu?}6|We#^(mKht4V($39NGcJJnep^eOQ%_VI?W$UgiMWB&_|x^E-jRs+#J_anRq&a zUC<~|Tc_u5(_K-^f74ifJdzG4GHE@Oh{Q*ABR;7I!)9>IB3Vho(a1hCt_Nt|fDh{2 znn;_tVWe|QW|E^RBV<~bDjL<}33+Fg9--$WmX7~}Ml=fj(NelWBbp-dV9GQsTGC3I zK^FQ1PFiKK&o!T9#TAuYP6qLu33RojEh+}9y;^A_m8Ko0!`VEw zsOf!dHD9)DYj1y7+p=XaDLe?~OehO)Pe38cU-WcB2TtvagiJkS$!Vtj!WK=>#6xDP zos;U-?E1K=8!4JJhDYP0tu&1h3}%30v<{RT%tY~BPB<=uTNw|UAIZdngmt2QZvCn} z@0q1N@*6!LP7u<~SR_r}9#4xybLVGUd3}Fd+eX6*v(gHKcVyr+DS$1;>bCu*So!WU z6vps?K9WdD$!rhx>HXMR&RtcAS(#)q8ZkpPw2zdJ?e8bgA-BP{_hurMDY#djCVjUH zye#-ud+QBt*au|H8jdQg0$osm$aqK-z$Bwa(3IXop+-Sw z86#%ei8U`NX*V|~j94;iM;AGO42`&fuqI53#Ffujbb)L{QK-Dp4j%_*?C3HrpN??- zWy%aDVt|zpVvww%(ji>X^yveZsRwd<7_w~{06tl1(+JHp#YL8I`2r$aU$b*2KwaS( z;M;6(x4k(MLk#N;j`4>haU(U^XoHIsE#IB6JF()y>MZN#-3p5wIc54*o{_?y365F50q-nB9P(9(1?UA6FS+=JIy5YN$_Qd zxxFU8{MtZx2{ew6L`Er65rei|PDtu8V^R-AV4O6f*gybGR?4uC1I`uR$}F*o z9Dz(e98Cnr042JS1}r9#SQ5GgunuLU&j3>t5c^o51A(J32VRM-Bajl~W=J$Iyg|HK z-<)mW9)xob(q25x*p_}LI{;KtxTI4m@ga#$hoOZe5k(3#A=AFZ7}N!Cm69joaBXlZ zC7)04wjDod#3Mn-D%CjxQ%57WN8_fb8#1hDnGN!VT5r7SDgl`Ujt-(Z4 zMkF4IWn$aRR3s4!4Eop$v|1=)C5?12>>#)TGsnAP8H*&=hqhv!A z)Zml?w%-09EfF7lvlFQL<5Yd2&i3l)6CTd5d zpfnSL6x<5)h7E}5JcFx=Oe$zvS#m7n4&_jg$6j9oQv$Q6B=lN7*1Bksz9F|#3vYsV zH?%Yc^oD5~5FtUxk)&~Dwnhl_J7$7w1$3z>BWfi`TY=sz&Cxi3=~{Am7ba98IDILW zQFH1I#6E(~+QViLy8>Yw(F2{4&_EL8-E30qKuVW=Y5g;r;4vG<=57~)}J!s)(Dg%xkogDyaYT=neZ?p zYETqVVg|b*1tLL{yZP8kaOC;(tFtN_U?pk3!1Z`;y?QL*P%V@d$o&$BfC?svSISrE zV4u1Pe6eRHw;DDP)^a|00`M9X(1_|GGnug9TEHv=AW5F^L?WvYG;QyJun69zgjAxz zGO$6C@U5EnU$XB9c0@+wW+>o4>D0?>aJf5_&>pN|7>}#kc2gs;t?~cgXChGUd&*#8qMG z&0c*Nsn_OplHy`k8=V}jC`G`60b-H)66MVK)77gNJN6<6(kBxcecS-BsKv_Rfp+Hn zrMlv2gO8^&!L)B1VAxFi!s%Fa5o+6TBII*c7Rz*hR_7JNiA0oXYl?Wk<7~8bGAt!9 z`KjbU`4k1A;X2ScW z$_!2fhLVvP@{)s@seSYfndw8^(9#>m!&E_xnPzebNnjsEDXb5jAUM4_o$J|QbC5eS zP+ph7jiHY4kOWxeBy(xIyt}rmQ=*37lL0BGD-ZW}ak5j43ST{L;s$n(B$1@#NXnye zSxOIB(;?at4pB&$NQrPf8P6zFybffovjYuR%yiJ_^RegpF;x!zZD%fkXUDTu(D>NH zKva}Y=>X_t77rutBgqJ*VENdz&3(HGeDieJrg!M%EiemhCS)Q3#?X&YSrsVjXc9V) z0%Dx5hm$r5Ply-vaNS-jONtJu$Z?PXS=kHE%E(HM6y;!)jT~4RL1-(xVFVCw!lXoI z^=Z$NMKd@VQkNa;upI4AwG9#4`xG6Qz1z#s{_}qe;5p_TJup@k`y8 z)sq8?V8Oj|u;X}`kELNBWpWrZmrHDP^xccQyJ#HXW z^bx25rFBk&Frh@YmgXET*|S^H)1|L>aBL~JjNX766-cC%0=Pq7q@|=S zol*LyDIFq~5-Cbb>BM5iA|*|S*=|9Su_D8fXe6pQNHCm9#T&)C1)FXv`wNFqrp!^) zrqHsTA>q}AT_f63`q&esk&C0IkZ2KJP%;RJ;|q3XtDfozN$JRY(up*3Uc|C8G6l=v zw~Vyp+;F&YW75ao|8UFZ(u)zrFr_ZanKFHn@)4TRw1KvVXOWJ?MMOs{=c0At``P9` z-i?|n6an`DqUOXmz;&YONRx%ENKzO!^as~w!xT@rXA7V{JimHRLQ8JeqPh>{JlF7yM1jFuWzdqK)(b6Si z-UgnmIN^HKT>%BE@E<326P{#&&$3rX+8c?a5c|&7y=Y%#taeUfDk%f13d>Dl4-oH#2b&v|CY|2UwqHCuy91yM%@C^SG_33Xuts^cdqw`cVL80|3F zGDu|-y;!0I(%iqVKxVJy0Xy7=3~NZDS+1)E3WshEtPZ#%K8zk? zHUoxD;19-AfEzw^d$wN=N>MZg@Lcxsz-w&Gf0kE$G6ql<(njj<900?TduXF!!7^jc2 zQ!j=m@wy3$A=H}YqhO0fTC;emmP#YbAVnvi&WKQ(i}UWQ#2?BveQbHT~QEiBLxCXSql{`*UY+H7G|XN}&Kcy(m$3c~T}uybIK+WfPa69PuMB zM2qUN+8BV@PFL#OEcZV<5SV zZ}pl^F{g`@pG|X})I!}%)l@2ECg>bcfB(aBb6!Tqd!~yM@x>{}qf*Z0<{9i?GK@<} zG=GRZL;ioMiRSmp4ms>rugoq^4yeZdpxNPfC4lTlkpX_+1mIf}6tfn8Dce85QRbtZ z0Et6uuSvF*kmiYCG>yvB4Uz?dHx$rPy#w7$J1G$flif_3LB2tXPQH*U8m4<_vOz;F z6^HGFbb3u_letT-;y=n-CJVCQ6f>8Ho*xZ(W}RYYkV>aq@nBc~xqr_rCi0E(ThVJG zzv{>t#VM<@L`^Rr&VJsd5t>f#@H!$S28R9M`_Jw3R=N9&OuX38#?RsA_53aTT_WO*OI+vO z^44>WpP1dsD@b(4&SKJ*g{{oP>(M_mh9aR_&P#AAkT>HPkTHpqVf0G9RkSW^Z*-pG z=rQh-i8ptp86_+oQ&9UBUtM+$l=RB7m9BT(;_E%lReo&;j&M}~3vLnL zUnhdgS1$7NZB}x~N{8Copoq3M8bYTL*$1?#m7KjRClNneUL{gquUPJ#^Rc|sK#Xf* zi+2exz0bQ`eBE1Ko`3IcskPJIUx+sw>%{9#SL6I$iTL19kDFC$;`yc;G3*PJmgAJ9 z3#abR$kG4mtAg|weD}>hO#%#ZHcyknesjf@bDS-+7JA0ytcj+n6>qO-t8?yg*1X;b zjsd=RqOBj&a455*`4-nowcxj!z2b)}>cj`lkxwkfBwAU9b6(Eb0-AA>vsyLoXv;&T z)pY3qXD6g!J3skd*KxP-@4iNCx@JR93-6+GTDBL+di3&$8i}Zg)LSnJ^ma#6hnwNt zKoqY?s45$Vd?L;rXb7)|%e-8fs!|Gb`b^o*6BW_u} zC-15$ugnwM+cx6r*V-;rv}#*<8N<0XyeEbyd8Qt@_P@ESUG3(X_IX?vZ?unz@2p)U z!fSW(LGj(SH}V1eT`1bFJK{Q1Br5$2#4oN}G3Pvv%W5S>E}>v5f> zAyq=Gi&c5JUn-ZF3;OkRko9#@)p3ZQ77unDuPC2|=N7nFH9m`6tWw;xeuCGEAFW>v zVR4qT$$4GLdT^SvH%Sak!)Z=0FR7q56hg3qdP*7{*yW<5t5!reEaF~q?}kynK)koX zBe@+MsOiHfdkcq8szC2s0k!CSRoD*arHcLFxy@Z#D?{|0d`$b1jjcC}kkRO%bf}3`i zK1e%@x!4hLWb;+xpEmjVqw=12^DU*1(Y;9*JBE8*z_tIqxs^XF%C@xd=f&DBH}I3< z^IN{nPhk9x(o;0{sEZxP*cS0hPZbccqi2aI-MYN=G~I(RtGHS-vOxXLvFWh2tP`PnnFNroj~@Sdo_?P(^6)QwWO(2I~ahGgq7* zY!)}*vwqKVaTuS&dzSLO;?6y5_~g{z?>SMyGx$fH5Q!E1Hu>#rVmUt`zb#7Y?t^6| z;ulBe3M1K4W0XM&dXc--UGA=Q*ShDq7q}O@*fkic(=IETG-U%<{Jm% zV{sUxf4YFBCm+QM+hseHj)&ilgl-%!S*L{<7#Vz{=%g)ICO}cM$vvE!%BCLsQ~=q_$OR%sac;HuY~8mGG5Q`5*-tDqG;k;`E3y1_0Yty z>zo=kck*L%WP0LddM{2Nv7(!&o6W3qnsSu)1`ZuYKv;GxNDT_32g|2bKY zB`R+nz-e7=BbZUlm>41kL`_5cFgCkTu!Bcu?%+|igQ9Y>{-bUR>hk<>JwEf1^d&ld<)t|Y_Raq{zy7e=ZqlZ6pZN<}WjvsHN%x-F-Fo5jw&upG~v1I?| zy26o2E9DT%^{ks!17-&Me)-4mb#j*kRlJ=7N5PCraI?lEzYHn*Bo)&FD)pkYxFDog(JPWqSY6kH#gAM3=BqHI%N| zL&ek|Ez&?M4@!o9=0JsTe{N2;QsWzm-Kv)tiPSc*Hu|N@%7TqlYcoKJcp#vq4{D>F zf?U)?8l0!G?kfs4&q?#RuSq(|x~{0$l1xO$j8GyyB)-4)D)Hx^tKo~q3!mFq-R@|i zQDdt~3r!m95)1BFTL73H1+uN2DcedVTetY~9gF#HJYOsJeEwtN+#PGUnfq7Q!JX9x ztyfaZyMS!8T(`#FR_X712N&KPDOjg(<~n_9oxO6FG6Ybp;ECNcpV+OQ7_g=I58ffR zexaH7i0l`h0P$=-v0(N{E&`t8oE;E5?_4*K(fB&@5c@X@ z=}E#znWSg(-P;OQn4G!7q*~#i_}QH;1vWig@Z^D+PaaTD9ua+CeCFo6FnT(nwIUrH z#uG9fv`%M(!|IWv1%o~LgFQ0_KZ^OQ#QrbU)EA^^()Uq~9j8wZdkllBv)fQnk7%-N z<-}W>aRh5*2yq#~8^{MWXa`!`f@>20ptA-!K%RT^aL-my28E2gO8!XZUhbhMs0>B` zJ}8~)e(jjX?l0KDqng@5x7zQc*rb#G>^`=X;A-JBp~vla~gZO zV6L}j&h?g>>vi$-Ba6gmk1U-he|@RmDdwH8aejFCw?`V0jDCLP3ytRrW`1Yp%?>@{g$Vr^@gDkqfo?xvyFHh2y{j@42qL-S{~9Ia~KHpZED21`8Uw7?|SfB8hwxSWUaeZ44!zd zsNJn~aG^ihxI|W(>V%DKTR1_4%{>b@7*fYw~xds{U?? z3(vkQ+D|>@LWAj7r#7N}u@^2h}ZNJ-n!d{@FaDj(UV*WR%fwSxEY!@1a!~c@i zPHWl=V(FWUM9G_VApVQqycc`i|Hk!Gzkc)IUG6h-rn#;u*S|p~|J2w|=5d$*{M4O4 pUB=;^C(rBrg80YtS99;wyXWg^#Fal=h7li3t^K*~a`Phg{{VB`{PF+* delta 6647 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 Hmb3o{%aEmM diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index bd9195401d5bc52b8de6c69a8c6e513784ab7eb9..c3525c9aa2757474cc48f5b6bde777f4955a1d70 100644 GIT binary patch delta 4870 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 PX6XJ%7ANH2;@STIunhnS delta 4976 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 diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index ba064ab70a..785f4d82a1 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -6,7 +6,7 @@ pub mod api { mod root_mod { pub use super::*; } - pub static PALLETS: [&str; 67usize] = [ + pub static PALLETS: [&str; 66usize] = [ "System", "Babe", "Timestamp", @@ -56,7 +56,6 @@ pub mod api { "ParasSlashing", "MessageQueue", "OnDemandAssignmentProvider", - "ParachainsAssignmentProvider", "CoretimeAssignmentProvider", "Registrar", "Slots", @@ -216,7 +215,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, @@ -229,9 +228,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, ], ) } @@ -283,7 +282,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( @@ -4009,9 +4008,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 242u8, 57u8, 130u8, 28u8, 242u8, 22u8, 24u8, 111u8, 149u8, 94u8, 72u8, 167u8, 72u8, - 22u8, 128u8, 181u8, 113u8, 19u8, 74u8, 216u8, 162u8, 229u8, 14u8, 254u8, 68u8, - 90u8, 180u8, 37u8, 184u8, 74u8, 59u8, 10u8, + 156u8, 238u8, 89u8, 253u8, 131u8, 142u8, 74u8, 227u8, 39u8, 8u8, 168u8, 223u8, + 105u8, 129u8, 225u8, 253u8, 181u8, 1u8, 91u8, 107u8, 103u8, 177u8, 147u8, 165u8, + 10u8, 219u8, 72u8, 215u8, 120u8, 62u8, 229u8, 179u8, ] } pub mod system { @@ -4037,7 +4036,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -4059,7 +4060,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -4081,7 +4082,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_code`]."] + #[doc = "Set the new runtime code."] pub struct SetCode { pub code: set_code::Code, } @@ -4103,7 +4104,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -4125,7 +4129,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_storage`]."] + #[doc = "Set some items of storage."] pub struct SetStorage { pub items: set_storage::Items, } @@ -4150,7 +4154,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::kill_storage`]."] + #[doc = "Kill some items from storage."] pub struct KillStorage { pub keys: kill_storage::Keys, } @@ -4172,7 +4176,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -4196,7 +4203,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -4218,7 +4225,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::authorize_upgrade`]."] + #[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, } @@ -4240,7 +4250,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::authorize_upgrade_without_checks`]."] + #[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, } @@ -4262,7 +4279,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::apply_authorized_upgrade`]."] + #[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, } @@ -4277,7 +4302,9 @@ pub mod api { } 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, @@ -4294,7 +4321,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, @@ -4311,7 +4338,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, @@ -4327,7 +4354,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, @@ -4344,7 +4374,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, @@ -4361,7 +4391,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, @@ -4378,7 +4408,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, @@ -4396,7 +4429,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, @@ -4412,7 +4445,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::authorize_upgrade`]."] + #[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, @@ -4429,7 +4465,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::authorize_upgrade_without_checks`]."] + #[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, @@ -4446,7 +4489,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::apply_authorized_upgrade`]."] + #[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, @@ -4639,6 +4690,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< @@ -4782,6 +4837,27 @@ pub mod api { ], ) } + #[doc = " Whether all inherents have been applied."] + pub fn inherents_applied( + &self, + ) -> ::subxt::storage::address::Address< + ::subxt::storage::address::StaticStorageMapKey, + types::inherents_applied::InherentsApplied, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + (), + > { + ::subxt::storage::address::Address::new_static( + "System", + "InherentsApplied", + vec![], + [ + 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, @@ -5267,7 +5343,7 @@ pub mod api { ], ) } - #[doc = " Get the chain's current version."] + #[doc = " Get the chain's in-code version."] pub fn version( &self, ) -> ::subxt::constants::Address @@ -5325,7 +5401,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -5356,7 +5435,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -5387,7 +5473,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -5403,7 +5492,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, @@ -5424,7 +5516,14 @@ pub mod api { ], ) } - #[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, @@ -5444,7 +5543,10 @@ pub mod api { ], ) } - #[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, @@ -6088,7 +6190,25 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -6104,7 +6224,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) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "Timestamp", @@ -6232,7 +6370,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -6254,7 +6403,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -6278,7 +6438,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -6300,7 +6471,19 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -6326,7 +6509,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -6341,7 +6535,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, @@ -6357,7 +6562,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, @@ -6375,7 +6591,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) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "Indices", @@ -6389,7 +6616,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, @@ -6408,7 +6647,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, @@ -6609,7 +6859,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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)] @@ -6634,7 +6890,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -6661,7 +6918,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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)] @@ -6686,7 +6948,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -6710,7 +6986,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -6734,7 +7012,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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 = "possibililty of churn)."] pub struct UpgradeAccounts { pub who: upgrade_accounts::Who, } @@ -6756,7 +7041,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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)] @@ -6781,7 +7068,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::force_adjust_total_issuance`]."] + #[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)] @@ -6799,7 +7090,13 @@ pub mod api { } 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, @@ -6817,7 +7114,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, @@ -6839,7 +7137,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, @@ -6856,7 +7159,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, @@ -6873,7 +7190,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, @@ -6891,7 +7210,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 = "possibililty of churn)."] pub fn upgrade_accounts( &self, who: types::upgrade_accounts::Who, @@ -6907,7 +7233,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, @@ -6924,7 +7252,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_adjust_total_issuance`]."] + #[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, @@ -8397,7 +8729,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -8421,7 +8761,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for PurgeKeys { const PALLET: &'static str = "Session"; @@ -8430,7 +8781,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, @@ -8448,7 +8807,18 @@ pub mod api { ], ) } - #[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::tx::Payload { ::subxt::tx::Payload::new_static( "Session", @@ -8795,7 +9165,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -8824,7 +9197,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -8853,7 +9234,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -8870,7 +9262,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, @@ -8890,7 +9285,15 @@ pub mod api { ], ) } - #[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, @@ -8910,7 +9313,18 @@ pub mod api { ], ) } - #[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, @@ -9381,7 +9795,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -9407,7 +9836,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -9430,7 +9873,23 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -9453,7 +9912,23 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -9479,7 +9954,27 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -9502,7 +9997,32 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, #[codec(compact)] @@ -9532,7 +10052,25 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -9554,7 +10092,25 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -9576,7 +10132,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -9591,7 +10162,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, @@ -9608,7 +10194,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, @@ -9624,7 +10224,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, @@ -9640,7 +10256,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, @@ -9660,7 +10292,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, @@ -9677,7 +10329,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, @@ -9702,7 +10379,25 @@ pub mod api { ], ) } - #[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, @@ -9718,7 +10413,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, @@ -9734,7 +10447,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, @@ -10467,7 +11195,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -10494,7 +11230,29 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -10523,7 +11281,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -10545,7 +11316,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -10569,7 +11348,35 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -10593,7 +11400,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -10612,7 +11434,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, @@ -10630,7 +11460,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, @@ -10654,7 +11506,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, @@ -10671,7 +11536,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, @@ -10689,7 +11562,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, @@ -10707,7 +11608,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, @@ -10993,7 +11909,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub proposal: submit::Proposal, @@ -11025,7 +11949,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -11047,7 +11978,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -11069,7 +12006,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -11091,7 +12033,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -11113,7 +12060,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -11135,7 +12085,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -11157,7 +12115,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -11179,7 +12143,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -11196,7 +12166,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, @@ -11218,7 +12196,14 @@ pub mod api { ], ) } - #[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, @@ -11234,7 +12219,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, @@ -11250,7 +12241,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, @@ -11267,7 +12263,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) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "Referenda", @@ -11281,7 +12282,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, @@ -11298,7 +12302,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, @@ -11315,7 +12327,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, @@ -11331,7 +12349,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, @@ -12145,7 +13169,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -12167,7 +13196,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -12189,7 +13223,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -12211,7 +13251,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -12235,7 +13281,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -12259,7 +13315,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -12283,7 +13348,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::exchange_member`]."] + #[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, @@ -12300,7 +13369,12 @@ pub mod api { } 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, @@ -12316,7 +13390,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, @@ -12333,7 +13412,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, @@ -12350,7 +13435,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, @@ -12368,7 +13459,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, @@ -12385,7 +13486,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, @@ -12403,7 +13513,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::exchange_member`]."] + #[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, @@ -12979,7 +14093,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub proposal: submit::Proposal, @@ -13011,7 +14133,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -13033,7 +14162,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -13055,7 +14190,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -13077,7 +14217,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -13099,7 +14244,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -13121,7 +14269,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -13143,7 +14299,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -13165,7 +14327,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -13182,7 +14350,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, @@ -13204,7 +14380,14 @@ pub mod api { ], ) } - #[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, @@ -13220,7 +14403,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, @@ -13236,7 +14425,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, @@ -13253,7 +14447,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) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "FellowshipReferenda", @@ -13267,7 +14466,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, @@ -13284,7 +14486,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, @@ -13301,7 +14511,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, @@ -13317,7 +14533,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, @@ -14129,7 +15351,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::whitelist_call`]."] pub struct WhitelistCall { pub call_hash: whitelist_call::CallHash, } @@ -14151,7 +15372,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::remove_whitelisted_call`]."] pub struct RemoveWhitelistedCall { pub call_hash: remove_whitelisted_call::CallHash, } @@ -14173,7 +15393,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -14199,7 +15418,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::dispatch_whitelisted_call_with_preimage`]."] pub struct DispatchWhitelistedCallWithPreimage { pub call: ::std::boxed::Box, } @@ -14214,7 +15432,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, @@ -14231,7 +15448,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_whitelisted_call`]."] pub fn remove_whitelisted_call( &self, call_hash: types::remove_whitelisted_call::CallHash, @@ -14248,7 +15464,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dispatch_whitelisted_call`]."] pub fn dispatch_whitelisted_call( &self, call_hash: types::dispatch_whitelisted_call::CallHash, @@ -14271,7 +15486,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, @@ -14284,10 +15498,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 22u8, 6u8, 147u8, 82u8, 187u8, 143u8, 69u8, 45u8, 97u8, 1u8, 106u8, - 162u8, 200u8, 33u8, 243u8, 148u8, 5u8, 143u8, 227u8, 242u8, 167u8, - 120u8, 17u8, 241u8, 102u8, 162u8, 217u8, 14u8, 178u8, 75u8, 143u8, - 104u8, + 5u8, 34u8, 158u8, 60u8, 245u8, 185u8, 170u8, 44u8, 214u8, 208u8, 88u8, + 254u8, 35u8, 136u8, 207u8, 220u8, 73u8, 73u8, 39u8, 5u8, 118u8, 197u8, + 197u8, 222u8, 123u8, 52u8, 213u8, 237u8, 129u8, 4u8, 50u8, 143u8, ], ) } @@ -14449,7 +15662,30 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -14474,7 +15710,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -14508,7 +15758,33 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -14535,7 +15811,25 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -14557,7 +15851,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::move_claim`]."] pub struct MoveClaim { pub old: move_claim::Old, pub new: move_claim::New, @@ -14576,7 +15869,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, @@ -14597,7 +15913,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, @@ -14621,7 +15951,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, @@ -14643,7 +15999,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, @@ -14660,7 +16034,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::move_claim`]."] pub fn move_claim( &self, old: types::move_claim::Old, @@ -15015,7 +16388,24 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -15037,7 +16427,19 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -15061,7 +16463,19 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -15083,7 +16497,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub call: ::std::boxed::Box, @@ -15107,7 +16526,19 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -15129,7 +16560,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub weight: with_weight::Weight, @@ -15146,7 +16582,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, @@ -15156,13 +16609,25 @@ pub mod api { "batch", types::Batch { calls }, [ - 190u8, 76u8, 194u8, 104u8, 12u8, 228u8, 170u8, 51u8, 80u8, 255u8, - 245u8, 201u8, 1u8, 6u8, 37u8, 123u8, 161u8, 141u8, 178u8, 35u8, 195u8, - 118u8, 25u8, 175u8, 79u8, 55u8, 53u8, 247u8, 11u8, 160u8, 207u8, 242u8, + 181u8, 127u8, 72u8, 3u8, 201u8, 66u8, 147u8, 14u8, 125u8, 58u8, 181u8, + 213u8, 122u8, 17u8, 115u8, 25u8, 62u8, 173u8, 182u8, 189u8, 10u8, + 112u8, 100u8, 66u8, 223u8, 190u8, 42u8, 175u8, 130u8, 137u8, 91u8, 0u8, ], ) } - #[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, @@ -15176,14 +16641,26 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 150u8, 183u8, 64u8, 247u8, 10u8, 72u8, 40u8, 3u8, 104u8, 248u8, 146u8, - 47u8, 247u8, 114u8, 16u8, 108u8, 254u8, 162u8, 127u8, 91u8, 31u8, - 138u8, 203u8, 235u8, 247u8, 84u8, 30u8, 34u8, 228u8, 181u8, 103u8, - 246u8, + 42u8, 102u8, 244u8, 61u8, 176u8, 104u8, 53u8, 138u8, 130u8, 222u8, 2u8, + 120u8, 213u8, 145u8, 61u8, 190u8, 37u8, 201u8, 161u8, 231u8, 221u8, + 184u8, 164u8, 221u8, 246u8, 15u8, 180u8, 105u8, 174u8, 105u8, 202u8, + 204u8, ], ) } - #[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, @@ -15193,13 +16670,18 @@ pub mod api { "batch_all", types::BatchAll { calls }, [ - 93u8, 139u8, 245u8, 180u8, 137u8, 205u8, 82u8, 6u8, 172u8, 46u8, 253u8, - 155u8, 99u8, 197u8, 38u8, 242u8, 60u8, 160u8, 77u8, 73u8, 198u8, 233u8, - 204u8, 194u8, 156u8, 17u8, 64u8, 40u8, 156u8, 147u8, 212u8, 125u8, + 17u8, 73u8, 73u8, 197u8, 80u8, 151u8, 37u8, 8u8, 65u8, 201u8, 153u8, + 61u8, 81u8, 56u8, 220u8, 29u8, 176u8, 237u8, 55u8, 226u8, 209u8, 137u8, + 176u8, 146u8, 195u8, 175u8, 171u8, 69u8, 58u8, 189u8, 126u8, 120u8, ], ) } - #[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, @@ -15213,14 +16695,25 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 46u8, 149u8, 47u8, 127u8, 211u8, 128u8, 96u8, 199u8, 179u8, 166u8, - 217u8, 15u8, 47u8, 137u8, 115u8, 124u8, 111u8, 203u8, 27u8, 54u8, 85u8, - 196u8, 162u8, 158u8, 216u8, 158u8, 184u8, 166u8, 14u8, 14u8, 104u8, - 57u8, + 26u8, 137u8, 228u8, 222u8, 250u8, 111u8, 29u8, 31u8, 210u8, 156u8, 9u8, + 151u8, 164u8, 71u8, 51u8, 228u8, 23u8, 121u8, 55u8, 27u8, 20u8, 41u8, + 198u8, 98u8, 174u8, 148u8, 124u8, 149u8, 141u8, 26u8, 17u8, 147u8, ], ) } - #[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, @@ -15230,14 +16723,19 @@ pub mod api { "force_batch", types::ForceBatch { calls }, [ - 155u8, 161u8, 89u8, 164u8, 29u8, 151u8, 219u8, 213u8, 69u8, 167u8, - 226u8, 136u8, 117u8, 118u8, 112u8, 215u8, 137u8, 57u8, 237u8, 128u8, - 185u8, 217u8, 26u8, 24u8, 202u8, 14u8, 149u8, 113u8, 201u8, 155u8, - 203u8, 186u8, + 78u8, 200u8, 135u8, 14u8, 33u8, 152u8, 237u8, 126u8, 69u8, 160u8, 60u8, + 167u8, 206u8, 212u8, 121u8, 164u8, 192u8, 236u8, 58u8, 174u8, 37u8, + 63u8, 254u8, 178u8, 210u8, 68u8, 207u8, 154u8, 127u8, 173u8, 79u8, + 30u8, ], ) } - #[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, @@ -15251,9 +16749,9 @@ pub mod api { weight, }, [ - 47u8, 254u8, 18u8, 140u8, 124u8, 167u8, 16u8, 52u8, 50u8, 166u8, 123u8, - 107u8, 174u8, 238u8, 43u8, 129u8, 237u8, 255u8, 181u8, 210u8, 20u8, - 154u8, 96u8, 238u8, 219u8, 28u8, 74u8, 198u8, 122u8, 47u8, 13u8, 199u8, + 204u8, 3u8, 114u8, 23u8, 35u8, 43u8, 87u8, 118u8, 150u8, 70u8, 167u8, + 234u8, 87u8, 65u8, 39u8, 146u8, 138u8, 69u8, 125u8, 77u8, 84u8, 131u8, + 103u8, 92u8, 130u8, 48u8, 53u8, 170u8, 194u8, 103u8, 54u8, 184u8, ], ) } @@ -15427,7 +16925,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -15450,7 +16954,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, } @@ -15472,7 +16985,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -15497,7 +17018,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for ClearIdentity { const PALLET: &'static str = "Identity"; @@ -15513,7 +17041,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -15539,7 +17082,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -15561,7 +17113,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -15587,7 +17145,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -15612,7 +17176,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -15637,7 +17207,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -15667,7 +17251,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -15689,7 +17284,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -15713,7 +17314,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -15737,7 +17341,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -15759,7 +17369,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for QuitSub { const PALLET: &'static str = "Identity"; @@ -15775,7 +17394,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::add_username_authority`]."] + #[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, @@ -15802,7 +17424,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::remove_username_authority`]."] + #[doc = "Remove `authority` from the username authorities."] pub struct RemoveUsernameAuthority { pub authority: remove_username_authority::Authority, } @@ -15825,7 +17447,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_username_for`]."] + #[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, @@ -15852,7 +17482,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::accept_username`]."] + #[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, } @@ -15876,7 +17507,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::remove_expired_approval`]."] + #[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, } @@ -15900,7 +17533,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_primary_username`]."] + #[doc = "Set a given username as the primary. The username should include the suffix."] pub struct SetPrimaryUsername { pub username: set_primary_username::Username, } @@ -15924,7 +17557,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::remove_dangling_username`]."] + #[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, } @@ -15941,7 +17575,13 @@ pub mod api { } 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, @@ -15957,7 +17597,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, @@ -15976,7 +17625,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, @@ -15993,7 +17650,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::tx::Payload { ::subxt::tx::Payload::new_static( "Identity", @@ -16007,7 +17671,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, @@ -16024,7 +17703,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, @@ -16041,7 +17729,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, @@ -16059,7 +17753,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, @@ -16077,7 +17777,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, @@ -16095,7 +17801,21 @@ pub mod api { ], ) } - #[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, @@ -16120,7 +17840,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, @@ -16137,7 +17868,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, @@ -16154,7 +17891,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, @@ -16172,7 +17912,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, @@ -16188,7 +17934,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::tx::Payload { ::subxt::tx::Payload::new_static( "Identity", @@ -16202,7 +17957,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::add_username_authority`]."] + #[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, @@ -16225,7 +17983,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_username_authority`]."] + #[doc = "Remove `authority` from the username authorities."] pub fn remove_username_authority( &self, authority: types::remove_username_authority::Authority, @@ -16241,7 +17999,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_username_for`]."] + #[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, @@ -16264,7 +18030,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::accept_username`]."] + #[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, @@ -16280,7 +18047,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_expired_approval`]."] + #[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, @@ -16296,7 +18065,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_primary_username`]."] + #[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, @@ -16312,7 +18081,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_dangling_username`]."] + #[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, @@ -17314,7 +19084,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -17336,7 +19114,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for Unbid { const PALLET: &'static str = "Society"; @@ -17352,7 +19136,23 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -17378,7 +19178,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for Unvouch { const PALLET: &'static str = "Society"; @@ -17394,7 +19200,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -17419,7 +19232,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -17441,7 +19260,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for Payout { const PALLET: &'static str = "Society"; @@ -17457,7 +19285,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -17479,7 +19308,23 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -17512,7 +19357,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for Dissolve { const PALLET: &'static str = "Society"; @@ -17528,7 +19377,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -17552,7 +19414,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -17580,7 +19453,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for PunishSkeptic { const PALLET: &'static str = "Society"; @@ -17596,7 +19470,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for ClaimMembership { const PALLET: &'static str = "Society"; @@ -17612,7 +19487,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -17634,7 +19511,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -17656,7 +19537,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for ResignCandidacy { const PALLET: &'static str = "Society"; @@ -17672,7 +19555,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -17694,7 +19581,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -17718,7 +19607,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -17735,7 +19626,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) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "Society", @@ -17748,7 +19647,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::tx::Payload { ::subxt::tx::Payload::new_static( "Society", @@ -17762,7 +19667,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, @@ -17780,7 +19701,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::tx::Payload { ::subxt::tx::Payload::new_static( "Society", @@ -17794,7 +19721,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, @@ -17811,7 +19745,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, @@ -17828,7 +19768,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::tx::Payload { ::subxt::tx::Payload::new_static( "Society", @@ -17841,7 +19790,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, @@ -17857,7 +19807,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, @@ -17886,7 +19852,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::tx::Payload { ::subxt::tx::Payload::new_static( "Society", @@ -17900,7 +19870,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, @@ -17917,7 +19900,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, @@ -17942,7 +19936,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::tx::Payload { ::subxt::tx::Payload::new_static( "Society", @@ -17956,7 +19951,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::tx::Payload { ::subxt::tx::Payload::new_static( "Society", @@ -17969,7 +19965,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, @@ -17985,7 +19983,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, @@ -18001,7 +20003,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::tx::Payload { ::subxt::tx::Payload::new_static( "Society", @@ -18015,7 +20019,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, @@ -18031,7 +20039,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, @@ -18049,7 +20059,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, @@ -19435,7 +21447,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -19460,7 +21479,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -19485,7 +21511,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -19511,7 +21552,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -19534,7 +21585,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -19559,7 +21621,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -19582,7 +21652,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -19605,7 +21685,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for RemoveRecovery { const PALLET: &'static str = "Recovery"; @@ -19621,7 +21711,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -19637,7 +21733,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, @@ -19651,13 +21754,21 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 37u8, 58u8, 252u8, 116u8, 228u8, 248u8, 131u8, 216u8, 1u8, 33u8, 213u8, - 41u8, 203u8, 3u8, 225u8, 255u8, 195u8, 8u8, 172u8, 38u8, 249u8, 105u8, - 83u8, 16u8, 13u8, 213u8, 0u8, 91u8, 198u8, 141u8, 6u8, 16u8, + 135u8, 12u8, 48u8, 186u8, 171u8, 82u8, 254u8, 243u8, 245u8, 181u8, + 120u8, 28u8, 237u8, 197u8, 36u8, 204u8, 118u8, 98u8, 112u8, 129u8, + 95u8, 226u8, 68u8, 252u8, 55u8, 72u8, 164u8, 40u8, 121u8, 195u8, 128u8, + 12u8, ], ) } - #[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, @@ -19674,7 +21785,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, @@ -19696,7 +21822,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, @@ -19712,7 +21848,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, @@ -19729,7 +21876,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, @@ -19746,7 +21901,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, @@ -19763,7 +21928,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::tx::Payload { ::subxt::tx::Payload::new_static( "Recovery", @@ -19777,7 +21952,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, @@ -20260,7 +22441,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for Vest { const PALLET: &'static str = "Vesting"; @@ -20276,7 +22465,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -20298,7 +22497,19 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -20325,7 +22536,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -20354,7 +22578,27 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -20378,7 +22622,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::force_remove_vesting_schedule`]."] + #[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, @@ -20395,7 +22644,15 @@ pub mod api { } 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::tx::Payload { ::subxt::tx::Payload::new_static( "Vesting", @@ -20409,7 +22666,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, @@ -20425,7 +22692,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, @@ -20442,7 +22721,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, @@ -20465,7 +22757,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, @@ -20485,7 +22797,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_remove_vesting_schedule`]."] + #[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, @@ -20710,7 +23027,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::schedule`]."] + #[doc = "Anonymously schedule a task."] pub struct Schedule { pub when: schedule::When, pub maybe_periodic: schedule::MaybePeriodic, @@ -20739,7 +23056,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an anonymously scheduled task."] pub struct Cancel { pub when: cancel::When, pub index: cancel::Index, @@ -20763,7 +23080,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -20794,7 +23111,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::cancel_named`]."] + #[doc = "Cancel a named scheduled task."] pub struct CancelNamed { pub id: cancel_named::Id, } @@ -20816,7 +23133,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -20845,7 +23162,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -20876,7 +23193,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_retry`]."] + #[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, @@ -20902,7 +23230,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_retry_named`]."] + #[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, @@ -20928,7 +23267,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::cancel_retry`]."] + #[doc = "Removes the retry configuration of a task."] pub struct CancelRetry { pub task: cancel_retry::Task, } @@ -20950,7 +23289,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::cancel_retry_named`]."] + #[doc = "Cancel the retry configuration of a named task."] pub struct CancelRetryNamed { pub id: cancel_retry_named::Id, } @@ -20965,7 +23304,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::schedule`]."] + #[doc = "Anonymously schedule a task."] pub fn schedule( &self, when: types::schedule::When, @@ -20983,13 +23322,14 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 138u8, 196u8, 26u8, 129u8, 131u8, 51u8, 78u8, 112u8, 92u8, 174u8, 12u8, - 239u8, 185u8, 165u8, 26u8, 20u8, 222u8, 255u8, 172u8, 151u8, 217u8, - 62u8, 14u8, 102u8, 128u8, 147u8, 143u8, 226u8, 72u8, 62u8, 155u8, 68u8, + 177u8, 175u8, 49u8, 206u8, 0u8, 101u8, 223u8, 105u8, 237u8, 222u8, + 54u8, 201u8, 142u8, 85u8, 208u8, 239u8, 149u8, 209u8, 97u8, 72u8, + 126u8, 225u8, 10u8, 235u8, 26u8, 223u8, 197u8, 153u8, 19u8, 254u8, + 251u8, 181u8, ], ) } - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an anonymously scheduled task."] pub fn cancel( &self, when: types::cancel::When, @@ -21007,7 +23347,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::schedule_named`]."] + #[doc = "Schedule a named task."] pub fn schedule_named( &self, id: types::schedule_named::Id, @@ -21027,14 +23367,13 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 208u8, 81u8, 95u8, 195u8, 171u8, 238u8, 152u8, 17u8, 86u8, 72u8, 242u8, - 225u8, 129u8, 96u8, 255u8, 181u8, 233u8, 51u8, 174u8, 78u8, 111u8, - 251u8, 244u8, 84u8, 217u8, 223u8, 155u8, 119u8, 167u8, 221u8, 65u8, - 5u8, + 164u8, 136u8, 103u8, 178u8, 45u8, 181u8, 133u8, 195u8, 92u8, 93u8, + 198u8, 193u8, 65u8, 15u8, 156u8, 206u8, 69u8, 50u8, 50u8, 34u8, 150u8, + 94u8, 181u8, 111u8, 219u8, 127u8, 86u8, 122u8, 36u8, 186u8, 21u8, 35u8, ], ) } - #[doc = "See [`Pallet::cancel_named`]."] + #[doc = "Cancel a named scheduled task."] pub fn cancel_named( &self, id: types::cancel_named::Id, @@ -21050,7 +23389,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, @@ -21068,14 +23407,14 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 217u8, 111u8, 46u8, 195u8, 219u8, 234u8, 12u8, 95u8, 253u8, 237u8, - 76u8, 172u8, 88u8, 168u8, 167u8, 165u8, 199u8, 170u8, 207u8, 233u8, - 239u8, 33u8, 251u8, 30u8, 242u8, 210u8, 130u8, 254u8, 129u8, 30u8, - 186u8, 40u8, + 236u8, 195u8, 150u8, 165u8, 194u8, 42u8, 187u8, 43u8, 80u8, 229u8, + 221u8, 146u8, 56u8, 125u8, 199u8, 212u8, 10u8, 2u8, 2u8, 207u8, 195u8, + 54u8, 38u8, 59u8, 193u8, 239u8, 195u8, 150u8, 161u8, 29u8, 113u8, + 225u8, ], ) } - #[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, @@ -21095,13 +23434,25 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 79u8, 253u8, 17u8, 220u8, 97u8, 235u8, 221u8, 156u8, 35u8, 51u8, 19u8, - 230u8, 126u8, 42u8, 51u8, 92u8, 171u8, 168u8, 67u8, 13u8, 63u8, 185u8, - 58u8, 30u8, 7u8, 171u8, 53u8, 144u8, 156u8, 255u8, 237u8, 19u8, + 28u8, 81u8, 177u8, 155u8, 39u8, 10u8, 188u8, 144u8, 52u8, 208u8, 6u8, + 205u8, 122u8, 255u8, 38u8, 105u8, 171u8, 234u8, 58u8, 224u8, 86u8, + 188u8, 53u8, 177u8, 113u8, 155u8, 54u8, 237u8, 214u8, 10u8, 140u8, + 245u8, ], ) } - #[doc = "See [`Pallet::set_retry`]."] + #[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, @@ -21123,7 +23474,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_retry_named`]."] + #[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, @@ -21146,7 +23508,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_retry`]."] + #[doc = "Removes the retry configuration of a task."] pub fn cancel_retry( &self, task: types::cancel_retry::Task, @@ -21163,7 +23525,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_retry_named`]."] + #[doc = "Cancel the retry configuration of a named task."] pub fn cancel_retry_named( &self, id: types::cancel_retry_named::Id, @@ -21708,7 +24070,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21735,7 +24105,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21762,7 +24140,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21789,7 +24173,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for RemoveProxies { const PALLET: &'static str = "Proxy"; @@ -21805,7 +24194,24 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21831,7 +24237,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21864,7 +24285,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21888,7 +24323,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21912,7 +24356,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21937,7 +24390,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -21960,7 +24423,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, @@ -21976,14 +24447,22 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 27u8, 41u8, 64u8, 205u8, 145u8, 228u8, 163u8, 100u8, 114u8, 12u8, - 176u8, 150u8, 113u8, 197u8, 148u8, 23u8, 28u8, 27u8, 246u8, 111u8, - 117u8, 252u8, 190u8, 69u8, 164u8, 213u8, 185u8, 65u8, 213u8, 172u8, - 183u8, 205u8, + 253u8, 236u8, 54u8, 144u8, 19u8, 103u8, 190u8, 174u8, 231u8, 154u8, + 133u8, 175u8, 56u8, 44u8, 172u8, 25u8, 73u8, 196u8, 76u8, 61u8, 12u8, + 48u8, 245u8, 85u8, 187u8, 15u8, 111u8, 121u8, 91u8, 157u8, 111u8, + 141u8, ], ) } - #[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, @@ -22006,7 +24485,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, @@ -22028,7 +24513,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::tx::Payload { ::subxt::tx::Payload::new_static( "Proxy", @@ -22042,7 +24532,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, @@ -22064,7 +24571,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, @@ -22090,7 +24612,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, @@ -22108,7 +24644,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, @@ -22125,7 +24670,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, @@ -22145,7 +24699,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, @@ -22163,9 +24727,9 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 81u8, 161u8, 1u8, 212u8, 29u8, 249u8, 101u8, 27u8, 174u8, 148u8, 164u8, - 13u8, 37u8, 206u8, 239u8, 219u8, 107u8, 255u8, 101u8, 108u8, 122u8, - 46u8, 19u8, 233u8, 82u8, 130u8, 11u8, 148u8, 40u8, 212u8, 214u8, 39u8, + 5u8, 32u8, 80u8, 204u8, 70u8, 82u8, 22u8, 142u8, 13u8, 189u8, 204u8, + 167u8, 157u8, 48u8, 49u8, 23u8, 27u8, 143u8, 159u8, 19u8, 22u8, 218u8, + 37u8, 32u8, 67u8, 24u8, 132u8, 157u8, 10u8, 176u8, 94u8, 69u8, ], ) } @@ -22566,7 +25130,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -22590,7 +25165,45 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -22622,7 +25235,36 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -22654,7 +25296,27 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -22676,7 +25338,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, @@ -22690,14 +25363,52 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 160u8, 32u8, 154u8, 37u8, 200u8, 55u8, 129u8, 224u8, 146u8, 248u8, - 74u8, 123u8, 141u8, 242u8, 178u8, 218u8, 203u8, 229u8, 3u8, 189u8, - 150u8, 28u8, 101u8, 126u8, 182u8, 233u8, 181u8, 254u8, 146u8, 180u8, - 124u8, 102u8, + 223u8, 197u8, 77u8, 59u8, 210u8, 4u8, 228u8, 221u8, 213u8, 150u8, + 108u8, 151u8, 213u8, 147u8, 174u8, 207u8, 142u8, 149u8, 68u8, 126u8, + 75u8, 188u8, 206u8, 13u8, 103u8, 43u8, 249u8, 8u8, 172u8, 151u8, 212u8, + 57u8, ], ) } - #[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, @@ -22717,14 +25428,43 @@ pub mod api { max_weight, }, [ - 253u8, 142u8, 244u8, 88u8, 243u8, 78u8, 231u8, 191u8, 169u8, 215u8, - 44u8, 15u8, 85u8, 234u8, 100u8, 22u8, 80u8, 150u8, 80u8, 119u8, 5u8, - 183u8, 239u8, 148u8, 100u8, 219u8, 211u8, 155u8, 23u8, 228u8, 34u8, - 231u8, + 185u8, 170u8, 191u8, 214u8, 209u8, 18u8, 122u8, 101u8, 51u8, 109u8, + 11u8, 192u8, 57u8, 170u8, 232u8, 162u8, 225u8, 99u8, 91u8, 218u8, 60u8, + 85u8, 159u8, 103u8, 150u8, 185u8, 158u8, 203u8, 228u8, 218u8, 164u8, + 63u8, ], ) } - #[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, @@ -22750,7 +25490,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, @@ -23065,7 +25825,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -23087,7 +25850,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -23109,7 +25877,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -23131,7 +25902,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -23153,7 +25926,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -23168,7 +25943,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, @@ -23184,7 +25962,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, @@ -23201,7 +25984,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, @@ -23217,7 +26003,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, @@ -23234,7 +26022,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, @@ -23545,7 +26335,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub rate: create::Rate, @@ -23570,7 +26363,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub rate: update::Rate, @@ -23595,7 +26391,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, } @@ -23611,7 +26410,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, @@ -23631,7 +26433,10 @@ pub mod api { ], ) } - #[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, @@ -23651,7 +26456,10 @@ pub mod api { ], ) } - #[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, @@ -23840,7 +26648,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -23865,7 +26684,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -23888,7 +26713,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -23917,7 +26747,23 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -23940,7 +26786,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -23963,7 +26815,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -23989,7 +26850,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24012,7 +26880,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24035,7 +26911,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24053,7 +26937,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, @@ -24070,7 +26965,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, @@ -24087,7 +26988,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, @@ -24109,7 +27015,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, @@ -24126,7 +27048,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, @@ -24142,7 +27070,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, @@ -24162,7 +27099,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, @@ -24179,7 +27123,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, @@ -24196,7 +27148,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, @@ -24816,7 +27776,25 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24844,7 +27822,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24876,7 +27868,25 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24902,7 +27912,40 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24928,7 +27971,23 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24957,7 +28016,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -24983,7 +28057,28 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -25002,7 +28097,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, @@ -25025,7 +28138,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, @@ -25049,7 +28176,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, @@ -25070,7 +28215,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, @@ -25091,7 +28269,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, @@ -25113,7 +28307,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, @@ -25133,7 +28342,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, @@ -25594,7 +28824,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -25619,7 +28859,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -25644,7 +28890,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for FundDeficit { const PALLET: &'static str = "Nis"; @@ -25660,7 +28908,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -25687,7 +28942,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -25710,7 +28970,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -25733,7 +28993,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -25749,7 +29009,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, @@ -25767,7 +29037,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, @@ -25784,7 +29060,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::tx::Payload { ::subxt::tx::Payload::new_static( "Nis", @@ -25798,7 +29076,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, @@ -25818,7 +29103,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, @@ -25835,7 +29125,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, @@ -25852,7 +29142,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, @@ -26436,7 +29726,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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)] @@ -26461,7 +29757,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -26488,7 +29785,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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)] @@ -26513,7 +29815,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -26537,7 +29853,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -26561,7 +29879,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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 = "possibililty of churn)."] pub struct UpgradeAccounts { pub who: upgrade_accounts::Who, } @@ -26583,7 +29908,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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)] @@ -26608,7 +29935,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::force_adjust_total_issuance`]."] + #[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)] @@ -26626,7 +29957,13 @@ pub mod api { } 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, @@ -26644,7 +29981,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, @@ -26666,7 +30004,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, @@ -26683,7 +30026,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, @@ -26700,7 +30057,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, @@ -26718,7 +30077,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 = "possibililty of churn)."] pub fn upgrade_accounts( &self, who: types::upgrade_accounts::Who, @@ -26734,7 +30100,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, @@ -26751,7 +30119,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_adjust_total_issuance`]."] + #[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, @@ -27783,7 +31155,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -27805,7 +31177,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -27827,7 +31199,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -27849,7 +31221,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -27871,7 +31243,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -27893,7 +31265,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -27915,7 +31287,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_coretime_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 struct SetCoretimeCores { pub new: set_coretime_cores::New, } @@ -27937,17 +31312,17 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for SetOnDemandRetries { + impl ::subxt::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 :: codec :: Decode, @@ -27959,7 +31334,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -27981,7 +31356,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28003,7 +31378,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28025,7 +31400,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28047,7 +31422,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28069,7 +31444,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28091,7 +31466,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28113,7 +31488,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28135,7 +31511,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28157,7 +31533,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28179,7 +31555,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28201,7 +31577,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28223,7 +31599,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28245,7 +31621,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28267,7 +31644,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28289,7 +31666,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28311,7 +31688,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28333,7 +31710,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28355,7 +31732,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28377,7 +31754,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28399,7 +31777,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28421,7 +31799,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28443,7 +31821,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28465,7 +31843,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28487,7 +31865,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28509,7 +31887,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28531,7 +31909,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28553,7 +31931,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28575,7 +31956,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28597,7 +31979,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28620,7 +32002,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_executor_params`]."] + #[doc = "Set PVF executor parameters."] pub struct SetExecutorParams { pub new: set_executor_params::New, } @@ -28643,7 +32025,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28665,7 +32047,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28687,7 +32069,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28709,7 +32091,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28731,7 +32113,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28753,7 +32135,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -28775,7 +32157,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_node_feature`]."] + #[doc = "Set/Unset a node feature."] pub struct SetNodeFeature { pub index: set_node_feature::Index, pub value: set_node_feature::Value, @@ -28799,7 +32181,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::set_approval_voting_params`]."] + #[doc = "Set approval-voting-params."] pub struct SetApprovalVotingParams { pub new: set_approval_voting_params::New, } @@ -28812,10 +32194,34 @@ pub mod api { const PALLET: &'static str = "Configuration"; const CALL: &'static str = "set_approval_voting_params"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: 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::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, @@ -28832,7 +32238,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, @@ -28848,7 +32254,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, @@ -28865,7 +32271,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, @@ -28882,7 +32288,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, @@ -28898,7 +32304,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, @@ -28915,7 +32321,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_coretime_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_coretime_cores::New, @@ -28931,24 +32340,23 @@ pub mod api { ], ) } - #[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::tx::Payload { + new: types::set_max_availability_timeouts::New, + ) -> ::subxt::tx::Payload { ::subxt::tx::Payload::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, @@ -28964,7 +32372,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, @@ -28980,7 +32388,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, @@ -28997,7 +32405,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, @@ -29014,7 +32422,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, @@ -29031,7 +32439,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, @@ -29048,7 +32456,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, @@ -29066,7 +32474,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, @@ -29082,7 +32491,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, @@ -29099,7 +32508,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, @@ -29115,7 +32524,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, @@ -29131,7 +32540,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, @@ -29148,7 +32557,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, @@ -29165,7 +32574,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, @@ -29182,7 +32592,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, @@ -29198,7 +32608,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, @@ -29215,7 +32625,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, @@ -29232,7 +32642,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, @@ -29248,7 +32658,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, @@ -29264,7 +32674,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, @@ -29281,7 +32692,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, @@ -29298,7 +32709,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, @@ -29314,7 +32725,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, @@ -29331,7 +32742,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, @@ -29348,7 +32759,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, @@ -29365,7 +32776,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, @@ -29381,7 +32792,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, @@ -29398,7 +32809,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, @@ -29415,7 +32829,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, @@ -29432,7 +32847,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, @@ -29449,7 +32864,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, @@ -29465,7 +32880,7 @@ pub mod api { ], ) } - #[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, @@ -29481,7 +32896,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, @@ -29498,7 +32913,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, @@ -29514,7 +32929,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, @@ -29532,7 +32947,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, @@ -29549,7 +32964,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, @@ -29565,7 +32980,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_node_feature`]."] + #[doc = "Set/Unset a node feature."] pub fn set_node_feature( &self, index: types::set_node_feature::Index, @@ -29582,7 +32997,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_approval_voting_params`]."] + #[doc = "Set approval-voting-params."] pub fn set_approval_voting_params( &self, new: types::set_approval_voting_params::New, @@ -29599,6 +33014,22 @@ pub mod api { ], ) } + #[doc = "Set scheduler-params."] + pub fn set_scheduler_params( + &self, + new: types::set_scheduler_params::New, + ) -> ::subxt::tx::Payload { + ::subxt::tx::Payload::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 { @@ -29635,9 +33066,10 @@ pub mod api { "ActiveConfig", vec![], [ - 121u8, 69u8, 70u8, 58u8, 91u8, 124u8, 53u8, 11u8, 49u8, 82u8, 119u8, - 36u8, 116u8, 193u8, 238u8, 208u8, 187u8, 148u8, 200u8, 30u8, 174u8, - 195u8, 201u8, 181u8, 40u8, 93u8, 153u8, 220u8, 158u8, 24u8, 153u8, 5u8, + 139u8, 211u8, 123u8, 64u8, 213u8, 119u8, 27u8, 145u8, 140u8, 101u8, + 90u8, 64u8, 218u8, 130u8, 96u8, 66u8, 107u8, 131u8, 85u8, 4u8, 136u8, + 199u8, 248u8, 106u8, 206u8, 16u8, 205u8, 244u8, 67u8, 105u8, 20u8, + 22u8, ], ) } @@ -29662,9 +33094,9 @@ pub mod api { "PendingConfigs", vec![], [ - 29u8, 220u8, 218u8, 233u8, 222u8, 28u8, 203u8, 86u8, 0u8, 34u8, 78u8, - 157u8, 206u8, 57u8, 211u8, 206u8, 34u8, 22u8, 126u8, 92u8, 13u8, 71u8, - 156u8, 156u8, 121u8, 2u8, 30u8, 72u8, 37u8, 12u8, 88u8, 210u8, + 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, ], ) } @@ -30147,7 +33579,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -30164,7 +33596,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, @@ -30417,7 +33849,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -30442,7 +33874,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -30467,7 +33899,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -30494,7 +33926,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -30519,7 +33951,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -30541,7 +33975,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -30564,7 +34011,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -30586,7 +34037,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -30611,7 +34063,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -30628,7 +34080,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, @@ -30646,7 +34098,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, @@ -30664,7 +34116,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, @@ -30687,7 +34139,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, @@ -30704,7 +34156,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, @@ -30721,7 +34175,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, @@ -30738,7 +34205,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, @@ -30756,7 +34227,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, @@ -30774,7 +34246,7 @@ pub mod api { ], ) } - #[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, @@ -32059,7 +35531,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -32074,7 +35548,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, @@ -32371,7 +35847,16 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -32398,7 +35883,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -32420,7 +35907,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -32443,7 +35933,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -32469,7 +35965,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -32491,7 +35994,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -32513,7 +36023,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -32538,7 +36055,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -32567,7 +36091,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -32592,7 +36127,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -32610,7 +36153,16 @@ pub mod api { } 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, @@ -32633,7 +36185,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, @@ -32649,7 +36203,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, @@ -32666,7 +36223,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, @@ -32688,7 +36251,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, @@ -32705,7 +36275,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, @@ -32722,7 +36299,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, @@ -32742,7 +36326,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, @@ -32766,7 +36357,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, @@ -32783,7 +36385,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, @@ -33908,7 +37518,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::force_unfreeze`]."] pub struct ForceUnfreeze; impl ::subxt::blocks::StaticExtrinsic for ForceUnfreeze { const PALLET: &'static str = "ParasDisputes"; @@ -33917,7 +37526,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_unfreeze`]."] pub fn force_unfreeze(&self) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "ParasDisputes", @@ -34350,7 +37958,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::report_dispute_lost_unsigned`]."] pub struct ReportDisputeLostUnsigned { pub dispute_proof: ::std::boxed::Box, @@ -34369,7 +37976,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, @@ -34556,7 +38162,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -34580,7 +38186,19 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -34601,7 +38219,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, @@ -34621,7 +38239,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, @@ -35016,7 +38646,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -35040,7 +38685,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -35057,7 +38717,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, @@ -35078,7 +38753,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, @@ -35291,10 +38981,6 @@ pub mod api { } } } - pub mod parachains_assignment_provider { - use super::root_mod; - use super::runtime_types; - } pub mod coretime_assignment_provider { use super::root_mod; use super::runtime_types; @@ -35479,7 +39165,26 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -35507,7 +39212,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -35539,7 +39249,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -35561,7 +39274,18 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -35585,7 +39309,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -35607,7 +39334,23 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for Reserve { const PALLET: &'static str = "Registrar"; @@ -35623,7 +39366,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -35645,7 +39392,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::schedule_code_upgrade`]."] + #[doc = "Schedule a parachain upgrade."] + #[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, @@ -35670,7 +39420,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -35688,7 +39441,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, @@ -35710,7 +39482,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, @@ -35737,7 +39514,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, @@ -35753,7 +39533,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, @@ -35771,7 +39562,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, @@ -35787,7 +39581,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::tx::Payload { ::subxt::tx::Payload::new_static( "Registrar", @@ -35800,7 +39610,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, @@ -35816,7 +39630,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::schedule_code_upgrade`]."] + #[doc = "Schedule a parachain upgrade."] + #[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, @@ -35834,7 +39651,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, @@ -36155,7 +39975,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -36185,7 +40008,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -36207,7 +40032,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -36222,7 +40053,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, @@ -36249,7 +40083,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, @@ -36265,7 +40101,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, @@ -36496,7 +40338,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -36522,7 +40368,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -36557,7 +40418,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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::blocks::StaticExtrinsic for CancelAuction { const PALLET: &'static str = "Auctions"; @@ -36566,7 +40429,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, @@ -36587,7 +40454,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, @@ -36613,7 +40495,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::tx::Payload { ::subxt::tx::Payload::new_static( "Auctions", @@ -37105,7 +40989,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -37143,7 +41031,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -37172,7 +41061,23 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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)] @@ -37197,7 +41102,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -37220,7 +41129,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -37243,7 +41152,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -37281,7 +41192,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -37305,7 +41218,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -37327,7 +41242,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -37346,7 +41263,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, @@ -37374,7 +41295,8 @@ pub mod api { ], ) } - #[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, @@ -37397,7 +41319,23 @@ pub mod api { ], ) } - #[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, @@ -37414,7 +41352,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, @@ -37431,7 +41373,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, @@ -37448,7 +41390,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, @@ -37477,7 +41421,9 @@ pub mod api { ], ) } - #[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, @@ -37495,7 +41441,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) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "Crowdloan", @@ -37509,7 +41457,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, @@ -37991,7 +41941,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::request_core_count`]."] pub struct RequestCoreCount { pub count: request_core_count::Count, } @@ -38013,7 +41962,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::assign_core`]."] + #[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, @@ -38037,7 +41994,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::request_core_count`]."] pub fn request_core_count( &self, count: types::request_core_count::Count, @@ -38054,7 +42010,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::assign_core`]."] + #[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, @@ -38172,7 +42136,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::send`]."] pub struct Send { pub dest: ::std::boxed::Box, pub message: ::std::boxed::Box, @@ -38196,7 +42159,24 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub beneficiary: ::std::boxed::Box, @@ -38224,7 +42204,36 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub beneficiary: ::std::boxed::Box, @@ -38252,7 +42261,14 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub max_weight: execute::MaxWeight, @@ -38276,7 +42292,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub version: force_xcm_version::Version, @@ -38300,7 +42321,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -38322,7 +42347,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, } @@ -38344,7 +42372,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, } @@ -38366,7 +42399,36 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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 assets send 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: ::std::boxed::Box, pub beneficiary: @@ -38397,7 +42459,24 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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 assets send 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: ::std::boxed::Box, pub beneficiary: ::std::boxed::Box, @@ -38427,7 +42506,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -38449,7 +42531,39 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::transfer_assets`]."] + #[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 assets sent 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: ::std::boxed::Box, pub beneficiary: ::std::boxed::Box, @@ -38469,10 +42583,38 @@ pub mod api { const PALLET: &'static str = "XcmPallet"; const CALL: &'static str = "transfer_assets"; } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, + pub beneficiary: ::std::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::blocks::StaticExtrinsic for ClaimAssets { + const PALLET: &'static str = "XcmPallet"; + const CALL: &'static str = "claim_assets"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::send`]."] pub fn send( &self, dest: types::send::Dest, @@ -38493,7 +42635,24 @@ pub mod api { ], ) } - #[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, @@ -38517,7 +42676,36 @@ pub mod api { ], ) } - #[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, @@ -38542,7 +42730,14 @@ pub mod api { ], ) } - #[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, @@ -38563,7 +42758,12 @@ pub mod api { ], ) } - #[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, @@ -38583,7 +42783,11 @@ pub mod api { ], ) } - #[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, @@ -38600,7 +42804,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, @@ -38618,7 +42825,12 @@ pub mod api { ], ) } - #[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, @@ -38636,7 +42848,36 @@ pub mod api { ], ) } - #[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 assets send 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, @@ -38663,7 +42904,24 @@ pub mod api { ], ) } - #[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 assets send 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, @@ -38689,7 +42947,10 @@ pub mod api { ], ) } - #[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, @@ -38705,7 +42966,39 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_assets`]."] + #[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 assets sent 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, @@ -38732,6 +43025,32 @@ pub mod api { ], ) } + #[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::tx::Payload { + ::subxt::tx::Payload::new_static( + "XcmPallet", + "claim_assets", + types::ClaimAssets { + assets: ::std::boxed::Box::new(assets), + beneficiary: ::std::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 = "The `Event` enum of this pallet"] @@ -40068,7 +44387,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -40098,7 +44420,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -40128,7 +44458,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[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."] pub struct SetNewGenesis { pub delay_in_blocks: set_new_genesis::DelayInBlocks, } @@ -40143,7 +44476,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, @@ -40164,7 +44500,15 @@ pub mod api { ], ) } - #[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, @@ -40185,7 +44529,10 @@ pub mod api { ], ) } - #[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."] pub fn set_new_genesis( &self, delay_in_blocks: types::set_new_genesis::DelayInBlocks, @@ -40658,7 +45005,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::reap_identity`]."] + #[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, } @@ -40680,7 +45028,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::poke_deposit`]."] + #[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, } @@ -40695,7 +45044,8 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::reap_identity`]."] + #[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, @@ -40712,7 +45062,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::poke_deposit`]."] + #[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, @@ -40809,7 +45160,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -40834,7 +45189,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -40856,7 +45211,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -40878,7 +45233,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -40900,7 +45255,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -40924,7 +45282,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -40946,7 +45307,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, @@ -40963,7 +45328,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, @@ -40979,7 +45344,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, @@ -40996,7 +45361,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, @@ -41013,7 +45378,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, @@ -41033,7 +45401,10 @@ pub mod api { ], ) } - #[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, @@ -41083,7 +45454,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -41105,7 +45476,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -41129,7 +45502,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -41151,7 +45524,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -41173,7 +45546,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -41188,7 +45561,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, @@ -41204,7 +45577,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, @@ -41225,7 +45600,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, @@ -41242,7 +45617,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, @@ -41258,7 +45633,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, @@ -41680,7 +46055,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -41702,7 +46079,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -41717,7 +46096,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, @@ -41734,7 +46115,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, @@ -41882,7 +46265,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -41906,7 +46291,27 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -41934,7 +46339,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -41958,7 +46366,12 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -41984,7 +46397,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -42007,7 +46420,15 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, @@ -42026,7 +46447,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, @@ -42042,7 +46465,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, @@ -42065,7 +46508,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, @@ -42082,7 +46528,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, @@ -42104,7 +46555,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, @@ -42120,7 +46571,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, @@ -42395,7 +46854,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See `Pallet::fill_block`."] + #[doc = "A dispatch that will fill the block weight up to the given ratio."] pub struct FillBlock { pub ratio: fill_block::Ratio, } @@ -42417,7 +46876,6 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See `Pallet::trigger_defensive`."] pub struct TriggerDefensive; impl ::subxt::blocks::StaticExtrinsic for TriggerDefensive { const PALLET: &'static str = "RootTesting"; @@ -42426,7 +46884,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See `Pallet::fill_block`."] + #[doc = "A dispatch that will fill the block weight up to the given ratio."] pub fn fill_block( &self, ratio: types::fill_block::Ratio, @@ -42442,7 +46900,6 @@ pub mod api { ], ) } - #[doc = "See `Pallet::trigger_defensive`."] pub fn trigger_defensive(&self) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "RootTesting", @@ -42503,7 +46960,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, } @@ -42525,7 +46982,11 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, pub weight: sudo_unchecked_weight::Weight, @@ -42549,7 +47010,8 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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, } @@ -42571,7 +47033,10 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: 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: ::std::boxed::Box, @@ -42595,7 +47060,9 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] - #[doc = "See [`Pallet::remove_key`]."] + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] pub struct RemoveKey; impl ::subxt::blocks::StaticExtrinsic for RemoveKey { const PALLET: &'static str = "Sudo"; @@ -42604,7 +47071,7 @@ pub mod api { } 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) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "Sudo", @@ -42613,14 +47080,18 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 129u8, 167u8, 214u8, 9u8, 176u8, 203u8, 82u8, 70u8, 118u8, 155u8, - 220u8, 184u8, 74u8, 62u8, 231u8, 49u8, 151u8, 73u8, 97u8, 9u8, 254u8, - 88u8, 44u8, 197u8, 205u8, 60u8, 182u8, 226u8, 195u8, 245u8, 253u8, - 241u8, + 182u8, 237u8, 136u8, 248u8, 26u8, 98u8, 159u8, 249u8, 13u8, 148u8, + 154u8, 119u8, 136u8, 199u8, 18u8, 226u8, 185u8, 128u8, 7u8, 47u8, + 253u8, 37u8, 106u8, 90u8, 143u8, 110u8, 108u8, 93u8, 246u8, 222u8, + 212u8, 108u8, ], ) } - #[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, @@ -42634,13 +47105,14 @@ pub mod api { weight, }, [ - 29u8, 141u8, 94u8, 132u8, 67u8, 244u8, 164u8, 193u8, 22u8, 27u8, 211u8, - 2u8, 138u8, 11u8, 60u8, 46u8, 32u8, 62u8, 190u8, 74u8, 153u8, 171u8, - 78u8, 200u8, 16u8, 60u8, 158u8, 114u8, 139u8, 232u8, 52u8, 40u8, + 114u8, 10u8, 181u8, 185u8, 46u8, 86u8, 44u8, 238u8, 76u8, 203u8, 182u8, + 103u8, 147u8, 81u8, 36u8, 237u8, 70u8, 139u8, 182u8, 117u8, 204u8, 0u8, + 146u8, 132u8, 251u8, 162u8, 65u8, 192u8, 61u8, 0u8, 43u8, 94u8, ], ) } - #[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, @@ -42656,7 +47128,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, @@ -42670,13 +47145,15 @@ pub mod api { call: ::std::boxed::Box::new(call), }, [ - 173u8, 60u8, 217u8, 75u8, 249u8, 36u8, 21u8, 151u8, 225u8, 59u8, 148u8, - 137u8, 185u8, 252u8, 116u8, 231u8, 19u8, 27u8, 240u8, 9u8, 177u8, 20u8, - 216u8, 90u8, 87u8, 7u8, 78u8, 173u8, 57u8, 221u8, 223u8, 42u8, + 74u8, 180u8, 112u8, 113u8, 184u8, 0u8, 87u8, 59u8, 130u8, 8u8, 222u8, + 55u8, 165u8, 38u8, 147u8, 196u8, 218u8, 10u8, 219u8, 217u8, 103u8, + 150u8, 112u8, 190u8, 59u8, 170u8, 24u8, 84u8, 84u8, 50u8, 33u8, 62u8, ], ) } - #[doc = "See [`Pallet::remove_key`]."] + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] pub fn remove_key(&self) -> ::subxt::tx::Payload { ::subxt::tx::Payload::new_static( "Sudo", @@ -43299,25 +47776,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: ::std::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: ::std::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: ::std::vec::Vec<::core::primitive::u8>, }, #[codec(index = 4)] - #[doc = "See [`Pallet::set_storage`]."] + #[doc = "Set some items of storage."] set_storage { items: ::std::vec::Vec<( ::std::vec::Vec<::core::primitive::u8>, @@ -43325,29 +47807,50 @@ pub mod api { )>, }, #[codec(index = 5)] - #[doc = "See [`Pallet::kill_storage`]."] + #[doc = "Kill some items from storage."] kill_storage { keys: ::std::vec::Vec<::std::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: ::std::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: ::std::vec::Vec<::core::primitive::u8>, }, #[codec(index = 9)] - #[doc = "See [`Pallet::authorize_upgrade`]."] + #[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::utils::H256 }, #[codec(index = 10)] - #[doc = "See [`Pallet::authorize_upgrade_without_checks`]."] + #[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::utils::H256 }, #[codec(index = 11)] - #[doc = "See [`Pallet::apply_authorized_upgrade`]."] + #[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: ::std::vec::Vec<::core::primitive::u8>, }, @@ -43387,9 +47890,12 @@ pub mod api { #[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 = 7)] + #[codec(index = 8)] #[doc = "The submitted code is not authorized."] Unauthorized, } @@ -43540,7 +48046,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: ::std::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -43548,7 +48057,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: ::std::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -43556,7 +48068,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: ::std::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -43635,7 +48150,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: ::std::boxed::Box< runtime_types::sp_consensus_slots::EquivocationProof< @@ -43648,7 +48166,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: ::std::boxed::Box< runtime_types::sp_consensus_slots::EquivocationProof< @@ -43661,7 +48186,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, }, @@ -43710,14 +48238,21 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, #[codec(compact)] 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, dest: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, @@ -43725,38 +48260,72 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, #[codec(compact)] 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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 = "possibililty of churn)."] upgrade_accounts { who: ::std::vec::Vec<::subxt::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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, #[codec(compact)] new_free: ::core::primitive::u128, }, #[codec(index = 9)] - #[doc = "See [`Pallet::force_adjust_total_issuance`]."] + #[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)] @@ -43776,14 +48345,21 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call2 { #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, #[codec(compact)] 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, dest: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, @@ -43791,38 +48367,72 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, #[codec(compact)] 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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 = "possibililty of churn)."] upgrade_accounts { who: ::std::vec::Vec<::subxt::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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, #[codec(compact)] new_free: ::core::primitive::u128, }, #[codec(index = 9)] - #[doc = "See [`Pallet::force_adjust_total_issuance`]."] + #[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)] @@ -44338,7 +48948,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: ::std::boxed::Box< runtime_types::sp_consensus_beefy::EquivocationProof< @@ -44350,7 +48963,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: ::std::boxed::Box< runtime_types::sp_consensus_beefy::EquivocationProof< @@ -44362,7 +48983,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, }, @@ -44411,20 +49035,42 @@ 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, description: ::std::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, @@ -44433,38 +49079,92 @@ 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, beneficiary: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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, @@ -44669,7 +49369,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, @@ -44678,7 +49396,21 @@ pub mod api { description: ::std::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, @@ -44689,7 +49421,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, @@ -44697,7 +49447,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, @@ -44705,7 +49488,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, @@ -44714,7 +49513,22 @@ pub mod api { beneficiary: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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, @@ -44722,7 +49536,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, @@ -44881,7 +49716,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, @@ -44890,7 +49733,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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, @@ -44898,22 +49763,86 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, class: ::core::primitive::u16, @@ -45145,7 +50074,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: ::std::boxed::Box< runtime_types::sp_consensus_grandpa::EquivocationProof< @@ -45156,7 +50088,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: ::std::boxed::Box< runtime_types::sp_consensus_grandpa::EquivocationProof< @@ -45167,7 +50107,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, @@ -45322,18 +50273,41 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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: ::std::boxed::Box, }, #[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: ::std::vec::Vec<( ::subxt::utils::AccountId32, @@ -45341,10 +50315,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, @@ -45352,10 +50348,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, @@ -45363,21 +50374,47 @@ 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, new: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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: ::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, @@ -45388,44 +50425,90 @@ pub mod api { identity: ::subxt::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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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 = "See [`Pallet::add_username_authority`]."] + #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, suffix: ::std::vec::Vec<::core::primitive::u8>, allocation: ::core::primitive::u32, }, #[codec(index = 16)] - #[doc = "See [`Pallet::remove_username_authority`]."] + #[doc = "Remove `authority` from the username authorities."] remove_username_authority { authority: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[codec(index = 17)] - #[doc = "See [`Pallet::set_username_for`]."] + #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, username: ::std::vec::Vec<::core::primitive::u8>, @@ -45433,28 +50516,32 @@ pub mod api { ::core::option::Option, }, #[codec(index = 18)] - #[doc = "See [`Pallet::accept_username`]."] + #[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::BoundedVec< ::core::primitive::u8, >, }, #[codec(index = 19)] - #[doc = "See [`Pallet::remove_expired_approval`]."] + #[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::BoundedVec< ::core::primitive::u8, >, }, #[codec(index = 20)] - #[doc = "See [`Pallet::set_primary_username`]."] + #[doc = "Set a given username as the primary. The username should include the suffix."] set_primary_username { username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, }, #[codec(index = 21)] - #[doc = "See [`Pallet::remove_dangling_username`]."] + #[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::BoundedVec< ::core::primitive::u8, @@ -45855,26 +50942,82 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, index: ::core::primitive::u32, 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( @@ -45951,7 +51094,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[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 :: codec :: Decode, :: subxt :: ext :: codec :: Encode, @@ -46083,13 +51226,62 @@ 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: ::std::vec::Vec<::subxt::utils::AccountId32>, call: ::std::boxed::Box, }, #[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: ::std::vec::Vec<::subxt::utils::AccountId32>, @@ -46100,7 +51292,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: ::std::vec::Vec<::subxt::utils::AccountId32>, @@ -46111,7 +51332,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: ::std::vec::Vec<::subxt::utils::AccountId32>, @@ -46287,24 +51528,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, @@ -46313,19 +51579,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, @@ -46544,21 +51815,36 @@ 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: ::std::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::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::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::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: ::std::vec::Vec<::subxt::utils::H256>, }, @@ -46701,7 +51987,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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, force_proxy_type: @@ -46709,31 +52003,82 @@ pub mod api { call: ::std::boxed::Box, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, proxy_type: runtime_types::rococo_runtime::ProxyType, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, proxy_type: runtime_types::rococo_runtime::ProxyType, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, proxy_type: runtime_types::rococo_runtime::ProxyType, @@ -46744,25 +52089,67 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, call_hash: ::subxt::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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, call_hash: ::subxt::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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, call_hash: ::subxt::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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, real: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, @@ -46908,40 +52295,85 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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 = "See [`Pallet::exchange_member`]."] + #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, new_who: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, @@ -47097,50 +52529,134 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, call: ::std::boxed::Box, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, rescuer: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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: ::std::vec::Vec<::subxt::utils::AccountId32>, threshold: ::core::primitive::u16, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, rescuer: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, @@ -47304,7 +52820,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: ::std::boxed::Box, @@ -47318,28 +52842,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::utils::H256>, @@ -47358,7 +52928,15 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call2 { #[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: ::std::boxed::Box, @@ -47372,28 +52950,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::utils::H256>, @@ -47931,12 +53555,11 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See `Pallet::fill_block`."] + #[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)] - #[doc = "See `Pallet::trigger_defensive`."] trigger_defensive, } #[derive( @@ -47974,7 +53597,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<( @@ -47985,13 +53608,13 @@ pub mod api { call: ::std::boxed::Box, }, #[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, @@ -48003,12 +53626,12 @@ pub mod api { call: ::std::boxed::Box, }, #[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<( @@ -48019,7 +53642,7 @@ pub mod api { call: ::std::boxed::Box, }, #[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, @@ -48031,26 +53654,48 @@ pub mod api { call: ::std::boxed::Box, }, #[codec(index = 6)] - #[doc = "See [`Pallet::set_retry`]."] + #[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 = "See [`Pallet::set_retry_named`]."] + #[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 = "See [`Pallet::cancel_retry`]."] + #[doc = "Removes the retry configuration of a task."] cancel_retry { task: (::core::primitive::u32, ::core::primitive::u32), }, #[codec(index = 9)] - #[doc = "See [`Pallet::cancel_retry_named`]."] + #[doc = "Cancel the retry configuration of a named task."] cancel_retry_named { id: [::core::primitive::u8; 32usize], }, @@ -48208,13 +53853,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: ::std::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( @@ -48283,38 +53947,113 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, value: ::core::primitive::u128, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, max_members: ::core::primitive::u32, @@ -48324,16 +54063,44 @@ pub mod api { rules: ::std::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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, 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, @@ -48341,37 +54108,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::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::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::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::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, @@ -48762,14 +54547,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, @@ -48777,25 +54584,41 @@ 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: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, 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: ::std::vec::Vec<::core::primitive::u8>, child_keys: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, 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: @@ -48978,29 +54801,39 @@ 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: ::std::boxed::Box, }, #[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: ::std::boxed::Box, 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, call: ::std::boxed::Box, }, #[codec(index = 4)] - #[doc = "See [`Pallet::remove_key`]."] + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] remove_key, } #[derive( @@ -49072,7 +54905,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, @@ -49200,39 +55051,145 @@ 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, beneficiary: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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, beneficiary: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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: ::std::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -49243,13 +55200,64 @@ pub mod api { 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( @@ -49465,34 +55473,97 @@ 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: ::std::vec::Vec, }, #[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: ::std::boxed::Box, }, #[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: ::std::vec::Vec, }, #[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: ::std::boxed::Box, call: ::std::boxed::Box, }, #[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: ::std::vec::Vec, }, #[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: ::std::boxed::Box, weight: runtime_types::sp_weights::weight_v2::Weight, @@ -49573,15 +55644,45 @@ 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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, }, #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, schedule: runtime_types::pallet_vesting::vesting_info::VestingInfo< @@ -49590,7 +55691,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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, target: ::subxt::utils::MultiAddress<::subxt::utils::AccountId32, ()>, @@ -49600,13 +55714,38 @@ 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 = "See [`Pallet::force_remove_vesting_schedule`]."] + #[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::utils::MultiAddress<::subxt::utils::AccountId32, ()>, schedule_index: ::core::primitive::u32, @@ -49719,20 +55858,16 @@ 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::utils::H256 }, #[codec(index = 1)] - #[doc = "See [`Pallet::remove_whitelisted_call`]."] remove_whitelisted_call { call_hash: ::subxt::utils::H256 }, #[codec(index = 2)] - #[doc = "See [`Pallet::dispatch_whitelisted_call`]."] dispatch_whitelisted_call { call_hash: ::subxt::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: ::std::boxed::Box, }, @@ -49811,13 +55946,29 @@ 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: ::std::boxed::Box, message: ::std::boxed::Box, }, #[codec(index = 1)] - #[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."] teleport_assets { dest: ::std::boxed::Box, beneficiary: ::std::boxed::Box, @@ -49825,7 +55976,36 @@ pub mod api { fee_asset_item: ::core::primitive::u32, }, #[codec(index = 2)] - #[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."] reserve_transfer_assets { dest: ::std::boxed::Box, beneficiary: ::std::boxed::Box, @@ -49833,35 +56013,88 @@ pub mod api { fee_asset_item: ::core::primitive::u32, }, #[codec(index = 3)] - #[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."] execute { message: ::std::boxed::Box, max_weight: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 4)] - #[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."] force_xcm_version { location: ::std::boxed::Box, version: ::core::primitive::u32, }, #[codec(index = 5)] - #[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."] force_default_xcm_version { maybe_xcm_version: ::core::option::Option<::core::primitive::u32>, }, #[codec(index = 6)] - #[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."] force_subscribe_version_notify { location: ::std::boxed::Box, }, #[codec(index = 7)] - #[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."] force_unsubscribe_version_notify { location: ::std::boxed::Box, }, #[codec(index = 8)] - #[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 assets send 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: ::std::boxed::Box, beneficiary: ::std::boxed::Box, @@ -49870,7 +56103,24 @@ pub mod api { weight_limit: runtime_types::xcm::v3::WeightLimit, }, #[codec(index = 9)] - #[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 assets send 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: ::std::boxed::Box, beneficiary: ::std::boxed::Box, @@ -49879,10 +56129,45 @@ pub mod api { weight_limit: runtime_types::xcm::v3::WeightLimit, }, #[codec(index = 10)] - #[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."] force_suspension { suspended: ::core::primitive::bool }, #[codec(index = 11)] - #[doc = "See [`Pallet::transfer_assets`]."] + #[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 assets sent 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: ::std::boxed::Box, beneficiary: ::std::boxed::Box, @@ -49890,6 +56175,17 @@ pub mod api { 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: ::std::boxed::Box, + beneficiary: ::std::boxed::Box, + }, } #[derive( :: subxt :: ext :: codec :: Decode, @@ -51290,6 +57586,31 @@ pub mod api { pub struct ApprovalVotingParams { pub max_approval_coalesce_count: ::core::primitive::u32, } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: 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, + } } } pub mod polkadot_runtime_common { @@ -51310,7 +57631,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[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 :: codec :: Decode, :: subxt :: ext :: codec :: Encode, @@ -51432,7 +57753,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, @@ -51440,7 +57765,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, @@ -51454,7 +57794,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( @@ -51574,14 +57916,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::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, @@ -51595,7 +57974,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::utils::AccountId32, ethereum_signature: @@ -51603,12 +58008,29 @@ pub mod api { statement: ::std::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: ::std::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, @@ -51725,7 +58147,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, @@ -51741,7 +58167,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, @@ -51751,26 +58178,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::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, @@ -51786,18 +58235,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: ::std::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, @@ -52024,10 +58479,12 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::reap_identity`]."] + #[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::utils::AccountId32 }, #[codec(index = 1)] - #[doc = "See [`Pallet::poke_deposit`]."] + #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"] + #[doc = "Instruction."] poke_deposit { who: ::subxt::utils::AccountId32 }, } #[derive( @@ -52097,7 +58554,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[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 :: 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 :: 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 = "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 :: codec :: Decode, :: subxt :: ext :: codec :: Encode, @@ -52221,35 +58678,45 @@ 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: ::std::boxed::Box, }, #[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, @@ -52317,7 +58784,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::utils::AccountId32, @@ -52326,12 +58796,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, }, @@ -52526,13 +59004,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, @@ -52631,7 +59139,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[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_coretime_cores`]."] set_coretime_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 = 53)] # [doc = "See [`Pallet::set_node_feature`]."] set_node_feature { index : :: core :: primitive :: u8 , value : :: core :: primitive :: bool , } , # [codec (index = 54)] # [doc = "See [`Pallet::set_approval_voting_params`]."] set_approval_voting_params { new : runtime_types :: polkadot_primitives :: vstaging :: ApprovalVotingParams , } , } + # [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 :: v6 :: async_backing :: AsyncBackingParams , } , # [codec (index = 46)] # [doc = "Set PVF executor parameters."] set_executor_params { new : runtime_types :: polkadot_primitives :: v6 :: 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 :: vstaging :: ApprovalVotingParams , } , # [codec (index = 55)] # [doc = "Set scheduler-params."] set_scheduler_params { new : runtime_types :: polkadot_primitives :: vstaging :: SchedulerParams < :: core :: primitive :: u32 > , } , } #[derive( :: subxt :: ext :: codec :: Decode, :: subxt :: ext :: codec :: Encode, @@ -52683,19 +59191,6 @@ pub mod api { pub executor_params: runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams, pub code_retention_period: _0, - pub coretime_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, @@ -52713,6 +59208,8 @@ pub mod api { >, pub approval_voting_params: runtime_types::polkadot_primitives::vstaging::ApprovalVotingParams, + pub scheduler_params: + runtime_types::polkadot_primitives::vstaging::SchedulerParams<_0>, } } pub mod coretime { @@ -52731,7 +59228,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 1)] # [doc = "See [`Pallet::request_core_count`]."] request_core_count { count : :: core :: primitive :: u16 , } , # [codec (index = 4)] # [doc = "See [`Pallet::assign_core`]."] assign_core { core : :: core :: primitive :: u16 , begin : :: core :: primitive :: u32 , assignment : :: std :: 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 > , } , } + # [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 : :: std :: 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 :: codec :: Decode, :: subxt :: ext :: codec :: Encode, @@ -52788,7 +59285,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( @@ -52881,7 +59377,6 @@ 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: ::std::boxed::Box< runtime_types::polkadot_primitives::v6::slashing::DisputeProof, @@ -52972,7 +59467,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[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 , } , } #[derive( :: subxt :: ext :: codec :: Decode, :: subxt :: ext :: codec :: Encode, @@ -53355,7 +59850,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 }, } } @@ -53415,7 +59912,7 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] #[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 :: v6 :: PvfCheckStatement , signature : runtime_types :: polkadot_primitives :: v6 :: 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 :: codec :: Decode, :: subxt :: ext :: codec :: Encode, @@ -53634,7 +60131,7 @@ 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< runtime_types::sp_runtime::generic::header::Header< @@ -53864,12 +60361,16 @@ 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: ::std::vec::Vec<::subxt::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: ::std::vec::Vec<::subxt::utils::AccountId32>, }, @@ -55911,6 +62412,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] + pub enum ExtrinsicInclusionMode { + #[codec(index = 0)] + AllExtrinsics, + #[codec(index = 1)] + OnlyInherents, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + :: subxt :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: scale_encode")] pub struct ModuleError { pub index: ::core::primitive::u8, pub error: [::core::primitive::u8; 4usize],