From 67579505537eae33cc3d6c9c03dd78e078efdecf Mon Sep 17 00:00:00 2001 From: Fusee Date: Fri, 17 Nov 2023 16:39:04 +0100 Subject: [PATCH 1/4] correctly parse collection identifiers when cloning blockchain data --- mocking/src/world/infos.rs | 57 +++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/mocking/src/world/infos.rs b/mocking/src/world/infos.rs index 55ef233..00859b6 100644 --- a/mocking/src/world/infos.rs +++ b/mocking/src/world/infos.rs @@ -253,7 +253,7 @@ async fn get_addresses_balances(gateway_url: &str, addresses: &[Address]) -> Res let mut amounts: Vec = vec![]; for infos in e.1 { amounts.push(ScenarioWorldInfosEsdtTokenAmount { - token_identifier: infos.token_identifier, + token_identifier: parse_token_identifier(&infos.token_identifier), nonce: infos.nonce, amount: infos.balance, opt_attributes_expr: None, // TODO @@ -283,4 +283,59 @@ where for (new_key, new_value) in new { original.insert(new_key, new_value); } +} + +fn parse_token_identifier(token_identifier: &str) -> String { + let mut hyphen_count = 0; + let mut end_index = None; + + for (index, char) in token_identifier.char_indices() { + if char == '-' { + hyphen_count += 1; + if hyphen_count == 2 { + end_index = Some(index); + break; + } + } + } + + match end_index { + Some(index) => String::from(&token_identifier[..index]), + None => String::from(token_identifier), + } +} + +#[cfg(test)] +mod tests { + use crate::world::infos::parse_token_identifier; + + #[test] + fn test_parse_token_identifier_empty_string() { + assert_eq!(parse_token_identifier(""), ""); + } + + #[test] + fn test_parse_token_identifier_no_hyphen() { + assert_eq!(parse_token_identifier("TEST"), "TEST"); + } + + #[test] + fn test_parse_token_identifier_one_hyphen() { + assert_eq!(parse_token_identifier("TEST-abcdef"), "TEST-abcdef"); + } + + #[test] + fn test_parse_token_identifier_trailing_hyphen() { + assert_eq!(parse_token_identifier("TEST-abcdef-"), "TEST-abcdef"); + } + + #[test] + fn test_parse_token_identifier_two_hyphens() { + assert_eq!(parse_token_identifier("TEST-abcdef-123456"), "TEST-abcdef"); + } + + #[test] + fn test_parse_token_identifier_more_than_two_hyphens() { + assert_eq!(parse_token_identifier("TEST-abcdef-123456-abcdef"), "TEST-abcdef"); + } } \ No newline at end of file From d60e4ad04a41d4a309dc0474c93675dffb900848 Mon Sep 17 00:00:00 2001 From: Fusee Date: Fri, 17 Nov 2023 16:44:10 +0100 Subject: [PATCH 2/4] fixes --- mocking/src/world/infos.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mocking/src/world/infos.rs b/mocking/src/world/infos.rs index 00859b6..7434440 100644 --- a/mocking/src/world/infos.rs +++ b/mocking/src/world/infos.rs @@ -256,7 +256,7 @@ async fn get_addresses_balances(gateway_url: &str, addresses: &[Address]) -> Res token_identifier: parse_token_identifier(&infos.token_identifier), nonce: infos.nonce, amount: infos.balance, - opt_attributes_expr: None, // TODO + opt_attributes_expr: infos.attributes.map(|e| e.as_bytes().to_vec()) }) } From 302e5415845d1c67553b2c29b02d3f1451ee7e72 Mon Sep 17 00:00:00 2001 From: Fusee Date: Fri, 17 Nov 2023 16:49:19 +0100 Subject: [PATCH 3/4] fixes --- mocking/src/world/infos.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mocking/src/world/infos.rs b/mocking/src/world/infos.rs index 7434440..c7daae3 100644 --- a/mocking/src/world/infos.rs +++ b/mocking/src/world/infos.rs @@ -1,4 +1,5 @@ use std::collections::{BTreeMap, HashMap}; +use std::fmt::format; use std::fs::OpenOptions; use std::future::join; use std::hash::Hash; @@ -256,7 +257,11 @@ async fn get_addresses_balances(gateway_url: &str, addresses: &[Address]) -> Res token_identifier: parse_token_identifier(&infos.token_identifier), nonce: infos.nonce, amount: infos.balance, - opt_attributes_expr: infos.attributes.map(|e| e.as_bytes().to_vec()) + opt_attributes_expr: infos.attributes.map(|e| { + let test = format!("0x{e}"); + println!("{test}"); + test.as_bytes().to_vec() + }) }) } From 5cf723f5b910ccbc52e7da193efcc1b46edf86e2 Mon Sep 17 00:00:00 2001 From: Fusee Date: Fri, 17 Nov 2023 18:26:18 +0100 Subject: [PATCH 4/4] fixes --- .novax/abis/tester-contract.abi.json | 25 ++++++++++++++++++++++++- .novax/tester-contract.wasm | Bin 11325 -> 11774 bytes Cargo.lock | 1 + mocking/Cargo.toml | 1 + mocking/src/world/infos.rs | 18 ++++++++++-------- mocking/src/world/serde.rs | 8 +++++++- tester/contract/src/printer.rs | 14 ++++++++++++++ tester/contract/wasm/src/lib.rs | 5 +++-- tester/core/tests/dummy_deploy.rs | 4 ++-- tester/core/tests/mock_query.rs | 27 ++++++++++++++++++++++++--- 10 files changed, 86 insertions(+), 17 deletions(-) diff --git a/.novax/abis/tester-contract.abi.json b/.novax/abis/tester-contract.abi.json index 4af4191..ab4a219 100644 --- a/.novax/abis/tester-contract.abi.json +++ b/.novax/abis/tester-contract.abi.json @@ -10,7 +10,7 @@ "contractCrate": { "name": "tester-contract", "version": "0.0.0", - "gitVersion": "0.0.16-1-gecdcf08" + "gitVersion": "0.0.17-4-g302e541" }, "framework": { "name": "multiversx-sc", @@ -49,6 +49,16 @@ ], "outputs": [] }, + { + "name": "returnNftProperties", + "mutability": "mutable", + "inputs": [], + "outputs": [ + { + "type": "TestTokenProperties" + } + ] + }, { "name": "returnFungibleBalance", "mutability": "mutable", @@ -703,6 +713,19 @@ "type": "CustomStruct" } ] + }, + "TestTokenProperties": { + "type": "struct", + "fields": [ + { + "name": "buffer", + "type": "bytes" + }, + { + "name": "integer", + "type": "BigUint" + } + ] } } } diff --git a/.novax/tester-contract.wasm b/.novax/tester-contract.wasm index 049417d613b8d054ccd7f2b3564d691c34a8415e..4f34a0fb7ee6c41ae172887f54a3a3e3a8ebb6d6 100755 GIT binary patch literal 11774 zcmcIqTWlQHc|PaNEV<&4;*m_t6eZQO8^t|<3jc$Z6;AR? zoeuGtePPn9EX$c?ziat)0n5vT!}(?Gi1?iTQ-HU8y30RfjhhM0@B}~+;4%(^61{BR z=)N~d>KCF`ZMI%rm}oW|O{F=reyTS6c)fihY2$PBA=Sglp2f=2nKMcANODmXIMJ6* zxO3-{`iu%Y=ML2Bwbof>IA<5D_3CUgb7I`h%rui$O9h-B^hgdS?TJh6qzMWt)rD$( zI`K5v6gt)qCH2{M3ao#1x^lUlv^?6atFTV&Ke-lOAJJ`GJ?NUVON&Xp?ayWlo(&JQ z%b!T;?hubqzNNKTU08rudTBWeP@{$Y?#FgFuG?o=oA+ zpcwX=LYLNE-Nu+O&;i1X3A7IMrXVQj?k-(i*VR=lnsqwVrqHuacNYU=bT^LNRp>=j z`q2LhfmT7+reH<8D_4rqigNF~oqu)z`?}p-i^*c6dD*BCUf)*BU69v_rA4(8RADw( z^c_u+!;v%XW6j37q}i^)Z$GE+^wS5H>a(?}g(UO-m-S$}zfoVic2(b5Z@@c_G`wgh z>NDpWHF)wh-Rlpfdi#8a^sx6~Z%gWWhLp-`R;SxpM0!Q{`SY;aB?5d^7yZPkz3K~k zT{_-1s=k;%Jh)qZDStqe{BlOasRwsIl}xLzvoJo23Jw4!e?QbkWz(>z;M{`yo9o;;i z9^l&V>%07#4~NN&2hXKH$d;g6(&DjTrKMiiTl^`=b-LO{^k~=egDv&7Ozb!*Yo3sn z`a`|hpUW0Hfqq?YOo1-7+Kt5%?dH;STm4Z6YrJEYfwf2=?H zUZ87t5!^R2v3qb6br|$FGpkyi^st+`%G1*=hb)g!yo1ZS@f7{_1XOJ4gKhcJ$$5*M#;|e-_=EOR3RaM{yxGL5qyAf z(>=Elu3z=S?U|gMK^~YyF%#%$a`J3aJvTX3Z6$%}`S$*6`hI1`VjY{q;aF_q@Nl2D zzpf(wj}<2L{HO^r(s3|1YE%>{cja2qt+z@=cWAw0N6I=@->bZx$YF5G|pXl`GoEVt&4u9Vin0cDpayh5?alyE9fJ0SVv5nO+QbN8d-r zN+~v=*x*oiIdFsRIB-{f8Ju^;b`!(m1$n|~@ItdmzM%)#JLf|C88c?aV!cC!Pzz6o z?zNvP_pP@n)N(NYL?5=s0sg|dvbGmNCh%a5AEBKZ;?`J0^1Vj5C*ieTjj?S}8uA#6j&{bh%!-AmJCV zcnCIXA1wuTL=gP)-FM&ZJ^*VA>~Fdsz<7-9icLSF04NAK3miXtyJ(9;T;?!_V6bgn zY!DW(ifODy_XCUjpDRUommMopU)n}PapKlDK2mX+Qk+WZE*C^?zat-4Zom z=9Vy!)Ge`+x+P4`yCwKA-tPVu1?#d|!5`>wZ-R<03v$bb-f+d9WHh}|E=bE=r{Z@R1K}9B3Y`|8OabiYLN`)!1H0~8BXoH|b;B}huJ`SQ?RILxTUMr1T z#8>QLOfixp?jx@Z(;6(A0DOll5(IbHI_TB&C2(D!)kL@5y4_B!*-EPr<6RGxmS|&e znzFIoE=I%$zuLX>a?x2~z(ku#cFtda}j*ESNzCGWHah7=Xjur>Ix^KpM6XQ|xbGkA%SQYonLL)Tjf=klil00Fs^;=Pkf> z3h+Mw?0OuM3glQJ4zg?q@5UnH^3+fqj08p47{Wg+IScNNa|edpodbcBD?5&lgc z{sD^NAH?j6yGkLwH2RbmLp)z*wxQva1A9W~WnkzYHG^<7$YQ_;R0{?SP0)aHdr9Id z{mZA@onlKaWtNG2Yn%D0O8gywtK1SEv{eh_C||D4ln zQso8+X#?t^n^I*)(RW7$Q(qm@fqYSwO0oh~Cg%XFI(!88Z2&bTZ2-5WO~4rxT%tUniwi!rc|1>dGyw!2F!Io@ zJ!DQuNshF)1|CEKLv~>bO?JJA?Iiz3bT{-zS76U$hkO<5vx1pm+Sr8S5d2sf((>hy zVmY*{gB-RyP>Jt|G{`_t5=u`J<~_-cs9yj~`>gumo8z>l#6j|_*BI7tkUM|pH>9pvB(t;lYwmdLbm6!cuad8)_ z{Q~TcW+p}_hRwd97&&quP_DkU0z8zel!!e~wQ#?j4B_!ge4BN65ed~RcM2Zq?dan- z3yUm$m3{C}ser0vs}kUfe|1>9@uznyGe(fohV#&E8*xIFGV5=Q?n2=a2aFgR)m;A* zln*#n^Da1F4(Cen2TU1XJxhFH50Qoy1{oM%;qg8sPA~*!=K3_Sz~aS<@-vZp5W~ZB`6}TvgHnE-BB7D5U+N2xWkd?hs;$K z=LJ)$EEW(Vahzoi)`<40*f&A!cB|9&DB7PVO3J_YT;<8295xVk4j?fwbupzJDX`zYdk7t+A5A$=Jue<;$C%KV(Y8$@;c zy812XIYy_Ay2q(UG_OCPJ}`wqVaNbNl)cYB42k{+%DUK2Q>1T9~FN-Pb>Z zb8zHa-{_*R*c+8GguKe&PKQ3W{-Dj%%aip;x^v%j~FTRP3o$~5> zr3WoIZu8_YM%?j@v}HmGnOlM#hw^>|iVNUk0-F1Wd@Q~@AhOOBA^nsng8h^jESk7s z?15tLp|a2JH@u;}BEhVTpkzClvHi2S>>#O<_H&}YCar8fb4 zlM#$<82uUfmsSsGq5FLbw2CP(@Zh?j6o3rvqh|1gloTX$D~$$6xAOXxUN>yEGSj{9 z6E7SuguhTLBk$cLT*{VA z``EfI+CU6GAoNxAb=btvnjk^RK-Y8F9Ct45g~4Q|iY`m6VXNO@e1Jh9LJGA{*iBg7 z7ER@4xLAsP(jLP)q=#*`;=Nee!@RG9(2YG#jkD~cnvY7j!2X}ZmWuWT#DswD5@;gV z6eU`Q=Q|?lEs+2+OvfGu0(}bv8Tik}=B1Jm@WyV)pr8Jb3@m;q2KL$cl>TiQf{8qd z<-U}Om>|8SO78PIWOF7S1sU1rGAQ5FCd~7R2LuHpy}$=pwP;3HWA{MB+ffS{{CdJ` zi~CE)z_uAlSr15E2-muOBxPbp)QtmwlN^#7Es+v@r9Yyqrm7ACuiwHab3OylWhrD7 zk%)utz(*YM+ts*YGQ+3Wl9;Vt7>pq(QRulK4K9@l3sRzUpTw73p8NId9Dv7$qhK{yZXEfj`pGS z<<-MlC8f`JrNQ;_Ce;5jw;?*_4Zkyn=K9j9zL117IfDh3Xb8>J3Zd?x;}wz>!y?Rki5KQA%mB>nQ!(N_SwVDrjN;}W zLwCI1Xmsam<%qrFa@)m#c9ihj2;B`T_A7y15VB)gCPr&j6-%r zFxnCHaA1rz)3~>RfjPI;kN)#zRA59c;_viffU>`8q}x2wYga!2>E8#LXTGDP$n@@J zKV1%O8*N25+Ac7JtIO3^;fK;aPJ?0X{CEbX&$zGN*!#(WbZJ^@RQ79d1(*@+jUU4Y z5j2(Cd)o}?7SbPl@jGGY7SN+ZbjF?*Q^|M2sd!!Gy z>A1vt7Oeg1U>XmTF87Xt&!ICCDX(@$?k#Y#g`7lR2m>W=$sMlMFH{$5Gci7wl4dep zJ6FRir!n4$<14T+Ue<|QNxN1*x73c?jYhoCsL!^NW(|j4NSg5s-V>Th;)E~d?gMK4 zN*uizRMR(CZ(5FrNA?MbGs(p`+krQx8Zll|yu3Pdu?ZA0-b`m~8%?~R3qm|vyr~oO&B?ghZZ~UFcmcAtFP^H-0ARCvIbM*r zb?c3oukcJ&r|07{OZDk?tx=CJ;%%Y0eYV<;>(xatcd6EDx8hno#ye5+I-a~WBnML} z;+hv#V?Kj6$@7!`MX46PN$aiG_&yY9^;=T8`*Z%SDA3*B#gE4*nan7@%@c)h;1z-Y0}+H9m;e9( literal 11325 zcmcIqU2I&(b)K1fmt66Z;z*)pijwWS8zrV>NtSGvk`*iAtW3#@Wl7eL?bu1E6?sK1 ze|DwarG65Zlr2Sd-MDp|wrNx6r%hY;#Yj-NKv3i%Km)Wd4U(Wh-wLz{kfJRDKlC9e zim2ar=HAOCMcIBxMQC^K{G2)GJ3n*I>{Zp)oK{NdSM4mdh3tYgJ9N|*KVXWio1dcpj> zYip3yFGsD~RJ}So)@(MKO0#F}x!Tl`dizw;#^=ams)wCDbCvn?=ac5Kj`D&Q|La ziRZzl)G>ZEsZX_2V*N|qm22&!<+t6kMC;U(r&rSJ<96$p7P{ut{9ICR`?cAC7sC_n z_A64pJKzz{H@D`hv$KE(yq&2Ny<{?{8FA^RoS!?!1>kj4NjqDyOgi)*o1e>uS{~?) z*?u0?jHFu2tu~}`ooY9lK$%~O7i=)a9b6u7)~0Ge`1IAMs!)qakuAh9g+4V~1N3W1 zGQ$}9?|@^Cm+6`LS=Gf^=`(cdpEsq99BMY^Dq=r5qhcEOrsJm@tBt1APBgA~Y6I!) zgN=*VREV>DKuyx6G0{T6%uk`({zdV_y{#`~QQH|iCg?nuy^)roc%MPAi?em?AJp7d_$ zqVG7fPumd{&WGy-qiQ{H9mwTlb$?>em5I}0?CWt1tTr>dwR291zabpZTNM&mM?6n zFK4i0rHpw-TI%=pCciEl=p_0FdVNZCzSVBbooYAdC)(-{Gg=2bddc2bGE6!Lp0Bkp z_=SLm=>C!Z=$%AY&LX)#&S3ZC#_F)zuVz-Y)W@lRq95=y57nCRXW@(UN%l}JnVoE@ zw{)BenoKn6ldI18n!c}-wdEAJ&)2i<1;gj6v-1h`puV9Wm_ST$^+x+b(#$OTqeo2Y#R(=<~D<@ZXwoodkNdvhe`pru{%agFLxd>MSKN& z0~NiX!^Mv%XJ^WKD=68sT;Ph+u^Q$iY*P+mW2>>ov(tyeQTH`)5V-HYQgr?H35bFb zq3Wf;YCFAEMZ1NCCDOX0_6FRR)XT~h?O4puE7^h~x8H8}Mfah>&9&VXt8D=pf0#YJ zXzY%@jYBEr*nne$Mcw7V4YuRJUH@fp$ram8G>ezz39Z4)%_ilB9$fFV3++p0)QrY@ zrwXAKt`6OsKUD6gKPIT@{e74UkaGJNYMo7exh`$lC@daqyqMgNUT@zzZa6ko#_ zJJ23v8}rydj5d~|wePi?H*XSGN>`i)o-bwl_K=Oo!PBm2M4JvJQvvo7Q7DuRcz3E^ zr!VbSv_;qkRV19xE?cI|qWkwB7k4UEHe)aYw4L6s1UM&lNWxCpnvfQ=5PMd3#*PA> z^x;4xHVZa&i+iS7VkFp6%BM!UeU`^W1=cdtEArlPcshT_ou6kUNdX|vL>y((IV>EuQx-ZKPZy&xu( zpR|2K&5o9IFiOW#?!UzLk3p@Nf|Lv%9$IHB&>E~d3r0RXDGPe4lio;lXr;pFkI3*c ze}rYE{-|?*gspjhgdD~j+;@>vE|^99fe-huuNGaG1-oTKH@I$3GmO4nE{w$m_n-fw z4>kK>ptQ4GfN&I2g-(kzrUV>2BDku5c7F-P*80Ge&iF*S!NnVhljdzGCfocICF4|7 z0w%H98(4f5(vavx?l7#?a4>W3{1h&xSwIWb+R2IuG0+kaS-jHYJHUTTDh=F zV8tAXI&wH{r>u<68X}qia)*l&{T{MY;8)L-AT?|+ilVzt-EJ!@rqU|JE7n4#CE6Ig z1xDQMVuX6gtKHut&|49}M4QNVYAoSsf8>4v>DKeS8o)@banLRAw7?AZkIvUYW)o*_ z$|yK>Oh!CH7{U1m+SUT1=m7$%?Fn%saeRqQV)-0jL&m$Exg4EY7NxY^0~2O&XUsqg z2#PBY8w+7@^cZ^*LJYvu?J4Tj?&KsyPy`eEDCS7)`?fZEAxxuYAV*`j3oe7D7sYuC zaGe7D4+Oi80I5Kh72+T}=HT5JL_i)Nii2%I5jKXn4@=JCK8-q!`(odD+&3L@-*m)% zlgE9KV%!Ha564}lkX{N0gC}2Ni760G(iK-ZCe5= z{mY-TyTq1U%#%EdzN2&E$P&z`ke6Tq0vX`F`_&c?coBO!n$956KEv4|aF)~Dq9La_ zW8rS^r`SJL+CWYNMlk50z7;g6I`T}_fp0W+$`L$B^=%RL3C|x}5s(ny`@x)X{nJjb zI3w2qq;*JymYtCqM|YYLECnn;urxbK<-q}Ecduqi3%by8_yP-C4iKk4ja_jF=LU)v zj8@KJWK*zD7;d?c?e!v~dt3nL3W$jOOGf*cT|a~)g|R}Q#)qVCz4jw2+6=kG!#B8Z z!3BG8d}vs(q={oIQDWFuOJN&Wr(qkr-jPNDO>vcl969)j8KrqhZq=Dpg)^}^g1m}8 zffEkNFmgboRsmVXhoonAMlvhdsAN_m5YNJBh<2iI>UVTSsmsa1OOqZp@u83>hZ*Zr zJlL42Ae8f~z%v*L^K^-3i7%Q0(r44BaWF*Ss4!CsK(c_NVk~+~d!6m}&Sc#1bXgo5 z;Q~HU4(a4H70AhOpyI9(6MIb}G^o8w;Q`hh z<_|!rkUhj^TVOfIxZU)}kLOwo;pq%P*dU0B)Ydq}9*_?G*pX)q1m=+ydR_HP2WA^P z;MC!0&&n*F5u%ria5f`L4<$)q& z7G`23YwwK)!9VgN?V6SKtZN{9(=vrxD+6U!QRr6D)m%=WIBNz_y%a#v%mOHzONq1Y z2%x$nfa*Mef>f3`6IO}SOKHeoFO?WTSh5iqQ;`9W23Rgov9xYf3TaA=28#mdRpp7X zs3z`0K3sr;s1MPOSO7EUV&o`&K%9N?0eZ;khzLU)3lRD=K0>&L5+`7$TExlYbubRo z^@=^P94w0TPsrlHBryM+g!K~WiXnEGh4HH&QD&4RrBLOfyOye?D*4FY;PwwEbR5vN zG%B$Er^Uyhf0oR8=-KFt(IWR{)!AHA`ReCkLaP8bLTVP`<){5ooFy>Y%+L}2c#@PfHL^VV`RpuuUFQ&x08kCf zvxSmWXMDON8Yq_T$=p2#0ZYd63iei9y+Rq zl$U2Ai) ztoG0!c%zXzL`gxDEYWc$xbN{U$sUL<7=sHde@!CXlf1oLf+Es{TJCAq9H*OLF5&aV{qjeyX;ebydfpUvj=*pJx++x4a$l>jMhU-t0de9A+rC{Car)P^YVF&E$5i`C%Lc%=trCa$VvFLJe79a(y&D(ifjCKHiM4kK@$V&7oup?e-Dmhj$giJ-m9S8bAr7eA%@= z(`HYK`g74%=JH~v8N?a9B@KlDJ!oayos&dLnUZNAQ}2(~aR=`SeHDERHo@4N_rW`e z40Jt#$#Lh<2n;4ORa6pU4O{#K<2?%=h!fsEW$(r4{n5Gn(pEHKkJ)E14)ie1ev**^ zTD70zofJSf_Bb`39!ueIDK#2L{Y zBM6{l8vuhn^@^DaVEnNn_CPSHLea8C^fGX2VzMnz^_EE)iBiHJ@CBeL7(>) z4OFWUVZ(S1Kue#*gx@kGFmPXQy@1 z32*qFF*MhgPW1)%&2WYYzTgxSA?m4 z7`Hh`UoobzXqbI?FY#cmVg?Xqzlss>DGH+77~$q0LwCH^Xk1LL#1V7lwrIN;&_gBM z|I^)|Vm}gyX$AJMq(?BVz;2@@4b#+MP^B)XaW%2h+CIpp_6E2Ti@SIyq5ThjY0`>{ z%>%`|gw+l0bn43Ztqm8=A%V$`_@%(TL)b5AeC@z(7$R$aF}zUGsG>X&_7e;x|z2YoB|M9vDGrNe{N zHnW3h2oS^GYF|)MI}TO_P+HLWzzj_t7 zMci88&s-(_HO&61H@(kq`hySJ^e=+UGv8B^#CdnKpDu@Xu8do4)Ef{8*K@ENqy>9% zvR{O#+FnAsGwL%o7CJJ?UX+ZKWeE&lk}g>Buo*s#5UJe0yPkJ$HvR1qzkG#m7R5Ax zGWN4#7#Ry$$5ZH_w}LANRNWT)8J{cS83Mce>}POW^v|%I5sTt($)jem=0}R6z?Iar zJxKDiH2-09g7*G`4+&?*X##uP9^(+g*syuQKHZ1=Vca%72ho0YG>xZ82YXLR-ItbL zxD#-1K$^{zA^Nuf?$7tRei+p1m#ee2$rzvWNi&(KU990{#~3ef@#V`HubjlKq+P3D zoNveNMkAhW)TdfWvxY^VPnz*$GSQe!;)Jh*?vJbKyOPVgy4N%n4GIl%*5yC>l5u-qaI(uyDV}0LbV;&t8-xbYOU37#kG2jH+JM@F?pv& z7N)zzH4i~!CZjga_2d3Eo)*5z%j#o%TL##0LDYF(~2iB7A9H$QovF)=aUY$lVi$Q#8dd<(y0{~xHT B#k&9i diff --git a/Cargo.lock b/Cargo.lock index 71c7007..833b3e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1554,6 +1554,7 @@ name = "novax-mocking" version = "0.0.17" dependencies = [ "async-trait", + "base64 0.21.5", "futures", "hex", "multiversx-sc", diff --git a/mocking/Cargo.toml b/mocking/Cargo.toml index dd92c3b..f30811b 100644 --- a/mocking/Cargo.toml +++ b/mocking/Cargo.toml @@ -23,3 +23,4 @@ serde = "1.0.180" serde_json = "1.0.104" futures = "0.3.28" hex = "0.4.3" +base64 = "0.21.5" diff --git a/mocking/src/world/infos.rs b/mocking/src/world/infos.rs index c7daae3..a26282a 100644 --- a/mocking/src/world/infos.rs +++ b/mocking/src/world/infos.rs @@ -1,9 +1,9 @@ use std::collections::{BTreeMap, HashMap}; -use std::fmt::format; use std::fs::OpenOptions; use std::future::join; use std::hash::Hash; use std::path::Path; +use base64::Engine; use num_bigint::BigUint; use futures::future::join_all; use multiversx_sc_snippets::hex; @@ -27,7 +27,7 @@ pub struct ScenarioWorldInfosEsdtTokenAmount { pub token_identifier: String, pub nonce: u64, pub amount: BigUint, - pub opt_attributes_expr: Option> + pub opt_attributes: Option> } #[derive(PartialEq, Clone, Debug)] @@ -131,7 +131,13 @@ impl ScenarioWorldInfos { if balance.nonce == 0 { account = account.esdt_balance(token_identifier, &balance.amount) } else { - account = account.esdt_nft_balance(token_identifier, balance.nonce, &balance.amount, balance.opt_attributes_expr.clone()); + let opt_attributes_expr = balance.opt_attributes + .as_deref() + .map(|e| { + base64::engine::general_purpose::STANDARD.decode(e).unwrap() + }); + + account = account.esdt_nft_balance(token_identifier, balance.nonce, &balance.amount, opt_attributes_expr); } } } @@ -257,11 +263,7 @@ async fn get_addresses_balances(gateway_url: &str, addresses: &[Address]) -> Res token_identifier: parse_token_identifier(&infos.token_identifier), nonce: infos.nonce, amount: infos.balance, - opt_attributes_expr: infos.attributes.map(|e| { - let test = format!("0x{e}"); - println!("{test}"); - test.as_bytes().to_vec() - }) + opt_attributes: infos.attributes.map(|e| e.as_bytes().to_vec()) }) } diff --git a/mocking/src/world/serde.rs b/mocking/src/world/serde.rs index bb39e1c..e62c335 100644 --- a/mocking/src/world/serde.rs +++ b/mocking/src/world/serde.rs @@ -69,7 +69,13 @@ mod test { token_identifier: "WEGLD-abcdef".to_string(), nonce: 0, amount: BigUint::from(10u8), - opt_attributes_expr: Some(vec![0, 1]), + opt_attributes: Some(vec![0, 1]), + }, + ScenarioWorldInfosEsdtTokenAmount { + token_identifier: "NFT-abcdef-9a".to_string(), + nonce: 0, + amount: BigUint::from(10u8), + opt_attributes: Some(vec![0, 1]), } ] ); diff --git a/tester/contract/src/printer.rs b/tester/contract/src/printer.rs index a8190ed..92f8cff 100644 --- a/tester/contract/src/printer.rs +++ b/tester/contract/src/printer.rs @@ -1,6 +1,12 @@ multiversx_sc::imports!(); multiversx_sc::derive_imports!(); +#[derive(TopEncode, TopDecode, NestedEncode, NestedDecode, TypeAbi)] +pub struct TestTokenProperties { + pub buffer: ManagedBuffer, + pub integer: BigUint +} + #[derive(TopEncode, TopDecode, NestedEncode, NestedDecode, TypeAbi)] pub struct CustomStruct { pub first: ManagedBuffer, @@ -36,6 +42,14 @@ pub enum CustomEnumWithFields { #[multiversx_sc::module] pub trait PrinterModule: ContractBase { + #[endpoint(returnNftProperties)] + fn return_nft_properties(&self) -> TestTokenProperties { + self.blockchain().get_token_attributes( + &TokenIdentifier::from("NFT-abcdef"), + 6 + ) + } + #[endpoint(returnFungibleBalance)] fn return_fungible_balance(&self) -> BigUint { self.blockchain().get_sc_balance( diff --git a/tester/contract/wasm/src/lib.rs b/tester/contract/wasm/src/lib.rs index 8e63bc8..bb083b2 100644 --- a/tester/contract/wasm/src/lib.rs +++ b/tester/contract/wasm/src/lib.rs @@ -5,9 +5,9 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 44 +// Endpoints: 45 // Async Callback: 1 -// Total number of exported functions: 46 +// Total number of exported functions: 47 #![no_std] @@ -24,6 +24,7 @@ multiversx_sc_wasm_adapter::endpoints! { init => init getSum => sum add => add + returnNftProperties => return_nft_properties returnFungibleBalance => return_fungible_balance returnNonFungibleBalance => return_non_fungible_balance noArgNoReturnEndpoint => no_arg_no_return_endpoint diff --git a/tester/core/tests/dummy_deploy.rs b/tester/core/tests/dummy_deploy.rs index e854adb..bd469a2 100644 --- a/tester/core/tests/dummy_deploy.rs +++ b/tester/core/tests/dummy_deploy.rs @@ -38,7 +38,7 @@ async fn test_deploy_with_biguint_arg() -> Result<(), NovaXError> { receiver: SYSTEM_SC_DEPLOY_ADDRESS.to_string(), egld_value: 0u8.into(), gas_limit: 600000000u64, - data: "0061736d010000000181011660000060027f7f0060017f017f60017f0060027f7f017f6000017f60037f7f7f0060037f7f7f017f60047f7f7f7f0060047f7f7f7f017f60027f7e0060017f017e60037f7f7f017e60057f7f7f7e7f0060017e006000017e60067e7f7f7f7f7f017f60057f7f7f7f7f0060027e7f0060027f7e017f60027e7e0060027f7f017e02ee062403656e760b7369676e616c4572726f72000103656e760e626967496e74536574496e743634000a03656e760a6d4275666665724e6577000503656e760d6d427566666572417070656e64000403656e760d6d42756666657246696e697368000203656e76106d616e61676564534341646472657373000303656e7618626967496e7447657445787465726e616c42616c616e6365000103656e76106d4275666665724765744c656e677468000203656e760f6d4275666665724765744279746573000403656e761c626967496e744765744553445445787465726e616c42616c616e6365000d03656e76126d427566666572476574417267756d656e74000403656e76126d427566666572417070656e644279746573000703656e76126d616e616765645369676e616c4572726f72000303656e761b736d616c6c496e74476574556e7369676e6564417267756d656e74000b03656e7619626967496e74476574556e7369676e6564417267756d656e74000103656e7611676574417267756d656e744c656e677468000203656e760f6765744e756d417267756d656e7473000503656e7616736d616c6c496e7446696e697368556e7369676e6564000e03656e76136d42756666657253746f7261676553746f7265000403656e76186d616e616765644765744f726967696e616c547848617368000303656e76136d42756666657247657442797465536c696365000903656e760f6d4275666665725365744279746573000703656e7609626967496e744d756c000603656e7609626967496e74416464000603656e76196d42756666657246726f6d426967496e74556e7369676e6564000403656e76176d427566666572546f426967496e74556e7369676e6564000403656e7609626967496e74506f77000603656e76146d427566666572436f707942797465536c696365000903656e76126d42756666657253746f726167654c6f6164000403656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000303656e760d6d616e6167656443616c6c6572000303656e760a6765744761734c656674000f03656e761b6d616e61676564457865637574654f6e44657374436f6e74657874001003656e760f636c65616e52657475726e44617461000003656e76106d616e616765644173796e6343616c6c00080383018101110002050201020b0201011201030301040302010202130308040c020507010107060202020403010300000102030101030114030305010607010809020801040102050a09010608030202010202010601010715050c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000005030100030616037f01418080080b7f0041b0d2080b7f0041b0d2080b07c80931066d656d6f7279020004696e6974007a0667657453756d007b03616464007c1572657475726e46756e6769626c6542616c616e6365007d1872657475726e4e6f6e46756e6769626c6542616c616e6365007e156e6f4172674e6f52657475726e456e64706f696e74007f0c72657475726e43616c6c65720080011372657475726e4d616e616765644275666665720081011572657475726e436f6e7472616374416464726573730082010d72657475726e42696775696e740083010872657475726e55380084010972657475726e5531360085010972657475726e5533320086010972657475726e5536340087010c72657475726e5533325665630088010c72657475726e5536345665630089010f72657475726e427566666572566563008a011072657475726e42696775696e74566563008b010c72657475726e54776f553634008c011072657475726e54776f42756666657273008d012272657475726e4f6e654275666665724f6e65553634416e644f6e6542696775696e74008e011472657475726e446f75626c654f66553634417267008f011872657475726e446f75626c654f6642696775696e744172670090011772657475726e417070656e6465644275666665724172670091011772657475726e53756d54776f42696775696e74417267730092011b72657475726e436f6e6361744d756c7469427566666572417267730093011572657475726e53756d4d756c7469553634417267730094011972657475726e53756d4d756c746942696775696e74417267730095011272657475726e437573746f6d5374727563740096011572657475726e437573746f6d5374727563744172670097012272657475726e437573746f6d53747275637457697468537472756374416e645665630098012572657475726e437573746f6d53747275637457697468537472756374416e645665634172670099011072657475726e437573746f6d456e756d009a011372657475726e437573746f6d456e756d417267009b011f72657475726e4669727374437573746f6d456e756d576974684669656c6473009c012072657475726e5365636f6e64437573746f6d456e756d576974684669656c6473009d011d72657475726e437573746f6d456e756d576974684669656c6473417267009e011372657475726e4d756c746956616c756554776f009f011f63616c6c416e6f74686572436f6e747261637452657475726e54776f55363400a0012e6173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f5536344e6f43616c6c6261636b00a101396173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f5536345769746852657475726e696e6743616c6c6261636b00a2013c6173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f553634576974684e6f6e52657475726e696e6743616c6c6261636b00a3010863616c6c4261636b00a4011f72657475726e4669727374437573746f6d456e756d5769746856616c756573009c012072657475726e5365636f6e64437573746f6d456e756d5769746856616c756573009d011d72657475726e437573746f6d456e756d5769746856616c756573417267009e010a5f5f646174615f656e6403010b5f5f686561705f6261736503020aea4181012e000240200120024d0440200220044d0d011025000b1025000b2000200220016b3602042000200120036a3602000b0b0041c08308410e1000000b1301017f102722012000ad42ff0183100120010b1901017f41d0830841d0830828020041016b220036020020000b0f01017f10022201200010031a20010b2902017f017e2001102a21022001102b210320002001102c36020c20002002360208200020033703000b5801047f230041106b22012400200010602102200141086a2000280208200028020022032002106120012802084101470440419d8308410341b88108410f103c000b200128020c2000200220036a360200200141106a24000b3002017f017e230041106b22012400200142003703082000200141086a220041081045200041081077200141106a24000b08002000102a10380b1d0020002802082001102e20002903002001102f200028020c200110300baf0101037f230041106b22022400200220001007220341187420034180fe03714108747220034108764180fe03712003411876727236020c20012002410c6a4104105b0240024020012d000404402000100722044190ce0041e4d10828020022036b4b0d0120022003200320046a220110732000410020022802002002280204105f1a41e4d10820013602000c020b2001280200200010620c010b2001106c2001280200200010620b200241106a24000b7701017f230041106b220224002002200042388620004280fe0383422886842000428080fc0783421886200042808080f80f834208868484200042088842808080f80f832000421888428080fc07838420004228884280fe038320004238888484843703082001200241086a4108105b200241106a24000b0a00200010392001102e0b3601027f230041106b22012400200141086a103220012802082102200020012d000c4101713a000420002002360200200141106a24000b6c01027f230041106b220124002000027f41e8d1082d0000220245044041e8d10841013a000041e4d1084100360200200141086a410010692001280208200128020c41c083084100106b10400c010b41c083084100103d0b360200200020024101733a0004200141106a24000b0b0020002001103410041a0b4801017f230041106b22022400200220013a000c20022000360208200241086a106c200228020820022d000c044041e4d108410036020041e8d10841003a00000b200241106a24000b0a0020004100103610370b0d00200010272200100a1a20000b3301017f200110072102200041106a41003a00002000410c6a20023602002000200136020820002002360204200041003602000b0d0020001027220010191a20000b0f01017f10272201200010181a20010b5201037f1027220210052002210310272102200041feffffff074604402003103b41f0d1082002100620020f0b2000100721042003103b20004190d20810081a41f0d1084190d208200420012002100920020b0b00200041f0d10810081a0b2e01017f41cd80084117103d220420002001100b1a200441e480084103100b1a200420022003100b1a2004100c000b1101017f102722022000200110151a20020b0c002000200120021044100d0b2e01017f104021010340200028020041ecd1082802004e4504402001200041b083084104104110420c010b0b20010b1301017f1027220041c08308410010151a20000b0c00200020012002104410360b4601017f230041106b220224002002200141187420014180fe03714108747220014108764180fe03712001411876727236020c20002002410c6a4104100b1a200241106a24000bb80102027e027f027f0240200141e1820841061044100d22024280808080105404402002a7220545200541ebde0146720d01027f200128020041ecd1082802004e04401040210441010c010b200141e1820841061041210441010b0c020b41e18208410641a68008410e103c000b200141e182084106103e22024280808080708321032002a72104200141e182084106103e210241000b2101200020023703102000200536020420002001360200200020032004ad843703080b2f01017f2000280200220341ecd1082802004e04402001200241e780084111103c000b2000200341016a36020020030b3100200041086a20002802002001200210680440419d8308410341b88108410f103c000b2000200028020020026a3602000b2a01027f20001060210110402102037f2001047f20022000102b1067200141016b21010c010520020b0b0b2a01027f20001060210110402102037f2001047f20022000102a1042200141016b21010c010520020b0b0b0c00200010272200100e20000b2101017f410010362202100741204704402000200141c781084110103c000b20020b1900200041ecd1082802004e04400f0b41f8800841121000000b1400200020014d04400f0b41f8800841121000000b1400101020004604400f0b418a810841191000000b190041ecd10828020041004e04400f0b41e7800841111000000b0b0041ecd10810103602000b1f01017f2001105021022000410036020820002002360204200020013602000b0900200010074102760b5501027f230041106b2201240020011031200120012d00043a000c200120012802003602082000280210200141086a22021052200041146a2002105320002002102d200128020820012d000c1033200141106a24000baf0102017e047f230041106b22032400200010074103762001105a20001007210503402005200441086a2206490440200341106a2400052003420037030820002004200341086a4108105f1a2003290308220242388620024280fe0383422886842002428080fc0783421886200242808080f80f834208868484200242088842808080f80f832002421888428080fc07838420024228884280fe038320024238888484842001102f200621040c010b0b0b5b01027f230041206b220224002000280200220310502001105a20022003100736021820024100360214200220003602100340200241086a200241106a107420022802080440200228020c2001102e0c0105200241206a24000b0b0bb00101027f230041206b2201240002402000280200450440200141086a1031200120012d000c3a001c200120012802083602184100200141186a2202105520002802042002102e20002903102002102f2000280208200210300c010b200141106a1031200120012d00143a001c200120012802103602184101200141186a22021055200028020420021052200041086a20021053200041106a2002102d0b200128021820012d001c1033200141206a24000b2601017f230041106b22022400200220003a000f20012002410f6a4101105b200241106a24000b0a0020001011200110110b5801027f230041106b2201240020011031200120012d00043a000c200120012802003602082000280208200141086a2202102e20002903002002102f200028020c20021030200128020820012d000c1033200141106a24000b7e01057f230041106b2201240020002802102203044010592001103220012001280200360208200120012d00044101713a000c200041146a2802002205200141086a2202105a200220032005105b200041186a20021053200128020820012d000c103410121a0b200028020020002802042000280208200028020c1023000b1b01027f10272200101341a38108410a103d2201200010031a20010b4501017f230041106b220224002002200041187420004180fe03714108747220004108764180fe03712000411876727236020c20012002410c6a4104105b200241106a24000b7e01027f230041106b220324000240024020002d000404404190ce0041e4d10828020022046b2002490d01200341086a2004200220046a220010732003280208200328020c20012002106b41e4d10820003602000c020b200028020020012002100b1a0c010b2000106c200028020020012002100b1a0b200341106a24000b5201037f2002200028022046047f02402002450d00034020002d0000220420012d00002205460440200041016a2100200141016a2101200241016b22020d010c020b0b200420056b21030b20030541010b450b9c0101057f230041306b22022400200241286a22034200370300200241206a22044200370300200241186a2205420037030020024200370310200241086a200241106a4120200110072206105e200141002002280208200228020c105f1a20002006360220200041186a2003290300370000200041106a2004290300370000200041086a200529030037000020002002290310370000200241306a24000b3b01017f230041106b22042400200441086a41002003200120021024200428020c21012000200428020836020020002001360204200441106a24000b0f00200020012003200210144100470b3102017f017e230041106b220124002001410036020c20002001410c6a220041041045200041041077200141106a2400a70b1f0020012002200310022201101b21022000200136020420002002453602000b09002000200110031a0b0c00200020002001101620000b0a0020002000200110170b1801017f10272101417242121001200120004172101a20010b0e01017f102722004200100120000b7801017f230041106b220224002002200142388620014280fe0383422886842001428080fc0783421886200142808080f80f834208868484200142088842808080f80f832001421888428080fc07838420014228884280fe038320014238888484843703082000200241086a4108100b1a200241106a24000bb20101037f230041106b22042400027f024020002d000845044020002802002205100722064190ce004b0d0141e8d1082d00000d0141e4d108200636020041e8d10841013a0000200441086a20061069200541002004280208200428020c105f1a200041013a00080b4101200120036a220041e4d1082802004b0d011a200420012000106a2002200320042802002004280204106b41000c010b200041003a00082005200120022003105f0b200441106a24000b3d01017f230041106b22022400200241086a41d483084190ce002001105e200228020c21012000200228020836020020002001360204200241106a24000b32000240200120024d044020024190ce004d0d011025000b1025000b2000200220016b3602042000200141d483086a3602000bb50201067f2001200346044020012203410f4b04402000410020006b41037122046a210520040440200221010340200020012d00003a0000200141016a2101200041016a22002005490d000b0b2005200320046b2203417c7122066a21000240200220046a22044103710440200641004c0d012004410374220141187121072004417c71220841046a2102410020016b4118712109200828020021010340200520012007762002280200220120097472360200200241046a2102200541046a22052000490d000b0c010b200641004c0d0020042102034020052002280200360200200241046a2102200541046a22052000490d000b0b20034103712103200420066a21020b20030440200020036a21010340200020022d00003a0000200241016a2102200041016a22002001490d000b0b0f0b1025000b5701027f230041106b2201240020002d0004200041003a00040440200141086a410041e4d108280200106a20002802002001280208200128020c100b1a41e4d108410036020041e8d10841003a00000b200141106a24000b0d00200010272200101c1a20000b08002000106d10380b0b0020002001103910121a0b5201047f230041106b22012400200010712102200141086a200028020820002802002203200210612001280208410147044041b88108410f1072000b200128020c2000200220036a360200200141106a24000b5302017f017e230041106b220124002001410036020c200041086a20002802002001410c6a41041068044041b88108410f1072000b2000200028020041046a3602002001410c6a41041077200141106a2400a70b1a01017f41b480084119103d220220002001100b1a2002100c000b3f01017f230041106b22032400200341086a2001200241d483084190ce001024200328020c21012000200328020836020020002001360204200341106a24000b8a0101047f230041106b220324002001280204220241046a220420012802084b047f41000520012802002003410036020c28020020022003410c6a4104105f1a200328020c210220012004360204200241187420024180fe03714108747220024108764180fe037120024118767272210241010b21012000200236020420002001360200200341106a24000b5101017f20012802002102200141feffffff07360200200241feffffff07460440418d800841191000000b41ee8208410c103d2101200010403602102000200136020c200020023602082000427f3703000b7b01027f230041106b22032400200028020821042003410036020c200028020020044102742003410c6a4104105f450440200328020c21012000200441016a360208200141187420014180fe03714108747220014108764180fe0371200141187672721028200341106a24000f0b2001200241e780084111103c000b3401017e02402001450d0003402001450d01200141016b210120003100002002420886842102200041016a21000c000b000b20020b0a0041bc83084103103d0b6802027f017e230041106b22032400200020012002107621002003420037030820001007220441094f04402001200241a68008410e103c000b2003200341086a41082004105e200041002003280200220020032802042201105f1a200020011077200341106a24000b1601017f101d4101104c41001048210010782000106f0b0e00101d4100104c1078106e101e0b2201037f101d4101104c41001048210010782201106e22022000106420012002106f0b1600101d4100104c41888308410b103d4200103a101e0b1600101d4100104c41938308410a103d4206103a101e0b0800101d4100104c0b1501017f101d4100104c10272200101f200010041a0b1300101d4100104c418483084104103d10041a0b1300101d4101104c41a083084110104910041a0b1000101d4100104c410a10261065101e0b0c00101d4100104c420310110b0d00101d4100104c42f40310110b0e00101d4100104c42c09a0c10110b1000101d4100104c4280b4c4c32110110b1f01017f101d4100104c10402200410a1042200041c09a0c1042200010041a0b2101017f101d4100104c10402200420a106720004280b4c4c3211067200010041a0b9e0101027f230041306b22002400101d4100104c1040220141fa82084105103d1042200141ff82084105103d104220002001360214200041086a1031200020002d000c3a001c20002000280208360218200020011007360228200041003602242000200041146a36022003402000200041206a1074200028020004402000280204200041186a102e0c010b0b200028021820002d001c1033200041306a24000bbc0101057f230041206b22002400101d4100104c10402202410a1026106510422002410a102610654102102610631042200041086a1031200020002d000c3a0014200020002802083602102002100721030340200141046a220420034b4504402000410036021c200220012000411c6a4104105f1a200028021c220141187420014180fe03714108747220014108764180fe037120014118767272200041106a1030200421010c010b0b200028021020002d00141033200041206a24000b1200101d4100104c420a4280b4c4c32110560b2401027f101d4100104c41fa82084105103d41ff82084105103d210110041a200110041a0b2901027f101d4100104c41fa82084105103d410a10261065210110041a4280b4c4c32110112001101e0b1100101d4101104c4100100d42018610110b1a01017f101d4101104c4100104821004102102620001063101e0b2001017f101d4101104c410010362200418483084104103d10031a200010041a0b1c01017f101d4102104c41001048220020004101104810172000101e0b6201037f230041106b22002400101d104e104d200041003602002000103f21022000280200104a1040210120002002104f0340200028020820002802044f4504402001200041b4830841081076102810031a0c010b0b200110041a200041106a24000b5d02027f017e230041106b22002400101d104e104d200041003602002000103f21012000280200104a20002001104f0340200028020820002802044f450440200041b483084108107920027c21020c010b0b20021011200041106a24000b6001037f230041106b22002400101d104e104d200041003602002000103f21022000280200104a1066210120002002104f0340200028020820002802044f4504402001200041b4830841081076103810640c010b0b2001101e200041106a24000b4501027f230041106b22002400101d4100104c418483084104103d21012000410a1026106536020c20004280b4c4c3213703002000200136020820001057200041106a24000b9f0102047f017e230041106b22002400101d4101104c230041206b22012400200141086a220210352002102a21032002102b21042002102c21020240200128020c2001280208460440200141186a2d0000044041e4d108410036020041e8d10841003a00000b2000200236020c2000200336020820002004370300200141206a24000c010b419d8308410341a68008410e103c000b20001057200041106a24000b860101057f230041206b22002400101d4100104c418483084104103d2103410a10261065210410402201420a106720014280b4c4c32110671040220241fa82084105103d1042200241ff82084105103d10422000200236021c20002001360218200020043602142000200336021020004280b4c4c321370308200041086a1051200041206a24000bba0101067f230041206b22032400101d4101104c200341086a2101230041306b22002400200041086a22021035200210462104200210472105200041206a200210290240200028020c200028020846044020012000290320370300200141086a200041286a290300370300200041186a2d0000044041e4d108410036020041e8d10841003a00000b2001200536021420012004360210200041306a24000c010b419d8308410341a68008410e103c000b20011051200341206a24000b0c00101d4100104c420110110b5f02017f017e101d4101104c027f024002404100100f04404100100d22014280025a0d012001a7220041ff017141034f0d020b20000c020b419d8308410341a68008410e103c000b419d8308410341808008410d103c000bad42ff018310110b5001037f230041206b22002400101d4100104c418483084104103d2101410a10261065210220004280b4c4c32137031020002001360204200020023602082000410036020020001054200041206a24000b900101057f230041206b22002400101d4100104c418483084104103d2103410a10261065210410402201420a106720014280b4c4c32110671040220241fa82084105103d1042200241ff82084105103d10422000411c6a2004360200200041186a200336020020004280b4c4c32137031020002002360208200020013602042000410136020020001054200041206a24000b970202057f027e230041206b22012400101d4101104c230041306b22002400200041086a22021035200041003a00202002200041206a41011045024002400240024020002d00200e020102000b419d8308410341808008410d103c000b200041086a2202102a21042002102b21062002102c21020c010b200041086a220310462104200310472102200041206a200310292000290328210520002903202106410121030b0240200028020c2000280208460440200041186a2d0000044041e4d108410036020041e8d10841003a00000b2001200537031820012006370310200120023602082001200436020420012003360200200041306a24000c010b419d8308410341a68008410e103c000b20011054200141206a24000baf0102037f047e230041306b22002400101d104e104d2000410036022c200041086a21012000412c6a220228020041ecd1082802004e047e4201052002419d83084103103e21032002419d83084103103e21042002419d83084103103e210542000b210620012005370318200120043703102001200337030820012006370300200028022c104a2000290308500440200029031820002903202104200029031010111011200410110b200041306a24000b8c0102037f017e230041406a22002400101d4101104c200041e782084107104936020c200041106a2000410c6a10751066210120002903102203427f510440102021030b10272102200320002802182001200028021c2000280220200210211a1022200041306a22012002104f200141ad8108410b1079200041306a41ad8108410b10791056200041406b24000b5701027f230041406a22002400101d4101104c200041e782084107104936023c200041206a2000413c6a10751066210120004100360210200020013602042000200029022c3703082000200028022836020020001058000b7402037f017e230041206b22002400101d4101104c200041e782084107104936021c20002000411c6a10751066210120002802082102200029020c2103200041186a1040360200200041146a411c360200200041a8820836021020002003370308200020013602042000200236020020001058000b7402037f017e230041206b22002400101d4101104c200041e782084107104936021c20002000411c6a10751066210120002802082102200029020c2103200041186a1040360200200041146a411d360200200041c4820836021020002003370308200020013602042000200236020020001058000ba50302057f027e230041f0006b2200240002400240024010592204106d22031007450d00200041286a2201200310281037200110702102200110712101104021030340200104402003200041286a10701042200141016b21010c010b0b200028022c2000280228470d01200041386a2d0000044041e4d108410036020041e8d10841003a00000b416c41c08308410010151a2004416c10121a20002002105d2000280220450d00200041286a2002105d2000280248450d000240200041286a41a88208411c105c450440200041286a41c48208411d105c0d0141d7810841361000000b104e104d2000410036026c200041d0006a2201200041ec006a1043200028026c104a2000280250200029035821052000290360210620012003104f104e20002802542000280258104b0d032005200610560c010b104e104d2000410036026c200041d0006a2201200041ec006a1043200028026c104a2000280250200029035821052000290360210620012003104f104e20002802542000280258104b0d022005200610560b200041f0006a24000f0b41a68008410e1072000b418d8208411b1000000b0be2030200418080080bce03696e76616c69642076616c7565726563697069656e742061646472657373206e6f7420736574696e70757420746f6f206c6f6e6773657269616c697a6572206465636f6465206572726f723a20617267756d656e74206465636f6465206572726f722028293a20746f6f2066657720617267756d656e7473746f6f206d616e7920617267756d656e747377726f6e67206e756d626572206f6620617267756d656e747343425f434c4f5355524573796e6320726573756c74696e70757420746f6f2073686f7274626164206172726179206c656e6774686e6f2063616c6c6261636b2066756e6374696f6e20776974682074686174206e616d652065786973747320696e20636f6e74726163746173796e632063616c6c20726573756c74206973206e6f74206f6b63616c6c6261636b5f746861745f72657475726e735f726573756c7463616c6c6261636b5f746861745f72657475726e735f6e6f7468696e67726573756c746164647265737372657475726e54776f5536347465737431746573743274657374544553542d6162636465664e46542d616263646566617267636f6e74726163745f6164647265737361726773766172206172677373756d0070616e6963206f636375727265640041d083080b049cffffff@0500@0000@05".to_string(), + data: "0061736d010000000194011860000060027f7f0060017f017f60017f0060027f7f017f6000017f60037f7f7f017f60037f7f7f0060047f7f7f7f0060047f7f7f7f017f60027f7e0060017f017e60037f7f7f017e60057f7f7f7e7f0060017e0060017e017f600b7f7f7e7f7f7f7f7f7f7f7f006000017e60067e7f7f7f7f7f017f60057f7f7f7f7f0060027e7f0060027f7e017f60027e7e0060027f7f017e029c072603656e760b7369676e616c4572726f72000103656e760e626967496e74536574496e743634000a03656e760a6d4275666665724e6577000503656e760d6d427566666572417070656e64000403656e760d6d42756666657246696e697368000203656e76106d616e61676564534341646472657373000303656e7618626967496e7447657445787465726e616c42616c616e6365000103656e76106d4275666665724765744c656e677468000203656e760f6d4275666665724765744279746573000403656e761c626967496e744765744553445445787465726e616c42616c616e6365000d03656e76126d427566666572476574417267756d656e74000403656e76126d427566666572417070656e644279746573000603656e76126d616e616765645369676e616c4572726f72000303656e761b736d616c6c496e74476574556e7369676e6564417267756d656e74000b03656e7619626967496e74476574556e7369676e6564417267756d656e74000103656e7611676574417267756d656e744c656e677468000203656e760f6765744e756d417267756d656e7473000503656e7616736d616c6c496e7446696e697368556e7369676e6564000e03656e76136d42756666657253746f7261676553746f7265000403656e76186d616e616765644765744f726967696e616c547848617368000303656e760f6d4275666665725365744279746573000603656e7609626967496e744d756c000703656e7609626967496e74416464000703656e76196d42756666657246726f6d426967496e74556e7369676e6564000403656e76176d427566666572546f426967496e74556e7369676e6564000403656e7609626967496e74506f77000703656e76146d427566666572436f707942797465536c696365000903656e76126d42756666657253746f726167654c6f6164000403656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000303656e7609626967496e744e6577000f03656e76176d616e6167656447657445534454546f6b656e44617461001003656e760d6d616e6167656443616c6c6572000303656e760a6765744761734c656674001103656e761b6d616e61676564457865637574654f6e44657374436f6e74657874001203656e760f636c65616e52657475726e44617461000003656e76136d42756666657247657442797465536c696365000903656e76106d616e616765644173796e6343616c6c00080386018401130002050201020b020101140103030104030201020205150308040c02050601010607020202040301030000010203010103011603030501070601080906060808020901040102050a09010708030202010701010617050c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005030100030616037f01418080080b7f0041f0d2080b7f0041f0d2080b07e30932066d656d6f7279020004696e6974007e0667657453756d007f036164640080011372657475726e4e667450726f706572746965730081011572657475726e46756e6769626c6542616c616e63650082011872657475726e4e6f6e46756e6769626c6542616c616e6365008301156e6f4172674e6f52657475726e456e64706f696e740084010c72657475726e43616c6c65720085011372657475726e4d616e616765644275666665720086011572657475726e436f6e7472616374416464726573730087010d72657475726e42696775696e740088010872657475726e55380089010972657475726e553136008a010972657475726e553332008b010972657475726e553634008c010c72657475726e553332566563008d010c72657475726e553634566563008e010f72657475726e427566666572566563008f011072657475726e42696775696e745665630090010c72657475726e54776f5536340091011072657475726e54776f427566666572730092012272657475726e4f6e654275666665724f6e65553634416e644f6e6542696775696e740093011472657475726e446f75626c654f665536344172670094011872657475726e446f75626c654f6642696775696e744172670095011772657475726e417070656e6465644275666665724172670096011772657475726e53756d54776f42696775696e74417267730097011b72657475726e436f6e6361744d756c7469427566666572417267730098011572657475726e53756d4d756c7469553634417267730099011972657475726e53756d4d756c746942696775696e7441726773009a011272657475726e437573746f6d537472756374009b011572657475726e437573746f6d537472756374417267009c012272657475726e437573746f6d53747275637457697468537472756374416e64566563009d012572657475726e437573746f6d53747275637457697468537472756374416e64566563417267009e011072657475726e437573746f6d456e756d009f011372657475726e437573746f6d456e756d41726700a0011f72657475726e4669727374437573746f6d456e756d576974684669656c647300a1012072657475726e5365636f6e64437573746f6d456e756d576974684669656c647300a2011d72657475726e437573746f6d456e756d576974684669656c647341726700a3011372657475726e4d756c746956616c756554776f00a4011f63616c6c416e6f74686572436f6e747261637452657475726e54776f55363400a5012e6173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f5536344e6f43616c6c6261636b00a601396173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f5536345769746852657475726e696e6743616c6c6261636b00a7013c6173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f553634576974684e6f6e52657475726e696e6743616c6c6261636b00a8010863616c6c4261636b00a9011f72657475726e4669727374437573746f6d456e756d5769746856616c75657300a1012072657475726e5365636f6e64437573746f6d456e756d5769746856616c75657300a2011d72657475726e437573746f6d456e756d5769746856616c75657341726700a3010a5f5f646174615f656e6403010b5f5f686561705f6261736503020aa54484012e000240200120024d0440200220044d0d011027000b1027000b2000200220016b3602042000200120036a3602000b0b0041808408410e1000000b1301017f102922012000ad42ff0183100120010b1901017f419084084190840828020041016b220036020020000b0f01017f10022201200010031a20010b2902017f017e2001102c21022001102d210320002001102e36020c20002002360208200020033703000b5801047f230041106b22012400200010672102200141086a200028020820002802002203200210652001280208410147044041dd8308410341d88108410f103f000b200128020c2000200220036a360200200141106a24000b3002017f017e230041106b22012400200142003703082000200141086a22004108104820004108107b200141106a24000b08002000102c103a0b1d00200028020820011030200029030020011031200028020c200110320baf0101037f230041106b22022400200220001007220341187420034180fe03714108747220034108764180fe03712003411876727236020c20012002410c6a4104105e0240024020012d000404402000100722044190ce0041a4d20828020022036b4b0d0120022003200320046a22011077200041002002280200200228020410621a41a4d20820013602000c020b2001280200200010690c010b200110732001280200200010690b200241106a24000b7701017f230041106b220224002002200042388620004280fe0383422886842000428080fc0783421886200042808080f80f834208868484200042088842808080f80f832000421888428080fc07838420004228884280fe038320004238888484843703082001200241086a4108105e200241106a24000b0a002000103b200110300b3601027f230041106b22012400200141086a103420012802082102200020012d000c4101713a000420002002360200200141106a24000b6c01027f230041106b220124002000027f41a8d2082d0000220245044041a8d20841013a000041a4d2084100360200200141086a410010702001280208200128020c418084084100107210430c010b41808408410010400b360200200020024101733a0004200141106a24000b0b0020002001103610041a0b4801017f230041106b22022400200220013a000c20022000360208200241086a1073200228020820022d000c044041a4d208410036020041a8d20841003a00000b200241106a24000b0a0020004100103810390b0d00200010292200100a1a20000b3301017f200110072102200041106a41003a00002000410c6a20023602002000200136020820002002360204200041003602000b0d0020001029220010181a20000b0f01017f10292201200010171a20010b0c01017f10292200100520000b4c01037f103c210310292102200041feffffff074604402003103e41b0d2082002100620020f0b2000100721042003103e200041d0d20810081a41b0d20841d0d208200420012002100920020b0b00200041b0d20810081a0b2e01017f41ed800841171040220420002001100b1a2004418481084103100b1a200420022003100b1a2004100c000b1101017f102922022000200110141a20020b0c002000200120021047100d0b2e01017f104321010340200028020041acd2082802004e4504402001200041f083084104104410450c010b0b20010b1301017f1029220041808408410010141a20000b0c00200020012002104710380b4601017f230041106b220224002002200141187420014180fe03714108747220014108764180fe03712001411876727236020c20002002410c6a4104100b1a200241106a24000bb80102027e027f027f0240200141a1830841061047100d22024280808080105404402002a7220545200541ebde0146720d01027f200128020041acd2082802004e04401043210441010c010b200141a1830841061044210441010b0c020b41a18308410641a68008410e103f000b200141a183084106104122024280808080708321032002a72104200141a1830841061041210241000b2101200020023703102000200536020420002001360200200020032004ad843703080b2f01017f2000280200220341acd2082802004e044020012002418781084111103f000b2000200341016a36020020030b3100200041086a200028020020012002106f044041dd8308410341d88108410f103f000b2000200028020020026a3602000b2a01027f20001067210110432102037f2001047f20022000102d106e200141016b21010c010520020b0b0b2a01027f20001067210110432102037f2001047f20022000102c1045200141016b21010c010520020b0b0b0c00200010292200100e20000b2101017f4100103822021007412047044020002001418782084110103f000b20020b1900200041acd2082802004e04400f0b4198810841121000000b1400200020014d04400f0b4198810841121000000b1400101020004604400f0b41aa810841191000000b190041acd20828020041004e04400f0b4187810841111000000b0b0041acd20810103602000b1f01017f2001105321022000410036020820002002360204200020013602000b0900200010074102760b5501027f230041106b2201240020011033200120012d00043a000c200120012802003602082000280210200141086a22021055200041146a2002105620002002102f200128020820012d000c1035200141106a24000baf0102017e047f230041106b22032400200010074103762001105d20001007210503402005200441086a2206490440200341106a2400052003420037030820002004200341086a410810621a2003290308220242388620024280fe0383422886842002428080fc0783421886200242808080f80f834208868484200242088842808080f80f832002421888428080fc07838420024228884280fe0383200242388884848420011031200621040c010b0b0b5b01027f230041206b220224002000280200220310532001105d20022003100736021820024100360214200220003602100340200241086a200241106a107820022802080440200228020c200110300c0105200241206a24000b0b0bb00101027f230041206b2201240002402000280200450440200141086a1033200120012d000c3a001c200120012802083602184100200141186a220210582000280204200210302000290310200210312000280208200210320c010b200141106a1033200120012d00143a001c200120012802103602184101200141186a22021058200028020420021055200041086a20021056200041106a2002102f0b200128021820012d001c1035200141206a24000b2601017f230041106b22022400200220003a000f20012002410f6a4101105e200241106a24000b0a0020001011200110110b5801027f230041106b2201240020011033200120012d00043a000c200120012802003602082000280208200141086a22021030200029030020021031200028020c20021032200128020820012d000c1035200141106a24000b7e01057f230041106b22012400200028021022030440105c2001103420012001280200360208200120012d00044101713a000c200041146a2802002205200141086a2202105d200220032005105e200041186a20021056200128020820012d000c103610121a0b200028020020002802042000280208200028020c1025000b1b01027f10292200101341c38108410a10402201200010031a20010b4501017f230041106b220224002002200041187420004180fe03714108747220004108764180fe03712000411876727236020c20012002410c6a4104105e200241106a24000b7e01027f230041106b220324000240024020002d000404404190ce0041a4d20828020022046b2002490d01200341086a2004200220046a220010772003280208200328020c20012002107241a4d20820003602000c020b200028020020012002100b1a0c010b20001073200028020020012002100b1a0b200341106a24000b5201037f2002200028022046047f02402002450d00034020002d0000220420012d00002205460440200041016a2100200141016a2101200241016b22020d010c020b0b200420056b21030b20030541010b450b9c0101057f230041306b22022400200241286a22034200370300200241206a22044200370300200241186a2205420037030020024200370310200241086a200241106a41202001100722061061200141002002280208200228020c10621a20002006360220200041186a2003290300370000200041106a2004290300370000200041086a200529030037000020002002290310370000200241306a24000b3b01017f230041106b22042400200441086a41002003200120021026200428020c21012000200428020836020020002001360204200441106a24000b0c00200020012002200310680b5a01037f230041106b2203240020002001200210642104200341086a20002802082000280200220520041065200328020841014704402001200241d88108410f1066000b200328020c2000200420056a360200200341106a24000b5702017f017e230041106b220324002003410036020c200041086a20002802002003410c6a4104106f04402001200241d88108410f1066000b2000200028020041046a3602002003410c6a4104107b200341106a2400a70b1f0020012002200310022201101a21022000200136020420002002453602000b1600200020011040220020022003100b1a2000100c000b3102017f017e230041106b220124002001410036020c20002001410c6a22004104104820004104107b200141106a2400a70b0f00200020012003200210244100470b09002000200110031a0b0c00200020002001101520000b0a0020002000200110160b1801017f10292101417242121001200120004172101920010b0e01017f102922004200100120000b7801017f230041106b220224002002200142388620014280fe0383422886842001428080fc0783421886200142808080f80f834208868484200142088842808080f80f832001421888428080fc07838420014228884280fe038320014238888484843703082000200241086a4108100b1a200241106a24000bb20101037f230041106b22042400027f024020002d000845044020002802002205100722064190ce004b0d0141a8d2082d00000d0141a4d208200636020041a8d20841013a0000200441086a20061070200541002004280208200428020c10621a200041013a00080b4101200120036a220041a4d2082802004b0d011a20042001200010712002200320042802002004280204107241000c010b200041003a0008200520012002200310620b200441106a24000b3d01017f230041106b22022400200241086a419484084190ce0020011061200228020c21012000200228020836020020002001360204200241106a24000b32000240200120024d044020024190ce004d0d011027000b1027000b2000200220016b36020420002001419484086a3602000bb50201067f2001200346044020012203410f4b04402000410020006b41037122046a210520040440200221010340200020012d00003a0000200141016a2101200041016a22002005490d000b0b2005200320046b2203417c7122066a21000240200220046a22044103710440200641004c0d012004410374220141187121072004417c71220841046a2102410020016b4118712109200828020021010340200520012007762002280200220120097472360200200241046a2102200541046a22052000490d000b0c010b200641004c0d0020042102034020052002280200360200200241046a2102200541046a22052000490d000b0b20034103712103200420066a21020b20030440200020036a21010340200020022d00003a0000200241016a2102200041016a22002001490d000b0b0f0b1027000b5701027f230041106b2201240020002d0004200041003a00040440200141086a410041a4d208280200107120002802002001280208200128020c100b1a41a4d208410036020041a8d20841003a00000b200141106a24000b0d00200010292200101b1a20000b080020001074103a0b0b0020002001103b10121a0b3f01017f230041106b22032400200341086a20012002419484084190ce001026200328020c21012000200328020836020020002001360204200341106a24000b8a0101047f230041106b220324002001280204220241046a220420012802084b047f41000520012802002003410036020c28020020022003410c6a410410621a200328020c210220012004360204200241187420024180fe03714108747220024108764180fe037120024118767272210241010b21012000200236020420002001360200200341106a24000b5101017f20012802002102200141feffffff07360200200241feffffff07460440418d800841191000000b41ae8308410c10402101200010433602102000200136020c200020023602082000427f3703000b7b01027f230041106b22032400200028020821042003410036020c200028020020044102742003410c6a41041062450440200328020c21012000200441016a360208200141187420014180fe03714108747220014108764180fe037120014118767272102a200341106a24000f0b20012002418781084111103f000b3401017e02402001450d0003402001450d01200141016b210120003100002002420886842102200041016a21000c000b000b20020b0a0041fc8308410310400b6802027f017e230041106b22032400200020012002107a21002003420037030820001007220441094f04402001200241a68008410e103f000b2003200341086a41082004106120004100200328020022002003280204220110681a20002001107b200341106a24000b1601017f101c4101104f4100104b2100107c200010760b0e00101c4100104f107c1075101d0b2201037f101c4101104f4100104b2100107c2201107522022000106b2001200210760b850201047f230041206b22002400101c4100104f41c88308410a10402101103c200142064200101e100222021002100210022203100222014200101e1002101f20011007450440200141cd8008412010141a0b200041003b010820024100200041086a2201410210681a20012003102a1039200141e78108412010632101200041086a41e7810841201063103a2102200028020c2000280208460440200041186a2d0000044041a4d208410036020041a8d20841003a00000b20001033200020002d00043a000c200020002802003602082001200041086a22011030200220011032200028020820002d000c1035200041206a24000f0b41e78108412041a68008410e1066000b1600101c4100104f41d28308410b10404200103d101d0b1600101c4100104f41c88308410a10404206103d101d0b0800101c4100104f0b1501017f101c4100104f102922001020200010041a0b1300101c4100104f41c483084104104010041a0b1300101c4101104f41e083084110104c10041a0b1000101c4100104f410a1028106c101d0b0c00101c4100104f420310110b0d00101c4100104f42f40310110b0e00101c4100104f42c09a0c10110b1000101c4100104f4280b4c4c32110110b1f01017f101c4100104f10432200410a1045200041c09a0c1045200010041a0b2101017f101c4100104f10432200420a106e20004280b4c4c321106e200010041a0b9e0101027f230041306b22002400101c4100104f1043220141ba8308410510401045200141bf830841051040104520002001360214200041086a1033200020002d000c3a001c20002000280208360218200020011007360228200041003602242000200041146a36022003402000200041206a1078200028020004402000280204200041186a10300c010b0b200028021820002d001c1035200041306a24000bbc0101057f230041206b22002400101c4100104f10432202410a1028106c10452002410a1028106c41021028106a1045200041086a1033200020002d000c3a0014200020002802083602102002100721030340200141046a220420034b4504402000410036021c200220012000411c6a410410681a200028021c220141187420014180fe03714108747220014108764180fe037120014118767272200041106a1032200421010c010b0b200028021020002d00141035200041206a24000b1200101c4100104f420a4280b4c4c32110590b2401027f101c4100104f41ba83084105104041bf830841051040210110041a200110041a0b2901027f101c4100104f41ba830841051040410a1028106c210110041a4280b4c4c32110112001101d0b1100101c4101104f4100100d42018610110b1a01017f101c4101104f4100104b2100410210282000106a101d0b2001017f101c4101104f41001038220041c483084104104010031a200010041a0b1c01017f101c4102104f4100104b220020004101104b10162000101d0b6201037f230041106b22002400101c10511050200041003602002000104221022000280200104d104321012000200210520340200028020820002802044f4504402001200041f483084108107a102a10031a0c010b0b200110041a200041106a24000b5d02027f017e230041106b22002400101c10511050200041003602002000104221012000280200104d2000200110520340200028020820002802044f450440200041f483084108107d20027c21020c010b0b20021011200041106a24000b6001037f230041106b22002400101c10511050200041003602002000104221022000280200104d106d21012000200210520340200028020820002802044f4504402001200041f483084108107a103a106b0c010b0b2001101d200041106a24000b4501027f230041106b22002400101c4100104f41c483084104104021012000410a1028106c36020c20004280b4c4c321370300200020013602082000105a200041106a24000b9f0102047f017e230041106b22002400101c4101104f230041206b22012400200141086a220210372002102c21032002102d21042002102e21020240200128020c2001280208460440200141186a2d0000044041a4d208410036020041a8d20841003a00000b2000200236020c2000200336020820002004370300200141206a24000c010b41dd8308410341a68008410e103f000b2000105a200041106a24000b860101057f230041206b22002400101c4100104f41c48308410410402103410a1028106c210410432201420a106e20014280b4c4c321106e1043220241ba8308410510401045200241bf83084105104010452000200236021c20002001360218200020043602142000200336021020004280b4c4c321370308200041086a1054200041206a24000bba0101067f230041206b22032400101c4101104f200341086a2101230041306b22002400200041086a220210372002104921042002104a2105200041206a2002102b0240200028020c200028020846044020012000290320370300200141086a200041286a290300370300200041186a2d0000044041a4d208410036020041a8d20841003a00000b2001200536021420012004360210200041306a24000c010b41dd8308410341a68008410e103f000b20011054200341206a24000b0c00101c4100104f420110110b5f02017f017e101c4101104f027f024002404100100f04404100100d22014280025a0d012001a7220041ff017141034f0d020b20000c020b41dd8308410341a68008410e103f000b41dd8308410341808008410d103f000bad42ff018310110b5001037f230041206b22002400101c4100104f41c48308410410402101410a1028106c210220004280b4c4c32137031020002001360204200020023602082000410036020020001057200041206a24000b900101057f230041206b22002400101c4100104f41c48308410410402103410a1028106c210410432201420a106e20014280b4c4c321106e1043220241ba8308410510401045200241bf83084105104010452000411c6a2004360200200041186a200336020020004280b4c4c32137031020002002360208200020013602042000410136020020001057200041206a24000b970202057f027e230041206b22012400101c4101104f230041306b22002400200041086a22021037200041003a00202002200041206a41011048024002400240024020002d00200e020102000b41dd8308410341808008410d103f000b200041086a2202102c21042002102d21062002102e21020c010b200041086a2203104921042003104a2102200041206a2003102b2000290328210520002903202106410121030b0240200028020c2000280208460440200041186a2d0000044041a4d208410036020041a8d20841003a00000b2001200537031820012006370310200120023602082001200436020420012003360200200041306a24000c010b41dd8308410341a68008410e103f000b20011057200141206a24000baf0102037f047e230041306b22002400101c105110502000410036022c200041086a21012000412c6a220228020041acd2082802004e047e420105200241dd8308410310412103200241dd8308410310412104200241dd830841031041210542000b210620012005370318200120043703102001200337030820012006370300200028022c104d2000290308500440200029031820002903202104200029031010111011200410110b200041306a24000b8c0102037f017e230041406a22002400101c4101104f200041a783084107104c36020c200041106a2000410c6a1079106d210120002903102203427f510440102121030b10292102200320002802182001200028021c2000280220200210221a1023200041306a220120021052200141cd8108410b107d200041306a41cd8108410b107d1059200041406b24000b5701027f230041406a22002400101c4101104f200041a783084107104c36023c200041206a2000413c6a1079106d210120004100360210200020013602042000200029022c370308200020002802283602002000105b000b7402037f017e230041206b22002400101c4101104f200041a783084107104c36021c20002000411c6a1079106d210120002802082102200029020c2103200041186a1043360200200041146a411c360200200041e882083602102000200337030820002001360204200020023602002000105b000b7402037f017e230041206b22002400101c4101104f200041a783084107104c36021c20002000411c6a1079106d210120002802082102200029020c2103200041186a1043360200200041146a411d3602002000418483083602102000200337030820002001360204200020023602002000105b000bbd0302057f027e230041f0006b22002400024002400240105c2204107422031007450d00200041286a22012003102a1039200141b48008411910632102200141b48008411910642101104321030340200104402003200041286a41b48008411910631045200141016b21010c010b0b200028022c2000280228470d01200041386a2d0000044041a4d208410036020041a8d20841003a00000b416c41808408410010141a2004416c10121a2000200210602000280220450d00200041286a200210602000280248450d000240200041286a41e88208411c105f450440200041286a41848308411d105f0d014197820841361000000b105110502000410036026c200041d0006a2201200041ec006a1046200028026c104d20002802502000290358210520002903602106200120031052105120002802542000280258104e0d032005200610590c010b105110502000410036026c200041d0006a2201200041ec006a1046200028026c104d20002802502000290358210520002903602106200120031052105120002802542000280258104e0d022005200610590b200041f0006a24000f0b41b48008411941a68008410e1066000b41cd8208411b1000000b0b89040300418080080b4d696e76616c69642076616c7565726563697069656e742061646472657373206e6f7420736574696e70757420746f6f206c6f6e6773657269616c697a6572206465636f6465206572726f723a200041ed80080ba103617267756d656e74206465636f6465206572726f722028293a20746f6f2066657720617267756d656e7473746f6f206d616e7920617267756d656e747377726f6e67206e756d626572206f6620617267756d656e747343425f434c4f5355524573796e6320726573756c74696e70757420746f6f2073686f72746572726f72206465636f64696e67204553445420617474726962757465733a20626164206172726179206c656e6774686e6f2063616c6c6261636b2066756e6374696f6e20776974682074686174206e616d652065786973747320696e20636f6e74726163746173796e632063616c6c20726573756c74206973206e6f74206f6b63616c6c6261636b5f746861745f72657475726e735f726573756c7463616c6c6261636b5f746861745f72657475726e735f6e6f7468696e67726573756c746164647265737372657475726e54776f55363474657374317465737432746573744e46542d616263646566544553542d616263646566617267636f6e74726163745f6164647265737361726773766172206172677373756d0070616e6963206f6363757272656400419084080b049cffffff@0500@0000@05".to_string(), }; assert_eq!(tx, expected); @@ -70,7 +70,7 @@ async fn test_deploy_with_metadatas() -> Result<(), NovaXError> { receiver: SYSTEM_SC_DEPLOY_ADDRESS.to_string(), egld_value: 0u8.into(), gas_limit: 600000000u64, - data: "0061736d010000000181011660000060027f7f0060017f017f60017f0060027f7f017f6000017f60037f7f7f0060037f7f7f017f60047f7f7f7f0060047f7f7f7f017f60027f7e0060017f017e60037f7f7f017e60057f7f7f7e7f0060017e006000017e60067e7f7f7f7f7f017f60057f7f7f7f7f0060027e7f0060027f7e017f60027e7e0060027f7f017e02ee062403656e760b7369676e616c4572726f72000103656e760e626967496e74536574496e743634000a03656e760a6d4275666665724e6577000503656e760d6d427566666572417070656e64000403656e760d6d42756666657246696e697368000203656e76106d616e61676564534341646472657373000303656e7618626967496e7447657445787465726e616c42616c616e6365000103656e76106d4275666665724765744c656e677468000203656e760f6d4275666665724765744279746573000403656e761c626967496e744765744553445445787465726e616c42616c616e6365000d03656e76126d427566666572476574417267756d656e74000403656e76126d427566666572417070656e644279746573000703656e76126d616e616765645369676e616c4572726f72000303656e761b736d616c6c496e74476574556e7369676e6564417267756d656e74000b03656e7619626967496e74476574556e7369676e6564417267756d656e74000103656e7611676574417267756d656e744c656e677468000203656e760f6765744e756d417267756d656e7473000503656e7616736d616c6c496e7446696e697368556e7369676e6564000e03656e76136d42756666657253746f7261676553746f7265000403656e76186d616e616765644765744f726967696e616c547848617368000303656e76136d42756666657247657442797465536c696365000903656e760f6d4275666665725365744279746573000703656e7609626967496e744d756c000603656e7609626967496e74416464000603656e76196d42756666657246726f6d426967496e74556e7369676e6564000403656e76176d427566666572546f426967496e74556e7369676e6564000403656e7609626967496e74506f77000603656e76146d427566666572436f707942797465536c696365000903656e76126d42756666657253746f726167654c6f6164000403656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000303656e760d6d616e6167656443616c6c6572000303656e760a6765744761734c656674000f03656e761b6d616e61676564457865637574654f6e44657374436f6e74657874001003656e760f636c65616e52657475726e44617461000003656e76106d616e616765644173796e6343616c6c00080383018101110002050201020b0201011201030301040302010202130308040c020507010107060202020403010300000102030101030114030305010607010809020801040102050a09010608030202010202010601010715050c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000005030100030616037f01418080080b7f0041b0d2080b7f0041b0d2080b07c80931066d656d6f7279020004696e6974007a0667657453756d007b03616464007c1572657475726e46756e6769626c6542616c616e6365007d1872657475726e4e6f6e46756e6769626c6542616c616e6365007e156e6f4172674e6f52657475726e456e64706f696e74007f0c72657475726e43616c6c65720080011372657475726e4d616e616765644275666665720081011572657475726e436f6e7472616374416464726573730082010d72657475726e42696775696e740083010872657475726e55380084010972657475726e5531360085010972657475726e5533320086010972657475726e5536340087010c72657475726e5533325665630088010c72657475726e5536345665630089010f72657475726e427566666572566563008a011072657475726e42696775696e74566563008b010c72657475726e54776f553634008c011072657475726e54776f42756666657273008d012272657475726e4f6e654275666665724f6e65553634416e644f6e6542696775696e74008e011472657475726e446f75626c654f66553634417267008f011872657475726e446f75626c654f6642696775696e744172670090011772657475726e417070656e6465644275666665724172670091011772657475726e53756d54776f42696775696e74417267730092011b72657475726e436f6e6361744d756c7469427566666572417267730093011572657475726e53756d4d756c7469553634417267730094011972657475726e53756d4d756c746942696775696e74417267730095011272657475726e437573746f6d5374727563740096011572657475726e437573746f6d5374727563744172670097012272657475726e437573746f6d53747275637457697468537472756374416e645665630098012572657475726e437573746f6d53747275637457697468537472756374416e645665634172670099011072657475726e437573746f6d456e756d009a011372657475726e437573746f6d456e756d417267009b011f72657475726e4669727374437573746f6d456e756d576974684669656c6473009c012072657475726e5365636f6e64437573746f6d456e756d576974684669656c6473009d011d72657475726e437573746f6d456e756d576974684669656c6473417267009e011372657475726e4d756c746956616c756554776f009f011f63616c6c416e6f74686572436f6e747261637452657475726e54776f55363400a0012e6173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f5536344e6f43616c6c6261636b00a101396173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f5536345769746852657475726e696e6743616c6c6261636b00a2013c6173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f553634576974684e6f6e52657475726e696e6743616c6c6261636b00a3010863616c6c4261636b00a4011f72657475726e4669727374437573746f6d456e756d5769746856616c756573009c012072657475726e5365636f6e64437573746f6d456e756d5769746856616c756573009d011d72657475726e437573746f6d456e756d5769746856616c756573417267009e010a5f5f646174615f656e6403010b5f5f686561705f6261736503020aea4181012e000240200120024d0440200220044d0d011025000b1025000b2000200220016b3602042000200120036a3602000b0b0041c08308410e1000000b1301017f102722012000ad42ff0183100120010b1901017f41d0830841d0830828020041016b220036020020000b0f01017f10022201200010031a20010b2902017f017e2001102a21022001102b210320002001102c36020c20002002360208200020033703000b5801047f230041106b22012400200010602102200141086a2000280208200028020022032002106120012802084101470440419d8308410341b88108410f103c000b200128020c2000200220036a360200200141106a24000b3002017f017e230041106b22012400200142003703082000200141086a220041081045200041081077200141106a24000b08002000102a10380b1d0020002802082001102e20002903002001102f200028020c200110300baf0101037f230041106b22022400200220001007220341187420034180fe03714108747220034108764180fe03712003411876727236020c20012002410c6a4104105b0240024020012d000404402000100722044190ce0041e4d10828020022036b4b0d0120022003200320046a220110732000410020022802002002280204105f1a41e4d10820013602000c020b2001280200200010620c010b2001106c2001280200200010620b200241106a24000b7701017f230041106b220224002002200042388620004280fe0383422886842000428080fc0783421886200042808080f80f834208868484200042088842808080f80f832000421888428080fc07838420004228884280fe038320004238888484843703082001200241086a4108105b200241106a24000b0a00200010392001102e0b3601027f230041106b22012400200141086a103220012802082102200020012d000c4101713a000420002002360200200141106a24000b6c01027f230041106b220124002000027f41e8d1082d0000220245044041e8d10841013a000041e4d1084100360200200141086a410010692001280208200128020c41c083084100106b10400c010b41c083084100103d0b360200200020024101733a0004200141106a24000b0b0020002001103410041a0b4801017f230041106b22022400200220013a000c20022000360208200241086a106c200228020820022d000c044041e4d108410036020041e8d10841003a00000b200241106a24000b0a0020004100103610370b0d00200010272200100a1a20000b3301017f200110072102200041106a41003a00002000410c6a20023602002000200136020820002002360204200041003602000b0d0020001027220010191a20000b0f01017f10272201200010181a20010b5201037f1027220210052002210310272102200041feffffff074604402003103b41f0d1082002100620020f0b2000100721042003103b20004190d20810081a41f0d1084190d208200420012002100920020b0b00200041f0d10810081a0b2e01017f41cd80084117103d220420002001100b1a200441e480084103100b1a200420022003100b1a2004100c000b1101017f102722022000200110151a20020b0c002000200120021044100d0b2e01017f104021010340200028020041ecd1082802004e4504402001200041b083084104104110420c010b0b20010b1301017f1027220041c08308410010151a20000b0c00200020012002104410360b4601017f230041106b220224002002200141187420014180fe03714108747220014108764180fe03712001411876727236020c20002002410c6a4104100b1a200241106a24000bb80102027e027f027f0240200141e1820841061044100d22024280808080105404402002a7220545200541ebde0146720d01027f200128020041ecd1082802004e04401040210441010c010b200141e1820841061041210441010b0c020b41e18208410641a68008410e103c000b200141e182084106103e22024280808080708321032002a72104200141e182084106103e210241000b2101200020023703102000200536020420002001360200200020032004ad843703080b2f01017f2000280200220341ecd1082802004e04402001200241e780084111103c000b2000200341016a36020020030b3100200041086a20002802002001200210680440419d8308410341b88108410f103c000b2000200028020020026a3602000b2a01027f20001060210110402102037f2001047f20022000102b1067200141016b21010c010520020b0b0b2a01027f20001060210110402102037f2001047f20022000102a1042200141016b21010c010520020b0b0b0c00200010272200100e20000b2101017f410010362202100741204704402000200141c781084110103c000b20020b1900200041ecd1082802004e04400f0b41f8800841121000000b1400200020014d04400f0b41f8800841121000000b1400101020004604400f0b418a810841191000000b190041ecd10828020041004e04400f0b41e7800841111000000b0b0041ecd10810103602000b1f01017f2001105021022000410036020820002002360204200020013602000b0900200010074102760b5501027f230041106b2201240020011031200120012d00043a000c200120012802003602082000280210200141086a22021052200041146a2002105320002002102d200128020820012d000c1033200141106a24000baf0102017e047f230041106b22032400200010074103762001105a20001007210503402005200441086a2206490440200341106a2400052003420037030820002004200341086a4108105f1a2003290308220242388620024280fe0383422886842002428080fc0783421886200242808080f80f834208868484200242088842808080f80f832002421888428080fc07838420024228884280fe038320024238888484842001102f200621040c010b0b0b5b01027f230041206b220224002000280200220310502001105a20022003100736021820024100360214200220003602100340200241086a200241106a107420022802080440200228020c2001102e0c0105200241206a24000b0b0bb00101027f230041206b2201240002402000280200450440200141086a1031200120012d000c3a001c200120012802083602184100200141186a2202105520002802042002102e20002903102002102f2000280208200210300c010b200141106a1031200120012d00143a001c200120012802103602184101200141186a22021055200028020420021052200041086a20021053200041106a2002102d0b200128021820012d001c1033200141206a24000b2601017f230041106b22022400200220003a000f20012002410f6a4101105b200241106a24000b0a0020001011200110110b5801027f230041106b2201240020011031200120012d00043a000c200120012802003602082000280208200141086a2202102e20002903002002102f200028020c20021030200128020820012d000c1033200141106a24000b7e01057f230041106b2201240020002802102203044010592001103220012001280200360208200120012d00044101713a000c200041146a2802002205200141086a2202105a200220032005105b200041186a20021053200128020820012d000c103410121a0b200028020020002802042000280208200028020c1023000b1b01027f10272200101341a38108410a103d2201200010031a20010b4501017f230041106b220224002002200041187420004180fe03714108747220004108764180fe03712000411876727236020c20012002410c6a4104105b200241106a24000b7e01027f230041106b220324000240024020002d000404404190ce0041e4d10828020022046b2002490d01200341086a2004200220046a220010732003280208200328020c20012002106b41e4d10820003602000c020b200028020020012002100b1a0c010b2000106c200028020020012002100b1a0b200341106a24000b5201037f2002200028022046047f02402002450d00034020002d0000220420012d00002205460440200041016a2100200141016a2101200241016b22020d010c020b0b200420056b21030b20030541010b450b9c0101057f230041306b22022400200241286a22034200370300200241206a22044200370300200241186a2205420037030020024200370310200241086a200241106a4120200110072206105e200141002002280208200228020c105f1a20002006360220200041186a2003290300370000200041106a2004290300370000200041086a200529030037000020002002290310370000200241306a24000b3b01017f230041106b22042400200441086a41002003200120021024200428020c21012000200428020836020020002001360204200441106a24000b0f00200020012003200210144100470b3102017f017e230041106b220124002001410036020c20002001410c6a220041041045200041041077200141106a2400a70b1f0020012002200310022201101b21022000200136020420002002453602000b09002000200110031a0b0c00200020002001101620000b0a0020002000200110170b1801017f10272101417242121001200120004172101a20010b0e01017f102722004200100120000b7801017f230041106b220224002002200142388620014280fe0383422886842001428080fc0783421886200142808080f80f834208868484200142088842808080f80f832001421888428080fc07838420014228884280fe038320014238888484843703082000200241086a4108100b1a200241106a24000bb20101037f230041106b22042400027f024020002d000845044020002802002205100722064190ce004b0d0141e8d1082d00000d0141e4d108200636020041e8d10841013a0000200441086a20061069200541002004280208200428020c105f1a200041013a00080b4101200120036a220041e4d1082802004b0d011a200420012000106a2002200320042802002004280204106b41000c010b200041003a00082005200120022003105f0b200441106a24000b3d01017f230041106b22022400200241086a41d483084190ce002001105e200228020c21012000200228020836020020002001360204200241106a24000b32000240200120024d044020024190ce004d0d011025000b1025000b2000200220016b3602042000200141d483086a3602000bb50201067f2001200346044020012203410f4b04402000410020006b41037122046a210520040440200221010340200020012d00003a0000200141016a2101200041016a22002005490d000b0b2005200320046b2203417c7122066a21000240200220046a22044103710440200641004c0d012004410374220141187121072004417c71220841046a2102410020016b4118712109200828020021010340200520012007762002280200220120097472360200200241046a2102200541046a22052000490d000b0c010b200641004c0d0020042102034020052002280200360200200241046a2102200541046a22052000490d000b0b20034103712103200420066a21020b20030440200020036a21010340200020022d00003a0000200241016a2102200041016a22002001490d000b0b0f0b1025000b5701027f230041106b2201240020002d0004200041003a00040440200141086a410041e4d108280200106a20002802002001280208200128020c100b1a41e4d108410036020041e8d10841003a00000b200141106a24000b0d00200010272200101c1a20000b08002000106d10380b0b0020002001103910121a0b5201047f230041106b22012400200010712102200141086a200028020820002802002203200210612001280208410147044041b88108410f1072000b200128020c2000200220036a360200200141106a24000b5302017f017e230041106b220124002001410036020c200041086a20002802002001410c6a41041068044041b88108410f1072000b2000200028020041046a3602002001410c6a41041077200141106a2400a70b1a01017f41b480084119103d220220002001100b1a2002100c000b3f01017f230041106b22032400200341086a2001200241d483084190ce001024200328020c21012000200328020836020020002001360204200341106a24000b8a0101047f230041106b220324002001280204220241046a220420012802084b047f41000520012802002003410036020c28020020022003410c6a4104105f1a200328020c210220012004360204200241187420024180fe03714108747220024108764180fe037120024118767272210241010b21012000200236020420002001360200200341106a24000b5101017f20012802002102200141feffffff07360200200241feffffff07460440418d800841191000000b41ee8208410c103d2101200010403602102000200136020c200020023602082000427f3703000b7b01027f230041106b22032400200028020821042003410036020c200028020020044102742003410c6a4104105f450440200328020c21012000200441016a360208200141187420014180fe03714108747220014108764180fe0371200141187672721028200341106a24000f0b2001200241e780084111103c000b3401017e02402001450d0003402001450d01200141016b210120003100002002420886842102200041016a21000c000b000b20020b0a0041bc83084103103d0b6802027f017e230041106b22032400200020012002107621002003420037030820001007220441094f04402001200241a68008410e103c000b2003200341086a41082004105e200041002003280200220020032802042201105f1a200020011077200341106a24000b1601017f101d4101104c41001048210010782000106f0b0e00101d4100104c1078106e101e0b2201037f101d4101104c41001048210010782201106e22022000106420012002106f0b1600101d4100104c41888308410b103d4200103a101e0b1600101d4100104c41938308410a103d4206103a101e0b0800101d4100104c0b1501017f101d4100104c10272200101f200010041a0b1300101d4100104c418483084104103d10041a0b1300101d4101104c41a083084110104910041a0b1000101d4100104c410a10261065101e0b0c00101d4100104c420310110b0d00101d4100104c42f40310110b0e00101d4100104c42c09a0c10110b1000101d4100104c4280b4c4c32110110b1f01017f101d4100104c10402200410a1042200041c09a0c1042200010041a0b2101017f101d4100104c10402200420a106720004280b4c4c3211067200010041a0b9e0101027f230041306b22002400101d4100104c1040220141fa82084105103d1042200141ff82084105103d104220002001360214200041086a1031200020002d000c3a001c20002000280208360218200020011007360228200041003602242000200041146a36022003402000200041206a1074200028020004402000280204200041186a102e0c010b0b200028021820002d001c1033200041306a24000bbc0101057f230041206b22002400101d4100104c10402202410a1026106510422002410a102610654102102610631042200041086a1031200020002d000c3a0014200020002802083602102002100721030340200141046a220420034b4504402000410036021c200220012000411c6a4104105f1a200028021c220141187420014180fe03714108747220014108764180fe037120014118767272200041106a1030200421010c010b0b200028021020002d00141033200041206a24000b1200101d4100104c420a4280b4c4c32110560b2401027f101d4100104c41fa82084105103d41ff82084105103d210110041a200110041a0b2901027f101d4100104c41fa82084105103d410a10261065210110041a4280b4c4c32110112001101e0b1100101d4101104c4100100d42018610110b1a01017f101d4101104c4100104821004102102620001063101e0b2001017f101d4101104c410010362200418483084104103d10031a200010041a0b1c01017f101d4102104c41001048220020004101104810172000101e0b6201037f230041106b22002400101d104e104d200041003602002000103f21022000280200104a1040210120002002104f0340200028020820002802044f4504402001200041b4830841081076102810031a0c010b0b200110041a200041106a24000b5d02027f017e230041106b22002400101d104e104d200041003602002000103f21012000280200104a20002001104f0340200028020820002802044f450440200041b483084108107920027c21020c010b0b20021011200041106a24000b6001037f230041106b22002400101d104e104d200041003602002000103f21022000280200104a1066210120002002104f0340200028020820002802044f4504402001200041b4830841081076103810640c010b0b2001101e200041106a24000b4501027f230041106b22002400101d4100104c418483084104103d21012000410a1026106536020c20004280b4c4c3213703002000200136020820001057200041106a24000b9f0102047f017e230041106b22002400101d4101104c230041206b22012400200141086a220210352002102a21032002102b21042002102c21020240200128020c2001280208460440200141186a2d0000044041e4d108410036020041e8d10841003a00000b2000200236020c2000200336020820002004370300200141206a24000c010b419d8308410341a68008410e103c000b20001057200041106a24000b860101057f230041206b22002400101d4100104c418483084104103d2103410a10261065210410402201420a106720014280b4c4c32110671040220241fa82084105103d1042200241ff82084105103d10422000200236021c20002001360218200020043602142000200336021020004280b4c4c321370308200041086a1051200041206a24000bba0101067f230041206b22032400101d4101104c200341086a2101230041306b22002400200041086a22021035200210462104200210472105200041206a200210290240200028020c200028020846044020012000290320370300200141086a200041286a290300370300200041186a2d0000044041e4d108410036020041e8d10841003a00000b2001200536021420012004360210200041306a24000c010b419d8308410341a68008410e103c000b20011051200341206a24000b0c00101d4100104c420110110b5f02017f017e101d4101104c027f024002404100100f04404100100d22014280025a0d012001a7220041ff017141034f0d020b20000c020b419d8308410341a68008410e103c000b419d8308410341808008410d103c000bad42ff018310110b5001037f230041206b22002400101d4100104c418483084104103d2101410a10261065210220004280b4c4c32137031020002001360204200020023602082000410036020020001054200041206a24000b900101057f230041206b22002400101d4100104c418483084104103d2103410a10261065210410402201420a106720014280b4c4c32110671040220241fa82084105103d1042200241ff82084105103d10422000411c6a2004360200200041186a200336020020004280b4c4c32137031020002002360208200020013602042000410136020020001054200041206a24000b970202057f027e230041206b22012400101d4101104c230041306b22002400200041086a22021035200041003a00202002200041206a41011045024002400240024020002d00200e020102000b419d8308410341808008410d103c000b200041086a2202102a21042002102b21062002102c21020c010b200041086a220310462104200310472102200041206a200310292000290328210520002903202106410121030b0240200028020c2000280208460440200041186a2d0000044041e4d108410036020041e8d10841003a00000b2001200537031820012006370310200120023602082001200436020420012003360200200041306a24000c010b419d8308410341a68008410e103c000b20011054200141206a24000baf0102037f047e230041306b22002400101d104e104d2000410036022c200041086a21012000412c6a220228020041ecd1082802004e047e4201052002419d83084103103e21032002419d83084103103e21042002419d83084103103e210542000b210620012005370318200120043703102001200337030820012006370300200028022c104a2000290308500440200029031820002903202104200029031010111011200410110b200041306a24000b8c0102037f017e230041406a22002400101d4101104c200041e782084107104936020c200041106a2000410c6a10751066210120002903102203427f510440102021030b10272102200320002802182001200028021c2000280220200210211a1022200041306a22012002104f200141ad8108410b1079200041306a41ad8108410b10791056200041406b24000b5701027f230041406a22002400101d4101104c200041e782084107104936023c200041206a2000413c6a10751066210120004100360210200020013602042000200029022c3703082000200028022836020020001058000b7402037f017e230041206b22002400101d4101104c200041e782084107104936021c20002000411c6a10751066210120002802082102200029020c2103200041186a1040360200200041146a411c360200200041a8820836021020002003370308200020013602042000200236020020001058000b7402037f017e230041206b22002400101d4101104c200041e782084107104936021c20002000411c6a10751066210120002802082102200029020c2103200041186a1040360200200041146a411d360200200041c4820836021020002003370308200020013602042000200236020020001058000ba50302057f027e230041f0006b2200240002400240024010592204106d22031007450d00200041286a2201200310281037200110702102200110712101104021030340200104402003200041286a10701042200141016b21010c010b0b200028022c2000280228470d01200041386a2d0000044041e4d108410036020041e8d10841003a00000b416c41c08308410010151a2004416c10121a20002002105d2000280220450d00200041286a2002105d2000280248450d000240200041286a41a88208411c105c450440200041286a41c48208411d105c0d0141d7810841361000000b104e104d2000410036026c200041d0006a2201200041ec006a1043200028026c104a2000280250200029035821052000290360210620012003104f104e20002802542000280258104b0d032005200610560c010b104e104d2000410036026c200041d0006a2201200041ec006a1043200028026c104a2000280250200029035821052000290360210620012003104f104e20002802542000280258104b0d022005200610560b200041f0006a24000f0b41a68008410e1072000b418d8208411b1000000b0be2030200418080080bce03696e76616c69642076616c7565726563697069656e742061646472657373206e6f7420736574696e70757420746f6f206c6f6e6773657269616c697a6572206465636f6465206572726f723a20617267756d656e74206465636f6465206572726f722028293a20746f6f2066657720617267756d656e7473746f6f206d616e7920617267756d656e747377726f6e67206e756d626572206f6620617267756d656e747343425f434c4f5355524573796e6320726573756c74696e70757420746f6f2073686f7274626164206172726179206c656e6774686e6f2063616c6c6261636b2066756e6374696f6e20776974682074686174206e616d652065786973747320696e20636f6e74726163746173796e632063616c6c20726573756c74206973206e6f74206f6b63616c6c6261636b5f746861745f72657475726e735f726573756c7463616c6c6261636b5f746861745f72657475726e735f6e6f7468696e67726573756c746164647265737372657475726e54776f5536347465737431746573743274657374544553542d6162636465664e46542d616263646566617267636f6e74726163745f6164647265737361726773766172206172677373756d0070616e6963206f636375727265640041d083080b049cffffff@0500@0500@05".to_string(), + data: "0061736d010000000194011860000060027f7f0060017f017f60017f0060027f7f017f6000017f60037f7f7f017f60037f7f7f0060047f7f7f7f0060047f7f7f7f017f60027f7e0060017f017e60037f7f7f017e60057f7f7f7e7f0060017e0060017e017f600b7f7f7e7f7f7f7f7f7f7f7f006000017e60067e7f7f7f7f7f017f60057f7f7f7f7f0060027e7f0060027f7e017f60027e7e0060027f7f017e029c072603656e760b7369676e616c4572726f72000103656e760e626967496e74536574496e743634000a03656e760a6d4275666665724e6577000503656e760d6d427566666572417070656e64000403656e760d6d42756666657246696e697368000203656e76106d616e61676564534341646472657373000303656e7618626967496e7447657445787465726e616c42616c616e6365000103656e76106d4275666665724765744c656e677468000203656e760f6d4275666665724765744279746573000403656e761c626967496e744765744553445445787465726e616c42616c616e6365000d03656e76126d427566666572476574417267756d656e74000403656e76126d427566666572417070656e644279746573000603656e76126d616e616765645369676e616c4572726f72000303656e761b736d616c6c496e74476574556e7369676e6564417267756d656e74000b03656e7619626967496e74476574556e7369676e6564417267756d656e74000103656e7611676574417267756d656e744c656e677468000203656e760f6765744e756d417267756d656e7473000503656e7616736d616c6c496e7446696e697368556e7369676e6564000e03656e76136d42756666657253746f7261676553746f7265000403656e76186d616e616765644765744f726967696e616c547848617368000303656e760f6d4275666665725365744279746573000603656e7609626967496e744d756c000703656e7609626967496e74416464000703656e76196d42756666657246726f6d426967496e74556e7369676e6564000403656e76176d427566666572546f426967496e74556e7369676e6564000403656e7609626967496e74506f77000703656e76146d427566666572436f707942797465536c696365000903656e76126d42756666657253746f726167654c6f6164000403656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000303656e7609626967496e744e6577000f03656e76176d616e6167656447657445534454546f6b656e44617461001003656e760d6d616e6167656443616c6c6572000303656e760a6765744761734c656674001103656e761b6d616e61676564457865637574654f6e44657374436f6e74657874001203656e760f636c65616e52657475726e44617461000003656e76136d42756666657247657442797465536c696365000903656e76106d616e616765644173796e6343616c6c00080386018401130002050201020b020101140103030104030201020205150308040c02050601010607020202040301030000010203010103011603030501070601080906060808020901040102050a09010708030202010701010617050c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005030100030616037f01418080080b7f0041f0d2080b7f0041f0d2080b07e30932066d656d6f7279020004696e6974007e0667657453756d007f036164640080011372657475726e4e667450726f706572746965730081011572657475726e46756e6769626c6542616c616e63650082011872657475726e4e6f6e46756e6769626c6542616c616e6365008301156e6f4172674e6f52657475726e456e64706f696e740084010c72657475726e43616c6c65720085011372657475726e4d616e616765644275666665720086011572657475726e436f6e7472616374416464726573730087010d72657475726e42696775696e740088010872657475726e55380089010972657475726e553136008a010972657475726e553332008b010972657475726e553634008c010c72657475726e553332566563008d010c72657475726e553634566563008e010f72657475726e427566666572566563008f011072657475726e42696775696e745665630090010c72657475726e54776f5536340091011072657475726e54776f427566666572730092012272657475726e4f6e654275666665724f6e65553634416e644f6e6542696775696e740093011472657475726e446f75626c654f665536344172670094011872657475726e446f75626c654f6642696775696e744172670095011772657475726e417070656e6465644275666665724172670096011772657475726e53756d54776f42696775696e74417267730097011b72657475726e436f6e6361744d756c7469427566666572417267730098011572657475726e53756d4d756c7469553634417267730099011972657475726e53756d4d756c746942696775696e7441726773009a011272657475726e437573746f6d537472756374009b011572657475726e437573746f6d537472756374417267009c012272657475726e437573746f6d53747275637457697468537472756374416e64566563009d012572657475726e437573746f6d53747275637457697468537472756374416e64566563417267009e011072657475726e437573746f6d456e756d009f011372657475726e437573746f6d456e756d41726700a0011f72657475726e4669727374437573746f6d456e756d576974684669656c647300a1012072657475726e5365636f6e64437573746f6d456e756d576974684669656c647300a2011d72657475726e437573746f6d456e756d576974684669656c647341726700a3011372657475726e4d756c746956616c756554776f00a4011f63616c6c416e6f74686572436f6e747261637452657475726e54776f55363400a5012e6173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f5536344e6f43616c6c6261636b00a601396173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f5536345769746852657475726e696e6743616c6c6261636b00a7013c6173796e6343616c6c416e6f74686572436f6e747261637452657475726e54776f553634576974684e6f6e52657475726e696e6743616c6c6261636b00a8010863616c6c4261636b00a9011f72657475726e4669727374437573746f6d456e756d5769746856616c75657300a1012072657475726e5365636f6e64437573746f6d456e756d5769746856616c75657300a2011d72657475726e437573746f6d456e756d5769746856616c75657341726700a3010a5f5f646174615f656e6403010b5f5f686561705f6261736503020aa54484012e000240200120024d0440200220044d0d011027000b1027000b2000200220016b3602042000200120036a3602000b0b0041808408410e1000000b1301017f102922012000ad42ff0183100120010b1901017f419084084190840828020041016b220036020020000b0f01017f10022201200010031a20010b2902017f017e2001102c21022001102d210320002001102e36020c20002002360208200020033703000b5801047f230041106b22012400200010672102200141086a200028020820002802002203200210652001280208410147044041dd8308410341d88108410f103f000b200128020c2000200220036a360200200141106a24000b3002017f017e230041106b22012400200142003703082000200141086a22004108104820004108107b200141106a24000b08002000102c103a0b1d00200028020820011030200029030020011031200028020c200110320baf0101037f230041106b22022400200220001007220341187420034180fe03714108747220034108764180fe03712003411876727236020c20012002410c6a4104105e0240024020012d000404402000100722044190ce0041a4d20828020022036b4b0d0120022003200320046a22011077200041002002280200200228020410621a41a4d20820013602000c020b2001280200200010690c010b200110732001280200200010690b200241106a24000b7701017f230041106b220224002002200042388620004280fe0383422886842000428080fc0783421886200042808080f80f834208868484200042088842808080f80f832000421888428080fc07838420004228884280fe038320004238888484843703082001200241086a4108105e200241106a24000b0a002000103b200110300b3601027f230041106b22012400200141086a103420012802082102200020012d000c4101713a000420002002360200200141106a24000b6c01027f230041106b220124002000027f41a8d2082d0000220245044041a8d20841013a000041a4d2084100360200200141086a410010702001280208200128020c418084084100107210430c010b41808408410010400b360200200020024101733a0004200141106a24000b0b0020002001103610041a0b4801017f230041106b22022400200220013a000c20022000360208200241086a1073200228020820022d000c044041a4d208410036020041a8d20841003a00000b200241106a24000b0a0020004100103810390b0d00200010292200100a1a20000b3301017f200110072102200041106a41003a00002000410c6a20023602002000200136020820002002360204200041003602000b0d0020001029220010181a20000b0f01017f10292201200010171a20010b0c01017f10292200100520000b4c01037f103c210310292102200041feffffff074604402003103e41b0d2082002100620020f0b2000100721042003103e200041d0d20810081a41b0d20841d0d208200420012002100920020b0b00200041b0d20810081a0b2e01017f41ed800841171040220420002001100b1a2004418481084103100b1a200420022003100b1a2004100c000b1101017f102922022000200110141a20020b0c002000200120021047100d0b2e01017f104321010340200028020041acd2082802004e4504402001200041f083084104104410450c010b0b20010b1301017f1029220041808408410010141a20000b0c00200020012002104710380b4601017f230041106b220224002002200141187420014180fe03714108747220014108764180fe03712001411876727236020c20002002410c6a4104100b1a200241106a24000bb80102027e027f027f0240200141a1830841061047100d22024280808080105404402002a7220545200541ebde0146720d01027f200128020041acd2082802004e04401043210441010c010b200141a1830841061044210441010b0c020b41a18308410641a68008410e103f000b200141a183084106104122024280808080708321032002a72104200141a1830841061041210241000b2101200020023703102000200536020420002001360200200020032004ad843703080b2f01017f2000280200220341acd2082802004e044020012002418781084111103f000b2000200341016a36020020030b3100200041086a200028020020012002106f044041dd8308410341d88108410f103f000b2000200028020020026a3602000b2a01027f20001067210110432102037f2001047f20022000102d106e200141016b21010c010520020b0b0b2a01027f20001067210110432102037f2001047f20022000102c1045200141016b21010c010520020b0b0b0c00200010292200100e20000b2101017f4100103822021007412047044020002001418782084110103f000b20020b1900200041acd2082802004e04400f0b4198810841121000000b1400200020014d04400f0b4198810841121000000b1400101020004604400f0b41aa810841191000000b190041acd20828020041004e04400f0b4187810841111000000b0b0041acd20810103602000b1f01017f2001105321022000410036020820002002360204200020013602000b0900200010074102760b5501027f230041106b2201240020011033200120012d00043a000c200120012802003602082000280210200141086a22021055200041146a2002105620002002102f200128020820012d000c1035200141106a24000baf0102017e047f230041106b22032400200010074103762001105d20001007210503402005200441086a2206490440200341106a2400052003420037030820002004200341086a410810621a2003290308220242388620024280fe0383422886842002428080fc0783421886200242808080f80f834208868484200242088842808080f80f832002421888428080fc07838420024228884280fe0383200242388884848420011031200621040c010b0b0b5b01027f230041206b220224002000280200220310532001105d20022003100736021820024100360214200220003602100340200241086a200241106a107820022802080440200228020c200110300c0105200241206a24000b0b0bb00101027f230041206b2201240002402000280200450440200141086a1033200120012d000c3a001c200120012802083602184100200141186a220210582000280204200210302000290310200210312000280208200210320c010b200141106a1033200120012d00143a001c200120012802103602184101200141186a22021058200028020420021055200041086a20021056200041106a2002102f0b200128021820012d001c1035200141206a24000b2601017f230041106b22022400200220003a000f20012002410f6a4101105e200241106a24000b0a0020001011200110110b5801027f230041106b2201240020011033200120012d00043a000c200120012802003602082000280208200141086a22021030200029030020021031200028020c20021032200128020820012d000c1035200141106a24000b7e01057f230041106b22012400200028021022030440105c2001103420012001280200360208200120012d00044101713a000c200041146a2802002205200141086a2202105d200220032005105e200041186a20021056200128020820012d000c103610121a0b200028020020002802042000280208200028020c1025000b1b01027f10292200101341c38108410a10402201200010031a20010b4501017f230041106b220224002002200041187420004180fe03714108747220004108764180fe03712000411876727236020c20012002410c6a4104105e200241106a24000b7e01027f230041106b220324000240024020002d000404404190ce0041a4d20828020022046b2002490d01200341086a2004200220046a220010772003280208200328020c20012002107241a4d20820003602000c020b200028020020012002100b1a0c010b20001073200028020020012002100b1a0b200341106a24000b5201037f2002200028022046047f02402002450d00034020002d0000220420012d00002205460440200041016a2100200141016a2101200241016b22020d010c020b0b200420056b21030b20030541010b450b9c0101057f230041306b22022400200241286a22034200370300200241206a22044200370300200241186a2205420037030020024200370310200241086a200241106a41202001100722061061200141002002280208200228020c10621a20002006360220200041186a2003290300370000200041106a2004290300370000200041086a200529030037000020002002290310370000200241306a24000b3b01017f230041106b22042400200441086a41002003200120021026200428020c21012000200428020836020020002001360204200441106a24000b0c00200020012002200310680b5a01037f230041106b2203240020002001200210642104200341086a20002802082000280200220520041065200328020841014704402001200241d88108410f1066000b200328020c2000200420056a360200200341106a24000b5702017f017e230041106b220324002003410036020c200041086a20002802002003410c6a4104106f04402001200241d88108410f1066000b2000200028020041046a3602002003410c6a4104107b200341106a2400a70b1f0020012002200310022201101a21022000200136020420002002453602000b1600200020011040220020022003100b1a2000100c000b3102017f017e230041106b220124002001410036020c20002001410c6a22004104104820004104107b200141106a2400a70b0f00200020012003200210244100470b09002000200110031a0b0c00200020002001101520000b0a0020002000200110160b1801017f10292101417242121001200120004172101920010b0e01017f102922004200100120000b7801017f230041106b220224002002200142388620014280fe0383422886842001428080fc0783421886200142808080f80f834208868484200142088842808080f80f832001421888428080fc07838420014228884280fe038320014238888484843703082000200241086a4108100b1a200241106a24000bb20101037f230041106b22042400027f024020002d000845044020002802002205100722064190ce004b0d0141a8d2082d00000d0141a4d208200636020041a8d20841013a0000200441086a20061070200541002004280208200428020c10621a200041013a00080b4101200120036a220041a4d2082802004b0d011a20042001200010712002200320042802002004280204107241000c010b200041003a0008200520012002200310620b200441106a24000b3d01017f230041106b22022400200241086a419484084190ce0020011061200228020c21012000200228020836020020002001360204200241106a24000b32000240200120024d044020024190ce004d0d011027000b1027000b2000200220016b36020420002001419484086a3602000bb50201067f2001200346044020012203410f4b04402000410020006b41037122046a210520040440200221010340200020012d00003a0000200141016a2101200041016a22002005490d000b0b2005200320046b2203417c7122066a21000240200220046a22044103710440200641004c0d012004410374220141187121072004417c71220841046a2102410020016b4118712109200828020021010340200520012007762002280200220120097472360200200241046a2102200541046a22052000490d000b0c010b200641004c0d0020042102034020052002280200360200200241046a2102200541046a22052000490d000b0b20034103712103200420066a21020b20030440200020036a21010340200020022d00003a0000200241016a2102200041016a22002001490d000b0b0f0b1027000b5701027f230041106b2201240020002d0004200041003a00040440200141086a410041a4d208280200107120002802002001280208200128020c100b1a41a4d208410036020041a8d20841003a00000b200141106a24000b0d00200010292200101b1a20000b080020001074103a0b0b0020002001103b10121a0b3f01017f230041106b22032400200341086a20012002419484084190ce001026200328020c21012000200328020836020020002001360204200341106a24000b8a0101047f230041106b220324002001280204220241046a220420012802084b047f41000520012802002003410036020c28020020022003410c6a410410621a200328020c210220012004360204200241187420024180fe03714108747220024108764180fe037120024118767272210241010b21012000200236020420002001360200200341106a24000b5101017f20012802002102200141feffffff07360200200241feffffff07460440418d800841191000000b41ae8308410c10402101200010433602102000200136020c200020023602082000427f3703000b7b01027f230041106b22032400200028020821042003410036020c200028020020044102742003410c6a41041062450440200328020c21012000200441016a360208200141187420014180fe03714108747220014108764180fe037120014118767272102a200341106a24000f0b20012002418781084111103f000b3401017e02402001450d0003402001450d01200141016b210120003100002002420886842102200041016a21000c000b000b20020b0a0041fc8308410310400b6802027f017e230041106b22032400200020012002107a21002003420037030820001007220441094f04402001200241a68008410e103f000b2003200341086a41082004106120004100200328020022002003280204220110681a20002001107b200341106a24000b1601017f101c4101104f4100104b2100107c200010760b0e00101c4100104f107c1075101d0b2201037f101c4101104f4100104b2100107c2201107522022000106b2001200210760b850201047f230041206b22002400101c4100104f41c88308410a10402101103c200142064200101e100222021002100210022203100222014200101e1002101f20011007450440200141cd8008412010141a0b200041003b010820024100200041086a2201410210681a20012003102a1039200141e78108412010632101200041086a41e7810841201063103a2102200028020c2000280208460440200041186a2d0000044041a4d208410036020041a8d20841003a00000b20001033200020002d00043a000c200020002802003602082001200041086a22011030200220011032200028020820002d000c1035200041206a24000f0b41e78108412041a68008410e1066000b1600101c4100104f41d28308410b10404200103d101d0b1600101c4100104f41c88308410a10404206103d101d0b0800101c4100104f0b1501017f101c4100104f102922001020200010041a0b1300101c4100104f41c483084104104010041a0b1300101c4101104f41e083084110104c10041a0b1000101c4100104f410a1028106c101d0b0c00101c4100104f420310110b0d00101c4100104f42f40310110b0e00101c4100104f42c09a0c10110b1000101c4100104f4280b4c4c32110110b1f01017f101c4100104f10432200410a1045200041c09a0c1045200010041a0b2101017f101c4100104f10432200420a106e20004280b4c4c321106e200010041a0b9e0101027f230041306b22002400101c4100104f1043220141ba8308410510401045200141bf830841051040104520002001360214200041086a1033200020002d000c3a001c20002000280208360218200020011007360228200041003602242000200041146a36022003402000200041206a1078200028020004402000280204200041186a10300c010b0b200028021820002d001c1035200041306a24000bbc0101057f230041206b22002400101c4100104f10432202410a1028106c10452002410a1028106c41021028106a1045200041086a1033200020002d000c3a0014200020002802083602102002100721030340200141046a220420034b4504402000410036021c200220012000411c6a410410681a200028021c220141187420014180fe03714108747220014108764180fe037120014118767272200041106a1032200421010c010b0b200028021020002d00141035200041206a24000b1200101c4100104f420a4280b4c4c32110590b2401027f101c4100104f41ba83084105104041bf830841051040210110041a200110041a0b2901027f101c4100104f41ba830841051040410a1028106c210110041a4280b4c4c32110112001101d0b1100101c4101104f4100100d42018610110b1a01017f101c4101104f4100104b2100410210282000106a101d0b2001017f101c4101104f41001038220041c483084104104010031a200010041a0b1c01017f101c4102104f4100104b220020004101104b10162000101d0b6201037f230041106b22002400101c10511050200041003602002000104221022000280200104d104321012000200210520340200028020820002802044f4504402001200041f483084108107a102a10031a0c010b0b200110041a200041106a24000b5d02027f017e230041106b22002400101c10511050200041003602002000104221012000280200104d2000200110520340200028020820002802044f450440200041f483084108107d20027c21020c010b0b20021011200041106a24000b6001037f230041106b22002400101c10511050200041003602002000104221022000280200104d106d21012000200210520340200028020820002802044f4504402001200041f483084108107a103a106b0c010b0b2001101d200041106a24000b4501027f230041106b22002400101c4100104f41c483084104104021012000410a1028106c36020c20004280b4c4c321370300200020013602082000105a200041106a24000b9f0102047f017e230041106b22002400101c4101104f230041206b22012400200141086a220210372002102c21032002102d21042002102e21020240200128020c2001280208460440200141186a2d0000044041a4d208410036020041a8d20841003a00000b2000200236020c2000200336020820002004370300200141206a24000c010b41dd8308410341a68008410e103f000b2000105a200041106a24000b860101057f230041206b22002400101c4100104f41c48308410410402103410a1028106c210410432201420a106e20014280b4c4c321106e1043220241ba8308410510401045200241bf83084105104010452000200236021c20002001360218200020043602142000200336021020004280b4c4c321370308200041086a1054200041206a24000bba0101067f230041206b22032400101c4101104f200341086a2101230041306b22002400200041086a220210372002104921042002104a2105200041206a2002102b0240200028020c200028020846044020012000290320370300200141086a200041286a290300370300200041186a2d0000044041a4d208410036020041a8d20841003a00000b2001200536021420012004360210200041306a24000c010b41dd8308410341a68008410e103f000b20011054200341206a24000b0c00101c4100104f420110110b5f02017f017e101c4101104f027f024002404100100f04404100100d22014280025a0d012001a7220041ff017141034f0d020b20000c020b41dd8308410341a68008410e103f000b41dd8308410341808008410d103f000bad42ff018310110b5001037f230041206b22002400101c4100104f41c48308410410402101410a1028106c210220004280b4c4c32137031020002001360204200020023602082000410036020020001057200041206a24000b900101057f230041206b22002400101c4100104f41c48308410410402103410a1028106c210410432201420a106e20014280b4c4c321106e1043220241ba8308410510401045200241bf83084105104010452000411c6a2004360200200041186a200336020020004280b4c4c32137031020002002360208200020013602042000410136020020001057200041206a24000b970202057f027e230041206b22012400101c4101104f230041306b22002400200041086a22021037200041003a00202002200041206a41011048024002400240024020002d00200e020102000b41dd8308410341808008410d103f000b200041086a2202102c21042002102d21062002102e21020c010b200041086a2203104921042003104a2102200041206a2003102b2000290328210520002903202106410121030b0240200028020c2000280208460440200041186a2d0000044041a4d208410036020041a8d20841003a00000b2001200537031820012006370310200120023602082001200436020420012003360200200041306a24000c010b41dd8308410341a68008410e103f000b20011057200141206a24000baf0102037f047e230041306b22002400101c105110502000410036022c200041086a21012000412c6a220228020041acd2082802004e047e420105200241dd8308410310412103200241dd8308410310412104200241dd830841031041210542000b210620012005370318200120043703102001200337030820012006370300200028022c104d2000290308500440200029031820002903202104200029031010111011200410110b200041306a24000b8c0102037f017e230041406a22002400101c4101104f200041a783084107104c36020c200041106a2000410c6a1079106d210120002903102203427f510440102121030b10292102200320002802182001200028021c2000280220200210221a1023200041306a220120021052200141cd8108410b107d200041306a41cd8108410b107d1059200041406b24000b5701027f230041406a22002400101c4101104f200041a783084107104c36023c200041206a2000413c6a1079106d210120004100360210200020013602042000200029022c370308200020002802283602002000105b000b7402037f017e230041206b22002400101c4101104f200041a783084107104c36021c20002000411c6a1079106d210120002802082102200029020c2103200041186a1043360200200041146a411c360200200041e882083602102000200337030820002001360204200020023602002000105b000b7402037f017e230041206b22002400101c4101104f200041a783084107104c36021c20002000411c6a1079106d210120002802082102200029020c2103200041186a1043360200200041146a411d3602002000418483083602102000200337030820002001360204200020023602002000105b000bbd0302057f027e230041f0006b22002400024002400240105c2204107422031007450d00200041286a22012003102a1039200141b48008411910632102200141b48008411910642101104321030340200104402003200041286a41b48008411910631045200141016b21010c010b0b200028022c2000280228470d01200041386a2d0000044041a4d208410036020041a8d20841003a00000b416c41808408410010141a2004416c10121a2000200210602000280220450d00200041286a200210602000280248450d000240200041286a41e88208411c105f450440200041286a41848308411d105f0d014197820841361000000b105110502000410036026c200041d0006a2201200041ec006a1046200028026c104d20002802502000290358210520002903602106200120031052105120002802542000280258104e0d032005200610590c010b105110502000410036026c200041d0006a2201200041ec006a1046200028026c104d20002802502000290358210520002903602106200120031052105120002802542000280258104e0d022005200610590b200041f0006a24000f0b41b48008411941a68008410e1066000b41cd8208411b1000000b0b89040300418080080b4d696e76616c69642076616c7565726563697069656e742061646472657373206e6f7420736574696e70757420746f6f206c6f6e6773657269616c697a6572206465636f6465206572726f723a200041ed80080ba103617267756d656e74206465636f6465206572726f722028293a20746f6f2066657720617267756d656e7473746f6f206d616e7920617267756d656e747377726f6e67206e756d626572206f6620617267756d656e747343425f434c4f5355524573796e6320726573756c74696e70757420746f6f2073686f72746572726f72206465636f64696e67204553445420617474726962757465733a20626164206172726179206c656e6774686e6f2063616c6c6261636b2066756e6374696f6e20776974682074686174206e616d652065786973747320696e20636f6e74726163746173796e632063616c6c20726573756c74206973206e6f74206f6b63616c6c6261636b5f746861745f72657475726e735f726573756c7463616c6c6261636b5f746861745f72657475726e735f6e6f7468696e67726573756c746164647265737372657475726e54776f55363474657374317465737432746573744e46542d616263646566544553542d616263646566617267636f6e74726163745f6164647265737361726773766172206172677373756d0070616e6963206f6363757272656400419084080b049cffffff@0500@0500@05".to_string(), }; assert_eq!(tx, expected); diff --git a/tester/core/tests/mock_query.rs b/tester/core/tests/mock_query.rs index 7ae12ce..6de0542 100644 --- a/tester/core/tests/mock_query.rs +++ b/tester/core/tests/mock_query.rs @@ -5,7 +5,7 @@ use novax::errors::NovaXError; use novax_mocking::world::infos::{ScenarioWorldInfosEsdtTokenAmount, ScenarioWorldInfos}; use num_bigint::BigUint; use novax::Address; -use novax::tester::tester::{CustomEnum, CustomEnumWithFields, CustomEnumWithValues, CustomStruct, CustomStructWithStructAndVec, TesterContract}; +use novax::tester::tester::{CustomEnum, CustomEnumWithFields, CustomEnumWithValues, CustomStruct, CustomStructWithStructAndVec, TesterContract, TestTokenProperties}; use novax::executor::StandardMockExecutor; const TESTER_CONTRACT_ADDRESS: &str = "erd1qqqqqqqqqqqqqpgq9wmk04e90fkhcuzns0pgwm33sdtxze346vpsq0ka9p"; @@ -24,7 +24,7 @@ fn get_executor() -> Arc { token_identifier: "TEST-abcdef".to_string(), nonce: 0, amount: BigUint::from(25u8), - opt_attributes_expr: None, + opt_attributes: None, } ); @@ -33,7 +33,7 @@ fn get_executor() -> Arc { token_identifier: "NFT-abcdef".to_string(), nonce: 6, amount: BigUint::from(1u8), - opt_attributes_expr: None, + opt_attributes: Some(b"AAAAC3Rlc3QgYnVmZmVyAAAAAQo=".to_vec()), } ); @@ -144,6 +144,27 @@ async fn test_query_sc_non_fungible_balance() -> Result<(), NovaXError> { Ok(()) } +#[tokio::test] +async fn test_query_sc_non_fungible_attributes() -> Result<(), NovaXError> { + let executor = get_executor(); + + let result = TesterContract::new( + TESTER_CONTRACT_ADDRESS + ) + .query(executor) + .return_nft_properties() + .await?; + + let expected = TestTokenProperties { + buffer: "test buffer".to_string(), + integer: BigUint::from(10u8), + }; + + assert_eq!(result, expected); + + Ok(()) +} + #[tokio::test] async fn test_query_buffer_result() -> Result<(), NovaXError> { let executor = get_executor();