From 1f12320d5012078fd7d046668a2ce0ece37b4661 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 6 Mar 2023 20:29:40 +0200 Subject: [PATCH] Collect type ID from metadata pallet Signed-off-by: Alexandru Vasile --- .gitignore | 1 + Cargo.lock | 8 +- artifacts/polkadot_metadata.scale | Bin 356565 -> 461358 bytes codegen/Cargo.toml | 2 +- examples/examples/check.rs | 30 + examples/examples/pallet_metadata.rs | 0 md.json | 68187 +++++++++++++++++++++++++ metadata/src/lib.rs | 2 + metadata/src/stripped.rs | 232 + metadata/types.json | 207 + subxt/Cargo.toml | 2 +- 11 files changed, 68665 insertions(+), 6 deletions(-) create mode 100644 examples/examples/check.rs create mode 100644 examples/examples/pallet_metadata.rs create mode 100644 md.json create mode 100644 metadata/src/stripped.rs create mode 100644 metadata/types.json diff --git a/.gitignore b/.gitignore index 40fe9a994f..9dd555344e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /target +/**/target **/*.rs.bk **/.DS_Store cargo-timing* \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 7d36a731d5..ef2fa31be2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3554,18 +3554,18 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e" dependencies = [ "proc-macro2", "quote", diff --git a/artifacts/polkadot_metadata.scale b/artifacts/polkadot_metadata.scale index b0d3e7de879b563b10e38c65ea021b0e15d015bc..188662e32c3e145eb959e57a5dfbdfbc2d0e2b28 100644 GIT binary patch literal 461358 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 &b*aGC$;U^#uoh<-+ty;&fEm>Eyu_w{cP= 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
  • T**6ud`H|oh>7qo05@<7+F=SgD#QQ< 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�X>*dWPgeEn5bYM#-oXXbUKb%5Joqqck<8|L308bBAM?`ae2qgNblhJwteu zMzrfAU^Lx7g~D7n5V2>mBHI$?Pp8mhS}=+|Gs(+%mMQXNF>A%smCAZ?5PJl00Jrr9 zo0W(r*mLYF6~|B6tgr4qc<|hPMlrthon0~`{_3}J%d+{cFO-5#LWrkq$I!pWo`A!D zrgpkg+UvBS_w4@s&cYfAjYfj;>wbA8v=rfKrMn~<|HJqE?(*YZbAJ;joaE>J=vTgb z?<3#&V|jP*-`)77^v^!{tGoIAd!KmhSN_!(|N0d>`TeKA{4>A&@-G~kB(_xYt;aw6 z(ZBbXzx5p{fAg<@;;$Aen0f9SNHzI2mZ~JeE-Oo|FHkJe(#^&A-{ifbXR@fPyEYYmfunzdynEfobRh% z`H)S!nrg!J$?NM9!NxT-$?U6oAlXMVXZXHBTFS8ux#>$ogEN^wpL1R5PZ%f zH{uFDQnm^|*=Srpa=2E*z|0vr`oh`*yhMgj@JR9qr4i{NRL%O?zZ?LEDMG1To zgIaXfN&0GN3?PN(;^~`E7ascp6CG!GqZrjz{Cxuyw zQl>aat=?B3-lGg{RCFa(seVf5s+Kq+Fj_Wxz1osy z(xbO^Uy;uMR;sf0)U?_^J~f8PHeMg&07MKEqg=z??5ggkq7xFdi{7nm0PB$EOKMl> zei#U0u*oo;LxU6&>xC()z|>tzAamon;W7f*`lXI>^Wq@n1nnU=LhXOPIpAU2N1GUz z+8z{S4ts?3B6e&OhEy!m5G0% zT1o_L4J-Q9N>2GPD@3>46NH+{?nn2MKDEP@RU-@1b}881V8z8r^5Qw5dp)g&CjyqD z7w}BDqBAI*zF2D?%&{SBta)s%D48A?$chvx-QuG*N83^FNN0Z%DA;yYRWF5=6gWsb zWWJtBtF`juWkOxq+t??EP2dA=+%A1pwO9@Whfye%l-dlMFN--Rk5w-t-`=ap(Z&ZF zm`=Ka(=C#yr{fDz`d`!rkg_h}vozKFb}gk*vQ5F^6jLaNKhhOP*7Q}H-ZeRf@P0?N zwrl&wO*?mQxOjVS-_Bhd`g$(jzPoqRMcX!Q@7uj~)Aoz{w$!rZk?O@z4OkThkfjML zl|TT&d^KHC-R)`|^vm zeJbnf$=hF1+;S5mw*%&w6F3z*LUe}Pq_t${oLqhZGkJyCY|8>eX3Uxj&uiH9DAh>H z75*?;vEJ^~9=Fubm^$fH37{ZZkzingL7&~~IC<&#-U74Iq@Hq5m-esI@MdzsNl+g; zRG(7gK0Z5Hn-n13|Wn>-)k?QXDW8MbZ z%p!vu{s75Rvbe_)hZrDHv@DV_5|#ek$CdL78$sw6f$6-%xL}ZtUBXaZ$4kyShG%X2 zidAN;E#hM>V=sh^%*KID2258cKMYED{qLI%Zv4jD}0Xy_r?FvNf0O&fXS1P~AfN0wI+>9f2EA zT)x&}oMRF_?g7+axLqcRn5ykh2}26pl!yubG#{q0?sR@UE5g%8C&x}o5s|Y{Usffn z*fM0DJw-O^)2W*l?HEn5lRx4%WNEN1-Cuw>XeFL0>&_@?hcij|2me80CCTk#4#+cM z9{5|5Vj^5&as-Lt8>dF!NHz2pPt%#yh$r9!VAGs9d&}8^9put#NZE90G;`_|k2kgP zUz@ip&I1dwMcGoF?BuiqyXgJ#aJ7?8W2PzXh5PK$l|P(Ytu!rc6vitbBUm5QiDqM2 zwz}7G%N|Ab`xtPkF2mnt9ymc-(;5-3TDdY}VvfC>t1pYI?VDqv^915f_6svnPzOpz zABpYAs3RbBmS9yF;{$-^G|IKWpwpQ`MHA11!J`&66?J)1bI;cA&q=)zc3?(> z9gPLV0eCTNLqt}e0Ib%PXb>YAB(qM^0N0i$NXIp?W>H7{YraHL(V<|2-9`Y#?rzN& z&^T-(1_@zD9Nx^*(}?-3wj>k2ZM?9^ z)_1Sp6uAlXZXKvVM>v-~4O4YSZqJDkj*srCbGw|of(t0%lRQX|83Dn#3K=dZ&zA!Bsa0xT)`(R;-5#yr70;<;fYZCb~ENZK&E2{i8 zcak@6wzu+?;|nk}G}+-19IIVlW=)DpDs`oTekCU!j;Cm?=*`0Xb=P)dApN8HbC&89 zIMCs-wD{QGv3>MVi`9KYZcN)jOy|P}^=#?J!GT?45KzNBnQeCv5A9ext6!RD$dOd!i3PYcrZQ(5Dj&bY>s_Odr@mgD z+MJ+)o;W}8vBAA|`LBY22GZs6P?w|Kgn^8XbV@do@Fn1^j3mxWoj3SWy<9=AE2u|< zYRtlepJC`V`Q2+Ci~tx|GG-ixj}|gIejv(z*25}dWWqIn0>vUkpIMN~s*P-)+oRpE z1n4~|b9)*$Q+I@^s4X&7SUmhF_?V>=szY}(OXhYuPKdXrrO$1P{d?g^(l$`_zX`XZ zP_>0*f_vK%>@G3SG=6BS2G=upZ?(;-d{PF2yNkKA@c=rGX_qEkw9yc4&eEPa>5;a0 zv+3e>$+}lmzWZ`NTAS!rJKfO5ELzsWGTAqj5}`($oq^EG($CJH7aPhn)BMw-)fN-( zX*MU-;-2fl*A)}^CxW&@B5U!9TCV6R{k0||Dnh#!n9tVr$n-^HecZty^68@iMd?8k z(7cvB0B2?xL-u$>jfwbtrk2qEqBNbp;wSs}T3A%*wG*JmQo&BwQbZIeWrJEo}Qg4L}pe z0*|3#vFuC0a&zE9^J+RzP=lDRET(~mZX(4U77jHWArfgwL?G4I4m$9rfDN|o=5SiA zl_6a7JcPRS`jjd!42c86vFoPCQ~qaa*H4%ceX16bFv2ZbPAHO6|7yJ~+OdGhBg%sz zN4|2KQHp2Q9Tl0G>S)-WMZp6P7hiOw=acEIGseyqZAJgEuyyihGB)l+XPrW;Mr$3w z392CR0cpJ!SN?6Dtf&W+Mt5?fhrqu=lmd&!AD}P51$k zg_}yauda!iln8@WrE)gBsQpnNWkyKL0p^OW8)H@$YpQZiPT7~ZXb3A1t*d_m!Prm^ z5>8{U+sw_25V%5N;QA)h8@pIVgp)6%4WFu*@9>P3DEwQ3oh_-KZOyix^qceNZ|TF8 z*A$-~9SMnG=`7#1Z%+UyUESMYN0WqBYbrfB|d~EJ{$#lJg}$#z~v#@=KW3RnI!hA_j4_Z^2!w zFs;KH85ch)EY{zt$LAqn*AO*jAW>>6&XZqIqHYd0bE>}T40>ul^-=5sG$KX)hFt` z3||~3))}pqWrZ5!v`TsnP zGR>53B`t69tyNkoG{$jmLojGeU|zJUf^(DgQkYKH=PcP(xMDaM5;^Tz!WsjUY_s3J z-P&IPWW|>D5Q&wc6%I%aQtwm}jT4NcI(LdGLCRtm0;>zpkaPr*i%npm%6lL;zoIb= zsf1nGA09^lu(}FIYysk#9D~I->cb=y3RD&)P;8i3(#qhAaBwBJBJR%5O-su&$<}!9 zg5J@gNwJ6|`JRO01!?}+9_2$&&~HDZ`aqCckQz+;=dRf0K&()BsaOb)Ov0Apn!v#k zGAs9wP9({Xn4n`U|H9QEK~qSr6UgKfkIIL)yT&6hOHf5`g!OpRjEw&n(y-|T2Z{dx znv4djO>R3G=(GD=o0i|&@%d`_wq(EKbHR2tzHd+s*uv?AC4Pull7y;XCvFaKh_2(GLd=EiqwS0_(ms)1fRo?hXix#lEB zu__yfW8&e`)J3^DR&&cy+7!>*(Q=Gn71*b~)cYcU4ZUs1ESa?AN)%IRU}M71;#X}v zAF3|1j~*C|#uCnRl=Vq@%yU7FS~y)f%snBx0W-@tkdtZdB@3ux#{$M?9E9$&GA4mv zsfb^hCll)yS9qLrrKx%5n^>78gBH_6T_OBq8J@<5r-QJ^jq;56VCOOm`FOJv(I2TQ zBqs@J1%$@Ld29o6!PG^==%+hMKbk<{Q9z82fiz7V9M;%QA;r@4q{-@QYYm9LKJ6%* z*l)G2N1?IUY$fP70y%!FLqz!9v28I-*Y8ClE^y`d%C4F|XxLnuoVcJZS&WU+4XrE7 z0{$MhRiuj6I-4}h!y{@wi`~vRhG>Oh$ zYp3B+1@k(C890HY<5x-9HHPQ9$jCliGEK+U5~he98f%n4(onhhu?fyfF9p%DI)E|S z%szG^7i!}L3@%5i&|QcUJUrtY9Pi}B=!#tOX(~e`EdZ}O^f``AZV^fWSKeYo5jrtW z$9|{}eZ>95B54m@v}U&;51>E!h8tcpFi!7w_j2wcj)%rc(`zAll6;70vPX=Mq$iY6*xQ?iCK^ zzt)?Ft7qV7X3jGNJ`ti%9u{J65?7dl7I+)}g@P+JD;1@;F8S&#sk;FaOKjW$k#q6}-el9) zv1+AJNLOX6^@F2?Lh1t&>f#~B?@%E08B&YdLd>gki-p()@yDP`OCysWVo6Rg3&IdR zTvL(jC>Z*VmBmH^d$pR4sNG0Y77p`w6Ml@cw@QHe(GZm>{S*^gTGppn_HHqh-MDX> zVp>83$nIFP2Q5XwP#TOL7YkB^*aL5(r;)~?xE#A;NF_C0N5!)YTS~~HCnJt{hK1`M z-1rAyk`*#W#YKO1z5|1U^+f6Fx~FwsS9@D20e#Us^7AcHr6o38PzUBP3)cjY(4{Yi_&&kfwQ;YzeT_aNQpb!s zd0G_jvTI?R6Dxf@Ki73R0H_0y6W2<{UCO&I%5hw+bu4myHm3=WVSGF$Y1* z8G)gS4Pk)VX?G*7CjdH&&+&SKGZ25c#6srn4ES#JVS?ZC7~|aF$ z6;(cP-^1)W{%O0JBuSFR_z|7QT&1SY&sbKrwPjt7LyR}=4++j1FW}GPkGK(B++vSzSfxmC+~=rECi5pF7uKS<*j zc9=e-=H3Q@}^LR9J4j)AH>vQ-b$^s+;uk%a)s0e z<|6O7SM~P`rY&jml^4+4um$}JSBFij#~D1gbZ6Ucr)YXmmnj0khr#K}Ima6FkUz%C zkyU|3+dS;X9G)}TnYE)%ygki^! zm9DiiGkBvWlH}hy&duaoiPS@TPgv9h{|uWdo;;R5XTicH zy_^q{C5<26vF1{8D3KteFfQ0+G`-tyw8KCFgcTP@;jvFKWPeAu3AsjkjA6Q|atVR? zVicmF)|b~s)F5mbvnyOF4{$l-k^U(uphR5c3U+kEbqsT}n|CIM*rqUo)TeDJ?g{zG z3DXqo@`JTByO{db9HNXyLeAW2{Y2KM>;@^u#L;ZlF-??Z9N@naMq_Frz0h1Ns>Lom zffS}1xE@X}7!HZ)ys+O>M~1aoK-P(N@5u!6FBc{utv$zYg>()UTktYR#I^-LoPBe8 zH2R)sW{X3&V{9r#8wgfEgR#aZMavhjGO#p{{A4|4lp2QHg$BT8Ngo*zJ zwG)I>dvy!_$uk@IXQo`14Wq-s@0BKQqI5jmI`*&#Qey$O@TjA8zHGBE<;%&EBhuDn zlmTcGyX8dpGPdCM%NB1{%>Xy+(n;WStn;=_(@?3?8)oa)$}^z7fHyO7ijoe={(W40 z==v)5k`r{ch%i~Bp#bxRNN7yvFikBJl59NU6uD2A{X-95Z2?$rwm^A&?a z!ll4t<$0i@xp0vLB|GqR!9W+{X`7s1*(Q*#uILPiR$!R(=NPihxUK>6kVH`?(7fav zkZlVtt(HT`DSZa$2gf5h!TQVRz=Q;FVcI&Md}n4hOk8dZ8x@38WcAI-FL<#ZCy zPBwavBMt}3PD&8XOO1_1(SKxxIlfHmK&uK_1Pz>yC3U}kIBZoy3jG_ZDP<%x0b}4x zlhl$$W-2{N5>l5jVzgvb;2aW7Y&iXh87S*m&Uz6Fvxjxs8-Pb>%HVi@xQPPy4ct`? ziU%79ZMmM%UK0t!Wt+QsyoSFL-;}~Z;IrvGOdcWvihOzvAY%hpT;M1~I%T{-1_iCZ zPlSxL^L4Z85`=(Cv5R2bo0H2k`x$D5ZKn%EJe0sqvE&tnmCwv&inH1$Tjt;d5|7Q6 zIu)3&H;+kyy5=RDsFv?4ET4-xD@;9;Ax0IT1E98ct$f%5PqTAbW(0!nW#A0ImB02< z^iVvLCl0c6gIK)Wl9fW9D6{*e8nL$WFGLPrZfq?P$2nGN%1ng zHHa7_vxJ$qB3_2%u~%Y}<$wyqOD7QoZp&HOicqfHi`S2@R5AX+VNxRo!46=FSMN?? zIqC&V)&sk(nFR{X3cpL*@0C7ARW^i)MhX=A?UKM;47KsCcvodvTr^ujIr~ z0IZL@50P`pBhInWQS+7xL3KeJhCZ{UuK3s@Ukt;pJYcH~5BVZZ*OfwUK_arO~1=9me!0h(zy%TW@bI+(N`Iea99i z-%FYF+O_#k;lo+qrtx~SSL?|iWR(_|sIawFzC=>Zih2iyG~915&}&}XPcDp2m8)&( z>Fv9C=M}p*ZrVYSo*pBNQExE;@h~buOrzKcQjy|J&Y9!i9CQ|qE#`9wIoOvS&8OE) zk_5FY3v41Qyk$LIF$}(GynZ!Tmhe9T0e3CRQ2V@j-3wNv9e61gA0~qnTS^`}0G&fl zAYh&nyQChMEKFrc?9LP)BbKV11YjI+_S{upa zeB^aj|D~$D1L$@+GjkuBU2U6F2)$d>E=8t=11Eb9^~_RpJXYn^h&4-P4&n@7vGqMM z+>W3DY|;;q$(DtP-k&Ll&-WGmh+d$t_Xf|>B@WCA8!+_FcO;!2-(^cGL_{2(5BX#N zm*Y(i{vD`6k)UK>EINtiGoEs$V{AbJ30vUltWrQMD>-G_b2buzAAv_hkN?xq+bSH+ z_v+|pjB_#OT*x5zB>94G=wuxQa@=?vc6mAp8RBN9%%~nzbWJJ*syl=*bqv~8CYTJ5zf+L~s%hugh;%Rw1D?MBW;ld@yO5PF9-`nykOK&V2IA@h%zc~gR8uguiE=^ezm;GbKsYfan!MEWT2dfYRjo*TQ|t>#t-&)91pOd z*_=}Crv{CraHm+&8y-f#3lO5s7oJ<2BI?>=|5QDhF9 zI_Fp+jc`2cbeEve4DTliY89}zTXu&vSFU^VQ0!YrtbnJyn{Ca-?Tq!n_0&G&7|Y2e;1gTUjEPsQ`W2$mC5vONV^N1VQ3y0O4Ny)C zHf=D!18L|`w6Lx_t6cZ%Wh}u*ap~(^#h(E-X)N2ddiL56a9m<`N>tt%A-<$`gvRIfBRJpR|?{U|V*#K+T zhP7;~kHEyn*RI8_5P!s=*hPU# zgq2tTd}}%tS&H%w#iHC!F;3aqA&{G=y@xT(c zEpqPi3_0WB5_0kI4f;=a4+t}+AL?1C)ij71J|3-#(Y<5BB>EVca8(3f)dPD z@*w|nIfYkLUJ+E00RR$DC6;p+0FvE-9%mg)L9+aG$;fBDdt4$k8};%2{R%88Uma&1 z;6~Zkup?xXg9X|WXwl>*NcmXur6H(EeA|71K`2?skDKJ7(!L$Vicjf91ILr8fqC92>v&0yv?KI%WL#c z3g(}ctIZfTI!c*nm|V-w8aB^zd%d`m_hJw;0i4{X%dOS-WMlq6QE3lS1B@i;q z(OKBbyi~g~Ag&9)g=w`sD)>X3j zwg1f(;abaZ6yG3eU*O8%vYRG1{T8Jp4uN>(z1G}A(E8mrbCus#Zgo{w7 zkhnk$0|!0;0zf8|182=1tM;hBN{Q!93zC=M?vK_=y2OR|l;MYJ5sqj#jl={d6&TbS>5D5Hdak?l0ls->_ros*Va*wkUR)X5xI4ZB-Tad&->?#-?V)`tWbz}~R%LAEA{ zWu-De5S5DhMYfHVNI0OGQ$9GDoiFW}Ibw2YrE>Ee-uY_j9Ya+!KVhJXo?8->}t(0R7Sl&p;k2Nq*~h;>xbboN1|JOM_Da*{^5_T4Cg1irnf@5T!!xfBWAB7J_i;2c z0Z_|toUT#Wt2dwooYiICswiQ71R)_uMpoTa3X|onAA%~am`*53F^omi6S|Hwv)W6o z;m3#`iq$?A5|JcJr!D-6FdmS(%z9>JJjMPD4~ukF<0-(UU^-8Y=Kz;!;4-`IiSe9} z<;gM%?lT+n;owMASK^FVksnkm4_e*AgwksloUkM?BJ!r(Vpvj6HLx6{wpZC?QHu=< zd5-tZyub}}p(t@`I~=|CFiwS1f?XQ;TDICt-ZsEy_tBQc+CYQqeWCTV2u9)p#w#|V zE^-9l(R2qy)M|MuPq`-{>VZ8Cnq8vZ@mjI6TjcTbQglexxqoy!ejsg27LgiLSZKLnlkW^KRM^FnvJoD~LKti^U_Q|kwhOFZ zU)a-bH#gPwN4~lyp%OEM0$LU4n^}KMoron{G_V~)?p_O^^OGsHva+O`i`8XIufBQ# z`DL*~bg8)&Z@Qtt2U$?Uof`A?(M`OER58kr`3BVi*WrMUFiY!m)6XR78y7rn=|dO!ck>TU<>^ycSr`@ z-uigfRSe6?ze$diz^Z+iVw8-!BscziXWo6$Szg#-oH1kFOg%Vp@m_O-zms7*t^?7P@KARCPER`;m>g~e z%_^reJ5%+E052>*i3go=F#ZADU>rpOzxa$vj%e!&RI9h59X2O+jqH*B6XDXN8)0d#D;U{#@m~4Zk`FI<0QvtE{-`vo8{f-8W#yVqq<~2*A@v;YthKLf zXeg4K1;wHIAVvp=8VnpFB4h(Wf5*hzRrFg~N3dOM*&q{m7U-2y zL|wo2Zp@M&rtywU(RnZH+gfi<^qJr4vU+n97k#Ui-DQ_TrzP2is@#HTbfK4%Pp&3U z4w8cgfng)i?8n|m`P_&-Py|Rybx#QwkdF@qG=(G0zaffv)MQwUKvXh z)~MDnlHW`~m}A+}UCfO1g%oq`(zvh;zcK<}s6x;boaCqv({AX>mGW$I`lm>NLgamRtXeuijy(bMv@}cS54?s(mY&#U+XsfRy(v(H zW5i|yp6Fbf6Gpjug9TNF92Ft6`CYfbxR*swwN@#&Wn9w?3Bc&rC<~5dmQu${gJzwv zl--!goG*1zJp4%YB5%S5^E@U`iE~PYDo!*TbX=<8lp)o7UtlZc=6(nnM6`)rn#b7}-@{+I#W#>#_7`XTgL$J2v z*2fQ|;qFn~jV9=MT{*8~f|qLb^YCi14O?n$azuT8;P!MI^fZcP8@=2(-va&jhv%lB zUwQr}bv{$>F2*<=_OJ%eIx$(~Im?*-<)(WeOpw@Y%~d_ha{PwGqWX8f@3t zc*0ueat9LqDM$-%bvIF=Cle@kx6_#ym1f{Jyiv2cog}K%bxPEfmCRn=@r_Cr4L2J@ z2gQ=dN6m1IjrxKPtTfF#MAOJDo_6oN)yNS`M$T(0j=^x$xOld5YhCFSIfS-%$n~I} zy`vcaBYrE0bwpZb>RixF;<40C6Bx2FVCE}b{IraA=P^cOUpTw*zsuydd|nBgY$HQ7 zwz{p8kHfiDZZL)z^Vq}rfoc*jR#m|6EG4ZtA*fmYe|6~x^^ia~)*?>Kek9SDu=H8s zG0f30p+3~rqZ&79QKbZVO%4&sa}rc4)FcmFB9fazRg18i^y5U7u&Qmc4su`EVkljDS*cXMzMd1&px5<3thXCx;ON zw4Wi45(i8~Hf-4cE+q2eu|SFfWKaq6lV}w=A+uP@gFD@v3%RJX&SmVNfkQ|AP%F1N zDa>$aIcnL$IiZ-sb|0!77Du#B6){n#Ew{1J!eKWA{y7n{w4_6LI`ye)riF9l@s=W0 zl8t+!A_GrMKf9n~i42PV!J#yMSiCd`N}Bu`icXuex1g88d7!`;gNUN3$t{Kfl%^TX z@A_KGo1dqTsRg~_bAbzZvWP~sjO#&Fj0I;;w%7^6^sFyv`a5Jfz?YN`8GF!&xx(8b z{n3$qyU;+I(B8@p}l>ZQLc>{4NtOdux*?h>b;`Q@rRT>^G_eax|Kj%9ILG zKoueM*=e0*NTD!1T}J)RIDsE%f-N+BY)a|jLq4)2(Ei2{N@A;5CN`NB$-qiM0h*nO zaC6R2Cw+Ld9L*>cQ*+Y?ll1-tCvNF$^zWxAyFRo*HBJ~g|-0Sruk7`ZC4(lSumc3B9 zt=n0T`z%^LAEEDE;6&2zqn<*}$l=($QHz=!Lo`bfQH4ri(B{VZ=7Q^TeehTxI_?Y% zTwn^SsGA;k#50^X$vr>8T_Sc5Eba0tGwZVSO>@(SJF7cTkQx&`1IyZI&qB!`$HQfX zJ?6i+JJuxswIBOQ?34B+^u`7LA)1XG(h6ls3px6y6ahu`J@TnrUh~$u`3~g_l_6p& zT1C7tYz}mRTj%|MLS+`9laz}CXKP%}X@by?;pm3pzrQBUC#k%nwI2h>G}^DaA{-3r zwTXO?z{|T97VAJfsKw9}5&nHv!xv*2z=ssSXy#%28NjqC`R`EMgXd0J2k*%H{hQd` z2g@KB(uzUNY+bR7&6u>K|Vk3bi@bm4e>^cse4Fa!UMl zzUXY00twT9KQ!wLQoB+)kttf@*HL6cZFa!fy6{TQ#VVBrdg*W})*M*ZZVrw2l)aLz z?86o);?qY?nQJLTI&ixT&6Y<}lC_>u4ogr8Vpk(!m^qirejRCuu82wH4xAj9qqP-u z?iH<-p1k;2x3*Bl7WN~AHG9t7Ybd_qqF2$C<{YM*K4!k0k2`djAR%4pniLM|rv{bM z^}_+NO=0JxlEt1hJX3WHh$_X4ad1LJLWyg)5{1j^<~9y38)82lEhgT~Tqd^w0LT}p z!%NH}%c>hZ06;SuRp7Ckl=w4yHLnbL4CbGdN7cu#s<6Y`Hpq#+c5PhI?zl#hY;cEM zCjX(?c3ya)X+4Wg5H)8=X_K;()zZz{8nWZ^x-*5*L3AV`T$L1v#m9=TA&BR4_w=~zv&con$g~&0iWIM zsV;fAlEWp39xJDJtKPgPzxoiuRkC`uv&re#6=kTaBTk-J?7uIgd>sRQvn8718(@gL zW?_u(6O0+7dRWrkX2{f9MMbp)Y&?)q2o*U3BRiJ#m zirx7v1kRHdeHPk9?IFEW#0vFdFasK5uX5zj&32ZI0Q6ooRYa`rXC*IS***3yL!SZg z&d~ee3_S2*_51D^m1mapu#6iQSzWIO-4zY(1U#LnsNHy9O2r2x-svoLDAk^g5>Yy| zmh^_@!>S~6&(iWdjxRat@`k3Q+;|-B?Ie-S;t0NexxhC`Iz!_8V=au#8KbvDP+w{v z&cbQ;Owkvu8#y-Pd&~UVX8hYK<~d40`IPUU!cS-JIH1frXTN{yqMhB_H}2>*5Dg9x zf_vN>s8~?g*yuRAvEp8WXemhV&Iwj+#!&D$gj50(PrwynuD3k9G9C_N^~G*(<{kfLL$cuNxk~IbTqom6DWENHU(VNM zoZ3Xx71Zpk-u-mMyd-^aa16I_W8o?mjUJ8qPsC-RoGuo^O&xMW9PI*rnvCs@4SuS= ztANlXlX_>*CxlTtfx#wWD);aOJ=R-xM2wHwSuuG}>(()tDg@i#i zc*3X3F+5M)Gm-O~=myh{K_T<*<+&GG;drz3h=uKNyjPX{RdKaOhX@1q!=$>I3Px#@}Nl9kaHC*$X&_R5Ywq2W8e{#X&G!!5#ISWS)?PE&sG1&1M& zU>?vvH?_Q1nkX|uI>Y#YQRSLl{N5`GcoGMME(?_XKi*LElOgkmtYxnc$>Fm z!qS<3zY=kn@MEbbs%OMbTf93dwD{Ht3AgEr;TF4}HnkJ)_u4oMO%`amFs=TBlXdl~ zCqj%J92vt{x;};uVsp_DW0F}xBVJWqRMwML#W_~rN8S?v=lxO%Bh^jF9A8)@MaLR_ zzlT?;QG)x~U?J3z<+l8(?bWfVvnIxy<5RJzqPpIT_CSnazz)*3I+t6-a=C5}AnM|& zrUD2Jw3OVf)w9t&|2bwmU+o~M&q5UO_5;P9w)=Krt~s%oJ8*0@{4tr86}t{B32H%nxV=?<$2a! znyDA%l}Ncwc>0V9Bc{wgr?jeKP$ofc4%?b^i*0?t)2Z`oO|vdbtIIQ(=65aAghXnJ z9X^2x!3CG`r6h%H5jU9X4ztdxiAer)xkYMR9jaHCqgz4#qj=SqFK3Ay6^NR*sb=k* z6Q-)2i)~6?5{FZM#XEx;Zk8F92k3EdgrsB%V1%tFG{pg%88T5w8Gd!PDDx{mA*Bs} zzuoh~Vl4Eos7hz>;qDe;(6UB#v&ck^Wq)&%4&}|#=|f+6t8h|FScp?CbYjs?3>AlL zo)CJwPCP1RvdDWrXh;j^4wV~gll|3I82210`}B;ty; zRz6eRbdZa?Saigjpktv#0S6T(qLd4B4QqMZE-P2z{S_y?I^!ucZ z{b%QKJkhtEoqukgg|T15zeo7@k~0%}{V~?kBzYhI|E9jjSFQig;n^4P?{oO~4F3HZ-#z2H6O+U1 zzxC1i-#+i{2fj4F`}~6^pOhT_$ZxbK=YRjz{Pf&s@SlS}dTDa_gWLIZ_Nn~m`~TRH z9G<_HPxIfrAvwDJ`P6c4e>UHJF-`vRglm#F&Lvnee_Qi!uKkC9|Hr=M=$;2Zl6>ai z1D8GboMj(AG5PW(PfOnNx{l-(UpVV|Z)X|pN)*bpL%M~kQja7_a{j_&X>!x(NemJ;5vf5gkAkA$KjuH4&NQG` zup4HaR|*pd7}_nrk%=?-`kp2f*rbJfS(Y&0ww_o_{u zUh8egm#JLev&C$}JE{vcUtx2_Ax($}$N@?V{p#jDsXFCV==r!^4y-aLb-yfZ^4mM@ddXWJS{(StHuEoiXrY010(<-)7eQ~WxKAOGQEAR#bB z3#))%T$HeB8u*G?{J`t4Kn;@Y3t0l8PgeOf%A*;Yd#ldUg0+3SEgBruZl{ySR&_=n z-xT~&vfD@~bokla<{M@V(=nVOfK3JX&Go?v(~Zo=&vz<+Bev*%(Gq)QbwiE4p$Qm% z-f%r8uGL=B*3_9#_w`2LnvP(6j=D!-zYg?W;ISmGi*{7M(0pXtmWZ8NEzOR`_hNEv{3ZPj&a^=;e5X!! z>Mk6u8@6jP3;l!x9?-d#ZLwgL*O+NpDm*N$z6Z?&zsu48Ie7~rHU5d0+CRzF$C-rV z|3yph#6u%{ncnk64j)OAC9v5t6>z!OJ{T4-EJ+%pOyFXXZ!r&HicuBL2=BTY;{ee% zZw#RFcD8+e4+QvU(G!dtmh z9Xbla5-3qkrkh-m>dlEx+Sm$fn@S-DfFfVg9yr%tN7R=!rtEZ&fQ@Yrwj8dl#|mD; zF~>9Y5d)%&on%*0MMu#Z|Ftrj9yuD+jgtb7rO@U!aquXfZGSc_PBjyy%1`DlA#>!` z&b-o6`_VbBrp>@X4pz@vVdjQtDLDg@Y1R68F<@>+*+kCmxCL{RB0&YkR9X**G(-S9 z6)WJGnnmXV#`3kf|8;v&U~<4yo%l`M4Kxm7-(iLU)m#)GhBY8qIB8z7EEl;uxH5~v zO)~K9%Jh(PklZZ`artuWXM8g)3y@a^A1(~oawMJ0kiXBNZEWnB+_!#G=BU#o_631W zp>D*Yf+U4p19}0Dt~az&r^)n^_ERdolLMov{kN?HEYSHUZP(dYrQ)t!vEymQ!m{-K zx#_8ClJ06>gq!2y5dshm^4!Cx%9<^7x0%?(mb=yCASQBkJ;xbGivz$DvSXMJe<+B| zF_8ZwsUC(g0Bb8DRJxSkty5E$JRc{TD|S{qY!!e}lZZhdyb=anF(Jmb@R@piNP>k> z4JA}VxR*#}*|#4O2TGc5cyNGTbNTi|3@HY1Tqh#M!uy<248y9*zO}JGqtk&Fq zrbwx>ewgnoZi_&4=t9H@A1dGwR7-HfYv4WOX@rdYW|PKq*5KS&t@AK@$PgGdW)3_l z;xNjgAq5OV2-^52OQSInKPqqlngr0TNc9D6P4Iw#`4llBEzL()Q(Qd6%65*rW0j^d zOyFf4@o5MvhC9;KH4vEsSn{S>IGn?BfkX5J8hfd=;!!QDfTP55uE5$RE3U6V2s>Yn zU5v=jRW)baBg!$G|G?2P+p-f_;r1WMN2X4iX1G_Ub;eZr`eqoVDFzXFEMjQaQu@8; z5Sa(JnGXHN(6C3f`rZ(wrg&%g`^4yN)!Jp_Jl`01k;jO$(JOK@X7pp0%JC|G07#M>edz)a_pKM(MbqPq^nAaKY4V1oYpM zs+h1fLt3aa_QH+mFK?0CxD%7=daYqg*_J`1+V!0ycVLbACFLQeBAyNxnSIuDvi;O8 z4sbR}vw(hy?x}Q^@7e>}O$qJZQWXwHmJs++fT8-Rz-WpZ{4}w5j?FDIp z&!}1lGe|kjKXokGX}vM6n7`|Fn!m?+sPbskYEsG*^$F(6f}443S?HSu(q#_q9nUjH zVr<>a5qrcmw1iMfX*0VVp&E7)<}(DgZpd$J@0riED8t<$Sy+4bL2@vdO-XyT3 zvQ-?`v?@N3EGkk1PqO4LtFVr*%0V7;#N7#P@34^oCi6eaYwH`(s95-R?;NU@pEl?j zNuQ53@|@0}Tyr5jFKQ6cv25H-uo*;m%iYG(+1L;(LENiLpEW&YGcLXSPA>6%q?Mi; zP%Vf^mRU!%64EOMq3KtI*i3psiifas3$Zg|UocJ~QL?zU6W9OfFey6C4WS0~U}H1w ztF+Bw2pd;5r?5_r|dEtflO$!R3K^j>}yuJFbkYl@jb}_Xq<(x zZ0J^ULqoe>#mGRgKF$+#G10U2s$FmxbQC+;noSvQ>a9M%x@HxPeyn;_FaZtdj#6m6 zoQ7IjZ!~}r*g*V9(cUjtYI0ggpq`jQN%2-FQmyVj8mYjlf-#Vx+m#Y#E`C|{D@Wd0E$dW*0KkFnJdjDEm^wFl zRdVuH!sG40sgJ!{N5>UDEpvgjnr8@z5_wV#`wa54xp6e?j5Q+4RbpsxR0vs@NO;>P zQ*7!JSXxrW5#g3mB8WyShIJW&%2@D@f#DZ)Gv>+HVHFJ{e))8bAY`MKE$*G%(+u4a zZff5s(6{_qbSG4KjAaKrGg``F7!*d=t7PK}Z?srUA~n{qH3*2x#x{TkXB03h?Fp^> zNuNgN&c;4Si~CtnI6eSwRD$zInxt{S_%rNYc{eEi7V-$1l!S@Z{DIvPVNngUehMtk zG|g)LL&_N-B_4+DC7_){g9mi&hHPo8YC~s|39u|n;K6;BfIULm22n01qV!PFfx&96K?A@{YE}$g_>e|Fa6~wEg`8fz{2V=~ZQm?yF;=QRPn zcu=j7NU!1q?Pxx$qoFBm$j}ZWve|>-Db@{`?cyQ>Oa8rGNW8?`^;;YKCjcr{^a&6REmFqQjMnRz1Ip$sm1_=Ge$;2N=xcW4qw(v^^tx$PgvW-JO z50!RE!XjD&<90Y^i&RVFzJvSQzo;eOi!YDP5K`B}g`7G5R##kT^@HR3fIodow+(85 zth$jtF(NF-BKP7E)(m_1$)eW_c)9{i$booJ%e6TWhDpjUxW7+b3=p|UkaV)2vh=35w1+&1ShVPgj`k#RZ$m@lJ?M52O`hnu zE(c6WU{9+~{Gq*0K-$=GI9TwnNHxt_ze{hB(&U5SPt0J;W#b%bFOp!RqFB-;q~5fu z1xnb}DvRL-s>u<<7;hQsvfX-iBY_ym<&vILNY{UE5Qso7qRy+7Zm|Duj5oiZMEE1z zm+M^$g8rU6GY@HrN;$Ga3CQVJ%8RFKWyN_2;IbG3O31xsgKH)EKwKJb_jk#t1V!90 zBGQ2Ei0|GQSGWvJ0&eDl6IK}q&eu6{XN) z2w{pC=wx>wB+ZS6!oWx%dVmOz4o#A~DSRF88yw5lMDL-`30)qdf5=JG_aB^9F|wUA z{Ide0QjmoA*8PwQxiV=pJ0E1$L3_N3NiiM0akKp3ZQrh&DT)2%wW% zT%AfOgYU68oN0?IEh#5e(mhyAj`>7Kh==%L(=0`24gF2iJ@QQk^+=uptM9XzvI(Os z{oD3uSMh4P_bUI?(G|W^?8A8ULt;`39jrk*$Ty^TmAFPW9Wf_g=={>joOrP9C}JhCVoj~)URRIk}jNnpe?;5t!%`phC?*4xKJOxu7Bqr zekzTGlvDx(GEZs2gI=2I zY^o?dBR43_k{E1$s9HOlW}f=n=-$rt@&a&b2ry(UhcW2o#+XYOuu!(LzVT$X+$~_!m zP9z0B8h$OQUJ1}y60BtjP2VKO!b0}6_(Uh9NVCP+?KN1m7z@WfCPvvFGVR5RIb=C- zJ>*hX`mk&ubBTo1dSF5-_NsF&Km-y>&Op<0*pOEveU<79X@7Lb5{7#7oe+69yE3+@ zM@gdSYSp=1FxP!~25GJ*??U;s@~I#`z#KA}7}t_+>}jId(GZ4Y_P{pG-R%oB4RN*R zBoRw8EmQYW$Ie2`Ps9HuF(N2YTEK8RVi<8l?64IfGVx`(Ns zKUYjakJZ5Wb>0E-vh-W+OO{-!(A~(sG=6B0AB>HDTVmva7B49#a_RDK8tB>Kn6egP zNxmHV_j|s;rJm$LH7|p8&_=|+o}T>S3ZoV2Z6}0I*j>>w3|hPA#GIQ$iV|=Yw-0FH z$2`Tl2xxi1DiLtxp^(6|(xY3<>HRoAM8TJVbJ<)YvO zWhPc@+BH{X#NW7&43-ff8PkN}9ZSRy(;u}zXKDO$JS{$UoZmy=WO)uI8djEQ701cq zZfY$C>grZfNf)|xq%0ysAS9;OnMh!oSDa-9TgB9ps6!f6Be9^_7?921#MI|PcydT4 z$D}K?sZyE7{{D@}d#QdIQSx2JqKY8`~s7W z7v-p3y~RSKyG9;hX{q!EJJ2|L#o6baYaV=uGIZ}P84s@Jt^@Zo@*ORwMVcMFx0U8 z44d%`Pw=p_#1UPbCAN;m#Ri*`6xDd%(7ERvkh!Hcb%;)Hq!tp*g7fGawQ}V!R-OB^ zt33{;Cus;mEHotN!ct7#*HF}qo>d`prNPRBz3;Nogq~-t>f#aS6MIGvdyLAK7NF`*TScw%U4zlSG$-4; zg1im2TSmR+os3WkY7?-Qjh?N^@n-`Z2j^h${ZP^lvIb|>Y{yIGNB$~RA0KZ^sc=b8 zTlhRmh`pgNZmRI9eW}toCYzf_)jofI*K@?E-QEa2btSiWz$}kYl5Y{pt~f+^_4x~z z@otiSqAeX{x)lqnZpEbjzxE|Nuvg%H*1c-g!kJ+<-I%DI1uHKYHUgnu3tgSX1mZ76 zO|_D4=>zU8r1VJhbn<=;xy7N~3srs=lxPV$+NiO81wzikuUvuvX6 zR@;NxI^_?WYbOdfZD*?5NyZO%g#A%lI-D+EC&=h}FU1Cf#dY+(eOq5Fsq23#!Ljg^ zEiRij`%f^iV4t}r*J@Ci-RmY9yK@cznZ>7PDtBAT`_ApJ+HV|MbVuAb7Zcy*0L@+C z)3t1wUk+6CQRPsSRO(!jmZ}O5iZLaRFe&5`T9OL8YqlI+2tgACIhowTswinX~GBR9&UVFp(-t2I{lLf^`6%anzClBLH4 zWLPs>wNi0^bG~WC(1u^>6B-Ug8D7{Wf(}pRjsr;?oPI2`aG>~b?!OJg1#+A@o}}&y z$jB~9YsGZq-=ekXq(JdPNePuc*;QpCdVGXm<;>uzBD`X71qoW7Op9m14$Mnqn?a4Y z7^MtZonM`MgdDxCT}UV%t#)!SA;Pli+^V0*vTR_MZRPlUci%sE?oV@suC&CaIn3Gc zxx9Ac9;TMIY`_lDu^K!sWoUG95j}cGNb55t&pjYCM=w@??wYXpw*(}7JS0yqS$H~E z=aHpGA{^ny@TqNS{A9kgIlC5KA?e|fpuok+%2c_Lzgm&Riv+X|5x?K_sZkI2-@ZV3nY7ZFS*{n$;WCRWf>W z5|?E%gOMHy4B}W`A;nY-lsV>2>jtQv-jc5cW0(!~bgdeSQuOIKV^it0Q$>E1IY2F! z`Bf2n`;yz?KTSmLbH2}2sHbT>P$pBoP{JT0fNSxvFql`;*v%K~qY-X6hK7e4>Xxu= z7rPau)H1PYkz-U6N+k)Rb5l!DZD&>#ro#)*tPlxpruN@<`>)tw*R`-ROI_nfg`{$& zP!_kEQblJW@l~?YvD$*;FD3)kI(-|`t4EQFc}j|{IHTObu=c6|8b%eN} z4F&pG2wl1^*+F_%mI+2W^_`;C`VbQhOdToRyen5B5J5jK=eRof#i{3att58|Z0%LI zX>$$Y(!j|+WPZqEt-b{k2y7|A0hzb^F%`bry$|0`m(e^|wv%3btes5TKy&7TwK;?~ znwDGY<>jaMx211P7sA9)Zz{=jJo(m~AS*=?FH zzN2bzZ2EzR-7}d#47}9{8Iek3o&G7^nq^Tw#}b*7Qh_FLHfHb%pVs(Jm{NPNv{`6W z8Q`Vgyit}X5Dap=S?Q|gHK+2ng*!@;DF4`YdH$I3gLn|>7u(V|rAyZB zq_@z)hJ|Ccs=m2Wd3Y`|N=`)?#fEw+O`vO!rEt{3Uv>vi9M^$q$;H=EJynJC z(2yxP@#gjDBynF|;8+Mnik(XZ`U(eAR;4?aEl{-=qr@KaD8ouax`5)d1i&6M)WT|{ zZ~Cl?OwjAr(O>x_Ccx)BvI2|ZAfX_9Fop;LhAwwjV(sI0 z;$JlLt?{5+X?c3GJ7?AhCO?_oy7$Aq2l)+ah$t)gb{JefZSozt@-rO_(X3>+nEPI6 zjI#n-gja+m+^uC%dPqm&+}6=a&e%lVNc>)Ga2UJyTUX&5-fw@3NTb7?qH~OW)fl0e(S8rm)b! zSlzhZ>Y;vm$<|S_vZ!{99~Q3+-}E3<561{e5`RvTcT3Q?OFl9lt3xw+uJvJyS$8y2 zMl^D^a)**M`Ul4dZF#8TriDtg2MaLycEK%lt5e8O8Jiqufr?zx(Qc4?S1C*C3@fVI zlDevW_ILzhVe+Vtp zBuAE@L~bK6Y;Fpe>)?Qu;DMG>QB9A=nQgIbWy!E*d?8%_LjFgsyeuof(G^~A#Tq}`ACnz5iVD8t=`{wp-gOEa*HS^&uDw*tfKD_ov97;uOW&GyOv~)mFr#fX>e690JE7a2x{1A#fZ5$02YW0>>e690JE7a2x{1A#fZ5$06_^g}@@BLVdXS?J9bU z@OfBYakr2U;Yo!=Uo7Ts<$a_-C{jpliwK887Yg1ejHH~YSP6K9_&mWQ{YryV-6Ks< zhw#=wxB($chJEhP;f`2=5?~JV0AZYR=4FitGnqCu0*7?BREh)-5LWP-@ltm~OJ56D zOWdbm9P<|gu{}Z&aj;Nwr4+ZY_}WSu{#i^y;k`MP+Z7>v(7HoOKbNH_^y8?CHS(G?E{DVj`RE2~nD-XK$0q1ri> zKhko$9i$<43CKxwHSago}@(~<6Ar;X6b^l zy{`JcDRLOlEbAidXDcG9GGxCT%`+;CaCu08Q8{X;xQ#^8y5NjU*J6%K9+e}MX&0B$ zS#a-YG1;RjsWuBK!Xy1t)sLKn&fPX1BCbGw?>O;S3)xx=DNCz{V68^8UftZY`Qj|O zF`tw8U`vmLT4{T=tW$YlzH_pl&pI(_4>&~Dh{|*F95=0_bz=~MWm~c${YWU0oB1M8 z$%*oN#)yx8zSJF7Yk!4S9LLhjR@i7a|ETNHBo`rPi%Gp*KWNQ*T2ql1pYAw5{CGLR z;Xul{$c$`_EtRIgduf)ri5M%RC!ifeEr@QZh+)tKKM8%7-qn8n`7 zJyOV69V`J7tG2>tu6!YzMaQXC-^xEbGGL+Y06R=PyX^{nicHDev|_r^SMr z;lPoKL@--=j_}&(sHZ8Y#FyD3k8a5$;1{yqxDJ=?wQSCcqgDK^TWjdz6WE1;vy_vN zr!Fdcf+_P91AAW>xTd;~f_%NN1!gPz_SX;f(b9EdVyN-Sg)5Wfi{HF;#o@X0IK9}g zJMPWOV4PbO*ut1>@{sahI3^)~0H}#Fe@=;eYFeT!(4{*)QIZB9ZMs|5<;#Q#U(2Mj zEijB8SKAbtXr`ZC*tula$RIe;Oyh^nMH^`0>=N%>$%X-8bfyn2{F)vfk+Y^o+rADGLhWw}n=P=&b8sy?PckWH-gezx4NW4?7?GVabVmM@RFGn^@rBv4 zXK%A(kAkGgo>gkE$!U07o-qruPleQ5)R&~~=3~6v0xGiPvraMrCmZ3_B<0l)J&{+< zM4*Ax!ey21d&&5;|DNAj(2LRGw?)FoWlXr=Vt{hOoVETp6g2CK)$Qc|#=wZX7krOX zY=25J=Voi$gD<3Dc69Ajw`wvo(Rrdc&MIR6L9+ZvNb{7Y+fi(wEUz&CPd$M#A4kru z(fs9iOvat2w|=sWt03d%oPNUd_4HE`aywAV>0*Zfm;4QUdq7Ld`DZhx^4oe@cPjl@d&@~l@A zpp02M&Fm=5LeI;~K(Qbek6V9Y&uSioI^oy9$5}Lb=n9do4o#nX57ozVv44)X^(wOJ zN9aQZqR?*5HDq_wGQNBqgk(W&Od77uJws3EE~$96Xzh`aIgjOyy+O`E%S zZSC9L+jsHK?u$0<-mz(C&&3;SeO5OW98Y%t9=?!l<9fN)%8*VIfjL>ZL!)ij-%vm( zwQC;UQN1iw?b}RT5NbbaZRY&2v0svIo0oo)CUTdY@WQ3maeXVEfwcJ8u~c8g0=9X{ zE@taEg7y(ga#U|dG{F10+x@Y7>ie=}9`OdNMAL5ZZ4QQmIz%5>2v5NN5}IeMA*088h*^H%f@MNqONrP_R>J^l~nUby}q6yk@xdD zuh0et*Z`A6n+TAEQ^^u)&vdHNBh;8`UyYx1gI)}I*oM?JTfKedJkh1XV<Lyl->!>Jt{8cKX~T*p%0deg3`=*OKJD-+l3G@7kLrA71eJ z`&SMp$p!D(_ir5&{QVE#KY7_JljMUx`j@kx`GzE!d-2t8>wR;QoU(LNW6?X3 z-E$M)&-woOn|?h>UYw1-_S3f~$@gwN^HblsD@k7Zjcb1E3!h1nD}G_%y3zZSDU^Tfgz^@7ng`Im!DLpMB-)&zhV3_?Ax(|G}QQ z$>mS`(HqZx_uS;ezxC()PyXL?lgfJ@c=kI{OuzWK51jVBOWKk(f4AjLWB*TE@&^x% zPxU<1mVCas?s=a&YhLovwjV5B^@e%L>)-t2JHGfg^OBR#S#!anweyn?+_C(kweOvu zoV$0$!vER6Ao-WI|8U2jPAy38e9bTY)q?LVNPhgtnRkET+V_dBJ->a|Pbbg#wSWD`-+ke-Cgp8KK3Ew9Ux zd%tquj`t3)N^U&iJump>>sKdV{ny|6?bqJ_Gs)M#zU|!CTy|daQ!o3=;cuMulH~f^ zU;VqA+czY)z51WWYZqRWtp4)SUq0u~mnHYT`Tkcfc*Tz7-cMBj`O52eC3ha(d^mmh z@3}=HGs_f6hCS&(v>O{^jjAB|HA&f|q`M<*z44E=hm=q1$gy z)_g7f?a%+sT}kyBI}dOC_-B$eZ(90$H|)AU8T;Hhw|wNTuOvry-+sfH!#nT&)mOhLyd(~@ReDla9ZFk>x?a4Pi^vi8W?s&`F-hTUoZATtH`K7

    )-hLdC99zx#!X||7PC0H;g_!xbwyH?;d;l>oyPFG=JUE8+SbO-USQp z{`%67rhk8U!QC%f{^>VXzP;ecg01iS>gUGVllwpXk8gSNW9`X@dM^LP|9$B(PTbJJ}fdu=88!-3y=pz@}ZlHb3w_Gi!hwUd({ z^ndpwfBEO9B=;X}J9y2BrzQ`+`_P;@wPz%i3-+G(cb|S{^5qLxbYH&twB(V$`OV*c z;7iX+Hhnr-@b_<7lHB=;2Y-0d<5Q=-_UicuCT=^z^f;$%f?CUs`|P@0@c{ z^7)a!x+VFomnHYyd&Z#)$95#u^wn?r-m7;dkM;ljpMUpDFHhdG^|i0*dwVUZ?pg4i z>wax-^7-e^`_rChfY{4lF?P?(AVL-u=nS`>#B@<$N8HcG!IKTi2>Qn-M8Z?O=h@<4k7Lh zAmW=hUm*?Z!GDK&#|$vgBo%Tg*-IS-z6a^&| zm1@;u5|${ibh&(P>%Vjv9t1}4En-Rn3H2M+g>KUOY;SBn{(`RHozyM<$~x3p$a;SX zT)tV01rl3wFNY1OGy;~kyV)2XT;Xurz1F5hy$y5O4yr_0&<|(;uiMK)*EB7U=WL=C zsRPzSrDF{ish@*ZR7W9Kf&3)UGDz9M`8lDmsDV+)Y0$M-N{TqMy6Lc@=~B%M&I*UB zb98?9Mf`%K0)Zby$j3v=8SI|`6y}qmp9f=DHUu~GOcHqS2bdNfaPZP#s!M7w4NVjZ zOS&x>An5Wts{^u11My=TvJ?QeUF#Jh*^Lsl^Bkz2IihPSENvimn%mPj9q8!hORjgM zN24p4LJ`i94m0wJ6H24ue}M$3nav53ng}c^GYRNBF!5iNC-%B+zcNwJ#kuqAWc)59 zd*IMulYxYI{ucAS%BNvT_?fuYmEaG@rdYm8*STVS4F`eUX07Q!mV{6R=?TDvSTrde zEQ<|+7I`JQcBL#VnMb**C_TN-GvJO+h6mI@fD|omRWrx|ab5)C7R*!g0p5+>-g``Uq8mW0SF zF;~#R@&dG<+F7I<3^mW%J6<1doE5jaLPV&Zzm(UjQ2~0lVT#?A3xt4R1RGr35V|fJ zZ6=qbG-2-ngVvYz>9uQdBht2au(?}T2u;zu*UkyhvAoC%D9Cp{XMkos!XZ2D+p5*T z4gyt|s9*+#!RsDp2}D~umkFrnu4WA(tXe)#k#Fhh2}PtMmpv(E9a$rC~F@qu3EctRaf=wuIh`rs$3Xzb$+~J^u`sOg;rNeLacJ4+{@t~)yXOWgrlym z)PYQU;q2ns;z8zWO!Q~TN>Fdx;69^*k%U$D$Y_St4npUA3i(dHQgd3Lu8)}Eqm9*=1*NPh~TXw8evbC1HZvGf+q#0QgOB$_a#{Y1^fd=*= z4=JS3EgRTC3fqUm77}P43fqUkwsawVD5SItDKw9PhPDrdl=kyI=l8q!j$~)E&O;x% zCh>aiy}y6wcYf!0{-1U$2PeuzpG=Z8HJMz4XI0$FlQO_r<6;`%ku;vzQnKW`nvZfi zGN*6dL(82`Y2x+i_6NG`BKmsXGHepfJ^diqRpI&1Z2`5D|OT zYAZdtz;4?9pmSk~=;tzM%v}9TYj$B=51yv8v*DZBSt(`s>>_C{*RI(O)V^bPgQ1e$ z!pyw6zurN0r;4klOOXwsY%5*+KCf!Ru;4f~@TIP|Al zQQIoUsIH9LxdLOLZTmDFR{7}FFE5|{wD1NnaP(jf^i^Stw_o(6d{crSg9sSFFD|uy zYOCMh>&;G0-GDX>)-$+H4fg^=DYoWqsQyDbr`K6f`Tq&D8sIQ2L zDbUK5yI>C(g!|6y54nLq6h&T@d&1ha*;s?%y)e0x`N0R|7CU13`llyxc zQ=d)$A)P#ac8f|?mggC!FdhCmak_YWAnW#nk{7tSe4`bnBTxCP{8Wp}(8t|=(Sf>G zA}m+IkG)gsV7RI2*1=L;kRhY*kD)hv;%bK;gYiTq=!E1)^x!Op*MpJ2Qn{9PWKO^Y zFf?Hh7@BUUf4$AA_QDijF6K|Mk37Y;G?ZqJz_ytE9{ zch_na22}|uKCw&WQ6O}IEdijfunoS@F1KOJC8N2#By@sZ3#46JmvIpK$+-Wu#Un!r!p zB;%XDiS!)88is&kA|dMcuycODcqBaoXaD$ctKt%D|`{rj|_=v`S z2RqqOOe`BWUy*aPuz!&L5q(5A>mV~n^-F9f*L5-+3(g4EEhJatP>?-hGUiwn$KK?X zx}h8Q#n|6M{Dx{zdU8%(P0>;rq-#iJNM$BBREay1bl2uJ62#XaYb7)at%<4=ZQRt# z;VYYWuG_5mc1&S9=q~cqfoA{Z%#92Iq zxkSprIHkSNK1Xn}3&D?;0xw=mNof<60+#JJON%~7-{DE21A~}vyw%tzVKSa}Wf`^okS)YH%6s-j#kwktXc@Mtj=`Nzp5nreI8V7G%1Es?{)o5iNvF z_R0XIS?3;994=}bW@+2jIgFkZL%7){7$w&2+b5nN>i@zLjRA9h5|pRo;fM)~?wh&| zV<+X8SMn7+jRgZDD&M`&V)873c~>l-dJgdrpkOM*l45xxk18h?L{n_uccjMy8{~?^ zKa9n7>n00jAK>%`yUoo_%&>?NM~ry%-WY#6#ll>}zzpF|5=ESp|L`u+|B*24ze)19 zfAX26{r)HIzy24mcu4TyBZ#md+v+f|u@9vs7)GgxRq>y@H3WA$!kJ9Db^=si1)nUB8OZY*unXAtudMPyBwfbnmGzwpFAgU(yM}ji?g+Va{_pn6XJ3Yxn>y&IEjN2#d0J1ZeT zDZ9OLo~uvuh=h49NgD@7ESrM~%bWW3r1p&=`i{y+$?*ZA)?|A{12cOplw;qd8`zRk zU+BYRk=8c)^016PD%=p|KsZoSXtxnUiv_B{b~KOy`xf$x%2{e5Rm0TaT)v_dVS`P3 zV_iT(Kpx3y0ZVy`?a23l8Q>^El*IT8&tD}}tgW3*i+_%s%AdAdXwSFhtkEEvCQ09@ zq?OSm{pt9NFLTs7qU1{)H>#c<_&tYhyzL{M#Pv9ZuJl=f0>}YId z9-*U+pFr+L{*G!<3Si8?3uoK)vg*<744poft$=OW5w?;|VdkTazkkx0PM!b_4gvfF zqpDV>U$~*Q=A^R%5$SjQr60J0 zUjgaCD8}P|MsLJ78~c3Ji;-HU;X#{x)dbM&w4sLd-S)mwFd~?H&q6F@F7*AXa{@lV zgZS}{LcO-!jy>s*v1w7CJ)+mTLOtzXg{Xh4l0MDG{^$5{(NNo1qo($+XKI(R5#R)a z=4|Zib{33NJG(F+R|b~Yr}cfl%zlKQn-pNOB1AY#_aJ9teGru(sFqM#>@>eZ@qqr_ zgViRJ{}SH3W8+1D#&HdWBrlYU#`Uu21C!K9W3|&1D08LoWBc9nGTGp>^4hn-iov&ppkK!n}fdW7Vfd;{7<%g zWfuW^utzTCK`(?afV6LLHpT*CMHokEDiCU67V|^>S?a;A8R?Upm`f+MODMJ+?wGi# zN5wcpymL4YPvL5N9cCC2KKV5P`n{oDjx)F&K6>a3(r;JNPmWG3a}|}>wt(L<*HTMo z=IOwgAG((W%kpx9H8l^ahnF>49F*CrArmHiWq%tjuGJ&@9}V$Mn|Qn|3*DkBJJ<^A zS1vDR4GvYTb^4G9DzEk#1%z;uhr${LM&oD-NUk!Uxl*M^&#E34Jv^g=!yi5=r|2SJ zYS3pG#C#@kIYr}$xSZEWdK3ymdCA5s)X?0uh39D8(n9|`RpvbdcXasuAX@-@5(yJfk{suxe)tOta>EE z!iPArD5`#k?SN{U#3Re4J8^Q6GFeM84qHz+Y`C~JLzoq=GvitURpgjTVI(we@?E!$m45sPNo;IH!v7$FO~UP zwexSzy`^Dtz2HZ2@1?w?JSx|U4t@+{ zm9Q>~jB+!AMS)~schCzTB4EYumdn4D;SrB-87`$|Jr-O}p}{hsgiR3s)FuU+rL_LJ z{q6wf2tuNR>oHosGhS%phTcEqbwG5}dNd>LQNzZ6z>Ny!v}nt2fca!Hbot@yZWZ`& zVA_wh_B_Dd>?Y?}^vIX#@wCLgm@8lWaPw;8fUrKB?050c+LnAxX%qx( zW(Qls)w`zJd+5{ktuDk|gA%t@4i)?IG>o?-Xu^-Uzm~v*xlytf_P}?~deejtj(tB2 zzAkS$2wJPtGojg>9h=*x@>s%~K-!t0CGy}8BMdrQYfiqxZWE#^5egRRHu9nIO8Q9l z^et5P=)+l^t#`L4O)9jxsdA`hjS(3t&W+F25fEk_`O0|YzNG5FN}*lJz~>oUjv&`T z)dJBrP-Ea|XL#iBzy*Q!J`nv4?woTp5H|?<%Z$hQu%ADpp zNpMV;)zw**@NM3|Xa-rDPn30Oj@D;%0xVLv1$;fUH(_h6@$5{7`EF%^8I!x6nu>BZ z4qZ^h*{opdUJ6CV6h6>SPYjP-jem0bQ;sEaTUn@{Xk2dYqBdN{#?nj6KmLzxh_6&R z(Z8Y%@eB0vu?=z9d=td~k8OyhbUMGH4e?(p>8D0Nwjui61;Y|O52DZe$2LUsyV`|4 z`u}A^yjK0~(|*0gkmOtK^w5(d4c8DD_fYnWh-tlwt2-(R!nGS60}zh$x`psho{CWS z9-+@Sjrogy-*y|CI~4BAem9c5HP;Cn=iSuJ^QQ4^QCAwr4NZ!1v*#CDt6fW`YEDz_ zDtvn^neJ{^v@!Lu=F)@x^1k34oEb%(8icPn$itSxs??t0NM&XUuHA1Hw#L>v8t$3@#ax?ZsW$wwDQM>FvlI_M# zKWEwO-N7Ck_e5=njZ4y>RMJUo9IsVhZk$I*LuoASU0VK8t6jjNm?Q)3^t(el{hWmv zhkZ7Oi|3GnrHw<8td3gQgn4Zksu1r!;q7mvNVNedPeZ=Q>0x5$$BN{-*g9)n3iq_Qxf$Xa6-2Ej~rRgTOvu-K;I(=jiSQ-(Ur zMKMbb&RTc(dWSqUpf3WnojS(Yky*)R#b(1!vr*gaJ;pF4x75M1N^9dn7(bTOO8V01 z$TRb9NILAYCksn>X~RfqETP-CkpbZTF)Qh@S{w;|<>u7L!ZlashCll%{6ihER zbZXwUHyem2rpEybaADRd#vnugg}pf7OqPDNdUARRBQhRTzQ04io|-;`LSaRo)WLnB z_O&Vz@W0>>7Fv-RKkwm$Y4ju zEfr0gO#F^h%CdizzE@xzDB&S=F7`!f9WhW41V8TSlIb9ONgf9+WLLFVtT{3<;V9rz z9%s^`;Mf*nX8VpZEP$!yeq76f7Q(SLC|v^T8W+{+f#L-c3yF}(3W0 z#cCeBnabn1lSup^ydm<**1~#w+d^^kvsVx%BWu#U;HY9)R=kWXWM5iak`c+^fKlwy z=GrwgEPy=Q0QLbWBNr~af(}_1pqZezZA$%UCqu~!<_Mv~a>J~8$E1x?ECrxtxtzLz zB_n+$4f+oSd}Pt@OzK>z4b1DiJVd?*6SUErpqm2Ki0BD(aP|Gq>n$w*ds1ylZz8Ww zb_;8)S9<0|1#pYT9G)!sNgS)Mn(NAMjGj)POy2sZXRrO{i{Z}%h6DlR5M?^bP*9#@ z0hbE*QU>%08*o^d6F1WCAd!)+;!L3Au*YcVWCqQWpEH=zw2;@BFoqca<))i>*_&H{ zp_p_f<}Igar?Fwiljrkk!~Lp5_fo76HWRC!{`Rrw8Yy4G-imI zC4jB4k{+1zq`5t!(TSo}BM(~8cw=dLEfsvGbNJA!&ErpTEJ==+AHPsMPk&ZP z=SGv{GvBU`)Gyd|i%IT_IFYR=x^@50s`rUOAl=Lg^yXC*#yIQzdA0VkJzKpKp8Q3% zHf>KnhgUGBu)`E1w=pezR~{c>ivfOayM%m^wd*r*EltaW>>R+&GNj_tkqd{Su@u7uW8FeYg*k_Z~8;it)7pa zZd4`JQ>)UYD!D$oTgCwgypVtc4mdCY2OLPi0S6p#zySvwaKHf@97wNUF;Yae;Rn8-vneyg|qvG^k|+>)PWGB(B(_+K+MX^Mr#-F9_9+3Fm2 zy2*a}ZF9F(n7-JoCHHM9JY1`Gt9IH<+v#Sjxs#NvYhdi$POI7J?I-O{$;Q``-E%TL zj}O|dyY<@OPq`S3UZB!Y&lW!Hx zzT%$R8B?;Q-FA}9*znBQxSe#8_T8kGf4Hz;@9b>twp*V{n)&DRyGb(q*vv4EC(LYd z$wRAmaL{UZ<66CQQ0?yQo!v;AkcC}k? zHN%s+{c4j{x7vr=!obH|lcV+z2%q92{V^Ac!=haDP2#hjfZFn zf?e(ICG99bnlUv$we!up^>(Yd560d&V7ro*yt9Fu4PT1)U`2!#%((sav&Ko<^Z5`BiI=u-yBa7Yyq?Zb34_b{o z)mp0?HfAx*OFlIAOEcH?@J43C9^_B+nKL?v72llB%-r>zy`YaM?c4WSoPO;-24Yhv4 z#8-EB6CpW~`Ko=x57hF{e0z{!_IlFkFssOX-ER6;9rq|SI%#GLHP&b9U-Hr<5DpM0-f zzwk2T|Ln$IyLy|AKChD#06%H%@A?@f{$Xe9z&9J1`^)Ajb19wO9}YEr*2I^4jc&bD=TM!``rh{shd%hvoP3cI>T;|uXCG|) zheIFy7qfJ3uimI-U%hJW7Xn_&o2{|m{#R4ltRFDY4Qm_zlP(X22Kjlj7qE<#tL&o7 zQc4|}H?95N0N!l@4{f)lO9cy|=|la_nYq_m-K2e~-ho^t*8a$Mvt7O2*=q1~;FA>Z zat(55_ncX|(%P>#RhHOjwHmCgZtWL+ug&z`)`7en==^2#A+vCy+UeeqBYcOG+Ozg^ z{@Y!iZ}r@Zq3`C+(nhsiz1ZAo^c=1GWotiwz@weLYQ5Rns)sj2pS}n((T<7!fwebt zpU9tKhR6@a8~dEiKU6GEyY1~C_zum-OliF>P5wlYCT+6E!=XV}+Zw)f%lT1n+OHt?h)LLv1gbxi@z9H&i~3%->nN=lAmd&i+v2 z9b-0%eKP-yYdx*90&*)-$l3GvyKVNfzH_~|1Lx~Rb}5Lu?D1}E(=G;a_aZ-$2|vHu zjFa$Hywlo0Kw3{~amRJA+iNrq%PVQW7pnC}QY+ZywA-ZJZnZ0RDfD|@ewzo3Yom?6 zad)-b^1``REeWF9M6^*kv%`Z*e6QMxdrpEY&tFOIc}*#@vsI@v8N0Z7=1i(UA>i$; z#?9nj?B8n-I}mr4R$ltWIt;V+z)qs*4JMiIfesGn09|Rn+P))jm_h7CQyLuKmY^ql z3wD-St@D?eiVm(e<5u&u9ypW%=^);#9vmR6*UHg>?qa;#YR3q)u@ekE`z~*eQ(p!) z6Sc*u9j6;+N9OBb$Y znvt<)?s8Cz%!DyF$93oiw1wiE3FDf=l@{NcN+GAiq+t z4nntZubsEOg8T~3pbk8yBv+`b|W!G6q`JV`WA?WIgPZQ z+%MQdZ&{QRIfiHL=hTF7dG(F0%U9QKTspsX{@S&x*S5}IId^sK{My#_i~r+1)`h)% zzxj3A+1V?t3%zDd_9=e7)oaw&>gYaZ@s*^}x_22s?)UZqyx)~`dc@46S-jD_(`?;q zu68;}7f8=sP>mfRv!;&I!ddVMV;cFfhrnoyb2sFG?J}B7;p$!gw>8Ua^}7fzt>!C- z|08L)1mh0!eT{;)Ei7IVrTSU|=VN?hSl^}Up`2i2y2Z1e0;h`A2qK%RVjTa{y}hJa zvdbLvR~oIIJ6C!lrviT6ixR57+Hy96_6A*T?I&@!+PPDXLF66e;D_zTMwh}Dxn9uA zohc)!6>Uj6zHb|w{IgoCVL$1t^iS<&V+-}#r|sFRieoF%@(Ok&p3l%6vF|e$z`8E4 z=>sznZH6bp7}5o-oP%}cFcfgShw&$)Q+5;5hc41c>7bX=YEa6~o)U46K5xNDCZeQL zhLqRwc9KA?w=wTPP?s_6)LSUDfnmLusYTJpb!xX!v6{Mhjw3bYT*loNLqpMFHv%3+ zDW0(qRBvoValI1@6OF4~p7Q^;1y9PG%nut95`5!OaN5!B_XfeK=${0DxmoU1n{Yw8 zml-DalO1HHFvWUTrq)WwE=P;XgF3NTo67f*4GN`_`E)enP(>_bku8+2w3-R$rgR-V zz({H2;Cv>Uakx^T(PuH5RBWMe^-g3yOG{IP(nY4CEqTBvzgk@J2Q3&RhR<1X`U;|V z4WrcnD>cH~!*|)vgBa{P(%&b0s9U2xw9)-hAGX66<=JzMq}m?!=|t2R`m`DExaQ^P zckKI4o;)eQe+y_gySL`|x?S{?4}ZAU+Ub-#y=@UlyGgm;`mk`H)AIPk+dZ_O59l(*<5!dz`!X`4sPisjP4N zI6Wr1h-rBCe6!YqniR$gxE56agSYQy2H^w_U577Z>G90Dt`Y+w(xN~Fcgw4G^G}UbDeYqPq~|?KLw+Xw|h`Q5g+37_tDhE zicxK>B?qley}NMVaUtZhxDGi-X6~WVU{;SCtxl(m*#e5R*0T;@X8G* zR6_b`vWuXSfFmfuM~y#w9ZeIV`cZ~I8QG!X0|hx^aD0H<$zJttz12STIO+Enru+Sf zGjMgd3f>=d#7;?ElS_esIDAB4y1-FD3QEtr2uyDmgRO@if?p(fKKgiq8g`<*E^{GC zHmY@`{ZX9I&f{b0RU4w&&)7vjnX9|vlCnjNr-Kho;Z3_5=Vl?;6j!odDhqN@?(Nlg z_Tma1IBQI`2DOxfF4%!ZQ`A6Cg|{zC9}72AhJV0xh3-{g3YEvXUtcT*X-N#G@DvZ) zVF)kHo^MwjSm*HdVk|=z!Yj^Gl}n60d$-!CtIt>V39d8_5_{tP+*i8UM z&tiAs<4kUaCwxqy=;%;j7l?fV+H}yS|8o6;s7HaoBT)%&_5{#3Jp?c`py zt)?saS5E0PFu^i4C>W-EX8?JkZ^#O~i5fFiy1TAtupx-6ZqRZ@4`u}VBaCEYhMGWu zxY~pU>sRqSHl_Fg>0af8#-Yk_={!28vYB)o0df-wijbep-ql7;2^3fWJ3>oDr`=Id zU?lYpzp(9#-Y4j`ezNe4NI9(rs*{W$vPoOJZ~$jd(KXw;yJD%Vg^rPOcChRu%oxk6 z*iJ-yMHNG>73-|%sn>Op9d%z|kcgtsI>V)i3T&H$K}Xqu`po!d<`r1eqwnBU>3ca@ zO}9_`0nb1-52pC$TMUWm(m%L)3op-=tDEP~#GBGgwG~wyo9u+wRiF+?*t=pTf<+>o zxPI@}t8q0AwGdso9HZ0m$Kk>UEik!<9TtpIkc6(p0xFAkKo(qO@zOn*eyF{tq(@;> zj&C&Gc#n$FC)D;GIGezu=X>gd$XsBnqLnCY9`?vQA*3}kAj=41+~A~C0*l3C<0fB0 z)UC-$R^iz_6%g#~^_q8p0Qd^|_2j%#OL=3jDdq%eiQ3ys$}_)M-%-Q#TzW!=raO8S zh3IQwp7TKEkM|wzFkpI0kII|Z-7W>kn=`bSlhId%PAINon~S|=pN&_0yih>VXbA=q zyZ5a427w5g6k`!+ z8gs^O=Sz0E{}WS;-d@cuM=(g}0_&`|#RP&Lq!A8}lc#>EFu+p>Cygn39zPPokQirw z*Un<<+GdxHomJacQu~T6ZR6iG=64Br`m*_Qaf#riYHClP$EUCbQEJ}qq~BsS3f9!G z5FcgCS5s9wgmm;Vbz`GhAOC?-jRR8qnl1ez{}>xfjFkBK7VYxYgDU4{lLz7h#8maF zWpg26LJ=YPE?UG>dyvkn49>(>k!~xnALqnz7CvOBK4zi^`$ao1ZBKU&lASs+bfeedb4XanuE{0FFbD}Y%s*)3A!Z*x2xxb)PA2j}=Vnp0j zv$-5%o~iv2nNoEAPVcsausu%v{zeKgAK)_pu;MZxSnYN9S|F^1LD;3L|8=;<>HMZ$ z3U3c3ZUA%4=LBeJBR#^(e$`-o!0rlD-w;Uw^o-s<7i?6a+x{;Ov|)J`-5O=IhI#&r z5BLIwS6V(!D1MXBx^J0pvG~Hb=gqf^mpI|OqC*qKvgH9=37l~*;)TC_d%2oko{ijyGbLi`ZiAWsN&i>2Hx&AeqaLp63qE50&O(LcuOHZk#1^_(Ac%+>KsF%`3Ci8epus77#9$mt ztkoDgFyH4`iVW=BDd=)Yrhcr)i7J0tIvY&dAy#g-(^f=S07JI?-?@$dzFqMTGfeq@ zhAG1z^kK>mK+V4~e4x-UDc^y9XiOLyi1r zyCh*{o8dR%DmPd2^KsnacCRUHLG;8(j0@xYj-s!y=Aj94dWdp!P|j9coWiEz{5Zk=~prTHUgdm{SGh}ELv;jY9XP6uToV;jkBu@?ta9&lgH0CS}6LEYww z=m!HDS1okprDoY`v0GIUv{YSi0YqiO64IvQH4^#DJ0UjEaCqDzk#}+rP_t@LZ)n5{k_Hflv4YY@W=eH$P zlp|-Buh%6^Fnl19H$NU8Rd+e0`^X;W(tT_phH4TXL5_t(2WxFf8i|(Z{Fu4y9z%>K zVloPJkyxGF3tMbf5A(kXGO%N&;<`uBBnO1>`Qn=C^qpSn1n!Vo!6yB;6Q z6^TJDKWc~y`WP#b@GobSMH8r8y;F(nyJEX;C*58fbDiRpI4?9A#l5)AvKJ2eLq+@9RqM5~GHLNmFy<@itMDQo{h%r^5Yn<6yyXXcU{ zuv@?Vauzg+89uMOoWhJVeIBMkhcVQD-w9&5?!Cny6G|FFgmEruwtBbsL}P&cX=G8N z!EqX7(e5>GSdlius)7MM`;cguBvae89eM}O1$-H}+S+3C>%n4)^be5fAg)Iw@x7j^v_k9b8e=h>M%QeQsT_KVS^vuNo3d??} zo*LCfy3n?SkB40lcRgMn4GI;n>bD2hUXHIPE}okxubp;X!{)`58`@RMOXqzuD{;=G zK21bFyx3&tC16YiCAP(Th-Bq-);<)MB}NFeE@ri#ZfkkbiB!&s8`&9$k;cCLaHwb| z3#%gDsTPr8gLfEe)L7IPaV@zo$IW*RX` zrTg^o6O5v_#keg-XfbjDcGsK7AK&B7VfpO2a1u0XLsa~CGoBq2V=`5G2|%R_P_Zna zEnx6*Gc`^O+ax}0zhkZKE?RJ0#oPd{vH}n5R(qa9$~ilYaA$sqg-wu#CK5H`+Bglx zwd&B!1v4~AV@RjbDX&rapu5gTNjqKlf{e8#hC{J#JS-}VTltCTMOLoUcU_KIJ5bn8 zWYu8kPNI2$Y}Y_2CH}6*Dat-Y=-kB9*6^QL?`OybPt|x2WKzWY2z^lFXS{ArS`0oj z6a9@)MyE3SEmZAJ-hK?|xFg>e76*kPeyzN8Sx?tB2MSy~?~LrpgX-wMyav^|eorWb zxbnWgd9Rh?i;~Tbdv|n4o^Eum5pUbYocy$vNo63>Jw{29ShFJ*C#O&u7Y%WNm*;;m zIXt&lZQf>XL?%g4miK`Bu0IstNgyI5HA`}D z&c}%_&)PIfAY}HBM2!+Gj_36_!V93Uh#pGw9{2- zI%@oJDYFyNr-d^6FfN^-%c$~m(AYs|_#fd38UT`=^~7|<3?`$m4ye?@q3|(3xWjuF z%vYX%1=~Xx32j^c-O?zt5xqvyuj=%{&sMKJve?!LCb)vqWJcG4Y=q7|$$}+)J-6tBPncEcYP(eZm-Ihsz-voM0yv#zw5-#F$M; zBSOkcI-ynX*?9;|NEzVJ@&GAGYf{pw+CCgK;Xe_5(FY>TS{dYtF^gSK>Yu&53t zwD$K~%^6pcqwjdDkROrNMd6OIj+e6ud)Q8T`&$GSLLxiQS-W!HKZ9GyBa$QCCJ#F| z_kuX1<8z)na){QhZgw6gV4kzZ2LNVhNf^RUSsy|1!Xin)r(mj+)7Zuf=CnT&RpN-Z^MFGED+# zy$Sy2Ex!^FRLH8BtKAA8CuTgKZKba()3=pi_SsjY5}K+kl6fwYc1Y{f^ktt*Udc)b zI6X&#+VxYB35a>tf@+xF#e6HaY?iIHB;3-=v3f$JtqXJyLUs7kZ4+_Fo%MS-fkn0! z;_6M!I#9X?aM5p%8afP#gI~cdVYZ@Bx=sk6Wua*&64$FM=^%G~?da|#Wli)I?Wj{; zlCo)ON61^xib#zNfOc2sm1?P~CXDJ(j?{PQ>kF0RWn_?JYclcXZ=|D2rlQZ{e%Iq759Y`99eOf#KV_+*54xSRn^1=pznXbr;WD;YtCSYVB_GlE@*O;CAhgwMW<5s`WNp4c=!q^RX zT6KTBe!J(AiZORnKY>7!-t!;D!2AOy$v`1KF_TY2T0N#RvG)6w$c**qf4;w45nYq} zN_t&OO%a}3rJ9i%RLN+^bxfMXz&_0VIip^b(Q7F#;U-|NJNxJ1v1=x-#l$#<*? z%fh)yy1{NMh_p}c3RFpXI=CkA-RwI*rcA*>qbY%ugk^<-sT5>d3ydOVc~XlBBRdh7+AX!1W_^)6^Mo<0 zXoFKy6Ed}+g_@AVC%&|RMNA7WQX`~j=UfyE;_wjK;D2(}CWqc+=uEJ7Kxgc5riV$({{kJF`fYc*!H?Femvx2dz4lwkgjixj*`2WvEcnqfQp31mBBa;Lt>g zZ*_3t2tqK#On?_8n|q*_)BiSeA1nQnUUKxR0@*IFg>7(HMI3L5OfVPII|><&Z6hY5 zFC9H)KdHy7!d$dzG4y~Wb1C*k1nQ>s!)%Ehx)~g*q(BiqmwPiui!U^jp+7R2ec6FGUxc$f1eB5_tAL#p7lKPq>P0phB4D{&* zac55+Y4=@s6MKae>iuL@gZReGdV+d4L;Yjg5vve~O@vfQ#75_nfU>(udC7I{t?A>I zbCh*-Qlx#qBt}wWyJM|Y#!8KS>U!5gH7`(H<-n|@kZd{ViL#(IBm z+9Gwj`y$##mM-tZKc#N7%hy{CO#ZFrb?zyV(>5zcXDUG65(k$LSrQ{Qj}XTtd1=dY z_%uO(=4;qAd^gInslFh=?)_@HTC?e;Y(8!;x}sX?N1&T497wjh_)K$=UPP8-3U7X> z8y{kRRU|n`3!}uYqbZy3iTdVRgm7G67;Fir8R*G4A5%q24iL&l7C^V%lcLg6RiuiP z@1X;eg7>?hzf4BYS+QDpbC)o+v1C=!{$m5CB_m z;^voJ2F2OjbTN_YBZ6c)iO(KIu+q3hU*%#d`ljH7|MWl_hR_>lR@TOfDpVrTlD8Wa zR(?>oC!%jlx8WSc57qHwBzL!L;i1UgF#VdIz1k#H2|KqjGY-6%Lnsd9V1h9uz5pHF zCL0oK2mz!C`J>I9L)_q|Y71-BCupJ?WpTp;r($Nw5T zN1cW7Z`abdTb)n#D3m11(qJFlGLh!5rI$$bQTHHS6gY*nAns~RN~speoVPKC4Nqw( zj+y^$qTju&`N1G-ICpABm+(xwcIJM~lPxc57pbp*q+~FMG_$3oC_f6~iT_M#h`twG z)C4R!OSzj;+zUeOE=!3m-)`eMbfhHu?8}dh3NN42=4=PHO z?2O#>p_L@i8suq4;k^Ypl=Pyl3z!=+j}7-`XI$l|!I%m=^Gn#avLZWH#7x(#A6Hdj z_puOmSRivM&r0>Xt3Aq|KFS<|=GsroCqy%Kud=o7S8EzgTlKTaDtApk%8*%lX#bdY zM$LGgA$Sz2IhC*EH@Wb3A3#D0uG9e|wUq=ST%U6~u6Tc}N)EyU)j82Qz|=$NNjRrbzrjy9wAGVa-61;z<_hncr$KLQ+13Os5!8<{l*yzqyS9DYz9^ZltB_ zv?$<$&=SSrG5Z&52BdVUII8&XGQH;mGCVJZA1IaHIuuLOFwL9N((io~RBG>PdpHy& zR}&wuj9@DG*hhb@<4@9R-%`7T_xgz;>QZ0?TPM_(`8kTH$JR$S_XmBC?0gK>e4^M- zZM;mIi=+4S*Q+V&Y9e#QOXhb`zM2SlWIAVi45P~EhQ_{~k}wwJ&8)R6+jpwGNXTo_ z@eEj8jMSd~q_rF2{)b#56T!(#3WKd~>o%cG?eXoh>Vjk26nxE7B4P;&%R`mWXN7_f z?-N82yzwZCK}0_pEGU+8+BE@tyt#o(^XhPHB^(C~TTT zq9`Oa-n=#vq5n}UX&|#(9g}@hc+ZQ>4*|1hUvgb9BqBn z`9*J>ms<&R7gT?BqE30=7RE_Exzk~bC2sio+64s2!?IL7LEFymlS796rImEglsgvh@+2of=8#xd3wxy|VhnDSxfE{AS z)i1qOC7gfhWkIh95Sri(4rxp&8a@H|xK*S-3@;juZ>CB&^Fy#2G&N{BwvHQ|B1}H~ z=kwiMvKyya!m@JwFd$q-C~3tLlZvZ%%Y@{*E`hjA3Z3sAj-dRh>ynH~vE%whif{s? zLU2eAQIXeV0cfqma|We>irzQZ|(diFg5rh zUq*^yKz`i-x}Ty@1L(N&R{DHFk#CDRRBu(*(xER(b#TPhpXiL#=bnzNGg9b?*XbeV zB>q=bdfp3^CM1k0n}dWGQ2n7tY0q&$d5oIvuL#Wz_YkKyN_Pr(U&t~nJyJx`IyW6t zy)|UIw%Y%byH3*$gyd@iY^%Mpj;wGNBO!OyXlQI&v`R>|`JZFQlpCxZ@?@R4Vdr3% z+$f2__G{J_(3b6DTSA2>wl2B33pQFe7UiqakZZSp9lSi}|CYA*$)4(Hk*h7Wxw$wl z!N9(mSs3Zv{wIq49cZ&`z8$HI!v&450^`t(7x9rs7c$qPy+p0>ECo z-~^`uu_>cH4S_tflYf*1RWgh?8)mx7?Xa5a^Dt9AQFuyq5jWLrB)7*RV`IhD?n2or znI#q(E;~iU6R}B(a+Noao>LlL^e}UJ;(>DtNu}>*PLGj4|KZW}qR17>eNrCv@ety5 z6E4UttlUdYC5Fowskm=YNJZiPjRSGcVII8okA zhh85TQGq~oA5u~7`Z=I*!M4Hh1=R$#5ZujMZ@3ltO(7}Ym5MG75FvLtsORue;h$CY z8yq#W&k+)@6|2?Z8!Tp-!~7;w5;C&DvBYGwfbZ~AiEQ&#cFC>seAAJ&Qr|@Sw%p9y zmFxqr1!O>*n&FP@3~DalT_Ka)-yyvs5Mxm)L(OBjKpr1coh;xdlC$Vb$aPc*zzFH` z2*KZKlZweGiddQl)IZoC2zj zV|}ne-$v$OcioK+Cpj8ICrTHs+y3+bs!L6#m5t?Y>+pc{*K!WTRA7^0`5r%~wQ_XZbb`PRe_Cuj6~~?Y^lg4_DCY3s0(qp!z)w_xIL(dF>!Bl5C&V484a3dQ zo9FesbuL%$dopvKzJQ2i(H^hiF58kBh1!Jn-W7F2p$xB zA6+s}n@cyEN?wy17vI0;n1}ffX5ICiznM9YJpWOuueaNEs^83*ORgcdYNRIhgkg@76eE!nG8YfR%OXA%a!%)7v_goJ{f(hZ$o_KAzhDO!W%i@ zAy@4rGDoph%f_&n42QngDYWX^%NaiS4&8Cq!F@J!_9tuQ|I0G(NLGRx zAyR`lmfz_g9P_;EK&4O7<6WI?^!aoa<*!w4zNI>%h%D)2nS5??&WnHZRwXPsST~~) zpqVJV(?5^YY{`W~8mB?A@7}IdhY?~SRKVZ1)oPZzx@vY5d1$n#K}88dxmBB6PSD*CL@`l^ms$vZd$C z7N+Iz2BtnRfzsK8xEk{p582(&ahZNi%%^lV8zc{U`>XMVfVf#63mY}Kd|iP)?OAC@ zao*J^pz4pr>`HrQb`It?JB#jtIz5#3YRuvqUrEpMv4kiLf1KU)I=b^wp>q@FF(SnO z8V|f_xsq%Ixh=@0SC_ayDA~|5W!#!1w+Vqt`mWdMmT}3k@e((Lb}&?$$S&$7KU-sb z!bK^fD4VYg%iMx^x96dO1FX%PY zAv{VPmQ7?ZnPVuA6sFoo+{7i@u6{_8t-wlAlzpH?`K#`74BV1jwn#h`UCJDFS%Y0Z zPI~m$XgtjHnMm1~(U!3T~HE7&%#3Z=ciOW57UeWVRBGR>ob8huW3QA}>IVyv&xGR?f zW0jEbpkdxIj^K@%WmM>Cz=*_aSGhWlg38WO;IK;IMPUp6A5=Z=-otvPLS~-uXoYAu zPg%`gg75^o`h9s@3SY6plu)^@Qa6c?!-aLP)a5cC^#Ksf>y|$vhIzz-$I#b#Jsn#z z@sZSfPK2znucssvUw98Q$t3)sWD4yS(Cqko76s{&c6sS_hkRVT2gT-g4S(jw9IQn> z@>}l657Uqn(Z1bekbu!#tS5Xxl){}oqJbz{C$fHeHocJPLt78n10NPw@zbh6hgxl< z5)7k{_5O&z9Z#?4cG|6bwMMJj9G0@?LzMhTDT%@kE{Gm3C>xb_B&VMMbt(znZk87~ zFkQS~C~D)99Oi|Pxh=}6>f`D)+UOwHrMUOt)UpQ7iCjXjI~xiwC+)<*(uvT#~)N&qelh+d>M7#>0@Ij6245zk%V zHgUOSRtCaL2^;=T^Dd<9;n&2J>{S;nlb8MkfU@J<&|~u%OnsQXeo;HXxVyf6^j$mkK{B$*7#QW zY+8ifC2e^;6oTOo-gOa$p?s2jS)Msxqp;s-iT{b{ThccYA2$PpdtNfs5`bhxDA9h( zQjNOho$_OlZ4`ef5%b+zw6hXp*IRzs6y(Y=d6o^}o%iJxO>W<8A-G?w);q~aP@j}a z85wa;>ADL~W(`sZUO%rqMg`^XY;oSliQ;7#CM|1otAW`?;!ND2)tNKmK4`1$j#_oe5-X~gD}v<&4tA2ls1fJwEO8C(L(IGr z({Eb+TX0*y;1BO8bXga*77{C-1D7!Yo@WZIxS`sIp7rckrQ$pP?Z^egarK7P6bm89 z+Dv(ui@VNxfVxP>eP8l~qg%~gTpgx{yRCf?27n^@j#JZ9+0;@XNd;E*VlafbtCs>q zu3@)16dzIw1M~cZB^k~w-%OTn4MHTv>l8F%3u2P^b8CmniHQ-Gm8uo0A_2pq87e$0 z0v{FVJD))m%GNGGmD{{^mN2bGqioihzu4%)$4orNS3xs4Sl^rrw$NL~U9bN{rJ-FM zJ!iKQI&(dvI=8WNqK_|Ys6BKvxK(B4sf)eSLu%`Ev|6geP?@|tdrrdH6tGmM&)pH_yfS;XUPlrD#Hna8cm@;=0cw86 z?`MO!@xh-<4&-Zo3)M$@1S*{<-FOf1MLtl%7?T`JWMsI(M2^L;2I$E-k;4nD2hm?> z+ygLZ-7iNyi_Xt@#A=?He)T=9CdC6?RIe%SPAAp8X=^$GpVwB6E9cnbiZAT$E}s`X za;EUGauK&w*%pyYz);l;ZH)ebMO9K8i+CC|~!ZmR+8`)D;Mg@Y%t^kwta(L7=y z9Xp%y&09AI!T6eUJ3ol8o}7F2U4SgCeh7BH_F}zx*#;Zzr>&uJHN8h!30ab^_gU2j_joZ(j={Q$ScR zO63lRq|?AUeTq%lq;YgEx}zhZ4lJRlQOYm8_|cJ~;+qq8!y{l)(?hC}A06}l;@36& zi^!z}ts|$=xuTu2Py8ouB^Q`GhW0oGOb`EGpfvv5o3}Ro5aKnzohZFU{1}PxROriv zVib$d*;OYd1AmDKR6jp9hdx>#1lANfeYPhM#RGmjx)m2ZgSzU1fnFhzL`GE z6rbecCd4rUV|@?#AjBN1r*p%;u6NV8O9WENPEjPiaIM<>X0^vnH3)G#{i_u73@llK z(E55yRvwXU5W$rLsT!XU8 z*KC|bX4iKQ-Rds8JhWC*mRKWq;=mQ<9qJ?_Z*_l4-NIypH`|m@* z-SbQP2(tA6$3acFpcZThbI0j0)}0bK!#|Ql_TRmv)G_8C$8?x$W9Lfis92I6^2YO# z`QIFe&;icl!W%CX`k(dxnxMr;iv7=y`ZY=WrP5I?j(QjI^^4O-wRrehqM{_fmO=Gjns8RGn`%GXKXCfcTLY zz^-r|{l(fxUI2faN%vl>edk}m*DLN%4V*x__vI2Lt?7cv-r`au^&#W zmOSU89Vg79|BOr2URWIaQ4!PYDezr0rQ{->Nwd6xE|M@Do<~F|5Y8D1%;G1UR;Ck) z%saN!d;W!GB2ef33x27!o-Rj=6zJM&7bCI%*|tYcK3!ongCfNGZjRzPaZiIVx3unCLl zCgdSmD!L-o(^v39kRqcWM{d5;nYg9h3L9u(kOhUYvIL{Xc!F0 z+sJ6t4O83<;{v@4QXmo8jk_}_W|Y35^m^{+gjrkdULuC0i&tA@u?KxHY1S_T`Ax*B zhx{Tk=Hx`t2Z|RFZ=!{3&SE0Ew(QB16SgaxBADKGZtay^6VQ|*tHF?Jlqxw9R5X_vDQ&9t^jRzIyhH&zV~?jClV%BJqS@hAS{;!<%BrdbgRAK) z$vSMSj?6~rC%7AV3FGB<)AJq6D_-Sx}5iQRMuDb;b4d@r8N=UEDa7bvP8@^8i$Q(p>WW=P{8I zNv@ZNA7)c4*=ygaWS-GBc73J5}3rvm>^yn-s zrJqtRgUx2=ZopHh zG(#R4V&H(RZOzPTyInn8ip*I%t3o@~4Ukjy>2hRF137)XETa6ZK7RhAk@=bz@t^uR~CGQ$>SjYMcz>JuR(%p1VY`j@$Y33GlF3XI@!g?LSH0O4>Ln#Pn~M{SDC#R#Z}$2Y5uvoJNnRF<|Ir1`Gdy*mq!gS+%P*PpoZKN6i$as^3|{- zFZ9t~TLAl&Dl7KSDn%C6Ey!%f-00hV&h}ujufL~z{(EzxAY6I0z1tQFuPsLA)`Yzz zr0VYCnKKy>Ay=mG8g?KU^2*)k^RKvy*YFjztU6(;0S=1`N)5M^9Oj9cT?~cD6xtR8 zK%6T~nzJ!#H{d4@&l zxWh9X9R7XgQuuPj@FTuIVixZ=CP|TC*&)FgdnG1DPbJmFSf3a+G4?$(eZRbkvF}-b zi~e8U#Q4zd`@i-k#&`L3e_!6j_!H@?zh`e^Jcge8$MGh{V;`q~RQPQ@MXl7jl`~7v zOS%x|Z-~_>W24X-Z#H}cW22CycVTRte7DBNXq>TeYMin0#JeyyVqeURjfF=uHl8$i zmXwo>^DcQ_0_9js`AAAqJtu)pt)-kKeF-o5mzxM=XYqPy1Y%T zbjS&)S2k=Uwq6`?;ym`x-?4du1svMR8iFXK;@4-hnn8Ij9cD?Cbyc@4I*Ad zT>n;;mD?i2^MG1$w-d35>c76~z(n-V=!DMW z*%Ong#Ia}t_=-M$J=qqyd0&DGlIGodyVaC36691#r)A0C!suKhg0>|8Qape9y3vWi36oU;nMvY$TijJ?ngY0qgm{JKQ7==2EEm#hlG zI|N-q1Y(qb3??6M>Qcs=O%q1X&*?++UsFn6R<$0?$;`m7C7H^QJRv2>BvW}u!E32;*%svkg7cNo4*mj&x~X{EY=^l^3wIr zS<%D{4J`^08#`nt5go@c9ORvzM9OJ@W6o81%~4Cm@hv@wqX=z*8$ZSoTBSXSl)-Z6 zm0OQ7lLWK7)porqr2rtIAt2HPR0{Z@LK3egRL4cgO3X=Mp5O!hX1e# zEH0YgkOzzAHwPJ$s-B%itROpgURRqS0R%-mzb(nej>)98gY29bw1*xtzb(~derv*h z77n)N17|VwbvnLOScm8O8&&hSCW=d50&p=!>FUl7ehsg*zl|xv&NL;6r19Gm7E1#z z5XMw#AbrHtnv@@HwGUkz^V_3WIyfIp3wBu-n*uMZzQqkREI57fJ6IpQ0mp$#Bm-%o zDZZoLiVI4!okzShztgAJ$3tp;tXlo=jb4Ylr1X-qGq%_knaA%Fk2(lJC%~BBe>9kv zGLV;sAnu-I0N3B<4<-up@IH53I>Ai5w(TG#qE<rmY2>3U#<~twuj5Cc{^}nPpbMwzx1K@eWr8YYVh}icA`}H;beIF?4l6LS%6H)P8>z*L=A5(n5@c$^aC5Q4)CJg^^ zN>5XX`cDUU+r_d^tEo^W#~GZr8q|3m!ByP+fYz0Z6aXmU=S3DLK9G&FP1r?3GNe$$ zkdNu5lnn{DR1%trR^>ez#&5(Gf<8N&EeeaVlO3u|6eJ85DY9=szitT~CE|@T;EmQj zm)nLwqaQ-I9&HlcP##OP1Asn&9}~rYa1DeV$Z4gCF2pY^jo(WP!%1kGe_1vs?Ri)e zL{@02u!D*e zJOObvck5ac0UZ0ce5+!pejH0JzeF(4%ZfriSlJ zAu8(-D8qRIOQMsgq4=5RWn5Ry&Zo8f*~Cy3$wDrGWIl_Uk>HU(pNKSiWa^15e1vB+ zj_%6w`R=g!`@5VURLk#9aD_V)6p;y8QR?2d=hBk7(4Q8nrB;Dav?w+ z=MuIynhR!u8a+>2$+_B2h%orHUGzLax`P7%AKb`XJ#%KmKg3xeF#C%MtK%BG z>^g#h)mucN{Pl$Wg6}W)vA$eUrhG+pC?YfLjN2AV34*@KQtM@+)X!08I0Mv7m}Bee z`=X=GdMFD3|7yY(sRDAlx^sv~t|85#&a;`hh%vf}3Env2t@bVP>zpw9m+#I_4el1La14g3(F6L|}`|<>MaR4U`-Gq?!E$B4h2K z8ky=bkM0M`jsAWUU);wctfc+dj~V;INV)NghI_{LTRTW*#LNEvF`xc)sN4)bU}i;v z+Nn3lU_WN~`+;(!|BP8r<57_h(fPXxH26;^?Oz|~DI6X%Hzxw2Huk7*g6TC}V;q@3 zo3wv*oHH66F*l#5%%ya`KGs%A)psZD-yY|bMhu#p)z3=kCE8A}4dVXAF`t|;Qf~a8 zGc(vt>ickwznVN=X~~U~8+%6LQnbby86wAgX8b_8(VsE1H%Nv-u#U{X9P{XYpxo&H z35qEua~=NK=y>^c7%4aYteGb2`#x*`lgR%5apJ!YlN!$`UD|BIpeF)={l6~{iZe}0@h&^KIeCjXUC$NGVs{OEXPbr~f$ z?$4XOz!5+WF|NC)X!X>hHbwSdj}si@$Ii`h&dj|=rPKB$iZH@Rr;b;jNQcVJ;5jKC zulL>|Qp!D)Y}B7k*}phW&-N8NU3HYnfi(2r9z6*VYu8(UN&>rv<6GN3dZf9I9@K54wak11v9O6^&<1hV?J*> zOm5^)nAlg&WdnLAj#q*XBjv_lH*@Dgwam!;@-f3c9V$12i)M}(dS|PT%x@p_4AP-; zGuSa0xr;+ik)d$3nK(EfO130Us^R*oBODiB8t1s^zl1=17Z2qm!7=gaS6cU1RyL(# ztP><&PDAX(sE-9dI#|W)bx5J#4zU_x+W5k_wfatZhOh`ORKZ0tW)&`FJUDivFPzi% zTI*#*xA;S)*X1ybI+<(J5}r;P$tLgA13PxKVQ0_31-IE7G3ZFVwS<*K)A>1k+%cln0kzq0u;kf`7y)_W-2 zN@UechVo)*$$sX)-y<{@WU1mCmy4WSgjd;E3FZ}#bLET_2Gt^5AqX@DuZv00h(4y3 z&PHMwlk(T;KxW{+=Pw@vEC5M+keFZ{rF_<}FNXnx@R%sATAvi3M*zYixJIDGO}&sv z2XGf!?IU3ci8z!n5{YIV-1AXL<0m5Z$-s#QhG?p%YJt%J$Q0)mB&snjo3A5yY6S%?@a|j|3+Q7;v4GqPXB`#x`EU&+0u0RgvH<)MB-;NnS8P!2ek zRcMGCvFrIEKTHhzb|Qr{sd((Q!~Do(Pi+gZMR+Srsjv25v{{JmtpR`)GGL2}3=8{kV=p{ypEekN#-FIcB)9RKQwB4eF z(bLw206VOc2ySA+qyr)6^8sh{R*TAOa+eesgk4fMuW|~yL#0Yc{nNJYSY*C8VO~BL zJkK1$BR*9e%N-xeeF(0AX6sbjY)ZrsRpCiFkSc_PWV_#X(r#Q~*-ojD@*nN`0ldLX zP`rAB?^tn6N5X-$0~nEX;Oc;mcp(#|ibbm}q+TegLIFr7O`;D4`4!dbVk%RX-?Zv8Az4Lx1t7v_n9Y9fYy%T1W68wi zN+W+yk${Ku6NYjN2s( zq*OE!CF>9*?Vm@@4|&28M$kgcl1ZksaWUlS^1=m^kkX-2@yG?LKPgevULbLLEj6$Da1t0OXjuF1Y^q+W7gj$e-wE_ zn0CMkFqV4r`WPh8Ps`>98`VQO3uI~fa#*T`hOC^No~V*)2+J>s!hY+YB$W~*%e z2{ls(M$r^8MgR8E^13EOTQ7$Tv>n5xm1t*W^ZE0Hg^@sdQP$|zm(-XpnSAM`5q&5* zr+JQ`MfvU1@m0ixfKTI)r{bFV)#p^~Mfbv`p2b5d29;&Z%<`a|?k+CG`@Hyr7Vm<+cg3M2%4O)WdB zSIMq>yic*zB_%%`lM6J9$%67(XUYVbcMh%0lSd)4fTfS9jX`1a**tX>kNaGrloYqu@1@S6NySpUR3(T`smGk zYGz5vf#!!fgW)@J$D}v7ibCkyI}NtJzujwh9N`o86C_0?FlD0`tvw`8T|<9?3;ymA zbdPg+`cz8!j*YIZ3d%a@LNkSfNrM=MIM06?*7Mx})Jtm^bYvG3Bj^&RB#iXzw@%Acgp z6_7?G$Dg3&_mi|3Jw2H>bu4PRv1+Zx;pi-?6^ttvY z05Y*Ri}od#(qj6?27?+SPw^%DN=D1E{^jimT$FfiaM&~EvK65kqcrI)3B|gbTFs=^ zuHI8M*^^!|k1&bcNCFNFJ8a!HMme#7XXTU1r?k_6j8b?Z;Gf#6{e}ve#spLYMTOle zZh$L5&KDcfOEJF#BZ@1a`PJr?IdzTX&L#q~!)WBnO9E zEga|3`@dmX;^s)(B6FlLWAqw#(qi1<9N_NWx$^^ArGi74Tfl#J7zH>|e@9P{TFF_cT=T_O zQX0mBLs6sPU3%WCX|Af34ix;YF8jiL$vue-OUa(AXfR*dl-C#i+X^?Z9pElKpiqyL z4k|w#C?P9!q!$>5m4;&=g7=YBapA|vp}I8r6sZTS2-}C)!K~&h`4W1mdF+b3#7bzs z`e31lNmRt+P$>^7G&3EpZ`w)5Z|u9^PZKkj?Rjrm9yl4veYwa!kKn-;EAz{QF`ZNj z2zLiAo)9f|0!zplYcGTLAucH#CwBsKM^8v;MoHNbcMY!q+pRwx3Q%zjKOJ+VMZ#1g z5qd7zB#otvvILCfrCwJahLRjPBJr-+`XpdWSHfU#WhCX6+O6HPd~GeICQM3f>og8a zAEqQL1C+#k{iTwVBd&Ro))l`%{TLp&v2^bHj%OmbuI68_ZvU& z+>zxlhsE#*6jQ=8kCt%eGuj%|<7jQlZUzZQRwt5#L`nH)S{cjJ3`ggsk@Bw0B8WQR zV@!m41O^PR7xwAyrdB2uI*n5`U%KB4Cm2Sq@6^y+HcUp$li?1_Fm)zE$s6V0Vc+u$V@$-;Rnd+hG#3%Acp;04Z2#hyTM7&0xCCW{;>HA9Ui*axx{Wk$|=wTmZ7cc)wi zPd3?vLG4QgJ*L^`cX2XW*?b9sM34i;UA|2Xc`0`K{l*ba%NzjD#H)xSEiU@tT(*!f z;R>W@aZa6Z3UHm6D;S788+4%Ha1zN@suhV)f~LfO*h3Y9f>|tWN^R z5a>gL{!>@pIR5#xH0TOK1IDq`T8a7p-d<}wCz)~XyO};+W~%tr8^joDgG>0fZ>C$OOGIBDeD?0?9|!MfD`!> ztlZHzf-rI~RX5Sj6Y~M`DT#h zIazv;=A~wMCF`7Ex6I&oTJe^lSJ(>d<#`F`d#H*$OqEqf;!=ebe=Y$QQqMB4na%ox zk56WEPwWB`d{PyuANE94MyHHM==tM4?(pZnwPn0*~V%lsR#GBGO_O+JAkDtRf`SBkr@XMA5ox);*5RVZ^N=O&x>voB6vcH zOy^#NeK(=~f-e3ENV+Jy?hjhoy!u`dLn6f;hsbbTcI-w+kQLl=j1KtA9%M`Qx-a4? z3|}WCXDKi&5f)Y0tMgRY7qBbeuyQE{jNz?{{7z%}<;N)zYTl}#8Ry@)pQqeJf^;Df z7K(5V@;Ec&7J!|4Br%(~^s3FJM)_@29RD=zAcq{=u% z0e(M53ZV`h2av#OiIdfhBQZs?WF}O@)v=)1C)=*# zU`13Ju|UBz-C`>OSO9?Q8USFLNxmVSIoZsIr&IhD@l$MdBfwrZ&)X|4z6?Ztlwr-y zO{AWky}lfZ`Z=A6E$oO;RXY+I+5Xt7Q1P^#fabSL&v7zdAcG#=`$ z$~mTf=FITQZebxwYX9sI#|thR$S6y8M9&c>Pm06TIOrTFx#1nrj#A0sjTegK0v^KT z5Xu$e1e0`nyPSYJpm{~ktG`)V)ejlb$$9KW8i=^?j0L`=)=|2SvFq~1E^YDj(|#eZ3tA6UB?JYoE`^_ zDQ|U%LJKvgCs$5cwb{`#`bl~KJ+#tX5J;Ba$%@>})&qyc94Is~!yiEw)$QO{jvs+^ zvPfL;vPyO}5O{yy#d$i4f6E@$TI=`tM7W_EoFGIn*{2!d-HHg=NyDV;;rqHjGEKw} z3V{y**qtNt)$+u1%2I|Z6ug%L_9z%qRrI_aK>a&@+%m9D|4Mq>$?R+U0{J9|yOf>z&wS-72 zJ;*>X>8J&um3|s*mf)vWFwH~j`{y;}#~TgdF}n!`SN-ALCQG}izCM4{G;A9Q>bU44 zToGcetDWuY-SwU4Cv8pigH`X3$_GkO<9*>tJ9_bh8|PNXr3}MTV5NZ29w7PEFZx)dCa@`3=>+OG>d`>fyr5 z)U$Ku%%zK$FK))-N`uyC^;J5j%0y1SB3Uak#*p7-7o7;d7ODy23>ZmH751Zcvk#@G zm28?53*QPmhmk$Q+QgL|M&QsK36ZP9UY5;I7rN&6>D>!n8>c0!JF9RnP%VG!bnK$D zRBR0{FTb~ype+P>mHeYV5YLISt-6PhjfYh@pE&!q`D=ut1nW89B}-bdyd?oQ6U_!PHa+=5L3?;>pWGIU9$t?)Rb-WYZgxxpJoPcfVO* z$ZggriAj&dyV$+CRC!xw=Y2@27^H|r$m0Fh#V6(h{?5dgk{S*=|45PLOuQj`otNPC zR+hFFXnfDKHK|$ z3i~b+tJu@s{>N8vs+~&@W%~FkQfl`2N1mLVfp|aq*Lj4xB&5X?=a7&hX%@-7a0&BC z^;SB8i7IKZq)co|KSbdBtgy8~lTa`=N!VQ9p7nv{4Ug`xIVJ&%&^(y@JS#!38=mZZ zW(5dyeqa1U%2A~V+CcChQ!Fj)DXLfw}!*PAi)|9#F7j|O$`zw9#eBVzBp052rbg{OZ4L} z<{9eDd2lh@-_{$RR3&wGEaw`+0OT}j;h^A|2x31-dr?=2P`!E+O-|}Xx)_NdxT_-L zB0I#Alw*l2r(?_knXPny4XvdFM8SK$UCkf1unAc8S)Y0G>_t1g3k2S~O$h2m4k|i7 zpBz_?SG_f;j$0`>{kM}ZdcVH}WyrNR@w`SG%5GzR^Eur;qL&`xtR2IqUUX3oY>V!U zdKG_3d`TV;vgPyMN7wk055p)WSb*mEIkmL%QEp!98gA|XKRQ8w|c-^6&-9tb@ubH>q*gTs>h)T8oQa0W1`+~OArxWN zj|69}?-S49gI6A6rW>4dAwdrNaimIYt|`sgM>qr?_kTL*)4vreZ-Oz@soH`gG-F#87!_JWr?GxZG|)L` zR2NfTW~`F1y6e(8Z<)$fwV1%aEg33uKc^TG&j=?0kHz)jQf@qL*PgM7fe(;nRBLI+ zc@>*a86P7a1-Z8lbZ&PF`Ly2As6DvspWS>?@?@OB+y}q;-h})y8P&X-x8XtQQPjzZ zLavXQP}y9R7=g5bOo%En!NjG%Qb&kiSlU=ZJjA5wHS(5(Ifw67mex+DRBgLZG0qF#2q(KeVF}pA{xbk|>K6w+Hr1fn>NKsq&UT&cbX^ zhfpjLPYywwgYMqP!daJ>x7fKGFx%ATqwDeXIW6-L9F8y^MhZGLxaiEheTpkF99$uU zQ;8bb0y1&qNNPgB0Jph)MES=Ua3pvrv)P;x4!GZfH(Z^65Wr5AzxgmKr=p{ae*OR0 zdlwM7vir{eUUg}#NqQ2^M&8xz_UxAJcG8-3m!%nvS8i(twH^~`tw&30O=jW|U8U}l zRGIFsc31aE3Jy5nfCFA|z<~)k;D7@YaKHu!9B{x{yf6VTIN*R6X2Ah3IN*R69GC?! z{6F8{@0@e*t*+{aEI-YtqBTFj_dkWZF_N=?OZ&>atAz7s3P@=Qz*#@D7Oyz3l?yD zQC$r~yH1=3$W0bj##4Ti{POrORxgKZ1x|rHRfL`Jr5wUpSC=-d0qn$-5kzR4WFz<7 z8=I!C0gjh2@03|z)mRZ149P@`N}jaP9*cO9Kv}V}&`MUO{bAm*UmJhxiao%s9OxR0 z)zM<;T(r>-$;^(bk^FZB!74UXK{{OFn~?6(#Cb(gnP7Zg+fSzd;NJO!Y2&n{GQQzV~EbNH@9|e%nB#h%mP9>+uq@w^Y(nwQLG zE0|!n!(t}~V{|)4>iB5RwA_DS??l{S0-*KZK*%*m(@8;zR={43SU{PNnDsSC@&&%g;?m={Ton`LXp6x04d7CJb8wI1E0DBL!P=`j&X}MXE+j z*Xaf;c-f!=o|BGcm8`*pFr!4lXv>Aaa1g0{f zS;ge2;)3cI^X5ZG-4vtj`vBrb8midv?uJV5!R@uG%^;4;YTYdvAr-xuG*n?|X;G5Q z#3SfQ4gGr^j25nuBuf^7l4OP13e^$uZm*c)r@){vds>iN-*!5CdhNbue_6BlAw-zj zj!jp4AZ+AXvmes@VcCA2pFn~t3gOW9Qfg9)a&R4oU=W|#yw?P!D5%H1l!BTPfEulc zF$E?@z(j2EYBj90cm!;e0@b4SSX!QJY>=wu7GY)lzsY!W7UKoWSI!U%G@-+YeWb!s z)oD}EGmxv4M%BCo(%)Qq#qIrL6q6{m*FAhs9WFwQMpDUi9ek;nq zyFHWK=q*M~Lb8P!A<$9O5E~~EGdOfbsbR{&PunWCR&v!UiST}XwKMq~Jhb02;P}R^ zGw4TIII3A* zkqvAXN7cQXCLc_cA#E&FU6RZxW{Y-H5M!=<*RmIbT}-A`MECBZEP<2R=%uyk>^X*; zsW(q4>Pexp#(L7AMk$5r@g{nxffp&HRx5D<3rmDMYGMH#YAqeDbWb2hrE5vyR@)4E z0yH2PQJr+_oMBMZ_%s9;2%yeWq0$XG5Vp>;W^L}FrrkuTH7`bUMEE{JO~gJ$NHCXi zt&}tIsd{M_EKh_ZY$kDH@*#cl&dSBe=uV11hPgW{X>R|zJaq|rF}ER2-n$I2FrOOT z0e{gc;bImm3Y{!neVq;qFJ*3p`nEDvfEEV)wB8eSXVO83f%sj^jiiRVM3szHQ~=Fv z%)DRM!TKYDh0#=t2PiRVCIspsoLHIN-s?gzG-|D)2NCJrq{Pr|(iy5!{B2{YbiG|& zx;I}HUuxT0%npv82`1MvRpN*|V7Z)55(Sll;YgPQu8BH3JE*r>c|uCNBr#9aQ+ z$1rx=5AkQF5JRdQmrJ@I`wq|z+!9|WN&u-<_a=J8yL%!;is&(!!=hiwKf8y|`^kJp z3`+7(R3$|&MPrqm5>}|;@T5|WSw9;05j`(m;Ko<&V#X3b!qQNv45_H%;0!}HGV9mg zFG1LXx#4NWiS(L5tzte?iukD%3re9ph2kJT&RE1X3>Plzi6&%XJGU-^98xKD)Cbwb z1>5Oq_DQ4k-UPK06N|aoxr>fkd<>)@``PV*Bo>N?Y>+08)$DTasjx0jmP6;_Vk~Q9k#JqB zEm~fNCC>CMg!EXfET0ae!^;(U90x}pDoi#wSWB*bmGIb%%u?kFoE1KVY8<=3@y}UO z=&o^mON<7)Lx65Lu|6D67`^$y-J$SnX&{UYd|X7H!6 zTPVl0x_&eN#_`aMT6)wt{hzUcO`GL?t{YU(nblRVK1{2hP==U_Xp}3a)brP{MagQh zn|H@M%k!wlWd43L|K{=7jCyxtAW^KfiU^}?Bl)+FpDUWj?QSsojWC#3J(K19<&pgR z$K_)UP&G<`o2F|XH>_49l7gmM&2jf<6 z-)m1FO`@SB)@`atzdUr9V+9y?FwXUn(U&A$#a$J<-9ahqRv{t;blfB&?7VS9dnEtL z@Wu_$qscl~{iO0s-1&GvZ5&?1LTtixY9jHzowRTe!Ty09GqLrA!nNQPQd7dInd3Rw z@kRfv%v;gH;q4!-fdlC}7_zyip%nl9G;sLw0XQE|?Hqn_08CX*6BSd|Rx;h0aQbuJ z$>A`nb6Xx$>G$|dts~cfmUK%u@XV)L*NgM!44HRUzxnY!ho8&kgyFtmM=&WT#7ZRs zV)I=Nb`mGk8NiTdAme$BxehhX2VjU?wi596>YRe)`AoN=Z zQx8r!3IZjr&~8i4+1QGqX%L`*nFtKBXNVeXt-D(`{#@8bZd0k5x2^P*G?5m`PAW;I z`ZeeB1OWFQ$;}R^qwE(}AJ&_!1a`lty2!$$t2S;m>PHSAJ{(qrEocs@(T9WjEaIM) z0wsR0S|{^0mA;a@!yWij9q@HJYBo4$P{WTOgQcS;)tS$o+sQL$KwG#W@KJbynbUR5Ni(>r)!^YYtTrbf|1%!&VnduWJRxZosrg_R=NA zBZv}sy$&Kf6lDG&#lZH+zVoo=cx>~5#SZA^Q9GMY)-LAzv4I?9b!dhY`GKqLb#?JL zTxMIHk^JnL5*s^ycCvnv;t-v|QynfpyD!d??;9gmP{&Tc)sg%Id05!=bouc@P&$V_ zFFg|8^ob{bX(q}Y(yv;Iw_r8dI8T`^3{%V>jN~)Box$JTY7Y8NEF)$2!?v>FQME>S zv-V>Ck&)Wfd;`-|et1n0ErI+^(#B_onwvIbeR}-yg{jPP|CjY?@$j zD5ztLrLVG&446HFH9?y5ob-ID&mT<-JO{BrKi&?fYGCBxVB*Kj+$jV4|4+Lm0 zhK?kqU+#^Jj#)F4wf0!}z53#x#>$)TKYBgOejg)SZQn;m0LmW>*vMco{^9+A@sBox zvGi5;hXZCWuxIyx{3F}gA8KR&wP*~I)SXS@ZEc*OueJ3X#GviVi@*PvJW~qL_z$YY zaF&TdW{tIIOpMrm0d&$(|J|14Wxq^Tp_S>0!p| z|Ite}tXq(;tX$HZo0BhLMZ4mWqQwdInr6^SmahR1l+9HSlF0ut2pm?Puxvb`PK~BR zN#B9KAIJ|It4ab``FBV|YW~sJJ?MDibn$_4 zQE7uCQ6N=x30;1(KPl)3O!lVPwgycOMH^dfW54e#{wZ~VeR;EdAy##^ADP;{KclOK zqOtu!D@ZIvgGv19$i7Iis>49#$~Nae<3{iK^O5Y&2duDvSW(FGyMHmVf79WNg@#U( z(AN3zca>EBNuHlgU7t$V_Ad*9vPex(EHw-FHW8GwW5{+YL(Zlg5o?oK*Fc-m2Ao+N1TiFJb#EX~RfNt5ubetgl zW(m>(YIeytL0Jlm$s~>a66D}r#Ju@^2NuT(epL9t;>L1-h&}bgd@*?KUgVv=7`8oQ zM{<2FOR&<3;s921r>RLAo!&ed#rP~d4prY-@Px`Mf}n;p5f482JY=C%1z-KYvo$^(lDuh{npctvbm;{-^9 z8b`e{)qE!RqgH}2{g(OxJW{6!DX|WV8+Z+Hai!N$G4whbiH4WdC%set6WI|s>`@O}cvFsc>_m;zunk+%jM zHwa8&`}51K-{m5&-`frjdnd1z;SgV&T4=4Qu-s6;`KkhpB~mJ6f;cMgGUbK`Q3<41ut1iO z)S>frj$|t00x|fTMm9aZksYg|>Za$EO4g#->vkvg2!&sZ%Z&Bl7Pt4c_7nm?=A!kf z8y%Kj+{`K-4?C`p#SN5^xim^6>qF)(kL$GWe2QA(jN-eDjf zy#TQ11nY!B6ouGU$O}tOJ4=Kg!$Jd-G7sL-fN;H$NV^GTJ>$ zNC9`Bc=SRDVhpVoDjhF>uf5i7JexoIf`XU(_mrex7rJ<)@^10`i-uK%B7s!R#$|2A zjma*z7JhLzGrDOxtX@Zxk;7o5$lbLnG~MPm|w0(OSP=8KqAIEcr+SCrbDc} zML##P6QOV!Iv<^zSyn%FJNjCCoiYaj$H>l(@T**zedAw#k>_kdiTav&5#LN_X#9>q z-73@YB4H-vv*?N_+|$#EXZL zmE=Xcb1A10(jT~t1}8MKdD`U}dMZT0wk**Nl9?YJn+*v*6_ITh^}6R3BTl<7NgB-S z;`#PsYLvWAQ)?pB{)rJsprx2mdoT7M_nR zE^ArL?CPu&PLrOS47UiP=r>MJL%ZL!;`?^hys3l{6C>(rpNyj^6uQKnR*3bEu{x^C zX?n7y2ei2IfT8JinZgia!>Von-cs&^1i-7LIT^`RDiuEn5S1$bnw({-f55VhUzkRP z|0XoGh;g&#P*Oe5#rFa6Ue~LjEz&Hf&Z`)+abba4``ex$=ZmP<1F4E@59E6k}G za4!NNC6?%|VzUuLStM(=KyPSyaiW1>n}QEB{t`jbM5Cutsnx+EiwuJn6(~=~9YM;U z%S#vgN+M!cbTu?w!Ep+5<-Z7SYo)abvald(-0K%?aB!XTN;->(>&W@O&f5Ev`w8JLsEch*B$}$%+CL@?ur;yJA_MZKY zVauvngDataVCllX6=p2ql|ANOQb8!54m$N6?GCT4a&^w+bNaDE9nN+9sogEOSG?zu z$_&2dH`;SaPD_)n+-hXAsc>sT)t`}reMu$7*XCEPU42l#D6o)?9#}o4UrY$A`_GB_ zBQ_FPyHn5wzSeIVpg^<^kup>6;(8~>-dK8uzp0=@1CWK_c?A?dQK1VMTo z`}?yCeOYwRGIrwC4=!ter4&SNrJEujNesszR`0xr%ANeYKp6FDD6@JmJz83AKml_w>wmY((j+z^m`$f zlIE-eovrmBiWzC9v>X18RM&112C7xFyUJD-Xf~u3m08^Eo8f&JmY#;AmF{PFx}d6> zL~ngO&KhU3f(_WVSBV(0rCiTxgTlHz^uQL!?i|D<5P`GSdj`XR!bT!xF;SFR;deSm zuMgsjl_)Oy{F1Yc5ET0w+L3(yjqHtcHz$?6Ln(-mQeT370XR$%(?nylO5Dtpeg`G1 ztS0Pv060x}z&a^t_wSo(n2RczVXqlkE5K;)eZ}81>_FCkW z1d6Pgz$o=3ELX3{H&7gvUWqA2BIVS1>Mp(3CUZ*9>Q{KdQ`V4&v)7*RAlmJLmhcVk z`WwWOhB-J|9>)x7D~XDq-UCxDQ6kw}g%XbBgZcC(@DQjYy^m!<4)5ropi;f(B90d*m|NfIs- z7}s9vJL3CP43a<kc1NAZkz0okjPPU=g z!-?Fl9^aP8U5E*eX&W4E#SnazhbO6+M_U5hNK_jOjW?fi`pX@&+RM|3YE^crt_R8)7rbk3$4+ zv}G!AmHmq&`74)J<-qCp`#hiRKYk|1azu4}&=PZ^bu5NaMQaSiG|=5NZ_p>Oi%>j@ z+$S*@6$=qNf^0xMkNevqh_{s5o?X@r634TP&+t~9e=$mNP_0eooS;$Ki5oj8cq0?q zG?(+hWbN_@d%054OhI`R(k?qpD3npsmKAX*;dheU(_Z17w$FguD4c#_RmmfFO>NxvXj{ z^IX;}tDiUVUMyQ#qZ8Rv)2&VIXM4w#`HpjUqAQq-cBHkNx@N1smA1;+8ugP{I7*Ig3pO&*545pHZ`^<$Eez1;zip_-lEYZG{5Tp( zYMOU_|!dWEoX82prS|_IW)S zsb7%e!fFzhWR)%6g|STkrzbY8MT!$_hyeg1w=b-+pfpBI{58u9{Oy@57tdY%t!c_) z%!vbdFxymd$W7f~95?homfg$R2w6K9Oz@or)t^*xv=pHtCM7&^<0NbRa<%n$d=O6` zE2PB@1uky2VN~74q}?eTI&8iuE`iIO>RwCCf@~}>_!Gi{ls763CH= zT!*GCwx>8+`T< z&F);KD!OGx*3dg+t822CaLLm8=qx4Z#Rd8pR$3w+mjqU?SZVb@;+Wpoyx6dnz$^_$ z*0v8On_b+G4p00{M8?hwEK0wLcHxdKM~{wqvAA-8-#_ljKdRKX<8yLnoU%xwLv(9pNoX{A5T~yZ;8MYmO^2Wl(w$I!E*}FzMvb{9}hCCX9MHr*xPw-FPZZ{9j-r zh}ef87jzuIsg4$?B*e7pt`={N3w2FIu0Y>M#RE2;%9a4k3a=^xlJ5Ut_AI?UL(fC6 z(;atW1Qpw$$?2x~S;mZs-zp#oF^~D%6tzw~K?EiQT)JVvVcW=N@@CpZ6Z0}g2>ifc zHnNe;Qb0pectE^j5}KT+_v^>&Pd5+Ev6fY+9%XoS@wg`(#*m}`ypgn%oPeD^mjkpC z9Y|k29Wf$Mx|3EIxU?wiD+HUoaZmSg!ZCd6CM``Ps=O6RBVWuc8L)SSKJ=Rw%zLI`)QMPFDx$4~5V4 zqb4v+)z6%pJA39zBDa3&cvC$FRdcL#u$$mR{DLODbfumEOJ^U|NkG)7JZ<2>H03W8 z#5i#u_4Bp3Xyq{^fXsqyhrY9u*Fu@5;#Gm;>zm(n>Yrw#Rz_*Mlf3hlq3^tC_on>3 zXce4qAWgF1+R=jQOj;3@vuL9fQ87~?6zXW)^*KCkC=z2HEYgn6+eeOn-v|z();(3I zuCHK;6`!+g7>(?c!^ur#3T8ho)#T%zh7v~zc6VAR87TYala8E+Yv&|H z0;S4%3<#gToQu+ENue*JY`4*nYjPZ;6tz|x^{X2cT^V^9?>x^u#oeN<=PUODG2i z8pZ7iT?@0<;07uIJHwJtD9kcrWgm+H4a-1me(vC3KXQ7{jN8Q>Aknq?inKpCm`WZ7sok;X)^H+ReqpO zGvR<-#t>?z{Az%t>*pKp0t*i|ci~JsEN&mFp(#RXhpi=#uqfB+c)}i=qbzf8VFd8U;(^8?Dh7a4p`_?*oz}B?GpH=n(_-;xFkMG3ic@!f zuRY&|cUukLi9_}0o~s{4t(W6iRFb0;$S9bEgRH%BYyI{R>1@4EI+K9@Q3WQp#IQA^H}XK#-t_PQmM0AY}vhYqi9dNg&+xLZ=sT{f2 zrkaEp-NFlPU9zELs=*clT@HF;X!eO1cpLl<5OtlqVn3kcu6|CcMh`{(Fh5RPebIPz z%Jz8(?xs8n-Gp+X%3||G@s!eI-#V4hO#LBdV-wz4(M&C;WVNHLbDX|cYL$2PsrnV6 z68#XP-1(WOLO;#vx+BMA@muldrJLpRIbihV0W$1*esD`>{m4UR{g7EdWY&ljeHQzN z%z8WX@TIEp23HnL5V$u zUKEU~4?TklYQb;#&@&jN+$~hChn_*XIZNhXsg7o7edrmC9`A>q!ND%uhn~Tot|jWB zXYiqCaIHn`WHi6Y66n^thn_*nh7Uc1hJ+jLAfFu*rq##rRK44Le!}9+I7oC3P<(xnm z4>eZVX-k_T?Q5~4ey*NrBh$jhDnW&c0ku8~ikFKE3rWpN6)WOE*Sp`=SbCFq&-D(K z@oaHc@z8t4l31odFV$g;726b)sghmSDCtywk9mpAvJEsT5v7nNC5#Z8+9VP2Mr%na zR*DNM6_aR@RbdrPqQ|V$yO5Ko*IpyoS!*USEhx=kl)L9$XN?N-qE9BwAjcoEg%DQW*jx`$!vw2LZQgfbqige4To{Bm6z{(%#5J3{LBV^;hAsn$IwPMs(*-l~X zv8#8|mBGZ4(0Q38@0g~o6~&E*;8eV_+zlPlGr*cM{nLi;^H!5$(*HJ~DzsO)LV|Oz z*C>aX9WE8MSR;L4DWq^WJ>-rIHN^_+UBYO;Jg0gN{)UIcrERUXRjt;)Oy$LYX!suU z&3r_M5yJ?MDUU3MZnI9XHBNYpsICe?ELa;RpehUylvcz@=0-IUSvk>nC%%P)#R2g zW9LHU8eM#ksV@+SOs|cV$aWNatIH|yD2u?WV5Ey|Kr2m(xoXpbLQ}Sc%v;YsbnZ{q zhs|D$Y;NExIKu3Hqjo%Xb+h7xPPoE;eKew%q41s^1jBOX>9=CY(Yho;IJO8Yu&URu z(vwsD9k>x6ZU%Ddqc^WlT!j+p3R(R&|CYQiE@Y@SuI{7tz)2k=dVUdA%TsK%RPot4 zTqye-@;B@l?S8WAz#^%X<~bae6=7(`k%VT|N9!bkQ{g@E;9XQObQcQfw?e5|pt$=SdA4LQkTI(;LFiJv_(#m4Yb<2;fwSjSx zYUB5{voGgYQppkuA9qyJijrNP2VKOl>%JN91KeIfp5(R4(dcGD3ke<76}$OS{mo6k z)fF;@@pw5AcH|7}&0sQ=L@0i2#gcL19Bn)`o=dmGX(yD&A>tQ0V3P6PYkA+Kr9>J- zyJi&p%?|-T}}9sl(W*kQ{i;8 zR>V;42jJW5R&s5vw=bVyTj4|K!$b)ez6#HU@AgidA!&~yh$dK?_6l|Zs9 zS>!>g?SDVAZ@AiCmT2B&AXN*c{47>oT20MaHcd0goggQ=fGF4 zGMbly_v?Y>DYC@BNC=mJCtyZeR;yUR{Y*s+FZK^`5nGZ{v+q+ibpiP_J2Z7sOo48N)<4Sia?a8vfVtsrtm%a0(L@C0xbIRI^_xH9x$Y6rfV4#p9b zds6Uo5g*g!{bIX-4P>)14T z`PjyFXeJ77b3gWue&uQ~oVn!aAa2xSPTuB4ZV7Kgxd`t`aU%*uD}6G1Wc1U1kqkA; zlSwFs+ZzrbQS5yD2T4o+VPy1pFoCXPC+uykRa)*vigzI7NzxH}6>XY+*ulhr?qx(D57QKhw@plgI=Yt&}7#6wt?5z2f>T(qbiW; z#}k)G0}C&2(4;Ej0I+TIQW;<;LLU8&A+~4Y<$T6{;|XSjx726W`M8Amj1J5lcUeEe zKB+9Q^6rAk*n!=bF2);CeHse%h?b4)^FwK?1O#8+Ah4g`jHZoG4u!i9giX8oQiAhz zy;*!+hU9@j1rB}{NiTXDcR7)hl8f!7L($J zK>Zfgh0`pHELgP?A&j!LIO-iPEv^CGFyo9vyG7^4t?5SX_*BkXAdaFNUd$2GQ8+AW zGKF7U%Jrx(#cCFc|Hzm_R(Jsi&XMuZM4@59jq)64oBjIZ; zmFW|8$)-|UT! z_pK$g^%+O|xZ27F;ESP3u(t#d%T#qu45OQ2J9#;mn%YN?RF4Je7nouhkEa&QJJeF7 zIG=g4mZbq}%m_cL^r$yq&fTQeT3YX70!J#>4D=P%pXLzc;O?NsAkEyd0nI#6nJ+Hb zOBk8epz$E(n13AE|H^82>DAUE9icEEi7w+XS;k>>aAB#{S?-k;IrHZppyB{O?92D- zUQ*GgT&h*gmTh~O3*1&hL6QGCk{>&>u-I!!sHL;&T06^{pSaL^Rae6X(;WyU0qgg= z8*BB`m*$Y|zBUJ3DZxu18wvGm#sF8I&W zpMG8$UEanOVgoV2!-NH54cc@_Ix#X>?@;zRT?VOC`l!AUHnHJWQ=rDj<}4joWU0Qz zx466Z^KfFxwpUxg)vZ_tfyQGZ-kZ-VT>SzN(mZg=#I03#{u!!|*g8dJc|?LKpMh;} zVXbq6&6>ftk=2j8UF&&s^#!+N#T>_p(BGl8)%DX=j%PaK$AagRc{bYpZOZZ!uNjlNH6Pn){?kbQjZn*Y;-q_dt-Oby2TEd=E$N4?Czq2j5Ri#B;99?Df%7||djtU;d1nBfGWL&OiqmcpWZ+GZ>)aiXSF%wbsHM19SgN^$k zuVQ$93R<3D?IjgVUEFwI!zX z0QpJi-wC7HDL+X_yF<2e(04*x&$QRl%^W%XgBiQ_5`jwB4&Pb3tw;sFrp*&V%J0dS zplW)O$|RqtG;t$q=dn^cp8g)yei1EcJ;iU1OCS>9OWVWB(vFBV@Xv&UCrE8K2R~=MFzeymL-q9? zAA9xf@}VDh2+l{d<_?)Zly7@nJ zE3HLtm;&e+Xh9@#Tp(igfE)$ zC$7F1V){b1ki8_W?KW*{W4wk3;6-bf1*M@9Y0@}~%q?p)Gq$p-`eA|if0k)$#Tl;% z+W72sdF@l@-%$OyGL<_rJlG`8D!-fff0$TSLpu^oSD3dKHMa%T!TLvnMWDw$gtP7RdSj{P^T3QIsgfK zR(#!{SLPUsLNzOCTy$Y~beJsajBU&atl*1lWJ`u}1&qY-uxry%r#JmdkAiRU($$ifPi%YsaRF=HtGc3-xZe-@u1!K zUP&m4$k+EOHW0;DZ+`bdDy{#zNsBui2n|&0W_R*MCr}dh_KgLDe|~WCq(JGG{(OH1 zPj}EB%;Pgy|EY%Jhfx0ZSQU|If>;_V%l>b%oDK9f>}#8q$^$p#P@*lo>{h-1H+6=K^AaneUx?~H@~!1cT^Lk zwa{LrO|+bIV9Rx(p}om@&l#CxDLP$-h(pI=ga$p_K4B~mwkg~Q8pe&QxLPIPX)fNi z`%kWh;t@f0TX~z_k=pdUbupxcN{XNd>nyWFPeW?fTgnEap|^$IhfP4%EV!7F-P3Dh zd6;wXO){@Yw>)g%we=;BAh_9CQchfbLK5%yk{#~GJ;mv9v+K>9a&FCgqSy5FDRUI! z6vF;{ibcO*?>AXfNoURhWYv*%D*E0}i3|$}RZvAJ2Y6J%z}amfj(Y$NDmks|0gj-& z&{1! z88zHH^8PH}uc-$0h3mhS`O&w+tu!D;O$jHh4G2J2d+iN+XWd(ln{m^Qu-dW7?`c5q z7Mlt&qXs#@Xf}4_ho!4&5(;yLm(57~73D7of_7aU;iI4to-?R|mjHAGe+uapXt7z<~;EfhNVZ24UMs$<0#kAa|Lm6Wi zp%o^7xp)!$3bt3!J7nH!fRL9kRVcyFfu`85w5| z#6k6=MTu!`>gUZi4fV(qTT-g1ji4K;z*J)|p|cQ6MHV(P@{kw(Lhz!=NNeU>D2e0X zwNsG1md~k`DYmj%PMx;Omn^QGP>3B<&XI{XPe&k0RlywK$QFp*`fa{Ufj>U)?%dzO z#8KkZWArA(xZP+@)z6dvDHSZXl|}nl>@{BD0r)5#6YqHKXJZ|Q8c)LFgSSX>S7ID4 zK*9O$s#0DE-}}#y|sM3Dnt8|$AdD1B9o1&1n)v;sg^xj%kw-q;EFE9 z)6>;=CIdev7Lw_p60fzVr}3|w41DDI>{qk1bM1xOw2N;oA@*^x*W2w{_Sla;_|wm4 z`?C{@?=#PRAak|s@mfyyUi>yt#klP3>1_O^g=MFVwd|d>{A}3b-G$}!&_cHV#cpS@ zmOW9+AJ0|$VtSg+9<9~R{O!&nff?wo9tFX++3VT{NuePqbb7k_$n>;^%Jyb}fAnYo zKQXstStU(w{7UPNgS9pu+%e}C^DH0TFFMJo9CYth4UcT`K$d6wr7vcCG7f9s=}l)< z47;y*E6-}@7p(6X=R(u%;Y~SZB&hi0#?R+<@krf5x%>L~Y*~*hDN-+t7@2%$}^JG^rT)v&k@V{3sEH^Bxnj)>JN$UUUzWt>bBDkB?=ba=2ITg(pr*DJY*>TV)W|*&kRrkm2yKNCrwt)qLY8~!H~1gU>`6>oQz%BVIW%7)Mk_&n z3Jd+xV#JaFxQG#(QRLgDaX_=*-B|R1!qh@Mp|TGdM>_N|$C+57DxO>_L1p%7$*x0? zZ%P8L@H}owMN}w*H|2t^e(wJl@&D3^MCTq0nN?47Y9p0wH1FR?VM4G}LRIE?FDRxD*e^Dmqlhl(Q+b zBX@a12D0eVsdK3>XDb*q$LpZrENliTKUdt*!;G! zJXDTIL3iU3V-deWJDaZ>oXG{A;GP_+*fc5>40^)(&2oNM4>iA2!mwEaen3tQ8Zq=X zsi101x)|?W!m!3SOK)DKKHbjV`uLPm375Ng>yQ)DsU^hhHN21ZTN=G-i)3sM6vAXo zkQUU4EqdS9g_M)3EvexS{nx8h)ew2$>vJd-wi7^jt{kd;8BD(VEl?BUO21d!5x!6O8m}6w7nv<<^Nwg)cm?mA`sb~@!&)EiL~!}Q1rY( z{+y_8IEkrLz^f>v-*}UKK3(9vSsLu9o7#8j7jG-YZ5S>goL*DeE8^V}=fExlHF5Vm z`O?R(MDghyPT0E{RUcY+=V{jc-Td&$Qszrmd*#ztd@SrNX|&)p3Iq!IM>0TxeBq)u z!G2SQ5h0Ob4w4Nh5pq!ID-2n`1n45>OfxXW$GHn4+v807Z6GEYc%i z(mEx?1fb(Eu|j8Y_fDtz)LGtGuB#!sS<4CB6<1kpb*y+O?}u2J-wlQDRBv-?wYy3* zsz(7#XNQ~3=1N!84=>D@WBsup2+MFp&LUOs!Z{ymY^>Z_YpwDo{vX~XG@?LG#cZ2&fEyr@$UsB=6hlEhsAbRvenRMX z=0`)nBBi)M#O(9^2Y!v(fd9y=FxJ3PW9Q~m+U7R9yP&* zMU8}-H=a52EXQ}H{#5;NwEP5M@xtO><&-+bnvGY(&PRT>m5X&4|<^b(2JapCqe0NYWXWk`ltle zW0p#?*knG2wcspegR@6xRX9b7{S~TiNHa)r`mxb~FASl_1vyXR2_)SD0gEqoK-Uw9 zMBP0fS-~zYOr}hLG9`2wG-{MaBrAh#P~u#nA&h4!La?Vo*Ichx$tOlDYAOU9V8bdG zr@;amr_YYxLDQ2IZs$aA6b~0Q9ay+%v?Y>H7*JQtF z>`>^9($G-j?$K8|c3%Y) z(ZsW4%&;L8F%%6HmZeR^PD(Ox<$zH?w%l6Tzz}ke&>aiTtEvs$#kY6JPCVsX-h~&G zJdr#Lrq2DOZ(#CKoC|mILm} znrbjC$-x>eQc(vj^TZqf)7hZa-C`9~r{sT!qR3-oUk%htjID|mr2?-1KS2!YhS3rO zcxAsb5v$q?F75@9e@xXQODFqdyCYw!+>!c(7nRjo+p4LSbJ?M zUZSFAoQXAo9f(m7SgK;&W>izW=wzLokFu-)=d*iLl!VcCR=O)wkLQTt>xx|DYH>>o zMymH2l@g!0lgwb0%!Zo|qqZ6;HAX##Qb{F}^4H9D(RkNpxB3AU&+i?MZ%OE>O_;)D zVP{!3o~zPSaNfSRmVfG`3Zk{$nES>-9!`GSgKxdhnP`ts`O3v-rD{cY%qpksEtg9|B^YmFi~udQmpx*TJ0+7{@I_Ctu62293er62>ht+ zo2pIKvZ-O;!=__BYSZ@WUha;r+Gj3?JTMAO3SKJI4n?SD5A)%TfT0ePGxN{PIiL0e(5c3NG{M zm;DnWuY4NwPpsvS`ShfJVl98dr~hc5o?$J2%BTP2pIFPE z@u}{gSPLKCm60_=aKPN1?$ggQ4PU*R7^K^+_~|{__=nmH3$0h<7vtF^KhNE!y;S__ zy_uc=2oW(H6-&=XfB=88nrwt4<4>LZh@RMIXFWoc6o2ZZM;@_1bR3h&+Mha;ktgg=9mvSPw?B0nBmcqv)KQF#*`GRx zktgj>9m2?ev_EwMBmc?%{B!=?bEua6MXh$wFFeHr^F#Tj`W(V1{{5w%|EpTYKdvcP zH2dPPTUtNaS$|=vb*rZl|60d7kspnO(1=-<{q?Yy`yR~eV+s+5;IW7U=SAtb-J`$V zzF}7x+Qva1I3uFQ)j2kMYxRYKmuc=V z%B!?$P|(%b3+?tSUY%N2&IZe<*5B$8g>z#`VRGXi($l}y?Jh!m#xHHGU%ClFZwnCT zyLT?5&yWxX`59Ls&6PIX2lA8sZEf^$2n0g|zPmYNY~p}@Pdzf+E=xnDuKWZdG70PU z@Vwa2-_`QjK-5uxW;OU6Uqje;9IBm7UdVM2O86-W`IbCJp?gm=iwZOk1ie1UHZWQo zUbm4htZY3Je8`eHtn!M!QdGG&Tw0XjnI3dq3e_sW%_?!VR=k&$LWd@L2qpKG=vc0% zXNEihG8ik8z7p4N@N*SoIh4kfM;_17jrQ#peagBwz2#CrxEYW-z6+h3q@o~%wC|Ea zA*04!KC7dS8}}{kMf$TPsG&bgv9UZ7sX2{rpu6dhusTzH{6*P~q$6qUrfnd?y)mAk zIhrG&NHAF6qCmk!fg;c4RyQ=^20WklTletAfimUX#(extekC|qO;6LlBJg|v&ri}t56 zu=CvTXwPef338_9hggHGfH_~{9(9VD%YpF z&SV8Atd`BDgfK>do2~*At78T$N)BA{>k1UGrddh8*aajMc`6Ozc5kEd;c`2M^fSZ= z$av8>L{v`27mKW4$VAt&q^Yq3lHUlo6`5}yBTSdiCam31n2f!F4fKv$w zlP)ZAaIaf-uA><}!i1PQPWx5~1!TXIV%o^Q{u&0Pp;Ca3uLz>c0-chowQ#DQxf@Dkal>Az=r*y~LP5LiM&XWDC>$;ChTmu- z8Ga0Q{S)aas_^;w7L+&S&aZbr?KId=vMRlnkMjd!Q{gb8kPyhLQHf}R1JMH(g>gAx zr?;%HpveszFJ9a^5NOcVO@=*24Y}nE=L0wD5DdRrO)ioudKl5FaM40~Ev;|UNQbmH zM~$#G{}3e|uYF2*XEfGvK4~46Kh4bIMTFT|IhTY>VK_cxrRsGSIAKNZan4?rR5wT9 z8af<7hUH6qu{)cjI_`0zYoT%m3^X(wEF)~>w?f#rB2#idZ8#%af~djJ^M@z7CPTe` z3Gc)2m;~uw-loc_6Dz48kff3? zBT+fSFvKpxA0=0-#~33J_YYka55!7qQg8Nnei6OF=jO}ih1T6!t|m%8DHtW;TBckx z58F;rKP@eN#d%UAd(`)8Ty)*Fxfm8GDPX2F(rM2Pcmb`gi?+aF-f2rD>OGMUdQNpg z0w;*nnP5FH_7s{wRTtXG-pgWknhsS-B?xMYj=Cx2L1%v8D(yRUhZE|>Ya9@)e9aI) zwopaS2iduNMn4M5zhh$6nFu^2c#=wI)_|&4E8hesVp%zb()gknBHR!Yz~V{>nO z-2@VfpB+kEc)$sA)8!3zY1^8yyVaxj-h84N=V=~NEK0hD=BB;}zi|;V)W49RosL@6 zC`Knd05w-JplLC#Bt-sUOn)E}#>>|D%I~4cXFuPaHA8@{|9YUeDnbs z6@L%5D~^q}lICYmsYTj-*@vDJgWj~qswzPsw@V-4i*V*@mYG0Xsh{*^g3SPy2&)V#6xNsS3Psn5 z5u#jVtUf$e36XswzcleX1U{vjYQLjV^d4i}LT~ncIPhgsr{)^A<)R|X9n)4DAD!Cz z{|K?7>`N?ou9^pDr|Ppyy7rjtS77V zonQa^TK@6quZiC&-@9anSDyEdoj3V}(v=(t_57gkBg?;ZEiVlD*1L_s57E(9IuD&s zl=IxlgDixEPL==(`lw+_SL*i2l}$XlbMx)koXsP-yd$?n)&wGQ{ElEm}B=|-Bpd^7wj(#h6zgpCE_<^WiV0HAn1%9sLoKpyFY_q^h1 zAD%-l?5J54|8$@G&xG$pa`-jIIET`edeQcCIoC8p-{qO~rZ@~H@}z^N`&OSYEjLzZ zgo1ptWU+Ho!=XrIs!J@J_I5-DpA2PlgSFH4mNu`3TJaz!&FE=JTsVWG$cohyZPXua zQ&!5UkPI1Ct&YmGRE{x&w{>I>9w*t~qNzX-^9v+<*e)ouTno)~lTGnA4<~%Fd4$N{ zON_iGTl}@WNV1y@WL@WMl`KW2wFIa31!uHURH`(rwPA3!Q&wTUh_;h&fkZ;9O8>~9 zpus+x7eWEQGggmFF}0SJR$(Z!@T*G`3XL_k!c?S3eZ3qC9+P=lpOwd8Mah3s3Je!7 zzJ&TAOIUDe7r#!LX2OxQ*Jzq<1&uXpQDlS+`*8Hh-f||dThlMf^GR}P)SLd$f+&i6 zda!`V4H2G*2py=qrxw7MRrm+XN^2=qg%Ct>d?^XO{_BPZVNuZGYR>)d6ifUaU*g>< zIIZ*$ZFWavu+7FdD-gvByGD#RN%4db==>crB-vk@SnA%=X;?D;+f(&(@4HmaF6HaV zIsy4GqjHX^rYJ@4yKZ02I9-}Dr7i#`hzU(W!aW98y$FFS7VDJcme#FlFHhF3SsrJB z-zWsKnV)Si^x>FpHF|>clYME$7^$R?rOwT^D2=hZ5`$v9=@yZK7k-IMW;;=Z6oW!k zp+17r=C7!Jotg=U3YKAWv`aX}hB2$nxSjbr^%3-Z?3S?o3)_f6C;AD|PemLmtP-`* zi|CoBuV;g0pFN-a8I^q=N;4j$8^qCv(hQ^=N)*K3pQtngKQu~dE{Lt|z>zsCmp*j` z*pX;c5@?FTyh)C!Fzs`yQ&8A z@xj`R^o*detd>Zqe^saOVL%_?)dx}~U4X_f2H~0wYuvh}J7tp596;0qv1X`sA3cJ)IugCmv z3*}jB%Z+SJsw6UQkQ7JYgxe9rr?@(~AC{d5kl0OT20MT~1lTR|y4SjylXc1mvU)cb zCTvF(31fF1TUo3!779F?exHV;x@9o}+q6o`i;b@`N$E(#c%^UL(3gg39E;kmuaZht z{s(#d#J^3R6rSBXr*Nb!uV2q+Omz`f_+tvm0ZlN(s7PX~PQ;5MTwu~B)W@eHU({`c ziON1g0}U*efKJt}--s5o7=INl4vC{igLEVNysWQg_=C~P*uj9F*pCw-tnZT5DJFoV zM9Rmo@2EC@`4-EUEG(Z7z#QFb`(xpu;XzGa>}k_2+cWm586uExDegC(8rB|b2_SGd zC?D+3PHe1TwPVh>wXIHe>uI8K3)G6}m4 z)`l=Fw99RzC5~X%94zn{ae_8%eTnq2xYB$!ki}Tp-B#R%ZBWk;3`P_gfDZ{F_!#+? zu#MmC-Vn|cFRX{O4Eav)Sp*5DKe8g&kL7Ko)nTJk60oQl=~e~+C1+?r2%}KUz1Gw$nI7>>PP!+^lStgCb+^>@cpcz1~KW;D7pwDS0Nh>@h2{lXURbA@fJ6M3yu#gYr;7G`+UhSxfiv`z*GlupDPfLjK zE*2Z!X)X2485n5)wv^)-5iT?v+sW;!)jy4GQk}`lKq6;bW`6l2!yQwr`*@C#U?#o8 zu4BYl0e;Oz8{=L@;cqbwK-kDWHH=D@*0Aj+54Y}6O*e@VTd;=78>I9oWE(5^Q2Mxc z^5uL+BSyAhM6mQ`WTYOfRQ@5tBVH|Q8E^0uOX(e>-8pVaWe^qiFd($5?-x&Hlh;D<2Nlg19IXeN9$;543)W>Z>fV7aAl;;u^Kfj2@HHIsM6 zPiz}jb=bBX&SEQK{>b?EPA#=MEnPv|v)r?drw zlCLa&y^I>SpsIyrS^jV+k)sps%-yI8=Z@-LT-1K0^Iu)GBU&|X>mens|&?L_eS#*gdKr! z@vsJn+EHVxmNXu!uAP5nhVn##)nnW?^bi+b>i>$=BG*vA>|WqA&`Lh6x@oN^6PdH{bw`f+@ygM4~gGBO6MHGDb6Mt zp*&^?GBrnf^-0CUdT7m(-Sf$MdkJ0Eb|@+1rZS!y*<<-N9M5YuJ|26e@Or7^$Lt6|m2 z@?dY<;gpWo0)5NM+5R2eo8z|XVxyaM*qthIeHZWeXQMqN%3#{Ca0_skAtj`m2A^kVMMyHB}MA^>ag-6iw)&5flKhR+_3q4|EJWux>a2b>Br$8(k8aaTMXV@m9^yW(wp0K<2r?IeR(Sj=($N&e1aN(2QX_J)}HDpDyx=g1SRlB-u&^ zbCCz*kRAHlF92J?Fv1hk#XX|`S0Mc92OYvs?{1vxN9NL%tKO1F^K?!8Ds6pBobvw^ zFUKb9(1SqQkxzVjm=&ptUrJZojzT(bt+z2_z@VEIn-ZS8wYSPRXlUFgo9H2=7Gkoh z=BKw`FoK!PJEcf+?1$xflFUJ zqh7^kCkY3u-J>~2*k`tbjv=yi6cM?V^)6|TkIN)ziCy-Zq1^86cgK)00Yb9h?cI_6 zE*R|wK#jp3&C4ddGp0@k`LZtSTR&CS{8scwNJ{WLI$8TO(Fiz%CI(D$kxA<}8=)?( z85nnBA}lQ)8XUM9Lv3#`lu31yz3^=&9%L&lO_OfuAk573tI~e9r2ZyxMTn%}0HhFBIm_Uy_9X?gSk$SwJf?0~h?pK>!`<;H_Jm_iFPVkmxG`X*UxhFAfEJu6uO zchQ$o^dnHsh(-7))1QHIme>1$Mf699is+lg{i^I?Xk!vOT~@cnzITWG@>!G3`b3bQ zBnEyO`Mh+t$ml1FvyUdz##y&|mhtpKh$?$eV4m2{NLoJafu_>$&21~jgmC@=atI3$ z`<5)AqB2ku)#O0&*hE=_)Jdg)6%_@N;OwZn9&9t*9Q-n9b7fQ!erkPXs6rUkw8@+- zmMGGqCV|+$o3%}&Z`4l(GAiM_)BCi&@#}-gUgBcLlTVe2WJz7^$GET^+eSsz{9z$O zE7L=E&q0LLqez0!SNAp`{mN2F_0Uiu?*GTFXo8~VLDu#IDSZ$q`p8Rrx&!9{TH%*9CMg4qmRm!uY)t z!9HR}knA@R-Lso)=Z)<9Cc37R-fZ}4x<*AJMI_mA#hu<{v0B;{Z97thK59T=lGzLE zzkb)F5XkbWKIKj4CCBVoxfrfKe7}5)x3TXS`DoNNtINWl>em^9O^y&3E{@P z#rwHn(G2+$w&XlWyZt}bMkj;ae!a6gFnsDDh4B=iG~c?@R=JpcIi3>LKP`Dm@=-#4 zhWa_P^U6B2=HwaxT@8f+_k{)_?^22f#!tnQBJ<*4Sv9fWIGu!FPwAqLs%bTpulCjg zkmH}J_^Yq%GW?3D0$6^4g2zw!2ce~D>mue3tO|_W>J6AaSSlQ83UKfWzf=c|*XCZB zIyU9mTZ{E;SI#%S%XA!*?9B`uiJ}{~gXFK^6}%1PL^)rz6?9e`*?MR`cd>nkh&4j? zhj!O~bEm$9lw`Hhc9Fy#_ulxF@{??(LJVp8%3IXm@P5j}2~U25z{%4$u6WWD z<_~?>gB&$kPOrJHA7h5oreDhuPLq(VH7E-C*Q<21&_tyUMfv&5V5&V}Tt>NxJV-BP z!(I=os$K`ypcT7C&oDHIqgp)guCfm|HWcjGPtYk8XdP*Dbn2H0^o3l9wKMB^rFu{} zy3n(NwpC`;XlldF8EOE~zV~*E0)kfI%(vu^=tbFx>?~5PGOM*AbS;yDW_?0?N4Y#7 z^C6pTd0u_btd#&5XA?Tg#mfH%8D=3)9G#Zy4#Ec~i(h{eyhNbA>^>wKl;xw7Y)Ug+ zC-DxKmX@mVoXZiKP2#KhKOr+R{FIhYNxB9#%!Mqh(4#dOhbgN8@0@CLU(!? ze@h5`+9X&-_u4v3cn?oHt78az)~-5t*(6Tg0>xQ?;dijz5ej^pJ=OXo9_Z(Y_?pKu!9S93?{e-mh7G#$E)@Rg zD|)QLOfJk?RTH~&^#1l+#t1>cVhRB$osQRYLOM3^iF53R52(awKO-OucCN@azS1mJ z^oSQ!6dm^Bce`*qhqX0y@gXXgCKzX0vW&cfrrb+P~=qmctrTE-GahF zHa1F5Zr|jMds7Ttuge|1-a^|tZ>2`$hF)X{p(j9+2(qBQ=MZd^({!~v$_bE@%=|gb zf7-_4nn#>#d^;=~UN~(eD{{KT_E>db|E2X`X@0biCKw6>q{snx&iO`xAvM`VFUuTn z%bPvY{K9GLd=f9WQtoTKb@Q0k{I<<<1%ITvty2P6z&x`D?I0C>3+BJ zg8!XDj|WXn*b@mzIcr8z1F>NLQG{qw+umc@^)!xvmGwnBBZNZehxH_;i8ad|C5TgNPR@7 ze2DF#sx&$)zOsf%ONm-eQPQI#XGi)K4RSpQA*u{$KCY9nl_8pwG*!hp&%qk zjKLFb(%yY4aURmjR0AbkkLfT07s-RlsqA0%8TzrZL3sO5lYH!$WRwX;Ig8`RcY7}T z?b#^<-QnfvaICzuJ67)pB@7yKC*pCf4~uwDNNH<%ic=cjkNDC5qN}SN>Nm|H8@c-Q%?Wx*EPZ9{*5z z=IQAR9SW^`7~}IQ)Ha4EVTIVLzuKF>l%8C>y3$(3$g+Nw5;IwL>~mLbR*pVSWJ<8k zKQ5$h3vOg@3gVlUBiJ!0V%FHG^32cE0CL5kRPLhI zvhrqRkzlwqcUl!+Dy8LGj^x+zXiCcua;SyiN-cY}+r=&%(-fb2YN^ZGo_Y%1kH*LK zGdFK~NQURoFzRxfJY{77p}APnOwdBYJY5tK#k}}DzB)77>oImihbn2ww60BQj6LJj6SovvA!-9 z0mu>!QS5WAZTTX=jP6QAGJYE`STr9Yl!u?0fJl@s*(cgWD1pY81wJ$g|6QL~VZY^# zWpICe4TDgdPO!kFO;XiGU#N8M{k~ze;jkeFvJr*NEs^f#O$F?* zp$M{|+JXb2fZV!vi;9K@xUz6>K9LBgyHpUOHKhz&y}#C_4S(x$&$yU=Zt?kSPyOZG zcbd+a(-Z2`?|4J`o#u8VkxVhLmbc}q^TLufZa}TGJLY6cC$Dz};!oHu)@mbcX9MY) zp0=d|wllf!AEdV1!uHvd6{+e2mD?ljA-g1YIYs+~cg-^q2#o2iK8xLWm`EfOuH?~U z0$Xe78v?E(Mj3LEduVahItJkme%tliATg3Em+Nv~e#;LH@vBWAEnRB%uKttM8O2<; z&{9_qtuh{q+CSRdL*g?N;wI7jqkBooj z>QKTQ0_Or*{>B_D-XU4`H$|9Lg`blPoJ6o(?UJXm-ZA0d5J~M$IW17gF~s~Je6*`+ zClJ8Hcfsm|F=E!x%PqJ35Ee;-av~4Rm9pn_j>?#{!AnjcIi1}Ee% z$7kM|FRLYp{OnG1)TK4ZE9Sc(zd`X!=Ae~()%^IHB~q&!t%X+`=WmJmtjMi9f0M`c zCC*}}J|rK^zXo*HdS4vLCj<4N#RxR#bn%3j58w1iZU4vSu!Pd-)b>`)14j8gYCp2+ zPU$AHb-OqpZqDl3Oiveg=DJQSw37tu zztsL;E#qJINWM4A_l_RztMxi{mVJ@AAcctQ`1uwot%5cj-mZ^l1+;Jtd_y?THp z=>b7@&(z+GfA+u;J#a)1@c(*1;NJ6ry&3=Pf#>wVb9z9HRe4}W51iSX@y{MOrw7jI z0kvD@0UgYq%X>5a*#p<~z%@Ov&mYiX?YX`;4AHCKpkCq;P>^wAMDNeXAk_L9{58&pgylW@JD*!zwXWW zXAk_b9{6KDpzg0c@F#lUPxog0vj_f65B!-PP)}GM_;Wq*7ke}Q*#m#62mVqIs8cKt z{MFu_-PEBP1YUTjjb!xLMa;(nC5&HWU))=6_R2->FQd}(GAe(q#s1CSjDKqO`nP-e zx9>E#xxy_@vQlp>$VIjBBoy&J#Z;^~@xlD~8OxPyFP>~IiJ*szyw-a>&p)od&lBmr z$$H&8 z8uCn$ewE&&qd5{fP{sLRVV#Ol71nToM;*&h%zdI z;)`1*AiLpX#iIm3f8u@G+>K!(Z(n#)S_hv00Lj|}EHywJM zdHov~kQjV*V%2NE(W{?Z1gKKvfHab&4JQ+IGmORpQT`-)^l2V0_yAY~anwU9UUVHm zl(+R1APedovvzNOR$z(<j?*jPkv*{ z#J%9sZOU&10>!pTehL;pgXuTz^+C!L|9$W1E8$A6bWs+~zcnvSzY-~AhLmIbf0u$3 zkR>nA^WD5JV{lBbQ8i$HesGq*&Mjuy#2JN$zgpy;d$&e@4K6qLae|FEXbddT%ard@ zMyw%1@bfy-zGbURXVTJprDhH&9rChS#;V&aRF7zd7_fuysb54k$-e#+$$jbl^7+&M zA$gQl$@QBS$FEIq@#PfJBP7U8!Vd}ZK)KyH)xt!F2j;ulWWqmNC zm!j}CY6z(mAZag3%!e~3b6*wr7Io!jGF*KIux!vE!we^Z2>^Cp{%|wxPASRH*@h(O z+m^!o@&qd#8dzbo=_(O_Av!ylMQlKxW4#tR40l=`#~PuYg?mP_JqNGlGlrQ^oN(OQ zoU6*Z3FLmqfNf4QI8-W%W1PXbl7JwXwsNB)rCox^*3v+RCQQiWW@}ug4P#DRx*}xf z8J)eBZl*5Qpk-K-N~@CpTrRBkw@VwO*XNw(_T0x9;#9uK;lzEH(DR6yrk|xdU~f`R zd?i5+HMmaoF-(7Db=8M4S0j|=HCrN#dpVr?H{$Q%atbEl;YR(6S=R_VBD9FUITB~54jOl}Cc&=D(K=)$fR5H0jX#04c1*&%yLGCx=C)vF0XU%X$otg}#? zM^13!!>VmvlKUbfh}NQuP@+T#SSBjj9*BTq(BcNY=Lq_?kmhn-5Avb zmbFgciEN0oVmlfSz{O_!`S;)%jzgM(94b|LH}P~?$V5$pA)2|(Ak1W90Rn-sZ)^2f zq6=$X_KuKeG4oUF-CMNqSrf(@dN=C;PSP5~a74y_U!|B*;|JBLVB+g*-Fw3NIGdlD zu85$k`GesD!RK1vN{iPefF_LR-O775Hlb9Wp&9YGMKrtP@>tz&xDp-Svk7no*w{-v ziU9X2bgc3dU!Cp8yF=62Cw$)pD2H#Zc&4%m-=R@=_E+qD$D50M`pF!jlcCwZK(O9b zwF=Do8!PApuj(ikZf~rROTxkV)ryAjfFc3SCa>qwRHIeRivcdm1LQ9e{g-&3ZOJfU z-7DhM&48|^0sXUb8*f4ow_l#a!|l*cq5z8~@-Qs*t>=Eo%6hx~C9K(U*qpMB(dt5C zbYfk?VcU1_9;W=|#!G{@voGH)iREXBw3;{bohTOlu2y=%zEgt{ozilen*oztR!&4C z-S*pKdk9xQc8=8f#HX-qgj*)2rgT5|phz^??mTVmrXNsOOY zTs8aROoBxfez6nO@v~udYnRDU-k{SkEXRB2N+Mt`KLH(5z5i_RDa!d`f{1QF^>oa_ z_zK?x5O1Vf;A!J@Ty(<0U2vY^N4fX>wfwgOc84pW1!BvCp~!L9f8mA1kgq6)6e1Sr z7;lHX4QCw;Ag=3pKMB_G#wH3klr_)}wo0xcmx1sgh|(V=((KTQl6`C@Ye&Ku#WOn8 zMAPFK9H)?%pG<3vTp%a{8#jzX_Zsi*ThWietFqTOL1G}S&%WDFyS2)&od5w}{pQUl z<>-4(bK`43sse=)agTyt05m9ZP@30z8~tyHhPYqMc(_P49#qio7UqGY#>eLaA0Il_ zBd6C-*<#Ro2vFu2t&OPs$|7a-*?muaX6+U}E+n^1?7A8CCvP$1pGjRI84L@~{ z1r!^|NuhC6OyQW5&;byu%o}onV2bDrNiw+OhqwNQwnNW!8Vc4DXOl=7F0864Ev1Ph zXIMR=!y40s5g>k93s>Cr-6lb^c!D~pqBlCXHcXF4YEV;c8A0r1#4@$;NTBQIo%a|b z2NEs62oXH#c{C;BZ%}BR1GpUGP3@%?;hO6#G``6ybhKK;Trq(FB^M@AmFt^Vr~uiU zp0-D?Hy+dC(~%E`!$?{|_tZ8bb~yfvJ0TR? z4TySGj+r z=gNEJsis%sdWtocr*h*DjV;f|?F`bk_qL^2(pL7~vaOQ91QN(V0x3)&fdmprAcX`P zNFae05@?};1Uk?_3JD}|0u7u%0}Uk5!2SK7=Y7{&`%AVbj?X>k3^ZzYCR}6VZK5tR zn4E*k(N>*-x5Sp%>6FPaN}-xrH8Yhc7unr_D7^}SmsQ- z7=5>A++J;_>0#~WB`J`Sk*W5j%t6H7ckqoB@GDd$sGrz?sOAaCgo2DwxFU2zJ=!fp z6=I?%>`5kd3SF8q-I|fa$#VKuuOpgPl5Z}v{!H)*z9)S*-NnP>$-f<|#AG?)0DSg= zx|o?;o0{!?@t6@So~i_v*3Lbjrimo5Q06u-c7Y-~=y=)$Q<+3W{`o7;yskEGK+9I} z#8KN-T#z8t&p@AG=8@Op(qv3`2ny=!Vdy=>_U z1t`o|Ne4h!u;$^Ohl?MX6siRZq5~j%qb~F@ei5qM#msyb?ANhJ!ht%;KbObWpRse# zv2kcP|2i}*Y*9y3N86$ChtxRkQK4D&w(vlU?miz{gpKNHbIw%jYWd$fTV{JU=#!;- zQ-kp3jN7+Xga?sd`=D=ed%SM6zgL8ePCu`7R*f<=yI0EvwKQOjEax7rM-R2b0Xx!Q zj>UWHPMZOnaFA+btd~^zN(jCNGav*P(HgRJxCgdgY;0EaKx~}5T1|hwep_V_B4d{c zDxb9cUys7pK zLTbWM->l+k*={_RZYpL<*9SzRkUVv7Iys#7)}mU`GuMLmSd>r5@T7fa3#^PQ6~hKr zLOtuSBt3L!TL~ZVHtI*iek&CBvl-UMJWxgN?QE=AzxMIt0eb2HW%M%o?a<@QJ$E+rFbe20(2p`c4o@Dcd#;Etu=HS~-Pkse1W z5Z~D5^HETedQ`^XWWwFn^)Od)3+1SWj2qyUVVU?yi!auKs!d=-FT=y@mxv zzT~oN7QGkDMmoCOtY60<4izZ2OOnNpWVN}`(3_v6FuEEY4V{Tk62iYL7N(P&LQqgo zn@|$?IAGTOq`9Aq5|E@gJbpZA)GEm{HWbf^t?uUWc23*@-@@@Ql}Xa6|>EnM#G6 z#vnCw4;DT(0~L05GhLa)h1a59_)2+>l04$gg^PWjB$C5Y2VU+rKc zP*QGY5kJRkqMkdr8vAVv$=10k#9;=&SO_Gn#(f2RdLjYviQ$|k#i&W*51D`19$8O1 z)?piaIDih8n%A@oYT>@PmcOOAbe}fThtMcUSZ8sIM9n%-?SLmcj!HkxnMF#xs%j%3 z5+ohp$R_9-XwUg)`(%M%1usyPyxy1k4|;m{@fG)jwT|a6`*hh&3|=V68#^RxX;r2$ zIE71ui{IxLvcCYpaC2f1Lg)3VroH-RnZs-&{Z`6})#fX%oTPoy!uuu|=k4zT{iPkN zV502qE9rS$2Y3yM)~pLxCW9>Rt_bj9o3kwk`fT-eU|iaad?F z^UwW_TszH;xW;`abkKC*bSn+MuKJ~T)$yScpI12)kV7eb74ISiMiK>3Z&Iod!NdL@ zOD9h^t7oJvN`^+?1YrxA*gECjaZJq!;^n1Z872RjQ*!^Q0 z-9D--fFlvBfEVe0iyU_k*8b}IC1M1@ANG4?XZw1yTBAr3e25}kOX(<#;8;2bBl(=H zPv>{U=HN~DadFmyi2Q5Jz4kRn?O#{62Xt=*Cdo~=ZBVa6rGJdQLMbTGVoAsR8^Z$Vfc0U4#bTN9!t@-@uH)ahjR=I=K;VF1jA5JI zI7BxLmve~FyzIin6Kph(T6btbygSTDp*st>vBoRan}l#wuTY(+y?Y1n8!3G$F0J^L zbQu7xEiRixt8!c0AGW^O{0@U0ELp&k;pxKEx(D%&Ta{If(gG9KcI4N;ve9VVs0t+F zjv0u*tMp77r=B+^dOI|hbjE3K(v{e3UfcjF){>bai?;Pqlv-- z6d$@fDq^(s-{TaxW(vM443zf*9T0&c*vft(MykuoqSmQ9oVV;h%tNJzvZdZ>9Lxq< zcy?$`-yrZUA5YBePP^W9Vl$WU3IRHu=KM}!ywEzYdUb@<)VKg2!G<|64f?@RWRPQ+PRD-NwK#=tIfd!yZX zv&V95(Yvv6IDJc`4c}HiU+g!Z!OE3g0+=^Z8scBOH@<(k^!4uL#m(22U%+c%?#tuqZ zt;o{BW$fIz-z$AO4r|Wn1-Q4b%s!&89B2GR9fY;k*&)V~T6?YIPLG#98hiCGWaF!% ziSa4G{_;hb9o#>Blh=;K+}F|1BRToY7oOiTlrZ|(E@NIzQf!1{Y*Z<%`)2dn3dZW4 z4fejOd^4S6{C>%U6NT0CK|)J)jZ0h57Oh@Xhc8}y{+xA(1H6q2`|eo5sy(2CMoQ&2 zIq(W-ceZ6lSTO;NyMqC;W0n80bW~`;6;}~_>10z+g6ax0jun;yB~&5uW|k0KSKC+D zJc?51&b6#pjCbi7wuc3nDAjvMbr>*W&6?l-9E^x*4r20b@p$dFsAJm8GCZ0?ptf!u zhMO(-uh4qgSIFFdQTH?5+1y@H!ozjq-fXrj9%Sr0I+;$qRF@}w@}Hcn_@=fR*KqSi zZuc^XI%*5^)4|4F6!#Q=TUO|>%V7$woUDZ79Jr$Y-0wW&p27xpcATFvch}BX&U^(H z@w2T!Ub@BwSe>jzX0ijQ4wd%z9&ZlcaaBHgVK`H6f?MR3=%BRLWXokmfu{n5LI3SG zxvB*5qdaLrPmTcp)A<9D# z6tF&OL0k5JlwQb3?r|-MLZx?7koA<@z<44pO9vlk6(;0Y*Cs%8#QL_PkO$7;zm%(Y zF^8<5e$#Nmr-=-jkX9u99>LbcT%nY3DDgZZ zDlze`XH>s-JqYFT;#tITI}u7YHe;%&GIIN!C-LbF7=%zVhKTqVC7V`3Gy|eeto{e3 zGka}9_|`!&b|6b?#;8l973LiB8I!F%%?ErE)RXWytC^q`a*P%O@@tfL>BZ;ew{p~!Xnadja;Y{qTp>h4 zR{Tk84Wdmz%dSKtCj#GRRpVSl((pujYVZQZ>J*XQ?MMqU*unj|JcNE#eh^$fs|gzj z*kt$gCVdcBhlUdG9~TIqk+CEpfn$}{AS%F&AC73dTU7eL$1WER!#fEa^p$%1RviZh zdAFf;6v@!kqh`#6;#`#xln$B4+j49d{GGQqsxXY$EH2@ctA6_Jt?QTguNTK;Xp9Y< z2h6;}Gi)^5KHLFWDK(-^Eq7&i8?IQQVoP=#B@eOl>;!=6vf;*%egr%RnjtGj-HjX( zAPSwh8a^MDSGmc5l3j=SZdDd8BR-oC6D9Sqf;vl(2t9oo`^qDVc*`AB- z$l>9OSjiXh&~W;G1&Tjst2-4Xf)fnm8Iu)CXyOezqt?^I>FPQ8pDwr(3DXABCMN+| zPSRPnl;11T)YY3m8%j0VB>A~w-G8w^`NjUR0ZW{4+v$m}MU)RMRd+WU)mr+i{nHog z)s6g5a%UVOyiG5EwLgvRlJrC-5=p3#ri-oSQ%^sA?3v@o z3vV7Guf)*9!^y(~r_v29rP5+L&50b&!0M6Vbemix9*>a$)y4YN`ucYJ#3CRyXET#} z+A@Y51+cVtb{agL2ODF?69QK1nS2>yBDkD)wcU>lTtRK%unu#M)2Q#{(@ z#lVXXWy3a+{I(30%3_t~wEpODx|Fr^0ql8_JUVb9eLpCb&ZlEIVw~ud+gpD*1h}$E zmraXv&NUot&)GFR(*8n{_eSIyTaR%9YI`AY)QiaC;foVw*3wsUqzW4=219nCCx+9P zL((5R2|IvOyrBJIU2C)6e2$!i!l}ZqNxBixCAzq%eaU7KAT*sb2KyGs0$!kb1ILi_ zN%EKg?eXE{@!>Mg!6BQC^x|X@jQH6C7)k%QK=!|8w5woi4BGCdgpE1=`T-x&^4 zW|C*MfcfEse`IqxJ-mN-WH>oJa5X2p$6+(aZ6tEx45u~w+1=(nAQN!zp);NskW4wl z=|=dYZ(Bg)%)lw^F-AI;9U9{q`h@?!L^3dFRIQXur(?dg2?-o5kTOg?z8FeQ&IgV0 zDftWVb+RvEzJsX6-peQzr<1%eyr-pp+!&=EW^nRl7<*Ky5?4YZ6+TmM==0zUlxMi8Y=o^qOuPL1G%cxBW=Zy6u6*i z9NcLp#>q)Y>USm6B+-n|hjbk7xbBJfZ2+x_0o-_BIqM6+?^FpWZy5)7*E_fmwW0aq zcwm=HlD1LwYI|n_RhR=X-zH8eT1Mg)+gFuEpNHE!JnJYNz5t;BPo>dcE-4jH;aD<9 z&n%aPay%l`nRU|g8;F%~dq?HpR5P`@^uz&Wm_(rd27ApF(N+i_yv2TiNypXaUGWR#Rrl6 zpRb2O?2~G0-^BZ9^0;ROkdu}f!X{_3lmTYO3mK)<-!&j7>m9E$ARTWxMKLv7=TcuE z3$|f*DNHiCtVy6J<@9almfwZF-&CTU7J@?TEq-O5*Y31<9ff2)rEhclvQ$?&;$ka< z!(cHe+0h*RS8p~5f{Lpofcgdz2G866D`kW<67`f*B+5){WDq7o*z1 zXAozMYGypEk<{VwC(?_aL0p69U;6PELdE@5$P{L??1nZbH{xdRbtO!OWLat_m?GLrMe(Vu7phk3Y1qT($;(mFyyIJq{KDamTi=d)6%M_OU?rj z>o>Er*ujNjv-)1dqxSB7Ro7e|$a(eIMFjN;$Cy!j4G+C@MGD^mP@B#M(&bu= z9!~o%)Evnxd$V=Z1v1vd+?8h8O_)1(Q^5CW90#^`V=SG1uIOty`b>JJ)k5d0)Ldv! z$ti@TQYp|LTY?~c{=NbvnnQi1?O_GkUEn> z&Vf3fwevQ??h$znPw@9y??7b0?!SGVN5Mq+tKC-!d2R3QAFXX}_iX!p)$>;GFaaz) zJrgM5k>(x}$`S0g8?sHBDs3t~aUpvcRB1EbguIdRkjPvpk{NsotsjF7OWKxq$PtK6O2LW4Z9@Jq%$6dqO`_0X0|lK;l+@J9A)Nd+)zDsge6TbID@I0vff=H4tCgm^jU9veLeBa)k%ERPaI)bFE45_M2Un6MCrH`ZcoCllQ{W4^lKNtM{( zVgU(sC^;~~j+)0g#*HL6)uZacX8wiiP6B2#U@?bQOs9{gK^u}|Hx3tQLRt>Mv=^3) zfESB^_;9ZO0DB1Mb;6>i#zG{b!*Ec8MM?{c+h<`6n}KkqZCi-BQ*xacIXL>jbDVE0 zWPn^1VYt8yPC2%}=svQovpBu19_a`1vqgjuk$@eDAE)<&u-Qu``}0*Z{n)9KdRSyK z0xCH$QB5`7oIXX)Y1PLgC6XAY)$FKNCs&t1ZfD5(Ln0u6Rr@C#88T>~nA~tFu$pQa z4hCv4ZB18;)5B*T9BPk>ljAYB(E~lZ_?V0GxnE;mCyh&;;? z3!X`SUrA<2_nM`v>lI)PwOLfR`Q)$4wyC1#&dj;&w=S`4nJb}fn4~DJ%f5Vycv!DJ ziLw@Rn5mU@aiWN9sutZQ5RM{3Dyc+|;&y~?!=u6i15{@K_@sNHk{Xd7@|BxXHFOfR zL_Pa5sH@~88?!*g`W7ioo_xMuZ+#-w8Uq(AH4#e+Q+FgMD+QZtw}j$wt!=ELT3>M8 zH~vc-5aGm>*CdSJh2hXPc#87xhi;TG6b)cwM>&q2R&Ynd7VD0Ov6%&LE6HKz>$3Ad zX`ZVQE_7O^=GQk$(4rthNkmFy%IZUMg-WriQ8TS_XEwhS*fc7HhPQ=e=xj0QDqOEbC z;vnpL@Tj=L-lNMX!=o{OY}`QQ1IRUdp!B21W@cu%9>UJ+#4HKlU$S(&wji5-M~Z?{ z7p@o@-JdSxDGRcFK=Ta3a}XkO2xk@}F`iG=9%B>?=T=ERU<(dbqPRT;S|teMesgmv z>=>Aqz}tIjAm>vI5aZ`A%7jZe*1A=tSa=sej9cdE0_NK{{ryWcY>BX*^yXPYD`t=@jMWSqaPs+)Yh|U>{PulUnW65mZLP^ z%zbUe&MaFj#uNvb7ODQjb%CuXg2(`X?qmRjb?4k5xsKd+Fi7rvN zfTocJ)Eorh+;syC6R~a7*jgCqX&EykZr10VfWFiQ!t6(i%$f|ue4z&2GQ&F$nOBvo zBtJM6^%ouVR*Nklt9To;eX1M^v?AF*_vXcn`YdTCDlyXsJ)TQD@uMv=^umGQGm&9e z2Zp{RJlwrVxE-Z*J~Rpyq>gMuIw3PB)DDxrFRQV&vEiOU?t?*D5-`Bz<%|ozq%dOk z9u@^=y91&G;_RTI^5DZ__XI3_?H$3{|IHQ42NY4*Bex=Qlk5wyqlx?~@@bvQx|@+T5r?c)}6V6>e(I28s8 zAo<%~!^xswo9^GB>FZsG{81kLQ1mCu_6-lD=;);OzwOE2Pr34agXOnzOGeNmwT(_g zdoUiWI#PYS$9*fEuoul99y#PF?_rT=JP!gXSurJ#r6g5A|!2 zjIF1CCUhi897_`x=*%f;)uyA+!&S)p#)jBWe!%4$4Y`FU47b_s*DxhuE35ltdLdUK z{Yb_=@h4nIu?Ad1I7jEk8e74VvRMahZmqXA)t9LoNE7-?VXx?^5m_@aG{!Y+HZCH; z(STce3N)Xzq6;fD^UWrbwcA-P9X*$xVukQXbY@F+y>o#L#@7XVMiPqsR3znlR(+avA?L&sO z6v(U^MJ7Z*xMK@Vg1f&YFb4VWgNv)~Z`w$KHOdX^&CMi%HAY4~V_%3CZu z7ec~@Gx|{5(JRU{Z})z8ICr|94K1?0oSFAe%sU}Tr>uaO<&){V(dl71SMBjWpzH1; zTj|L&={fmL25(>-9NoZ<;yCzdPUZ5wUn^%Q!|Nkno1y$ zQ4_zg>Q)_f4>4Da4; zkhqu1(&lgO#9Wn1^V{MpYOOt|fdM>O4LBNvRyve(>}B!8s4%Fp=TIVbMwru?1^8~w zNqAQ%Kdb8iL%dCKVjkOk{Jdj1pDCbeTj<(g@`%BX=fVxzz;hb2?AfTHQ*R>*E9KBlI?!j3z4!{m({n6pH!O~tW zM&SVak+w+?ikyF%9~@54hUhxOU}h9hTr%8g2T{vbCM0l`)KgW|=7uDS_)^@rGbcJ& zcWdc@Y(H!A(Aw2P;pKHQU2y}PVZ1MBk6d{cbKqmSB5?xMWUO8??6R3`1BMePi)Eq~ zh+>ADqj*@Eg3E@(gCVMq_Bn%byTU!EkUJayWgdr^?UXr*!|az|NKa+G3xUAX3lhNi zl;SAppp-LA1zMbE&kB)p8v05&luxs{zmRG_%{Cp~fW-KzES>vS$LbH+;aF{8asBiY zRBY-L!VjTv@BE6LkNPP0w+pyyWdS~i7QXpX7?vqQo3eRJgP$R}Y=33K_~sp$Luptd z5#GhRSxLSONbpEo5OvYP`o6wpQh%mem6lbBkmV}wu?bcG&hgZ{*SFqXXknVns6LCI z{qoudRk!0f!p#=r(9useUQcJoKYdidXP*oFBL4=Vg>TCz_s1f9x(K-^Cut@Wmf?pI z$EOyPl$WqmK2N3NtgjTe**bA*`p2_g4my-4`I||6`SjXjoPx7)>>2({*RM^*U9$ZC zF*4Ip%7*v{{iKp?OFA4o)xBnn%D~B&qZ|rqZ>DE7We~fhQ`_p;GT(+t+icpf&jyyN zEMOB74xK8#DW#ff01S52?B8jb?CBVHY&~`-jl7$qawOS zP{a4x_0piBlZdu$Cp)^7@FYg3GT|aAe&^O%;ePBJ|IvJ`@(cU4%aRO?vwm>N6^p^? z`qj*?Yvu8D0Uk#4FsEB>1~|&}<*{}uUAg{TB7kxPsyQnRvQ=c!&ZNrq=vo0Q6BZ^R zUJ{WKf6z%n%z}>CriU_d6UOpA^zt$*bh(9Fb`i`UD0-0`3)Mjd7zGJndMWYP0{7(AE8;|9G0&MmQ^E zdl5U;#p&d5ayPt=X>qBn(TLvh1q)p|rWb{H@Zr(_Zfac_!-5$|Ed*Nv)7yAI7@^ND zMh46lrgb#!!td@(fcOxojzG?li5*z>wS%t^O1`);MOHk@BluMA#HKel?l ze(R#J=xXwVJ50hp5+H4%@>1?jSWP~J)y#;s6jgD*3Rk)iWV8p}FPDE@r2EFZK$DcC zKaxo8=bd-~?MByU!WMQNCnfsnRQ$sHwt0j5sipm3M`nW$_hvTuFbp-}>mMF2PmvoT z_~A@v%vBwA?C7D>HA@FlO1_hxsQd5Z$Cq}lkdi=g@|QeYNGbV#dLqjl5?-gt`01;) zR<)G8F`UlU^)vgFd<1U{j~-%NWp^02mlLtuQu49kbn?%4=Kgr{5C8DBgujwx-{TBd zPX4lEQJ?5t)F*sVpXgZBT(&6B=2BeO?!I&}TbQmfp88Veh78YQmiKWy~ zt3LKBqT5w`31BD`ku2@SYUkvw8U&=?ISO+uG&zk{_zVU|(#)mX@HLt$USKQ}AAs8U ztFB)b(bY!^E<&rpr=Fs?bApxRh*+$KS8OQSShr0|0hdK?%tg1tT0}0gM0b-fpE_6h znEKMzz^yG5cQVB2N3DbJ2270t!P~prO0^5?1!J`O@>5ew$U9qDk@^3SD5X+4a>UHg zg5pyhaCSQO~)-cbMGH5k;F~I0tMm%HD zrI3ig_aLlKZgWIr*!pUdqR^}JE)ATi{ozx9gk`GxvPKV3;$D3IM_?G^A(&DIhJL+? zTp(yKu+2u8jR(IXGRsHeF;K$3+nqT5!9HtvA|nC?>Y4&HHX$vb!_P-Y_p z0;bObN#ku=1o5Dr!!ZvfA*ygv2TMjuvQsLjg#C&%+{bmRA zASUL-vM3^6pQkJy@lTE)zo^utoApy5Y9%w9QmBAa;i>d6pS)xgIoUV;kEcC~Scsf^ znx!i?oFJDyXxX&+RLg|xgtd~KOXrcy%)f?R3|e?FH0abWJ!;YDmbbdux{l{Stf?3l zq)ewO835abF%b@elnydtDRa!mu9P|F$uFXm1*VBw&F8NY%8*%zs~r(gW5pryKL*t^ zg+Rh(usI{!A@k#(3eI|0K-?=S-B~e`Tp1Qv6f+|VD8qJ#iHqw9q$@5U=<-OMl8v~m zlqAd|o1rOdw3Z9Yr$v7AigQ6@U?fdbtTo_m-VN4#H?d#a>`68e-#@8-;>d+=Hg>-Q zMGRXBlZRGKxiReHcZ&mjx0F4|_{Hxl3*c!SP~farK<;9iu|Dghg{^-IgD(K<=Ax$y z&BxLyU??!$NonFtdir*o>RvvuX^msCp8}ykP2^5hL^lxH$#5K(ad*K8gPds~U}b_% zgsEu(MnG!)7&{qQD&OZ#oPJQO6^FImV2?e}lQ&+?xbm=YMPXIpQ@P5*jdTw0E6YdW z3~=0SQt_nbn^~)0t72;{ZfYrAKu<=c}3Y3>rg>i1%V(yPrlEIt& zjCQMMJ=u2K>TTjSAyK(7vU9NKk<5(eMJp#(ymH(34U?~*M+8O6+^V`Ov54_V?<7|Z zk3Eylw{8GE@e5rm?*=5nRlAN0O`y9J$kYC1y8_oDZzMO_n96b;$D_g9V1ev$oCq|iNlumk&?&mH(?#g+F5 z$&tXRzI-{(Ai4>6f~xeviS`|7LS7h3r=2>RCOj!G{_n%JPlxn1b#kzi`z8o`+>EY# z9-;|Ou#LzYpWuJLl7i@C^&;7@R{goBU|9`BTPT%?%1|iM_z9IC1rs1-<{YWSbJQRv z$t$3Cy>;Uq1w&Lr{0~+z{4d7npBBRG09DsdU|A-8*HP2S`D+i)#S7QmXbIBdb_iyL zETt0JrY0?RhI-}IhzGk=oBxyHzmbLiDHWgZpt7KKen(gOj;=J*mHrmc-2F5Yer~ut zim*2GVl*Woqm`x$x)iK{g=fL(Q|-CoJ?Rljx( z15N9%hSOK|@`9=@bj(*1K6}ymWczBtgTQ|Ce$!+&nyc>9Oox)$7k28+U8YM2d<&hJ z@)I|A$;5Iv9o_k(*(62O^LJmvW*Xa(34AuHz3*ZwCLGj<(%B9L2pQ~`VkgD@8r|~% z2J}@tn7RC5%oMplnY3|mkseK_UEj8XO{xCuP&(y429}pSeOdWkkavPwZ>36EB+9-{ zg{>GvZ?`c&l&&o_Fi_V|yOyBi@RQ-BrX(vkF`R-`CfA$tmxMekEKKZgy@|`F)gnw! zN(UFzVwOHGd()98B|bfnoK@$cXG}!s8c60|NMRRSmXpOo%Tu1Yhg^5=^N)QoHtd;F zp0*`68A+&wLfn46_I$Ik>0X7shnZU){I*Pm+U4@>dws zhrT?Ve0g{*T+eZ%J|eym`t@Oh2fh75g;P?x}$=5P6lVi%XG+~F|Dkc369(evn{OVXA;xs#eI6Z<& zBVSf4Crp34Ct+GH0(`gwb-X^pw!W=i)8yrg4!jXw>b1_h`L?>f7uxjgyP{1!(VVV?ut(KnfYF))}K&5_L~#R8I|j3di+-F@AsmZe=qp|#&GiOjP?~M zW;vsn-DiwPXt+cwMK_1RP^IqTy~5e_yLT&XzI6v_^Cx$ZHh-b_1EkHj;-c=GwE4X~ ziTc}@HuviH?Ma(^^>{B7{cCqc(fe^!Zi=e^uOV&zc=#P@bFI;Pm>DVO9^WM?PrfId z^UuS{KS!E7vp3CsN7{Tx+H~HhADZb;MDLTd`NO?v=MM$PZw)6ub}}x9vmI6*OnkpmPrn{cex3C+U1;59y4dbi;+B$Lxwb!r z>}@%a>h(75reqyj_CuzBw^F%Lb#-j0VBjmdw+Cg`K$~CpYC7EfdUX?bGW+#(Hwf6I zm&fXRNIH28eaUaCOpPW_v-ACLN!2WEpIbz+&&@92*Nwr_AC!{8B<@`@5z2Sl3X}~1 zv_Z$XhyHZ5)7W?SD$i)UyaOmc)YlMr_d3sPm_cjn2GQT?ZxXyWlJmQFwg(REaFC|6 zd!l1|SONQYez#ljaHmdltZ4hovC^R4_98Ip9+31OI*o(GIm zm18TXnoR&+M5K5DobV3$YvZ*HfF`^EAdng$>FnTh?sKm+or*Ob*WRQ=%6npQ!Zn^O``CmflZJG5qmW0M^}- zV_Sl!Xj*x7x!NS_bfM(vnXM%f>?A{_&;Kdrd1AG#L1#K1{G&sp9aSXTl|}R>p$_`_ zhMYC7*OPsvf6bp#E?V;^dgf}Ch${sXS+J63=KN^324<;LE#v1&7hg+CrGK0c@ldQ& zpDHYL>*$u=Du;xpk|Bhb=k}~!#lgDtwe;Y~$jB+O>@_wg|2)h7YG&@%Yg23O_IB&| zlTX$fS6dYY4773Mu2Egcn4eokj~+Tu zrqGI|8X%kB`X;&CxjJ|jwc0B5yVEKk&f=TXA_Yy*8SC`tX62ibo29OR|-|$8}c3`x7 z3q#6=!bO;vSZ*|)TffejpIr(Yt=OY>gWwavsoe&=eH7L0Nr5Xf^Ip7!O94QorO#&{ zT54N=31kB5fFn?qeL2e~Btlxlf$A^#bg1+X%lJqGgiVbp*sW%7EzY3c#F3ih!wSa3 z_lh%6<-9ik_Il zz7${3)mb4atKwtGO-R07&p;diu2q>~W*G=2`%6dDjv0n_17}LqOuuf4F(lj01HXfh z_X6O_TaLo1Zw~$oa^D96LW@K>drMspN?8G=CoL?R*b>U-B-G6}mj8 zj!MbX9oOoa13lO38QO8Jo;fhOV7XjEjpvms)hqQwwe{;Diq>Huc)@-uq0CYfeAC=5 zCC?s6Pli7V4U)M_r2n^4noH2vtx__7Abqv-S>AjonaN(gc=7pCa{55JTzrx@-Ip-p z9<%J73l_{1;l{L)t(EIzEL{#Z&2Z7$yJz$~p<+6z0)I7>j$PvavF_h&UQ_F^kuTsY z4GwqFko*1!<9O200h6_2~fw9XUSSNbTED!02261`Fx0$L!?=f<8VC34-Ofl4X4OQ4t`+3>IxJnie+(%apY; zl4>U^VxG4b%?(XNjAN-L0+f|TxiWrc>vF5knQZ5uD4^YjxCwh|0mYh5bkT-l8^Ldp z!WFu#xIV>v##Bh5V^2j&${2Dbz)@EYFHxI_Y}s3FF|YYpOb_1;e`9?WXtvU0)}C}m zxc0ya=PSLm?QRI?Yk_dq3smm4oDaU@JZ@_`@UCZ7^eE?i6RS3ObSRzEi!-);%HNB> zs^?RfNMmDMJ)7kG#9hC7AU$-^e#eI0)KTzMLR>^$WcalM z$$Iaa_n_ySVX5ycEOoPYcvM2BZCIepS$QG+kuNPhIuw_bPJmviLdN=g+x6Rm z=7D6VcUT;WEG02MvE_*ukFCtC%)q8ky!e#;f|=OOS?hQz9heyrH7T7*(n*{(ElpxL zGVbFi!;?b(zsBU+y2sU8Xse}aT0XlDGA0kC0xPnFpWM&C3qlM5hoOPOE3y{iU@ZYi z%;i+wIEz+!=bEyiafRYUhDx`?PiOTTw~WzOXswN3Sv)PCQ+Kes5xji4zW?%~rBpZR zz(4VtO<9)wnkOqYhSfigc}Nbwr(WNl-#`N98hdu- zuw$8|zQ6Pj^P~!}jm@Oo46E7DUM(bu4Ti3!7bsy9_AVJNedM`9&aE(@XQN~Tk6Irm zkc`d|Wgoz-XhjPt5^>$wWG~V?RH5pu83c3i3MWz(lN-cqWBwaQMYz^IHZ% z+ysK9#8Q9wp04~G;mUukaOK~Ce+uI}8!MJ#?(!BDVosBad-n{9TSlh~s+4qWY_Zx} zOQ$ECyG^;FC(h8Gss@d%MN6L}zrNx(OnBV7EGN^ceV$NCDxC}Rxp!nD`p1M4-Z+r_ zC46Vkv^p-hDUl8>1}?&SUqUE^L?xw;5c*W8%o7O2`s7S7rk|dOPUuNgfagPaX&x4e9ew0cy(2S_^LLay}D?WvHxLnc=fV z5RSJhmEPacs!gAUj+ij?lLY-s)-cS~_8L7LvhD4T?;=wXk~Y;UlNUB>KE!b8tHq|O zXX05<$Y~lg3Lvy+Uq0xY^N9oH$W|fI-vHyxqGQtkpRLzOzoElU#?x_Lw$^$IK#jLm zHoGS+{Dkh(&3e!C!(MQV&Odb^{nuP_K5==AfTtU$)^@gToCv7d3Pt_N^dwbTK`h>Y z53NlLh&^#t`d#jLv#tbhtuGu%-z@Zankv>3{j7sUusQW5LFMf=)TN)gr@Q-^aCbjf zxVxX}*)=q8*%FG33E6Xvru<8R0U0ID1E!D3IL9RUoG#yI4kTZ=r@ZR8xe~VZwtPHi25bEmrTtpn-n z&n?59pQ~=42;}$-Da;D(ndi3-lqO@Va_K#3QhG5RgK+&lGqe8;efvPdKc<LQ|8s1dZQ2kbJMF zZ^)AurKnw^xW?K5Jv8{@FhIXff!+ozc)m?2n2?c+y!eFGTx&g?rm}7f(lHZMDR~^J z8}P6gpltVmN{AD=rAcuf`Qaq_XWO1HP9#6frN)5XsDjDN*`HZk0zWQoL;cZ21H}A_ znxw;eY$${?v`QidRvnPGXwR`AD0?|XZ+*A)0)z_1cVXE z*@;IES^xD~VVx;NcD*J=R^egt6CK}A4o5r`2Z`sotILH%@* z;$2Dd^8;gDL?|#E;r|LEeobn0G#BkA$=wj}uw3zA(y9c8XOV|C(f*Rttc+4ZEdOfw zSx|l}E8lKqE>re6sO>ME%$~UBqOuSeEdy6?HC+0T{UufcIPr$ko=cZ?MYg(D^__3 zHGU_jT6MAvpIhHTTyhkk?Oio3g&qfz(rDUaigA$>afkYOZcSk8+iUelQV^^}sK(ax zc|&vQnqyh9;|2lNrK!GFyl&66dhqIM0xjOCM+X#*jw)qUUpT zt^|$`_M=q+zzVcH87X}>e$}jNmbNk4YyS)c62F{z-psUq*2zI6H8(b@3DbruT~~<@ zl_~@XEe#rS973NgG|FJ#szk0DT(R76x{$o9^l|`!$+}lwZW2~}m6g>en!p^X(jKqbwB&1rK--1^~psptmm0p+B;Yz42u2st#*wK+5ktUV7aAnN8 z&Q16oOh-P?g4n5PI*1kRVS!-_>47-t?8qua90JHdbGyi@CBIwxX7<8_`*l@~!yYDX zPO^1-4cJGCpDA@KY*pyVZb*jS$4Y;ly_w8+#Bi$4N2nj2TF?zsA+A~j7qsii!=-0Z zi-%M#a88c8=sGTJ&sKGk|E!@5(3m@x>{E(8Ah?jsE12fcsiN)E76w@+qKE%bdNUJd z@)HW+LPA(LE6PCCDu;LGGR!s?J=?3yynHL)40ghZCIU0?_O0Hj;n zhsqMgTV)|^K!8{3za)>8NhxPFACVeOD`T=x8+u| zG>O%k6~bfkIw;97Uqz5))34j>8|Yxz6#LV1S~5}o#$xK3X|s7{h^v+Se%bbbId#k{ zgIq1YCM<^< zLcNW0y;X*RagH!eChZkzLDC<=ghK)OfWLl}W-nktiwvYOWAS^Kv0oXV^wpW<*J7N~ zGHMkuPRR@VlKu8;qzvy;&dOm>s&03?-9V?eyG#}ooIv5uPo{^gBE~GGA|5JdrivCK z5r@^w$BfSe^z25Yq_i5*b(a;X^6L2pCXEL59Kh8XXv+1p^y%|hCbD-qKAohDxqv(4 zb26Ty#-!1n)Gkt)nTrIkLXFp8ZjueFGI72^6U2bh=jog$P7Dg87++A-E>;dRL+7Yq zbskOmK0q2l)DNM**)D-52NAKqhdlolMVa)Wyzk+{#r(S5+r#_=^75!3F` zy{jXYSwH1)b#ZL)+bFRMS=?o^9r zlU_7Ta_Jr>>(YHTSx4N}Ylh!{pUv=tjN`-i%Q*g^^{Y(dS z_1Ax5sF^!wb`W%V?CqUQuXpa#Z?B_cp{HjGXZ(!L_*gl4wwyWoW{1>^gUeHar+^~E zqpad`>E3j*%WPYbFr)crbM|1dj_UMEy(**3a{idY#Nqh^=LhF|cW)2d`suJ~X9}Bk zT1?#N*jpIv&uIVn`OFC9jmzZ{}U-y6v=16zqZAj?hKs(hJz4 z=0!i#T9X6tB$pkDHrL6gs(9RGA>{7AGH?wiyC-m0t3UzVZy<@+w&b@6m5Osu(!yFtiz^>rX415_qB35x2zx0WW?%U8@Q5jYg$yPj;3Q|g-i1e53F#-biNoyb++X;NH5Iwotm)@p7R3n&eh zTyb2zh(rCifN)JGo*#i}|G-twZ0qxE=|{kAp+^wpH0&%T2Bbf0y|0`uE#!Y@U$D8R zp57^^@5j-z(Uj{DjEEAip9M- zLK@tAA;V{abAd`a?B)jVplBqk8qmhJ;zgcdW(7Xn>?yy^_CO zkit`yY%ssQ7bpDoE_VDco`;nvD5wI0GVMpp8slW(t)~Mql@A6^G*Nz+W^4^ZTO1fq z8Eg%`T}BJSi}iMcsg_HhbYCvSoanoElUJyRx8o#yPm0&y^iHUxKcu@Kd_g7Xue+Bj zn(;_+a6R0rzXao_qdI6)iv3cl!k;UeKpizvG5?)3eePTuv<4I_uGu~aoKd#Bsw^8o z%5^y>x;6@Zvw1gGt@xspg}C#}L(yMLz6TZ5$Zcia& zDXSLl+tziNL~^e#DcxJ>q5mC8$-OtKnSYtIpDf$`eNEvmeP8SxV3d}tdW|itN$=k- zOyqY&clig}6m2CdYPYGIi0Xx1AwFZE#@K2z z(M;;ejelY03RprF86rHUCxbj3YZa~TY-xa1$)>9~Ic~4mpSE2@YbbIA$3=Nuqt*Vt zR<}-sHZKZr!?)|#(PXmTeCjHY;~&bVW#&Hi5*7OlHV&u4`ga<@YHpVl@pPE;ghM|LI3m(=g>RFeI%vd@bk(Zkn3mh3_=3IUAO1*hXZqK+Bh-2z!gg4Hq z--|wsVDhnY=3|ymxPux+C(F!Lj5+YZM(g;d9&Fl+HWXOuA#8oK8dPJYRScb>O42_ zhJ}Fb2WV~nLB|@5Ww7sZJXMp&CqZhbtIdsFC=Q7^xw2Qu_{o2{k7n($lDGm~1hkFa zY3x!UGu2p9(QI^NiY}yBmw|poPIJ00@wnyIsW37=02gwBWwHUsaE1Ne@%buuFl&z$ z*MKYE(aKrdpV;ChFXC5rUv;M^p-9LTX)H5!?sg<{Leb&kb@g?&zIDC52DLN4ckgS% zo&_s~D4$l>x333%i~sUBy~Uq+=Tayx@|{b8ZuftcOYtd*QJ*O%pDCBI&{!lFT%0j~ zt(EPyX7xHHzo#ytZ&E7rdUKFN*=VX9QJu1--286T3vy2uv|M_;HtpX(c%pLa{?$Id_g(ovBu#5~@7v>Kwil6~o$Y~!cj+hra%|2*VmI6;^Uyz^QYMvve zeX{?Tk&;CIaSF~Ws1+cVe^>m-42yQC1&5=};A|8$4i#L5eT$Z=yK*3sFSe%AGzunm z9&f-v?;sOfwF-IOTkYrS)(9#}u4hVV8kM`L?PAPU1hZDTK2@f4$| z3vq{+x5GyVOCRwkdwqn5P%bEC6LpE{T_%+KdUFBZ=2~~xbazQAaA2b)2}$A)jBUxh zm0ntJ!~3@sse}OcBRGm&>aqY7@gX@6U)UPNjP>ZSBbPN3aCKD9Z~ji{J9p|#he#*I zexk?RMXiIt4aCad^>BH#vEfOSbL6y)IvgphI(bWi%H(SP*($&!Q;NVOdS>A`fKH(f z-fAafrGH<7w{ry-rxuHP;%yMy1cRJ!7)^-H2fs628|;B=)Boz8xRgHX?l0$Dimypg zD;=mTvhJf%=N^`^XTV=uR?oILZ8d zIm^%y_p&b-jc*rmnC~`jWRZp>r68Tun|PE2Dxv!oWs0b$3!-i5<0$7cfdRrOu>>6) z^wIP~Ce&qu5;=#^9#uC4ey?ZX=T;S-Mwc&asrdEbdYB_y+d}jGN%oabr@~?_c_~D^ z!we1AS+urjrM3LsP32zY+-ba?454SHKSsfP9DVzou?A4T}U%G}P{1#@p$2(mB@ z_=J7!_++T`*HKe|ClvTyrs>H-lwW5DGfR#3Wp#0lJ?6NoIwTtf8;%PGB>TBOnV7NK-w;*ygwa*+7-mxOzjW7k1hgu9;$2PJ{nA zkLp-TMT1@45Eg2hpH`-e3a6J%T;AV?3uC`TlU6qsHt|rJXC=$#vsJ&9&4pEX3NX8e z8M9`C2b)NbBVjnuh~0je1IrF-cFaP(z*17!sKlgGTxvpvO0Q=)bc)p--Y~Yah{Ca%@Qwqrx zrrw*i`AIqbcROCoKX+m(cHFenpPtNm%M8nIiq4)ZSTklKE3h!>*g8%TkC)O9MLU?B zBxD5Wo)G5epWG7~`Dw81{;YsTe(ILcZ;*yl2!%g?ZciqDf&0@v_1=dm{?$Eo@ar(W z{Uf;wpJ#;xY3WE0f0d3HgO!eCTvO+PlOWCyoO8L>DCZ}ho8!TZ#C`@um2~i;qhxa| zp3MZwGXRCJl+w9)IuSVbGm)WRmy?m+ne<+q#l>)O5LyF8?z}#TxvisNN-Yc6im3*d zLVM7X96+yuHHoVRX`e?RlS#R&f#oEqOj+QSfhO3}A7Ri?<{;f|SNicavCFrK?l z)+&&LxKaoz!7-C@f5XrxE-6>!ZU)w<5*GZ?WOi99bJ^=Z#Yc1tHNwg4iCb4Q+Mhi~ zYY=72LQkD+>xhT5J7#6p5x30-%o)N$4whaP9dl0%tuAX9jv*Z4yGk1w0)tY7>ra4{ z4n0$BWDwQDy8AC&Of$s=z7w?Gj1ZUG*e202h-fTixKg9QTw%^Y;nhWa$ z37`vTXGcEfMh0>FoO>-l2qPt?K*Js$zREzO@^aQI>L{Vq;Bx$M>6gw^n@rKTiYXO| zKe!lUZPB7-V{MT!1Xfa%SYy05V%-N$NFL%=m&y;1Oe7DF^mvKy;cxfIh;wX@7I4`k z#7hKaFZ+3WSBAFR1m6=aXplBqL`itN@KSLU>9ZY~D~Nd}5puAy*E`YGl=bU1Xwx+B zVt~I`@~CjuBO}RUw#vs@<>U9X$|u4qj}%t@wtf|{%oTr|+c>+?z#ZukEA8{$NjYL7$6d3kes-5} zzEJ3`;^{ICFZ5s|qND;oGFP12yIr0x`*AfFABZX{OOt6U~$&DH*BJGHNjQZJruYmPa*V8UI&#(Nqr)C8D!d@wDcu| z)gn{}pI{M33*+J-P|XlgTUj8GEAI4pH|z|RK5ZQ+!LsP8bQI98-N`A@_9MZ=7+sjL z4bRtaNq?i>z$o0-FPbJL!#CF?yX6hwPnbfT=pLng4rr>_L8=#`i$!2Nt71^Fj!**dN2D&O`(pW&*q!1o5fN z7@{T&<eH;e^m+ zd$)th$#HilPRB7>R1w^JXZuID6nX--S*Tgqu!{#QW#Op^AD}RV`@TIC>lSy6orZi|76n^eA*EoF zGxtR0f=Z)Mli*xVM^AN*)7tfOk zzy@Dgzg{70UBo61SP-|@^_49SdSTF}`?`}g#AdHVy(A!UP=L*RH9U!*g#)WZasNfR z-$SvYN;I}ZKZ=DZ#&anf>2T?65dLEubU2k5ukz-q>;OVrPq(Y^b&Ar!7;4A>TM>B@PG2$)-~-xrr;Dbo5Dpe1@zaPnzFiv1S8o zIofyl=s+e-FJ41#5AL{?C5%9RHAo;hUJjzPt-!L+3k6RXw&d>c@OV1w z85z9~V%;tOLzW@E*BpH>=r~~C%OmOM3p2YD3cfsOc?&(A?1hcT#!(p?D!xmkn?|HN z04e8z|MwlU?jzc6WVHXG_6h-`%h*DY^qw<<3zO*g0ZHCWetw|wf^)OQCvu&Fldf=5 zy;3WhrM;tQJWosit#FkJ#&h)(?4EF3(&owPVjy_bF41mfDX{DLNr~ehf*(G=BcE&u z_4Yw_>#$kLTMSF~I!Of0vAE}Yo7>Oo17~tx8!5+3^X>KR)}afa$mR9zv7)AG5Qh`g zJISGR!YN3my6N>tWw52XBZGHP!tauFh;RlBwi*+b2uNYg0>HS3tWLVS@r3fG~{2fh(e z&BV*fVO00zIpUZh%15kMeN&_+mR+=)Y|$Hnqk?dXS7cpbEG@}DBy7)!qH-U^Ro$^; zONg>JJ$%qAocc)lu9i-usr$T6*=$GU4rFA)0%1k-lB9B+SO1{R^!Atp)9$>%3 z-Gww`_1Dt$M0`amB|Rda@;!0N-`MXO^RMmCt$#ary=Vc34DDWux$&DNGz(-9HvYYtIVKwYMCa5xRq8Yo%7~fr>?ifrm;T&;QB>zC|Ol zGzs*NDpy?PgkNUkmY*lF8<_Zvp*CZS?K|arn>Il~2siGpy%MIpLY6al0`p#z_7LVk z?aXUkYAl>wT9uc5m{Zb*Ka46$+e33B#Fra=qWlouohG|KXTX8C6-c!zW5My`>%?U?+a!pI7i<;bSD6l& zo9vPynpjl#c4ba$fe6os&`}9X?1!#Lq_O-|RH-{rO2AZpueVmDtsb-goNv_XfoUR|k_sF> z3DU>7hBryLzZAH*BK-l$jG-%N4}N`^@m4HGb}CgO^gxZAOcfs`pBgmB(dVky;}ogd zNgkKl;PJ+kTyNm( z4u99`JaYvUvT97&{UXD} zOc3OZ+$SkP2Q55wEhli67#~kvl(qHd2dL);2zjnnqaKn&=CaJYE2!#QUmi(+6j-L1 zf;>xGoh6yE(WbM+{BlhPXTeTYph>xtxV2k$OpYcjTv;`zcB586)! zd0{M;hXFe;Wd^L^oChDoZ4LhM>A3O`x4t!!zN)qt^+yM@$uhn*cw#nyebkv$ek>hi zw;ZFEnJ~vftmNU5(PwI4mBU%u)Bz1R`;z%_qePn(T$x^rb2<%4#)`ZNa*sNVnx8TS{ed4$^`!L1vL;5m9 zk{LUb#kb{fo_#T79w-ioK2p~(lV|7<-smbqF)WFyxAKpy-DGNV&9%?L3VqtzCoZ`Yq?>0nzbs9;9T0dkf^!N^OT6(MyGOZQDw65g&b8v{J%OE z3j|Mo!nRT_C|*Z-PTc=)2IS<&eKr+O=QvU8^t{hI2G($dQ_;0u{MHuy99vDKpt0?K zTqZLVw)2aK2OfCZm^S{ne!HrqJ=5^pmfHe0%?iF8sVrcO&F1161&2vTUYJlA)ThJT znr-wqs3n!?oy51s=^^l=r__>Jh^Zzk3oe2nHmubU7w7SvI#4=?-J96iz)D(dWMm?5 zg@#+9#;*IMt3Rz#eb;0Gl3$eARP6(muCZ3I1b6ayj&=Znc;NE5>!X6BWd>cFb&|)c z&&?PT%QrfwkOk(wFx~P6$sFbFj1vo>%$#3r##>ZLYhtI;B@OS@@P^4vf8%QxhUnH(&?md^VX+zipe?CqbgE-`&$1CAeGAd10T zufC>><&hV1;#8;Eu4#M2M)Qi-Uw3a1zc7+mG}C;mbObnO_$R=Jc**mzFoV1o?qcf; z-F5B!GQGV=74MrDn)w2dx}Hr>1Hv3<^@zaDG zS=~jxxTBnfPQV6anjv4jZZuPJ|8M8y##~8lJ$uYm#8I3`bPHczfQInlA|c#M89xZnjaOeg zj1Mg-mGCStB|n8?XMeh2^?T)GsY%Z+T$$Igd`L{(4gO4i-PSO2)~P1GEaH@VIuW+) z^&Wsq_Hahk>&=y^*{XaRLzJ@8TsEx1j?BBvpKpqTE?JxYCNvFDEcAz-KZ|MX2KLId z0N@N}Dpgc{q-5NX$TxOo*}fD-x1}NkmFVs6?aANtY5h{upq4g&nJsR=$}!;i^W;uT zDxL=}LjLrQtW5XWrQ>Vt>1hi!qyW&>I=hjvhOk?m>`t02_Tx;FKKw+oE!=5o(OYZp z!RCSZ6D<^E6)Gjk&qhYi25Iz~#tDP-MD=`Rd_~*(bmsL((ecU z*fLcXwHuw{A~8X{d``;GOC&ae%RWR7B`{I#7r|kNIjRrzWu~n%uggQMkvUBoTHALl_yH=C3m5Q|@7cU9*x^ zl5g7O+^nlCiQQmfHIGc}Vpm0!Ar;Z3Eci6w`6Bdyq!Y} z2D!f(^tC%w^c265oh}T$&uboLi{05eYCwd-Co@rNHLKR1LKMMk6%~p?bKJk9|JQNu zU<9>xjdLJVn58Tt1wYtso#p;uIlQCN5^9_?Z+Z!DYD^fUjyn0!$cDBWI zuNb(v?jwG=-1EBF@2iEk=*nBw>z(6%yw7_wg{(j&RybErPZEdv$XauA8zs{1mDtt5 zrW>XLH=dihQ>K9RUWHo7!KllRE?w=@7O_e7Ad0((a#urdH*R)pPfZWit!+@8SaAS`VrN9OJxDeHhr=1LcRvL zyTrw>UdMd1z0%}pt!FB*b5XErcXwX1OS@9_3h@?gJYX7YVG4KAbSXqqLnv1^8jTxO zUE?@4yMF<`DWl}~ie=$hG96ThJAe2T^mtC^k~i#qFN+A`R5st4OI&C6(Tz*#=d<^q zAg)@hOS~e9f150$z<&Q7e>r}s8DJpYq>^HTf(4#=Bz-f!F7$b2cSYXeg82cR&Z6Ff zv&Ga~?Cazf(9OkO!Bu1n1|%C~O%)v5Yn^XbZmrkaRCKfqDCtR0&#;m?2*wwyP3!Vz z^V-U0qqeibz^1XtIwt|VV=WA7p%iE@0$AF2oEJ+WdzuSK>;h*$(zaB|O4vyVDq3Pv#N|d5D@S(uyi{{0e zlzt!{LY`y1Kn9m|Y=s(g@`N5FBv=xejds`v?dkH6ZN_l&u>Sw@zT}aEd(zy)mXAZQ zzcydE$JcT6-t7#w5p11EE_q~L zaR?%d(`lQ>WI85f_62Mir}+PHXUAX%*S?LrOV-IE4@ldNB!9KJPLZqThl#Vw-l8)I zk54RuG7yTf7gn!09J=V=IH2ha-I`yZ*$G*tqvAy9sKg?d3ZhsW<$3$ZEC9zBv!0lx% z=^uiwc=mtEo&m!4&|Jh!cX2JKhJbw#n8aym9z)5kR^^j@Mp$r6d&#U%?19%v|7Cbw z$PYv9IM{id(FTlE9H`$?p3`wCX3!x>?wgOM{!qG*@U(XX()u$fORe8NVk$>pSaG=J z++UtFE!Ev6J53x%j-Xk~BdP7Eg#=ipIg4a$zdWvZYzj&V3yrO#Mm$+QgQFNCEy{wq zSj2mG33e9o;fuu^klj90yymX?xO4mk$%f*mC^P3| zD%-I^1`!vUm&x%f@k4Q(=TZycLS>x|t|E@%hFeHFrr|=dHXsB1=rF|?o-@VuiG=9c zE>{YL-?Zx&3Q1QEkN`1$?yX}V##yzpI#6-ma&n1o`wIbShu}DT`Kfpx_=y5!pll_M zFaShxF-(?Is+!=MeO7rrYkLWb21z7kk>w=@3aZaz2*%_7SeiA;(z&3j#RY@3-RRC3 z48>6fg_+cvxeP^JtH!TT*a)k|DJ%pE7(!86m~PCTl*b0U%Z=;_YE5KcoTcrnVJwuQ z?d-AiN!W6VM^iZ|`EvnT2@T{~Rd&TM<@0*xUPjT^S)j|kH;M<;!r~~4LS-pa!kj`9 zyX*oAI?$T_BrUoLEb`&<01LqG1aws|v*CWXw90f<{Pe26fqcsSWkXZh$hH=t{LB`+ z&hq=otM*tsD~vxmBXLQpixN)8v$=)wbF8dzg#0;%z$Mg{_qnmVxdx%0=@J&aV#X z@Y`1_d0z{xJpzRLb)lPFi%-BoZYWTflS_>kD{J8vLDqGwqJ%NoH(JTR6Dt$0DJ}ev zMLu&2h~))Gjq5RomDkV2#Fh&|I6UX_?;;n8s#@1kV18e{M%fW7n#sqLCS*so0|-$T zGhl~}mQoW~h|xipO(+lDwx|XASUOLwJmQ!L^~6@?LVMOPB49h8t}IZdD$f~oY)4$a z=6bcVx`;&e5?XAc7@IfP2P9CR^hD|5RI|=+COfGx)@xiR)Vu=tCO6*D=HkV3OQ7}8 z4S@tVB?m+>vF!wg4Nqyn;||~)3#vc;;2EDWPK>c!G65xh>!!)RWWAf zKRFj_uiXS^*Ts%5*z)qFbaZ-B*h)7#1B3ru{*!>9~%8EAzp#UWcM-F zhAJR5gWX0Jb=av-e?3?V8g6*SKzWEdwn?iQ=+J&uC(t^q78NUvgU1d1J>@MECS4Ik0Cdx>eI2;Mv z69?1BQd4AS_!C~f4j&A=iz^aL?NorUMofQYf1?MP#~TqPr^Npwe{zKSajCfwA~3g} z9!^({CFsZ3B~M7^IC3!IAA;Bi)1wCy{!!)aV8TBh?H@iioIJfZ6FVpPX~7pOJYlQd z%gIjEpc_g80#e%8ak1Uoihuo1_7t@4kGbEn6?lPk*@QtTSIws7<)nq??M^Kj>CiQ) z<4+cD<48?K9 zgRD^b8G$HhWs-T#;q<}e^xe+kWOwg2zImFRIhdZvM?H;IXE#Zw`wV(!AjazXUW>EN z&vkTe%STe~)G#LJ?xth^mf~PO-|aEYY2w7UB& z7uJi1aK1m~o@0rM#3b3=d$@5es`cv9&1z_5kFHEbenp{(;3sr1P$!oN|(^I zS${7q=H5+5vElR(*Qt8Ce6T-R z>U!ZH3@6D4Sx2e-25QO=-_1&lA6`PX5N|EV6sxih9-9sFs_EogZyZejKla`QPOqxE z`#&dnLMF+eg9Hs4^Z|lS=;Sa!zz~AwiizfCGT~C7c_uSYG7rp+d1gYUg&JG5(xO6< z3RW%pss%+w#TF~J&|*aei!HQjy;f{#t1Z0Mw^-Zy|Nhq6`<(O41<<$k-~Z?H&j+13 zd(PQ=?Y-At_qBFS`&=rNulg&^HQNb>O}i}Wca$>H^{MxhU!!GxP&j^^Q-A7=$ zq5_uR?cQykTa=Ley7%OI4aM|toRz?>3Mlf5k#&++AaRS=?ZXtvmMzWOlH}%DJJ=jL z*rlK-zafCU*rn+G(r4%&6Zst+l7!WK8PWG>~_tsky?XvnJ^p z6KmWHB|T^P5$P%uQLRZE2elIw*(+LjJJ+!CyAi?UT~94yI_;S*S*}#1gO`dl16Wdd zi~5Y}YjnvY&><*|Oym(+vN;bEB<5$7r8y?G@6e%WR#e=G|4E`?aLSW4j)oRv0F>^F z`BJK3sb5_G)^9irh=gyS+Hd$1pQ0>TfUcZLT-$D6hJ8Z}ocduvbCXl44aY3)C}nH> z!+0*u2svd;>G)>TDShl7zU+cX#R_{b9%2;%xkI|JlnT?B&3&@-ymMt0!W8O`BCQ8+ z5aX0{g}j?{C#*Kd5tZ*gvwqw?v){f#={6-QyE;M_uqY@#W++>)+z#C#_8yZwSkHic zsFY^56m-F87HyHSyCA)mZISmIn9;&x)0Nae)0A`ZJ$AQogzK#Bju%Xowr(COQvejP z2Gs=J1_KFEuW-)N@=xp&?~7vfLXWldZUjRf>FNo0hB^e}QUD&E2C+RDYGS`@bI`av z5!m{ZMQs-2w$*Y2g{cFD zm4Ylx!+B8!MTP_`-4rPW?uoquHO(} zHBFQ4GDY@5tCPsBUgQ0%S0AkRtzIpnGqDP- z<`E75<%J3VadbP-eZTh9N7oQ<`q|yuBRnkaUyoIPrBicHIFgYNfljW>0t>XqpzC<6 z7S7rbbzw20W>-$>D)2oFo*o7ki@4;gA0;}=7E#PK93`_7DkXsAMcoiW!w|iwSE>|i zNUhzE60uBO$)lQGI|YdNX^4_{A~Ux_EbNTkl$~q`21h7h6cTt2P3c!)g*^>k;#*p~ z41T#th|E1KD7&+prgT;6rUlA*p^VH3I~1oJe`-4lD(9V>QF7J^7{Mv6Ylx8Dq(rtR zPUZoDA2&9NHYS)fr*3TcG>|Rikoi`!QV#q=mhO$9=6EB3?TYp=N;VZF+ZY+ZSM{}5?A=C^&KD1*OXVc779iE7>((ILlF+6UQN4)!HdG7niMuu#J zi2Pn4G}MZa%qAPNtxR_Hw2s5tU`KW`j$hicP~ys#RwyU+*`aCOv@XS>%1Nm}EKbfd zUyTsqSXzt?Dg;$p3yMZhj1MqBU6$Hj*<(Y6=~_^tcF->gE{;AGleOQbJ`Lx$hO@!O zmhb|5+ENa2HaK}r%P%H3*3bTT(MacfzXXICys{VmBC>|y@3bj4ZbpU+*$DU`K?903bGWCK&E zL3vp^oZPh#fK~*Yb3TC!L74~)Xo-x%O1!Q z7we2if6d>|y8l!?jmzFfv50v`P%VNWO;URndI>Gni1?n+=#sg~6VJ4p+fuqYav|NE zRqEykE}?xkO@26QN8Rk6BB9OD;%3K=bXC4N)Y}^w!-9S#UVE1Sxs|;!ZW5un`BtwE z;gFk4-}D|(WS}hXPye0jQjDQ5R<;v6%4v6>CMqOB+slGny`44rkEa$gqtmdp2%x3c zFCEW=+scy_h7yb@m+`In3$dG$rOM(GBb~`EUdJ7*d^xozB+P5WpJwPI|NJRJ-{wq- zyyV(3LURgp3Pi2N{A8MEv}~=NW`deqxiYjBfkrJIW}EX_+vb}Cs#19%KWS!CD#gbY zHz=F;98THqxI>{{j86n%^bV5lH-xe8AsqC?h)^3#A@EfTTUXYj**EQaGcI}TYwU0I z6;`%v^KLlYV12jltO?7DaCl$g4|c{6JA?h>eP=eP;^r07#1tc>Yvq3CL_b|bt%n%d z(R!ui8tD~Hs@R0EUPt9QRdBEQc_?7OggXYtzGl94>Ej2Ev*>9F*P?gQAt4Mt-!U+c|~ zX$(TEbN16NII<$EX29M;s<=#jd3501%Eb|vwV;GPVA=DaSH)_`Tadq7sSqn|w8)e? zk3%x4z&=n8dTu@hQ)_yVz#ve1ZGRAx8pD~^M1OO`Hi&4h`qnpt(R-~+IUB)C?K2ad zUs0U7x_xI zEOuf&nzwGN;Ss9BWExk(QHxkBlo8OeF*-qHDWO0yY%QQ@R<+B=In@T21BvYIQPBQ) zKw<+I!}Qg4@dBO|C638@>=zAyVQyQKwcgi>32G>*T3S9!>y(#CpJi0o937twR^W$s zg@u(|td;R0RlcICOL4drLTD1V)-|-O)7NSD6}_X$kz9@%mW^Z{U>E`eik?KZs;8iY z2X|++$w%B?DQ^W>8*JuAptZ{TNV&1EEsA{{3o25$A_-j`(Z^c;D@MjH`G%MV3yiCxCeo$xhnv@H; zW?$B7?*uu<6ylq{vP(Cv^S=?)JT}6uH%-YR*IBA`_)6FtDXJoy!)w__TiTtL^QVyL z<~Z`lVbNAwNmXkg8&F^Kl@^%zSR$drPR4`7L7Y>$K#lQ~L|O#{X2&;p&4K_WKEw-X zlw-x)dh*S$Fu;CIsJpDDFUbwlf|lC)K?_TN^ZLn_WL{ImoU> z6${hKYhknWdKx-k{Mo!##ywDv4*cwK>7?0(fMtDSBUkhfj)3;MP($p$Y~|Cq)piV7sy_DGBk~H{7NcpA;$za4W)dOBdMSrmzKA_-XB(z@Zm@Hf6KpqH z%mact_L+TFs(AULbbPBtQWR}1p)d&cSfog#%u^;yGee>EC<;SaMsN9Br%Dq=$JH`l zKJ=#~S^iAcd+k)Prr5yK_Ql&(vWJ7OQrBQ8bSu9mp2GS?ON%>ePLiyc{m2*lJ^jpI zyzyMEM9axdLLr=RstmVFC%6#1b&zc#TTXe_U+NMu=-ghyd4sz=4e{;Mzru2)>h&-r z_?U*YD22ReQuXv|O}-oisfl_m8`MHN(4PBJ8WI}vnEu=Xl;635B`sX$C4M_`K`Umn*jN_ z{Mb@^?DI(GJa*TOy(%+9F($%$OSP12Uo6rf+erUY<}uGL{`v+n)DuUIP!(h$$S4>v z6;zEAC{`A#^ut)`eFix05fZTvzU*8Or`3HI}be%`Pavtms zB`Gj-dgRfGWJMhVPBM@flFOTZTxs%p_ioM$b>POiF2^D&0>)BP9|Qw@CF}L?7&B5A zx_*{V&G|u2J8{($qQtDZ*?QR(+VQrWAC23dYRPiIxBAwOZJGIT{jqTs4MA4FD zcTD9@u9|CILyoMKnx>$hlo*}Q^L7!OqfgO44L$t4kY1(xEm+4U7P~eMQ1gVcr%J?+VoW_}#?gT9XxIJBl zWUPz|(zoWM7o11RHS%=5-y|H=S5p`fF(~@DufCTBY3!doV^O*`*bY0Dx;?RKxuhUP z#$iL7BH|ByZBWBT0dmb;5EH=a^Pu@Xp*3Vfa>vw>7S18F% z{N=O=8AOURS`?47rYjz2x#FQ8mA1CFeY*i zOCq*euS0V>l2`NF93J<~gdrqK*xGGt5N{|o3S=Q9D(#@SyjtqvE)2Ob>_ui6|1@P! zo9JviZG$I+UelxO((z^`xo}asCSXg5a(Ee)u1T1*A=Vig1*vun_J>b&zsH3wyVX5S zOYAl!@sgQl<#)!JZF*(bo?!~!z)Ilz?9L@dCP}!1zF7h>MKatXBE@;4c(<#nxY;pF zdW#XI&=06J1WYN+@O`_PfZ_ovw6O#ltLra!bE;IrenK~aVE=Fmug=XZ>jfSCF7M7p zhA1KmBl=8-@S1AqZn@}+9IlaWg`gkEcYTbCe9c>X$=+3Q#r-k?6Z9uNZJ!0WP5b0r zyU^IQQL_(*zK|wV^O9Y+>iX_`-*4|`oA(S`aF&)W1TmnW-pOoY)C1fzgm1Of(d?&U z4y8PyA6bnG5OH}y46KISBOv*UJf_Fh6Wb8~j<}?2MI*VXNfq~tFbiQ6p@R=2p|Rd>oT2EazfP_V zeX!qE?(`_?VwM3m=_J1!4)2>>9rKB;iI(}$pOrc_Gh2R{wA-xEqnlhTpNoY-@M^0Z z^52ALLCy-U2*ZY~bA4}q8e>^g7Dhx{*dU+@sShNvCi_3tRLnO(hr%}PX;?0+qfdyi zR<(_qctZc6N3)X_;`SnzW!H7eBT+sdWtvWwyjC4~)XrrGG@jE1&Nv8iJz zm)mL4(_`j#Y=C&BkIY$?hfSw99ge9DYCC(qC~7CeN`1o8)?=e02@LO5To#UU$qt*%ZcEi;g-?kJhKl** zDb3#1X75VQs=Wa#)>=QiX$eSdWh6=VnZ1{_-pe@ZwB!9M>!asTYY!8%_ps7?2&od? z_W3J3Zz2poIs3J2roI_@19XJA5z5pB=uX`Ln}!Tzo#= z;d^2J?C`xPe|Gq)`Ln}!eE#h4osd5}d?)754&So;+2K1We|Gp@oIg8!FNx199lp-| z+2LEBKRbLU=g$t`&*je!UswL@@U6(79lk7ocKA-opB=vL{Mq3Ihi^^(?C_nFKRbLc z%by*-m*>w8-`f1y;aitKJACW&XNPY?{_OB=%%2^;P4W4q4&S-?v%~j_{Mq5#oIg8! zTk>az@0Izp!}qHE+2PxoKRbNe@@I!{d;aY3?TF8-9KN0Tv%~l5{Mq5#l|MUtyYpv< zuP1+Y`1a(_4&QnCv%`0O{_OBwkUu+o7slta9KN5=pB=u7@@I$d;{4g+yCi>h_qUb@`WtyeU^Lej4G!rWiw1}EO+|x4`sSj+A-%3>a7eE&8XVH!EE*ir8;S;p^esh$ zLwaN05LnJ{6%7vQTZ;yV^roW0A-%b1a7f=)G&rQcT{JkPZ!a1g(svXM4(U6K28Z-_ z@`k{CZYdfZ(svaN4(Yp#28Z;26%7vQdx{2!^u0xcL;Aj=!6E(KqQN1(wP4%C2hxEfmgF|{p(cqANq-bzRKUy?6q#w&00zF0_DhxGGBgG2g2(cq9iSTs1KUnm+J(myL29MXr128Z;Ec|+h)e_k{=q<>K~ zIHV634G!reMT0~7mqmj^`d3ARL;9tn!6E%}(cqANrD$+S|2l67JnE}OgG2hYqQN2k zdePvJexqn`NWWP$IHcby8XVHUDH7zx1L;9V(A@HcbEgBrszbhIX(#MJh zhxG4@28Z+?iUx=DABzTu^t(laL;AgcQsm1IkTslZS=mC&}w(@21e;u4+rbZHH+E?f_qEFxSR3|sVIBzq};!?4FhsD^b~*LK4ASJfbrOryDyVB&K}&d z1k-P0sJWSN6$^632jbP*{3^gCxqeaG+NsgVOLq}zjPDD3P4e)P-FA0d8h);gfyQZC znUl1yBeLzk_Fv^OirYUz**0Fn!`5kbwfX8ut zpk)T)X0nIbgn1oZho5c-DmPWP5l*V8Q%x@1nC(smYrtSkLHKNC4!&Zft#ggCyz?Gr=$>SJlbJ?Z?bEMSSI z&N5!>y{|3@5dIUd1e#Sz!cb^&EnIQ7*QQj<6rRi(u~kW)!IF$t^=fo6VA?;}7?~i1 zLhF$&+1NOMHz!S?B9+Ih{uJMBnKQSr3^py)I)oHb`Pi3~mxuCdBm2Y4|6aXR7s-M4x)#zLhn9RX-mpS~ zy^1R%H`^n~r}|TV&J*2*Q^&2cD~wYQ$p`%GzZOJtL!y zzNQFQ*W{c^(s@#Lf37*P~vlc5)vWjt91mJp$Vx`$CuHw)SL!6RHgz zV#y4<>&>_5_bEWE$)Si~B(F}Z5Q#8`chdAFj*dp4Wq3u);JN0)O!riAaOxy{n){Tk z)tVceiZ5$4H>DsUp&?BsdthLEMc<%Oj_i030+aQmPrwLbU1=vtJ|Ds=326!PiYl7p zqxp6*ulU`5iVP3f;C5?uF=JZ?9HktYEZOFV*&THd7Ke6n6hB_4?!nUO@blm0NM`(W zd9Coe?Z*}CEw*4^?f@>Wd4G7~>3@tEv1Aq;^ikH2b}NLo-Mq$PY*h@128Na}8bXwEtCZHM$oA zCWAx)`UJ{d5-ze;HuPqwmf;Aj7G^8F+%~Nqfh|*{riwgp4krExM;CzvjYq1N)$60x zPVSN7oWqe-#?E7OmuJKBhPMao z_;HDU$NA0yKR9w(JzE-_pC6g?!MR*;Ie1xb|H!y<)$mZRh|e1B7nGO5zqQ}E^z#EZ z&#(QqV0h`b-}>)YUjKtf1=rgDT>WtR7h3t zGne20^*3Jf8{c{PrmX}tB_HmZ^VWC2Z0H>QzU3c2{DPieZ@)wDU;oHAmfZ2@e|CX> z|K81?zWt-W@Vy`C+s}XQq;LPu;uC*O?+^Uq!>{~{*UbH6z4L)J^Tw9H=pTPWzu*0i zYp&aI(Qm$7zrXbUPaeJVws+sE_y6U`iy!&GuF(tiyNgCwS6>mXzBPW1JQc-{;2h36 zcke!974rT5#-Vj7-ps|0BZ^K?93y+A7uYYo;Rl0L@6thXmWVZvush;!0<}7!**s&_ zxh8R+Ajyl(Aw4RDk;L!^?}2EYdS3=X>1{$@8_iQir$ee!+{JLorb^Zmtbu4?!T;aS8RdIJTlFrCmU|u;yZordOZ*b{`NGsic!Ca?xECOHy$60dC0pafqk)HItU0tX`sZ zM|J(BLUo$iPR5D*)=&J`dQqE>j?=(-3aPY=QwVrP_X^t16P2uxnd?!=q{;{Op|fw^y;W`^LR^A}=l>k%iLaczT1>~mI&{_EOnEA)@ zZIXU#PWpxZ$$z+Rja*BYguVr=&?|m6_SUN>6n|NZUXGK$fx%=MKnF z8-dMBlj8-_;FK3b-4ktZ))hiIb`#-DuKt{A=sjtB(k5b&&z!+41{y(J^UMYx5?cdB z_bphOG$=$0zJUPnU-xyO6GFM+n1ABi$WjPh{n&Md8B80!G&zI7_b%()1!j*7soF-G zR1Qa2XZzXdlD)%<1tff$>q#dE@^^C8UdfWK>WS6e$OU2q$-F?$w(Z&7BLzx`X>nb` z!~?xU`*imNDjV~)&@TO5%8)LstNt84M;9z72{6XP(qCg#>2OtG2DX zFdu<8$aI}NCMC9glG~#Q1|4MsL_fzzxNfD{Rpm-HiQ`?8#_Xbb;E*PysDJ6hVtz(D z8%?_D9Bgp)v_6=WN_3#gC5TF5_p5*q(5#}(D77COP++hU3KnjQ&nL%v*z`RW9_nLy zw>H}^bn^j2j9U@fM{pskk1faWkti4a;x)ZvlWve0oft!Vh0Zi5z%S|V7UasMYn!OF!|edGvMEpSlR&>SLj(JBz>B!;tE zE5BYos1#H=AiG_l18(eCc4f5yhXaR^KvFSrq%n&oPR=qTr?=lmTPtZ-vWt-K+o{Fs2L^4(${EXH^pt6k-Y+3lprHAW~ats591;n;j+y5;gfkm<9gtIBKeI+QH9 z=tDVko`bYd?3)AyJ z4rQny^I_Lqo+Vo(a*6zC-|3}>)qB6MQN2c~7&m1>zU-7UqV9|{%<&b@E1sE_Y|vsJ z5>bJzkHHNORU>0rEY)<1^oH)$qGn6xic9H~!)PE9fH-59@DuS?7q7rCYui_xYO4EU zeywFp#gPg;HXDkgJ#z!%T%@&l?PzNA)eSV*Ac+#jsP1wf*^jUXxj^8av@|^Ab+*Ri z>a`{ygx~wb$uMSI9oc844#t{jU?%GNk?@T{l~>?8@X)XA7pKu=f+(_G))?g?nJ!!4 zGH^}Ek5?^)U+OBQ;`*=>Yj0-NtxU~1yA!v?U#f0K%Fm69adEwK)~0;3o$SFVaLhPM zBBE;g-228Ka?})q2?^WYO`+?X%uJ^oJ56+A^r#dD8HLZ%*~_YyJ0y&@a~+AO4+nax z5{w9ojc`ZM1r&lV927GM(tbEQlZ`qCRq;AZiv>?ZK@@3#n+fyyw8XW@#LhKX+aXn?2T1SrZq7^JBSw-TF-t(V)(Ds{~Mh)b=*#&Cj^Kr!z7} z*-za-YBu9y6);{Ngjt!!*Em4xjtDS-ToE<%r-CM|HRH=NW1a+|ts1tE^<^QAxedJDpKhB!XPI_^4ILUyi(lK?w~t)WqK;jcYgx7tQ;(>vdbVt1 zqkqpRrmA|H$jo{t?jWDLKC(eLmE%w!y%P=syJKI!JUxvD92k|$GCB-$O!I*Gz+|-j{dQIVD8V%$% zstaodc2;qcxyL=jvT-7wVf!LkS*_J-!)Urgqm9A(9o1?B3tZ@SZ}`5sdi4flil)x* za{pfSmyVrN<)3*b!d~u{>!f;)xlpj*;HBF=&=^{?yFR#o_3H4>n(#fh)0H!ORBHEeO!_7?nO?+!dzulK(|Oo{W?Z)@reeB4l4Vr^+OYtqpZA!f zWQa$QqcB?+MFZ1$SOaq(ngJwe5$1r-jVy7RylF2@>pNS#6^?Em}49pvti>JL~PGaiU0*E&)|{m!gcpxya?2-%cU+SEU0<-$Lx0-L?(6< z^&OaosN8$1+c75h2ZF>>%?ih=u!84#K3SSf@O}H0@p!2qP&wZ+V(%@G2-b%Gq^_|# z2T#kovu-=Qy4ijhlLTC#nWe|gO|NU;Y(=UOsgXSjy87s%9(gn3zskc#cOu6NGN5d) zmcq;+=4FDk#?@5yUy8@|9^Qj42J>g(u%x-iYZ;YNG zeAzdGlUxE{1Di^X`$6C+p^%vVYRfu7kn)v6BvwK^0SCag z98}Zw=Bi%nhg<;raOHA~irKaCL)(S>&pCb_nH$|+|2jnH0;}_<#WQ-fKuc^yHWi)1HXE5we(>N5}keD(*i&z zr7@PD?K~Ie#i%aW>pkVlvL@y z*i7`PkuF6!IHR!YK3ee7D<;_!ZWxzyANR_*V$^G<2E)~s6_ObXDgx*RlY}FRK^Rga z5n+^;5Cvqw94y#?-GVi%$^anqRy$n}Y7R6;)6(zlOURhUJeMY~6FXR1^~WXtHfNp2 zeq?Rgt2JngF(#vubN}x8c`}fEH7HIYZ<^}eUq_#{17xqR zaJx}Fs$+GTtkp*e4zLV+T`(yknO;%L((C6Rv2^!%FZaJ4NaHVWiI>EUU_(YE&11~o zZZkkPV(4NXiq$0~jWyk1~Sz5s#-7{b%7A6L@;PR)Y$yvBi+C{jLO$xX`IjEx<@?4b&h-Q2*g1^n~M! z(>mZ52xILmStonvI;n^rQG<50F(sj9-VP=mET-ULbtqQGk)4L?N@)a)X0~L#iurI0 zVP&47bZSw1uGYzQAePT3C$OZ=ffJ(GV2nwplQqPmigJ@j3TJECkL@GCsr^&$GiqkX zx9a9$-}mvlu{P}Cvfc1BgpE44Q!|vSNlZG7VB_V;@!vLHzVn&P4I6Zax?N+JCbwEB zN&90iskkYkT3FwhNO;vzChrI(0)d5dpCyN@ThIty3dAWRs_EfMF3+$_TjlSQQ+-Zy zqsY;wDcjVEE5UYZdG&;1Pp0peV!g$!{qj*7ksOXiUm0U@> zXpHk@k@Atefb&D>K3Vlu^+|99o@-c=6<3){o}QQ7LfniX?h$t(Qrc_=omXJJ$EUx% zI8^>QBC4GSp_jr~fC2nR{+6GdGnX%*%I-l?>SO1QjO7TxfprpDxjp>V1T1x?TF5dX z_1RZM?YZJ3kTxTF7G2nf7S_^!YJ}Qr=;dR3Cy}Oz;u0I_HZl<&$?y5Qc33XOeVZi@ zX-(yFfe!O`g%f(26*j-vbtnbv9_40LbPc#JBh0+yHV|O#LXMP^0En;IV9u}mG z@`^GbQZy2}7N-m?t9*eP@sl(NQiFpwCr0tbfvIPe#Rz?;ODKG6m`Q0x^H5GZ$fSI% zAi`;+-^$6r=YpzOAL7o8np-VauVxd%R3$XlE)jJp+4vcNKIBa_iW-&?O&Bsnn>kvL zXY!S3)^V=$M>GrwnP~<=Tn%vA7c7quj?QC|Xi*)%B>SL&>n@_2juo`1sf#pfm*ZWO zsSJb)Y|_@t29fybVOaF-yUa#sj0ZND%&9*OD(ktYn z6B(iK)H5LGvbK6Pq4Z;R&q(L;%uZP+fyY|T@V9cahx!I*bZ&2D=C)$7j1q%zJW)_# za4NUyizS|*KJzhn4e{WB+*EFp0W-xp^+AE;gC!Bc@YdkAmCO=G-iilgkT49~Hj1k< zf>XvP_HQ~i8$<{b&~mo7Zvb2aipCK7X#?zFE%6rIB`k-X0-141U{ zzb_HCa3GL`erm#2bTK<&%hBy;O4x#vY13G*QQMA-jYULB8VO8?3=43=Nsh)65gpNS z1<7JI)t2)jwHC`E{KNtoRojhw-Kd`1UoD|$4Sem4lS9~ zfcyxgx8q9&Wq8SfG$~D@q;)hv5U*^0%FGe=!xcq4ks&$sh)^ct+J_E{es%9mm^w(~ z99M+myeRnEp){lf-SthVdV6~n`;I%LE~k zD6fP~mytv%Bk+O2%fL+Zeqo_-f!TY=1xo;L4Q9A3xwX25Y3O#3A?O^QOe>r`D0^{6xb3se^`Eq{+zE2TOd9!wb>%$ z`j=-ii2A&uDSHshl!s0=PEq0oqe27>x$_xGUdA_^C74O#_YrS+KN#cwKaMu}@)NgZ==a|zag;O=uj zV-CB~E=PeJH=cr69#2-FXqgEmij>l^#!!n0&OuOV=$Vdoyav!htDI?MYt@f~xD&O5 z{7BLFPt9L!=IgfG@ped^i!zq@>1-tYB%?Ln?=vSg-GP1iNmjTaL}rzsGMDXckuHO2 zy34lBqgQ+>gBESaxk%=m9a_#il+nL^#&ogU$wdpSvibIj<)_JmQnz~$K>N+|P>0BK z(EDIs+1A~FGT@7OF3e3tKDP%vY0MrAP9I7K{aDGiV6GLpEsqkL^ zv$%(7d4_#67-|hz>}^8TFKW&2vt-VR`1dgVa6Y8hnKb8UA%Sp=Vy9-y5}u`ra!@-! z-*r+TEDP1l4yFvQke!JYXEW)~?b^=DTO|+^wj%St->+DTY9OpWm-_5@TW666U zUwt=Hi3==yg*Pj3*$^)b>gYrafQd%>V#dIMxu8f&y2BrHXU2EHl@2np3%9kFcECg^2bbJbxQ zJdi!bm9Imyo&lVk1wJ!yrVYH(#$$@RvE91W<7>i+Ypd}ODr5|g)_Q|og(TI?mgyUN zO}O;g`QMs<*y!F<{9oHSDKruN-^BJ}TZ??E=z+AkhO=P920c0)4Q+}5>$*!ZhF8>C z9ezq18B#QVK}TIaVtsq4PvUEi!k4I1&F4-OQI4 zvIik&SS*yCg1p?E9PTTWWi<;`E~@!=)M+&pVD;(%%Qn9XZ}n>I1M!dO6I*v+moSvh zQJ1s#9rkKj17a)_iJR^U1T7dG>!^>xRp5~nP*RPAl_&tTnovdRh|D}OD6vz7Q^uM8 zEMXiIt{jPq06Vs10`hAz@&5e%(n$%Hcyv5T>kf>dCEhg(o-AGtcu>*ez_{)#aR;yz zI*i5EaD!0cDC)%|5a^3EADdwdKiE?0y~OvYElZfTj&m1gLG%;h8Tlqy8Fj?rBjBvW z<;H&Og0&g;q=$rHmS(Wu;_^L}z>QGKwpR}!_VzM4jGAIXMOriFO_?{4MfzEgxGOQb zx>z9T9SCwUdoJHy{F}hL&pASqApX7qOYkAC&%=uq)h}%i-yB$=DS;NvY?_n(d-E#` zJ8*r4JnRr5QRq8)Lbee-CKW<2vY#Rt{ z6UwXx5v9JJxim=~dekKqxo2{}p!T;w3|kJn*@R7naRh3gJz3qNYX(Ym*lbKiPD^Rs z{nc7YzIoYw<@H0{30t%m+uZm-E!wN92PTM)#Xu$MeUyppnBL^y7F7!|Jo?>Pk-Lkc zYXOu-_~m>%R*F1N)VsdR!C<=!;xDStOID)7KLH71><4(nJVK9_9pOfTS{WCNP@1+c zv}5&ffymD*3C_-|+G^|dX!mw2zQan%Jl*yXBWdxr4zdHMn`gx5dWXMcW0_4_OW=PN z`G{Nz?=fcw+{Y^>+dDG>5=8mdaoxaS-hJ^QEe7}yH3rFlb;4@&HFm^!p-1+(DII29 zt(gf181}a8;@;kUV-us}HLW!zQEb`WHvzeJnW4F}KE{FQ=ui!S%4q2b2Q>4O4-RH) zB(XC_%wp*1SgLOxEq!CCYC16lRIX@U_M@04gdw-ouqP%&aL&25Sd#2Uc@2v`UqGK7 zX*zSKdY@&KctJokS7F+TAdA%uaH541q%1?PvgF7hX%uKifPgV>7heR2HZ2PGnYLOh zPdYdTJ0FRiD!z|FDkXOT;h97-Arw|e%;%=CUX+ujLvo_PUk?lI^68eSWH!AZb=UZ$;bLG}*A zBxGI5s+&qaxI7#`i1%_Bu~q1#&TEi9g|1^Py%P9W@yCcBas)pa4CCUZQviP^ga>3U zlb#s~Pcc8kL(jMol{A{dx)em`r=vNn%ar9ZUGkaHoKU_3Fbe836Y&9a_vSO%>l@Wd zgI2Z>q4bIQ^Q$HRTe3j>t$pb(Gp(2|+4TeIl3N@z2tFHxl9s8g)8qQ_r4m#B6bOaEuU(v zOcc{}?a!7?qm-U(a~Nd((a66QEu!mxdc6aEP~*RmRw&>X<ggR^_0;LCU+OVbBT0^58kiY@Y|hn|mZMrMD6Dd&A#Bvnf})wz z&L;P!yEN$=6XQ}2MQ0SuS02J(Zwb6HTS+eEM7@85yB;hlsts}(bskMoA_vS{(*h?Y zQKP|G9TzK50=f3!YQ3`AYzn+XcEK)U(FFwH+5&mDUeJZm(IFAhz@e8}0Pi7F2&;lQ zl7v!2fL^1B1OfAia)Gi0@DZco^?EZu@yLB!h^Ys_RdZ3uFRaeda-N`AspKlM$5w2>2Ym~ zxFTuCuyXCuHN$Tmt2SeY8sAs%9bYFwKbl&*j`QQtf+VgA#2G<`Ml4gC$oKy0KZbh| zYV_j-iYF>|SEwL8+B2f8?IcsAN;h6(vBY`JHXZ9}+686QE~6aE`3?-e3a(+sc}0jh zazY5_y0;eV;OQdrNw^^BVQ<5rNK-{_EQGKp7eoD}n7L&P0M3Mqjk#JdyPvlGT#_iz zlnJbS0co!hkQF54j!_VZ{;PO6lud-MUkG0l1qgV)iz2~NoDefipC{Bif4gKjK(IEO z32_<9XV(UVcn#Kw{V+=5i7ggkM&L_C0K=nN)&Zr24;?R}_0UWLf*o&LIH?AHyJK&$ zeiG{X>I5A1=RHH{2~s(2%^vjj~B$C2na&f2vHA8T7W_7 zd3@xKYVCZADY2kCMtkAvsN_0&{rPX=1f zx3~0LF=KMU?b1?iCxMeV%q;2~k1KQO;$3 z_)e@Ao{1GqTM}rD&O6+#qo(JywQu(I#sYw>)29H)N#iI-F55_)P#hTQGZ_FdMy1 zgvGllddaHnfjJLcg7CUFuAT--LWfr)X28uajqx4(EskOv-L_v%uR57m42+o09n%kb z72cEvZcrW@=~^Dmq(KKPYks#&8a>U6AhFV3O6%F zgBP9G(f?(*QJHPAe(@dC@}sXrOSN(itFD72heg!<2HWTI)XGa$d@cT zNbFz}wgP=#0tMqki18y9YRXhhBmq7InTExJ_0H76+TyD%c&@{$@6oE?iMR|i2qoY- zCVllWs|6*ahM%=K;fbLvk;GWqf_3L^@*RMn1VdWEznKg-nd1GbkNwTzo8_{wd=a7= zsS7-OV8?#>Xp`QyFGWG=C;QoPiMyZ=qH($&0(XF~hvM~W9?Mz_cEuEPCOlB+=N@YD;dz<4u=J!0mx4DT+Hpi%dI;oN>rAs(xb%X z;DbF{4`g?T3dOKnD4O14A??&tZ6%)AZt>GNYLZNXI}#g(+2xVU(j3Qw>{))4dW{u5 zP24bf(&FpEkqAgJ)*kf>$#4q@zI5^7-tssyYeTlmqe*Bce%gegE6hbuPVl0B%If#v zm8i|QiY9p0kUN_7+S!C!4d~4h;j_P63}wa*0bsNW!$7%?=(>t^Xv0pr4(Nm|8eRnK zV10ZSz9(yaQFx0FM z9u!597|C;VjYd(pw^_eaC}|_0CF{f@@#;+~m)lUt+_uCTyPkD#?NvBwd4=$DsG8RZ z>c_BGmNuDcxoQ1@vBqQ7Ya#RMM9OA@WjHqu3XD=A|D zTkfahIy=uK9GT-b>>s$IX&5`^0}IG6c8GmZ_=Bo)~ zwha?{2fMaNCy@|9(u$M@?kcgt**7h-r@7Gq6SFSRhKYao9I>d6DDg(q1P*d`1}S&s z^9dpcVTT>>efY5wui>iimU)MmIL2Udg<2A%5L?SgAj>oYYOht3Dx&HgiZ;uw!X)AqNCukx6IA zG*=+mHEf;C9W{|J16AwtJ1Xp}{2Lgu(@4>MLt*w;Jfd&l7O{1J3sDsSV0C$No3yL_ z@Q$8y#g-J~(u$XD^YP_7M9_P# zp-2@I_GckcP!RkmY9RwhE9guM#S9rz;(e~vI~8(DZDlZ+K^@-_MxUhP4o8V;zB5NH z1DqX-<$4~*QjWlE$ikw#=TI7>?leG%gxny%vm->QyAMX11FA*z>;k)&eL!NMmVtzQ zd)Iqdjjn(lE{GS{p)@`?V4;;+H`b4xfwTtjE9S18$@e!^YS)oQks-}MAsv7 z+&n-jEQ_y+?*%I00iTjB@8#Dr@!{GAefp-Y^!7(W%e3t#K#Q~F0v z3oM}lj#iarGo`m(iQ=HTiner{8`(Tvy>gaQvuIz97Pv59>Lm|)GNGhe#^XOlLvSjB zbEnhpltJ4ztH*M3gYlBpwL3|r?tRN|#x~iojz9zTL1dg(<9)0#rXvF>6$vr4Ehs-V zHlfin%~0v)<8#w_X_CIN?b(}q>U{&l^2cmY0yRYg>*)+_EgO9O|G&YG(EoEc_};nc z0yg-@wvM$s2Piv**tp4Xk;wUJEsG1RzL~9UA2-Snks3YAYCZOMQTI;LkyrkHT_+KP$MOeuU% zKL%#=%c##lXa(}81c)ZZd8>Oc+q;B`3sNFaI6LMFyW3MRJPU5GzSz4w49vK>28o?O z_ek_-oe1~+3eix3ilb88y+IEPb_5Yf|2y(BWj$s63iAplmQ&~xQ~x5TuBLGoO@xCY zxR3fFSOIaR&~#r=OZn|Zz<0tBK;t`1JVf{h|&fQ@e}XW zs)!`JWSnHqZgRBS-{{tL@WMP})CN1b0)>pX8S9CH3o*2ZVrd`&H8BdWmSm#T+d#3+ zEb*?kt4ku{%)hqZ6)3uvDafX-i`X7dGe#u$J&pQrYh70Vv-Hz*(<9Sm)t!h;^4zSL zQynD?ROpX|c}sDDM>J{JpF~hs@SdHqU~hyo2}G%e!j8U4grRypU>0P8t?3^IE3?`Neo?05_15ji1Iqz0Qt`jjz^ z#%$t`NsCz$4FLrlFbt{8L@6Ly354hbXMI#|EGT|xgSKD-N(L!uk8X;R9r-PJ0a#%4wVAk0`c0*rm;|R z4`kgvXa_}boMdXnFKff?+5`iSC~Z5m3ZM-_0<0VtnxEt8j#OTE(M&>kpy=4p><~Kr ziu%izywr&*Jd>Z#28It@!!vskqHwq(Ob1KHbO^5$iodLBJGGf0;V4L>azXs5PFnth$>Nxeo*D&L5ZMPSm^n^W(W0q0^?tDlN5GRX<-uW1))f$ z`-l|Ikc&azH{eyiOjKVJi5+2>bmtOZdO9h;gwTAgicB2uiAPG1O8rIMU`se8fZfuW z0`b6BI2F;?FF|{mE%Hyq5nUQ|Fcs_>&L7acz?LJxO!El{ph-}?Ev!!Vr8rAecgvYA zO;QtxCW)Zld)+m}`S-RRwKbOk!>Le-u9+I!3PIsE$$M%BOVWSA+)Cf93zihv2O`HzAzz>6sRM2kGMn~S9ftW~R zxEw#uAgSw2R&!L3?Q;Jb`oT8j9F|x!R+o{IF7ubH&>RFm+qyGoNrE^SfM#HJ*qg#1 zOPP=!WIP3U7ry+!M7AY@&TS$R9}45G}(F9ORlXH>_b6_oLkeQ3kLFk zIe6D@YI-U&-i@*6&QrDoJe+9|uf{ zPuK^RvuD!gY2U}Eq^2PdSZBe+ljRc2y=~Re$y3J1nq!ldW1U@&hcg1A1UB8ELZ}%} zw4?|ZR9RjB)OOeD?4alhRi?FFuBYv^v*>zvqB-GAn>zPm_jX4E&X)c z(MvXPy~j{94L=u$pRx~}l#)`JEVdkwnX+{g?&u@BVfcW*{2ju+Iu1d)tSt|J3N{G~ zuFfz3oonG9(dPyH0=LCwH3i2};yn-?^S4H$YG4rMOPvt_1W^EOOPL4)ssSz zqFJ{EP=MSKMBmT}K_awrcPq;ekegVBu{s{!V7og6R@ZIPJHri%vHR6Y`q{Q6aRbx%OI!Q}IOik}idKIK z{Sy2SuGrQ>ZE?X&u?Qg$!T2~WQ|=Kud-@W@r>4Xb7L|tOA0b7}#BcmYAb^aJ!eeBd zl4Yle!@#*mDhlVnF$kl0Vs5%3ZQBSn6i6s5u-1OA6vUQ*C#-j&y z*W7C|NJq!}Pln3fYMA9x31?MDqfh|CX9fj~{%dW|531HU9Nv|#@yU+P_?!FFlW%F= zkC&C8*hRxtR*93ri4qDkIov~#j8M8%zmnt;Vs#--xltM9FI??AURC{@!#7q-zG7Dv z@k-0rB@-kENJ*~-&79N< za!(jKhzzTcmS?9J+3X!hYmh%5yEW;Y(UjUJS}3@rb2a6w@WjS2CFnil6t3C3~QndK1HaqZeg8}Qh z87%Z+FnvUMJ#<9W@K3xOox2EkCbOVd<-2|eZp1q&Lrm4_GWU6f}GOYT0h+wEkcVS~&fjxr$=E0;v!02Vq}%ozV~ z6pKl#ca$m|a)zF@9Pm6)ECk=V^WKCzDw9{zGg9vURbu%@kI><;U-j{mPbqC%X-Mv!iu6VrUe!%tp)N7-W09xUIpj5w`x@I2xmkg~=>3=WOPs)dG>=^{Ydr77ta zG1XD1n#<7^L=vK$5V*YJRMf%>iUHq>`ly`K`sxfWxM7(%jylcg)oeaJ!-(Z%btyd@ zh#C8%%o-P!L`#L;98)Y-^a&wqXfviuUM#|jcz|5t3^GC>fVyNbu97JGx_r-U`$PY2 ztPg*j;%}O|zd^c_$B!8YRS#Ol@*pt6>gv)xz<5vM)Y@-3Wyd!`zM?)puqcp}Pa+=zmN{9t! z%j`ggjI5h*B&=RKK}}eRM6jm?3zp)e896kW`j57ydV(C9A@j%u)5)lciD=6LC5lLi z8l}%dz>1bA{>9BZFd2@ng*f?ImR@PX_<|8gN`VD_fbz>AA)y!HglIaG)lOn=Nmc(;B|R%$vewoqobq6sy!xXzmQQ*I z`j6ITpA3|RUgjor%Hznc=d%x90z1p`Mk!YW4-x8|svFK0|K)PE&T5Y1EoZ&uMA}ho zG*2SOPQQ-q?_BS<#86SwOopJSVvBT!nH@4P1}4UdZ?B8-WbyrMb9vs;nt6Et2U@I| zi|_UYon8_s%vp5R7nNCH9Y`QA)91(pLC{DuoPy{`1$VVrU(LW#P6>(ON>evp)Qhyj z8T0a{>LU_EXE+Qsfvj#i1nk<1!|E;XEbOVzjk<24rG5dNf`h&vM(~BH)`0Hkd@6gD zo0fS(3nfaqTT^vQeU*V!m#$=;oN7VL+3?KL%Hy_DL({Z(t&Zdnv#x<9&KDFEg!M8U zChrcto7T`>IF8f%lN+Amxr0<^hE%p-dai)Su|(Sx1!Wy)7ncvwQzJZ@!2b=xi^dk` z)sg^Pkis@BN~PL>z`p-5ucMO zQbI?I?7?PEJ;Np^lwddNVUE6*3D_n&R)fbS37j$yn~}RiWc_-X`Q5lzD?@+gssQ}8 z0STW9$V(}u#@mxWm){q@&V?Yy5NijXpC>MjSEzqya+Bz4j&NSrtD8S zg76_#(oJc5S1T4=+xzJ<*^5rZpPKCDBNvxQB5{q6T)vXw2=X1ZTU@m@Mo zv$GGOp0fLq{9q$G3W2a;8Z!oui#Tp&zMz&(G#hH>1h+&`p9<3yfFpy8Leh+|^&`R% zu_d^t6C#;e!kam93sOvkGfU4|@WR|2#(i1AFxJs!zfHErvD{O#gG(esu!4A6c0ds2 z%x_zmw)6fln9S=~C-gs*x48g4<%`WeE}pW!u?DwJau)2{E&BGbO_baD;@`xV%>Cui zs62(B%FT?yp#EJSQ`Iw`xj9|7Q(4m=tfbq>*@$piRzr|NW;T*Mg}Nbww3AN)N?xzh zF0-)Sexu{gV1hpUr$;B1!MJEKHI3B^;d@zagOaUA#=?=>Caky1k+4Ts-!(t!2u5Rw zw?$9(yQ(R92dj=$nhiY*C~?EVh<8$M+`4e61~EU$bo_`L#-Dq zmU2f=1+mwYsd}dUp)p*`HcpvO?;$h(S6_MC7t@jk``=;wpE`77*oK~Z|Kfj#(oJr>G9X0Asec zZ-G96PH1^5dB~66CgunDQaCfE^KZ6AscyUMrLA>c`Ob-1nx{o%mr(y3!yW= zjoqT6*CR#_P*8$$BH$Q;7-A>~1WdK*qD&%`T4Xw*qIRcgh!7>%oSPj32T*3d4tDWj zx^2M;D^+`}-%d8vI&FPiyter36gqpjL}%Uhui|4^aRYV6U4<8Cc)aL9-HXI}m`&Rq zr4Cv@wbhny2%BHn!*43rL6o$mS+tU32MDNziM6#WqJ7KL^PI<5yNF|d$>E(!>0J}K zxcHnJVmVDO(fgZbrS}F2RY67Vsh=u1m{K^!T)^e40V+=US1}DwGzJdnX4G<5W!hup z)tF1my5L@|q_0lf`eDVymtu%5O~cq_2#dvv$tzRr3O3l3bqSUVTNJG~G_hrW%Ih@c ztWIS>;C#pfD4*5x472pY1uyRC;li!d{=d!sUo5uk61L7vX8chYkt-`Q49mgn<_(Pd zr3++4uw}|JThn6$a@R6Hcy!F9M)m`n>NtC`Hgg>Bu*g1MEtx-qRoMX7L&jYdKiiN~llbe6KMxu#OWs@>uv(0461e((U_92@vP_1Aq_~|2+bWgfi zR<{3{H17Xx>fa3>+mY+18b(LQ+EwtHpq9f_l*c4y6-6ZHDPAhx^e)dR0H16lIVA)# zDKIDs_k2J%&1@yZoGWrT)`YZBKXP%*KH<+2UbJ=ENaC%)5sl+x9vH!_FcpQIt-0z5VumV;ZjNOO^U$A*_LR`N{*BSt^= z^l~@fc$4TgV0oYl8&^zZ2^Vlsdk|0v8Vu+HN(2yZty1bkRmgECgs z)yg@@*2d;-_3>U&;w1UtJjQh~frt-lj2LlI%}_UfQ@eyKJD%}S{nD~2$gWsftE;R` zTJx;MQ08SplCa3iTvieb;(dKl^>D2YqPm@g`Kc~4m7f_{$Zro8sf;uT{{Gy#v_qUcN z+Gy&+0LxyZR-#pOK3}d#U4USTC>-}{ZR!%Td@3#-%(W7%`+D`F4j}xN>Lr>73rELi zGYyUlEFZv0X#^P#h9VH{%(zUYK$Ps_StgezujN!O8B%hwr!p|lFfEVI z7kbt@sSPoPZ{A{U_B!Qcc9OW4Q}6`qD?^&>S+hp20=Ii145to7A0Sj=Dj2FJdwHq^ zdQT6CHUP{t<|Zq$a1k{)&`3hl@Y2%BJedq>$xyjK%O*G*1Xg@-$}rUdx7spS)VUwi z_Qy0K>eArX6KS!_R+zRKog{qe?7Gd;oOjM7bq1R9Nb$*#`2s|j4Gvbu_Csq2iFOM# zC~tSOX)vf$IQB#cDJ_!1b~~r74f}4kq&KofOUJ2vVR^O+M2c$=s56lR4TRMe-&d`m z1p$#`0X##HDfnx0`xJ{41BWF$u?uU-wWkf?}^wPa%22rBZ}ZT;e8x zp`e}^{sTRmWoZ5q6gmIsB{`1-UmyWW0bn8cFAqS4$l^FvMOPo%?UUTuCoXx2~iFilMo&_l}MW<{(BMuEvP_xVDi^ z6M8Ow-{reo{^roMZvtNV7d`87Mc2ptyPhaz`fa3b+gjJBFhWD=lyGm6bU`ADLIgpC zPMTQ780-%M1tf+M9jcx{{3v4*CgkB#K6seI#ST!MehDPm@cw&1Iy?=eID7zV6%{}& zOdoj|vwBCzbC5eb?lemP@~qMv3JE=+JsHRL2^A~GC|r{19Q_qPJgc-N?EuV~7w&bqjgH z;tjRL6u9q0j*~(b#Ay+GNg^CR(s2mcz*>zdhKmfe#V}_PY}}Od z{b-ddOm8#7$E(%7q9}WdjHBLhj@@jdN4GKn6jh^zRPpXUZJi}U$bOntckn#M{j2q^ z$3?UZTS~~HHzSUCM!!oxgf~H$l$y&mB#pjojV}f}c)lf~SGyJs9CO?m=ciwI;JeA< zx8z&vN#-I>;u+4RBMR#NGUEG67qto{H<9%dlJc^_c)>Nw544x^6<%P|>MMkMr#YOic4&GByU&n-l2^SSRrT_ng| zcN{{DgEwJln(H1z(LmkqyN+WTKPAl9Bx1=P5)JSqNc=^Cu!Ztk{bLy$@s|K={72rp29QlzWw2)Mh$uD#DE4I5^Fvpqu@n1QxkaJCMq+1{3J5)?dJ%r-2VNbi={$ftaiG==m7eBRii)XIz^=+$ge^sK*}JPc!Is zB!W2k^y0q=VBrrE_k|rM3@MAiu-oKRla&#fRcKvmyh)QQtQBI7)MDlXeN14AS40Hi z{8Hq>LFl&Cn^8Kh>jk+qYF#wVm0)v~Au{N->(aI#|2W!=Bl;DF4jb0&mL)ZJrs*me z<@|=FC3ke(0Zw;V6i(r^E&AkE3}r6^IgBY#XB&s(V=+?Dqng3Ve4{a^w$`rpH7UVV zHmd`_-9$t)hqx%^8NtX$@nVHCIn#}e8==*)&(*7Ov`CxZ8zx7Ljn!qrcGP<)ceNyE zCW)%GSgYe)3&~0(7TO<$K)Pzc5Gi;n((4y2TV@Sg(f`xp*Y;&<*iN3H`2&(0W$ZXC ztqRVA3Ng%IP?YfW!5%GYd0#JOZsw(gC?+OS#R*Wu{fZRoOUSdGf?8OUL^>`nYt zL^WN22WC;UOUiQ)qSF5p-BDiE=j-WGN=N6-nm|7jU=WASQUXJ`RF**Fc1zQgB2nWj zE^IK4DQ!>{G=i2v`BDWHf!V6CXz2N!#7Vz_qW50j-LVk9f z@te0S;^&`zcH{|N+q!P?(7?0!`FFqll?4)5zVO)VzH$^lJ8%2UHx%6V$E^3n$j^)Z;?gIN=jY)o-~P}^{QT^m?j@uLB%kWL_pcQm zbNM&VU%rx`1K0g#$7+6l@4koMy_TPi8z%qd75sejm)e)?mnqe|0xMum9XV zXZ|@qpSO2O`Vaj4)G;5uvI6nmaK@Ye^>}{X_3u~Tzn-5rA6T>V06*tHy8YkY%+HUl z`_-3yil1{{lfC<&`FYc?-u;P}uo2JQRzG<^KkvNp=-WTQ&lPX_l|?_~=ez#)rmh`q z$orn#cI1co`M^6~`k7yx5eD=h`e|{Ak^AB&# zE}p~2{K@BU9)6IYANkJZSALicdjHS8=|vx4gFb$5^_)LpgI@g5InVkL8#MZv3zwgF zWRm>j2fuRdm)M|xed}Mp|MhIppFO_uU>!01MK7*h{)+_7E_mNjfB1Pe=(ry}c1rD7 z@Mra!+RMr3`1Sw1=Dy2c#D0Fc?=#7X;L&X-Kl*=O3|@@=)2H|T9Q*g#2O68ZljJMk zK5f$D16m@AN$b>Z%>mmFaG-YXFiuE@4V|<>p%9NWLuy5p`O>Qnv?APR{Gc@ zhvp=G&9D6O_&sxySAX$+M`j&!lh6G9dj`HYFgNMF=lXyB{m;)${^%v|`u#i3swBU( z_~y5~;Lb|&x)Z;5LhqV+N#nf_fBHEO&r800?G4-h`N|`bAH4s%7d*CVesb*}Uh>y3 zUf7n*dF!>`I{IJQl7IX5;tiMlp9RU+o>=h*|M}cSN%jX{9eL#i?MeHdCHMXBPaT;& z{>h$GkJwT${;kQKXJ6g8 zdBL9K@SPucbmwiqklga%ZIge!w~=i9zd;o4$5>T7Byozjg1O=cPNp`lAnh@T#lQZyt5iCtmUXThs2({L^zk`H3%a z+1BRQzxAwV&AH{@UUl5qXSU3_=cvm^KmMF+=N$g^=Wcl4*B_a4&yy#9${_5O&MppdVkJtVE+_g8n=Jq%L=FeA>>la-9yx;p$W$m-SanbSB`n+Vzy<0X8 zr$;1jy8C_K8T{}O$%W^={&h<)pMQAZ{VU(|`x&SxFIYv0@6S^bk|CtpABhClz@Zyc3e@|vwT zocM;Lljr~1H_oX1;W5eYe&JPD|MTfflC3x{>~Ra{vXFBC%kKA?H&7$ zPc|NZ+2dbXeo`{0_laM5^Dit<_E-PxbuTArzf}E`{vJG-Emg(;twvq z;epq^JbCEBW&2P0y>pYdf9q{azw&$AlM5dBQB$TCurFEOo0io)t?I7?*P@gk^>BB`p_A3;<@IKo&MBu*E>lU5-PI6~1nJSKF}Y zfMKj)5K(4V1v`8&{I?@@+|Z&Sz=R8eismmA5~T|li+TU0mZ z$K3NgSZ-hacveTrS)iI%HVO6@mV%1Xi+#D0i$(R%$?1Y_yoC%D7Mr z>~0j#>d|{~>^%R+^H%Kz*%92*;9rejF><93V+MA1)#4^S<;9G#S+a_a*bt)Y*dG;Q zaa)e6oDQMphZG2RqoPd;@ntDBD_VY-m@bvh>fnxch8GlRiiS3U5UQ19#rcpG4=y_s zzVi(h6_9}}yv!X8@t9t88L_^nUQ#{h90IM2#!IRvKV;@yAN>3zvZY8Q?}<=1SFgsYN#;SLxz{Spq8bHLh`@`az%@Z9W`46B zVAyWoQLP4Ypo0VerBg8NghA_`0t8Eb(4wBX5*SP~U>WiS_EVD=H$itGo;p(5qf+3| zs+oHTs~(ymdJqV(58XS=NPnNQy#SnB!A{HS&kVlPy1Rd30NLZ87C@^YK->&|K!{5Y z?y1>nD_3Q4Nj0~8sqB1lvUJ}K_duW8RXwe%dU{ti%d$)I?G>T7!ySz8-SXg{>W5Ny zAUv*}RgxxKUG3I}O!?rn;@#p!#;T9^Wl1-vw=G`omjLA!H`^1gpe$sW1W0253FlLpqocVaNU`a{d4DtJ-4jxP(G5E<=9}{sBx^m^q^GW4?bmvd+!KrrqAK!@ zIg>QED+i4u=mmCdeX(TA&sy9FmcDDjNo$IWMRyXr(M+c{Z0^D&@Jbw-s`D{Z=>)FF z;SG=7^u#7DC@+hvUCM{dR$(Dz^fiVz;1L|J&(_t_Tk@`~gL3MiheX7_67blV73(X! z2rihg=(+8U?Y8CA;r2i_wc3>FE9A5l$k@AEbKt-L`DM-R;jnS=!nPV< zUFFrnxRl(6ajCMFTp2425LSsx%C+}q$tr#DQ`xde2a))oZahBsQyOu=Oje4b6ld1? z0_8MQ)~*=4^yyDGw%hBAu|Lh&LQ!uI1LkMfgC|&7xS3n={h|R6LJJ8bkUkXp z&_W9-B#=M~eaK6pg$DZj|G#goz0YXmCT<@pe9<{)?{)dscfT!lQnyZxCJpi5iqy~y z6lmA`(qjAYD1_LDOK)562`qMDA^Ygc(2u1cbBdETIVH$sF>NE2?$O65ifR5Lz&xcDcicean7N zdmok*FlW7gPsqrHQY8aS*r;XtP%d>dmj~X{lvBEeK=9T@VUcG~H%H}f!G9!5Y`Ro7 zXI^XYMB_r>ldXR*UzOx0gzK>`Z*07}>%0`@&`o}4s1{lN{l3&>jfO#+AeCOhA;~DE zIcjaY2;w?;;&__?;cIM>5^x_dy$S#Y--OYq4h2*ik=ONR)g-@OrVE}~6iGCO%mH!Z zCpPC~Z>}-e>A-!!J}czDnva=tXaVGEBF1GLi)R6>Kx)d`Hk)rf)T}l~_I0OP-`HH+ zJ`_D*_lYKeRC`plm(0b{$+j0ZvLyS+p`$Y&3iIJ^${4{Ge9>bk$($+V9_EatFyd;Y zv|;69@vNkeY_KuNV}4@TV#pMc#7Xj@9D!p{tj$5FqN?Yq-Z%GWhcP*6a@b;o)TzW& zv7L?Y#Wi~#u3*(FN~Sa9^CYhT@6U~kk#sG{80 z#=f*hfvYnF>cuCaWUR07v-1d-}$B z6p{Fk&3riTo2KIM2M>Q_S{?eyjFCRs^gm2aa?98MfkH`tlA5J zBtz?quMwhibQrU3w6T6;m3#j%B%`&f36@JAuuZip9YDr5H<{xul>{(ASyp$@1Ucl$ zb0BB!p=Or`mjC(i)Y*A_uEzN77u`jO5Y%As6n8L0p9NbR6rJ@y9-9drF}~!6*oS{i zfa%@;{ErX3`|A(*wc-2nZ#<$}NkSc_@L z9JeYS{~A6ex6|G2Gga(5tGldEBB_9ER4-`7*{;3mA zp5E|x1aNu8O`qaNL3U7M3b8e~CDKozqVwBB;LgKGe`#9uv3>0hLS(t=e>iqIYcj6I z#z;5g%I~7nt&K6&0vaD(dp)S<<#K;9Zz`p|8N46-Ir1=B-!M_Jb{IYVx}jjHYeG!c zN{9q0yGlC+aaLrMVkV|v;hUOd?{2q$j+PcR>XLo-Bx$^xTN^aV;gXy(t^nL#-nSgo zaMtnxt>p`$-gHwaB@HQH&pjE#<~aYWmHsF!uE1a+utxKJ=TTj&vq3m$^ZVgN>h1S9 zq`}iq>xkyoY3?riXvRMtTR0aS)a?PEU)^y}Fq@wb9e#vOmYXf4ICB0s^9iG{$*)3d z8swm_p-NNW@L{LeZ6kV2ZJ|CKpiNfLUxMW3o6QF`^E=8k&W8R7k|4}v_+G9i8F_ch zqxRkbgU#ZSU-d0q-Vx&-X55G3*yOLzA0-)}=XaZnq^RCx%?}=GNFi%Jbo7~-0Iy8p z^_^zy(-H7YJ@r@MxNlIg@Ncq&Il(lXL^%K^-t_fy*f@UNJk213C{ui5i!X5aqZeJ6 z|LoL>kGpz`yjP`V8Tml*0C)j%SA2wiN6yUD0lK!L}% z07nQFT>n=(k{)_ZxlwKNuVP)#9Q|bzLTQ${6?9QQKKg8>r?B$5Lxu&p=wv_p2|FJ? z`XT`*v3ApiVp1{(_c5CN)JnwUq&-mp&DR`l`U3)Gwrs8vOw?&`1+@>*#jOB~M&dn&HN9*nw)N zW?pTd745~;so6evR1N2FAAV5PK~~VUfqI)ow7@kYhJK*!YGy2~=!ylCMOhDwqpj`W zk)XS7VIEYadum#&b$dzRUgCcd>Y&^W6+SP@WEf%XC2$n-4DQ(5?ZGfaW^owpJ}?fS z96mEMe2)LjwCDT0b5>6`gO@oxVm#_M$-pk!qE!kLV)d_-67VOs{6Q!FIGh#cSP zoq1TeXy_PMUbuAM!~-8iJNR6(lMc?~a7zY}=LYl=KXjOtO5PRIQ<1zzrtHqR`T3Q= zCrg_`Q`JLV4FeQ2I-O|Q(owj3D3j&G%69i|S&HGb-O8KMRkx1CQ{Ngu$1fm9Ku2Jk zP~#NU?^k%#Ly-uC2U{x|Zdfj28rvkLSG<9M@!d}` z^9sUBP5=hhb&NVkjWYfo!phHdxR8-fX|cey=r~2YF!8ld6fukwcu`XKyQRPz4%6|K zz@?LTMJYWHlL@1rtry&Msro+h@0Q~C&p;79sa? z#Wqb(^}ow!=U=;(CIX0iCF(QZZtjYCykldkWA0L?IF|XBFRCE?q#YtU*-)JZ)95qh zGO=A{BrJH#5*=L4a`0P0DIJ@!@mxeg5|A_(an#o^^xR#2u{}Sw>dTnI&0voum#z>V z27(hxAGrQl^6=d5J!}QF>VhgpV}k;U5w{uwBrBFkPBGMD&xD0pF+qx*?sXC|_Wc9Z z@)&A};BO&Db^1k>*VWduvbm-7Vu2-@{D$9-d1sk_g#sSCj@c57gQOXr#D&7hmsip7 z_vjRmHq7S)h3H6{8^?{2kBEA?78jVjx=wYNS4NxP?e@4lnmNFi8wU82Wt&u!lUAsC zQ4x_nRO#AuS|GrC7_QG*QvNT|geDBMw;6*g(mDTPF3b0_#52*;r4F|yeDXkp?*oXw zf6`COjRK{RHGvi)4c_h?RaGsoJin(2N3XP4Rolcox&?gUs1`5@*95b7NeXZ!d!3#% zG3niob)>4LB`EgNvkOE%W9$jWR-8uXS=5pOa6}=2k6cFo2g_G%Ou@7_o8KlCd2o#Q zyLJ|E17uoc;6y0N-DmOEa{sb|-pOEkhlT7?;kj-K7Ik5B*)i_2XI{n%R;Gv3%Yts2|$vc*>*l3?@#(~F>AR5xQk_kf03xo8rL=N>Lxas z7Lle92~zD_5*}y({L@#}WH|3o3Z(b|eJUJsK?78S9iCiL1WF-8txnq4ty^ZA_dRPZ z2cUxnwKY_nX+du7ts<5j^h+zyD4c72PjN)zS5^5z_qh^X2)$UF4OS~k!H|ZvA;GAb zJbEzi?2}!4>EfgmM- zwK65qEwK4~C_JOpC)^X$aVdgciFIlSqtV>?4qJj#L<`cDZOqM-Wj$q3UG+g-O~{Wi zR(h*b3;FnSbbCoWyRo=K?NTvG@h%L)*X^SW`;_HeNI1X&@Ynjz_~ zEuJb=EY6eY5cC0m4sW;UB(#ov8U3m1NE}yIPYc(L{rXGqFtAoYQO*?$UO$<4A?PEQ z*OV1ZAW)&d!#u{$>)sb>m99WFNw#f{n-E1LwHvi-w3mniYu=DO7Hg>Q;%$pb*mhw~ z_Vb5rdOdFZ!v2j|S{UsPRlmUfOza2xFuK~8D`F_8Ri~iw;;IsIwqAve7v&r9Z`_Jh z1w6UPlAsh=z&8yfflH*P%Kc37>#`EXO}pXSQKHgSoW{yMM?2`F(;o?)R)2bQimge_ z*69O+GI-cGd8VxRvtp73uPXi41$JSkWX-7LwNp-?J*uy3j4d=N11{lZRrS3Y_`OZI zHm3<^MjOV5w~3k!D@V`(chG?Ua0bR)q;k2JKGzBgpk>Id!AoZPQ%>v#DayIj%+C|w zl~^ZvgT&La_p&An6YgA-Wy%J!6^%2n)vN)0{QrX-XA?Pek-eK3godCCHy2oZQSIw# zi9SF)9Xa>!kp+rSiZhj3Qx2s-M2e`{Pz>Gm?Z+W#%#Lu2 zqH<2kwmI}jY)57uKMG6*4SNhT9VHHyN0Ejq6#BtX1Vun=o~>Sv8NCAUGb6SCb;bAzED5&-P8A&x#{?&C2SbWd4PP@a zMF8H2alrmuIv_v1{pG<%Lt_*h!}5?HB1@$-dLcT3{iukb8`r(VD*N_Gds?bW7$@{l zP#e_4Z#S8(mikKPWpGf;NqxdgX0THr0O5ro1jo&tvIZ`+uJZs~<~Tw4YV!AnFGql~ zT3lK)dq5nESxFyg2d9#`mi+)LG?NJZiihKR{f*JMvN3vPS}Peh_pnRB&`bPKwEDEk znwJhYf7Tp2O9GAiD|D?`N-5i*`SQ`z({quw%}pFzP5;A@(+t%87$LIZFUm+5kC9n* zAU5r~lC&G#{X7%G8M#+O#6B%N-4gy9{$jAswL6eyKRRXs*$Z_+XBhyfK{KD0%+hHj zm4!5e3y#^ekAoYLagrW5yxt;ZZvK?jNRaL>3#+j)>oF!cP|i3R!W zNT6Po;qxvke;fd6qV`VX2RDAwRETld3qh%^4OL(;h2Jx0uXwTjbZi)^!`xz=2q}G=`(mTgaRbVf1Kn^@<)#V>tRAF%lPY3cOY$Ha)_lFn2}hX-vH%qp zPJrdMOu|qZq&(o7g(cE@SSdaqJ9hr=W~2WcSvZfPqSg#o06y!rL~!foH=93`O!#|C zILTo*a3K3nkFkek+C6W}NiJE7*rFs+c8vIMyL`~7_A!NjWBT**M84af$3CnG-Ca&g z;@q${9}_SX9vojzhVrhwG>i2P`fEuJvwAgy-wO$>Ruo}}35jiW!3|kEkKa9WkDh>d zHD9}-5vGUFPY*9mUE#(HmEVA!Kg6Fos=tpY`;4XND_7cjVsTd;fUfD*DXfD+EnJIt zpYPteUydiz0>4lSq<<};xN)T1s+6|4dF6liLBqNC{VC3`f71|}LAM+<|z9l&rp z|BLn8-OX{_ij+IcY_sxgHeK}A5N4X(_K)+r);4a_xoLQTj8`0HtZ{v14fI(DS53ZU zGc7Gh7kIOLw%VBbFynFn7w0a%n1!|1?}yVh*mmIXyJe^1s#Z$ zZ5rlLBTT4BzXyEkQUj)8JjVTYszvRh8XUBv8mz$%LT7QMV&H%p!(s$u(`)elL!8sW z+k5&2c{K|yMv&q72ZI7#gbh{}lLsY>T&?9%N(2)Kn!y41BX8jrx2g3PPvl~3@xm;O z*N|lr$Yct^y1GP%vZLN!^jB|sb^V`+V;?Xz87tOG?q8HhWYpeyfmmqSZnOth6{esgR=cQzYDM^r8T0GJxikQ_E6IKZCx7$fXJa&u(j$TCkMi#Ox zpQ*ngGbsJNF;QXHcmK)5*Au`Kx%L zxgPI>iDl;qj%T~&INh5LER}t!j%$H)tu*T9Tsdu>#tMwe*mc3Z*;Y5?hUhBI(caeN#y^|{HFf?BI0c}c=lCt^m*5@sBbiX z1JoXkU{(@SN%XsP^~$`eC5S2|vzO0FZ~DsFq&`qc`Si5AThF|jOd6Jg0R9u0!%P}K zemKa!$YsuuRQFTID%T#c#fVydgDnmo@JJk$BSK+6#&xRfs<1<6Ct&sHa&e_690-x2 z7+RP^D(k@z#6rfYj{`EY?W`sJno6BZ_!ceW;B%oTRwP1YTss(@jG7L8g0UF6(M~}6 z(bV63VC@VBNK8{ARquN>-* zgHlWooKvgb*mPr26g|>6+T+8y76b*?rxs5za&HEWxbZr??*S7C!wU^me$#%4k#3$C z_Lusgf$B?{$Th~^)zhN#tnD)|=^!+tF>8FC)*AhzFe)C9+j=xd(qu1%rodV*&ZI#iq=1r+zf$?#UeMNLTKDKx1X-M2Gw*bEF_>aFtpDxRHK!^TzC7(LHP$;^3kVqvVG=HIhO_Iai7-V2w$30z2}yr=pkHj;o6tm=0T4p9PL+f za<7wJijmbK>f>FtBcSdl%p)LoP&wGx2E;J#8$7fk^K@Xe0KIs+{)=t1a=4)_W%Dmb zpY@K?BRaQ!Yopo!#pL`sgzN2fxi>yZH4&b6^5C1n_r$0F1gCNNF$^{VRcBL@!ZKu| zU3T6W8~mgj3O{Hp^O}P6S^I$pJlsk+OK^+A%05Dt2|bZd^6?`w-%Ajvb49jamAl?u zR+cw*Z&Hq?kmo3Og{A1JBKFcQTv*(q`fhtiWKo^LwI&Q|);V$^jvuPCX4;!s~b&Ta4#xq4>+e)uYD$L#TlXwL4 zGZOvMmcpQ!MlVzmzwpAl{n*do%C%-(BTSMx@l+s4`lT}d^wXEk$s6{Zt7h!YP?=3s z&D4*_&%1vEzUz9t(a9yx)+K~W??U&<-MOP1hK&j=YweE!!81JlCW|kW#o6 zTVVC))s&B}z zaD14J>KyGC%=M$fz=3Lhu){%c>Qy)>HIXDxZ!X@wwzd&g_T*lJ(*>>I3b!qkJ@RZ+ zCNU9p`pNntYf@Ap-0ZBln$obgcM@mI-CAb_np=seNM*)?yQg1-*;2=pDG~eMx5QO^ zOMIxDO;Ee2=9{#Y51E4~8r|IcErpoYS8gcV7RZqYLDRZX38{k8?EvduY{cawLBR#@ zV~_YZcvm&@R@byoKik_uoM<9L`{>23jo(^XZw6n3#3ny59-xe~gazSc;~`j(d|gP= zDt?1O`rvsi>SLy1Hkvrzw!=$&BCJ!6R`&|OZmAki7>z>nE5&SJb@h!;KTLcQd{Fe4 zZBWYR!v$r+8aIx6f8!A}V_~kM{SPHSN#fgS3o^+#EvOi(gh=v$sFOV`&FbOiTL`uv zAN}|fSDivkMNrfI_1N@0t_U#e+Ut>l{$?Xz;GyMO55CP0a&LsohLq)bX%%5iH4}hd zbRC__4!V`Eno$OYpxa$28TSKlIle&|m)ucleKJUe72)d^cPIvGp#}%*4d!e_ z=6H|{qzJY;e5Y&HmNz(F`p`hX&fd`VKDyeo42ZXGICbupR1UdN;DGY8NAW@ryb$Ix zT^={u6Q|`-y-1aVAfnDVq(+Jv9~v3e?F+Rlu4*>T-NVg4Hb-2LofjW)Nx|e-{^5su zFaL0Ztth43PQZMeI;kt>CNOFEf)u;RY_B(qCc{cL7-+24Ap)7?Z~<4z&@hw)wj?mg zUxD)AYmGnuhiU@e{W`$B6R;J#YW0#B)N&ERw`w10o>kT%j@~^~ZoY zS8a9>k7xw=gQxWSIsN$Ji+C)`q#+2YDj!)LTC?Qm&)K4446>WbE3QPvK)@I&dRpHJMqoR z@(FR?TZ?Eu8iB2q9z{-nA%ukA8#maNibMjxwUh0Gj1EUK_HEq#X5H)m?`Unz*pe=k+P>c*w{2*xi1W>Pvm^1 z8ADG&#fG7vAUKDV$g@(dtttS@>r&j6W9a5T<>X`O?ch6^@=7uksS0sdJM@sIZ9a3j`DYl6@gmRy2lnpI4-S1Nc+&3Oo17D(H)WTS6>8{PWiUkT0x{?q zEvJ4A#l=*}9fq3xxxpbvLV8+A4#k2p{oQohM>5E)ZQeie3CeyV#SJ>ozfGRbzuBQo zGE(V9(QjU}m=D8L5aZHPap){=wbS{o>@@B!K%GKd_6&+G!tD-<3s{^^A)6e}N-p0+ zC7g;f1_o%83p{u~O^$_t$M%L$*Ja^_F5=ZxZfK4-YVopoY0x1|5T1TB+}oa(r9#c7G>C_hXzOzy_k!ZC7lb(s#h&hCuo&J9S5i4WBG=|_(k97`+ z8-bKr>RuGA2TnT^vtC|VzrAy3a#FSV$A09oGh>0(_o1mhD~Guk=^fjcqNAh!f=9!T zmaWAkBMRdeDBfM8%P)h+{M)Cc4_uWQZR($#d_pS5Dm1CfQ)U>Ha!-{Gu++3bpjZpbrf?#R(+t$Ma^6H=fu$MyyCXm``aZN~XFF@e@YI2I~=}hh$FC<}Vs6hZ=%6MeUq%^OPZ`p1k>Z8T;`QBV9QtCvQ0! z^y!^n{S#feQ~n&m(d_Wpkv~<|hwT{tr^Pk*;>&zH7#XWt+}Sio zCx_-jN_`3pQneq6mnub6-k{4Qo`S_c{2A;6UsBj3W2wsIONBd#ql&~*F%1+Oc82w{ zgbld1);1?6=AO8|bT@#}bbozf=A~WAM5_>;8kX%J`kf$bnVo32wJ{s2Ak~59YVBis z85bbr^S-H5qMil6RD3mhmY>@xoSQ2Sw$|s92Rtl#L5C; ziBi_}EmY?Of29^Wdrd1)!;q<6S|utk!(CZUr2**Wq9Oy6wY3xN>1#M~f$Yn%itvvi zg3cGMIKB@7Yn$`>>=h^(FY8)>HrKB`Q7VVpkxosR!Me+SabMN$%+FZ_g^=n!t$Gxh z4H~ehe*l}_l_QfD9|&=1Q2&uqn&mk7l~Wb6`y<1%P!Jmjs+?;<(sI>Dc%{KcvUs8kEqm8`N4vlD6us%i|6vK>gTAaJPzgY& zjC~4E4t76=hLtMveokiiVhW-ZSAr6@7kEHIdbX};&(4ODbftFYAAE{U)1`iaH57fi zmO`OAp`xqV1zr}pkDIp-H$TAt^vcB2;>4jRF3qZ!BWBF6lc#%)rNUPx-Z<-TuTj*J zaK1Y+dD`DC+{O-xUf(U(@fF!9E;KYiLo#lJoA t#%Pvqc(+$zUc_sxAzQ2i`)L)i8tPw_-}%LkFWp$ diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml index a6454abee5..9f7ad65d42 100644 --- a/codegen/Cargo.toml +++ b/codegen/Cargo.toml @@ -25,7 +25,7 @@ subxt-metadata = { version = "0.27.1", path = "../metadata" } jsonrpsee = { version = "0.16.0", features = ["async-client", "client-ws-transport", "http-client"] } hex = "0.4.3" tokio = { version = "1.26", features = ["macros", "rt-multi-thread"] } -thiserror = "1.0.24" +thiserror = "1.0.39" [dev-dependencies] bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] } diff --git a/examples/examples/check.rs b/examples/examples/check.rs new file mode 100644 index 0000000000..f54013766f --- /dev/null +++ b/examples/examples/check.rs @@ -0,0 +1,30 @@ +// Copyright 2019-2022 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +//! To run this example, a local polkadot node should be running. Example verified against polkadot v0.9.28-9ffe6e9e3da. +//! +//! E.g. +//! ```bash +//! curl "https://github.com/paritytech/polkadot/releases/download/v0.9.28/polkadot" --output /usr/local/bin/polkadot --location +//! polkadot --dev --tmp +//! ``` + +use sp_keyring::AccountKeyring; +use subxt::{ + tx::PairSigner, + OnlineClient, + PolkadotConfig, +}; + +#[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata.scale")] +pub mod polkadot {} + +#[tokio::main] +async fn main() -> Result<(), Box> { + tracing_subscriber::fmt::init(); + + let metadata = Decode:: + + Ok(()) +} diff --git a/examples/examples/pallet_metadata.rs b/examples/examples/pallet_metadata.rs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/md.json b/md.json new file mode 100644 index 0000000000..03d8558800 --- /dev/null +++ b/md.json @@ -0,0 +1,68187 @@ +[ + 1635018093, + { + "V14": { + "types": { + "types": [ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 1, + "type": { + "def": { + "array": { + "len": 32, + "type": 2 + } + } + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Index", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Index" + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData" + } + ] + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance" + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance" + }, + { + "name": "misc_frozen", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fee_frozen", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 7, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 8 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 8, + "typeName": "T" + }, + { + "name": "operational", + "type": 8, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 8, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 8, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 9, + "typeName": "u64" + }, + { + "name": "proof_size", + "type": 9, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 9, + "type": { + "def": { + "compact": { + "type": 10 + } + } + } + }, + { + "id": 10, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 11, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 12, + "type": { + "def": { + "sequence": { + "type": 2 + } + } + } + }, + { + "id": 13, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 14, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 14, + "type": { + "def": { + "sequence": { + "type": 15 + } + } + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "type": 16, + "typeName": "ConsensusEngineId" + }, + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 6 + }, + { + "name": "Consensus", + "fields": [ + { + "type": 16, + "typeName": "ConsensusEngineId" + }, + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 4 + }, + { + "name": "Seal", + "fields": [ + { + "type": 16, + "typeName": "ConsensusEngineId" + }, + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 5 + }, + { + "name": "Other", + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 0 + }, + { + "name": "RuntimeEnvironmentUpdated", + "index": 8 + } + ] + } + } + } + }, + { + "id": 16, + "type": { + "def": { + "array": { + "len": 4, + "type": 2 + } + } + } + }, + { + "id": 17, + "type": { + "def": { + "sequence": { + "type": 18 + } + } + } + }, + { + "id": 18, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 19 + }, + { + "name": "T", + "type": 11 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 401, + "typeName": "Phase" + }, + { + "name": "event", + "type": 19, + "typeName": "E" + }, + { + "name": "topics", + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 19, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeEvent" + ], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "type": 20, + "typeName": "frame_system::Event" + } + ], + "index": 0 + }, + { + "name": "Utility", + "fields": [ + { + "type": 29, + "typeName": "pallet_utility::Event" + } + ], + "index": 1 + }, + { + "name": "Indices", + "fields": [ + { + "type": 32, + "typeName": "pallet_indices::Event" + } + ], + "index": 5 + }, + { + "name": "Balances", + "fields": [ + { + "type": 33, + "typeName": "pallet_balances::Event" + } + ], + "index": 6 + }, + { + "name": "TransactionPayment", + "fields": [ + { + "type": 35, + "typeName": "pallet_transaction_payment::Event" + } + ], + "index": 7 + }, + { + "name": "AssetTxPayment", + "fields": [ + { + "type": 36, + "typeName": "pallet_asset_tx_payment::Event" + } + ], + "index": 8 + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "type": 38, + "typeName": "pallet_election_provider_multi_phase::Event" + } + ], + "index": 9 + }, + { + "name": "Staking", + "fields": [ + { + "type": 45, + "typeName": "pallet_staking::Event" + } + ], + "index": 10 + }, + { + "name": "Session", + "fields": [ + { + "type": 50, + "typeName": "pallet_session::Event" + } + ], + "index": 11 + }, + { + "name": "Democracy", + "fields": [ + { + "type": 51, + "typeName": "pallet_democracy::Event" + } + ], + "index": 12 + }, + { + "name": "Council", + "fields": [ + { + "type": 56, + "typeName": "pallet_collective::Event" + } + ], + "index": 13 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 57, + "typeName": "pallet_collective::Event" + } + ], + "index": 14 + }, + { + "name": "Elections", + "fields": [ + { + "type": 58, + "typeName": "pallet_elections_phragmen::Event" + } + ], + "index": 15 + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "type": 61, + "typeName": "pallet_membership::Event" + } + ], + "index": 16 + }, + { + "name": "Grandpa", + "fields": [ + { + "type": 62, + "typeName": "pallet_grandpa::Event" + } + ], + "index": 17 + }, + { + "name": "Treasury", + "fields": [ + { + "type": 67, + "typeName": "pallet_treasury::Event" + } + ], + "index": 18 + }, + { + "name": "Contracts", + "fields": [ + { + "type": 68, + "typeName": "pallet_contracts::Event" + } + ], + "index": 19 + }, + { + "name": "Sudo", + "fields": [ + { + "type": 69, + "typeName": "pallet_sudo::Event" + } + ], + "index": 20 + }, + { + "name": "ImOnline", + "fields": [ + { + "type": 70, + "typeName": "pallet_im_online::Event" + } + ], + "index": 21 + }, + { + "name": "Offences", + "fields": [ + { + "type": 79, + "typeName": "pallet_offences::Event" + } + ], + "index": 23 + }, + { + "name": "Identity", + "fields": [ + { + "type": 81, + "typeName": "pallet_identity::Event" + } + ], + "index": 26 + }, + { + "name": "Society", + "fields": [ + { + "type": 82, + "typeName": "pallet_society::Event" + } + ], + "index": 27 + }, + { + "name": "Recovery", + "fields": [ + { + "type": 84, + "typeName": "pallet_recovery::Event" + } + ], + "index": 28 + }, + { + "name": "Vesting", + "fields": [ + { + "type": 85, + "typeName": "pallet_vesting::Event" + } + ], + "index": 29 + }, + { + "name": "Scheduler", + "fields": [ + { + "type": 86, + "typeName": "pallet_scheduler::Event" + } + ], + "index": 30 + }, + { + "name": "Glutton", + "fields": [ + { + "type": 89, + "typeName": "pallet_glutton::Event" + } + ], + "index": 31 + }, + { + "name": "Preimage", + "fields": [ + { + "type": 90, + "typeName": "pallet_preimage::Event" + } + ], + "index": 32 + }, + { + "name": "Proxy", + "fields": [ + { + "type": 91, + "typeName": "pallet_proxy::Event" + } + ], + "index": 33 + }, + { + "name": "Multisig", + "fields": [ + { + "type": 94, + "typeName": "pallet_multisig::Event" + } + ], + "index": 34 + }, + { + "name": "Bounties", + "fields": [ + { + "type": 96, + "typeName": "pallet_bounties::Event" + } + ], + "index": 35 + }, + { + "name": "Tips", + "fields": [ + { + "type": 97, + "typeName": "pallet_tips::Event" + } + ], + "index": 36 + }, + { + "name": "Assets", + "fields": [ + { + "type": 98, + "typeName": "pallet_assets::Event" + } + ], + "index": 37 + }, + { + "name": "Lottery", + "fields": [ + { + "type": 99, + "typeName": "pallet_lottery::Event" + } + ], + "index": 39 + }, + { + "name": "Nis", + "fields": [ + { + "type": 101, + "typeName": "pallet_nis::Event" + } + ], + "index": 40 + }, + { + "name": "Uniques", + "fields": [ + { + "type": 103, + "typeName": "pallet_uniques::Event" + } + ], + "index": 41 + }, + { + "name": "Nfts", + "fields": [ + { + "type": 108, + "typeName": "pallet_nfts::Event" + } + ], + "index": 42 + }, + { + "name": "TransactionStorage", + "fields": [ + { + "type": 113, + "typeName": "pallet_transaction_storage::Event" + } + ], + "index": 43 + }, + { + "name": "VoterList", + "fields": [ + { + "type": 114, + "typeName": "pallet_bags_list::Event" + } + ], + "index": 44 + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "type": 115, + "typeName": "pallet_state_trie_migration::Event" + } + ], + "index": 45 + }, + { + "name": "ChildBounties", + "fields": [ + { + "type": 118, + "typeName": "pallet_child_bounties::Event" + } + ], + "index": 46 + }, + { + "name": "Referenda", + "fields": [ + { + "type": 119, + "typeName": "pallet_referenda::Event" + } + ], + "index": 47 + }, + { + "name": "Remark", + "fields": [ + { + "type": 383, + "typeName": "pallet_remark::Event" + } + ], + "index": 48 + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "type": 384, + "typeName": "pallet_conviction_voting::Event" + } + ], + "index": 50 + }, + { + "name": "Whitelist", + "fields": [ + { + "type": 385, + "typeName": "pallet_whitelist::Event" + } + ], + "index": 51 + }, + { + "name": "AllianceMotion", + "fields": [ + { + "type": 390, + "typeName": "pallet_collective::Event" + } + ], + "index": 52 + }, + { + "name": "Alliance", + "fields": [ + { + "type": 391, + "typeName": "pallet_alliance::Event" + } + ], + "index": 53 + }, + { + "name": "NominationPools", + "fields": [ + { + "type": 392, + "typeName": "pallet_nomination_pools::Event" + } + ], + "index": 54 + }, + { + "name": "RankedPolls", + "fields": [ + { + "type": 393, + "typeName": "pallet_referenda::Event" + } + ], + "index": 55 + }, + { + "name": "RankedCollective", + "fields": [ + { + "type": 395, + "typeName": "pallet_ranked_collective::Event" + } + ], + "index": 56 + }, + { + "name": "FastUnstake", + "fields": [ + { + "type": 397, + "typeName": "pallet_fast_unstake::Event" + } + ], + "index": 57 + }, + { + "name": "MessageQueue", + "fields": [ + { + "type": 398, + "typeName": "pallet_message_queue::Event" + } + ], + "index": 58 + }, + { + "name": "Pov", + "fields": [ + { + "type": 400, + "typeName": "frame_benchmarking_pallet_pov::Event" + } + ], + "index": 59 + } + ] + } + } + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 21, + "typeName": "DispatchInfo" + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 24, + "typeName": "DispatchError" + }, + { + "name": "dispatch_info", + "type": 21, + "typeName": "DispatchInfo" + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 21, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 8, + "typeName": "Weight" + }, + { + "name": "class", + "type": 22, + "typeName": "DispatchClass" + }, + { + "name": "pays_fee", + "type": 23, + "typeName": "Pays" + } + ] + } + } + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "index": 0 + }, + { + "name": "Operational", + "index": 1 + }, + { + "name": "Mandatory", + "index": 2 + } + ] + } + } + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "index": 0 + }, + { + "name": "No", + "index": 1 + } + ] + } + } + } + }, + { + "id": 24, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "index": 0 + }, + { + "name": "CannotLookup", + "index": 1 + }, + { + "name": "BadOrigin", + "index": 2 + }, + { + "name": "Module", + "fields": [ + { + "type": 25, + "typeName": "ModuleError" + } + ], + "index": 3 + }, + { + "name": "ConsumerRemaining", + "index": 4 + }, + { + "name": "NoProviders", + "index": 5 + }, + { + "name": "TooManyConsumers", + "index": 6 + }, + { + "name": "Token", + "fields": [ + { + "type": 26, + "typeName": "TokenError" + } + ], + "index": 7 + }, + { + "name": "Arithmetic", + "fields": [ + { + "type": 27, + "typeName": "ArithmeticError" + } + ], + "index": 8 + }, + { + "name": "Transactional", + "fields": [ + { + "type": 28, + "typeName": "TransactionalError" + } + ], + "index": 9 + }, + { + "name": "Exhausted", + "index": 10 + }, + { + "name": "Corruption", + "index": 11 + }, + { + "name": "Unavailable", + "index": 12 + } + ] + } + } + } + }, + { + "id": 25, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8" + }, + { + "name": "error", + "type": 16, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]" + } + ] + } + } + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoFunds", + "index": 0 + }, + { + "name": "WouldDie", + "index": 1 + }, + { + "name": "BelowMinimum", + "index": 2 + }, + { + "name": "CannotCreate", + "index": 3 + }, + { + "name": "UnknownAsset", + "index": 4 + }, + { + "name": "Frozen", + "index": 5 + }, + { + "name": "Unsupported", + "index": 6 + } + ] + } + } + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "index": 0 + }, + { + "name": "Overflow", + "index": 1 + }, + { + "name": "DivisionByZero", + "index": 2 + } + ] + } + } + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "index": 0 + }, + { + "name": "NoLayer", + "index": 1 + } + ] + } + } + } + }, + { + "id": 29, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32" + }, + { + "name": "error", + "type": 24, + "typeName": "DispatchError" + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 24, + "typeName": "DispatchError" + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 30, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 31 + }, + { + "name": "E", + "type": 24 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 31 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 24 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 31, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 32, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 33, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance" + }, + { + "name": "reserved", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + }, + { + "name": "destination_status", + "type": 34, + "typeName": "Status" + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 34, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "index": 0 + }, + { + "name": "Reserved", + "index": 1 + } + ] + } + } + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 36, + "type": { + "path": [ + "pallet_asset_tx_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetTxFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "AssetBalanceOf" + }, + { + "name": "tip", + "type": 6, + "typeName": "AssetBalanceOf" + }, + { + "name": "asset_id", + "type": 37, + "typeName": "Option>" + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who` in an asset `asset_id`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 37, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 4 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 39, + "typeName": "ElectionCompute" + }, + { + "name": "origin", + "type": 40, + "typeName": "Option" + }, + { + "name": "prev_ejected", + "type": 41, + "typeName": "bool" + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submited in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 39, + "typeName": "ElectionCompute" + }, + { + "name": "score", + "type": 42, + "typeName": "ElectionScore" + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 43, + "typeName": "Phase" + }, + { + "name": "to", + "type": 43, + "typeName": "Phase" + }, + { + "name": "round", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 39, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "index": 0 + }, + { + "name": "Signed", + "index": 1 + }, + { + "name": "Unsigned", + "index": 2 + }, + { + "name": "Fallback", + "index": 3 + }, + { + "name": "Emergency", + "index": 4 + } + ] + } + } + } + }, + { + "id": 40, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 0 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 41, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 42, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance" + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance" + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance" + } + ] + } + } + } + }, + { + "id": 43, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "index": 0 + }, + { + "name": "Signed", + "index": 1 + }, + { + "name": "Unsigned", + "fields": [ + { + "type": 44, + "typeName": "(bool, Bn)" + } + ], + "index": 2 + }, + { + "name": "Emergency", + "index": 3 + } + ] + } + } + } + }, + { + "id": 44, + "type": { + "def": { + "tuple": [ + 41, + 4 + ] + } + } + }, + { + "id": 45, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "fraction", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex" + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 12, + "docs": [ + "The stakers' rewards are getting paid." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "prefs", + "type": 47, + "typeName": "ValidatorPrefs" + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 49, + "typeName": "Forcing" + } + ], + "index": 14, + "docs": [ + "A new force era mode was set." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 46, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 47, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 48, + "typeName": "Perbill" + }, + { + "name": "blocked", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 48, + "type": { + "def": { + "compact": { + "type": 46 + } + } + } + }, + { + "id": 49, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "index": 0 + }, + { + "name": "ForceNew", + "index": 1 + }, + { + "name": "ForceNone", + "index": 2 + }, + { + "name": "ForceAlways", + "index": 3 + } + ] + } + } + } + }, + { + "id": 50, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex" + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 51, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A motion has been proposed by a public account." + ] + }, + { + "name": "Tabled", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A public proposal has been tabled for referendum vote." + ] + }, + { + "name": "ExternalTabled", + "index": 2, + "docs": [ + "An external proposal has been tabled." + ] + }, + { + "name": "Started", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "threshold", + "type": 52, + "typeName": "VoteThreshold" + } + ], + "index": 3, + "docs": [ + "A referendum has begun." + ] + }, + { + "name": "Passed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "A proposal has been approved by referendum." + ] + }, + { + "name": "NotPassed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 6, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Delegated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "target", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "An account has delegated their vote to another account." + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 8, + "docs": [ + "An account has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + }, + { + "name": "until", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 9, + "docs": [ + "An external proposal has been vetoed." + ] + }, + { + "name": "Blacklisted", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + } + ], + "index": 10, + "docs": [ + "A proposal_hash has been blacklisted permanently." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "vote", + "type": 53, + "typeName": "AccountVote>" + } + ], + "index": 11, + "docs": [ + "An account has voted in a referendum" + ] + }, + { + "name": "Seconded", + "fields": [ + { + "name": "seconder", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 12, + "docs": [ + "An account has secconded a proposal" + ] + }, + { + "name": "ProposalCanceled", + "fields": [ + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 13, + "docs": [ + "A proposal got canceled." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "owner", + "type": 55, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a proposal or a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "owner", + "type": 55, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a proposal or a referendum has been cleared." + ] + }, + { + "name": "MetadataTransferred", + "fields": [ + { + "name": "prev_owner", + "type": 55, + "typeName": "MetadataOwner", + "docs": [ + "Previous metadata owner." + ] + }, + { + "name": "owner", + "type": 55, + "typeName": "MetadataOwner", + "docs": [ + "New metadata owner." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 16, + "docs": [ + "Metadata has been transferred to new owner." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 52, + "type": { + "path": [ + "pallet_democracy", + "vote_threshold", + "VoteThreshold" + ], + "def": { + "variant": { + "variants": [ + { + "name": "SuperMajorityApprove", + "index": 0 + }, + { + "name": "SuperMajorityAgainst", + "index": 1 + }, + { + "name": "SimpleMajority", + "index": 2 + } + ] + } + } + } + }, + { + "id": 53, + "type": { + "path": [ + "pallet_democracy", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 54, + "typeName": "Vote" + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 54, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Vote" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + } + } + }, + { + "id": 55, + "type": { + "path": [ + "pallet_democracy", + "types", + "MetadataOwner" + ], + "def": { + "variant": { + "variants": [ + { + "name": "External", + "index": 0 + }, + { + "name": "Proposal", + "fields": [ + { + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 1 + }, + { + "name": "Referendum", + "fields": [ + { + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 56, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "voted", + "type": 41, + "typeName": "bool" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 57, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "voted", + "type": 41, + "typeName": "bool" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 58, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTerm", + "fields": [ + { + "name": "new_members", + "type": 59, + "typeName": "Vec<(::AccountId, BalanceOf)>" + } + ], + "index": 0, + "docs": [ + "A new term with new_members. This indicates that enough candidates existed to run", + "the election, not that enough have has been elected. The inner value must be examined", + "for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + "slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + "begin with." + ] + }, + { + "name": "EmptyTerm", + "index": 1, + "docs": [ + "No (or not enough) candidates existed for this round. This is different from", + "`NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "index": 2, + "docs": [ + "Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "::AccountId" + } + ], + "index": 3, + "docs": [ + "A member has been removed. This should always be followed by either `NewTerm` or", + "`EmptyTerm`." + ] + }, + { + "name": "Renounced", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId" + } + ], + "index": 4, + "docs": [ + "Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "A candidate was slashed by amount due to failing to obtain a seat as member or", + "runner-up.", + "", + "Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "fields": [ + { + "name": "seat_holder", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "A seat holder was slashed by amount by being forcefully removed from the set." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 59, + "type": { + "def": { + "sequence": { + "type": 60 + } + } + } + }, + { + "id": 60, + "type": { + "def": { + "tuple": [ + 0, + 6 + ] + } + } + }, + { + "id": 61, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "index": 0, + "docs": [ + "The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "index": 1, + "docs": [ + "The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "index": 2, + "docs": [ + "Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "index": 3, + "docs": [ + "The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "index": 4, + "docs": [ + "One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "index": 5, + "docs": [ + "Phantom member, never used." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 62, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 63, + "typeName": "AuthorityList" + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 63, + "type": { + "def": { + "sequence": { + "type": 64 + } + } + } + }, + { + "id": 64, + "type": { + "def": { + "tuple": [ + 65, + 10 + ] + } + } + }, + { + "id": 65, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 66, + "typeName": "ed25519::Public" + } + ] + } + } + } + }, + { + "id": 66, + "type": { + "path": [ + "sp_core", + "ed25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 67, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + } + ], + "index": 0, + "docs": [ + "New proposal." + ] + }, + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "slashed", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "A proposal was rejected; funds were slashed." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 8, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 68, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Instantiated", + "fields": [ + { + "name": "deployer", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "Contract deployed by address at the specified address." + ] + }, + { + "name": "Terminated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was terminated." + ] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that received the contracts remaining balance" + ] + } + ], + "index": 1, + "docs": [ + "Contract has been removed.", + "", + "# Note", + "", + "The only way for a contract to be removed and emitting this event is by calling", + "`seal_terminate`." + ] + }, + { + "name": "CodeStored", + "fields": [ + { + "name": "code_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "Code with the specified hash has been stored." + ] + }, + { + "name": "ContractEmitted", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that emitted the event." + ] + }, + { + "name": "data", + "type": 12, + "typeName": "Vec", + "docs": [ + "Data supplied by the contract. Metadata generated during contract compilation", + "is needed to decode it." + ] + } + ], + "index": 3, + "docs": [ + "A custom event emitted by the contract." + ] + }, + { + "name": "CodeRemoved", + "fields": [ + { + "name": "code_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 4, + "docs": [ + "A code with the specified hash was removed." + ] + }, + { + "name": "ContractCodeUpdated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that has been updated." + ] + }, + { + "name": "new_code_hash", + "type": 11, + "typeName": "T::Hash", + "docs": [ + "New code hash that was set for the contract." + ] + }, + { + "name": "old_code_hash", + "type": 11, + "typeName": "T::Hash", + "docs": [ + "Previous code hash of the contract." + ] + } + ], + "index": 5, + "docs": [ + "A contract's code was updated." + ] + }, + { + "name": "Called", + "fields": [ + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that called the `contract`." + ] + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was called." + ] + } + ], + "index": 6, + "docs": [ + "A contract was called either by a plain account or another contract.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + }, + { + "name": "DelegateCalled", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that performed the delegate call and hence in whose context", + "the `code_hash` is executed." + ] + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash", + "docs": [ + "The code hash that was delegate called." + ] + } + ], + "index": 7, + "docs": [ + "A contract delegate called a code hash.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 69, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Sudid", + "fields": [ + { + "name": "sudo_result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 0, + "docs": [ + "A sudo just took place. \\[result\\]" + ] + }, + { + "name": "KeyChanged", + "fields": [ + { + "name": "old_sudoer", + "type": 40, + "typeName": "Option" + } + ], + "index": 1, + "docs": [ + "The \\[sudoer\\] just switched identity; the old key is supplied if one existed." + ] + }, + { + "name": "SudoAsDone", + "fields": [ + { + "name": "sudo_result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 2, + "docs": [ + "A sudo just took place. \\[result\\]" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 70, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "HeartbeatReceived", + "fields": [ + { + "name": "authority_id", + "type": 71, + "typeName": "T::AuthorityId" + } + ], + "index": 0, + "docs": [ + "A new heartbeat was received from `AuthorityId`." + ] + }, + { + "name": "AllGood", + "index": 1, + "docs": [ + "At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "fields": [ + { + "name": "offline", + "type": 73, + "typeName": "Vec>" + } + ], + "index": 2, + "docs": [ + "At the end of the session, at least one validator was found to be offline." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 71, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 72, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 72, + "type": { + "path": [ + "sp_core", + "sr25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 73, + "type": { + "def": { + "sequence": { + "type": 74 + } + } + } + }, + { + "id": 74, + "type": { + "def": { + "tuple": [ + 0, + 75 + ] + } + } + }, + { + "id": 75, + "type": { + "path": [ + "pallet_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 76, + "typeName": "Balance" + }, + { + "name": "own", + "type": 76, + "typeName": "Balance" + }, + { + "name": "others", + "type": 77, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 76, + "type": { + "def": { + "compact": { + "type": 6 + } + } + } + }, + { + "id": 77, + "type": { + "def": { + "sequence": { + "type": 78 + } + } + } + }, + { + "id": 78, + "type": { + "path": [ + "pallet_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "value", + "type": 76, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 79, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 80, + "typeName": "Kind" + }, + { + "name": "timeslot", + "type": 12, + "typeName": "OpaqueTimeSlot" + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 80, + "type": { + "def": { + "array": { + "len": 16, + "type": 2 + } + } + } + }, + { + "id": 81, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IdentitySet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A name was set or reset (which will remove all judgements)." + ] + }, + { + "name": "IdentityCleared", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A name was cleared, and the given balance returned." + ] + }, + { + "name": "IdentityKilled", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A name was removed and the given balance slashed." + ] + }, + { + "name": "JudgementRequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 3, + "docs": [ + "A judgement was asked from a registrar." + ] + }, + { + "name": "JudgementUnrequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 4, + "docs": [ + "A judgement request was retracted." + ] + }, + { + "name": "JudgementGiven", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 5, + "docs": [ + "A judgement was given by a registrar." + ] + }, + { + "name": "RegistrarAdded", + "fields": [ + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 6, + "docs": [ + "A registrar was added." + ] + }, + { + "name": "SubIdentityAdded", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 7, + "docs": [ + "A sub-identity was added to an identity and the deposit paid." + ] + }, + { + "name": "SubIdentityRemoved", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 8, + "docs": [ + "A sub-identity was removed from an identity and the deposit freed." + ] + }, + { + "name": "SubIdentityRevoked", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 9, + "docs": [ + "A sub-identity was cleared, and the given deposit repatriated from the", + "main identity account to the sub-identity account." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 82, + "type": { + "path": [ + "pallet_society", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Founded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A membership bid just happened. The given account is the candidate's ID and their offer", + "is the second." + ] + }, + { + "name": "Vouch", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "vouching", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "A membership bid just happened by vouching. The given account is the candidate's ID and", + "their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "primary", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidates", + "type": 83, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "A group of candidates have been inducted. The batch's primary is the first value, the", + "batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "judged", + "type": 41, + "typeName": "bool" + } + ], + "index": 7, + "docs": [ + "A suspended member has been judged." + ] + }, + { + "name": "CandidateSuspended", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 8, + "docs": [ + "A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 9, + "docs": [ + "A member has been suspended" + ] + }, + { + "name": "Challenged", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 10, + "docs": [ + "A member has been challenged" + ] + }, + { + "name": "Vote", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "vote", + "type": 41, + "typeName": "bool" + } + ], + "index": 11, + "docs": [ + "A vote has been placed" + ] + }, + { + "name": "DefenderVote", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "vote", + "type": 41, + "typeName": "bool" + } + ], + "index": 12, + "docs": [ + "A vote has been placed for a defending member" + ] + }, + { + "name": "NewMaxMembers", + "fields": [ + { + "name": "max", + "type": 4, + "typeName": "u32" + } + ], + "index": 13, + "docs": [ + "A new \\[max\\] member count has been set" + ] + }, + { + "name": "Unfounded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 14, + "docs": [ + "Society is unfounded." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 15, + "docs": [ + "Some funds were deposited into the society account." + ] + }, + { + "name": "SkepticsChosen", + "fields": [ + { + "name": "skeptics", + "type": 83, + "typeName": "Vec" + } + ], + "index": 16, + "docs": [ + "A group of members has been choosen as Skeptics" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 83, + "type": { + "def": { + "sequence": { + "type": 0 + } + } + } + }, + { + "id": 84, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A recovery process has been set up for an account." + ] + }, + { + "name": "RecoveryInitiated", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "A recovery process has been initiated for lost account by rescuer account." + ] + }, + { + "name": "RecoveryVouched", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "A recovery process for lost account by rescuer account has been vouched for by sender." + ] + }, + { + "name": "RecoveryClosed", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A recovery process for lost account by rescuer account has been closed." + ] + }, + { + "name": "AccountRecovered", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "Lost account has been successfully recovered by rescuer account." + ] + }, + { + "name": "RecoveryRemoved", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "A recovery process has been removed for an account." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 85, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 86, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 87, + "typeName": "TaskAddress" + }, + { + "name": "id", + "type": 88, + "typeName": "Option" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 87, + "typeName": "TaskAddress" + }, + { + "name": "id", + "type": 88, + "typeName": "Option" + } + ], + "index": 3, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 87, + "typeName": "TaskAddress" + }, + { + "name": "id", + "type": 88, + "typeName": "Option" + } + ], + "index": 4, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 87, + "typeName": "TaskAddress" + }, + { + "name": "id", + "type": 88, + "typeName": "Option" + } + ], + "index": 5, + "docs": [ + "The given task can never be executed since it is overweight." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 87, + "type": { + "def": { + "tuple": [ + 4, + 4 + ] + } + } + }, + { + "id": 88, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 1 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 89, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PalletInitialized", + "fields": [ + { + "name": "reinit", + "type": 41, + "typeName": "bool" + } + ], + "index": 0, + "docs": [ + "The pallet has been (re)initialized by root." + ] + }, + { + "name": "ComputationLimitSet", + "fields": [ + { + "name": "compute", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 1, + "docs": [ + "The computation limit has been updated by root." + ] + }, + { + "name": "StorageLimitSet", + "fields": [ + { + "name": "storage", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 2, + "docs": [ + "The storage limit has been updated by root." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 90, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 91, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "disambiguation_index", + "type": 93, + "typeName": "u16" + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "CallHashOf" + } + ], + "index": 2, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 3, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 4, + "docs": [ + "A proxy was removed." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 92, + "type": { + "path": [ + "kitchensink_runtime", + "ProxyType" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "index": 0 + }, + { + "name": "NonTransfer", + "index": 1 + }, + { + "name": "Governance", + "index": 2 + }, + { + "name": "Staking", + "index": 3 + } + ] + } + } + } + }, + { + "id": 93, + "type": { + "def": { + "primitive": "u16" + } + } + }, + { + "id": 94, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash" + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash" + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash" + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 95, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 96, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 97, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTip", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 0, + "docs": [ + "A new tip suggestion has been opened." + ] + }, + { + "name": "TipClosing", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "A tip suggestion has reached threshold and is closing." + ] + }, + { + "name": "TipClosed", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A tip suggestion has been closed." + ] + }, + { + "name": "TipRetracted", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A tip suggestion has been retracted." + ] + }, + { + "name": "TipSlashed", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "finder", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "A tip suggestion has been slashed." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 98, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32" + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32" + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32" + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32" + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "name", + "type": 12, + "typeName": "Vec" + }, + { + "name": "symbol", + "type": 12, + "typeName": "Vec" + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 99, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LotteryStarted", + "index": 0, + "docs": [ + "A lottery has been started!" + ] + }, + { + "name": "CallsUpdated", + "index": 1, + "docs": [ + "A new set of calls have been set!" + ] + }, + { + "name": "Winner", + "fields": [ + { + "name": "winner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "lottery_balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A winner has been chosen!" + ] + }, + { + "name": "TicketBought", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_index", + "type": 100, + "typeName": "CallIndex" + } + ], + "index": 3, + "docs": [ + "A ticket has been bought!" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 100, + "type": { + "def": { + "tuple": [ + 2, + 2 + ] + } + } + }, + { + "id": 101, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BidPlaced", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "A bid was successfully placed." + ] + }, + { + "name": "BidRetracted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "A bid was successfully removed (before being accepted)." + ] + }, + { + "name": "BidDropped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "A bid was dropped from a queue because of another, more substantial, bid was present." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "expiry", + "type": 4, + "typeName": "T::BlockNumber", + "docs": [ + "The block number at which the receipt may be thawed." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner of the receipt." + ] + }, + { + "name": "proportion", + "type": 102, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance which the receipt represents." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of funds which were debited from the owner." + ] + } + ], + "index": 3, + "docs": [ + "A bid was accepted. The balance may not be released until expiry." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner." + ] + }, + { + "name": "proportion", + "type": 102, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance by which the owner was debited." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount by which the owner was credited." + ] + }, + { + "name": "dropped", + "type": 41, + "typeName": "bool", + "docs": [ + "If `true` then the receipt is done." + ] + } + ], + "index": 4, + "docs": [ + "An receipt has been (at least partially) thawed." + ] + }, + { + "name": "Funded", + "fields": [ + { + "name": "deficit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "An automatic funding of the deficit was made." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex" + } + ], + "index": 6, + "docs": [ + "A receipt was transfered." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 102, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 103, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 6, + "docs": [ + "Some `item` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 7, + "docs": [ + "Some `item` was thawed." + ] + }, + { + "name": "CollectionFrozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 8, + "docs": [ + "Some `collection` was frozen." + ] + }, + { + "name": "CollectionThawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 9, + "docs": [ + "Some `collection` was thawed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "ItemStatusChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 14, + "docs": [ + "A `collection` has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 15, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 17, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 18, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "successful_items", + "type": 105, + "typeName": "Vec" + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + } + ], + "index": 20, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + } + ], + "index": 21, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "maybe_collection", + "type": 37, + "typeName": "Option" + } + ], + "index": 22, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 23, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice" + }, + { + "name": "whitelisted_buyer", + "type": 40, + "typeName": "Option" + } + ], + "index": 24, + "docs": [ + "The price was set for the instance." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 25, + "docs": [ + "The price for the instance was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice" + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 26, + "docs": [ + "An item was bought." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 104, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 105, + "type": { + "def": { + "sequence": { + "type": 4 + } + } + } + }, + { + "id": 106, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 107, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 108, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "ItemTransferLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 6, + "docs": [ + "An `item` became non-transferable." + ] + }, + { + "name": "ItemTransferUnlocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 7, + "docs": [ + "An `item` became transferable." + ] + }, + { + "name": "ItemPropertiesLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "lock_metadata", + "type": 41, + "typeName": "bool" + }, + { + "name": "lock_attributes", + "type": 41, + "typeName": "bool" + } + ], + "index": 8, + "docs": [ + "`item` metadata or attributes were locked." + ] + }, + { + "name": "CollectionLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 9, + "docs": [ + "Some `collection` was locked." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "TransferApproved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deadline", + "type": 37, + "typeName": "Option<::BlockNumber>" + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "AllApprovalsCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 14, + "docs": [ + "All approvals of an item got cancelled." + ] + }, + { + "name": "CollectionConfigChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 15, + "docs": [ + "A `collection` has had its config changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ], + "index": 16, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 17, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "ItemMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ], + "index": 18, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "ItemMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "successful_items", + "type": 105, + "typeName": "Vec" + } + ], + "index": 20, + "docs": [ + "The deposit for a set of `item`s within a `collection` has been updated." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + } + ], + "index": 21, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + } + ], + "index": 22, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "ItemAttributesApprovalAdded", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 23, + "docs": [ + "A new approval to modify item attributes was added." + ] + }, + { + "name": "ItemAttributesApprovalRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 24, + "docs": [ + "A new approval to modify item attributes was removed." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "maybe_collection", + "type": 37, + "typeName": "Option" + } + ], + "index": 25, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 26, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "CollectionMintSettingsUpdated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 27, + "docs": [ + "Mint settings for a collection had changed." + ] + }, + { + "name": "NextCollectionIdIncremented", + "fields": [ + { + "name": "next_id", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 28, + "docs": [ + "Event gets emitted when the `NextCollectionId` gets incremented." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice" + }, + { + "name": "whitelisted_buyer", + "type": 40, + "typeName": "Option" + } + ], + "index": 29, + "docs": [ + "The price was set for the item." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 30, + "docs": [ + "The price for the item was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice" + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 31, + "docs": [ + "An item was bought." + ] + }, + { + "name": "TipSent", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "receiver", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalanceOf" + } + ], + "index": 32, + "docs": [ + "A tip was sent." + ] + }, + { + "name": "SwapCreated", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "desired_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "price", + "type": 110, + "typeName": "Option>>" + }, + { + "name": "deadline", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 33, + "docs": [ + "An `item` swap intent was created." + ] + }, + { + "name": "SwapCancelled", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "desired_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "price", + "type": 110, + "typeName": "Option>>" + }, + { + "name": "deadline", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 34, + "docs": [ + "The swap was cancelled." + ] + }, + { + "name": "SwapClaimed", + "fields": [ + { + "name": "sent_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "sent_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "sent_item_owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "received_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "received_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "received_item_owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "price", + "type": 110, + "typeName": "Option>>" + }, + { + "name": "deadline", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 35, + "docs": [ + "The swap has been claimed." + ] + }, + { + "name": "PreSignedAttributesSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + } + ], + "index": 36, + "docs": [ + "New attributes have been set for an `item` of the `collection`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 109, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "AttributeNamespace" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pallet", + "index": 0 + }, + { + "name": "CollectionOwner", + "index": 1 + }, + { + "name": "ItemOwner", + "index": 2 + }, + { + "name": "Account", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 110, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 111 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 111 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 111, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceWithDirection" + ], + "params": [ + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Amount" + }, + { + "name": "direction", + "type": 112, + "typeName": "PriceDirection" + } + ] + } + } + } + }, + { + "id": 112, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceDirection" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Send", + "index": 0 + }, + { + "name": "Receive", + "index": 1 + } + ] + } + } + } + }, + { + "id": 113, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Stored data under specified index." + ] + }, + { + "name": "Renewed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Renewed data under specified index." + ] + }, + { + "name": "ProofChecked", + "index": 2, + "docs": [ + "Storage proof was successfully checked." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 114, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "from", + "type": 10, + "typeName": "T::Score" + }, + { + "name": "to", + "type": 10, + "typeName": "T::Score" + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "new_score", + "type": 10, + "typeName": "T::Score" + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 115, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32" + }, + { + "name": "child", + "type": 4, + "typeName": "u32" + }, + { + "name": "compute", + "type": 116, + "typeName": "MigrationCompute" + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 117, + "typeName": "Error" + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 116, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "index": 0 + }, + { + "name": "Auto", + "index": 1 + } + ] + } + } + } + }, + { + "id": 117, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 118, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 119, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashaed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5 + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6 + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 120, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 121 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "Hash" + } + ], + "index": 0 + }, + { + "name": "Inline", + "fields": [ + { + "type": 381, + "typeName": "BoundedInline" + } + ], + "index": 1 + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "Hash" + }, + { + "name": "len", + "type": 4, + "typeName": "u32" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 121, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeCall" + ], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "type": 122, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 0 + }, + { + "name": "Utility", + "fields": [ + { + "type": 126, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 1 + }, + { + "name": "Babe", + "fields": [ + { + "type": 134, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 2 + }, + { + "name": "Timestamp", + "fields": [ + { + "type": 145, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 3 + }, + { + "name": "Indices", + "fields": [ + { + "type": 146, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 5 + }, + { + "name": "Balances", + "fields": [ + { + "type": 149, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 6 + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "type": 150, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 9 + }, + { + "name": "Staking", + "fields": [ + { + "type": 208, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 10 + }, + { + "name": "Session", + "fields": [ + { + "type": 216, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 11 + }, + { + "name": "Democracy", + "fields": [ + { + "type": 219, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 12 + }, + { + "name": "Council", + "fields": [ + { + "type": 222, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 13 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 225, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 14 + }, + { + "name": "Elections", + "fields": [ + { + "type": 226, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 15 + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "type": 228, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 16 + }, + { + "name": "Grandpa", + "fields": [ + { + "type": 229, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 17 + }, + { + "name": "Treasury", + "fields": [ + { + "type": 241, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 18 + }, + { + "name": "Contracts", + "fields": [ + { + "type": 242, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 19 + }, + { + "name": "Sudo", + "fields": [ + { + "type": 245, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 20 + }, + { + "name": "ImOnline", + "fields": [ + { + "type": 246, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 21 + }, + { + "name": "Identity", + "fields": [ + { + "type": 254, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 26 + }, + { + "name": "Society", + "fields": [ + { + "type": 295, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 27 + }, + { + "name": "Recovery", + "fields": [ + { + "type": 297, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 28 + }, + { + "name": "Vesting", + "fields": [ + { + "type": 298, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 29 + }, + { + "name": "Scheduler", + "fields": [ + { + "type": 300, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 30 + }, + { + "name": "Glutton", + "fields": [ + { + "type": 302, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 31 + }, + { + "name": "Preimage", + "fields": [ + { + "type": 303, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 32 + }, + { + "name": "Proxy", + "fields": [ + { + "type": 304, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 33 + }, + { + "name": "Multisig", + "fields": [ + { + "type": 306, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 34 + }, + { + "name": "Bounties", + "fields": [ + { + "type": 308, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 35 + }, + { + "name": "Tips", + "fields": [ + { + "type": 309, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 36 + }, + { + "name": "Assets", + "fields": [ + { + "type": 310, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 37 + }, + { + "name": "Lottery", + "fields": [ + { + "type": 311, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 39 + }, + { + "name": "Nis", + "fields": [ + { + "type": 312, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 40 + }, + { + "name": "Uniques", + "fields": [ + { + "type": 314, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 41 + }, + { + "name": "Nfts", + "fields": [ + { + "type": 318, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 42 + }, + { + "name": "TransactionStorage", + "fields": [ + { + "type": 339, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 43 + }, + { + "name": "VoterList", + "fields": [ + { + "type": 341, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 44 + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "type": 342, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 45 + }, + { + "name": "ChildBounties", + "fields": [ + { + "type": 348, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 46 + }, + { + "name": "Referenda", + "fields": [ + { + "type": 349, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 47 + }, + { + "name": "Remark", + "fields": [ + { + "type": 351, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 48 + }, + { + "name": "RootTesting", + "fields": [ + { + "type": 352, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 49 + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "type": 353, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 50 + }, + { + "name": "Whitelist", + "fields": [ + { + "type": 358, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 51 + }, + { + "name": "AllianceMotion", + "fields": [ + { + "type": 359, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 52 + }, + { + "name": "Alliance", + "fields": [ + { + "type": 360, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 53 + }, + { + "name": "NominationPools", + "fields": [ + { + "type": 369, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 54 + }, + { + "name": "RankedPolls", + "fields": [ + { + "type": 376, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 55 + }, + { + "name": "RankedCollective", + "fields": [ + { + "type": 377, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 56 + }, + { + "name": "FastUnstake", + "fields": [ + { + "type": 378, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 57 + }, + { + "name": "MessageQueue", + "fields": [ + { + "type": 379, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 58 + }, + { + "name": "Pov", + "fields": [ + { + "type": 380, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 59 + } + ] + } + } + } + }, + { + "id": 122, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "## Complexity", + "- `O(1)`" + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 10, + "typeName": "u64" + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "Vec" + } + ], + "index": 2, + "docs": [ + "Set the new runtime code.", + "", + "## Complexity", + "- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`" + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "## Complexity", + "- `O(C)` where `C` length of `code`" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 123, + "typeName": "Vec" + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 125, + "typeName": "Vec" + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 12, + "typeName": "Key" + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 12, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 123, + "type": { + "def": { + "sequence": { + "type": 124 + } + } + } + }, + { + "id": 124, + "type": { + "def": { + "tuple": [ + 12, + 12 + ] + } + } + }, + { + "id": 125, + "type": { + "def": { + "sequence": { + "type": 12 + } + } + } + }, + { + "id": 126, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 127, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 93, + "typeName": "u16" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 127, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 128, + "typeName": "Box" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 127, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "weight", + "type": 8, + "typeName": "Weight" + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 127, + "type": { + "def": { + "sequence": { + "type": 121 + } + } + } + }, + { + "id": 128, + "type": { + "path": [ + "kitchensink_runtime", + "OriginCaller" + ], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "type": 129, + "typeName": "frame_system::Origin" + } + ], + "index": 0 + }, + { + "name": "Council", + "fields": [ + { + "type": 130, + "typeName": "pallet_collective::Origin" + } + ], + "index": 13 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 131, + "typeName": "pallet_collective::Origin" + } + ], + "index": 14 + }, + { + "name": "AllianceMotion", + "fields": [ + { + "type": 132, + "typeName": "pallet_collective::Origin" + } + ], + "index": 52 + }, + { + "name": "Void", + "fields": [ + { + "type": 133, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::Void" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 129, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "index": 0 + }, + { + "name": "Signed", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "None", + "index": 2 + } + ] + } + } + } + }, + { + "id": 130, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 131, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 132, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 133, + "type": { + "path": [ + "sp_core", + "Void" + ], + "def": { + "variant": {} + } + } + }, + { + "id": 134, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 135, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 141, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 135, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 141, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 142, + "typeName": "NextConfigDescriptor" + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 135, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 136 + }, + { + "name": "Id", + "type": 139 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 139, + "typeName": "Id" + }, + { + "name": "slot", + "type": 140, + "typeName": "Slot" + }, + { + "name": "first_header", + "type": 136, + "typeName": "Header" + }, + { + "name": "second_header", + "type": 136, + "typeName": "Header" + } + ] + } + } + } + }, + { + "id": 136, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": 137 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 11, + "typeName": "Hash::Output" + }, + { + "name": "number", + "type": 138, + "typeName": "Number" + }, + { + "name": "state_root", + "type": 11, + "typeName": "Hash::Output" + }, + { + "name": "extrinsics_root", + "type": 11, + "typeName": "Hash::Output" + }, + { + "name": "digest", + "type": 13, + "typeName": "Digest" + } + ] + } + } + } + }, + { + "id": 137, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "def": { + "composite": {} + } + } + }, + { + "id": 138, + "type": { + "def": { + "compact": { + "type": 4 + } + } + } + }, + { + "id": 139, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 72, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 140, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 141, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex" + }, + { + "name": "trie_nodes", + "type": 125, + "typeName": "Vec>" + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount" + } + ] + } + } + } + }, + { + "id": 142, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 143, + "typeName": "(u64, u64)" + }, + { + "name": "allowed_slots", + "type": 144, + "typeName": "AllowedSlots" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 143, + "type": { + "def": { + "tuple": [ + 10, + 10 + ] + } + } + }, + { + "id": 144, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "index": 0 + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "index": 1 + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "index": 2 + } + ] + } + } + } + }, + { + "id": 145, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 9, + "typeName": "T::Moment" + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "`MinimumPeriod`.", + "", + "The dispatch origin for this call must be `Inherent`.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 146, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + }, + { + "name": "freeze", + "type": 41, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 147, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 0 + }, + { + "name": "Index", + "fields": [ + { + "type": 138, + "typeName": "AccountIndex" + } + ], + "index": 1 + }, + { + "name": "Raw", + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 2 + }, + { + "name": "Address32", + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ], + "index": 3 + }, + { + "name": "Address20", + "fields": [ + { + "type": 148, + "typeName": "[u8; 20]" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 148, + "type": { + "def": { + "array": { + "len": 20, + "type": 2 + } + } + } + }, + { + "id": 149, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor.", + "", + "## Complexity", + "- Dependent on arguments but not critical, given proper implementations for input config", + " types. See related functions below.", + "- It contains a limited number of reads and writes internally and no complex", + " computation.", + "", + "Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check", + " that the transfer will not kill the origin account." + ] + }, + { + "name": "set_balance", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "new_free", + "type": 76, + "typeName": "T::Balance" + }, + { + "name": "new_reserved", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "Set the balances of a given account.", + "", + "This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + "also alter the total issuance of the system (`TotalIssuance`) appropriately.", + "If the new free or reserved balance is below the existential deposit,", + "it will reset the account nonce (`frame_system::AccountNonce`).", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer`, except the origin must be root and the source account may be", + "specified.", + "## Complexity", + "- Same as transfer, but additional read and write because the source account is not", + " assumed to be in the overlay." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer`] call, but with a check that the transfer will not kill the", + "origin account.", + "", + "99% of the time you want [`transfer`] instead.", + "", + "[`transfer`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "keep_alive", + "type": 41, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true). ## Complexity", + "- O(1). Just like transfer, but reading the user's transferable balance first." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 150, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 151, + "typeName": "Box>>" + }, + { + "name": "witness", + "type": 203, + "typeName": "SolutionOrSnapshotSize" + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 204, + "typeName": "Option" + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 205, + "typeName": "Supports" + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 151, + "typeName": "Box>>" + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [ + { + "name": "maybe_max_voters", + "type": 37, + "typeName": "Option" + }, + { + "name": "maybe_max_targets", + "type": 37, + "typeName": "Option" + } + ], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 151, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 152 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 152, + "typeName": "S" + }, + { + "name": "score", + "type": 42, + "typeName": "ElectionScore" + }, + { + "name": "round", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 152, + "type": { + "path": [ + "kitchensink_runtime", + "NposSolution16" + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 153 + }, + { + "name": "votes2", + "type": 156 + }, + { + "name": "votes3", + "type": 161 + }, + { + "name": "votes4", + "type": 164 + }, + { + "name": "votes5", + "type": 167 + }, + { + "name": "votes6", + "type": 170 + }, + { + "name": "votes7", + "type": 173 + }, + { + "name": "votes8", + "type": 176 + }, + { + "name": "votes9", + "type": 179 + }, + { + "name": "votes10", + "type": 182 + }, + { + "name": "votes11", + "type": 185 + }, + { + "name": "votes12", + "type": 188 + }, + { + "name": "votes13", + "type": 191 + }, + { + "name": "votes14", + "type": 194 + }, + { + "name": "votes15", + "type": 197 + }, + { + "name": "votes16", + "type": 200 + } + ] + } + } + } + }, + { + "id": 153, + "type": { + "def": { + "sequence": { + "type": 154 + } + } + } + }, + { + "id": 154, + "type": { + "def": { + "tuple": [ + 138, + 155 + ] + } + } + }, + { + "id": 155, + "type": { + "def": { + "compact": { + "type": 93 + } + } + } + }, + { + "id": 156, + "type": { + "def": { + "sequence": { + "type": 157 + } + } + } + }, + { + "id": 157, + "type": { + "def": { + "tuple": [ + 138, + 158, + 155 + ] + } + } + }, + { + "id": 158, + "type": { + "def": { + "tuple": [ + 155, + 159 + ] + } + } + }, + { + "id": 159, + "type": { + "def": { + "compact": { + "type": 160 + } + } + } + }, + { + "id": 160, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "def": { + "composite": { + "fields": [ + { + "type": 93, + "typeName": "u16" + } + ] + } + } + } + }, + { + "id": 161, + "type": { + "def": { + "sequence": { + "type": 162 + } + } + } + }, + { + "id": 162, + "type": { + "def": { + "tuple": [ + 138, + 163, + 155 + ] + } + } + }, + { + "id": 163, + "type": { + "def": { + "array": { + "len": 2, + "type": 158 + } + } + } + }, + { + "id": 164, + "type": { + "def": { + "sequence": { + "type": 165 + } + } + } + }, + { + "id": 165, + "type": { + "def": { + "tuple": [ + 138, + 166, + 155 + ] + } + } + }, + { + "id": 166, + "type": { + "def": { + "array": { + "len": 3, + "type": 158 + } + } + } + }, + { + "id": 167, + "type": { + "def": { + "sequence": { + "type": 168 + } + } + } + }, + { + "id": 168, + "type": { + "def": { + "tuple": [ + 138, + 169, + 155 + ] + } + } + }, + { + "id": 169, + "type": { + "def": { + "array": { + "len": 4, + "type": 158 + } + } + } + }, + { + "id": 170, + "type": { + "def": { + "sequence": { + "type": 171 + } + } + } + }, + { + "id": 171, + "type": { + "def": { + "tuple": [ + 138, + 172, + 155 + ] + } + } + }, + { + "id": 172, + "type": { + "def": { + "array": { + "len": 5, + "type": 158 + } + } + } + }, + { + "id": 173, + "type": { + "def": { + "sequence": { + "type": 174 + } + } + } + }, + { + "id": 174, + "type": { + "def": { + "tuple": [ + 138, + 175, + 155 + ] + } + } + }, + { + "id": 175, + "type": { + "def": { + "array": { + "len": 6, + "type": 158 + } + } + } + }, + { + "id": 176, + "type": { + "def": { + "sequence": { + "type": 177 + } + } + } + }, + { + "id": 177, + "type": { + "def": { + "tuple": [ + 138, + 178, + 155 + ] + } + } + }, + { + "id": 178, + "type": { + "def": { + "array": { + "len": 7, + "type": 158 + } + } + } + }, + { + "id": 179, + "type": { + "def": { + "sequence": { + "type": 180 + } + } + } + }, + { + "id": 180, + "type": { + "def": { + "tuple": [ + 138, + 181, + 155 + ] + } + } + }, + { + "id": 181, + "type": { + "def": { + "array": { + "len": 8, + "type": 158 + } + } + } + }, + { + "id": 182, + "type": { + "def": { + "sequence": { + "type": 183 + } + } + } + }, + { + "id": 183, + "type": { + "def": { + "tuple": [ + 138, + 184, + 155 + ] + } + } + }, + { + "id": 184, + "type": { + "def": { + "array": { + "len": 9, + "type": 158 + } + } + } + }, + { + "id": 185, + "type": { + "def": { + "sequence": { + "type": 186 + } + } + } + }, + { + "id": 186, + "type": { + "def": { + "tuple": [ + 138, + 187, + 155 + ] + } + } + }, + { + "id": 187, + "type": { + "def": { + "array": { + "len": 10, + "type": 158 + } + } + } + }, + { + "id": 188, + "type": { + "def": { + "sequence": { + "type": 189 + } + } + } + }, + { + "id": 189, + "type": { + "def": { + "tuple": [ + 138, + 190, + 155 + ] + } + } + }, + { + "id": 190, + "type": { + "def": { + "array": { + "len": 11, + "type": 158 + } + } + } + }, + { + "id": 191, + "type": { + "def": { + "sequence": { + "type": 192 + } + } + } + }, + { + "id": 192, + "type": { + "def": { + "tuple": [ + 138, + 193, + 155 + ] + } + } + }, + { + "id": 193, + "type": { + "def": { + "array": { + "len": 12, + "type": 158 + } + } + } + }, + { + "id": 194, + "type": { + "def": { + "sequence": { + "type": 195 + } + } + } + }, + { + "id": 195, + "type": { + "def": { + "tuple": [ + 138, + 196, + 155 + ] + } + } + }, + { + "id": 196, + "type": { + "def": { + "array": { + "len": 13, + "type": 158 + } + } + } + }, + { + "id": 197, + "type": { + "def": { + "sequence": { + "type": 198 + } + } + } + }, + { + "id": 198, + "type": { + "def": { + "tuple": [ + 138, + 199, + 155 + ] + } + } + }, + { + "id": 199, + "type": { + "def": { + "array": { + "len": 14, + "type": 158 + } + } + } + }, + { + "id": 200, + "type": { + "def": { + "sequence": { + "type": 201 + } + } + } + }, + { + "id": 201, + "type": { + "def": { + "tuple": [ + 138, + 202, + 155 + ] + } + } + }, + { + "id": 202, + "type": { + "def": { + "array": { + "len": 15, + "type": 158 + } + } + } + }, + { + "id": 203, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 138, + "typeName": "u32" + }, + { + "name": "targets", + "type": 138, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 204, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 42 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 42 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 205, + "type": { + "def": { + "sequence": { + "type": 206 + } + } + } + }, + { + "id": 206, + "type": { + "def": { + "tuple": [ + 0, + 207 + ] + } + } + }, + { + "id": 207, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance" + }, + { + "name": "voters", + "type": 59, + "typeName": "Vec<(AccountId, ExtendedBalance)>" + } + ] + } + } + } + }, + { + "id": 208, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "controller", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "payee", + "type": 209, + "typeName": "RewardDestination" + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ and gets removed as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do", + "whatever it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 47, + "typeName": "ValidatorPrefs" + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 210, + "typeName": "Vec>" + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 209, + "typeName": "RewardDestination" + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [ + { + "name": "controller", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 8, + "docs": [ + "(Re-)set the controller of a stash.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 138, + "typeName": "u32" + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 138, + "typeName": "u32" + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators upto maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 211, + "typeName": "Percent" + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor upto maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 83, + "typeName": "Vec" + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_new_era_always", + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "slash_indices", + "type": 105, + "typeName": "Vec" + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 18, + "docs": [ + "Pay out all the stakers behind a single validator for a single era.", + "", + "- `validator_stash` is the stash account of the validator. Their nominators, up to", + " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "## Complexity", + "- At most O(MaxNominatorRewardedPerValidator)." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 210, + "typeName": "Vec>" + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 212, + "typeName": "ConfigOp>" + }, + { + "name": "min_validator_bond", + "type": 212, + "typeName": "ConfigOp>" + }, + { + "name": "max_nominator_count", + "type": 213, + "typeName": "ConfigOp" + }, + { + "name": "max_validator_count", + "type": 213, + "typeName": "ConfigOp" + }, + { + "name": "chill_threshold", + "type": 214, + "typeName": "ConfigOp" + }, + { + "name": "min_commission", + "type": 215, + "typeName": "ConfigOp" + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 209, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "index": 0 + }, + { + "name": "Stash", + "index": 1 + }, + { + "name": "Controller", + "index": 2 + }, + { + "name": "Account", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 3 + }, + { + "name": "None", + "index": 4 + } + ] + } + } + } + }, + { + "id": 210, + "type": { + "def": { + "sequence": { + "type": 147 + } + } + } + }, + { + "id": 211, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ] + } + } + } + }, + { + "id": 212, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 6, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 213, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 4, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 214, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 211 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 211, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 215, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 46 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 46, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 216, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 217, + "typeName": "T::Keys" + }, + { + "name": "proof", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 217, + "type": { + "path": [ + "kitchensink_runtime", + "SessionKeys" + ], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 65, + "typeName": "::Public" + }, + { + "name": "babe", + "type": 139, + "typeName": "::Public" + }, + { + "name": "im_online", + "type": 71, + "typeName": "::Public" + }, + { + "name": "authority_discovery", + "type": 218, + "typeName": "::Public" + } + ] + } + } + } + }, + { + "id": 218, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 72, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 219, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Propose a sensitive action to be taken.", + "", + "The dispatch origin of this call must be _Signed_ and the sender must", + "have funds to cover the deposit.", + "", + "- `proposal_hash`: The hash of the proposal preimage.", + "- `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + "Emits `Proposed`." + ] + }, + { + "name": "second", + "fields": [ + { + "name": "proposal", + "type": 138, + "typeName": "PropIndex" + } + ], + "index": 1, + "docs": [ + "Signals agreement with a particular proposal.", + "", + "The dispatch origin of this call must be _Signed_ and the sender", + "must have funds to cover the deposit, equal to the original deposit.", + "", + "- `proposal`: The index of the proposal to second." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "ref_index", + "type": 138, + "typeName": "ReferendumIndex" + }, + { + "name": "vote", + "type": 53, + "typeName": "AccountVote>" + } + ], + "index": 2, + "docs": [ + "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `ref_index`: The index of the referendum to vote for.", + "- `vote`: The vote configuration." + ] + }, + { + "name": "emergency_cancel", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + "referendum.", + "", + "The dispatch origin of this call must be `CancellationOrigin`.", + "", + "-`ref_index`: The index of the referendum to cancel.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "fields": [ + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + } + ], + "index": 4, + "docs": [ + "Schedule a referendum to be tabled once it is legal to schedule an external", + "referendum.", + "", + "The dispatch origin of this call must be `ExternalOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal." + ] + }, + { + "name": "external_propose_majority", + "fields": [ + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + } + ], + "index": 5, + "docs": [ + "Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + "an external referendum.", + "", + "The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "fields": [ + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + } + ], + "index": 6, + "docs": [ + "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + "schedule an external referendum.", + "", + "The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + }, + { + "name": "voting_period", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 7, + "docs": [ + "Schedule the currently externally-proposed majority-carries referendum to be tabled", + "immediately. If there is no externally-proposed referendum currently, or if there is one", + "but it is not a majority-carries referendum then it fails.", + "", + "The dispatch of this call must be `FastTrackOrigin`.", + "", + "- `proposal_hash`: The hash of the current external proposal.", + "- `voting_period`: The period that is allowed for voting on this proposal. Increased to", + "\tMust be always greater than zero.", + "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`.", + "- `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + "Emits `Started`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + } + ], + "index": 8, + "docs": [ + "Veto and blacklist the external proposal hash.", + "", + "The dispatch origin of this call must be `VetoOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + "Emits `Vetoed`.", + "", + "Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "fields": [ + { + "name": "ref_index", + "type": 138, + "typeName": "ReferendumIndex" + } + ], + "index": 9, + "docs": [ + "Remove a referendum.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "- `ref_index`: The index of the referendum to cancel.", + "", + "# Weight: `O(1)`." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "to", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "conviction", + "type": 220, + "typeName": "Conviction" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 10, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "index": 11, + "docs": [ + "Undelegate the voting power of the sending account.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "index": 12, + "docs": [ + "Clears all public proposals.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Unlock tokens that have an expired lock.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 14, + "docs": [ + "Remove a vote for a referendum.", + "", + "If:", + "- the referendum was cancelled, or", + "- the referendum is ongoing, or", + "- the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the referendum has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for referendum `index`.", + "", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 15, + "docs": [ + "Remove a vote for a referendum.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the referendum was cancelled, because the voter lost the referendum or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "blacklist", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + }, + { + "name": "maybe_ref_index", + "type": 37, + "typeName": "Option" + } + ], + "index": 16, + "docs": [ + "Permanently place a proposal into the blacklist. This prevents it from ever being", + "proposed again.", + "", + "If called on a queued public or external proposal, then this will result in it being", + "removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + "then it will be cancelled.", + "", + "The dispatch origin of this call must be `BlacklistOrigin`.", + "", + "- `proposal_hash`: The proposal hash to blacklist permanently.", + "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + "cancelled.", + "", + "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "fields": [ + { + "name": "prop_index", + "type": 138, + "typeName": "PropIndex" + } + ], + "index": 17, + "docs": [ + "Remove a proposal.", + "", + "The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + "- `prop_index`: The index of the proposal to cancel.", + "", + "Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "owner", + "type": 55, + "typeName": "MetadataOwner" + }, + { + "name": "maybe_hash", + "type": 221, + "typeName": "Option" + } + ], + "index": 18, + "docs": [ + "Set or clear a metadata of a proposal or a referendum.", + "", + "Parameters:", + "- `origin`: Must correspond to the `MetadataOwner`.", + " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`", + " threshold.", + " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`", + " threshold.", + " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`", + " threshold.", + " - `Signed` by a creator for a public proposal.", + " - `Signed` to clear a metadata for a finished referendum.", + " - `Root` to set a metadata for an ongoing referendum.", + "- `owner`: an identifier of a metadata owner.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 220, + "type": { + "path": [ + "pallet_democracy", + "conviction", + "Conviction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Locked1x", + "index": 1 + }, + { + "name": "Locked2x", + "index": 2 + }, + { + "name": "Locked3x", + "index": 3 + }, + { + "name": "Locked4x", + "index": 4 + }, + { + "name": "Locked5x", + "index": 5 + }, + { + "name": "Locked6x", + "index": 6 + } + ] + } + } + } + }, + { + "id": 221, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 11 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 11 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 222, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 83, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 40, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 138, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 8, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 223, + "type": { + "def": { + "compact": { + "type": 224 + } + } + } + }, + { + "id": 224, + "type": { + "path": [ + "sp_weights", + "OldWeight" + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 225, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 83, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 40, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 138, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 8, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 226, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "votes", + "type": 83, + "typeName": "Vec" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Vote for a set of candidates for the upcoming round of election. This can be called to", + "set the initial votes, or update already existing votes.", + "", + "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + "reserved. The deposit is based on the number of votes and can be updated over time.", + "", + "The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + "If `value` is more than `who`'s free balance, then the maximum of the two is used.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "It is the responsibility of the caller to **NOT** place all of their balance into the", + "lock and keep some for further operations." + ] + }, + { + "name": "remove_voter", + "index": 1, + "docs": [ + "Remove `origin` as a voter.", + "", + "This removes the lock and returns the deposit.", + "", + "The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "fields": [ + { + "name": "candidate_count", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + "All candidates are wiped at the end of the term. They either become a member/runner-up,", + "or leave the system while their deposit is slashed.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + "to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + "The number of current candidates must be provided as witness data.", + "## Complexity", + "O(C + log(C)) where C is candidate_count." + ] + }, + { + "name": "renounce_candidacy", + "fields": [ + { + "name": "renouncing", + "type": 227, + "typeName": "Renouncing" + } + ], + "index": 3, + "docs": [ + "Renounce one's intention to be a candidate for the next election round. 3 potential", + "outcomes exist:", + "", + "- `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + "- `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + "The dispatch origin of this call must be signed, and have one of the above roles.", + "The type of renouncing must be provided as witness data.", + "", + "## Complexity", + " - Renouncing::Candidate(count): O(count + log(count))", + " - Renouncing::Member: O(1)", + " - Renouncing::RunnerUp: O(1)" + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "slash_bond", + "type": 41, + "typeName": "bool" + }, + { + "name": "rerun_election", + "type": 41, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Remove a particular member from the set. This is effective immediately and the bond of", + "the outgoing member is slashed.", + "", + "If a runner-up is available, then the best runner-up will be removed and replaces the", + "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is", + "started, else, nothing happens.", + "", + "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,", + "it is returned.", + "", + "The dispatch origin of this call must be root.", + "", + "Note that this does not affect the designated block number of the next election.", + "", + "## Complexity", + "- Check details of remove_and_replace_member() and do_phragmen()." + ] + }, + { + "name": "clean_defunct_voters", + "fields": [ + { + "name": "num_voters", + "type": 4, + "typeName": "u32" + }, + { + "name": "num_defunct", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + "deposit of the removed voters are returned.", + "", + "This is an root function to be used only for cleaning the state.", + "", + "The dispatch origin of this call must be root.", + "", + "## Complexity", + "- Check is_defunct_voter() details." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 227, + "type": { + "path": [ + "pallet_elections_phragmen", + "Renouncing" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Member", + "index": 0 + }, + { + "name": "RunnerUp", + "index": 1 + }, + { + "name": "Candidate", + "fields": [ + { + "type": 138, + "typeName": "u32" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 228, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Add a member `who` to the set.", + "", + "May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Remove a member `who` from the set.", + "", + "May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "fields": [ + { + "name": "remove", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "add", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Swap out one member `remove` for another `add`.", + "", + "May only be called from `T::SwapOrigin`.", + "", + "Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "fields": [ + { + "name": "members", + "type": 83, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Change the membership to a new set, disregarding the existing membership. Be nice and", + "pass `members` pre-sorted.", + "", + "May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "fields": [ + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Swap out the sending member for some other key `new`.", + "", + "May only be called from `Signed` origin of a current member.", + "", + "Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Set the prime member. Must be a current member.", + "", + "May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "index": 6, + "docs": [ + "Remove the prime member if it exists.", + "", + "May only be called from `T::PrimeOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 229, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 230, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 141, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 230, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 141, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 230, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 11 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 10, + "typeName": "SetId" + }, + { + "name": "equivocation", + "type": 231, + "typeName": "Equivocation" + } + ] + } + } + } + }, + { + "id": 231, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 11 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "type": 232, + "typeName": "grandpa::Equivocation,\nAuthoritySignature>" + } + ], + "index": 0 + }, + { + "name": "Precommit", + "fields": [ + { + "type": 238, + "typeName": "grandpa::Equivocation,\nAuthoritySignature>" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 232, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 65 + }, + { + "name": "V", + "type": 233 + }, + { + "name": "S", + "type": 234 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 10, + "typeName": "u64" + }, + { + "name": "identity", + "type": 65, + "typeName": "Id" + }, + { + "name": "first", + "type": 237, + "typeName": "(V, S)" + }, + { + "name": "second", + "type": 237, + "typeName": "(V, S)" + } + ] + } + } + } + }, + { + "id": 233, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 11 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 11, + "typeName": "H" + }, + { + "name": "target_number", + "type": 4, + "typeName": "N" + } + ] + } + } + } + }, + { + "id": 234, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 235, + "typeName": "ed25519::Signature" + } + ] + } + } + } + }, + { + "id": 235, + "type": { + "path": [ + "sp_core", + "ed25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 236, + "typeName": "[u8; 64]" + } + ] + } + } + } + }, + { + "id": 236, + "type": { + "def": { + "array": { + "len": 64, + "type": 2 + } + } + } + }, + { + "id": 237, + "type": { + "def": { + "tuple": [ + 233, + 234 + ] + } + } + }, + { + "id": 238, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 65 + }, + { + "name": "V", + "type": 239 + }, + { + "name": "S", + "type": 234 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 10, + "typeName": "u64" + }, + { + "name": "identity", + "type": 65, + "typeName": "Id" + }, + { + "name": "first", + "type": 240, + "typeName": "(V, S)" + }, + { + "name": "second", + "type": 240, + "typeName": "(V, S)" + } + ] + } + } + } + }, + { + "id": 239, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 11 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 11, + "typeName": "H" + }, + { + "name": "target_number", + "type": 4, + "typeName": "N" + } + ] + } + } + } + }, + { + "id": 240, + "type": { + "def": { + "tuple": [ + 239, + 234 + ] + } + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_spend", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Put forward a suggestion for spending. A deposit proportional to the value", + "is reserved and slashed if the proposal is rejected. It is returned once the", + "proposal is awarded.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "reject_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 138, + "typeName": "ProposalIndex" + } + ], + "index": 1, + "docs": [ + "Reject a proposed spend. The original deposit will be slashed.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "approve_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 138, + "typeName": "ProposalIndex" + } + ], + "index": 2, + "docs": [ + "Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + "and the original deposit will be returned.", + "", + "May only be called from `T::ApproveOrigin`.", + "", + "## Complexity", + " - O(1)." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "- `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 138, + "typeName": "ProposalIndex" + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "The original deposit will no longer be returned.", + "", + "May only be called from `T::RejectOrigin`.", + "- `proposal_id`: The index of a proposal", + "", + "## Complexity", + "- O(A) where `A` is the number of approvals", + "", + "Errors:", + "- `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,", + "i.e., the proposal has not been approved. This could also mean the proposal does not", + "exist altogether, thus there is no way it would have been approved in the first place." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 242, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "call_old_weight", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Deprecated version if [`Self::call`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_with_code_old_weight", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code", + "type": 12, + "typeName": "Vec" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 12, + "typeName": "Vec" + } + ], + "index": 1, + "docs": [ + "Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_old_weight", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 12, + "typeName": "Vec" + } + ], + "index": 2, + "docs": [ + "Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "Vec" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "determinism", + "type": 244, + "typeName": "Determinism" + } + ], + "index": 3, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the instrumented size of the the supplied `code`.", + "", + "If the code already exists in storage it will still return `Ok` and upgrades", + "the in storage version to the current", + "[`InstructionWeights::version`](InstructionWeights).", + "", + "- `determinism`: If this is set to any other value but [`Determinism::Deterministic`]", + " then the only way to use this code is to delegate call into it from an offchain", + " execution. Set to [`Determinism::Deterministic`] if in doubt.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`]." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + } + ], + "index": 4, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + } + ], + "index": 5, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 8, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 8, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code", + "type": 12, + "typeName": "Vec" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 12, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. See [`Pallet::contract_address`].", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is instrumented, deployed, and a `code_hash` is created for that", + " code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 8, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 12, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Instantiates a contract from a previously deployed wasm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + "must be supplied." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 243, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 76 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 76 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 244, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "Determinism" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deterministic", + "index": 0 + }, + { + "name": "AllowIndeterminism", + "index": 1 + } + ] + } + } + } + }, + { + "id": 245, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "sudo", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "sudo_unchecked_weight", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "weight", + "type": 8, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "This function does not check the weight of the call, and instead allows the", + "Sudo user to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "set_key", + "fields": [ + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo", + "key.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "sudo_as", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Signed` origin from", + "a given account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 246, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "heartbeat", + "fields": [ + { + "name": "heartbeat", + "type": 247, + "typeName": "Heartbeat" + }, + { + "name": "signature", + "type": 252, + "typeName": "::Signature" + } + ], + "index": 0, + "docs": [ + "## Complexity:", + "- `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is length of", + " `heartbeat.network_state.external_address`", + " - `O(K)`: decoding of length `K`", + " - `O(E)`: decoding/encoding of length `E`" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 247, + "type": { + "path": [ + "pallet_im_online", + "Heartbeat" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "network_state", + "type": 248, + "typeName": "OpaqueNetworkState" + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex" + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthIndex" + }, + { + "name": "validators_len", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 248, + "type": { + "path": [ + "sp_core", + "offchain", + "OpaqueNetworkState" + ], + "def": { + "composite": { + "fields": [ + { + "name": "peer_id", + "type": 249, + "typeName": "OpaquePeerId" + }, + { + "name": "external_addresses", + "type": 250, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 249, + "type": { + "path": [ + "sp_core", + "OpaquePeerId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 250, + "type": { + "def": { + "sequence": { + "type": 251 + } + } + } + }, + { + "id": 251, + "type": { + "path": [ + "sp_core", + "offchain", + "OpaqueMultiaddr" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 252, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 253, + "typeName": "sr25519::Signature" + } + ] + } + } + } + }, + { + "id": 253, + "type": { + "path": [ + "sp_core", + "sr25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 236, + "typeName": "[u8; 64]" + } + ] + } + } + } + }, + { + "id": 254, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_registrar", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Add a registrar to the system.", + "", + "The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + "- `account`: the account of the registrar.", + "", + "Emits `RegistrarAdded` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` registrar-count (governance-bounded and code-bounded)." + ] + }, + { + "name": "set_identity", + "fields": [ + { + "name": "info", + "type": 255, + "typeName": "Box>" + } + ], + "index": 1, + "docs": [ + "Set an account's identity information and reserve the appropriate deposit.", + "", + "If the account already has identity information, the deposit is taken as part payment", + "for the new deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `info`: The identity information.", + "", + "Emits `IdentitySet` if successful.", + "", + "## Complexity", + "- `O(X + X' + R)`", + " - where `X` additional-field-count (deposit-bounded and code-bounded)", + " - where `R` judgements-count (registrar-count-bounded)" + ] + }, + { + "name": "set_subs", + "fields": [ + { + "name": "subs", + "type": 290, + "typeName": "Vec<(T::AccountId, Data)>" + } + ], + "index": 2, + "docs": [ + "Set the sub-accounts of the sender.", + "", + "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + "and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "- `subs`: The identity's (new) sub-accounts.", + "", + "## Complexity", + "- `O(P + S)`", + " - where `P` old-subs-count (hard- and deposit-bounded).", + " - where `S` subs-count (hard- and deposit-bounded)." + ] + }, + { + "name": "clear_identity", + "index": 3, + "docs": [ + "Clear an account's identity info and all sub-accounts and return all deposits.", + "", + "Payment: All reserved balances on the account are returned.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "Emits `IdentityCleared` if successful.", + "", + "## Complexity", + "- `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "request_judgement", + "fields": [ + { + "name": "reg_index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "max_fee", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "Request a judgement from a registrar.", + "", + "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + "given.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is requested.", + "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + "```nocompile", + "Self::registrars().get(reg_index).unwrap().fee", + "```", + "", + "Emits `JudgementRequested` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "cancel_request", + "fields": [ + { + "name": "reg_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 5, + "docs": [ + "Cancel a previous request.", + "", + "Payment: A previously reserved deposit is returned on success.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + "Emits `JudgementUnrequested` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "set_fee", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "fee", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "Set the fee required for a judgement to be requested from a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fee`: the new fee.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "set_account_id", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 7, + "docs": [ + "Change the account associated with a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `new`: the new account ID.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "set_fields", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "fields", + "type": 292, + "typeName": "IdentityFields" + } + ], + "index": 8, + "docs": [ + "Set the field information for a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fields`: the fields that the registrar concerns themselves with.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "provide_judgement", + "fields": [ + { + "name": "reg_index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "judgement", + "type": 294, + "typeName": "Judgement>" + }, + { + "name": "identity", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 9, + "docs": [ + "Provide a judgement for an account's identity.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `reg_index`.", + "", + "- `reg_index`: the index of the registrar whose judgement is being made.", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "- `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "- `identity`: The hash of the [`IdentityInfo`] for that the judgement is provided.", + "", + "Emits `JudgementGiven` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "kill_identity", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 10, + "docs": [ + "Remove an account's identity and sub-account information and slash the deposits.", + "", + "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + "`Slash`. Verification request deposits are not returned; they should be cancelled", + "manually using `cancel_request`.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`.", + "", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + "Emits `IdentityKilled` if successful.", + "", + "## Complexity", + "- `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "add_sub", + "fields": [ + { + "name": "sub", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "data", + "type": 258, + "typeName": "Data" + } + ], + "index": 11, + "docs": [ + "Add the given account to the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "fields": [ + { + "name": "sub", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "data", + "type": 258, + "typeName": "Data" + } + ], + "index": 12, + "docs": [ + "Alter the associated name of the given sub-account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "fields": [ + { + "name": "sub", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Remove the given account from the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "index": 14, + "docs": [ + "Remove the sender as a sub-account.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender (*not* the original depositor).", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "super-identity.", + "", + "NOTE: This should not normally be used, but is provided in the case that the non-", + "controller of an account is maliciously registered as a sub-account." + ] + } + ] + } + }, + "docs": [ + "Identity pallet declaration." + ] + } + }, + { + "id": 255, + "type": { + "path": [ + "pallet_identity", + "types", + "IdentityInfo" + ], + "params": [ + { + "name": "FieldLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "additional", + "type": 256, + "typeName": "BoundedVec<(Data, Data), FieldLimit>" + }, + { + "name": "display", + "type": 258, + "typeName": "Data" + }, + { + "name": "legal", + "type": 258, + "typeName": "Data" + }, + { + "name": "web", + "type": 258, + "typeName": "Data" + }, + { + "name": "riot", + "type": 258, + "typeName": "Data" + }, + { + "name": "email", + "type": 258, + "typeName": "Data" + }, + { + "name": "pgp_fingerprint", + "type": 289, + "typeName": "Option<[u8; 20]>" + }, + { + "name": "image", + "type": 258, + "typeName": "Data" + }, + { + "name": "twitter", + "type": 258, + "typeName": "Data" + } + ] + } + } + } + }, + { + "id": 256, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 257 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 288, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 257, + "type": { + "def": { + "tuple": [ + 258, + 258 + ] + } + } + }, + { + "id": 258, + "type": { + "path": [ + "pallet_identity", + "types", + "Data" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Raw0", + "fields": [ + { + "type": 259 + } + ], + "index": 1 + }, + { + "name": "Raw1", + "fields": [ + { + "type": 260 + } + ], + "index": 2 + }, + { + "name": "Raw2", + "fields": [ + { + "type": 261 + } + ], + "index": 3 + }, + { + "name": "Raw3", + "fields": [ + { + "type": 262 + } + ], + "index": 4 + }, + { + "name": "Raw4", + "fields": [ + { + "type": 16 + } + ], + "index": 5 + }, + { + "name": "Raw5", + "fields": [ + { + "type": 263 + } + ], + "index": 6 + }, + { + "name": "Raw6", + "fields": [ + { + "type": 264 + } + ], + "index": 7 + }, + { + "name": "Raw7", + "fields": [ + { + "type": 265 + } + ], + "index": 8 + }, + { + "name": "Raw8", + "fields": [ + { + "type": 266 + } + ], + "index": 9 + }, + { + "name": "Raw9", + "fields": [ + { + "type": 267 + } + ], + "index": 10 + }, + { + "name": "Raw10", + "fields": [ + { + "type": 268 + } + ], + "index": 11 + }, + { + "name": "Raw11", + "fields": [ + { + "type": 269 + } + ], + "index": 12 + }, + { + "name": "Raw12", + "fields": [ + { + "type": 270 + } + ], + "index": 13 + }, + { + "name": "Raw13", + "fields": [ + { + "type": 271 + } + ], + "index": 14 + }, + { + "name": "Raw14", + "fields": [ + { + "type": 272 + } + ], + "index": 15 + }, + { + "name": "Raw15", + "fields": [ + { + "type": 273 + } + ], + "index": 16 + }, + { + "name": "Raw16", + "fields": [ + { + "type": 80 + } + ], + "index": 17 + }, + { + "name": "Raw17", + "fields": [ + { + "type": 274 + } + ], + "index": 18 + }, + { + "name": "Raw18", + "fields": [ + { + "type": 275 + } + ], + "index": 19 + }, + { + "name": "Raw19", + "fields": [ + { + "type": 276 + } + ], + "index": 20 + }, + { + "name": "Raw20", + "fields": [ + { + "type": 148 + } + ], + "index": 21 + }, + { + "name": "Raw21", + "fields": [ + { + "type": 277 + } + ], + "index": 22 + }, + { + "name": "Raw22", + "fields": [ + { + "type": 278 + } + ], + "index": 23 + }, + { + "name": "Raw23", + "fields": [ + { + "type": 279 + } + ], + "index": 24 + }, + { + "name": "Raw24", + "fields": [ + { + "type": 280 + } + ], + "index": 25 + }, + { + "name": "Raw25", + "fields": [ + { + "type": 281 + } + ], + "index": 26 + }, + { + "name": "Raw26", + "fields": [ + { + "type": 282 + } + ], + "index": 27 + }, + { + "name": "Raw27", + "fields": [ + { + "type": 283 + } + ], + "index": 28 + }, + { + "name": "Raw28", + "fields": [ + { + "type": 284 + } + ], + "index": 29 + }, + { + "name": "Raw29", + "fields": [ + { + "type": 285 + } + ], + "index": 30 + }, + { + "name": "Raw30", + "fields": [ + { + "type": 286 + } + ], + "index": 31 + }, + { + "name": "Raw31", + "fields": [ + { + "type": 287 + } + ], + "index": 32 + }, + { + "name": "Raw32", + "fields": [ + { + "type": 1 + } + ], + "index": 33 + }, + { + "name": "BlakeTwo256", + "fields": [ + { + "type": 1 + } + ], + "index": 34 + }, + { + "name": "Sha256", + "fields": [ + { + "type": 1 + } + ], + "index": 35 + }, + { + "name": "Keccak256", + "fields": [ + { + "type": 1 + } + ], + "index": 36 + }, + { + "name": "ShaThree256", + "fields": [ + { + "type": 1 + } + ], + "index": 37 + } + ] + } + } + } + }, + { + "id": 259, + "type": { + "def": { + "array": { + "len": 0, + "type": 2 + } + } + } + }, + { + "id": 260, + "type": { + "def": { + "array": { + "len": 1, + "type": 2 + } + } + } + }, + { + "id": 261, + "type": { + "def": { + "array": { + "len": 2, + "type": 2 + } + } + } + }, + { + "id": 262, + "type": { + "def": { + "array": { + "len": 3, + "type": 2 + } + } + } + }, + { + "id": 263, + "type": { + "def": { + "array": { + "len": 5, + "type": 2 + } + } + } + }, + { + "id": 264, + "type": { + "def": { + "array": { + "len": 6, + "type": 2 + } + } + } + }, + { + "id": 265, + "type": { + "def": { + "array": { + "len": 7, + "type": 2 + } + } + } + }, + { + "id": 266, + "type": { + "def": { + "array": { + "len": 8, + "type": 2 + } + } + } + }, + { + "id": 267, + "type": { + "def": { + "array": { + "len": 9, + "type": 2 + } + } + } + }, + { + "id": 268, + "type": { + "def": { + "array": { + "len": 10, + "type": 2 + } + } + } + }, + { + "id": 269, + "type": { + "def": { + "array": { + "len": 11, + "type": 2 + } + } + } + }, + { + "id": 270, + "type": { + "def": { + "array": { + "len": 12, + "type": 2 + } + } + } + }, + { + "id": 271, + "type": { + "def": { + "array": { + "len": 13, + "type": 2 + } + } + } + }, + { + "id": 272, + "type": { + "def": { + "array": { + "len": 14, + "type": 2 + } + } + } + }, + { + "id": 273, + "type": { + "def": { + "array": { + "len": 15, + "type": 2 + } + } + } + }, + { + "id": 274, + "type": { + "def": { + "array": { + "len": 17, + "type": 2 + } + } + } + }, + { + "id": 275, + "type": { + "def": { + "array": { + "len": 18, + "type": 2 + } + } + } + }, + { + "id": 276, + "type": { + "def": { + "array": { + "len": 19, + "type": 2 + } + } + } + }, + { + "id": 277, + "type": { + "def": { + "array": { + "len": 21, + "type": 2 + } + } + } + }, + { + "id": 278, + "type": { + "def": { + "array": { + "len": 22, + "type": 2 + } + } + } + }, + { + "id": 279, + "type": { + "def": { + "array": { + "len": 23, + "type": 2 + } + } + } + }, + { + "id": 280, + "type": { + "def": { + "array": { + "len": 24, + "type": 2 + } + } + } + }, + { + "id": 281, + "type": { + "def": { + "array": { + "len": 25, + "type": 2 + } + } + } + }, + { + "id": 282, + "type": { + "def": { + "array": { + "len": 26, + "type": 2 + } + } + } + }, + { + "id": 283, + "type": { + "def": { + "array": { + "len": 27, + "type": 2 + } + } + } + }, + { + "id": 284, + "type": { + "def": { + "array": { + "len": 28, + "type": 2 + } + } + } + }, + { + "id": 285, + "type": { + "def": { + "array": { + "len": 29, + "type": 2 + } + } + } + }, + { + "id": 286, + "type": { + "def": { + "array": { + "len": 30, + "type": 2 + } + } + } + }, + { + "id": 287, + "type": { + "def": { + "array": { + "len": 31, + "type": 2 + } + } + } + }, + { + "id": 288, + "type": { + "def": { + "sequence": { + "type": 257 + } + } + } + }, + { + "id": 289, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 148 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 148 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 290, + "type": { + "def": { + "sequence": { + "type": 291 + } + } + } + }, + { + "id": 291, + "type": { + "def": { + "tuple": [ + 0, + 258 + ] + } + } + }, + { + "id": 292, + "type": { + "path": [ + "pallet_identity", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 293 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "IdentityField" + } + ] + } + } + } + }, + { + "id": 293, + "type": { + "path": [ + "pallet_identity", + "types", + "IdentityField" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Display", + "index": 1 + }, + { + "name": "Legal", + "index": 2 + }, + { + "name": "Web", + "index": 4 + }, + { + "name": "Riot", + "index": 8 + }, + { + "name": "Email", + "index": 16 + }, + { + "name": "PgpFingerprint", + "index": 32 + }, + { + "name": "Image", + "index": 64 + }, + { + "name": "Twitter", + "index": 128 + } + ] + } + } + } + }, + { + "id": 294, + "type": { + "path": [ + "pallet_identity", + "types", + "Judgement" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unknown", + "index": 0 + }, + { + "name": "FeePaid", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + }, + { + "name": "Reasonable", + "index": 2 + }, + { + "name": "KnownGood", + "index": 3 + }, + { + "name": "OutOfDate", + "index": 4 + }, + { + "name": "LowQuality", + "index": 5 + }, + { + "name": "Erroneous", + "index": 6 + } + ] + } + } + } + }, + { + "id": 295, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society.", + "", + "## Complexity", + "- O(M + B + C + logM + logB + X)", + "\t - B (len of bids)", + " - C (len of candidates)", + " - M (len of members)", + " - X (balance reserve)" + ] + }, + { + "name": "unbid", + "fields": [ + { + "name": "pos", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who wants to unbid.", + "", + "## Complexity", + "- O(B + X)", + " - B (len of bids)", + " - X (balance unreserve)" + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout.", + "", + "## Complexity", + "- O(M + B + C + logM + logB + X)", + " - B (len of bids)", + " - C (len of candidates)", + " - M (len of members)", + " - X (balance reserve)" + ] + }, + { + "name": "unvouch", + "fields": [ + { + "name": "pos", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched.", + "", + "## Complexity", + "- O(B)", + " - B (len of bids)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`).", + "", + "## Complexity", + "- O(M + logM + C)", + " - C (len of candidates)", + " - M (len of members)" + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`).", + "", + "## Complexity", + "- O(M + logM)", + " - M (len of members)" + ] + }, + { + "name": "payout", + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining.", + "", + "## Complexity", + "- O(M + logM + P + X)", + " - M (len of members)", + " - P (number of payouts for a particular member)", + " - X (currency transfer call)" + ] + }, + { + "name": "found", + "fields": [ + { + "name": "founder", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32" + }, + { + "name": "rules", + "type": 12, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `rules` - The rules of this society concerning membership.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "unfound", + "index": 8, + "docs": [ + "Annul the founding of the society.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "forgive", + "type": 41, + "typeName": "bool" + } + ], + "index": 9, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member.", + "", + "## Complexity", + "- O(M + logM + B)", + " - B (len of bids)", + " - M (len of members)" + ] + }, + { + "name": "judge_suspended_candidate", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "judgement", + "type": 296, + "typeName": "Judgement" + } + ], + "index": 10, + "docs": [ + "Allow suspended judgement origin to make judgement on a suspended candidate.", + "", + "If the judgement is `Approve`, we add them to society as a member with the appropriate", + "payment for joining society.", + "", + "If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", + "to the society treasury, or we ban the voucher from vouching again.", + "", + "If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", + "through the induction process again.", + "", + "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + "Parameters:", + "- `who` - The suspended candidate to be judged.", + "- `judgement` - `Approve`, `Reject`, or `Rebid`.", + "", + "## Complexity", + "- O(M + logM + B + X)", + " - B (len of bids)", + " - M (len of members)", + " - X (balance action)" + ] + }, + { + "name": "set_max_members", + "fields": [ + { + "name": "max", + "type": 4, + "typeName": "u32" + } + ], + "index": 11, + "docs": [ + "Allows root origin to change the maximum number of members in society.", + "Max membership count must be greater than 1.", + "", + "The dispatch origin for this call must be from _ROOT_.", + "", + "Parameters:", + "- `max` - The maximum number of members for the society.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 296, + "type": { + "path": [ + "pallet_society", + "Judgement" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebid", + "index": 0 + }, + { + "name": "Reject", + "index": 1 + }, + { + "name": "Approve", + "index": 2 + } + ] + } + } + } + }, + { + "id": 297, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "rescuer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set an a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 83, + "typeName": "Vec" + }, + { + "name": "threshold", + "type": 93, + "typeName": "u16" + }, + { + "name": "delay_period", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "rescuer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 298, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "schedule", + "type": 299, + "typeName": "VestingInfo, T::BlockNumber>" + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "schedule", + "type": 299, + "typeName": "VestingInfo, T::BlockNumber>" + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32" + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 299, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance" + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance" + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 300, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName" + }, + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName" + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName" + }, + { + "name": "after", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 301, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 87 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 87 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 302, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "initialize_pallet", + "fields": [ + { + "name": "new_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "witness_count", + "type": 37, + "typeName": "Option" + } + ], + "index": 0, + "docs": [ + "Initializes the pallet by writing into `TrashData`.", + "", + "Only callable by Root. A good default for `trash_count` is `5_000`." + ] + }, + { + "name": "set_compute", + "fields": [ + { + "name": "compute", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 1, + "docs": [ + "Set the `Compute` storage value that determines how much of the", + "block's weight `ref_time` to use during `on_idle`.", + "", + "Only callable by Root." + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "storage", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 2, + "docs": [ + "Set the `Storage` storage value that determines the PoV size usage", + "for each block.", + "", + "Only callable by Root." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 303, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 304, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "force_proxy_type", + "type": 305, + "typeName": "Option" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 93, + "typeName": "u16" + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "index", + "type": 93, + "typeName": "u16" + }, + { + "name": "height", + "type": 138, + "typeName": "T::BlockNumber" + }, + { + "name": "ext_index", + "type": 138, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `pure` to create this account.", + "- `index`: The disambiguation index originally passed to `pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `pure`.", + "- `height`: The height of the chain when the call to `pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "CallHashOf" + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "CallHashOf" + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "CallHashOf" + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "real", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "force_proxy_type", + "type": 305, + "typeName": "Option" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 305, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 92 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 92 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 306, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 83, + "typeName": "Vec" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 93, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 83, + "typeName": "Vec" + }, + { + "name": "maybe_timepoint", + "type": 307, + "typeName": "Option>" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "max_weight", + "type": 8, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 93, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 83, + "typeName": "Vec" + }, + { + "name": "maybe_timepoint", + "type": 307, + "typeName": "Option>" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]" + }, + { + "name": "max_weight", + "type": 8, + "typeName": "Weight" + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 93, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 83, + "typeName": "Vec" + }, + { + "name": "timepoint", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]" + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 307, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 95 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 95 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 308, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "description", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "curator", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "fee", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Assign a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "remark", + "type": 12, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 309, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_awesome", + "fields": [ + { + "name": "reason", + "type": 12, + "typeName": "Vec" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'" + ] + }, + { + "name": "retract_tip", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + "If successful, the original deposit will be unreserved.", + "", + "The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + "must have been reported by the signing account through `report_awesome` (and not", + "through `tip_new`).", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "Emits `TipRetracted` if successful.", + "", + "## Complexity", + "- `O(1)`", + " - Depends on the length of `T::Hash` which is fixed." + ] + }, + { + "name": "tip_new", + "fields": [ + { + "name": "reason", + "type": 12, + "typeName": "Vec" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "tip_value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Give a tip for something new; no finder's fee will be taken.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`" + ] + }, + { + "name": "tip", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "tip_value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "Declare a tip value for an already-open tip.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + "has started.", + "", + "## Complexity", + "- `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert", + " tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`." + ] + }, + { + "name": "close_tip", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 4, + "docs": [ + "Close and payout a tip.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The tip identified by `hash` must have finished its countdown period.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "## Complexity", + "- : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T`", + " is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on", + " the implementation of `T::Tippers`." + ] + }, + { + "name": "slash_tip", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Remove and slash an already-open tip.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "As a result, the finder is slashed and the deposits are lost.", + "", + "Emits `TipSlashed` if successful.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 310, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "is_sufficient", + "type": 41, + "typeName": "bool" + }, + { + "name": "min_balance", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "The asset class must be frozen before calling `start_destroy`." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "source", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers from an account.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "name", + "type": 12, + "typeName": "Vec" + }, + { + "name": "symbol", + "type": 12, + "typeName": "Vec" + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8" + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "name", + "type": 12, + "typeName": "Vec" + }, + { + "name": "symbol", + "type": 12, + "typeName": "Vec" + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_balance", + "type": 76, + "typeName": "T::Balance" + }, + { + "name": "is_sufficient", + "type": 41, + "typeName": "bool" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "destination", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "allow_burn", + "type": 41, + "typeName": "bool" + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for the account to be created.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "Emits `Refunded` event when successful." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 311, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "buy_ticket", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Buy a ticket to enter the lottery.", + "", + "This extrinsic acts as a passthrough function for `call`. In all", + "situations where `call` alone would succeed, this extrinsic should", + "succeed.", + "", + "If `call` is successful, then we will attempt to purchase a ticket,", + "which may fail silently. To detect success of a ticket purchase, you", + "should listen for the `TicketBought` event.", + "", + "This extrinsic must be called by a signed origin." + ] + }, + { + "name": "set_calls", + "fields": [ + { + "name": "calls", + "type": 127, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 1, + "docs": [ + "Set calls in storage which can be used to purchase a lottery ticket.", + "", + "This function only matters if you use the `ValidateCall` implementation", + "provided by this pallet, which uses storage to determine the valid calls.", + "", + "This extrinsic must be called by the Manager origin." + ] + }, + { + "name": "start_lottery", + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "length", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "repeat", + "type": 41, + "typeName": "bool" + } + ], + "index": 2, + "docs": [ + "Start a lottery using the provided configuration.", + "", + "This extrinsic must be called by the `ManagerOrigin`.", + "", + "Parameters:", + "", + "* `price`: The cost of a single ticket.", + "* `length`: How long the lottery should run for starting at the current block.", + "* `delay`: How long after the lottery end we should wait before picking a winner.", + "* `repeat`: If the lottery should repeat when completed." + ] + }, + { + "name": "stop_repeat", + "index": 3, + "docs": [ + "If a lottery is repeating, you can use this to stop the repeat.", + "The lottery will continue to run to completion.", + "", + "This extrinsic must be called by the `ManagerOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 312, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_bid", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Place a bid.", + "", + "Origin must be Signed, and account must have at least `amount` in free balance.", + "", + "- `amount`: The amount of the bid; these funds will be reserved, and if/when", + " consolidated, removed. Must be at least `MinBid`.", + "- `duration`: The number of periods before which the newly consolidated bid may be", + " thawed. Must be greater than 1 and no more than `QueueCount`.", + "", + "Complexities:", + "- `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Retract a previously placed bid.", + "", + "Origin must be Signed, and the account should have previously issued a still-active bid", + "of `amount` for `duration`.", + "", + "- `amount`: The amount of the previous bid.", + "- `duration`: The duration of the previous bid." + ] + }, + { + "name": "fund_deficit", + "index": 2, + "docs": [ + "Ensure we have sufficient funding for all potential payouts.", + "", + "- `origin`: Must be accepted by `FundOrigin`." + ] + }, + { + "name": "thaw_private", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "ReceiptIndex" + }, + { + "name": "maybe_proportion", + "type": 313, + "typeName": "Option" + } + ], + "index": 3, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as", + " well as any fungible counterpart.", + "- `index`: The index of the receipt.", + "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If", + " `None`, then all of it should be." + ] + }, + { + "name": "thaw_communal", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "ReceiptIndex" + } + ], + "index": 4, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart", + " for receipt `index`.", + "- `index`: The index of the receipt." + ] + }, + { + "name": "communify", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "ReceiptIndex" + } + ], + "index": 5, + "docs": [ + "Make a private receipt communal and create fungible counterparts for its owner." + ] + }, + { + "name": "privatize", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "ReceiptIndex" + } + ], + "index": 6, + "docs": [ + "Make a communal receipt private and burn fungible counterparts from its owner." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 313, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 102 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 102 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 314, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `collection`: The identifier of the new collection. This must not be currently in use.", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "free_holding", + "type": 41, + "typeName": "bool" + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `collection`: The identifier of the new item. This must not be currently in use.", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions", + "over this item, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "witness", + "type": 315, + "typeName": "DestroyWitness" + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: The item value of the item to be minted.", + "- `beneficiary`: The initial owner of the minted item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "check_owner", + "type": 316, + "typeName": "Option>" + } + ], + "index": 4, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item of the item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Move an item from the sender account to another.", + "", + "This resets the approved account of the item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item of the item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "items", + "type": 105, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "Reevaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown of the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 7, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be frozen.", + "- `item`: The item of the item to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 8, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be thawed.", + "- `item`: The item of the item to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 9, + "docs": [ + "Disallow further unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "", + "Emits `CollectionFrozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 10, + "docs": [ + "Re-allow unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Admin of the `collection`.", + "", + "- `collection`: The collection to be thawed.", + "", + "Emits `CollectionThawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be", + "either the owner of the `item` or the admin of the collection.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item of the item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "", + "Important NOTE: The `approved` account gets reset after each transfer.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "maybe_check_delegate", + "type": 316, + "typeName": "Option>" + } + ], + "index": 14, + "docs": [ + "Cancel the prior approval for the transfer of an item by a delegate.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the item of whose approval will be cancelled.", + "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_item_status", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "free_holding", + "type": 41, + "typeName": "bool" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 15, + "docs": [ + "Alter the attributes of a given item.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the item.", + "- `owner`: The new Owner of this item.", + "- `issuer`: The new Issuer of this item.", + "- `admin`: The new Admin of this item.", + "- `freezer`: The new Freezer of this item.", + "- `free_holding`: Whether a deposit is taken for holding an item of this collection.", + "- `is_frozen`: Whether this collection is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `ItemStatusChanged` with the identity of the item.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + } + ], + "index": 16, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + } + ], + "index": 17, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 18, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 19, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 20, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 21, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 37, + "typeName": "Option" + } + ], + "index": 22, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 23, + "docs": [ + "Set the maximum amount of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Note: This function can only succeed once per collection.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum amount of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 317, + "typeName": "Option>" + }, + { + "name": "whitelisted_buyer", + "type": 316, + "typeName": "Option>" + } + ], + "index": 24, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice" + } + ], + "index": 25, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 315, + "type": { + "path": [ + "pallet_uniques", + "types", + "DestroyWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 138, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 138, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 138, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 316, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 147 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 147 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 317, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 6 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 318, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "config", + "type": 319, + "typeName": "CollectionConfigFor" + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must be Signed and the sender must have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "config", + "type": 319, + "typeName": "CollectionConfigFor" + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions over this item, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "witness", + "type": 326, + "typeName": "DestroyWitness" + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "mint_to", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "witness_data", + "type": 327, + "typeName": "Option>" + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned", + " item_id from that collection needs to be provided within the witness data object.", + "", + "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "mint_to", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "item_config", + "type": 329, + "typeName": "ItemConfig" + } + ], + "index": 4, + "docs": [ + "Mint an item of a particular collection from a privileged origin.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `item_config`: A config of the new item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "check_owner", + "type": 316, + "typeName": "Option>" + } + ], + "index": 5, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "Move an item from the sender account to another.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "items", + "type": 105, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Re-evaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection of the items to be reevaluated.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown or the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "lock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 8, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become non-transferable.", + "", + "Emits `ItemTransferLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "unlock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 9, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become transferable.", + "", + "Emits `ItemTransferUnlocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "lock_settings", + "type": 320, + "typeName": "CollectionSettings" + } + ], + "index": 10, + "docs": [ + "Disallows specified settings for the whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be locked.", + "- `lock_settings`: The settings to be locked.", + "", + "Note: it's possible to only lock(set) the setting, but not to unset it.", + "Emits `CollectionLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_owner", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `owner`: The new Owner of this collection.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_config", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "config", + "type": 319, + "typeName": "CollectionConfigFor" + } + ], + "index": 14, + "docs": [ + "Change the config of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `config`: The new config of this collection.", + "", + "Emits `CollectionConfigChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "maybe_deadline", + "type": 37, + "typeName": "Option<::BlockNumber>" + } + ], + "index": 15, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the", + "\tnumber of blocks after which the approval will expire", + "", + "Emits `TransferApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 16, + "docs": [ + "Cancel one of the transfer approvals for a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the collection of whose approval will be cancelled.", + "- `delegate`: The account that is going to loose their approval.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_all_transfer_approvals", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 17, + "docs": [ + "Cancel all the approvals of a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approvals will be cleared.", + "- `item`: The item of the collection of whose approvals will be cleared.", + "", + "Emits `AllApprovalsCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_item_properties", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "lock_metadata", + "type": 41, + "typeName": "bool" + }, + { + "name": "lock_attributes", + "type": 41, + "typeName": "bool" + } + ], + "index": 18, + "docs": [ + "Disallows changing the metadata or attributes of the item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "- `collection`: The collection if the `item`.", + "- `item`: An item to be locked.", + "- `lock_metadata`: Specifies whether the metadata should be locked.", + "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace", + " should be locked.", + "", + "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace", + "only. When the metadata or attributes are locked, it won't be possible the unlock them.", + "", + "Emits `ItemPropertiesLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + } + ], + "index": 19, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be Signed and must conform to the namespace ruleset:", + "- `CollectionOwner` namespace could be modified by the `collection` owner only;", + "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`", + " should be set in that case;", + "- `Account(AccountId)` namespace could be modified only when the `origin` was given a", + " permission to do so;", + "", + "The funds of `origin` are reserved according to the formula:", + "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_attribute", + "fields": [ + { + "name": "set_as", + "type": 40, + "typeName": "Option" + }, + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + } + ], + "index": 20, + "docs": [ + "Force-set an attribute for a collection or item.", + "", + "Origin must be `ForceOrigin`.", + "", + "If the attribute already exists and it was set by another account, the deposit", + "will be returned to the previous owner.", + "", + "- `set_as`: An optional owner of the attribute.", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + } + ], + "index": 21, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "attribute.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_item_attributes", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 22, + "docs": [ + "Approve item's attributes to be changed by a delegated third-party account.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: A collection of the item.", + "- `item`: The item that holds attributes.", + "- `delegate`: The account to delegate permission to change attributes of the item.", + "", + "Emits `ItemAttributesApprovalAdded` on success." + ] + }, + { + "name": "cancel_item_attributes_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "witness", + "type": 330, + "typeName": "CancelAttributesApprovalWitness" + } + ], + "index": 23, + "docs": [ + "Cancel the previously provided approval to change item's attributes.", + "All the previously set attributes by the `delegate` will be removed.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: Collection that the item is contained within.", + "- `item`: The item that holds attributes.", + "- `delegate`: The previously approved account to remove.", + "", + "Emits `ItemAttributesApprovalRemoved` on success." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ], + "index": 24, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `ItemMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 25, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `ItemMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ], + "index": 26, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 27, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 37, + "typeName": "Option" + } + ], + "index": 28, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 29, + "docs": [ + "Set the maximum number of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum number of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "update_mint_settings", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "mint_settings", + "type": 322, + "typeName": "MintSettings,::BlockNumber, T::\nCollectionId,>" + } + ], + "index": 30, + "docs": [ + "Update mint settings.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `mint_settings`: The new mint settings.", + "", + "Emits `CollectionMintSettingsUpdated` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 317, + "typeName": "Option>" + }, + { + "name": "whitelisted_buyer", + "type": 316, + "typeName": "Option>" + } + ], + "index": 31, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice" + } + ], + "index": 32, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + }, + { + "name": "pay_tips", + "fields": [ + { + "name": "tips", + "type": 331, + "typeName": "BoundedVec, T::MaxTips>" + } + ], + "index": 33, + "docs": [ + "Allows to pay the tips.", + "", + "Origin must be Signed.", + "", + "- `tips`: Tips array.", + "", + "Emits `TipSent` on every tip transfer." + ] + }, + { + "name": "create_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_desired_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "maybe_price", + "type": 110, + "typeName": "Option>>" + }, + { + "name": "duration", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 34, + "docs": [ + "Register a new atomic swap, declaring an intention to send an `item` in exchange for", + "`desired_item` from origin to target on the current blockchain.", + "The target can execute the swap during the specified `duration` of blocks (if set).", + "Additionally, the price could be set for the desired `item`.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "- `desired_collection`: The collection of the desired item.", + "- `desired_item`: The desired item an owner wants to receive.", + "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.", + "- `duration`: A deadline for the swap. Specified by providing the number of blocks", + "\tafter which the swap will expire.", + "", + "Emits `SwapCreated` on success." + ] + }, + { + "name": "cancel_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 35, + "docs": [ + "Cancel an atomic swap.", + "", + "Origin must be Signed.", + "Origin must be an owner of the `item` if the deadline hasn't expired.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "", + "Emits `SwapCancelled` on success." + ] + }, + { + "name": "claim_swap", + "fields": [ + { + "name": "send_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "send_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "receive_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "receive_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "witness_price", + "type": 110, + "typeName": "Option>>" + } + ], + "index": 36, + "docs": [ + "Claim an atomic swap.", + "This method executes a pending swap, that was created by a counterpart before.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `send_collection`: The collection of the item to be sent.", + "- `send_item`: The item to be sent.", + "- `receive_collection`: The collection of the item to be received.", + "- `receive_item`: The item to be received.", + "- `witness_price`: A price that was previously agreed on.", + "", + "Emits `SwapClaimed` on success." + ] + }, + { + "name": "mint_pre_signed", + "fields": [ + { + "name": "mint_data", + "type": 334, + "typeName": "PreSignedMintOf" + }, + { + "name": "signature", + "type": 335, + "typeName": "T::OffchainSignature" + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 37, + "docs": [ + "Mint an item by providing the pre-signed approval.", + "", + "Origin must be Signed.", + "", + "- `mint_data`: The pre-signed approval that consists of the information about the item,", + " its metadata, attributes, who can mint it (`None` for anyone) and until what block", + " number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an owner of the collection.", + "", + "Emits `Issued` on success.", + "Emits `AttributeSet` if the attributes were provided.", + "Emits `ItemMetadataSet` if the metadata was not empty." + ] + }, + { + "name": "set_attributes_pre_signed", + "fields": [ + { + "name": "data", + "type": 338, + "typeName": "PreSignedAttributesOf" + }, + { + "name": "signature", + "type": 335, + "typeName": "T::OffchainSignature" + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 38, + "docs": [ + "Set attributes for an item by providing the pre-signed approval.", + "", + "Origin must be Signed and must be an owner of the `data.item`.", + "", + "- `data`: The pre-signed approval that consists of the information about the item,", + " attributes to update and until what block number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an owner of the collection for the", + " `CollectionOwner` namespace.", + "", + "Emits `AttributeSet` for each provided attribute.", + "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.", + "Emits `PreSignedAttributesSet` on success." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 319, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionConfig" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 320, + "typeName": "CollectionSettings" + }, + { + "name": "max_supply", + "type": 37, + "typeName": "Option" + }, + { + "name": "mint_settings", + "type": 322, + "typeName": "MintSettings" + } + ] + } + } + } + }, + { + "id": 320, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 321 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "CollectionSetting" + } + ] + } + } + } + }, + { + "id": 321, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionSetting" + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransferableItems", + "index": 1 + }, + { + "name": "UnlockedMetadata", + "index": 2 + }, + { + "name": "UnlockedAttributes", + "index": 4 + }, + { + "name": "UnlockedMaxSupply", + "index": 8 + }, + { + "name": "DepositRequired", + "index": 16 + } + ] + } + } + } + }, + { + "id": 322, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintSettings" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mint_type", + "type": 323, + "typeName": "MintType" + }, + { + "name": "price", + "type": 317, + "typeName": "Option" + }, + { + "name": "start_block", + "type": 37, + "typeName": "Option" + }, + { + "name": "end_block", + "type": 37, + "typeName": "Option" + }, + { + "name": "default_item_settings", + "type": 324, + "typeName": "ItemSettings" + } + ] + } + } + } + }, + { + "id": 323, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintType" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "index": 0 + }, + { + "name": "Public", + "index": 1 + }, + { + "name": "HolderOf", + "fields": [ + { + "type": 4, + "typeName": "CollectionId" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 324, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 325 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "ItemSetting" + } + ] + } + } + } + }, + { + "id": 325, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemSetting" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Transferable", + "index": 1 + }, + { + "name": "UnlockedMetadata", + "index": 2 + }, + { + "name": "UnlockedAttributes", + "index": 4 + } + ] + } + } + } + }, + { + "id": 326, + "type": { + "path": [ + "pallet_nfts", + "types", + "DestroyWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 138, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 138, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 138, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 327, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 328 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 328 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 328, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintWitness" + ], + "params": [ + { + "name": "ItemId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner_of_item", + "type": 4, + "typeName": "ItemId" + } + ] + } + } + } + }, + { + "id": 329, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemConfig" + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 324, + "typeName": "ItemSettings" + } + ] + } + } + } + }, + { + "id": 330, + "type": { + "path": [ + "pallet_nfts", + "types", + "CancelAttributesApprovalWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_attributes", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 331, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 332 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 333, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 332, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemTip" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "receiver", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "Amount" + } + ] + } + } + } + }, + { + "id": 333, + "type": { + "def": { + "sequence": { + "type": 332 + } + } + } + }, + { + "id": 334, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedMint" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "attributes", + "type": 123, + "typeName": "Vec<(Vec, Vec)>" + }, + { + "name": "metadata", + "type": 12, + "typeName": "Vec" + }, + { + "name": "only_account", + "type": 40, + "typeName": "Option" + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline" + } + ] + } + } + } + }, + { + "id": 335, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "type": 235, + "typeName": "ed25519::Signature" + } + ], + "index": 0 + }, + { + "name": "Sr25519", + "fields": [ + { + "type": 253, + "typeName": "sr25519::Signature" + } + ], + "index": 1 + }, + { + "name": "Ecdsa", + "fields": [ + { + "type": 336, + "typeName": "ecdsa::Signature" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 336, + "type": { + "path": [ + "sp_core", + "ecdsa", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 337, + "typeName": "[u8; 65]" + } + ] + } + } + } + }, + { + "id": 337, + "type": { + "def": { + "array": { + "len": 65, + "type": 2 + } + } + } + }, + { + "id": 338, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "attributes", + "type": 123, + "typeName": "Vec<(Vec, Vec)>" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline" + } + ] + } + } + } + }, + { + "id": 339, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "data", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Index and store data off chain. Minimum data size is 1 bytes, maximum is", + "`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`", + "is called.", + "## Complexity", + "- O(n*log(n)) of data size, as all data is pushed to an in-memory trie." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Renew previously stored data. Parameters are the block number that contains", + "previous `store` or `renew` call and transaction index within that block.", + "Transaction index is emitted in the `Stored` or `Renewed` event.", + "Applies same fees as `store`.", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "check_proof", + "fields": [ + { + "name": "proof", + "type": 340, + "typeName": "TransactionStorageProof" + } + ], + "index": 2, + "docs": [ + "Check storage proof for block number `block_number() - StoragePeriod`.", + "If such block does not exist the proof is expected to be `None`.", + "## Complexity", + "- Linear w.r.t the number of indexed transactions in the proved block for random", + " probing.", + "There's a DB read for each transaction." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 340, + "type": { + "path": [ + "sp_transaction_storage_proof", + "TransactionStorageProof" + ], + "def": { + "composite": { + "fields": [ + { + "name": "chunk", + "type": 12, + "typeName": "Vec" + }, + { + "name": "proof", + "type": 125, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 341, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`.", + "", + "Only works if", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 342, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 343, + "typeName": "Option" + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 344, + "typeName": "MigrationLimits" + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32" + }, + { + "name": "witness_task", + "type": 345, + "typeName": "MigrationTask" + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 125, + "typeName": "Vec>" + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 12, + "typeName": "Vec" + }, + { + "name": "child_keys", + "type": 125, + "typeName": "Vec>" + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 344, + "typeName": "MigrationLimits" + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 346, + "typeName": "ProgressOf" + }, + { + "name": "progress_child", + "type": 346, + "typeName": "ProgressOf" + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a parachain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 343, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 344 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 344 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 344, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32" + }, + { + "name": "item", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 345, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 346, + "typeName": "ProgressOf" + }, + { + "name": "progress_child", + "type": 346, + "typeName": "ProgressOf" + }, + { + "name": "size", + "type": 4, + "typeName": "u32" + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32" + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 346, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "index": 0 + }, + { + "name": "LastKey", + "fields": [ + { + "type": 347, + "typeName": "BoundedVec" + } + ], + "index": 1 + }, + { + "name": "Complete", + "index": 2 + } + ] + } + } + } + }, + { + "id": 347, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 348, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "description", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "curator", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "fee", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 349, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 128, + "typeName": "Box>" + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + }, + { + "name": "enactment_moment", + "type": 350, + "typeName": "DispatchTime" + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf" + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "maybe_hash", + "type": 221, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 350, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 0 + }, + { + "name": "After", + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 351, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "remark", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Index and store data off chain." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 352, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fill_block", + "fields": [ + { + "name": "ratio", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 0, + "docs": [ + "A dispatch that will fill the block weight up to the given ratio." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 353, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 138, + "typeName": "PollIndexOf" + }, + { + "name": "vote", + "type": 354, + "typeName": "AccountVote>" + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 93, + "typeName": "ClassOf" + }, + { + "name": "to", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "conviction", + "type": 356, + "typeName": "Conviction" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 93, + "typeName": "ClassOf" + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 93, + "typeName": "ClassOf" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 357, + "typeName": "Option>" + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf" + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "class", + "type": 93, + "typeName": "ClassOf" + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf" + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 354, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 355, + "typeName": "Vote" + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance" + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 355, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + } + } + }, + { + "id": 356, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Locked1x", + "index": 1 + }, + { + "name": "Locked2x", + "index": 2 + }, + { + "name": "Locked3x", + "index": 3 + }, + { + "name": "Locked4x", + "index": 4 + }, + { + "name": "Locked5x", + "index": 5 + }, + { + "name": "Locked6x", + "index": 6 + } + ] + } + } + } + }, + { + "id": 357, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 93 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 93 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 358, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + } + ], + "index": 0 + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + } + ], + "index": 1 + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_weight_witness", + "type": 8, + "typeName": "Weight" + } + ], + "index": 2 + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3 + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 359, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 83, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 40, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 138, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 8, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 360, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 138, + "typeName": "u32" + }, + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Add a new proposal to be voted on.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 1, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "init_members", + "fields": [ + { + "name": "fellows", + "type": 83, + "typeName": "Vec" + }, + { + "name": "allies", + "type": 83, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Initialize the Alliance, onboard fellows and allies.", + "", + "The Alliance must be empty, and the call must provide some founding members.", + "", + "Must be called by the Root origin." + ] + }, + { + "name": "disband", + "fields": [ + { + "name": "witness", + "type": 361, + "typeName": "DisbandWitness" + } + ], + "index": 4, + "docs": [ + "Disband the Alliance, remove all active members and unreserve deposits.", + "", + "Witness data must be set." + ] + }, + { + "name": "set_rule", + "fields": [ + { + "name": "rule", + "type": 362, + "typeName": "Cid" + } + ], + "index": 5, + "docs": [ + "Set a new IPFS CID to the alliance rule." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "announcement", + "type": 362, + "typeName": "Cid" + } + ], + "index": 6, + "docs": [ + "Make an announcement of a new IPFS CID about alliance issues." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "announcement", + "type": 362, + "typeName": "Cid" + } + ], + "index": 7, + "docs": [ + "Remove an announcement." + ] + }, + { + "name": "join_alliance", + "index": 8, + "docs": [ + "Submit oneself for candidacy. A fixed deposit is reserved." + ] + }, + { + "name": "nominate_ally", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 9, + "docs": [ + "A Fellow can nominate someone to join the alliance as an Ally. There is no deposit", + "required from the nominator or nominee." + ] + }, + { + "name": "elevate_ally", + "fields": [ + { + "name": "ally", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 10, + "docs": [ + "Elevate an Ally to Fellow." + ] + }, + { + "name": "give_retirement_notice", + "index": 11, + "docs": [ + "As a member, give a retirement notice and start a retirement period required to pass in", + "order to retire." + ] + }, + { + "name": "retire", + "index": 12, + "docs": [ + "As a member, retire from the Alliance and unreserve the deposit.", + "", + "This can only be done once you have called `give_retirement_notice` and the", + "`RetirementPeriod` has passed." + ] + }, + { + "name": "kick_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Kick a member from the Alliance and slash its deposit." + ] + }, + { + "name": "add_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 366, + "typeName": "Vec>" + } + ], + "index": 14, + "docs": [ + "Add accounts or websites to the list of unscrupulous items." + ] + }, + { + "name": "remove_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 366, + "typeName": "Vec>" + } + ], + "index": 15, + "docs": [ + "Deem some items no longer unscrupulous." + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 8, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 16, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "abdicate_fellow_status", + "index": 17, + "docs": [ + "Abdicate one's position as a voting member and just be an Ally. May be used by Fellows", + "who do not want to leave the Alliance but do not have the capacity to participate", + "operationally for some time." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 361, + "type": { + "path": [ + "pallet_alliance", + "types", + "DisbandWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "fellow_members", + "type": 138, + "typeName": "u32" + }, + { + "name": "ally_members", + "type": 138, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 362, + "type": { + "path": [ + "pallet_alliance", + "types", + "Cid" + ], + "def": { + "composite": { + "fields": [ + { + "name": "version", + "type": 363, + "typeName": "Version" + }, + { + "name": "codec", + "type": 10, + "typeName": "u64" + }, + { + "name": "hash", + "type": 364, + "typeName": "Multihash" + } + ] + } + } + } + }, + { + "id": 363, + "type": { + "path": [ + "pallet_alliance", + "types", + "Version" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "index": 0 + }, + { + "name": "V1", + "index": 1 + } + ] + } + } + } + }, + { + "id": 364, + "type": { + "path": [ + "pallet_alliance", + "types", + "Multihash" + ], + "def": { + "composite": { + "fields": [ + { + "name": "code", + "type": 10, + "typeName": "u64" + }, + { + "name": "digest", + "type": 365, + "typeName": "BoundedVec>" + } + ] + } + } + } + }, + { + "id": 365, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 366, + "type": { + "def": { + "sequence": { + "type": 367 + } + } + } + }, + { + "id": 367, + "type": { + "path": [ + "pallet_alliance", + "UnscrupulousItem" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Url", + "type": 368 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AccountId", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 0 + }, + { + "name": "Website", + "fields": [ + { + "type": 368, + "typeName": "Url" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 368, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 369, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is transferred from the member to the", + "pools account and immediately increases the pools bond.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 370, + "typeName": "BondExtra>" + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is there first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to caim rewards on bahalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "unbonding_points", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if their are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "If the target is the depositor, the pool will be destroyed." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "root", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "nominator", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "bouncer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferrable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "root", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "nominator", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "bouncer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "validators", + "type": 83, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "state", + "type": 371, + "typeName": "PoolState" + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "metadata", + "type": 12, + "typeName": "Vec" + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role", + "of the pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 372, + "typeName": "ConfigOp>" + }, + { + "name": "min_create_bond", + "type": 372, + "typeName": "ConfigOp>" + }, + { + "name": "max_pools", + "type": 373, + "typeName": "ConfigOp" + }, + { + "name": "max_members", + "type": 373, + "typeName": "ConfigOp" + }, + { + "name": "max_members_per_pool", + "type": 373, + "typeName": "ConfigOp" + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "Root.", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "new_root", + "type": 374, + "typeName": "ConfigOp" + }, + { + "name": "new_nominator", + "type": 374, + "typeName": "ConfigOp" + }, + { + "name": "new_bouncer", + "type": 374, + "typeName": "ConfigOp" + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "extra", + "type": 370, + "typeName": "BondExtra>" + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessAll` or `PermissionlessCompound`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 375, + "typeName": "ClaimPermission" + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "By default, this is `Permissioned`, which implies only the pool member themselves can", + "claim their pending rewards. If a pool member wishes so, they can set this to", + "`PermissionlessAll` to allow any account to claim their rewards and bond extra to the", + "pool.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `actor` - Account to claim reward. // improve this" + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessAll` or `PermissionlessWithdraw` in order", + "for this call to be successful." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 370, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Rewards", + "index": 1 + } + ] + } + } + } + }, + { + "id": 371, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "index": 0 + }, + { + "name": "Blocked", + "index": 1 + }, + { + "name": "Destroying", + "index": 2 + } + ] + } + } + } + }, + { + "id": 372, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 6, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 373, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 4, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 374, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 0, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 375, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "index": 0 + }, + { + "name": "PermissionlessCompound", + "index": 1 + }, + { + "name": "PermissionlessWithdraw", + "index": 2 + }, + { + "name": "PermissionlessAll", + "index": 3 + } + ] + } + } + } + }, + { + "id": 376, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 128, + "typeName": "Box>" + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + }, + { + "name": "enactment_moment", + "type": 350, + "typeName": "DispatchTime" + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf" + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "maybe_hash", + "type": 221, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 377, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Introduce a new member.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of non-member which will become a member.", + "- `rank`: The rank to give the new member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "promote_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Increment the rank of an existing member by one.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "demote_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Decrement the rank of an existing member by one. If the member is already at rank zero,", + "then they are removed entirely.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "", + "Weight: `O(1)`, less if the member's index is highest in its rank." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_rank", + "type": 93, + "typeName": "Rank" + } + ], + "index": 3, + "docs": [ + "Remove the member entirely.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "- `min_rank`: The rank of the member or greater.", + "", + "Weight: `O(min_rank)`." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf" + }, + { + "name": "aye", + "type": 41, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "- `origin`: Must be `Signed` by a member account.", + "- `poll`: Index of a poll which is ongoing.", + "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.", + "", + "Transaction fees are be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "", + "Weight: `O(1)`, less if there was no previous vote on the poll by the member." + ] + }, + { + "name": "cleanup_poll", + "fields": [ + { + "name": "poll_index", + "type": 4, + "typeName": "PollIndexOf" + }, + { + "name": "max", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Remove votes from the given poll. It must have ended.", + "", + "- `origin`: Must be `Signed` by any account.", + "- `poll_index`: Index of a poll which is completed and for which votes continue to", + " exist.", + "- `max`: Maximum number of vote items from remove in this call.", + "", + "Transaction fees are waived if the operation is successful.", + "", + "Weight `O(max)` (less if there are fewer items to remove than `max`)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 378, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "The dispatch origin of this call must be signed by the controller account, similar to", + "`staking::unbond`.", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources." + ] + }, + { + "name": "deregister", + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling `register_fast_unstake`. This should probably be followed by a call to", + "`Staking::rebond`." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "Dispatch origin must be signed by the [`Config::ControlOrigin`]." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 379, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex" + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size" + }, + { + "name": "weight_limit", + "type": 8, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 380, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "emit_event", + "index": 0 + }, + { + "name": "noop", + "index": 1 + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 381, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 382, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes" + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes" + }, + { + "name": "support", + "type": 6, + "typeName": "Votes" + } + ] + } + } + } + }, + { + "id": 383, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "content_hash", + "type": 11, + "typeName": "sp_core::H256" + } + ], + "index": 0, + "docs": [ + "Stored data off chain." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 384, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "type": 0, + "typeName": "T::AccountId" + }, + { + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 385, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + } + ], + "index": 0 + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + } + ], + "index": 1 + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + }, + { + "name": "result", + "type": 386, + "typeName": "DispatchResultWithPostInfo" + } + ], + "index": 2 + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 386, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 387 + }, + { + "name": "E", + "type": 389 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 387 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 389 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 387, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 388, + "typeName": "Option" + }, + { + "name": "pays_fee", + "type": 23, + "typeName": "Pays" + } + ] + } + } + } + }, + { + "id": 388, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 8 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 8 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 389, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 387 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 387, + "typeName": "Info" + }, + { + "name": "error", + "type": 24, + "typeName": "DispatchError" + } + ] + } + } + } + }, + { + "id": 390, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "voted", + "type": 41, + "typeName": "bool" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 391, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewRuleSet", + "fields": [ + { + "name": "rule", + "type": 362, + "typeName": "Cid" + } + ], + "index": 0, + "docs": [ + "A new rule has been set." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "announcement", + "type": 362, + "typeName": "Cid" + } + ], + "index": 1, + "docs": [ + "A new announcement has been proposed." + ] + }, + { + "name": "AnnouncementRemoved", + "fields": [ + { + "name": "announcement", + "type": 362, + "typeName": "Cid" + } + ], + "index": 2, + "docs": [ + "An on-chain announcement has been removed." + ] + }, + { + "name": "MembersInitialized", + "fields": [ + { + "name": "fellows", + "type": 83, + "typeName": "Vec" + }, + { + "name": "allies", + "type": 83, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Some accounts have been initialized as members (fellows/allies)." + ] + }, + { + "name": "NewAllyJoined", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "nominator", + "type": 40, + "typeName": "Option" + }, + { + "name": "reserved", + "type": 317, + "typeName": "Option>" + } + ], + "index": 4, + "docs": [ + "An account has been added as an Ally and reserved its deposit." + ] + }, + { + "name": "AllyElevated", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "An ally has been elevated to Fellow." + ] + }, + { + "name": "MemberRetirementPeriodStarted", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 6, + "docs": [ + "A member gave retirement notice and their retirement period started." + ] + }, + { + "name": "MemberRetired", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unreserved", + "type": 317, + "typeName": "Option>" + } + ], + "index": 7, + "docs": [ + "A member has retired with its deposit unreserved." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "slashed", + "type": 317, + "typeName": "Option>" + } + ], + "index": 8, + "docs": [ + "A member has been kicked out with its deposit slashed." + ] + }, + { + "name": "UnscrupulousItemAdded", + "fields": [ + { + "name": "items", + "type": 366, + "typeName": "Vec>" + } + ], + "index": 9, + "docs": [ + "Accounts or websites have been added into the list of unscrupulous items." + ] + }, + { + "name": "UnscrupulousItemRemoved", + "fields": [ + { + "name": "items", + "type": 366, + "typeName": "Vec>" + } + ], + "index": 10, + "docs": [ + "Accounts or websites have been removed from the list of unscrupulous items." + ] + }, + { + "name": "AllianceDisbanded", + "fields": [ + { + "name": "fellow_members", + "type": 4, + "typeName": "u32" + }, + { + "name": "ally_members", + "type": 4, + "typeName": "u32" + }, + { + "name": "unreserved", + "type": 4, + "typeName": "u32" + } + ], + "index": 11, + "docs": [ + "Alliance disbanded. Includes number deleted members and unreserved deposits." + ] + }, + { + "name": "FellowAbdicated", + "fields": [ + { + "name": "fellow", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 12, + "docs": [ + "A Fellow abdicated their voting rights. They are now an Ally." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 392, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "joined", + "type": 41, + "typeName": "bool" + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "new_state", + "type": 371, + "typeName": "PoolState" + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked)." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 40, + "typeName": "Option" + }, + { + "name": "bouncer", + "type": 40, + "typeName": "Option" + }, + { + "name": "nominator", + "type": 40, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 393, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashaed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5 + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6 + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 394, + "type": { + "path": [ + "pallet_ranked_collective", + "Tally" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + }, + { + "name": "M", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bare_ayes", + "type": 4, + "typeName": "MemberIndex" + }, + { + "name": "ayes", + "type": 4, + "typeName": "Votes" + }, + { + "name": "nays", + "type": 4, + "typeName": "Votes" + } + ] + } + } + } + }, + { + "id": 395, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A member `who` has been added." + ] + }, + { + "name": "RankChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rank", + "type": 93, + "typeName": "Rank" + } + ], + "index": 1, + "docs": [ + "The member `who`se rank has been changed to the given `rank`." + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rank", + "type": 93, + "typeName": "Rank" + } + ], + "index": 2, + "docs": [ + "The member `who` of given `rank` has been removed from the collective." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf" + }, + { + "name": "vote", + "type": 396, + "typeName": "VoteRecord" + }, + { + "name": "tally", + "type": 394, + "typeName": "TallyOf" + } + ], + "index": 3, + "docs": [ + "The member `who` has voted for the `poll` with the given `vote` leading to an updated", + "`tally`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 396, + "type": { + "path": [ + "pallet_ranked_collective", + "VoteRecord" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Aye", + "fields": [ + { + "type": 4, + "typeName": "Votes" + } + ], + "index": 0 + }, + { + "name": "Nay", + "fields": [ + { + "type": 4, + "typeName": "Votes" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 397, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "InternalError", + "index": 2, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 105, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + } + ] + } + }, + "docs": [ + "The events of this pallet." + ] + } + }, + { + "id": 398, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Discarded", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 0, + "docs": [ + "Message discarded due to an inability to decode the item. Usually caused by state", + "corruption." + ] + }, + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "error", + "type": 399, + "typeName": "ProcessMessageError" + } + ], + "index": 1, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "weight_used", + "type": 8, + "typeName": "Weight" + }, + { + "name": "success", + "type": 41, + "typeName": "bool" + } + ], + "index": 2, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size" + } + ], + "index": 3, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex" + } + ], + "index": 4, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 399, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "index": 0 + }, + { + "name": "Corrupt", + "index": 1 + }, + { + "name": "Unsupported", + "index": 2 + }, + { + "name": "Overweight", + "fields": [ + { + "type": 8, + "typeName": "Weight" + } + ], + "index": 3 + }, + { + "name": "Yield", + "index": 4 + } + ] + } + } + } + }, + { + "id": 400, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TestEvent", + "index": 0 + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 401, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "Finalization", + "index": 1 + }, + { + "name": "Initialization", + "index": 2 + } + ] + } + } + } + }, + { + "id": 402, + "type": { + "def": { + "sequence": { + "type": 11 + } + } + } + }, + { + "id": 403, + "type": { + "def": { + "sequence": { + "type": 87 + } + } + } + }, + { + "id": 404, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 138, + "typeName": "codec::Compact" + }, + { + "name": "spec_name", + "type": 405, + "typeName": "sp_runtime::RuntimeString" + } + ] + } + } + } + }, + { + "id": 405, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 406, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 8, + "typeName": "Weight" + }, + { + "name": "max_block", + "type": 8, + "typeName": "Weight" + }, + { + "name": "per_class", + "type": 407, + "typeName": "PerDispatchClass" + } + ] + } + } + } + }, + { + "id": 407, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 408 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 408, + "typeName": "T" + }, + { + "name": "operational", + "type": 408, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 408, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 408, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 8, + "typeName": "Weight" + }, + { + "name": "max_extrinsic", + "type": 388, + "typeName": "Option" + }, + { + "name": "max_total", + "type": 388, + "typeName": "Option" + }, + { + "name": "reserved", + "type": 388, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 409, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 410, + "typeName": "PerDispatchClass" + } + ] + } + } + } + }, + { + "id": 410, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T" + }, + { + "name": "operational", + "type": 4, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 411, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 10, + "typeName": "u64" + }, + { + "name": "write", + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 412, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 405, + "typeName": "RuntimeString" + }, + { + "name": "impl_name", + "type": 405, + "typeName": "RuntimeString" + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "apis", + "type": 413, + "typeName": "ApisVec" + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "state_version", + "type": 2, + "typeName": "u8" + } + ] + } + } + } + }, + { + "id": 413, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 414 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 414 + } + ] + } + } + } + }, + { + "id": 414, + "type": { + "def": { + "sequence": { + "type": 415 + } + } + } + }, + { + "id": 415, + "type": { + "def": { + "tuple": [ + 266, + 4 + ] + } + } + }, + { + "id": 416, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 417, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 418, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 419 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 420, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 419, + "type": { + "def": { + "tuple": [ + 139, + 10 + ] + } + } + }, + { + "id": 420, + "type": { + "def": { + "sequence": { + "type": 419 + } + } + } + }, + { + "id": 421, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 422, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 422, + "type": { + "def": { + "sequence": { + "type": 1 + } + } + } + }, + { + "id": 423, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 424 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 424 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 424, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "type": 425, + "typeName": "PrimaryPreDigest" + } + ], + "index": 1 + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "type": 426, + "typeName": "SecondaryPlainPreDigest" + } + ], + "index": 2 + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "type": 427, + "typeName": "SecondaryVRFPreDigest" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 425, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex" + }, + { + "name": "slot", + "type": 140, + "typeName": "Slot" + }, + { + "name": "vrf_output", + "type": 1, + "typeName": "VRFOutput" + }, + { + "name": "vrf_proof", + "type": 236, + "typeName": "VRFProof" + } + ] + } + } + } + }, + { + "id": 426, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex" + }, + { + "name": "slot", + "type": 140, + "typeName": "Slot" + } + ] + } + } + } + }, + { + "id": 427, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex" + }, + { + "name": "slot", + "type": 140, + "typeName": "Slot" + }, + { + "name": "vrf_output", + "type": 1, + "typeName": "VRFOutput" + }, + { + "name": "vrf_proof", + "type": 236, + "typeName": "VRFProof" + } + ] + } + } + } + }, + { + "id": 428, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 143, + "typeName": "(u64, u64)" + }, + { + "name": "allowed_slots", + "type": 144, + "typeName": "AllowedSlots" + } + ] + } + } + } + }, + { + "id": 429, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 430 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 431, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 430, + "type": { + "def": { + "tuple": [ + 10, + 4 + ] + } + } + }, + { + "id": 431, + "type": { + "def": { + "sequence": { + "type": 430 + } + } + } + }, + { + "id": 432, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 433, + "type": { + "def": { + "tuple": [ + 0, + 6, + 41 + ] + } + } + }, + { + "id": 434, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 435, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 436 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 438, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 436, + "type": { + "path": [ + "pallet_balances", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 266, + "typeName": "LockIdentifier" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "reasons", + "type": 437, + "typeName": "Reasons" + } + ] + } + } + } + }, + { + "id": 437, + "type": { + "path": [ + "pallet_balances", + "Reasons" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "index": 0 + }, + { + "name": "Misc", + "index": 1 + }, + { + "name": "All", + "index": 2 + } + ] + } + } + } + }, + { + "id": 438, + "type": { + "def": { + "sequence": { + "type": 436 + } + } + } + }, + { + "id": 439, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 440 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 441, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 440, + "type": { + "path": [ + "pallet_balances", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 266 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 266, + "typeName": "ReserveIdentifier" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 441, + "type": { + "def": { + "sequence": { + "type": 440 + } + } + } + }, + { + "id": 442, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "index": 0, + "docs": [ + "Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "InsufficientBalance", + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "index": 4, + "docs": [ + "Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "index": 5, + "docs": [ + "A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "index": 6, + "docs": [ + "Beneficiary account must pre-exist" + ] + }, + { + "name": "TooManyReserves", + "index": 7, + "docs": [ + "Number of named reserves exceed MaxReserves" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 443, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "u128" + } + ] + } + } + } + }, + { + "id": 444, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "index": 0 + }, + { + "name": "V2", + "index": 1 + } + ] + } + } + } + }, + { + "id": 445, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 446, + "typeName": "BoundedSupports" + }, + { + "name": "score", + "type": 42, + "typeName": "ElectionScore" + }, + { + "name": "compute", + "type": 39, + "typeName": "ElectionCompute" + } + ] + } + } + } + }, + { + "id": 446, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 206 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 205, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 447, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 448, + "typeName": "Vec>" + }, + { + "name": "targets", + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 448, + "type": { + "def": { + "sequence": { + "type": 449 + } + } + } + }, + { + "id": 449, + "type": { + "def": { + "tuple": [ + 0, + 10, + 450 + ] + } + } + }, + { + "id": 450, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 451, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 452 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 453, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 452, + "type": { + "def": { + "tuple": [ + 42, + 4, + 4 + ] + } + } + }, + { + "id": 453, + "type": { + "def": { + "sequence": { + "type": 452 + } + } + } + }, + { + "id": 454, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 152 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "raw_solution", + "type": 151, + "typeName": "RawSolution" + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 455, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 456, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "total", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "active", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "unlocking", + "type": 457, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>" + }, + { + "name": "claimed_rewards", + "type": 460, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 457, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 458 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 459, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 458, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "Balance" + }, + { + "name": "era", + "type": 138, + "typeName": "EraIndex" + } + ] + } + } + } + }, + { + "id": 459, + "type": { + "def": { + "sequence": { + "type": 458 + } + } + } + }, + { + "id": 460, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 105, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 461, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 450, + "typeName": "BoundedVec" + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "suppressed", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 462, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "start", + "type": 463, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 463, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 10 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 464, + "type": { + "def": { + "tuple": [ + 4, + 0 + ] + } + } + }, + { + "id": 465, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint" + }, + { + "name": "individual", + "type": 466, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 466, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 467 + } + ] + } + } + } + }, + { + "id": 467, + "type": { + "def": { + "sequence": { + "type": 468 + } + } + } + }, + { + "id": 468, + "type": { + "def": { + "tuple": [ + 0, + 4 + ] + } + } + }, + { + "id": 469, + "type": { + "def": { + "sequence": { + "type": 470 + } + } + } + }, + { + "id": 470, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "own", + "type": 6, + "typeName": "Balance" + }, + { + "name": "others", + "type": 59, + "typeName": "Vec<(AccountId, Balance)>" + }, + { + "name": "reporters", + "type": 83, + "typeName": "Vec" + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 471, + "type": { + "def": { + "tuple": [ + 46, + 6 + ] + } + } + }, + { + "id": 472, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex" + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "prior", + "type": 105, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 473, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance" + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 474, + "type": { + "def": { + "sequence": { + "type": 475 + } + } + } + }, + { + "id": 475, + "type": { + "def": { + "tuple": [ + 4, + 41 + ] + } + } + }, + { + "id": 476, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "IncorrectHistoryDepth", + "index": 15, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "index": 16, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "index": 17, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "index": 18, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "index": 19, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "index": 20, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "index": 21, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "index": 22, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "index": 23, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "index": 24, + "docs": [ + "Some bound is not met." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 477, + "type": { + "def": { + "sequence": { + "type": 478 + } + } + } + }, + { + "id": 478, + "type": { + "def": { + "tuple": [ + 0, + 217 + ] + } + } + }, + { + "id": 479, + "type": { + "def": { + "tuple": [ + 480, + 12 + ] + } + } + }, + { + "id": 480, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 16, + "typeName": "[u8; 4]" + } + ] + } + } + } + }, + { + "id": 481, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 482, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 483 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 484, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 483, + "type": { + "def": { + "tuple": [ + 4, + 120, + 0 + ] + } + } + }, + { + "id": 484, + "type": { + "def": { + "sequence": { + "type": 483 + } + } + } + }, + { + "id": 485, + "type": { + "def": { + "tuple": [ + 486, + 6 + ] + } + } + }, + { + "id": 486, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 487, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "type": 488, + "typeName": "ReferendumStatus" + } + ], + "index": 0 + }, + { + "name": "Finished", + "fields": [ + { + "name": "approved", + "type": 41, + "typeName": "bool" + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 488, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "proposal", + "type": 120, + "typeName": "Proposal" + }, + { + "name": "threshold", + "type": 52, + "typeName": "VoteThreshold" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "tally", + "type": 489, + "typeName": "Tally" + } + ] + } + } + } + }, + { + "id": 489, + "type": { + "path": [ + "pallet_democracy", + "types", + "Tally" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nays", + "type": 6, + "typeName": "Balance" + }, + { + "name": "turnout", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 490, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Direct", + "fields": [ + { + "name": "votes", + "type": 491, + "typeName": "BoundedVec<(ReferendumIndex, AccountVote), MaxVotes>" + }, + { + "name": "delegations", + "type": 494, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 495, + "typeName": "PriorLock" + } + ], + "index": 0 + }, + { + "name": "Delegating", + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "conviction", + "type": 220, + "typeName": "Conviction" + }, + { + "name": "delegations", + "type": 494, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 495, + "typeName": "PriorLock" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 491, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 492 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 493, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 492, + "type": { + "def": { + "tuple": [ + 4, + 53 + ] + } + } + }, + { + "id": 493, + "type": { + "def": { + "sequence": { + "type": 492 + } + } + } + }, + { + "id": 494, + "type": { + "path": [ + "pallet_democracy", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance" + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 495, + "type": { + "path": [ + "pallet_democracy", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + }, + { + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 496, + "type": { + "def": { + "tuple": [ + 120, + 52 + ] + } + } + }, + { + "id": 497, + "type": { + "def": { + "tuple": [ + 4, + 486 + ] + } + } + }, + { + "id": 498, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValueLow", + "index": 0, + "docs": [ + "Value too low" + ] + }, + { + "name": "ProposalMissing", + "index": 1, + "docs": [ + "Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "index": 2, + "docs": [ + "Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "index": 3, + "docs": [ + "Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "index": 4, + "docs": [ + "Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "index": 5, + "docs": [ + "Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "index": 6, + "docs": [ + "Invalid hash" + ] + }, + { + "name": "NoProposal", + "index": 7, + "docs": [ + "No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "index": 8, + "docs": [ + "Identity may not veto a proposal twice" + ] + }, + { + "name": "ReferendumInvalid", + "index": 9, + "docs": [ + "Vote given for invalid referendum" + ] + }, + { + "name": "NoneWaiting", + "index": 10, + "docs": [ + "No proposals waiting" + ] + }, + { + "name": "NotVoter", + "index": 11, + "docs": [ + "The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "index": 12, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "index": 13, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "index": 14, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "index": 15, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "index": 16, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "index": 17, + "docs": [ + "The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "index": 18, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "index": 19, + "docs": [ + "Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "index": 20, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "TooMany", + "index": 21, + "docs": [ + "Maximum number of items reached." + ] + }, + { + "name": "VotingPeriodLow", + "index": 22, + "docs": [ + "Voting period too low" + ] + }, + { + "name": "PreimageNotExist", + "index": 23, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 499, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 11 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 500, + "type": { + "path": [ + "pallet_collective", + "Votes" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "ayes", + "type": 83, + "typeName": "Vec" + }, + { + "name": "nays", + "type": 83, + "typeName": "Vec" + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 501, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 502, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 11 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 503, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 504, + "type": { + "def": { + "sequence": { + "type": 505 + } + } + } + }, + { + "id": 505, + "type": { + "path": [ + "pallet_elections_phragmen", + "SeatHolder" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 506, + "type": { + "path": [ + "pallet_elections_phragmen", + "Voter" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 83, + "typeName": "Vec" + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 507, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnableToVote", + "index": 0, + "docs": [ + "Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "index": 1, + "docs": [ + "Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "index": 2, + "docs": [ + "Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "index": 3, + "docs": [ + "Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "index": 4, + "docs": [ + "Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "index": 5, + "docs": [ + "Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "index": 6, + "docs": [ + "Must be a voter." + ] + }, + { + "name": "DuplicatedCandidate", + "index": 7, + "docs": [ + "Duplicated candidate submission." + ] + }, + { + "name": "TooManyCandidates", + "index": 8, + "docs": [ + "Too many candidates have been created." + ] + }, + { + "name": "MemberSubmit", + "index": 9, + "docs": [ + "Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "index": 10, + "docs": [ + "Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "index": 11, + "docs": [ + "Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "index": 12, + "docs": [ + "Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "index": 13, + "docs": [ + "The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "index": 14, + "docs": [ + "The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "index": 15, + "docs": [ + "The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "index": 16, + "docs": [ + "Prediction regarding replacement after member removal is wrong." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 508, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 509, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "index": 0, + "docs": [ + "Already a member." + ] + }, + { + "name": "NotMember", + "index": 1, + "docs": [ + "Not a member." + ] + }, + { + "name": "TooManyMembers", + "index": 2, + "docs": [ + "Too many members." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 510, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "index": 0 + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N" + }, + { + "name": "delay", + "type": 4, + "typeName": "N" + } + ], + "index": 1 + }, + { + "name": "Paused", + "index": 2 + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N" + }, + { + "name": "delay", + "type": 4, + "typeName": "N" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 511, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N" + }, + { + "name": "delay", + "type": 4, + "typeName": "N" + }, + { + "name": "next_authorities", + "type": 512, + "typeName": "BoundedAuthorityList" + }, + { + "name": "forced", + "type": 37, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 512, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 64 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 63, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 513, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 514, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 515, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 105, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 516, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 517, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 266, + "typeName": "[u8; 8]" + } + ] + } + } + } + }, + { + "id": 518, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "TooManyApprovals", + "index": 2, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "index": 3, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "index": 4, + "docs": [ + "Proposal has not been approved." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 519, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 520, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "PrefabWasmModule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "instruction_weights_version", + "type": 138, + "typeName": "u32" + }, + { + "name": "initial", + "type": 138, + "typeName": "u32" + }, + { + "name": "maximum", + "type": 138, + "typeName": "u32" + }, + { + "name": "code", + "type": 521, + "typeName": "RelaxedCodeVec" + }, + { + "name": "determinism", + "type": 244, + "typeName": "Determinism" + } + ] + } + } + } + }, + { + "id": 521, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 522, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "OwnerInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf" + }, + { + "name": "deposit", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "refcount", + "type": 9, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 523, + "type": { + "path": [ + "pallet_contracts", + "storage", + "ContractInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 381, + "typeName": "TrieId" + }, + { + "name": "deposit_account", + "type": 524, + "typeName": "DepositAccount" + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + }, + { + "name": "storage_bytes", + "type": 4, + "typeName": "u32" + }, + { + "name": "storage_items", + "type": 4, + "typeName": "u32" + }, + { + "name": "storage_byte_deposit", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "storage_item_deposit", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "storage_base_deposit", + "type": 6, + "typeName": "BalanceOf" + } + ] + } + } + } + }, + { + "id": 524, + "type": { + "path": [ + "pallet_contracts", + "storage", + "DepositAccount" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 0, + "typeName": "AccountIdOf" + } + ] + } + } + } + }, + { + "id": 525, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 526 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 527, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 526, + "type": { + "path": [ + "pallet_contracts", + "storage", + "DeletedContract" + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 381, + "typeName": "TrieId" + } + ] + } + } + } + }, + { + "id": 527, + "type": { + "def": { + "sequence": { + "type": 526 + } + } + } + }, + { + "id": 528, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Schedule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "limits", + "type": 529, + "typeName": "Limits" + }, + { + "name": "instruction_weights", + "type": 530, + "typeName": "InstructionWeights" + }, + { + "name": "host_fn_weights", + "type": 531, + "typeName": "HostFnWeights" + } + ] + } + } + } + }, + { + "id": 529, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Limits" + ], + "def": { + "composite": { + "fields": [ + { + "name": "event_topics", + "type": 4, + "typeName": "u32" + }, + { + "name": "globals", + "type": 4, + "typeName": "u32" + }, + { + "name": "locals", + "type": 4, + "typeName": "u32" + }, + { + "name": "parameters", + "type": 4, + "typeName": "u32" + }, + { + "name": "memory_pages", + "type": 4, + "typeName": "u32" + }, + { + "name": "table_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "br_table_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "subject_len", + "type": 4, + "typeName": "u32" + }, + { + "name": "payload_len", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 530, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "InstructionWeights" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "u32" + }, + { + "name": "fallback", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64const", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64load", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64store", + "type": 4, + "typeName": "u32" + }, + { + "name": "select", + "type": 4, + "typeName": "u32" + }, + { + "name": "r#if", + "type": 4, + "typeName": "u32" + }, + { + "name": "br", + "type": 4, + "typeName": "u32" + }, + { + "name": "br_if", + "type": 4, + "typeName": "u32" + }, + { + "name": "br_table", + "type": 4, + "typeName": "u32" + }, + { + "name": "br_table_per_entry", + "type": 4, + "typeName": "u32" + }, + { + "name": "call", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_indirect", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_indirect_per_param", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_per_local", + "type": 4, + "typeName": "u32" + }, + { + "name": "local_get", + "type": 4, + "typeName": "u32" + }, + { + "name": "local_set", + "type": 4, + "typeName": "u32" + }, + { + "name": "local_tee", + "type": 4, + "typeName": "u32" + }, + { + "name": "global_get", + "type": 4, + "typeName": "u32" + }, + { + "name": "global_set", + "type": 4, + "typeName": "u32" + }, + { + "name": "memory_current", + "type": 4, + "typeName": "u32" + }, + { + "name": "memory_grow", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64clz", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64ctz", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64popcnt", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64eqz", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64extendsi32", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64extendui32", + "type": 4, + "typeName": "u32" + }, + { + "name": "i32wrapi64", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64eq", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64ne", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64lts", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64ltu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64gts", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64gtu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64les", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64leu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64ges", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64geu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64add", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64sub", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64mul", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64divs", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64divu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64rems", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64remu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64and", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64or", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64xor", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64shl", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64shrs", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64shru", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64rotl", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64rotr", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 531, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "HostFnWeights" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "caller", + "type": 8, + "typeName": "Weight" + }, + { + "name": "is_contract", + "type": 8, + "typeName": "Weight" + }, + { + "name": "code_hash", + "type": 8, + "typeName": "Weight" + }, + { + "name": "own_code_hash", + "type": 8, + "typeName": "Weight" + }, + { + "name": "caller_is_origin", + "type": 8, + "typeName": "Weight" + }, + { + "name": "address", + "type": 8, + "typeName": "Weight" + }, + { + "name": "gas_left", + "type": 8, + "typeName": "Weight" + }, + { + "name": "balance", + "type": 8, + "typeName": "Weight" + }, + { + "name": "value_transferred", + "type": 8, + "typeName": "Weight" + }, + { + "name": "minimum_balance", + "type": 8, + "typeName": "Weight" + }, + { + "name": "block_number", + "type": 8, + "typeName": "Weight" + }, + { + "name": "now", + "type": 8, + "typeName": "Weight" + }, + { + "name": "weight_to_fee", + "type": 8, + "typeName": "Weight" + }, + { + "name": "gas", + "type": 8, + "typeName": "Weight" + }, + { + "name": "input", + "type": 8, + "typeName": "Weight" + }, + { + "name": "input_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "r#return", + "type": 8, + "typeName": "Weight" + }, + { + "name": "return_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "terminate", + "type": 8, + "typeName": "Weight" + }, + { + "name": "random", + "type": 8, + "typeName": "Weight" + }, + { + "name": "deposit_event", + "type": 8, + "typeName": "Weight" + }, + { + "name": "deposit_event_per_topic", + "type": 8, + "typeName": "Weight" + }, + { + "name": "deposit_event_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "debug_message", + "type": 8, + "typeName": "Weight" + }, + { + "name": "debug_message_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "set_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "set_storage_per_new_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "set_storage_per_old_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "set_code_hash", + "type": 8, + "typeName": "Weight" + }, + { + "name": "clear_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "clear_storage_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "contains_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "contains_storage_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "get_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "get_storage_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "take_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "take_storage_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "transfer", + "type": 8, + "typeName": "Weight" + }, + { + "name": "call", + "type": 8, + "typeName": "Weight" + }, + { + "name": "delegate_call", + "type": 8, + "typeName": "Weight" + }, + { + "name": "call_transfer_surcharge", + "type": 8, + "typeName": "Weight" + }, + { + "name": "call_per_cloned_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiate", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiate_transfer_surcharge", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiate_per_input_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiate_per_salt_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_sha2_256", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_sha2_256_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_keccak_256", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_keccak_256_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_blake2_256", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_blake2_256_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_blake2_128", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_blake2_128_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "ecdsa_recover", + "type": 8, + "typeName": "Weight" + }, + { + "name": "ecdsa_to_eth_address", + "type": 8, + "typeName": "Weight" + }, + { + "name": "reentrance_count", + "type": 8, + "typeName": "Weight" + }, + { + "name": "account_reentrance_count", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiation_nonce", + "type": 8, + "typeName": "Weight" + } + ] + } + } + } + }, + { + "id": 532, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidScheduleVersion", + "index": 0, + "docs": [ + "A new schedule must have a greater version than the current one." + ] + }, + { + "name": "InvalidCallFlags", + "index": 1, + "docs": [ + "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." + ] + }, + { + "name": "OutOfGas", + "index": 2, + "docs": [ + "The executed contract exhausted its gas limit." + ] + }, + { + "name": "OutputBufferTooSmall", + "index": 3, + "docs": [ + "The output buffer supplied to a contract API call was too small." + ] + }, + { + "name": "TransferFailed", + "index": 4, + "docs": [ + "Performing the requested transfer failed. Probably because there isn't enough", + "free balance in the sender's account." + ] + }, + { + "name": "MaxCallDepthReached", + "index": 5, + "docs": [ + "Performing a call was denied because the calling depth reached the limit", + "of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "index": 6, + "docs": [ + "No contract was found at the specified address." + ] + }, + { + "name": "CodeTooLarge", + "index": 7, + "docs": [ + "The code supplied to `instantiate_with_code` exceeds the limit specified in the", + "current schedule." + ] + }, + { + "name": "CodeNotFound", + "index": 8, + "docs": [ + "No code could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "index": 9, + "docs": [ + "A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "index": 10, + "docs": [ + "Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "index": 11, + "docs": [ + "Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "index": 12, + "docs": [ + "The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "TerminatedWhileReentrant", + "index": 13, + "docs": [ + "Termination of a contract is not allowed while the contract is already", + "on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "index": 14, + "docs": [ + "`seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "RandomSubjectTooLong", + "index": 15, + "docs": [ + "The subject passed to `seal_random` exceeds the limit." + ] + }, + { + "name": "TooManyTopics", + "index": 16, + "docs": [ + "The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "NoChainExtension", + "index": 17, + "docs": [ + "The chain does not provide a chain extension. Calling the chain extension results", + "in this error. Note that this usually shouldn't happen as deploying such contracts", + "is rejected." + ] + }, + { + "name": "DeletionQueueFull", + "index": 18, + "docs": [ + "Removal of a contract failed because the deletion queue is full.", + "", + "This can happen when calling `seal_terminate`.", + "The queue is filled by deleting contracts and emptied by a fixed amount each block.", + "Trying again during another block is the only way to resolve this issue." + ] + }, + { + "name": "DuplicateContract", + "index": 19, + "docs": [ + "A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "index": 20, + "docs": [ + "A contract self destructed in its constructor.", + "", + "This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "ReentranceDenied", + "index": 21, + "docs": [ + "A call tried to invoke a contract that is flagged as non-reentrant." + ] + }, + { + "name": "StorageDepositNotEnoughFunds", + "index": 22, + "docs": [ + "Origin doesn't have enough balance to pay the required storage deposits." + ] + }, + { + "name": "StorageDepositLimitExhausted", + "index": 23, + "docs": [ + "More storage was created than allowed by the storage deposit limit." + ] + }, + { + "name": "CodeInUse", + "index": 24, + "docs": [ + "Code removal was denied because the code is still in use by at least one contract." + ] + }, + { + "name": "ContractReverted", + "index": 25, + "docs": [ + "The contract ran to completion but decided to revert its storage changes.", + "Please note that this error is only returned from extrinsics. When called directly", + "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags", + "to determine whether a reversion has taken place." + ] + }, + { + "name": "CodeRejected", + "index": 26, + "docs": [ + "The contract's code was found to be invalid during validation or instrumentation.", + "", + "The most likely cause of this is that an API was used which is not supported by the", + "node. This hapens if an older node is used with a new version of ink!. Try updating", + "your node to the newest available version.", + "", + "A more detailed error can be found on the node console if debug messages are enabled", + "by supplying `-lruntime::contracts=debug`." + ] + }, + { + "name": "Indeterministic", + "index": 27, + "docs": [ + "An indetermistic code was used in a context where this is not permitted." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 533, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RequireSudo", + "index": 0, + "docs": [ + "Sender must be the Sudo account" + ] + } + ] + } + }, + "docs": [ + "Error for the Sudo pallet" + ] + } + }, + { + "id": 534, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 71 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 535, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 535, + "type": { + "def": { + "sequence": { + "type": 71 + } + } + } + }, + { + "id": 536, + "type": { + "path": [ + "frame_support", + "traits", + "misc", + "WrapperOpaque" + ], + "params": [ + { + "name": "T", + "type": 537 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 138 + }, + { + "type": 537, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 537, + "type": { + "path": [ + "pallet_im_online", + "BoundedOpaqueNetworkState" + ], + "params": [ + { + "name": "PeerIdEncodingLimit", + "type": null + }, + { + "name": "MultiAddrEncodingLimit", + "type": null + }, + { + "name": "AddressesLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "peer_id", + "type": 538, + "typeName": "WeakBoundedVec" + }, + { + "name": "external_addresses", + "type": 539, + "typeName": "WeakBoundedVec, AddressesLimit\n>" + } + ] + } + } + } + }, + { + "id": 538, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 539, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 538 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 540, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 540, + "type": { + "def": { + "sequence": { + "type": 538 + } + } + } + }, + { + "id": 541, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKey", + "index": 0, + "docs": [ + "Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "index": 1, + "docs": [ + "Duplicated heartbeat." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 542, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 218 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 543, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 543, + "type": { + "def": { + "sequence": { + "type": 218 + } + } + } + }, + { + "id": 544, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 74 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 74, + "typeName": "Offender" + }, + { + "name": "reporters", + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 545, + "type": { + "def": { + "tuple": [ + 80, + 12 + ] + } + } + }, + { + "id": 546, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 11 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 547, + "type": { + "path": [ + "pallet_identity", + "types", + "Registration" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "MaxJudgements", + "type": null + }, + { + "name": "MaxAdditionalFields", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "judgements", + "type": 548, + "typeName": "BoundedVec<(RegistrarIndex, Judgement), MaxJudgements>" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "info", + "type": 255, + "typeName": "IdentityInfo" + } + ] + } + } + } + }, + { + "id": 548, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 549 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 550, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 549, + "type": { + "def": { + "tuple": [ + 4, + 294 + ] + } + } + }, + { + "id": 550, + "type": { + "def": { + "sequence": { + "type": 549 + } + } + } + }, + { + "id": 551, + "type": { + "def": { + "tuple": [ + 6, + 552 + ] + } + } + }, + { + "id": 552, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 553, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 554 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 556, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 554, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 555 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 555 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 555, + "type": { + "path": [ + "pallet_identity", + "types", + "RegistrarInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fields", + "type": 292, + "typeName": "IdentityFields" + } + ] + } + } + } + }, + { + "id": 556, + "type": { + "def": { + "sequence": { + "type": 554 + } + } + } + }, + { + "id": 557, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManySubAccounts", + "index": 0, + "docs": [ + "Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Account isn't found." + ] + }, + { + "name": "NotNamed", + "index": 2, + "docs": [ + "Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "index": 3, + "docs": [ + "Empty index." + ] + }, + { + "name": "FeeChanged", + "index": 4, + "docs": [ + "Fee is changed." + ] + }, + { + "name": "NoIdentity", + "index": 5, + "docs": [ + "No identity found." + ] + }, + { + "name": "StickyJudgement", + "index": 6, + "docs": [ + "Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "index": 7, + "docs": [ + "Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "index": 8, + "docs": [ + "Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "index": 9, + "docs": [ + "The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "index": 10, + "docs": [ + "The target is invalid." + ] + }, + { + "name": "TooManyFields", + "index": 11, + "docs": [ + "Too many additional fields." + ] + }, + { + "name": "TooManyRegistrars", + "index": 12, + "docs": [ + "Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "index": 13, + "docs": [ + "Account ID is already named." + ] + }, + { + "name": "NotSub", + "index": 14, + "docs": [ + "Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "index": 15, + "docs": [ + "Sub-account isn't owned by sender." + ] + }, + { + "name": "JudgementForDifferentIdentity", + "index": 16, + "docs": [ + "The provided judgement was for a different identity." + ] + }, + { + "name": "JudgementPaymentFailed", + "index": 17, + "docs": [ + "Error that occurs when there is an issue paying for judgement." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 558, + "type": { + "def": { + "sequence": { + "type": 559 + } + } + } + }, + { + "id": 559, + "type": { + "path": [ + "pallet_society", + "Bid" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "kind", + "type": 560, + "typeName": "BidKind" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 560, + "type": { + "path": [ + "pallet_society", + "BidKind" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Vouch", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + }, + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 561, + "type": { + "def": { + "tuple": [ + 6, + 560 + ] + } + } + }, + { + "id": 562, + "type": { + "path": [ + "pallet_society", + "VouchingStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "index": 0 + }, + { + "name": "Banned", + "index": 1 + } + ] + } + } + } + }, + { + "id": 563, + "type": { + "def": { + "sequence": { + "type": 564 + } + } + } + }, + { + "id": 564, + "type": { + "def": { + "tuple": [ + 4, + 6 + ] + } + } + }, + { + "id": 565, + "type": { + "def": { + "tuple": [ + 0, + 0 + ] + } + } + }, + { + "id": 566, + "type": { + "path": [ + "pallet_society", + "Vote" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Skeptic", + "index": 0 + }, + { + "name": "Reject", + "index": 1 + }, + { + "name": "Approve", + "index": 2 + } + ] + } + } + } + }, + { + "id": 567, + "type": { + "path": [ + "pallet_society", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadPosition", + "index": 0, + "docs": [ + "An incorrect position was provided." + ] + }, + { + "name": "NotMember", + "index": 1, + "docs": [ + "User is not a member." + ] + }, + { + "name": "AlreadyMember", + "index": 2, + "docs": [ + "User is already a member." + ] + }, + { + "name": "Suspended", + "index": 3, + "docs": [ + "User is suspended." + ] + }, + { + "name": "NotSuspended", + "index": 4, + "docs": [ + "User is not suspended." + ] + }, + { + "name": "NoPayout", + "index": 5, + "docs": [ + "Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "index": 6, + "docs": [ + "Society already founded." + ] + }, + { + "name": "InsufficientPot", + "index": 7, + "docs": [ + "Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "index": 8, + "docs": [ + "Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouching", + "index": 9, + "docs": [ + "Member is not vouching." + ] + }, + { + "name": "Head", + "index": 10, + "docs": [ + "Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "index": 11, + "docs": [ + "Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "index": 12, + "docs": [ + "User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "index": 13, + "docs": [ + "User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "index": 14, + "docs": [ + "User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "index": 15, + "docs": [ + "Too many members in the society." + ] + }, + { + "name": "NotFounder", + "index": 16, + "docs": [ + "The caller is not the founder." + ] + }, + { + "name": "NotHead", + "index": 17, + "docs": [ + "The caller is not the head." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 568, + "type": { + "path": [ + "pallet_recovery", + "RecoveryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 569 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "friends", + "type": 569, + "typeName": "Friends" + }, + { + "name": "threshold", + "type": 93, + "typeName": "u16" + } + ] + } + } + } + }, + { + "id": 569, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 570, + "type": { + "path": [ + "pallet_recovery", + "ActiveRecovery" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 569 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "friends", + "type": 569, + "typeName": "Friends" + } + ] + } + } + } + }, + { + "id": 571, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "index": 0, + "docs": [ + "User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "index": 1, + "docs": [ + "Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "index": 2, + "docs": [ + "Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "index": 3, + "docs": [ + "Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "index": 4, + "docs": [ + "Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "index": 5, + "docs": [ + "This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "index": 6, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "index": 7, + "docs": [ + "A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "index": 8, + "docs": [ + "A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "index": 9, + "docs": [ + "This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "index": 10, + "docs": [ + "The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "index": 11, + "docs": [ + "This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "index": 12, + "docs": [ + "The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "index": 13, + "docs": [ + "There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "index": 14, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "index": 15, + "docs": [ + "Some internal state is broken." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 572, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 299 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 573, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 573, + "type": { + "def": { + "sequence": { + "type": 299 + } + } + } + }, + { + "id": 574, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "index": 0 + }, + { + "name": "V1", + "index": 1 + } + ] + } + } + } + }, + { + "id": 575, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 576, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 577 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 579, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 577, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 578 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 578 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 578, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 128 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 88, + "typeName": "Option" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 120, + "typeName": "Call" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "origin", + "type": 128, + "typeName": "PalletsOrigin" + } + ] + } + } + } + }, + { + "id": 579, + "type": { + "def": { + "sequence": { + "type": 577 + } + } + } + }, + { + "id": 580, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 581, + "type": { + "def": { + "array": { + "len": 1024, + "type": 2 + } + } + } + }, + { + "id": 582, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyInitialized", + "index": 0, + "docs": [ + "The pallet was already initialized.", + "", + "Set `witness_count` to `Some` to bypass this error." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 583, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 60, + "typeName": "(AccountId, Balance)" + }, + { + "name": "len", + "type": 4, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 584, + "typeName": "Option<(AccountId, Balance)>" + }, + { + "name": "count", + "type": 4, + "typeName": "u32" + }, + { + "name": "len", + "type": 37, + "typeName": "Option" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 584, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 60 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 60 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 585, + "type": { + "def": { + "tuple": [ + 11, + 4 + ] + } + } + }, + { + "id": 586, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 587, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 588, + "type": { + "def": { + "tuple": [ + 589, + 6 + ] + } + } + }, + { + "id": 589, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 590 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 591, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 590, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 92 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 591, + "type": { + "def": { + "sequence": { + "type": 590 + } + } + } + }, + { + "id": 592, + "type": { + "def": { + "tuple": [ + 593, + 6 + ] + } + } + }, + { + "id": 593, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 594 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 595, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 594, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 11 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "Hash" + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 595, + "type": { + "def": { + "sequence": { + "type": 594 + } + } + } + }, + { + "id": 596, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 597, + "type": { + "def": { + "tuple": [ + 0, + 1 + ] + } + } + }, + { + "id": 598, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "approvals", + "type": 486, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 599, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "index": 7, + "docs": [ + "Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 600, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance" + }, + { + "name": "status", + "type": 601, + "typeName": "BountyStatus" + } + ] + } + } + } + }, + { + "id": 601, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "index": 0 + }, + { + "name": "Approved", + "index": 1 + }, + { + "name": "Funded", + "index": 2 + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + } + ], + "index": 3 + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 4 + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 602, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 603, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 604, + "type": { + "path": [ + "pallet_tips", + "OpenTip" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Hash", + "type": 11 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "reason", + "type": 11, + "typeName": "Hash" + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "finder", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "closes", + "type": 37, + "typeName": "Option" + }, + { + "name": "tips", + "type": 59, + "typeName": "Vec<(AccountId, Balance)>" + }, + { + "name": "finders_fee", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 605, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ReasonTooBig", + "index": 0, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "index": 1, + "docs": [ + "The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "index": 2, + "docs": [ + "The tip hash is unknown." + ] + }, + { + "name": "NotFinder", + "index": 3, + "docs": [ + "The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "index": 4, + "docs": [ + "The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "index": 5, + "docs": [ + "The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 606, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "supply", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "min_balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "is_sufficient", + "type": 41, + "typeName": "bool" + }, + { + "name": "accounts", + "type": 4, + "typeName": "u32" + }, + { + "name": "sufficients", + "type": 4, + "typeName": "u32" + }, + { + "name": "approvals", + "type": 4, + "typeName": "u32" + }, + { + "name": "status", + "type": 607, + "typeName": "AssetStatus" + } + ] + } + } + } + }, + { + "id": 607, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "index": 0 + }, + { + "name": "Frozen", + "index": 1 + }, + { + "name": "Destroying", + "index": 2 + } + ] + } + } + } + }, + { + "id": 608, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetAccount" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "Extra", + "type": 31 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + }, + { + "name": "reason", + "type": 609, + "typeName": "ExistenceReason" + }, + { + "name": "extra", + "type": 31, + "typeName": "Extra" + } + ] + } + } + } + }, + { + "id": 609, + "type": { + "path": [ + "pallet_assets", + "types", + "ExistenceReason" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Consumer", + "index": 0 + }, + { + "name": "Sufficient", + "index": 1 + }, + { + "name": "DepositHeld", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 2 + }, + { + "name": "DepositRefunded", + "index": 3 + } + ] + } + } + } + }, + { + "id": 610, + "type": { + "def": { + "tuple": [ + 4, + 0, + 0 + ] + } + } + }, + { + "id": 611, + "type": { + "path": [ + "pallet_assets", + "types", + "Approval" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 612, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 104 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "name", + "type": 104, + "typeName": "BoundedString" + }, + { + "name": "symbol", + "type": 104, + "typeName": "BoundedString" + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 613, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "NoProvider", + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or the", + "maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 614, + "type": { + "path": [ + "pallet_lottery", + "LotteryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "Balance" + }, + { + "name": "start", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "length", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "repeat", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 615, + "type": { + "def": { + "tuple": [ + 4, + 616 + ] + } + } + }, + { + "id": 616, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 100 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 617, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 617, + "type": { + "def": { + "sequence": { + "type": 100 + } + } + } + }, + { + "id": 618, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotConfigured", + "index": 0, + "docs": [ + "A lottery has not been configured." + ] + }, + { + "name": "InProgress", + "index": 1, + "docs": [ + "A lottery is already in progress." + ] + }, + { + "name": "AlreadyEnded", + "index": 2, + "docs": [ + "A lottery has already ended." + ] + }, + { + "name": "InvalidCall", + "index": 3, + "docs": [ + "The call is not valid for an open lottery." + ] + }, + { + "name": "AlreadyParticipating", + "index": 4, + "docs": [ + "You are already participating in the lottery with this call." + ] + }, + { + "name": "TooManyCalls", + "index": 5, + "docs": [ + "Too many calls for a single lottery." + ] + }, + { + "name": "EncodingFailed", + "index": 6, + "docs": [ + "Failed to encode calls" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 619, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 564 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 563, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 620, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 621 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 622, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 621, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Bid" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId" + } + ] + } + } + } + }, + { + "id": 622, + "type": { + "def": { + "sequence": { + "type": 621 + } + } + } + }, + { + "id": 623, + "type": { + "path": [ + "pallet_nis", + "pallet", + "SummaryRecord" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion_owed", + "type": 102, + "typeName": "Perquintill" + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex" + }, + { + "name": "thawed", + "type": 102, + "typeName": "Perquintill" + }, + { + "name": "last_period", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "receipts_on_hold", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 624, + "type": { + "path": [ + "pallet_nis", + "pallet", + "ReceiptRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion", + "type": 102, + "typeName": "Perquintill" + }, + { + "name": "owner", + "type": 584, + "typeName": "Option<(AccountId, Balance)>" + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 625, + "type": { + "def": { + "tuple": [ + 102, + 4 + ] + } + } + }, + { + "id": 626, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DurationTooSmall", + "index": 0, + "docs": [ + "The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "index": 1, + "docs": [ + "The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "index": 2, + "docs": [ + "The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "index": 3, + "docs": [ + "The queue for the bid's duration is full and the amount bid is too low to get in", + "through replacing an existing bid." + ] + }, + { + "name": "UnknownReceipt", + "index": 4, + "docs": [ + "Receipt index is unknown." + ] + }, + { + "name": "NotOwner", + "index": 5, + "docs": [ + "Not the owner of the receipt." + ] + }, + { + "name": "NotExpired", + "index": 6, + "docs": [ + "Bond not yet at expiry date." + ] + }, + { + "name": "UnknownBid", + "index": 7, + "docs": [ + "The given bid for retraction is not found." + ] + }, + { + "name": "PortionTooBig", + "index": 8, + "docs": [ + "The portion supplied is beyond the value of the receipt." + ] + }, + { + "name": "Unfunded", + "index": 9, + "docs": [ + "Not enough funds are held to pay out." + ] + }, + { + "name": "AlreadyFunded", + "index": 10, + "docs": [ + "There are enough funds for what is required." + ] + }, + { + "name": "Throttled", + "index": 11, + "docs": [ + "The thaw throttle has been reached for this period." + ] + }, + { + "name": "MakesDust", + "index": 12, + "docs": [ + "The operation would result in a receipt worth an insignficant value." + ] + }, + { + "name": "AlreadyCommunal", + "index": 13, + "docs": [ + "The receipt is already communal." + ] + }, + { + "name": "AlreadyPrivate", + "index": 14, + "docs": [ + "The receipt is already private." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 627, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "total_deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "free_holding", + "type": 41, + "typeName": "bool" + }, + { + "name": "items", + "type": 4, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 628, + "type": { + "def": { + "tuple": [ + 0, + 4, + 4 + ] + } + } + }, + { + "id": 629, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "approved", + "type": 40, + "typeName": "Option" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 630, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 631, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 632, + "type": { + "def": { + "tuple": [ + 4, + 37, + 106 + ] + } + } + }, + { + "id": 633, + "type": { + "def": { + "tuple": [ + 107, + 6 + ] + } + } + }, + { + "id": 634, + "type": { + "def": { + "tuple": [ + 6, + 40 + ] + } + } + }, + { + "id": 635, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "WrongOwner", + "index": 3, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "index": 4, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "InUse", + "index": 5, + "docs": [ + "The item ID is already taken." + ] + }, + { + "name": "Frozen", + "index": 6, + "docs": [ + "The item or collection is frozen." + ] + }, + { + "name": "WrongDelegate", + "index": 7, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "NoDelegate", + "index": 8, + "docs": [ + "There is no delegate approved." + ] + }, + { + "name": "Unapproved", + "index": 9, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "index": 10, + "docs": [ + "The named owner has not signed ownership of the collection is acceptable." + ] + }, + { + "name": "Locked", + "index": 11, + "docs": [ + "The item is locked." + ] + }, + { + "name": "MaxSupplyReached", + "index": 12, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyAlreadySet", + "index": 13, + "docs": [ + "The max supply has already been set." + ] + }, + { + "name": "MaxSupplyTooSmall", + "index": 14, + "docs": [ + "The provided max supply is less to the amount of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "index": 15, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "NotForSale", + "index": 16, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "index": 17, + "docs": [ + "The provided bid is too low." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 636, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "owner_deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "items", + "type": 4, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 637, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 638 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "CollectionRole" + } + ] + } + } + } + }, + { + "id": 638, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionRole" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "index": 1 + }, + { + "name": "Freezer", + "index": 2 + }, + { + "name": "Admin", + "index": 4 + } + ] + } + } + } + }, + { + "id": 639, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deposit", + "type": 640 + }, + { + "name": "Approvals", + "type": 641 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "approvals", + "type": 641, + "typeName": "Approvals" + }, + { + "name": "deposit", + "type": 640, + "typeName": "Deposit" + } + ] + } + } + } + }, + { + "id": 640, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 641, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 37 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 642, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 642, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 37 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 643 + } + ] + } + } + } + }, + { + "id": 643, + "type": { + "def": { + "sequence": { + "type": 644 + } + } + } + }, + { + "id": 644, + "type": { + "def": { + "tuple": [ + 0, + 37 + ] + } + } + }, + { + "id": 645, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "Deposit" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 646, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 647 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 647, + "typeName": "Deposit" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 647, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadataDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 40, + "typeName": "Option" + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 648, + "type": { + "def": { + "tuple": [ + 4, + 37, + 109, + 106 + ] + } + } + }, + { + "id": 649, + "type": { + "def": { + "tuple": [ + 107, + 650 + ] + } + } + }, + { + "id": 650, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 40, + "typeName": "Option" + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 651, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 652, + "typeName": "BTreeSet" + } + ] + } + } + } + }, + { + "id": 652, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83 + } + ] + } + } + } + }, + { + "id": 653, + "type": { + "path": [ + "pallet_nfts", + "types", + "PendingSwap" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "ItemPriceWithDirection", + "type": 111 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "desired_collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "desired_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "price", + "type": 110, + "typeName": "Option" + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline" + } + ] + } + } + } + }, + { + "id": 654, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 655 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "PalletFeature" + } + ] + } + } + } + }, + { + "id": 655, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletFeature" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Trading", + "index": 1 + }, + { + "name": "Attributes", + "index": 2 + }, + { + "name": "Approvals", + "index": 4 + }, + { + "name": "Swaps", + "index": 8 + } + ] + } + } + } + }, + { + "id": 656, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "ApprovalExpired", + "index": 3, + "docs": [ + "The approval had a deadline that expired, so the approval isn't valid anymore." + ] + }, + { + "name": "WrongOwner", + "index": 4, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "index": 5, + "docs": [ + "The witness data given does not match the current state of the chain." + ] + }, + { + "name": "CollectionIdInUse", + "index": 6, + "docs": [ + "Collection ID is already taken." + ] + }, + { + "name": "ItemsNonTransferable", + "index": 7, + "docs": [ + "Items within that collection are non-transferable." + ] + }, + { + "name": "NotDelegate", + "index": 8, + "docs": [ + "The provided account is not a delegate." + ] + }, + { + "name": "WrongDelegate", + "index": 9, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "Unapproved", + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "index": 11, + "docs": [ + "The named owner has not signed ownership acceptance of the collection." + ] + }, + { + "name": "ItemLocked", + "index": 12, + "docs": [ + "The item is locked (non-transferable)." + ] + }, + { + "name": "LockedItemAttributes", + "index": 13, + "docs": [ + "Item's attributes are locked." + ] + }, + { + "name": "LockedCollectionAttributes", + "index": 14, + "docs": [ + "Collection's attributes are locked." + ] + }, + { + "name": "LockedItemMetadata", + "index": 15, + "docs": [ + "Item's metadata is locked." + ] + }, + { + "name": "LockedCollectionMetadata", + "index": 16, + "docs": [ + "Collection's metadata is locked." + ] + }, + { + "name": "MaxSupplyReached", + "index": 17, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyLocked", + "index": 18, + "docs": [ + "The max supply is locked and can't be changed." + ] + }, + { + "name": "MaxSupplyTooSmall", + "index": 19, + "docs": [ + "The provided max supply is less than the number of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "index": 20, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "UnknownSwap", + "index": 21, + "docs": [ + "Swap doesn't exist." + ] + }, + { + "name": "MetadataNotFound", + "index": 22, + "docs": [ + "The given item has no metadata set." + ] + }, + { + "name": "AttributeNotFound", + "index": 23, + "docs": [ + "The provided attribute can't be found." + ] + }, + { + "name": "NotForSale", + "index": 24, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "index": 25, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "ReachedApprovalLimit", + "index": 26, + "docs": [ + "The item has reached its approval limit." + ] + }, + { + "name": "DeadlineExpired", + "index": 27, + "docs": [ + "The deadline has already expired." + ] + }, + { + "name": "WrongDuration", + "index": 28, + "docs": [ + "The duration provided should be less than or equal to `MaxDeadlineDuration`." + ] + }, + { + "name": "MethodDisabled", + "index": 29, + "docs": [ + "The method is disabled by system settings." + ] + }, + { + "name": "WrongSetting", + "index": 30, + "docs": [ + "The provided setting can't be set." + ] + }, + { + "name": "InconsistentItemConfig", + "index": 31, + "docs": [ + "Item's config already exists and should be equal to the provided one." + ] + }, + { + "name": "NoConfig", + "index": 32, + "docs": [ + "Config for a collection or an item can't be found." + ] + }, + { + "name": "RolesNotCleared", + "index": 33, + "docs": [ + "Some roles were not cleared." + ] + }, + { + "name": "MintNotStarted", + "index": 34, + "docs": [ + "Mint has not started yet." + ] + }, + { + "name": "MintEnded", + "index": 35, + "docs": [ + "Mint has already ended." + ] + }, + { + "name": "AlreadyClaimed", + "index": 36, + "docs": [ + "The provided Item was already used for claiming." + ] + }, + { + "name": "IncorrectData", + "index": 37, + "docs": [ + "The provided data is incorrect." + ] + }, + { + "name": "WrongOrigin", + "index": 38, + "docs": [ + "The extrinsic was sent by the wrong origin." + ] + }, + { + "name": "WrongSignature", + "index": 39, + "docs": [ + "The provided signature is incorrect." + ] + }, + { + "name": "IncorrectMetadata", + "index": 40, + "docs": [ + "The provided metadata might be too long." + ] + }, + { + "name": "MaxAttributesLimitReached", + "index": 41, + "docs": [ + "Can't set more attributes per one call." + ] + }, + { + "name": "WrongNamespace", + "index": 42, + "docs": [ + "The provided namespace isn't supported in this call." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 657, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 658 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 659, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 658, + "type": { + "path": [ + "pallet_transaction_storage", + "TransactionInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "chunk_root", + "type": 11, + "typeName": "::Output" + }, + { + "name": "content_hash", + "type": 11, + "typeName": "::Output" + }, + { + "name": "size", + "type": 4, + "typeName": "u32" + }, + { + "name": "block_chunks", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 659, + "type": { + "def": { + "sequence": { + "type": 658 + } + } + } + }, + { + "id": 660, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientFunds", + "index": 0, + "docs": [ + "Insufficient account balance." + ] + }, + { + "name": "NotConfigured", + "index": 1, + "docs": [ + "Invalid configuration." + ] + }, + { + "name": "RenewedNotFound", + "index": 2, + "docs": [ + "Renewed extrinsic is not found." + ] + }, + { + "name": "EmptyTransaction", + "index": 3, + "docs": [ + "Attempting to store empty transaction" + ] + }, + { + "name": "UnexpectedProof", + "index": 4, + "docs": [ + "Proof was not expected in this block." + ] + }, + { + "name": "InvalidProof", + "index": 5, + "docs": [ + "Proof failed verification." + ] + }, + { + "name": "MissingProof", + "index": 6, + "docs": [ + "Missing storage proof." + ] + }, + { + "name": "MissingStateData", + "index": 7, + "docs": [ + "Unable to verify proof becasue state data is missing." + ] + }, + { + "name": "DoubleCheck", + "index": 8, + "docs": [ + "Double proof check in the block." + ] + }, + { + "name": "ProofNotChecked", + "index": 9, + "docs": [ + "Storage proof was not checked in the block." + ] + }, + { + "name": "TransactionTooLarge", + "index": 10, + "docs": [ + "Transaction is too large." + ] + }, + { + "name": "TooManyTransactions", + "index": 11, + "docs": [ + "Too many transactions in the block." + ] + }, + { + "name": "BadContext", + "index": 12, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 661, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "prev", + "type": 40, + "typeName": "Option" + }, + { + "name": "next", + "type": 40, + "typeName": "Option" + }, + { + "name": "bag_upper", + "type": 10, + "typeName": "T::Score" + }, + { + "name": "score", + "type": 10, + "typeName": "T::Score" + } + ] + } + } + } + }, + { + "id": 662, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 40, + "typeName": "Option" + }, + { + "name": "tail", + "type": 40, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 663, + "type": { + "def": { + "sequence": { + "type": 10 + } + } + } + }, + { + "id": 664, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "type": 665, + "typeName": "ListError" + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 665, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "index": 0 + }, + { + "name": "NotHeavier", + "index": 1 + }, + { + "name": "NotInSameBag", + "index": 2 + }, + { + "name": "NodeNotFound", + "index": 3 + } + ] + } + } + } + }, + { + "id": 666, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "status", + "type": 667, + "typeName": "ChildBountyStatus" + } + ] + } + } + } + }, + { + "id": 667, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "index": 0 + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + } + ], + "index": 2 + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 668, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 669, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 93 + }, + { + "name": "RuntimeOrigin", + "type": 128 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 382 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 87 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "type": 670, + "typeName": "ReferendumStatus" + } + ], + "index": 0 + }, + { + "name": "Approved", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 1 + }, + { + "name": "Rejected", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 2 + }, + { + "name": "Cancelled", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 3 + }, + { + "name": "TimedOut", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 4 + }, + { + "name": "Killed", + "fields": [ + { + "type": 4, + "typeName": "Moment" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 670, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 93 + }, + { + "name": "RuntimeOrigin", + "type": 128 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 382 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 87 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 93, + "typeName": "TrackId" + }, + { + "name": "origin", + "type": 128, + "typeName": "RuntimeOrigin" + }, + { + "name": "proposal", + "type": 120, + "typeName": "Call" + }, + { + "name": "enactment", + "type": 350, + "typeName": "DispatchTime" + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment" + }, + { + "name": "submission_deposit", + "type": 671, + "typeName": "Deposit" + }, + { + "name": "decision_deposit", + "type": 672, + "typeName": "Option>" + }, + { + "name": "deciding", + "type": 673, + "typeName": "Option>" + }, + { + "name": "tally", + "type": 382, + "typeName": "Tally" + }, + { + "name": "in_queue", + "type": 41, + "typeName": "bool" + }, + { + "name": "alarm", + "type": 675, + "typeName": "Option<(Moment, ScheduleAddress)>" + } + ] + } + } + } + }, + { + "id": 671, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 672, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 671 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 671 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 673, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 674 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 674 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 674, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "confirming", + "type": 37, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 675, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 676 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 676 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 676, + "type": { + "def": { + "tuple": [ + 4, + 87 + ] + } + } + }, + { + "id": 677, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 564 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 563, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 678, + "type": { + "def": { + "sequence": { + "type": 679 + } + } + } + }, + { + "id": 679, + "type": { + "def": { + "tuple": [ + 93, + 680 + ] + } + } + }, + { + "id": 680, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 405, + "typeName": "&'static str" + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32" + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment" + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment" + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment" + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment" + }, + { + "name": "min_approval", + "type": 681, + "typeName": "Curve" + }, + { + "name": "min_support", + "type": 681, + "typeName": "Curve" + } + ] + } + } + } + }, + { + "id": 681, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "floor", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "ceil", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 0 + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "end", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "step", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "period", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 1 + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 682, + "typeName": "FixedI64" + }, + { + "name": "x_offset", + "type": 682, + "typeName": "FixedI64" + }, + { + "name": "y_offset", + "type": 682, + "typeName": "FixedI64" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 682, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "def": { + "composite": { + "fields": [ + { + "type": 683, + "typeName": "i64" + } + ] + } + } + } + }, + { + "id": 683, + "type": { + "def": { + "primitive": "i64" + } + } + }, + { + "id": 684, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "index": 12, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 685, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Empty", + "index": 0, + "docs": [ + "Attempting to store empty data." + ] + }, + { + "name": "BadContext", + "index": 1, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 686, + "type": { + "def": { + "tuple": [ + 0, + 93 + ] + } + } + }, + { + "id": 687, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "type": 688, + "typeName": "Casting" + } + ], + "index": 0 + }, + { + "name": "Delegating", + "fields": [ + { + "type": 694, + "typeName": "Delegating" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 688, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 689, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>" + }, + { + "name": "delegations", + "type": 692, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 693, + "typeName": "PriorLock" + } + ] + } + } + } + }, + { + "id": 689, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 690 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 691, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 690, + "type": { + "def": { + "tuple": [ + 4, + 354 + ] + } + } + }, + { + "id": 691, + "type": { + "def": { + "sequence": { + "type": 690 + } + } + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance" + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 693, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + }, + { + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 694, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "conviction", + "type": 356, + "typeName": "Conviction" + }, + { + "name": "delegations", + "type": 692, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 693, + "typeName": "PriorLock" + } + ] + } + } + } + }, + { + "id": 695, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 696 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 697, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 696, + "type": { + "def": { + "tuple": [ + 93, + 6 + ] + } + } + }, + { + "id": 697, + "type": { + "def": { + "sequence": { + "type": 696 + } + } + } + }, + { + "id": 698, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InsufficientFunds", + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 699, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 700, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 11 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 701, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 702, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 362 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 703, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 703, + "type": { + "def": { + "sequence": { + "type": 362 + } + } + } + }, + { + "id": 704, + "type": { + "path": [ + "pallet_alliance", + "MemberRole" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fellow", + "index": 0 + }, + { + "name": "Ally", + "index": 1 + }, + { + "name": "Retiring", + "index": 2 + } + ] + } + } + } + }, + { + "id": 705, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 706, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 368 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 707, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 707, + "type": { + "def": { + "sequence": { + "type": 368 + } + } + } + }, + { + "id": 708, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AllianceNotYetInitialized", + "index": 0, + "docs": [ + "The Alliance has not been initialized yet, therefore accounts cannot join it." + ] + }, + { + "name": "AllianceAlreadyInitialized", + "index": 1, + "docs": [ + "The Alliance has been initialized, therefore cannot be initialized again." + ] + }, + { + "name": "AlreadyMember", + "index": 2, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "index": 3, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotAlly", + "index": 4, + "docs": [ + "Account is not an ally." + ] + }, + { + "name": "NoVotingRights", + "index": 5, + "docs": [ + "Account does not have voting rights." + ] + }, + { + "name": "AlreadyElevated", + "index": 6, + "docs": [ + "Account is already an elevated (fellow) member." + ] + }, + { + "name": "AlreadyUnscrupulous", + "index": 7, + "docs": [ + "Item is already listed as unscrupulous." + ] + }, + { + "name": "AccountNonGrata", + "index": 8, + "docs": [ + "Account has been deemed unscrupulous by the Alliance and is not welcome to join or be", + "nominated." + ] + }, + { + "name": "NotListedAsUnscrupulous", + "index": 9, + "docs": [ + "Item has not been deemed unscrupulous." + ] + }, + { + "name": "TooManyUnscrupulousItems", + "index": 10, + "docs": [ + "The number of unscrupulous items exceeds `MaxUnscrupulousItems`." + ] + }, + { + "name": "TooLongWebsiteUrl", + "index": 11, + "docs": [ + "Length of website URL exceeds `MaxWebsiteUrlLength`." + ] + }, + { + "name": "InsufficientFunds", + "index": 12, + "docs": [ + "Balance is insufficient for the required deposit." + ] + }, + { + "name": "WithoutIdentityDisplayAndWebsite", + "index": 13, + "docs": [ + "The account's identity does not have display field and website field." + ] + }, + { + "name": "WithoutGoodIdentityJudgement", + "index": 14, + "docs": [ + "The account's identity has no good judgement." + ] + }, + { + "name": "MissingProposalHash", + "index": 15, + "docs": [ + "The proposal hash is not found." + ] + }, + { + "name": "MissingAnnouncement", + "index": 16, + "docs": [ + "The announcement is not found." + ] + }, + { + "name": "TooManyMembers", + "index": 17, + "docs": [ + "Number of members exceeds `MaxMembersCount`." + ] + }, + { + "name": "TooManyAnnouncements", + "index": 18, + "docs": [ + "Number of announcements exceeds `MaxAnnouncementsCount`." + ] + }, + { + "name": "BadWitness", + "index": 19, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "AlreadyRetiring", + "index": 20, + "docs": [ + "Account already gave retirement notice" + ] + }, + { + "name": "RetirementNoticeNotGiven", + "index": 21, + "docs": [ + "Account did not give a retirement notice required to retire." + ] + }, + { + "name": "RetirementPeriodNotPassed", + "index": 22, + "docs": [ + "Retirement period has not passed." + ] + }, + { + "name": "FellowsMissing", + "index": 23, + "docs": [ + "Fellows must be provided to initialize the Alliance." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 709, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "last_recorded_reward_counter", + "type": 443, + "typeName": "T::RewardCounter" + }, + { + "name": "unbonding_eras", + "type": 710, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>" + } + ] + } + } + } + }, + { + "id": 710, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 711, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 711, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 563 + } + ] + } + } + } + }, + { + "id": 712, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "state", + "type": 371, + "typeName": "PoolState" + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32" + }, + { + "name": "roles", + "type": 713, + "typeName": "PoolRoles" + } + ] + } + } + } + }, + { + "id": 713, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "root", + "type": 40, + "typeName": "Option" + }, + { + "name": "nominator", + "type": 40, + "typeName": "Option" + }, + { + "name": "bouncer", + "type": 40, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 714, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 443, + "typeName": "T::RewardCounter" + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf" + } + ] + } + } + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 716, + "typeName": "UnbondPool" + }, + { + "name": "with_era", + "type": 717, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>" + } + ] + } + } + } + }, + { + "id": 716, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ] + } + } + } + }, + { + "id": 717, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 716 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 718, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 718, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 716 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 719 + } + ] + } + } + } + }, + { + "id": 719, + "type": { + "def": { + "sequence": { + "type": 720 + } + } + } + }, + { + "id": 720, + "type": { + "def": { + "tuple": [ + 4, + 716 + ] + } + } + }, + { + "id": 721, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 722, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than", + "`Pallet::depositor_min_bond`. The caller does not have nominating", + "permissions for the pool. Members can never unbond to a value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "type": 723, + "typeName": "DefensiveError" + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "PoolIdInUse", + "index": 21, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "index": 22, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "index": 23, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 723, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "index": 0 + }, + { + "name": "PoolNotFound", + "index": 1 + }, + { + "name": "RewardPoolNotFound", + "index": 2 + }, + { + "name": "SubPoolsNotFound", + "index": 3 + }, + { + "name": "BondedStashKilledPrematurely", + "index": 4 + } + ] + } + } + } + }, + { + "id": 724, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 93 + }, + { + "name": "RuntimeOrigin", + "type": 128 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 394 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 87 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "type": 725, + "typeName": "ReferendumStatus" + } + ], + "index": 0 + }, + { + "name": "Approved", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 1 + }, + { + "name": "Rejected", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 2 + }, + { + "name": "Cancelled", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 3 + }, + { + "name": "TimedOut", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 4 + }, + { + "name": "Killed", + "fields": [ + { + "type": 4, + "typeName": "Moment" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 725, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 93 + }, + { + "name": "RuntimeOrigin", + "type": 128 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 394 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 87 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 93, + "typeName": "TrackId" + }, + { + "name": "origin", + "type": 128, + "typeName": "RuntimeOrigin" + }, + { + "name": "proposal", + "type": 120, + "typeName": "Call" + }, + { + "name": "enactment", + "type": 350, + "typeName": "DispatchTime" + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment" + }, + { + "name": "submission_deposit", + "type": 671, + "typeName": "Deposit" + }, + { + "name": "decision_deposit", + "type": 672, + "typeName": "Option>" + }, + { + "name": "deciding", + "type": 673, + "typeName": "Option>" + }, + { + "name": "tally", + "type": 394, + "typeName": "Tally" + }, + { + "name": "in_queue", + "type": 41, + "typeName": "bool" + }, + { + "name": "alarm", + "type": 675, + "typeName": "Option<(Moment, ScheduleAddress)>" + } + ] + } + } + } + }, + { + "id": 726, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 87 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 403, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 727, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "index": 12, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 728, + "type": { + "path": [ + "pallet_ranked_collective", + "MemberRecord" + ], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 93, + "typeName": "Rank" + } + ] + } + } + } + }, + { + "id": 729, + "type": { + "def": { + "tuple": [ + 93, + 0 + ] + } + } + }, + { + "id": 730, + "type": { + "def": { + "tuple": [ + 93, + 4 + ] + } + } + }, + { + "id": 731, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 732, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "index": 0, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "index": 1, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotPolling", + "index": 2, + "docs": [ + "The given poll index is unknown or has closed." + ] + }, + { + "name": "Ongoing", + "index": 3, + "docs": [ + "The given poll is still ongoing." + ] + }, + { + "name": "NoneRemaining", + "index": 4, + "docs": [ + "There are no further records to be removed." + ] + }, + { + "name": "Corruption", + "index": 5, + "docs": [ + "Unexpected error in state." + ] + }, + { + "name": "RankTooLow", + "index": 6, + "docs": [ + "The member's rank is too low to vote." + ] + }, + { + "name": "InvalidWitness", + "index": 7, + "docs": [ + "The information provided is incorrect." + ] + }, + { + "name": "NoPermission", + "index": 8, + "docs": [ + "The origin is not sufficiently privileged to do the operation." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 733, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 734, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>" + }, + { + "name": "checked", + "type": 735, + "typeName": "BoundedVec>" + } + ] + } + } + } + }, + { + "id": 734, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 60 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 59, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 735, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 105, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 736, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 737, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "ready_neighbours", + "type": 738, + "typeName": "Option>" + }, + { + "name": "message_count", + "type": 10, + "typeName": "u64" + }, + { + "name": "size", + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 738, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 739 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 739 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 739, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 4, + "typeName": "MessageOrigin" + }, + { + "name": "next", + "type": 4, + "typeName": "MessageOrigin" + } + ] + } + } + } + }, + { + "id": 740, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size" + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size" + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size" + }, + { + "name": "first", + "type": 4, + "typeName": "Size" + }, + { + "name": "last", + "type": 4, + "typeName": "Size" + }, + { + "name": "heap", + "type": 741, + "typeName": "BoundedVec>" + } + ] + } + } + } + }, + { + "id": 741, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 742, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 743, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 744, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 147 + }, + { + "name": "Call", + "type": 121 + }, + { + "name": "Signature", + "type": 335 + }, + { + "name": "Extra", + "type": 745 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12 + } + ] + } + } + } + }, + { + "id": 745, + "type": { + "def": { + "tuple": [ + 746, + 747, + 748, + 749, + 750, + 752, + 753, + 754 + ] + } + } + }, + { + "id": 746, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 747, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 748, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 749, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 750, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 751, + "typeName": "Era" + } + ] + } + } + } + }, + { + "id": 751, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "index": 0 + }, + { + "name": "Mortal1", + "fields": [ + { + "type": 2 + } + ], + "index": 1 + }, + { + "name": "Mortal2", + "fields": [ + { + "type": 2 + } + ], + "index": 2 + }, + { + "name": "Mortal3", + "fields": [ + { + "type": 2 + } + ], + "index": 3 + }, + { + "name": "Mortal4", + "fields": [ + { + "type": 2 + } + ], + "index": 4 + }, + { + "name": "Mortal5", + "fields": [ + { + "type": 2 + } + ], + "index": 5 + }, + { + "name": "Mortal6", + "fields": [ + { + "type": 2 + } + ], + "index": 6 + }, + { + "name": "Mortal7", + "fields": [ + { + "type": 2 + } + ], + "index": 7 + }, + { + "name": "Mortal8", + "fields": [ + { + "type": 2 + } + ], + "index": 8 + }, + { + "name": "Mortal9", + "fields": [ + { + "type": 2 + } + ], + "index": 9 + }, + { + "name": "Mortal10", + "fields": [ + { + "type": 2 + } + ], + "index": 10 + }, + { + "name": "Mortal11", + "fields": [ + { + "type": 2 + } + ], + "index": 11 + }, + { + "name": "Mortal12", + "fields": [ + { + "type": 2 + } + ], + "index": 12 + }, + { + "name": "Mortal13", + "fields": [ + { + "type": 2 + } + ], + "index": 13 + }, + { + "name": "Mortal14", + "fields": [ + { + "type": 2 + } + ], + "index": 14 + }, + { + "name": "Mortal15", + "fields": [ + { + "type": 2 + } + ], + "index": 15 + }, + { + "name": "Mortal16", + "fields": [ + { + "type": 2 + } + ], + "index": 16 + }, + { + "name": "Mortal17", + "fields": [ + { + "type": 2 + } + ], + "index": 17 + }, + { + "name": "Mortal18", + "fields": [ + { + "type": 2 + } + ], + "index": 18 + }, + { + "name": "Mortal19", + "fields": [ + { + "type": 2 + } + ], + "index": 19 + }, + { + "name": "Mortal20", + "fields": [ + { + "type": 2 + } + ], + "index": 20 + }, + { + "name": "Mortal21", + "fields": [ + { + "type": 2 + } + ], + "index": 21 + }, + { + "name": "Mortal22", + "fields": [ + { + "type": 2 + } + ], + "index": 22 + }, + { + "name": "Mortal23", + "fields": [ + { + "type": 2 + } + ], + "index": 23 + }, + { + "name": "Mortal24", + "fields": [ + { + "type": 2 + } + ], + "index": 24 + }, + { + "name": "Mortal25", + "fields": [ + { + "type": 2 + } + ], + "index": 25 + }, + { + "name": "Mortal26", + "fields": [ + { + "type": 2 + } + ], + "index": 26 + }, + { + "name": "Mortal27", + "fields": [ + { + "type": 2 + } + ], + "index": 27 + }, + { + "name": "Mortal28", + "fields": [ + { + "type": 2 + } + ], + "index": 28 + }, + { + "name": "Mortal29", + "fields": [ + { + "type": 2 + } + ], + "index": 29 + }, + { + "name": "Mortal30", + "fields": [ + { + "type": 2 + } + ], + "index": 30 + }, + { + "name": "Mortal31", + "fields": [ + { + "type": 2 + } + ], + "index": 31 + }, + { + "name": "Mortal32", + "fields": [ + { + "type": 2 + } + ], + "index": 32 + }, + { + "name": "Mortal33", + "fields": [ + { + "type": 2 + } + ], + "index": 33 + }, + { + "name": "Mortal34", + "fields": [ + { + "type": 2 + } + ], + "index": 34 + }, + { + "name": "Mortal35", + "fields": [ + { + "type": 2 + } + ], + "index": 35 + }, + { + "name": "Mortal36", + "fields": [ + { + "type": 2 + } + ], + "index": 36 + }, + { + "name": "Mortal37", + "fields": [ + { + "type": 2 + } + ], + "index": 37 + }, + { + "name": "Mortal38", + "fields": [ + { + "type": 2 + } + ], + "index": 38 + }, + { + "name": "Mortal39", + "fields": [ + { + "type": 2 + } + ], + "index": 39 + }, + { + "name": "Mortal40", + "fields": [ + { + "type": 2 + } + ], + "index": 40 + }, + { + "name": "Mortal41", + "fields": [ + { + "type": 2 + } + ], + "index": 41 + }, + { + "name": "Mortal42", + "fields": [ + { + "type": 2 + } + ], + "index": 42 + }, + { + "name": "Mortal43", + "fields": [ + { + "type": 2 + } + ], + "index": 43 + }, + { + "name": "Mortal44", + "fields": [ + { + "type": 2 + } + ], + "index": 44 + }, + { + "name": "Mortal45", + "fields": [ + { + "type": 2 + } + ], + "index": 45 + }, + { + "name": "Mortal46", + "fields": [ + { + "type": 2 + } + ], + "index": 46 + }, + { + "name": "Mortal47", + "fields": [ + { + "type": 2 + } + ], + "index": 47 + }, + { + "name": "Mortal48", + "fields": [ + { + "type": 2 + } + ], + "index": 48 + }, + { + "name": "Mortal49", + "fields": [ + { + "type": 2 + } + ], + "index": 49 + }, + { + "name": "Mortal50", + "fields": [ + { + "type": 2 + } + ], + "index": 50 + }, + { + "name": "Mortal51", + "fields": [ + { + "type": 2 + } + ], + "index": 51 + }, + { + "name": "Mortal52", + "fields": [ + { + "type": 2 + } + ], + "index": 52 + }, + { + "name": "Mortal53", + "fields": [ + { + "type": 2 + } + ], + "index": 53 + }, + { + "name": "Mortal54", + "fields": [ + { + "type": 2 + } + ], + "index": 54 + }, + { + "name": "Mortal55", + "fields": [ + { + "type": 2 + } + ], + "index": 55 + }, + { + "name": "Mortal56", + "fields": [ + { + "type": 2 + } + ], + "index": 56 + }, + { + "name": "Mortal57", + "fields": [ + { + "type": 2 + } + ], + "index": 57 + }, + { + "name": "Mortal58", + "fields": [ + { + "type": 2 + } + ], + "index": 58 + }, + { + "name": "Mortal59", + "fields": [ + { + "type": 2 + } + ], + "index": 59 + }, + { + "name": "Mortal60", + "fields": [ + { + "type": 2 + } + ], + "index": 60 + }, + { + "name": "Mortal61", + "fields": [ + { + "type": 2 + } + ], + "index": 61 + }, + { + "name": "Mortal62", + "fields": [ + { + "type": 2 + } + ], + "index": 62 + }, + { + "name": "Mortal63", + "fields": [ + { + "type": 2 + } + ], + "index": 63 + }, + { + "name": "Mortal64", + "fields": [ + { + "type": 2 + } + ], + "index": 64 + }, + { + "name": "Mortal65", + "fields": [ + { + "type": 2 + } + ], + "index": 65 + }, + { + "name": "Mortal66", + "fields": [ + { + "type": 2 + } + ], + "index": 66 + }, + { + "name": "Mortal67", + "fields": [ + { + "type": 2 + } + ], + "index": 67 + }, + { + "name": "Mortal68", + "fields": [ + { + "type": 2 + } + ], + "index": 68 + }, + { + "name": "Mortal69", + "fields": [ + { + "type": 2 + } + ], + "index": 69 + }, + { + "name": "Mortal70", + "fields": [ + { + "type": 2 + } + ], + "index": 70 + }, + { + "name": "Mortal71", + "fields": [ + { + "type": 2 + } + ], + "index": 71 + }, + { + "name": "Mortal72", + "fields": [ + { + "type": 2 + } + ], + "index": 72 + }, + { + "name": "Mortal73", + "fields": [ + { + "type": 2 + } + ], + "index": 73 + }, + { + "name": "Mortal74", + "fields": [ + { + "type": 2 + } + ], + "index": 74 + }, + { + "name": "Mortal75", + "fields": [ + { + "type": 2 + } + ], + "index": 75 + }, + { + "name": "Mortal76", + "fields": [ + { + "type": 2 + } + ], + "index": 76 + }, + { + "name": "Mortal77", + "fields": [ + { + "type": 2 + } + ], + "index": 77 + }, + { + "name": "Mortal78", + "fields": [ + { + "type": 2 + } + ], + "index": 78 + }, + { + "name": "Mortal79", + "fields": [ + { + "type": 2 + } + ], + "index": 79 + }, + { + "name": "Mortal80", + "fields": [ + { + "type": 2 + } + ], + "index": 80 + }, + { + "name": "Mortal81", + "fields": [ + { + "type": 2 + } + ], + "index": 81 + }, + { + "name": "Mortal82", + "fields": [ + { + "type": 2 + } + ], + "index": 82 + }, + { + "name": "Mortal83", + "fields": [ + { + "type": 2 + } + ], + "index": 83 + }, + { + "name": "Mortal84", + "fields": [ + { + "type": 2 + } + ], + "index": 84 + }, + { + "name": "Mortal85", + "fields": [ + { + "type": 2 + } + ], + "index": 85 + }, + { + "name": "Mortal86", + "fields": [ + { + "type": 2 + } + ], + "index": 86 + }, + { + "name": "Mortal87", + "fields": [ + { + "type": 2 + } + ], + "index": 87 + }, + { + "name": "Mortal88", + "fields": [ + { + "type": 2 + } + ], + "index": 88 + }, + { + "name": "Mortal89", + "fields": [ + { + "type": 2 + } + ], + "index": 89 + }, + { + "name": "Mortal90", + "fields": [ + { + "type": 2 + } + ], + "index": 90 + }, + { + "name": "Mortal91", + "fields": [ + { + "type": 2 + } + ], + "index": 91 + }, + { + "name": "Mortal92", + "fields": [ + { + "type": 2 + } + ], + "index": 92 + }, + { + "name": "Mortal93", + "fields": [ + { + "type": 2 + } + ], + "index": 93 + }, + { + "name": "Mortal94", + "fields": [ + { + "type": 2 + } + ], + "index": 94 + }, + { + "name": "Mortal95", + "fields": [ + { + "type": 2 + } + ], + "index": 95 + }, + { + "name": "Mortal96", + "fields": [ + { + "type": 2 + } + ], + "index": 96 + }, + { + "name": "Mortal97", + "fields": [ + { + "type": 2 + } + ], + "index": 97 + }, + { + "name": "Mortal98", + "fields": [ + { + "type": 2 + } + ], + "index": 98 + }, + { + "name": "Mortal99", + "fields": [ + { + "type": 2 + } + ], + "index": 99 + }, + { + "name": "Mortal100", + "fields": [ + { + "type": 2 + } + ], + "index": 100 + }, + { + "name": "Mortal101", + "fields": [ + { + "type": 2 + } + ], + "index": 101 + }, + { + "name": "Mortal102", + "fields": [ + { + "type": 2 + } + ], + "index": 102 + }, + { + "name": "Mortal103", + "fields": [ + { + "type": 2 + } + ], + "index": 103 + }, + { + "name": "Mortal104", + "fields": [ + { + "type": 2 + } + ], + "index": 104 + }, + { + "name": "Mortal105", + "fields": [ + { + "type": 2 + } + ], + "index": 105 + }, + { + "name": "Mortal106", + "fields": [ + { + "type": 2 + } + ], + "index": 106 + }, + { + "name": "Mortal107", + "fields": [ + { + "type": 2 + } + ], + "index": 107 + }, + { + "name": "Mortal108", + "fields": [ + { + "type": 2 + } + ], + "index": 108 + }, + { + "name": "Mortal109", + "fields": [ + { + "type": 2 + } + ], + "index": 109 + }, + { + "name": "Mortal110", + "fields": [ + { + "type": 2 + } + ], + "index": 110 + }, + { + "name": "Mortal111", + "fields": [ + { + "type": 2 + } + ], + "index": 111 + }, + { + "name": "Mortal112", + "fields": [ + { + "type": 2 + } + ], + "index": 112 + }, + { + "name": "Mortal113", + "fields": [ + { + "type": 2 + } + ], + "index": 113 + }, + { + "name": "Mortal114", + "fields": [ + { + "type": 2 + } + ], + "index": 114 + }, + { + "name": "Mortal115", + "fields": [ + { + "type": 2 + } + ], + "index": 115 + }, + { + "name": "Mortal116", + "fields": [ + { + "type": 2 + } + ], + "index": 116 + }, + { + "name": "Mortal117", + "fields": [ + { + "type": 2 + } + ], + "index": 117 + }, + { + "name": "Mortal118", + "fields": [ + { + "type": 2 + } + ], + "index": 118 + }, + { + "name": "Mortal119", + "fields": [ + { + "type": 2 + } + ], + "index": 119 + }, + { + "name": "Mortal120", + "fields": [ + { + "type": 2 + } + ], + "index": 120 + }, + { + "name": "Mortal121", + "fields": [ + { + "type": 2 + } + ], + "index": 121 + }, + { + "name": "Mortal122", + "fields": [ + { + "type": 2 + } + ], + "index": 122 + }, + { + "name": "Mortal123", + "fields": [ + { + "type": 2 + } + ], + "index": 123 + }, + { + "name": "Mortal124", + "fields": [ + { + "type": 2 + } + ], + "index": 124 + }, + { + "name": "Mortal125", + "fields": [ + { + "type": 2 + } + ], + "index": 125 + }, + { + "name": "Mortal126", + "fields": [ + { + "type": 2 + } + ], + "index": 126 + }, + { + "name": "Mortal127", + "fields": [ + { + "type": 2 + } + ], + "index": 127 + }, + { + "name": "Mortal128", + "fields": [ + { + "type": 2 + } + ], + "index": 128 + }, + { + "name": "Mortal129", + "fields": [ + { + "type": 2 + } + ], + "index": 129 + }, + { + "name": "Mortal130", + "fields": [ + { + "type": 2 + } + ], + "index": 130 + }, + { + "name": "Mortal131", + "fields": [ + { + "type": 2 + } + ], + "index": 131 + }, + { + "name": "Mortal132", + "fields": [ + { + "type": 2 + } + ], + "index": 132 + }, + { + "name": "Mortal133", + "fields": [ + { + "type": 2 + } + ], + "index": 133 + }, + { + "name": "Mortal134", + "fields": [ + { + "type": 2 + } + ], + "index": 134 + }, + { + "name": "Mortal135", + "fields": [ + { + "type": 2 + } + ], + "index": 135 + }, + { + "name": "Mortal136", + "fields": [ + { + "type": 2 + } + ], + "index": 136 + }, + { + "name": "Mortal137", + "fields": [ + { + "type": 2 + } + ], + "index": 137 + }, + { + "name": "Mortal138", + "fields": [ + { + "type": 2 + } + ], + "index": 138 + }, + { + "name": "Mortal139", + "fields": [ + { + "type": 2 + } + ], + "index": 139 + }, + { + "name": "Mortal140", + "fields": [ + { + "type": 2 + } + ], + "index": 140 + }, + { + "name": "Mortal141", + "fields": [ + { + "type": 2 + } + ], + "index": 141 + }, + { + "name": "Mortal142", + "fields": [ + { + "type": 2 + } + ], + "index": 142 + }, + { + "name": "Mortal143", + "fields": [ + { + "type": 2 + } + ], + "index": 143 + }, + { + "name": "Mortal144", + "fields": [ + { + "type": 2 + } + ], + "index": 144 + }, + { + "name": "Mortal145", + "fields": [ + { + "type": 2 + } + ], + "index": 145 + }, + { + "name": "Mortal146", + "fields": [ + { + "type": 2 + } + ], + "index": 146 + }, + { + "name": "Mortal147", + "fields": [ + { + "type": 2 + } + ], + "index": 147 + }, + { + "name": "Mortal148", + "fields": [ + { + "type": 2 + } + ], + "index": 148 + }, + { + "name": "Mortal149", + "fields": [ + { + "type": 2 + } + ], + "index": 149 + }, + { + "name": "Mortal150", + "fields": [ + { + "type": 2 + } + ], + "index": 150 + }, + { + "name": "Mortal151", + "fields": [ + { + "type": 2 + } + ], + "index": 151 + }, + { + "name": "Mortal152", + "fields": [ + { + "type": 2 + } + ], + "index": 152 + }, + { + "name": "Mortal153", + "fields": [ + { + "type": 2 + } + ], + "index": 153 + }, + { + "name": "Mortal154", + "fields": [ + { + "type": 2 + } + ], + "index": 154 + }, + { + "name": "Mortal155", + "fields": [ + { + "type": 2 + } + ], + "index": 155 + }, + { + "name": "Mortal156", + "fields": [ + { + "type": 2 + } + ], + "index": 156 + }, + { + "name": "Mortal157", + "fields": [ + { + "type": 2 + } + ], + "index": 157 + }, + { + "name": "Mortal158", + "fields": [ + { + "type": 2 + } + ], + "index": 158 + }, + { + "name": "Mortal159", + "fields": [ + { + "type": 2 + } + ], + "index": 159 + }, + { + "name": "Mortal160", + "fields": [ + { + "type": 2 + } + ], + "index": 160 + }, + { + "name": "Mortal161", + "fields": [ + { + "type": 2 + } + ], + "index": 161 + }, + { + "name": "Mortal162", + "fields": [ + { + "type": 2 + } + ], + "index": 162 + }, + { + "name": "Mortal163", + "fields": [ + { + "type": 2 + } + ], + "index": 163 + }, + { + "name": "Mortal164", + "fields": [ + { + "type": 2 + } + ], + "index": 164 + }, + { + "name": "Mortal165", + "fields": [ + { + "type": 2 + } + ], + "index": 165 + }, + { + "name": "Mortal166", + "fields": [ + { + "type": 2 + } + ], + "index": 166 + }, + { + "name": "Mortal167", + "fields": [ + { + "type": 2 + } + ], + "index": 167 + }, + { + "name": "Mortal168", + "fields": [ + { + "type": 2 + } + ], + "index": 168 + }, + { + "name": "Mortal169", + "fields": [ + { + "type": 2 + } + ], + "index": 169 + }, + { + "name": "Mortal170", + "fields": [ + { + "type": 2 + } + ], + "index": 170 + }, + { + "name": "Mortal171", + "fields": [ + { + "type": 2 + } + ], + "index": 171 + }, + { + "name": "Mortal172", + "fields": [ + { + "type": 2 + } + ], + "index": 172 + }, + { + "name": "Mortal173", + "fields": [ + { + "type": 2 + } + ], + "index": 173 + }, + { + "name": "Mortal174", + "fields": [ + { + "type": 2 + } + ], + "index": 174 + }, + { + "name": "Mortal175", + "fields": [ + { + "type": 2 + } + ], + "index": 175 + }, + { + "name": "Mortal176", + "fields": [ + { + "type": 2 + } + ], + "index": 176 + }, + { + "name": "Mortal177", + "fields": [ + { + "type": 2 + } + ], + "index": 177 + }, + { + "name": "Mortal178", + "fields": [ + { + "type": 2 + } + ], + "index": 178 + }, + { + "name": "Mortal179", + "fields": [ + { + "type": 2 + } + ], + "index": 179 + }, + { + "name": "Mortal180", + "fields": [ + { + "type": 2 + } + ], + "index": 180 + }, + { + "name": "Mortal181", + "fields": [ + { + "type": 2 + } + ], + "index": 181 + }, + { + "name": "Mortal182", + "fields": [ + { + "type": 2 + } + ], + "index": 182 + }, + { + "name": "Mortal183", + "fields": [ + { + "type": 2 + } + ], + "index": 183 + }, + { + "name": "Mortal184", + "fields": [ + { + "type": 2 + } + ], + "index": 184 + }, + { + "name": "Mortal185", + "fields": [ + { + "type": 2 + } + ], + "index": 185 + }, + { + "name": "Mortal186", + "fields": [ + { + "type": 2 + } + ], + "index": 186 + }, + { + "name": "Mortal187", + "fields": [ + { + "type": 2 + } + ], + "index": 187 + }, + { + "name": "Mortal188", + "fields": [ + { + "type": 2 + } + ], + "index": 188 + }, + { + "name": "Mortal189", + "fields": [ + { + "type": 2 + } + ], + "index": 189 + }, + { + "name": "Mortal190", + "fields": [ + { + "type": 2 + } + ], + "index": 190 + }, + { + "name": "Mortal191", + "fields": [ + { + "type": 2 + } + ], + "index": 191 + }, + { + "name": "Mortal192", + "fields": [ + { + "type": 2 + } + ], + "index": 192 + }, + { + "name": "Mortal193", + "fields": [ + { + "type": 2 + } + ], + "index": 193 + }, + { + "name": "Mortal194", + "fields": [ + { + "type": 2 + } + ], + "index": 194 + }, + { + "name": "Mortal195", + "fields": [ + { + "type": 2 + } + ], + "index": 195 + }, + { + "name": "Mortal196", + "fields": [ + { + "type": 2 + } + ], + "index": 196 + }, + { + "name": "Mortal197", + "fields": [ + { + "type": 2 + } + ], + "index": 197 + }, + { + "name": "Mortal198", + "fields": [ + { + "type": 2 + } + ], + "index": 198 + }, + { + "name": "Mortal199", + "fields": [ + { + "type": 2 + } + ], + "index": 199 + }, + { + "name": "Mortal200", + "fields": [ + { + "type": 2 + } + ], + "index": 200 + }, + { + "name": "Mortal201", + "fields": [ + { + "type": 2 + } + ], + "index": 201 + }, + { + "name": "Mortal202", + "fields": [ + { + "type": 2 + } + ], + "index": 202 + }, + { + "name": "Mortal203", + "fields": [ + { + "type": 2 + } + ], + "index": 203 + }, + { + "name": "Mortal204", + "fields": [ + { + "type": 2 + } + ], + "index": 204 + }, + { + "name": "Mortal205", + "fields": [ + { + "type": 2 + } + ], + "index": 205 + }, + { + "name": "Mortal206", + "fields": [ + { + "type": 2 + } + ], + "index": 206 + }, + { + "name": "Mortal207", + "fields": [ + { + "type": 2 + } + ], + "index": 207 + }, + { + "name": "Mortal208", + "fields": [ + { + "type": 2 + } + ], + "index": 208 + }, + { + "name": "Mortal209", + "fields": [ + { + "type": 2 + } + ], + "index": 209 + }, + { + "name": "Mortal210", + "fields": [ + { + "type": 2 + } + ], + "index": 210 + }, + { + "name": "Mortal211", + "fields": [ + { + "type": 2 + } + ], + "index": 211 + }, + { + "name": "Mortal212", + "fields": [ + { + "type": 2 + } + ], + "index": 212 + }, + { + "name": "Mortal213", + "fields": [ + { + "type": 2 + } + ], + "index": 213 + }, + { + "name": "Mortal214", + "fields": [ + { + "type": 2 + } + ], + "index": 214 + }, + { + "name": "Mortal215", + "fields": [ + { + "type": 2 + } + ], + "index": 215 + }, + { + "name": "Mortal216", + "fields": [ + { + "type": 2 + } + ], + "index": 216 + }, + { + "name": "Mortal217", + "fields": [ + { + "type": 2 + } + ], + "index": 217 + }, + { + "name": "Mortal218", + "fields": [ + { + "type": 2 + } + ], + "index": 218 + }, + { + "name": "Mortal219", + "fields": [ + { + "type": 2 + } + ], + "index": 219 + }, + { + "name": "Mortal220", + "fields": [ + { + "type": 2 + } + ], + "index": 220 + }, + { + "name": "Mortal221", + "fields": [ + { + "type": 2 + } + ], + "index": 221 + }, + { + "name": "Mortal222", + "fields": [ + { + "type": 2 + } + ], + "index": 222 + }, + { + "name": "Mortal223", + "fields": [ + { + "type": 2 + } + ], + "index": 223 + }, + { + "name": "Mortal224", + "fields": [ + { + "type": 2 + } + ], + "index": 224 + }, + { + "name": "Mortal225", + "fields": [ + { + "type": 2 + } + ], + "index": 225 + }, + { + "name": "Mortal226", + "fields": [ + { + "type": 2 + } + ], + "index": 226 + }, + { + "name": "Mortal227", + "fields": [ + { + "type": 2 + } + ], + "index": 227 + }, + { + "name": "Mortal228", + "fields": [ + { + "type": 2 + } + ], + "index": 228 + }, + { + "name": "Mortal229", + "fields": [ + { + "type": 2 + } + ], + "index": 229 + }, + { + "name": "Mortal230", + "fields": [ + { + "type": 2 + } + ], + "index": 230 + }, + { + "name": "Mortal231", + "fields": [ + { + "type": 2 + } + ], + "index": 231 + }, + { + "name": "Mortal232", + "fields": [ + { + "type": 2 + } + ], + "index": 232 + }, + { + "name": "Mortal233", + "fields": [ + { + "type": 2 + } + ], + "index": 233 + }, + { + "name": "Mortal234", + "fields": [ + { + "type": 2 + } + ], + "index": 234 + }, + { + "name": "Mortal235", + "fields": [ + { + "type": 2 + } + ], + "index": 235 + }, + { + "name": "Mortal236", + "fields": [ + { + "type": 2 + } + ], + "index": 236 + }, + { + "name": "Mortal237", + "fields": [ + { + "type": 2 + } + ], + "index": 237 + }, + { + "name": "Mortal238", + "fields": [ + { + "type": 2 + } + ], + "index": 238 + }, + { + "name": "Mortal239", + "fields": [ + { + "type": 2 + } + ], + "index": 239 + }, + { + "name": "Mortal240", + "fields": [ + { + "type": 2 + } + ], + "index": 240 + }, + { + "name": "Mortal241", + "fields": [ + { + "type": 2 + } + ], + "index": 241 + }, + { + "name": "Mortal242", + "fields": [ + { + "type": 2 + } + ], + "index": 242 + }, + { + "name": "Mortal243", + "fields": [ + { + "type": 2 + } + ], + "index": 243 + }, + { + "name": "Mortal244", + "fields": [ + { + "type": 2 + } + ], + "index": 244 + }, + { + "name": "Mortal245", + "fields": [ + { + "type": 2 + } + ], + "index": 245 + }, + { + "name": "Mortal246", + "fields": [ + { + "type": 2 + } + ], + "index": 246 + }, + { + "name": "Mortal247", + "fields": [ + { + "type": 2 + } + ], + "index": 247 + }, + { + "name": "Mortal248", + "fields": [ + { + "type": 2 + } + ], + "index": 248 + }, + { + "name": "Mortal249", + "fields": [ + { + "type": 2 + } + ], + "index": 249 + }, + { + "name": "Mortal250", + "fields": [ + { + "type": 2 + } + ], + "index": 250 + }, + { + "name": "Mortal251", + "fields": [ + { + "type": 2 + } + ], + "index": 251 + }, + { + "name": "Mortal252", + "fields": [ + { + "type": 2 + } + ], + "index": 252 + }, + { + "name": "Mortal253", + "fields": [ + { + "type": 2 + } + ], + "index": 253 + }, + { + "name": "Mortal254", + "fields": [ + { + "type": 2 + } + ], + "index": 254 + }, + { + "name": "Mortal255", + "fields": [ + { + "type": 2 + } + ], + "index": 255 + } + ] + } + } + } + }, + { + "id": 752, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 138, + "typeName": "T::Index" + } + ] + } + } + } + }, + { + "id": 753, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 754, + "type": { + "path": [ + "pallet_asset_tx_payment", + "ChargeAssetTxPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "tip", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "asset_id", + "type": 37, + "typeName": "Option>" + } + ] + } + } + } + }, + { + "id": 755, + "type": { + "path": [ + "kitchensink_runtime", + "Runtime" + ], + "def": { + "composite": {} + } + } + } + ] + }, + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "entries": [ + { + "name": "Account", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "ty": { + "Plain": 7 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 11 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 12 + } + }, + "default": [ + 0 + ], + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "ty": { + "Plain": 11 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "ty": { + "Plain": 13 + }, + "default": [ + 0 + ], + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "ty": { + "Plain": 17 + }, + "default": [ + 0 + ], + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 11, + "value": 403 + } + }, + "default": [ + 0 + ], + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "ty": { + "Plain": 404 + }, + "default": [ + 0 + ], + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "ty": { + "Plain": 401 + }, + "default": [ + 0 + ], + "docs": [ + " The execution phase of the block." + ] + } + ] + }, + "calls": { + "ty": 122 + }, + "event": { + "ty": 20 + }, + "constants": [ + { + "name": "BlockWeights", + "ty": 406, + "value": [ + 98, + 79, + 215, + 90, + 0, + 11, + 0, + 32, + 74, + 169, + 209, + 1, + 19, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 2, + 192, + 205, + 23, + 0, + 1, + 11, + 0, + 88, + 22, + 168, + 46, + 1, + 19, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 166, + 1, + 11, + 0, + 152, + 247, + 62, + 93, + 1, + 19, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 191, + 1, + 0, + 0, + 2, + 192, + 205, + 23, + 0, + 1, + 11, + 0, + 224, + 104, + 18, + 163, + 1, + 19, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 230, + 1, + 11, + 0, + 32, + 74, + 169, + 209, + 1, + 19, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 1, + 7, + 0, + 136, + 82, + 106, + 116, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 64, + 2, + 192, + 205, + 23, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "ty": 409, + "value": [ + 0, + 0, + 60, + 0, + 0, + 0, + 80, + 0, + 0, + 0, + 80, + 0 + ], + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "ty": 4, + "value": [ + 96, + 9, + 0, + 0 + ], + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "ty": 411, + "value": [ + 64, + 120, + 125, + 1, + 0, + 0, + 0, + 0, + 0, + 225, + 245, + 5, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "ty": 412, + "value": [ + 16, + 110, + 111, + 100, + 101, + 56, + 115, + 117, + 98, + 115, + 116, + 114, + 97, + 116, + 101, + 45, + 110, + 111, + 100, + 101, + 10, + 0, + 0, + 0, + 12, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 68, + 223, + 106, + 203, + 104, + 153, + 7, + 96, + 155, + 4, + 0, + 0, + 0, + 55, + 227, + 151, + 252, + 124, + 145, + 245, + 228, + 1, + 0, + 0, + 0, + 64, + 254, + 58, + 212, + 1, + 248, + 149, + 154, + 6, + 0, + 0, + 0, + 210, + 188, + 152, + 151, + 238, + 208, + 143, + 21, + 3, + 0, + 0, + 0, + 247, + 139, + 39, + 139, + 229, + 63, + 69, + 76, + 2, + 0, + 0, + 0, + 237, + 153, + 197, + 172, + 178, + 94, + 237, + 245, + 3, + 0, + 0, + 0, + 23, + 166, + 188, + 13, + 0, + 98, + 174, + 179, + 1, + 0, + 0, + 0, + 24, + 239, + 88, + 163, + 182, + 123, + 167, + 112, + 1, + 0, + 0, + 0, + 203, + 202, + 37, + 227, + 159, + 20, + 35, + 135, + 2, + 0, + 0, + 0, + 104, + 122, + 212, + 74, + 211, + 127, + 3, + 194, + 1, + 0, + 0, + 0, + 188, + 157, + 137, + 144, + 79, + 91, + 146, + 63, + 1, + 0, + 0, + 0, + 104, + 182, + 107, + 161, + 34, + 201, + 63, + 167, + 2, + 0, + 0, + 0, + 55, + 200, + 187, + 19, + 80, + 169, + 162, + 168, + 3, + 0, + 0, + 0, + 243, + 255, + 20, + 213, + 171, + 82, + 112, + 89, + 3, + 0, + 0, + 0, + 137, + 154, + 37, + 12, + 190, + 132, + 242, + 80, + 1, + 0, + 0, + 0, + 145, + 213, + 223, + 24, + 176, + 210, + 207, + 88, + 1, + 0, + 0, + 0, + 171, + 60, + 5, + 114, + 41, + 31, + 235, + 139, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "docs": [ + " Get the chain's current version." + ] + }, + { + "name": "SS58Prefix", + "ty": 93, + "value": [ + 42, + 0 + ], + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "error": { + "ty": 416 + }, + "index": 0 + }, + { + "name": "Utility", + "storage": null, + "calls": { + "ty": 126 + }, + "event": { + "ty": 29 + }, + "constants": [ + { + "name": "batched_calls_limit", + "ty": 4, + "value": [ + 170, + 42, + 0, + 0 + ], + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "error": { + "ty": 417 + }, + "index": 1 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "entries": [ + { + "name": "EpochIndex", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "ty": { + "Plain": 418 + }, + "default": [ + 0 + ], + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "ty": { + "Plain": 140 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "ty": { + "Plain": 140 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "ty": { + "Plain": 1 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "ty": { + "Plain": 142 + }, + "default": [ + 0 + ], + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "ty": { + "Plain": 1 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "ty": { + "Plain": 418 + }, + "default": [ + 0 + ], + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 421 + } + }, + "default": [ + 0 + ], + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "ty": { + "Plain": 423 + }, + "default": [ + 0 + ], + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "ty": { + "Plain": 88 + }, + "default": [ + 0 + ], + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "ty": { + "Plain": 87 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "ty": { + "Plain": 428 + }, + "default": [ + 0 + ], + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "ty": { + "Plain": 428 + }, + "default": [ + 0 + ], + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "ty": { + "Plain": 429 + }, + "default": [ + 0 + ], + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ] + } + ] + }, + "calls": { + "ty": 134 + }, + "event": null, + "constants": [ + { + "name": "EpochDuration", + "ty": 10, + "value": [ + 200, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "ty": 10, + "value": [ + 184, + 11, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + }, + { + "name": "MaxAuthorities", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Max number of authorities allowed" + ] + } + ], + "error": { + "ty": 432 + }, + "index": 2 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "entries": [ + { + "name": "Now", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": { + "ty": 145 + }, + "event": null, + "constants": [ + { + "name": "MinimumPeriod", + "ty": 10, + "value": [ + 220, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected*", + " period that the block production apparatus provides. Your chosen consensus system will", + " generally work with this to determine a sensible block time. e.g. For Aura, it will be", + " double this period on default settings." + ] + } + ], + "error": null, + "index": 3 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "entries": [ + { + "name": "Author", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 4 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "entries": [ + { + "name": "Accounts", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 433 + } + }, + "default": [ + 0 + ], + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "ty": 146 + }, + "event": { + "ty": 32 + }, + "constants": [ + { + "name": "Deposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "error": { + "ty": 434 + }, + "index": 5 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "entries": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 435 + } + }, + "default": [ + 0 + ], + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 439 + } + }, + "default": [ + 0 + ], + "docs": [ + " Named reserves on some account balances." + ] + } + ] + }, + "calls": { + "ty": 149 + }, + "event": { + "ty": 33 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount required to keep an account open." + ] + }, + { + "name": "MaxLocks", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation." + ] + }, + { + "name": "MaxReserves", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of named reserves that can exist on an account." + ] + } + ], + "error": { + "ty": 442 + }, + "index": 6 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "entries": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "ty": { + "Plain": 443 + }, + "default": [ + 0, + 0, + 100, + 167, + 179, + 182, + 224, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "ty": { + "Plain": 444 + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": null, + "event": { + "ty": 35 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "ty": 2, + "value": [ + 5 + ], + "docs": [ + " A fee mulitplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multipled by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "error": null, + "index": 7 + }, + { + "name": "AssetTxPayment", + "storage": null, + "calls": null, + "event": { + "ty": 36 + }, + "constants": [], + "error": null, + "index": 8 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "entries": [ + { + "name": "Round", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 1, + 0, + 0, + 0 + ], + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "ty": { + "Plain": 43 + }, + "default": [ + 0 + ], + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "ty": { + "Plain": 445 + }, + "default": [ + 0 + ], + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "ty": { + "Plain": 447 + }, + "default": [ + 0 + ], + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "ty": { + "Plain": 203 + }, + "default": [ + 0 + ], + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "ty": { + "Plain": 451 + }, + "default": [ + 0 + ], + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 454 + } + }, + "default": [ + 0 + ], + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "ty": { + "Plain": 42 + }, + "default": [ + 0 + ], + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": { + "ty": 150 + }, + "event": { + "ty": 38 + }, + "constants": [ + { + "name": "UnsignedPhase", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "BetterSignedThreshold", + "ty": 46, + "value": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ] + }, + { + "name": "BetterUnsignedThreshold", + "ty": 46, + "value": [ + 160, + 134, + 1, + 0 + ], + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Unsigned phase." + ] + }, + { + "name": "OffchainRepeat", + "ty": 4, + "value": [ + 5, + 0, + 0, + 0 + ], + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "ty": 10, + "value": [ + 254, + 255, + 255, + 255, + 255, + 255, + 255, + 127 + ], + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "SignedMaxSubmissions", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "ty": 8, + "value": [ + 11, + 40, + 132, + 96, + 145, + 46, + 1, + 19, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 166 + ], + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ] + }, + { + "name": "SignedMaxRefunds", + "ty": 4, + "value": [ + 3, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ] + }, + { + "name": "SignedRewardBase", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositBase", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Base deposit for a signed solution." + ] + }, + { + "name": "SignedDepositByte", + "ty": 6, + "value": [ + 0, + 16, + 165, + 212, + 232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "ty": 6, + "value": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MaxElectingVoters", + "ty": 4, + "value": [ + 64, + 156, + 0, + 0 + ], + "docs": [ + " The maximum number of electing voters to put in the snapshot. At the moment, snapshots", + " are only over a single block, but once multi-block elections are introduced they will", + " take place over multiple blocks." + ] + }, + { + "name": "MaxElectableTargets", + "ty": 93, + "value": [ + 16, + 39 + ], + "docs": [ + " The maximum number of electable targets to put in the snapshot." + ] + }, + { + "name": "MaxWinners", + "ty": 4, + "value": [ + 232, + 3, + 0, + 0 + ], + "docs": [ + " The maximum number of winners that can be elected by this `ElectionProvider`", + " implementation.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ] + }, + { + "name": "MinerMaxLength", + "ty": 4, + "value": [ + 0, + 0, + 54, + 0 + ], + "docs": [] + }, + { + "name": "MinerMaxWeight", + "ty": 8, + "value": [ + 11, + 40, + 132, + 96, + 145, + 46, + 1, + 19, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 166 + ], + "docs": [] + }, + { + "name": "MinerMaxVotesPerVoter", + "ty": 4, + "value": [ + 16, + 0, + 0, + 0 + ], + "docs": [] + } + ], + "error": { + "ty": 455 + }, + "index": 9 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "entries": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "ty": { + "Plain": 46 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 456 + } + }, + "default": [ + 0 + ], + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 209 + } + }, + "default": [ + 0 + ], + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 47 + } + }, + "default": [ + 0, + 0 + ], + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 461 + } + }, + "default": [ + 0 + ], + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " [`Config::MaxNominations`] configuration is decreased. In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "ty": { + "Plain": 462 + }, + "default": [ + 0 + ], + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The session index at which the era start for the last `HISTORY_DEPTH` eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 75 + } + }, + "default": [ + 0, + 0, + 0 + ], + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 75 + } + }, + "default": [ + 0, + 0, + 0 + ], + "docs": [ + " Clipped Exposure of validator at era.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxNominatorRewardedPerValidator` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 47 + } + }, + "default": [ + 0, + 0 + ], + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "default": [ + 0 + ], + "docs": [ + " The total validator era payout for the last `HISTORY_DEPTH` eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 465 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Rewards for the last `HISTORY_DEPTH` eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total amount staked for the last `HISTORY_DEPTH` eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "ty": { + "Plain": 49 + }, + "default": [ + 0 + ], + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "ty": { + "Plain": 46 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 469 + } + }, + "default": [ + 0 + ], + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "ty": { + "Plain": 403 + }, + "default": [ + 0 + ], + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 471 + } + }, + "default": [ + 0 + ], + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 6 + } + }, + "default": [ + 0 + ], + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 472 + } + }, + "default": [ + 0 + ], + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 468, + "value": 473 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "OffendingValidators", + "modifier": "Default", + "ty": { + "Plain": 474 + }, + "default": [ + 0 + ], + "docs": [ + " Indices of validators that have offended in the active era and whether they are currently", + " disabled.", + "", + " This value should be a superset of disabled validators since not all offences lead to the", + " validator being disabled (if there was no slash). This is needed to track the percentage of", + " validators that have offended in the current era, ensuring a new era is forced if", + " `OffendingValidatorsThreshold` is reached. The vec is always kept sorted so that we can find", + " whether a given validator has previously offended using binary search. It gets cleared when", + " the era ends." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "ty": { + "Plain": 211 + }, + "default": [ + 0 + ], + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": { + "ty": 208 + }, + "event": { + "ty": 45 + }, + "constants": [ + { + "name": "MaxNominations", + "ty": 4, + "value": [ + 16, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of nominations per nominator." + ] + }, + { + "name": "HistoryDepth", + "ty": 4, + "value": [ + 84, + 0, + 0, + 0 + ], + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`,", + " `StakingLedger.claimed_rewards`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ] + }, + { + "name": "SessionsPerEra", + "ty": 4, + "value": [ + 6, + 0, + 0, + 0 + ], + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "ty": 4, + "value": [ + 160, + 2, + 0, + 0 + ], + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "ty": 4, + "value": [ + 168, + 0, + 0, + 0 + ], + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxNominatorRewardedPerValidator", + "ty": 4, + "value": [ + 0, + 1, + 0, + 0 + ], + "docs": [ + " The maximum number of nominators rewarded for each validator.", + "", + " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can", + " claim their reward. This used to limit the i/o cost for the nominator payout." + ] + }, + { + "name": "MaxUnlockingChunks", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + } + ], + "error": { + "ty": 476 + }, + "index": 10 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "entries": [ + { + "name": "Validators", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "ty": { + "Plain": 477 + }, + "default": [ + 0 + ], + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "ty": { + "Plain": 105 + }, + "default": [ + 0 + ], + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 217 + } + }, + "default": [ + 0 + ], + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 479, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "ty": 216 + }, + "event": { + "ty": 50 + }, + "constants": [], + "error": { + "ty": 481 + }, + "index": 11 + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "entries": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "ty": { + "Plain": 482 + }, + "default": [ + 0 + ], + "docs": [ + " The public proposals. Unsorted. The second item is the proposal." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 485 + } + }, + "default": [ + 0 + ], + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 487 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 490 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "ty": { + "Plain": 496 + }, + "default": [ + 0 + ], + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 497 + } + }, + "default": [ + 0 + ], + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 41 + } + }, + "default": [ + 0 + ], + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 55, + "value": 11 + } + }, + "default": [ + 0 + ], + "docs": [ + " General information concerning any proposal or referendum.", + " The `PreimageHash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "ty": 219 + }, + "event": { + "ty": 51 + }, + "constants": [ + { + "name": "EnactmentPeriod", + "ty": 4, + "value": [ + 0, + 47, + 13, + 0 + ], + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "VoteLockingPeriod", + "ty": 4, + "value": [ + 0, + 47, + 13, + 0 + ], + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + }, + { + "name": "MinimumDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "InstantAllowed", + "ty": 41, + "value": [ + 1 + ], + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ] + }, + { + "name": "FastTrackVotingPeriod", + "ty": 4, + "value": [ + 128, + 81, + 1, + 0 + ], + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ] + }, + { + "name": "CooloffPeriod", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "MaxVotes", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ] + }, + { + "name": "MaxProposals", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of public proposals that can exist at any time." + ] + }, + { + "name": "MaxDeposits", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of deposits a public proposal may have at any time." + ] + }, + { + "name": "MaxBlacklisted", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of items which can be blacklisted." + ] + } + ], + "error": { + "ty": 498 + }, + "index": 12 + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "entries": [ + { + "name": "Proposals", + "modifier": "Default", + "ty": { + "Plain": 499 + }, + "default": [ + 0 + ], + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 121 + } + }, + "default": [ + 0 + ], + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 500 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": { + "ty": 222 + }, + "event": { + "ty": 56 + }, + "constants": [], + "error": { + "ty": 501 + }, + "index": 13 + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "entries": [ + { + "name": "Proposals", + "modifier": "Default", + "ty": { + "Plain": 502 + }, + "default": [ + 0 + ], + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 121 + } + }, + "default": [ + 0 + ], + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 500 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": { + "ty": 225 + }, + "event": { + "ty": 57 + }, + "constants": [], + "error": { + "ty": 503 + }, + "index": 14 + }, + { + "name": "Elections", + "storage": { + "prefix": "Elections", + "entries": [ + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 504 + }, + "default": [ + 0 + ], + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "ty": { + "Plain": 504 + }, + "default": [ + 0 + ], + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "ty": { + "Plain": 59 + }, + "default": [ + 0 + ], + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 506 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": { + "ty": 226 + }, + "event": { + "ty": 58 + }, + "constants": [ + { + "name": "PalletId", + "ty": 266, + "value": [ + 112, + 104, + 114, + 101, + 108, + 101, + 99, + 116 + ], + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "ty": 6, + "value": [ + 0, + 240, + 67, + 109, + 227, + 106, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "ty": 6, + "value": [ + 0, + 0, + 204, + 123, + 159, + 174, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "ty": 4, + "value": [ + 13, + 0, + 0, + 0 + ], + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "ty": 4, + "value": [ + 7, + 0, + 0, + 0 + ], + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "ty": 4, + "value": [ + 128, + 19, + 3, + 0 + ], + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + }, + { + "name": "MaxCandidates", + "ty": 4, + "value": [ + 64, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of candidates in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When this limit is reached no more candidates are accepted in the election." + ] + }, + { + "name": "MaxVoters", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " The maximum number of voters to allow in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When the limit is reached the new voters are ignored." + ] + }, + { + "name": "MaxVotesPerVoter", + "ty": 4, + "value": [ + 16, + 0, + 0, + 0 + ], + "docs": [ + " Maximum numbers of votes per voter.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`." + ] + } + ], + "error": { + "ty": 507 + }, + "index": 15 + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "TechnicalMembership", + "entries": [ + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 508 + }, + "default": [ + 0 + ], + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": { + "ty": 228 + }, + "event": { + "ty": 61 + }, + "constants": [], + "error": { + "ty": 509 + }, + "index": 16 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "entries": [ + { + "name": "State", + "modifier": "Default", + "ty": { + "Plain": 510 + }, + "default": [ + 0 + ], + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "ty": { + "Plain": 511 + }, + "default": [ + 0 + ], + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "ty": { + "Plain": 87 + }, + "default": [ + 0 + ], + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 10, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + } + ] + }, + "calls": { + "ty": 229 + }, + "event": { + "ty": 62 + }, + "constants": [ + { + "name": "MaxAuthorities", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Max Authorities in use" + ] + }, + { + "name": "MaxSetIdSessionEntries", + "ty": 10, + "value": [ + 192, + 15, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "error": { + "ty": 513 + }, + "index": 17 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "entries": [ + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 514 + } + }, + "default": [ + 0 + ], + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "ty": { + "Plain": 515 + }, + "default": [ + 0 + ], + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + } + ] + }, + "calls": { + "ty": 241 + }, + "event": { + "ty": 67 + }, + "constants": [ + { + "name": "ProposalBond", + "ty": 516, + "value": [ + 80, + 195, + 0, + 0 + ], + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "ProposalBondMaximum", + "ty": 317, + "value": [ + 0 + ], + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "ty": 4, + "value": [ + 128, + 112, + 0, + 0 + ], + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "ty": 516, + "value": [ + 32, + 161, + 7, + 0 + ], + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 116, + 114, + 115, + 114, + 121 + ], + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + } + ], + "error": { + "ty": 518 + }, + "index": 18 + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contracts", + "entries": [ + { + "name": "PristineCode", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 519 + } + }, + "default": [ + 0 + ], + "docs": [ + " A mapping from an original code hash to the original code, untouched by instrumentation." + ] + }, + { + "name": "CodeStorage", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 520 + } + }, + "default": [ + 0 + ], + "docs": [ + " A mapping between an original code hash and instrumented wasm code, ready for execution." + ] + }, + { + "name": "OwnerInfoOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 522 + } + }, + "default": [ + 0 + ], + "docs": [ + " A mapping between an original code hash and its owner information." + ] + }, + { + "name": "Nonce", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " This is a **monotonic** counter incremented on contract instantiation.", + "", + " This is used in order to generate unique trie ids for contracts.", + " The trie id of a new contract is calculated from hash(account_id, nonce).", + " The nonce is required because otherwise the following sequence would lead to", + " a possible collision of storage:", + "", + " 1. Create a new contract.", + " 2. Terminate the contract.", + " 3. Immediately recreate the contract with the same account_id.", + "", + " This is bad because the contents of a trie are deleted lazily and there might be", + " storage of the old instantiation still in it when the new contract is created. Please", + " note that we can't replace the counter by the block number because the sequence above", + " can happen in the same block. We also can't keep the account counter in memory only", + " because storage is the only way to communicate across different extrinsics in the", + " same block.", + "", + " # Note", + "", + " Do not use it to determine the number of contracts. It won't be decremented if", + " a contract is destroyed." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 523 + } + }, + "default": [ + 0 + ], + "docs": [ + " The code associated with a given account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "DeletionQueue", + "modifier": "Default", + "ty": { + "Plain": 525 + }, + "default": [ + 0 + ], + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_initialize`." + ] + } + ] + }, + "calls": { + "ty": 242 + }, + "event": { + "ty": 68 + }, + "constants": [ + { + "name": "Schedule", + "ty": 528, + "value": [ + 4, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 4, + 0, + 0, + 128, + 0, + 0, + 0, + 16, + 0, + 0, + 0, + 0, + 16, + 0, + 0, + 0, + 1, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 64, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 8, + 0, + 0, + 240, + 25, + 0, + 0, + 6, + 23, + 0, + 0, + 183, + 12, + 0, + 0, + 67, + 27, + 0, + 0, + 239, + 8, + 0, + 0, + 244, + 12, + 0, + 0, + 81, + 21, + 0, + 0, + 46, + 0, + 0, + 0, + 3, + 75, + 0, + 0, + 23, + 90, + 0, + 0, + 241, + 8, + 0, + 0, + 145, + 3, + 0, + 0, + 230, + 9, + 0, + 0, + 235, + 10, + 0, + 0, + 156, + 9, + 0, + 0, + 252, + 26, + 0, + 0, + 226, + 27, + 0, + 0, + 183, + 23, + 0, + 0, + 93, + 226, + 225, + 0, + 88, + 8, + 0, + 0, + 176, + 8, + 0, + 0, + 166, + 9, + 0, + 0, + 106, + 9, + 0, + 0, + 18, + 8, + 0, + 0, + 203, + 7, + 0, + 0, + 10, + 8, + 0, + 0, + 98, + 11, + 0, + 0, + 80, + 11, + 0, + 0, + 27, + 11, + 0, + 0, + 71, + 11, + 0, + 0, + 73, + 11, + 0, + 0, + 200, + 11, + 0, + 0, + 87, + 11, + 0, + 0, + 49, + 12, + 0, + 0, + 90, + 11, + 0, + 0, + 142, + 11, + 0, + 0, + 226, + 10, + 0, + 0, + 126, + 10, + 0, + 0, + 128, + 10, + 0, + 0, + 81, + 35, + 0, + 0, + 208, + 32, + 0, + 0, + 106, + 36, + 0, + 0, + 161, + 32, + 0, + 0, + 233, + 10, + 0, + 0, + 128, + 13, + 0, + 0, + 233, + 10, + 0, + 0, + 2, + 11, + 0, + 0, + 39, + 11, + 0, + 0, + 29, + 11, + 0, + 0, + 34, + 11, + 0, + 0, + 229, + 10, + 0, + 0, + 22, + 132, + 13, + 0, + 120, + 66, + 237, + 179, + 6, + 241, + 59, + 146, + 107, + 220, + 6, + 65, + 60, + 118, + 18, + 17, + 0, + 120, + 174, + 170, + 8, + 0, + 60, + 246, + 125, + 13, + 0, + 120, + 30, + 22, + 13, + 0, + 120, + 118, + 253, + 74, + 0, + 120, + 166, + 78, + 13, + 0, + 120, + 50, + 21, + 13, + 0, + 120, + 246, + 235, + 12, + 0, + 120, + 6, + 58, + 13, + 0, + 120, + 6, + 139, + 67, + 0, + 240, + 78, + 37, + 6, + 0, + 0, + 78, + 27, + 12, + 0, + 120, + 217, + 1, + 0, + 214, + 10, + 106, + 0, + 133, + 3, + 141, + 3, + 0, + 6, + 77, + 115, + 219, + 113, + 234, + 254, + 235, + 84, + 0, + 240, + 98, + 224, + 174, + 0, + 200, + 118, + 216, + 87, + 30, + 53, + 41, + 169, + 13, + 0, + 222, + 81, + 11, + 0, + 140, + 129, + 12, + 0, + 122, + 209, + 47, + 31, + 145, + 4, + 141, + 185, + 0, + 113, + 179, + 8, + 30, + 112, + 19, + 66, + 41, + 184, + 70, + 63, + 39, + 31, + 129, + 4, + 161, + 179, + 8, + 234, + 89, + 6, + 7, + 129, + 4, + 41, + 45, + 8, + 142, + 23, + 17, + 7, + 161, + 4, + 17, + 64, + 8, + 246, + 82, + 48, + 31, + 161, + 4, + 169, + 198, + 8, + 230, + 224, + 246, + 33, + 53, + 42, + 234, + 159, + 250, + 145, + 229, + 99, + 46, + 231, + 27, + 119, + 229, + 128, + 202, + 106, + 81, + 34, + 169, + 55, + 225, + 1, + 0, + 3, + 216, + 131, + 126, + 65, + 2, + 11, + 1, + 0, + 214, + 0, + 160, + 0, + 132, + 13, + 24, + 0, + 37, + 24, + 0, + 18, + 68, + 32, + 0, + 160, + 229, + 61, + 0, + 78, + 21, + 44, + 0, + 160, + 197, + 49, + 0, + 30, + 113, + 25, + 0, + 160, + 177, + 19, + 0, + 70, + 106, + 27, + 0, + 168, + 181, + 19, + 0, + 174, + 234, + 0, + 9, + 241, + 5, + 242, + 62, + 51, + 2, + 73, + 3, + 210, + 194, + 8, + 0, + 60, + 210, + 198, + 13, + 0, + 25, + 3, + 66, + 40, + 7, + 0, + 72 + ], + "docs": [ + " Cost schedule and limits." + ] + }, + { + "name": "DeletionQueueDepth", + "ty": 4, + "value": [ + 128, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of contracts that can be pending for deletion.", + "", + " When a contract is deleted by calling `seal_terminate` it becomes inaccessible", + " immediately, but the deletion of the storage items it has accumulated is performed", + " later. The contract is put into the deletion queue. This defines how many", + " contracts can be queued up at the same time. If that limit is reached `seal_terminate`", + " will fail. The action must be retried in a later block in that case.", + "", + " The reasons for limiting the queue depth are:", + "", + " 1. The queue is in storage in order to be persistent between blocks. We want to limit", + " \tthe amount of storage that can be consumed.", + " 2. The queue is stored in a vector and needs to be decoded as a whole when reading", + "\t\tit at the end of each block. Longer queues take more weight to decode and hence", + "\t\tlimit the amount of items that can be deleted per block." + ] + }, + { + "name": "DeletionWeightLimit", + "ty": 8, + "value": [ + 11, + 0, + 152, + 247, + 62, + 93, + 1, + 19, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 191 + ], + "docs": [ + " The maximum amount of weight that can be consumed per block for lazy trie removal.", + "", + " The amount of weight that is dedicated per block to work on the deletion queue. Larger", + " values allow more trie keys to be deleted in each block but reduce the amount of", + " weight that is left for transactions. See [`Self::DeletionQueueDepth`] for more", + " information about the deletion queue." + ] + }, + { + "name": "DepositPerByte", + "ty": 6, + "value": [ + 0, + 96, + 222, + 251, + 116, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of balance a caller has to pay for each byte of storage.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ] + }, + { + "name": "DepositPerItem", + "ty": 6, + "value": [ + 0, + 240, + 171, + 117, + 164, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of balance a caller has to pay for each storage item.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ] + }, + { + "name": "MaxCodeLen", + "ty": 4, + "value": [ + 0, + 236, + 1, + 0 + ], + "docs": [ + " The maximum length of a contract code in bytes. This limit applies to the instrumented", + " version of the code. Therefore `instantiate_with_code` can fail even when supplying", + " a wasm binary below this maximum size.", + "", + " The value should be chosen carefully taking into the account the overall memory limit", + " your runtime has, as well as the [maximum allowed callstack", + " depth](#associatedtype.CallStack). Look into the `integrity_test()` for some insights." + ] + }, + { + "name": "MaxStorageKeyLen", + "ty": 4, + "value": [ + 128, + 0, + 0, + 0 + ], + "docs": [ + " The maximum allowable length in bytes for storage keys." + ] + }, + { + "name": "UnsafeUnstableInterface", + "ty": 41, + "value": [ + 0 + ], + "docs": [ + " Make contract callable functions marked as `#[unstable]` available.", + "", + " Contracts that use `#[unstable]` functions won't be able to be uploaded unless", + " this is set to `true`. This is only meant for testnets and dev nodes in order to", + " experiment with new features.", + "", + " # Warning", + "", + " Do **not** set to `true` on productions chains." + ] + }, + { + "name": "MaxDebugBufferLen", + "ty": 4, + "value": [ + 0, + 0, + 32, + 0 + ], + "docs": [ + " The maximum length of the debug buffer in bytes." + ] + } + ], + "error": { + "ty": 532 + }, + "index": 19 + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "entries": [ + { + "name": "Key", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": { + "ty": 245 + }, + "event": { + "ty": 69 + }, + "constants": [], + "error": { + "ty": 533 + }, + "index": 20 + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "entries": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "ty": { + "Plain": 534 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 87, + "value": 536 + } + }, + "default": [ + 0 + ], + "docs": [ + " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex` to", + " `WrapperOpaque`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": { + "ty": 246 + }, + "event": { + "ty": 70 + }, + "constants": [ + { + "name": "UnsignedPriority", + "ty": 10, + "value": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ], + "docs": [ + " A configuration for base priority of unsigned transactions.", + "", + " This is exposed so that it can be tuned for particular runtime, when", + " multiple pallets send unsigned transactions." + ] + } + ], + "error": { + "ty": 541 + }, + "index": 21 + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "entries": [ + { + "name": "Keys", + "modifier": "Default", + "ty": { + "Plain": 542 + }, + "default": [ + 0 + ], + "docs": [ + " Keys of the current authority set." + ] + }, + { + "name": "NextKeys", + "modifier": "Default", + "ty": { + "Plain": 542 + }, + "default": [ + 0 + ], + "docs": [ + " Keys of the next authority set." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 22 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "entries": [ + { + "name": "Reports", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 544 + } + }, + "default": [ + 0 + ], + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 402 + } + }, + "default": [ + 0 + ], + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 80, + "value": 12 + } + }, + "default": [ + 0 + ], + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": null, + "event": { + "ty": 79 + }, + "constants": [], + "error": null, + "index": 23 + }, + { + "name": "Historical", + "storage": null, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 24 + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "entries": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "ty": { + "Plain": 546 + }, + "default": [ + 0 + ], + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 25 + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "entries": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 547 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information that is pertinent to identify the entity behind an account.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 291 + } + }, + "default": [ + 0 + ], + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 551 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "ty": { + "Plain": 553 + }, + "default": [ + 0 + ], + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + } + ] + }, + "calls": { + "ty": 254 + }, + "event": { + "ty": 81 + }, + "constants": [ + { + "name": "BasicDeposit", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for a registered identity" + ] + }, + { + "name": "FieldDeposit", + "ty": 6, + "value": [ + 0, + 160, + 49, + 169, + 95, + 227, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit per additional field for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "ty": 6, + "value": [ + 0, + 128, + 244, + 32, + 230, + 181, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxAdditionalFields", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", + " required to access an identity, but can be pretty high." + ] + }, + { + "name": "MaxRegistrars", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + } + ], + "error": { + "ty": 557 + }, + "index": 26 + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "entries": [ + { + "name": "Founder", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The first member." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "ty": { + "Plain": 11 + }, + "default": [ + 0 + ], + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "ty": { + "Plain": 558 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of candidates; bidders that are attempting to become members." + ] + }, + { + "name": "SuspendedCandidates", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 561 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of suspended candidates." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The most primary from the most recently approved members." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of members, ordered." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 41 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of suspended members." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "ty": { + "Plain": 558 + }, + "default": [ + 0 + ], + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Vouching", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 562 + } + }, + "default": [ + 0 + ], + "docs": [ + " Members currently vouching or banned from vouching again" + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 563 + } + }, + "default": [ + 0 + ], + "docs": [ + " Pending payouts; ordered by block number, with the amount that should be paid out." + ] + }, + { + "name": "Strikes", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The ongoing number of losing votes cast by the member." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 565, + "value": 566 + } + }, + "default": [ + 0 + ], + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "Defender", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The defending member currently being challenged." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 566 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes for the defender." + ] + }, + { + "name": "MaxMembers", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The max number of members for the society at one time." + ] + } + ] + }, + "calls": { + "ty": 295 + }, + "event": { + "ty": 82 + }, + "constants": [ + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 115, + 111, + 99, + 105, + 101 + ], + "docs": [ + " The societies's pallet id" + ] + }, + { + "name": "CandidateDeposit", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount of a deposit required for a bid to be made." + ] + }, + { + "name": "WrongSideDeduction", + "ty": 6, + "value": [ + 0, + 128, + 244, + 32, + 230, + 181, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of the unpaid reward that gets deducted in the case that either a skeptic", + " doesn't vote or someone votes in the wrong way." + ] + }, + { + "name": "MaxStrikes", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The number of times a member may vote the wrong way (or not at all, when they are a", + " skeptic) before they become suspended." + ] + }, + { + "name": "PeriodSpend", + "ty": 6, + "value": [ + 0, + 0, + 197, + 46, + 188, + 162, + 177, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "RotationPeriod", + "ty": 4, + "value": [ + 0, + 119, + 1, + 0 + ], + "docs": [ + " The number of blocks between candidate/membership rotation periods." + ] + }, + { + "name": "MaxLockDuration", + "ty": 4, + "value": [ + 0, + 156, + 218, + 1 + ], + "docs": [ + " The maximum duration of the payout lock." + ] + }, + { + "name": "ChallengePeriod", + "ty": 4, + "value": [ + 128, + 19, + 3, + 0 + ], + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "MaxCandidateIntake", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of candidates that we accept per round." + ] + } + ], + "error": { + "ty": 567 + }, + "index": 27 + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "entries": [ + { + "name": "Recoverable", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 568 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 565, + "value": 570 + } + }, + "default": [ + 0 + ], + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": { + "ty": 297 + }, + "event": { + "ty": 84 + }, + "constants": [ + { + "name": "ConfigDepositBase", + "ty": 6, + "value": [ + 0, + 64, + 99, + 82, + 191, + 198, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ] + }, + { + "name": "FriendDepositFactor", + "ty": 6, + "value": [ + 0, + 32, + 61, + 136, + 121, + 45, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ] + }, + { + "name": "MaxFriends", + "ty": 4, + "value": [ + 9, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of friends allowed in a recovery configuration.", + "", + " NOTE: The threshold programmed in this Pallet uses u16, so it does", + " not really make sense to have a limit here greater than u16::MAX.", + " But also, that is a lot more than you should probably set this value", + " to anyway..." + ] + }, + { + "name": "RecoveryDeposit", + "ty": 6, + "value": [ + 0, + 64, + 99, + 82, + 191, + 198, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ] + } + ], + "error": { + "ty": 571 + }, + "index": 28 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "entries": [ + { + "name": "Vesting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 572 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "ty": { + "Plain": 574 + }, + "default": [ + 0 + ], + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "ty": 298 + }, + "event": { + "ty": 85 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "ty": 4, + "value": [ + 28, + 0, + 0, + 0 + ], + "docs": [] + } + ], + "error": { + "ty": 575 + }, + "index": 29 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "entries": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "Agenda", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 576 + } + }, + "default": [ + 0 + ], + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 87 + } + }, + "default": [ + 0 + ], + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "ty": 300 + }, + "event": { + "ty": 86 + }, + "constants": [ + { + "name": "MaximumWeight", + "ty": 8, + "value": [ + 11, + 0, + 128, + 110, + 135, + 116, + 1, + 19, + 204, + 204, + 204, + 204, + 204, + 204, + 204, + 204 + ], + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " The maximum number of scheduled calls in the queue for a single block." + ] + } + ], + "error": { + "ty": 580 + }, + "index": 30 + }, + { + "name": "Glutton", + "storage": { + "prefix": "Glutton", + "entries": [ + { + "name": "Compute", + "modifier": "Default", + "ty": { + "Plain": 46 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Storage value used to specify what percentage of the left over `ref_time`", + " to consume during `on_idle`." + ] + }, + { + "name": "Storage", + "modifier": "Default", + "ty": { + "Plain": 46 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Storage value used the specify what percentage of left over `proof_size`", + " to consume during `on_idle`." + ] + }, + { + "name": "TrashData", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 581 + } + }, + "default": [ + 0 + ], + "docs": [ + " Storage map used for wasting proof size.", + "", + " It contains no meaningful data - hence the name \"Trash\". The maximal number of entries is", + " set to 65k, which is just below the next jump at 16^4. This is important to reduce the proof", + " size benchmarking overestimate. The assumption here is that we won't have more than 65k *", + " 1KiB = 65MiB of proof size wasting in practice. However, this limit is not enforced, so the", + " pallet would also work out of the box with more entries, but its benchmarked proof weight", + " would possibly be underestimated in that case." + ] + }, + { + "name": "TrashDataCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current number of entries in `TrashData`." + ] + } + ] + }, + "calls": { + "ty": 302 + }, + "event": { + "ty": 89 + }, + "constants": [], + "error": { + "ty": 582 + }, + "index": 31 + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "entries": [ + { + "name": "StatusFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 583 + } + }, + "default": [ + 0 + ], + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 585, + "value": 586 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 303 + }, + "event": { + "ty": 90 + }, + "constants": [], + "error": { + "ty": 587 + }, + "index": 32 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "entries": [ + { + "name": "Proxies", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 588 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 592 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "ty": 304 + }, + "event": { + "ty": 91 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "ty": 6, + "value": [ + 0, + 240, + 158, + 84, + 76, + 57, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "ty": 6, + "value": [ + 0, + 96, + 170, + 119, + 20, + 180, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "ty": 6, + "value": [ + 0, + 240, + 158, + 84, + 76, + 57, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "ty": 6, + "value": [ + 0, + 192, + 84, + 239, + 40, + 104, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "error": { + "ty": 596 + }, + "index": 33 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "entries": [ + { + "name": "Multisigs", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 597, + "value": 598 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "ty": 306 + }, + "event": { + "ty": 94 + }, + "constants": [ + { + "name": "DepositBase", + "ty": 6, + "value": [ + 0, + 240, + 28, + 10, + 219, + 237, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "ty": 6, + "value": [ + 0, + 0, + 204, + 123, + 159, + 174, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "error": { + "ty": 599 + }, + "index": 34 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "entries": [ + { + "name": "BountyCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 600 + } + }, + "default": [ + 0 + ], + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 602 + } + }, + "default": [ + 0 + ], + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "ty": { + "Plain": 515 + }, + "default": [ + 0 + ], + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "ty": 308 + }, + "event": { + "ty": 96 + }, + "constants": [ + { + "name": "BountyDepositBase", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "ty": 4, + "value": [ + 128, + 112, + 0, + 0 + ], + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "ty": 4, + "value": [ + 0, + 39, + 6, + 0 + ], + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "CuratorDepositMultiplier", + "ty": 516, + "value": [ + 32, + 161, + 7, + 0 + ], + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "ty": 317, + "value": [ + 1, + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "ty": 317, + "value": [ + 1, + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "ty": 6, + "value": [ + 0, + 64, + 99, + 82, + 191, + 198, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "ty": 6, + "value": [ + 0, + 16, + 165, + 212, + 232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "ty": 4, + "value": [ + 44, + 1, + 0, + 0 + ], + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "error": { + "ty": 603 + }, + "index": 35 + }, + { + "name": "Tips", + "storage": { + "prefix": "Tips", + "entries": [ + { + "name": "Tips", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 604 + } + }, + "default": [ + 0 + ], + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 12 + } + }, + "default": [ + 0 + ], + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": { + "ty": 309 + }, + "event": { + "ty": 97 + }, + "constants": [ + { + "name": "MaximumReasonLength", + "ty": 4, + "value": [ + 44, + 1, + 0, + 0 + ], + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + }, + { + "name": "DataDepositPerByte", + "ty": 6, + "value": [ + 0, + 16, + 165, + 212, + 232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "TipCountdown", + "ty": 4, + "value": [ + 128, + 112, + 0, + 0 + ], + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "ty": 211, + "value": [ + 20 + ], + "docs": [ + " The percent of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for placing a tip report." + ] + } + ], + "error": { + "ty": 605 + }, + "index": 36 + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "entries": [ + { + "name": "Asset", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 606 + } + }, + "default": [ + 0 + ], + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 464, + "value": 608 + } + }, + "default": [ + 0 + ], + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 610, + "value": 611 + } + }, + "default": [ + 0 + ], + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 612 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Metadata of an asset." + ] + } + ] + }, + "calls": { + "ty": 310 + }, + "event": { + "ty": 98 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "ty": 4, + "value": [ + 232, + 3, + 0, + 0 + ], + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "error": { + "ty": 613 + }, + "index": 37 + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "entries": [ + { + "name": "RootHash", + "modifier": "Default", + "ty": { + "Plain": 11 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 10, + "value": 11 + } + }, + "default": [ + 0 + ], + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 38 + }, + { + "name": "Lottery", + "storage": { + "prefix": "Lottery", + "entries": [ + { + "name": "LotteryIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [] + }, + { + "name": "Lottery", + "modifier": "Optional", + "ty": { + "Plain": 614 + }, + "default": [ + 0 + ], + "docs": [ + " The configuration for the current lottery." + ] + }, + { + "name": "Participants", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 615 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)" + ] + }, + { + "name": "TicketsCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Total number of tickets sold." + ] + }, + { + "name": "Tickets", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " Each ticket's owner.", + "", + " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", + " are actually valid ticket mappings." + ] + }, + { + "name": "CallIndices", + "modifier": "Default", + "ty": { + "Plain": 616 + }, + "default": [ + 0 + ], + "docs": [ + " The calls stored in this pallet to be used in an active lottery if configured", + " by `Config::ValidateCall`." + ] + } + ] + }, + "calls": { + "ty": 311 + }, + "event": { + "ty": 99 + }, + "constants": [ + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 108, + 111, + 116, + 116, + 111 + ], + "docs": [ + " The Lottery's pallet id" + ] + }, + { + "name": "MaxCalls", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The max number of calls available in a single lottery." + ] + }, + { + "name": "MaxGenerateRandom", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " Number of time we should try to generate a random number that has no modulo bias.", + " The larger this number, the more potential computation is used for picking the winner,", + " but also the more likely that the chosen winner is done fairly." + ] + } + ], + "error": { + "ty": 618 + }, + "index": 39 + }, + { + "name": "Nis", + "storage": { + "prefix": "Nis", + "entries": [ + { + "name": "QueueTotals", + "modifier": "Default", + "ty": { + "Plain": 619 + }, + "default": [ + 177, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ] + }, + { + "name": "Queues", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 620 + } + }, + "default": [ + 0 + ], + "docs": [ + " The queues of bids. Indexed by duration (in `Period`s)." + ] + }, + { + "name": "Summary", + "modifier": "Default", + "ty": { + "Plain": 623 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Summary information over the general state." + ] + }, + { + "name": "Receipts", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 624 + } + }, + "default": [ + 0 + ], + "docs": [ + " The currently outstanding receipts, indexed according to the order of creation." + ] + } + ] + }, + "calls": { + "ty": 312 + }, + "event": { + "ty": 101 + }, + "constants": [ + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 110, + 105, + 115, + 32, + 32 + ], + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "QueueCount", + "ty": 4, + "value": [ + 44, + 1, + 0, + 0 + ], + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ] + }, + { + "name": "MaxQueueLen", + "ty": 4, + "value": [ + 232, + 3, + 0, + 0 + ], + "docs": [ + " Maximum number of items that may be in each duration queue.", + "", + " Must be larger than zero." + ] + }, + { + "name": "FifoQueueLen", + "ty": 4, + "value": [ + 244, + 1, + 0, + 0 + ], + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ] + }, + { + "name": "BasePeriod", + "ty": 4, + "value": [ + 0, + 47, + 13, + 0 + ], + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ] + }, + { + "name": "MinBid", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount of funds that may be placed in a bid. Note that this", + " does not actually limit the amount which may be represented in a receipt since bids may", + " be split up by the system.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ] + }, + { + "name": "MinReceipt", + "ty": 102, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0 + ], + "docs": [ + " The minimum amount of funds which may intentionally be left remaining under a single", + " receipt." + ] + }, + { + "name": "IntakePeriod", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The number of blocks between consecutive attempts to dequeue bids and create receipts.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ] + }, + { + "name": "MaxIntakeWeight", + "ty": 8, + "value": [ + 7, + 0, + 208, + 237, + 144, + 46, + 19, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 25 + ], + "docs": [ + " The maximum amount of bids that can consolidated into receipts in a single intake. A", + " larger value here means less of the block available for transactions should there be a", + " glut of bids." + ] + }, + { + "name": "ThawThrottle", + "ty": 625, + "value": [ + 0, + 0, + 217, + 233, + 172, + 45, + 120, + 3, + 5, + 0, + 0, + 0 + ], + "docs": [ + " The maximum proportion which may be thawed and the period over which it is reset." + ] + }, + { + "name": "ReserveId", + "ty": 266, + "value": [ + 112, + 121, + 47, + 110, + 105, + 115, + 32, + 32 + ], + "docs": [ + " The name for the reserve ID." + ] + } + ], + "error": { + "ty": 626 + }, + "index": 40 + }, + { + "name": "Uniques", + "storage": { + "prefix": "Uniques", + "entries": [ + { + "name": "Class", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 627 + } + }, + "default": [ + 0 + ], + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 628, + "value": 31 + } + }, + "default": [ + 0 + ], + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "ClassAccount", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 468, + "value": 31 + } + }, + "default": [ + 0 + ], + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "Asset", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 629 + } + }, + "default": [ + 0 + ], + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "ClassMetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 630 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "InstanceMetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 631 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 632, + "value": 633 + } + }, + "default": [ + 0 + ], + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 634 + } + }, + "default": [ + 0 + ], + "docs": [ + " Price of an asset instance." + ] + }, + { + "name": "CollectionMaxSupply", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " Keeps track of the number of items a collection might have." + ] + } + ] + }, + "calls": { + "ty": 314 + }, + "event": { + "ty": 103 + }, + "constants": [ + { + "name": "CollectionDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "ty": 4, + "value": [ + 0, + 1, + 0, + 0 + ], + "docs": [ + " The maximum length of an attribute value." + ] + } + ], + "error": { + "ty": 635 + }, + "index": 41 + }, + { + "name": "Nfts", + "storage": { + "prefix": "Nfts", + "entries": [ + { + "name": "Collection", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 636 + } + }, + "default": [ + 0 + ], + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 628, + "value": 31 + } + }, + "default": [ + 0 + ], + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "CollectionAccount", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 468, + "value": 31 + } + }, + "default": [ + 0 + ], + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "CollectionRoleOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 464, + "value": 637 + } + }, + "default": [ + 0 + ], + "docs": [ + " The items in existence and their ownership details.", + " Stores collection roles as per account." + ] + }, + { + "name": "Item", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 639 + } + }, + "default": [ + 0 + ], + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "CollectionMetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 645 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "ItemMetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 646 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 648, + "value": 649 + } + }, + "default": [ + 0 + ], + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 634 + } + }, + "default": [ + 0 + ], + "docs": [ + " A price of an item." + ] + }, + { + "name": "ItemAttributesApprovalsOf", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 651 + } + }, + "default": [ + 0 + ], + "docs": [ + " Item attribute approvals." + ] + }, + { + "name": "NextCollectionId", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Stores the `CollectionId` that is going to be used for the next collection.", + " This gets incremented whenever a new collection is created." + ] + }, + { + "name": "PendingSwapOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 653 + } + }, + "default": [ + 0 + ], + "docs": [ + " Handles all the pending swaps." + ] + }, + { + "name": "CollectionConfigOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 319 + } + }, + "default": [ + 0 + ], + "docs": [ + " Config of a collection." + ] + }, + { + "name": "ItemConfigOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 329 + } + }, + "default": [ + 0 + ], + "docs": [ + " Config of an item." + ] + } + ] + }, + "calls": { + "ty": 318 + }, + "event": { + "ty": 108 + }, + "constants": [ + { + "name": "CollectionDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "ty": 4, + "value": [ + 0, + 1, + 0, + 0 + ], + "docs": [ + " The maximum length of an attribute value." + ] + }, + { + "name": "ApprovalsLimit", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " The maximum approvals an item could have." + ] + }, + { + "name": "ItemAttributesApprovalsLimit", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " The maximum attributes approvals an item could have." + ] + }, + { + "name": "MaxTips", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The max number of tips a user could send." + ] + }, + { + "name": "MaxDeadlineDuration", + "ty": 4, + "value": [ + 0, + 52, + 158, + 0 + ], + "docs": [ + " The max duration in blocks for deadlines." + ] + }, + { + "name": "MaxAttributesPerCall", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The max number of attributes a user could set per call." + ] + }, + { + "name": "Features", + "ty": 654, + "value": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Disables some of pallet's features." + ] + } + ], + "error": { + "ty": 656 + }, + "index": 42 + }, + { + "name": "TransactionStorage", + "storage": { + "prefix": "TransactionStorage", + "entries": [ + { + "name": "Transactions", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 657 + } + }, + "default": [ + 0 + ], + "docs": [ + " Collection of transaction metadata by block number." + ] + }, + { + "name": "ChunkCount", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Count indexed chunks for each block." + ] + }, + { + "name": "ByteFee", + "modifier": "Optional", + "ty": { + "Plain": 6 + }, + "default": [ + 0 + ], + "docs": [ + " Storage fee per byte." + ] + }, + { + "name": "EntryFee", + "modifier": "Optional", + "ty": { + "Plain": 6 + }, + "default": [ + 0 + ], + "docs": [ + " Storage fee per transaction." + ] + }, + { + "name": "StoragePeriod", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`", + " for block authoring." + ] + }, + { + "name": "BlockTransactions", + "modifier": "Default", + "ty": { + "Plain": 657 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "ProofChecked", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " Was the proof checked in this block?" + ] + } + ] + }, + "calls": { + "ty": 339 + }, + "event": { + "ty": 113 + }, + "constants": [], + "error": { + "ty": 660 + }, + "index": 43 + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "entries": [ + { + "name": "ListNodes", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 661 + } + }, + "default": [ + 0 + ], + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 10, + "value": 662 + } + }, + "default": [ + 0 + ], + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + } + ] + }, + "calls": { + "ty": 341 + }, + "event": { + "ty": 114 + }, + "constants": [ + { + "name": "BagThresholds", + "ty": 663, + "value": [ + 33, + 3, + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 106, + 112, + 204, + 212, + 169, + 96, + 0, + 0, + 158, + 243, + 57, + 127, + 188, + 102, + 0, + 0, + 169, + 7, + 204, + 213, + 48, + 109, + 0, + 0, + 61, + 154, + 103, + 251, + 12, + 116, + 0, + 0, + 169, + 191, + 162, + 117, + 87, + 123, + 0, + 0, + 166, + 253, + 247, + 50, + 23, + 131, + 0, + 0, + 3, + 79, + 93, + 145, + 83, + 139, + 0, + 0, + 19, + 36, + 69, + 101, + 20, + 148, + 0, + 0, + 120, + 8, + 16, + 1, + 98, + 157, + 0, + 0, + 3, + 2, + 246, + 60, + 69, + 167, + 0, + 0, + 57, + 46, + 111, + 127, + 199, + 177, + 0, + 0, + 245, + 156, + 35, + 198, + 242, + 188, + 0, + 0, + 74, + 231, + 106, + 175, + 209, + 200, + 0, + 0, + 89, + 138, + 100, + 132, + 111, + 213, + 0, + 0, + 18, + 159, + 178, + 67, + 216, + 226, + 0, + 0, + 63, + 34, + 225, + 172, + 24, + 241, + 0, + 0, + 51, + 164, + 132, + 76, + 62, + 0, + 1, + 0, + 226, + 229, + 27, + 137, + 87, + 16, + 1, + 0, + 118, + 162, + 192, + 176, + 115, + 33, + 1, + 0, + 103, + 137, + 180, + 7, + 163, + 51, + 1, + 0, + 121, + 62, + 216, + 215, + 246, + 70, + 1, + 0, + 120, + 19, + 27, + 129, + 129, + 91, + 1, + 0, + 12, + 28, + 243, + 138, + 86, + 113, + 1, + 0, + 68, + 55, + 238, + 182, + 138, + 136, + 1, + 0, + 158, + 181, + 109, + 20, + 52, + 161, + 1, + 0, + 51, + 94, + 159, + 21, + 106, + 187, + 1, + 0, + 103, + 195, + 199, + 165, + 69, + 215, + 1, + 0, + 50, + 24, + 243, + 64, + 225, + 244, + 1, + 0, + 222, + 11, + 35, + 13, + 89, + 20, + 2, + 0, + 105, + 156, + 17, + 245, + 202, + 53, + 2, + 0, + 173, + 80, + 162, + 196, + 86, + 89, + 2, + 0, + 154, + 228, + 28, + 71, + 30, + 127, + 2, + 0, + 208, + 36, + 78, + 103, + 69, + 167, + 2, + 0, + 249, + 132, + 173, + 81, + 242, + 209, + 2, + 0, + 172, + 231, + 167, + 152, + 77, + 255, + 2, + 0, + 161, + 24, + 50, + 91, + 130, + 47, + 3, + 0, + 255, + 164, + 199, + 109, + 190, + 98, + 3, + 0, + 88, + 11, + 253, + 133, + 50, + 153, + 3, + 0, + 169, + 175, + 206, + 104, + 18, + 211, + 3, + 0, + 16, + 154, + 216, + 27, + 149, + 16, + 4, + 0, + 217, + 202, + 165, + 25, + 245, + 81, + 4, + 0, + 56, + 223, + 72, + 137, + 112, + 151, + 4, + 0, + 190, + 225, + 114, + 121, + 73, + 225, + 4, + 0, + 204, + 115, + 64, + 31, + 198, + 47, + 5, + 0, + 179, + 4, + 249, + 24, + 49, + 131, + 5, + 0, + 130, + 139, + 255, + 180, + 217, + 219, + 5, + 0, + 18, + 53, + 56, + 61, + 20, + 58, + 6, + 0, + 165, + 180, + 42, + 71, + 58, + 158, + 6, + 0, + 54, + 102, + 45, + 9, + 171, + 8, + 7, + 0, + 247, + 58, + 234, + 180, + 203, + 121, + 7, + 0, + 184, + 126, + 147, + 215, + 7, + 242, + 7, + 0, + 255, + 236, + 35, + 192, + 209, + 113, + 8, + 0, + 184, + 75, + 11, + 236, + 162, + 249, + 8, + 0, + 201, + 220, + 174, + 122, + 252, + 137, + 9, + 0, + 145, + 117, + 43, + 168, + 103, + 35, + 10, + 0, + 100, + 241, + 205, + 79, + 118, + 198, + 10, + 0, + 54, + 9, + 190, + 118, + 195, + 115, + 11, + 0, + 120, + 101, + 95, + 223, + 243, + 43, + 12, + 0, + 164, + 7, + 245, + 165, + 182, + 239, + 12, + 0, + 82, + 246, + 27, + 231, + 197, + 191, + 13, + 0, + 218, + 113, + 187, + 112, + 231, + 156, + 14, + 0, + 13, + 233, + 18, + 126, + 237, + 135, + 15, + 0, + 20, + 119, + 152, + 127, + 183, + 129, + 16, + 0, + 235, + 238, + 101, + 239, + 50, + 139, + 17, + 0, + 18, + 105, + 254, + 50, + 92, + 165, + 18, + 0, + 51, + 248, + 66, + 139, + 63, + 209, + 19, + 0, + 139, + 165, + 122, + 19, + 250, + 15, + 21, + 0, + 27, + 43, + 96, + 208, + 186, + 98, + 22, + 0, + 13, + 29, + 55, + 208, + 195, + 202, + 23, + 0, + 108, + 100, + 250, + 92, + 107, + 73, + 25, + 0, + 38, + 34, + 199, + 65, + 29, + 224, + 26, + 0, + 4, + 91, + 185, + 36, + 92, + 144, + 28, + 0, + 35, + 61, + 131, + 246, + 194, + 91, + 30, + 0, + 200, + 119, + 28, + 121, + 6, + 68, + 32, + 0, + 48, + 19, + 253, + 222, + 246, + 74, + 34, + 0, + 170, + 139, + 110, + 132, + 129, + 114, + 36, + 0, + 130, + 192, + 150, + 196, + 178, + 188, + 38, + 0, + 22, + 163, + 250, + 235, + 183, + 43, + 41, + 0, + 130, + 150, + 82, + 74, + 225, + 193, + 43, + 0, + 166, + 54, + 168, + 101, + 164, + 129, + 46, + 0, + 208, + 226, + 212, + 80, + 158, + 109, + 49, + 0, + 156, + 10, + 154, + 39, + 150, + 136, + 52, + 0, + 228, + 250, + 175, + 178, + 127, + 213, + 55, + 0, + 230, + 230, + 77, + 54, + 126, + 87, + 59, + 0, + 14, + 75, + 214, + 109, + 231, + 17, + 63, + 0, + 136, + 177, + 125, + 183, + 70, + 8, + 67, + 0, + 176, + 125, + 239, + 114, + 96, + 62, + 71, + 0, + 52, + 222, + 36, + 150, + 53, + 184, + 75, + 0, + 212, + 139, + 213, + 123, + 7, + 122, + 80, + 0, + 208, + 189, + 32, + 239, + 91, + 136, + 85, + 0, + 184, + 240, + 70, + 120, + 1, + 232, + 90, + 0, + 16, + 248, + 138, + 238, + 19, + 158, + 96, + 0, + 56, + 146, + 146, + 83, + 1, + 176, + 102, + 0, + 156, + 149, + 228, + 252, + 142, + 35, + 109, + 0, + 180, + 18, + 109, + 16, + 223, + 254, + 115, + 0, + 40, + 180, + 62, + 89, + 118, + 72, + 123, + 0, + 160, + 138, + 28, + 122, + 66, + 7, + 131, + 0, + 176, + 154, + 176, + 131, + 160, + 66, + 139, + 0, + 40, + 70, + 178, + 244, + 99, + 2, + 148, + 0, + 200, + 97, + 164, + 42, + 222, + 78, + 157, + 0, + 80, + 210, + 61, + 74, + 230, + 48, + 167, + 0, + 128, + 81, + 1, + 167, + 225, + 177, + 177, + 0, + 56, + 229, + 1, + 178, + 204, + 219, + 188, + 0, + 32, + 22, + 82, + 120, + 68, + 185, + 200, + 0, + 56, + 137, + 36, + 186, + 144, + 85, + 213, + 0, + 112, + 202, + 53, + 164, + 174, + 188, + 226, + 0, + 128, + 95, + 177, + 53, + 92, + 251, + 240, + 0, + 128, + 53, + 104, + 93, + 36, + 31, + 0, + 1, + 160, + 195, + 220, + 217, + 107, + 54, + 16, + 1, + 208, + 120, + 98, + 232, + 126, + 80, + 33, + 1, + 96, + 232, + 82, + 208, + 159, + 125, + 51, + 1, + 144, + 102, + 44, + 88, + 22, + 207, + 70, + 1, + 16, + 39, + 76, + 51, + 64, + 87, + 91, + 1, + 128, + 75, + 226, + 119, + 162, + 41, + 113, + 1, + 48, + 130, + 185, + 45, + 252, + 90, + 136, + 1, + 128, + 210, + 118, + 7, + 90, + 1, + 161, + 1, + 176, + 245, + 17, + 89, + 43, + 52, + 187, + 1, + 64, + 49, + 116, + 95, + 88, + 12, + 215, + 1, + 128, + 47, + 108, + 238, + 89, + 164, + 244, + 1, + 64, + 255, + 121, + 155, + 82, + 24, + 20, + 2, + 96, + 117, + 96, + 125, + 41, + 134, + 53, + 2, + 96, + 253, + 233, + 153, + 166, + 13, + 89, + 2, + 0, + 229, + 231, + 28, + 145, + 208, + 126, + 2, + 192, + 223, + 37, + 117, + 207, + 242, + 166, + 2, + 160, + 127, + 217, + 117, + 137, + 154, + 209, + 2, + 160, + 103, + 0, + 157, + 76, + 240, + 254, + 2, + 32, + 220, + 41, + 161, + 50, + 31, + 47, + 3, + 32, + 255, + 82, + 107, + 10, + 85, + 98, + 3, + 128, + 136, + 202, + 163, + 131, + 194, + 152, + 3, + 224, + 86, + 131, + 251, + 92, + 155, + 210, + 3, + 64, + 29, + 215, + 93, + 149, + 22, + 16, + 4, + 0, + 49, + 126, + 57, + 160, + 110, + 81, + 4, + 192, + 176, + 113, + 18, + 157, + 225, + 150, + 4, + 128, + 180, + 140, + 145, + 146, + 177, + 224, + 4, + 128, + 232, + 18, + 74, + 173, + 36, + 47, + 5, + 192, + 7, + 202, + 112, + 130, + 133, + 130, + 5, + 0, + 124, + 19, + 196, + 86, + 35, + 219, + 5, + 64, + 131, + 111, + 232, + 105, + 82, + 57, + 6, + 192, + 112, + 15, + 129, + 70, + 108, + 157, + 6, + 64, + 240, + 156, + 80, + 23, + 208, + 7, + 7, + 192, + 230, + 36, + 179, + 1, + 227, + 120, + 7, + 192, + 51, + 42, + 199, + 133, + 16, + 241, + 7, + 128, + 7, + 76, + 161, + 228, + 202, + 112, + 8, + 0, + 213, + 169, + 235, + 140, + 139, + 248, + 8, + 0, + 168, + 73, + 88, + 142, + 211, + 136, + 9, + 0, + 128, + 66, + 84, + 20, + 44, + 34, + 10, + 128, + 162, + 81, + 112, + 232, + 38, + 197, + 10, + 0, + 232, + 213, + 250, + 252, + 94, + 114, + 11, + 128, + 29, + 246, + 78, + 0, + 121, + 42, + 12, + 128, + 212, + 254, + 100, + 249, + 35, + 238, + 12, + 0, + 109, + 208, + 56, + 238, + 25, + 190, + 13, + 0, + 30, + 144, + 164, + 148, + 32, + 155, + 14, + 0, + 16, + 191, + 87, + 14, + 10, + 134, + 15, + 0, + 218, + 106, + 157, + 176, + 181, + 127, + 16, + 0, + 191, + 100, + 175, + 216, + 16, + 137, + 17, + 0, + 187, + 91, + 96, + 205, + 23, + 163, + 18, + 0, + 249, + 99, + 243, + 174, + 214, + 206, + 19, + 0, + 213, + 240, + 4, + 118, + 106, + 13, + 21, + 0, + 224, + 153, + 119, + 2, + 2, + 96, + 22, + 0, + 16, + 61, + 102, + 59, + 223, + 199, + 23, + 0, + 222, + 62, + 45, + 65, + 88, + 70, + 25, + 0, + 236, + 219, + 173, + 178, + 216, + 220, + 26, + 0, + 69, + 199, + 0, + 7, + 227, + 140, + 28, + 0, + 184, + 189, + 224, + 252, + 17, + 88, + 30, + 0, + 186, + 92, + 42, + 33, + 26, + 64, + 32, + 0, + 64, + 125, + 228, + 109, + 203, + 70, + 34, + 0, + 222, + 165, + 91, + 3, + 19, + 110, + 36, + 0, + 170, + 241, + 243, + 252, + 252, + 183, + 38, + 0, + 20, + 34, + 111, + 99, + 182, + 38, + 41, + 0, + 100, + 146, + 128, + 62, + 143, + 188, + 43, + 0, + 132, + 134, + 166, + 199, + 252, + 123, + 46, + 0, + 44, + 240, + 95, + 192, + 155, + 103, + 49, + 0, + 218, + 99, + 247, + 237, + 50, + 130, + 52, + 0, + 240, + 177, + 63, + 189, + 181, + 206, + 55, + 0, + 242, + 145, + 196, + 16, + 71, + 80, + 59, + 0, + 66, + 42, + 26, + 60, + 60, + 10, + 63, + 0, + 44, + 36, + 33, + 47, + 32, + 0, + 67, + 0, + 172, + 147, + 66, + 212, + 182, + 53, + 71, + 0, + 204, + 110, + 215, + 164, + 0, + 175, + 75, + 0, + 196, + 208, + 34, + 119, + 62, + 112, + 80, + 0, + 32, + 1, + 125, + 137, + 245, + 125, + 85, + 0, + 248, + 99, + 135, + 206, + 243, + 220, + 90, + 0, + 140, + 76, + 127, + 126, + 84, + 146, + 96, + 0, + 32, + 98, + 7, + 242, + 132, + 163, + 102, + 0, + 204, + 30, + 5, + 203, + 73, + 22, + 109, + 0, + 180, + 42, + 122, + 112, + 196, + 240, + 115, + 0, + 212, + 58, + 144, + 226, + 120, + 57, + 123, + 0, + 56, + 244, + 97, + 236, + 83, + 247, + 130, + 0, + 160, + 114, + 100, + 185, + 177, + 49, + 139, + 0, + 72, + 201, + 179, + 212, + 100, + 240, + 147, + 0, + 0, + 127, + 233, + 152, + 189, + 59, + 157, + 0, + 16, + 5, + 143, + 23, + 146, + 28, + 167, + 0, + 0, + 223, + 175, + 127, + 70, + 156, + 177, + 0, + 232, + 12, + 136, + 11, + 214, + 196, + 188, + 0, + 88, + 189, + 203, + 125, + 220, + 160, + 200, + 0, + 56, + 209, + 141, + 55, + 160, + 59, + 213, + 0, + 48, + 213, + 91, + 240, + 28, + 161, + 226, + 0, + 112, + 74, + 192, + 26, + 15, + 222, + 240, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ], + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + } + ], + "error": { + "ty": 664 + }, + "index": 44 + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "entries": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "ty": { + "Plain": 345 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Migration progress.", + "", + " This stores the snapshot of the last migrated keys. It can be set into motion and move", + " forward by any of the means provided by this pallet." + ] + }, + { + "name": "AutoLimits", + "modifier": "Default", + "ty": { + "Plain": 343 + }, + "default": [ + 0 + ], + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ] + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "ty": { + "Plain": 344 + }, + "default": [ + 0 + ], + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ] + } + ] + }, + "calls": { + "ty": 342 + }, + "event": { + "ty": 115 + }, + "constants": [ + { + "name": "MaxKeyLen", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " Maximal number of bytes that a key can have.", + "", + " FRAME itself does not limit the key length.", + " The concrete value must therefore depend on your storage usage.", + " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", + " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", + "", + " Use the *state migration RPC* to retrieve the length of the longest key in your", + " storage: ", + "", + " The migration will halt with a `Halted` event if this value is too small.", + " Since there is no real penalty from over-estimating, it is advised to use a large", + " value. The default is 512 byte.", + "", + " Some key lengths for reference:", + " - [`frame_support::storage::StorageValue`]: 32 byte", + " - [`frame_support::storage::StorageMap`]: 64 byte", + " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", + "", + " For more info see", + " " + ] + } + ], + "error": { + "ty": 117 + }, + "index": 45 + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "entries": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of total child bounties." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 87, + "value": 666 + } + }, + "default": [ + 0 + ], + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptions", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 602 + } + }, + "default": [ + 0 + ], + "docs": [ + " The description of each child-bounty." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "ty": 348 + }, + "event": { + "ty": 118 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "ty": 4, + "value": [ + 5, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "error": { + "ty": 668 + }, + "index": 46 + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "entries": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 669 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 677 + } + }, + "default": [ + 0 + ], + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 11 + } + }, + "default": [ + 0 + ], + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `PreimageHash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "ty": 349 + }, + "event": { + "ty": 119 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "ty": 4, + "value": [ + 1, + 0, + 0, + 0 + ], + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "ty": 678, + "value": [ + 4, + 0, + 0, + 16, + 114, + 111, + 111, + 116, + 1, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 202, + 154, + 59, + 0, + 101, + 205, + 29, + 0, + 202, + 154, + 59, + 0, + 0, + 202, + 154, + 59, + 0, + 0, + 0, + 0, + 0, + 202, + 154, + 59 + ], + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "error": { + "ty": 684 + }, + "index": 47 + }, + { + "name": "Remark", + "storage": null, + "calls": { + "ty": 351 + }, + "event": { + "ty": 383 + }, + "constants": [], + "error": { + "ty": 685 + }, + "index": 48 + }, + { + "name": "RootTesting", + "storage": null, + "calls": { + "ty": 352 + }, + "event": null, + "constants": [], + "error": null, + "index": 49 + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "entries": [ + { + "name": "VotingFor", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 686, + "value": 687 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 695 + } + }, + "default": [ + 0 + ], + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "ty": 353 + }, + "event": { + "ty": 384 + }, + "constants": [ + { + "name": "MaxVotes", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "ty": 4, + "value": [ + 0, + 47, + 13, + 0 + ], + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "error": { + "ty": 698 + }, + "index": 50 + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "entries": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 31 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 358 + }, + "event": { + "ty": 385 + }, + "constants": [], + "error": { + "ty": 699 + }, + "index": 51 + }, + { + "name": "AllianceMotion", + "storage": { + "prefix": "AllianceMotion", + "entries": [ + { + "name": "Proposals", + "modifier": "Default", + "ty": { + "Plain": 700 + }, + "default": [ + 0 + ], + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 121 + } + }, + "default": [ + 0 + ], + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 500 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": { + "ty": 359 + }, + "event": { + "ty": 390 + }, + "constants": [], + "error": { + "ty": 701 + }, + "index": 52 + }, + { + "name": "Alliance", + "storage": { + "prefix": "Alliance", + "entries": [ + { + "name": "Rule", + "modifier": "Optional", + "ty": { + "Plain": 362 + }, + "default": [ + 0 + ], + "docs": [ + " The IPFS CID of the alliance rule.", + " Fellows can propose a new rule with a super-majority." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "ty": { + "Plain": 702 + }, + "default": [ + 0 + ], + "docs": [ + " The current IPFS CIDs of any announcements." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 6 + } + }, + "default": [ + 0 + ], + "docs": [ + " Maps members to their candidacy deposit." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 704, + "value": 705 + } + }, + "default": [ + 0 + ], + "docs": [ + " Maps member type to members of each type." + ] + }, + { + "name": "RetiringMembers", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A set of members who gave a retirement notice. They can retire after the end of retirement", + " period stored as a future block number." + ] + }, + { + "name": "UnscrupulousAccounts", + "modifier": "Default", + "ty": { + "Plain": 486 + }, + "default": [ + 0 + ], + "docs": [ + " The current list of accounts deemed unscrupulous. These accounts non grata cannot submit", + " candidacy." + ] + }, + { + "name": "UnscrupulousWebsites", + "modifier": "Default", + "ty": { + "Plain": 706 + }, + "default": [ + 0 + ], + "docs": [ + " The current list of websites deemed unscrupulous." + ] + } + ] + }, + "calls": { + "ty": 360 + }, + "event": { + "ty": 391 + }, + "constants": [ + { + "name": "MaxUnscrupulousItems", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of the unscrupulous items supported by the pallet." + ] + }, + { + "name": "MaxWebsiteUrlLength", + "ty": 4, + "value": [ + 255, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of a website URL." + ] + }, + { + "name": "AllyDeposit", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The deposit required for submitting candidacy." + ] + }, + { + "name": "MaxAnnouncementsCount", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of announcements." + ] + }, + { + "name": "MaxMembersCount", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of members per member role." + ] + } + ], + "error": { + "ty": 708 + }, + "index": 53 + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "entries": [ + { + "name": "MinJoinBond", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 709 + } + }, + "default": [ + 0 + ], + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 712 + } + }, + "default": [ + 0 + ], + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 714 + } + }, + "default": [ + 0 + ], + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout", + " is claimed, the balance comes out fo the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 715 + } + }, + "default": [ + 0 + ], + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a bonded pool,", + " hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 721 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing. In all other instances, the pool id is used, and the", + " accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 375 + } + }, + "default": [ + 0 + ], + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "ty": 369 + }, + "event": { + "ty": 392 + }, + "constants": [ + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 110, + 111, + 112, + 108, + 115 + ], + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "ty": 2, + "value": [ + 10 + ], + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + } + ], + "error": { + "ty": 722 + }, + "index": 54 + }, + { + "name": "RankedPolls", + "storage": { + "prefix": "RankedPolls", + "entries": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 724 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 726 + } + }, + "default": [ + 0 + ], + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 11 + } + }, + "default": [ + 0 + ], + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `PreimageHash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "ty": 376 + }, + "event": { + "ty": 393 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "ty": 4, + "value": [ + 1, + 0, + 0, + 0 + ], + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "ty": 678, + "value": [ + 4, + 0, + 0, + 16, + 114, + 111, + 111, + 116, + 1, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 202, + 154, + 59, + 0, + 101, + 205, + 29, + 0, + 202, + 154, + 59, + 0, + 0, + 202, + 154, + 59, + 0, + 0, + 0, + 0, + 0, + 202, + 154, + 59 + ], + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "error": { + "ty": 727 + }, + "index": 55 + }, + { + "name": "RankedCollective", + "storage": { + "prefix": "RankedCollective", + "entries": [ + { + "name": "MemberCount", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of members in the collective who have at least the rank according to the index", + " of the vec." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 728 + } + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective." + ] + }, + { + "name": "IdToIndex", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 729, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The index of each ranks's member into the group of members who have at least that rank." + ] + }, + { + "name": "IndexToId", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 730, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " The members in the collective by index. All indices in the range `0..MemberCount` will", + " return `Some`, however a member's index is not guaranteed to remain unchanged over time." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 464, + "value": 396 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "VotingCleanup", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 731 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 377 + }, + "event": { + "ty": 395 + }, + "constants": [], + "error": { + "ty": 732 + }, + "index": 56 + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "entries": [ + { + "name": "Head", + "modifier": "Optional", + "ty": { + "Plain": 733 + }, + "default": [ + 0 + ], + "docs": [ + " The current \"head of the queue\" being unstaked." + ] + }, + { + "name": "Queue", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "default": [ + 0 + ], + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing.", + "", + " Based on the amount of weight available at `on_idle`, up to this many eras of a single", + " nominator might be checked." + ] + } + ] + }, + "calls": { + "ty": 378 + }, + "event": { + "ty": 397 + }, + "constants": [ + { + "name": "Deposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ] + } + ], + "error": { + "ty": 736 + }, + "index": 57 + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "entries": [ + { + "name": "BookStateFor", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 737 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 87, + "value": 740 + } + }, + "default": [ + 0 + ], + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "ty": 379 + }, + "event": { + "ty": 398 + }, + "constants": [ + { + "name": "HeapSize", + "ty": 4, + "value": [ + 0, + 0, + 1, + 0 + ], + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "ty": 4, + "value": [ + 128, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "ty": 388, + "value": [ + 1, + 7, + 0, + 160, + 219, + 33, + 93, + 19, + 51, + 51, + 51, + 51, + 51, + 51, + 51, + 51 + ], + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually." + ] + } + ], + "error": { + "ty": 742 + }, + "index": 58 + }, + { + "name": "Pov", + "storage": { + "prefix": "Pov", + "entries": [ + { + "name": "Value", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "Value2", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "UnboundedValue", + "modifier": "Optional", + "ty": { + "Plain": 12 + }, + "default": [ + 0 + ], + "docs": [ + " A value without a MEL bound." + ] + }, + { + "name": "BoundedValue", + "modifier": "Optional", + "ty": { + "Plain": 743 + }, + "default": [ + 0 + ], + "docs": [ + " A value with a MEL bound of 32 byte." + ] + }, + { + "name": "LargeValue", + "modifier": "Optional", + "ty": { + "Plain": 586 + }, + "default": [ + 0 + ], + "docs": [ + " 4MiB value." + ] + }, + { + "name": "LargeValue2", + "modifier": "Optional", + "ty": { + "Plain": 586 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "Map1M", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A map with a maximum of 1M entries." + ] + }, + { + "name": "Map16M", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A map with a maximum of 16M entries." + ] + }, + { + "name": "DoubleMap1M", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256", + "Blake2_256" + ], + "key": 87, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "UnboundedMap", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 105 + } + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "UnboundedMap2", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 105 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 380 + }, + "event": { + "ty": 400 + }, + "constants": [], + "error": null, + "index": 59 + } + ], + "extrinsic": { + "ty": 744, + "version": 4, + "signed_extensions": [ + { + "identifier": "CheckNonZeroSender", + "ty": 746, + "additional_signed": 31 + }, + { + "identifier": "CheckSpecVersion", + "ty": 747, + "additional_signed": 4 + }, + { + "identifier": "CheckTxVersion", + "ty": 748, + "additional_signed": 4 + }, + { + "identifier": "CheckGenesis", + "ty": 749, + "additional_signed": 11 + }, + { + "identifier": "CheckMortality", + "ty": 750, + "additional_signed": 11 + }, + { + "identifier": "CheckNonce", + "ty": 752, + "additional_signed": 31 + }, + { + "identifier": "CheckWeight", + "ty": 753, + "additional_signed": 31 + }, + { + "identifier": "ChargeAssetTxPayment", + "ty": 754, + "additional_signed": 31 + } + ] + }, + "ty": 755 + } + } +] diff --git a/metadata/src/lib.rs b/metadata/src/lib.rs index e9a5aeeb8b..b007d02652 100644 --- a/metadata/src/lib.rs +++ b/metadata/src/lib.rs @@ -17,6 +17,8 @@ use scale_info::{ }; use std::collections::HashSet; +pub mod stripped; + /// Internal byte representation for various metadata types utilized for /// generating deterministic hashes between different rust versions. #[repr(u8)] diff --git a/metadata/src/stripped.rs b/metadata/src/stripped.rs new file mode 100644 index 0000000000..138f05aed4 --- /dev/null +++ b/metadata/src/stripped.rs @@ -0,0 +1,232 @@ +// Copyright 2019-2022 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +use frame_metadata::{ + ExtrinsicMetadata, + PalletMetadata, + RuntimeMetadataV14, + StorageEntryMetadata, + StorageEntryType, +}; +use scale_info::{ + form::PortableForm, + interner::UntrackedSymbol, + Field, + PortableRegistry, + Registry, + Type, + TypeDef, + Variant, +}; +use std::{ + any::TypeId, + collections::{ + BTreeSet, + HashSet, + }, +}; + +/// Strip Error. +#[derive(Debug)] +pub enum StripError { + /// Pallet not present in the provided metadata. + PalletNotFound, + /// Pallet not present in the provided metadata. + TypeNotFound(u32), +} + +/// Collect the type IDs from the given pallet. +fn collect_pallet_types(pallet: &PalletMetadata) -> BTreeSet { + let mut type_ids = BTreeSet::new(); + + println!("Collect"); + println!("Pallet is : {:?}", pallet); + + if let Some(storage) = &pallet.storage { + println!("storage : {:?}", storage); + + for entry in storage.entries.iter() { + println!("Entry : {:?}", entry); + + match entry.ty { + StorageEntryType::Plain(ty) => { + type_ids.insert(ty.id()); + } + StorageEntryType::Map { key, value, .. } => { + type_ids.insert(key.id()); + type_ids.insert(value.id()); + } + } + } + } + + if let Some(calls) = &pallet.calls { + let ty = calls.ty; + type_ids.insert(ty.id()); + } + + if let Some(event) = &pallet.event { + let ty = event.ty; + type_ids.insert(ty.id()); + } + + for constant in pallet.constants.iter() { + let ty = constant.ty; + type_ids.insert(ty.id()); + } + + if let Some(error) = &pallet.error { + let ty = error.ty; + type_ids.insert(ty.id()); + } + + type_ids +} + +/// Recursively add all type IDs needed to express the given type ID. +fn extend_type_id( + registry: &PortableRegistry, + id: u32, + result: &mut BTreeSet, + visited: &mut HashSet, +) -> Result<(), StripError> { + if visited.contains(&id) { + return Ok(()) + } + visited.insert(id); + + let ty = registry.resolve(id).ok_or(StripError::TypeNotFound(id))?; + + let mut extended = Vec::new(); + // Add generic type params. + for param in ty.type_params() { + if let Some(ty) = param.ty() { + extended.push(ty.id()); + } + } + + match ty.type_def() { + TypeDef::Composite(composite) => { + for field in composite.fields() { + extended.push(field.ty().id()); + } + } + TypeDef::Variant(variant) => { + for var in variant.variants() { + for field in var.fields() { + extended.push(field.ty().id()); + } + } + } + TypeDef::Sequence(sequence) => { + extended.push(sequence.type_param().id()); + } + TypeDef::Array(array) => { + extended.push(array.type_param().id()); + } + TypeDef::Tuple(tuple) => { + for ty in tuple.fields() { + extended.push(ty.id()); + } + } + TypeDef::Primitive(_) => (), + TypeDef::Compact(compact) => { + extended.push(compact.type_param().id()); + } + TypeDef::BitSequence(bit_sequence) => { + extended.push(bit_sequence.bit_store_type().id()); + extended.push(bit_sequence.bit_order_type().id()); + } + } + + for ext in extended { + result.insert(ext); + extend_type_id(registry, ext, result, visited)?; + } + + Ok(()) +} + +/// Keep only the pallet inside the metadata. +pub fn keep_pallet>( + metadata: RuntimeMetadataV14, + pallet_name: T, +) -> Result { + let pallet = metadata + .pallets + .iter() + .find(|pallet| pallet.name == pallet_name.as_ref()); + + let Some(pallet) = pallet else { + return Err(StripError::PalletNotFound) + }; + + // Collect type ids from the pallet. + let mut type_ids = collect_pallet_types(pallet); + + println!("TypeIDs {:#?}", type_ids); + + // println!("TypeIDs {:#?}", type_ids); + + // Extend the type IDs with their dependencies + let registry = &metadata.types; + + let mut result = BTreeSet::new(); + let mut visited = HashSet::new(); + for id in type_ids.iter() { + extend_type_id(registry, *id, &mut result, &mut visited)?; + } + + type_ids.extend(result.iter()); + + println!("TypeIDs Extended {:#?}", type_ids); + println!( + "Pallet [{}]\n stripped {} vs full {}\n", + pallet_name.as_ref(), + type_ids.len(), + metadata.types.types().len() + ); + + Ok(metadata) +} + +#[cfg(test)] +mod tests { + use super::*; + use codec::Decode; + use frame_metadata::{ + RuntimeMetadata, + RuntimeMetadataPrefixed, + RuntimeMetadataV14, + }; + use scale_info::meta_type; + use std::{ + fs, + path::Path, + }; + + fn load_metadata() -> RuntimeMetadataV14 { + let bytes = fs::read(Path::new("../artifacts/polkadot_metadata.scale")) + .expect("Cannot read metadata blob"); + let meta: RuntimeMetadataPrefixed = + Decode::decode(&mut &*bytes).expect("Cannot decode scale metadata"); + + match meta.1 { + RuntimeMetadata::V14(v14) => v14, + _ => panic!("Unsupported metadata version {:?}", meta.1), + } + } + + #[test] + fn strip_pallet() { + let metadata = load_metadata(); + + keep_pallet(metadata, "AuthorityDiscovery").unwrap(); + + // for pallet in metadata.pallets.iter() { + // let metadata = load_metadata(); + // keep_pallet(metadata, &pallet.name).unwrap(); + // } + } +} diff --git a/metadata/types.json b/metadata/types.json new file mode 100644 index 0000000000..ba69ccd8f1 --- /dev/null +++ b/metadata/types.json @@ -0,0 +1,207 @@ + +running 1 test +TypeIDs { + 0, + 3, + 4, + 7, + 11, + 12, + 13, + 17, + 20, + 43, + 80, + 156, + 158, + 159, + 161, + 165, + 169, + 171, + 172, + 176, +} +TypeIDs Extended { + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, +} +test stripped::tests::strip_pallet ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s + diff --git a/subxt/Cargo.toml b/subxt/Cargo.toml index 82ea2489c8..9926db175c 100644 --- a/subxt/Cargo.toml +++ b/subxt/Cargo.toml @@ -45,7 +45,7 @@ hex = "0.4.3" jsonrpsee = { version = "0.16", optional = true, features = ["jsonrpsee-types"] } serde = { version = "1.0.124", features = ["derive"] } serde_json = { version = "1.0.94", features = ["raw_value"] } -thiserror = "1.0.24" +thiserror = "1.0.39" tracing = "0.1.34" parking_lot = "0.12.0" frame-metadata = "15.0.0"