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 ddde0b5f46..070797601a 100644 Binary files a/artifacts/polkadot_metadata_full.scale and b/artifacts/polkadot_metadata_full.scale differ diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index af3db68469..8f750277f4 100644 Binary files a/artifacts/polkadot_metadata_small.scale and b/artifacts/polkadot_metadata_small.scale differ diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index bd9195401d..c3525c9aa2 100644 Binary files a/artifacts/polkadot_metadata_tiny.scale and b/artifacts/polkadot_metadata_tiny.scale differ 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],