From a4af8da13bfc4ed2014ca61e73c20f240205e5a4 Mon Sep 17 00:00:00 2001 From: Sergio Chouhy Date: Tue, 14 Apr 2026 23:45:34 -0300 Subject: [PATCH] replace npk for account id in commitment and init nullifier formulas --- artifacts/program_methods/amm.bin | Bin 533112 -> 533112 bytes .../associated_token_account.bin | Bin 451124 -> 451152 bytes .../authenticated_transfer.bin | Bin 386536 -> 386536 bytes artifacts/program_methods/clock.bin | Bin 403552 -> 403552 bytes artifacts/program_methods/pinata.bin | Bin 393980 -> 394008 bytes artifacts/program_methods/pinata_token.bin | Bin 399876 -> 399876 bytes .../privacy_preserving_circuit.bin | Bin 527788 -> 527972 bytes artifacts/program_methods/token.bin | Bin 483024 -> 483024 bytes artifacts/test_program_methods/burner.bin | Bin 386768 -> 386768 bytes .../test_program_methods/chain_caller.bin | Bin 403616 -> 403616 bytes .../test_program_methods/changer_claimer.bin | Bin 389252 -> 389228 bytes artifacts/test_program_methods/claimer.bin | Bin 386100 -> 386100 bytes .../clock_chain_caller.bin | Bin 392636 -> 392648 bytes .../test_program_methods/data_changer.bin | Bin 385240 -> 385240 bytes .../test_program_methods/extra_output.bin | Bin 385692 -> 385660 bytes .../flash_swap_callback.bin | Bin 394672 -> 394644 bytes .../flash_swap_initiator.bin | Bin 412528 -> 412528 bytes .../malicious_authorization_changer.bin | Bin 391852 -> 391880 bytes .../malicious_caller_program_id.bin | Bin 384244 -> 384244 bytes .../malicious_self_program_id.bin | Bin 384232 -> 384232 bytes artifacts/test_program_methods/minter.bin | Bin 386480 -> 386480 bytes .../test_program_methods/missing_output.bin | Bin 386256 -> 386256 bytes .../modified_transfer.bin | Bin 385708 -> 385708 bytes .../test_program_methods/nonce_changer.bin | Bin 386800 -> 386800 bytes artifacts/test_program_methods/noop.bin | Bin 384264 -> 384264 bytes .../test_program_methods/pinata_cooldown.bin | Bin 405128 -> 405128 bytes .../program_owner_changer.bin | Bin 386208 -> 386208 bytes .../simple_balance_transfer.bin | Bin 386084 -> 386096 bytes .../time_locked_transfer.bin | Bin 407752 -> 407752 bytes .../test_program_methods/validity_window.bin | Bin 387584 -> 387560 bytes .../validity_window_chain_caller.bin | Bin 410140 -> 410140 bytes indexer/core/src/lib.rs | 5 +- nssa/core/src/circuit_io.rs | 12 +- nssa/core/src/commitment.rs | 16 +-- nssa/core/src/lib.rs | 2 +- nssa/core/src/nullifier.rs | 8 +- .../privacy_preserving_transaction/circuit.rs | 24 ++-- .../privacy_preserving_transaction/message.rs | 9 +- nssa/src/state.rs | 125 ++++++++++++------ .../src/bin/privacy_preserving_circuit.rs | 26 ++-- sequencer/core/src/lib.rs | 7 +- testnet_initial_state/src/lib.rs | 5 +- wallet/src/lib.rs | 6 +- 43 files changed, 148 insertions(+), 97 deletions(-) diff --git a/artifacts/program_methods/amm.bin b/artifacts/program_methods/amm.bin index d621da6ce25c677dbe65f7e76691052d73113041..a6007fb8e3ee6a3d13f1c2f7cb7cfb6cefc5968b 100644 GIT binary patch delta 1728 zcmb7EO=uHA6i%Xf+ag4Z5Q`fm2T6j`b#`YqyMYQ8uLX;@iWZXW-eQ9wg5=;20dEx# z@-8BUURn{n2y;=S5?ZTO17Z-GkU;J|M|x?pZBEY2;%(XQd*6KXy*F>rNDmt6$MtAE zRzFcc`95ClJt{lJqEAYUx*l`V)TmS*+%-%Afq(c26H#Glq6HOx{S&+p!y{!( zY{I0dm|xn26>;6S&+uAQ5?D>qyxi+CqabJSSOeb0gzEEOVFhn)!<-ytUsPyvM}-a~ zC?B5tMjS*CAlVfMh^sBA;o=`iVrLg_3r&v%Qq)q!@%%fS5+DAv4-|Vppea|j9l3JQ z3Y=+5%uij=F7x|MSQq!=$}gyi&V6}LyCwRMBn8*-25P5qCaO)#C`;!RhKH8Uarzt9 z;==Nv8E5ujLW=54p*||t6@xj-E2k5+LQXeB2zaM0cbLOf6{_1I;<~Eea~&YEXma?r zBe#{s{f=Zzf&sP^1AO%2EyeyiW`x`=o3g_83SR9>TrPIusqE^*_vgxE~ReL3O#Ed0B;{?uQG>HR>;@@ delta 1726 zcmb7EO-NKx6m}-(JVmfVQ1K1nBAiFz>;Am^?we3Z+6qBCqk?jDH7P;_;X;jpc1DXh z8xg^cMc_ub8zqdPU#)>if@W}_z3T}#&AfEgz4y`X@xJeT_q*RY_cY3bjq>1PDOF0B z&Xn4>GPCss5^*VHfrfNSOmbehpJ&t4Qz0dcP!Y2yY9wzcUl0gteQ5do27m>L14stH{i^WF|e5xU+?H%YyX-m5gps23Df#-U-rHtLX z(5Wj{mv&)UU-$Vftm;Z)t63hJy`C`gW`;_aVKc2&AO8f)c=J7snbF{b4ekACLmLKE zHP3ye4<@B2`$dbnmoU6CN}+WI|K17eEC!`C&l ztsEZJ3}X@xFtZHs-xtp;`|E^}aJO8RCG8a)Jv6wSID{vrt2f_YWR6wQI=t+^nz-*z s=YmHer6OQbl6(*`DUh~1o*MZLh4e_GiZ~77ADQrJ^%zw3*jX9+12)yi)Bpeg diff --git a/artifacts/program_methods/associated_token_account.bin b/artifacts/program_methods/associated_token_account.bin index 66611da2815a4ce7972588b28ceafaf0b9c5fe06..9740bdf901df2afc56eb5e87acf91dd96b2306ef 100644 GIT binary patch delta 11559 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 J)8Liq{{x8y;|~A; delta 11546 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 diff --git a/artifacts/program_methods/authenticated_transfer.bin b/artifacts/program_methods/authenticated_transfer.bin index 1867c59b4f367c1db50dc44dc424a38ab0a048ef..57782b67b9ea93b5f60c3b19b0c65ff264f03261 100644 GIT binary patch delta 220 zcmaEHTKvUn@rD-07N#xCd*0M1n}oObpBn X%*;(JEKLo~+Yg^+*?#ymtEv-lh diff --git a/artifacts/program_methods/clock.bin b/artifacts/program_methods/clock.bin index b8f554b175651d975f1f610d24c5eb1994767703..b7137200dc08d28710824643148c9b7820188254 100644 GIT binary patch delta 222 zcmaEGLE^y$iG~)&7N!>FEiCWE>XXeA6H^V6OpGm3Ow3ag4N{GhjFOX#jZITbl2cPt zQuIvC8T5P-^YZib2r4yaP)PwHV%3|PF>KEjXW@EnL(phbQ@xy=vRpkwOLG$gBNGz? ZGXpbo6AMdIL-Y2{Osv~CGqJ5z1ps?PLiPXv delta 222 zcmaEGLE^y$iG~)&7N!>FEiCWE>J2Q6%}vcy49yHvO_Pm{Q<5x=($Z4R3=ND742{f8 zlJ!i@8T5P-^YZib2r4yaP)PwHV%3|PF>KEjXW@EnL(phbQ@xy=vRpkwV+%7wLsJtY Zb8`br6AL4AQ?vHXOsv~CGqJ5z1pr@5JXin# diff --git a/artifacts/program_methods/pinata.bin b/artifacts/program_methods/pinata.bin index 35652f6ea34f02e01d862cc75635fa65e178eae2..dd2f01f05c455147b2fc90ece66cf0b6f367272c 100644 GIT binary patch delta 10032 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 diff --git a/artifacts/program_methods/privacy_preserving_circuit.bin b/artifacts/program_methods/privacy_preserving_circuit.bin index 65879eaa036aef44fa3441ed1216cf80f317dfa9..da616104c22b153315be2ab3583cdc0d80fc6c34 100644 GIT binary patch delta 112768 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%0DV716Vo*D|1owqU{;KO;Q!}5Y)=-Iut>IT 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 X=+= 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 OV7<}M;gR$|-ub@(eccrR delta 112186 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%0ARti&xY}_(^&3%Q#%JO|)#0h=bS%GY zAREgJGmU^*Cc#)NKa&t_oGP&V%!2w>EI+fLo`B`&7}U38>5^cJdy}#Jyn*^IoX7sy zF5zF?yN3YzEdzg$;6=`wp$f|ps9(qO`vsbQv$MwkglAQ!Ce3Dmx4w-5Nb_gJ*b@Wt z@w>TDrLwss7ANlEg)a8T2OfdtV6$BOr&zk5n}&Y+_%xP1tnuBjG=}DX6r1wt;OTqr z;0kPauo}yF(jEMV?GC!$yXOu{vHv3#u0kJT>CPN?fKBdW6?(qC*WZt4fS*W!jF$~A z!#FGhaIJGWmhqD33fPQgyafeNILnrdFU^1SEXremSGoM}V(Cu5H&`;(KE$#|cb`Fg zEOo@AiPMwv0};W-#bqJa!#G>AGy2|j*7y~;miT-Ze>mlcHNF$>`)PQ8cp&bL{oPaI z1T4Qdq3LfwgHe7d2^te3E5rg4w5SXdynxs6R%ekPpYFYbOYk7y3GZ{fd{LPGOWeim z&^wch`*MVx2izrn+>|K=|TkbV{yDkeS` z7h?b35Am1a^G*6YlLTa#3@_m#oaP@Pj}2n^X$}9>N*fK}fAps|q|MI96G?x7OFt3M z#_7%r@Mu&1mv|W?;u;s9lwT&2fMDYT_*j}y-3YfbFI1ai=~Inwfu+yYdt>QRbsH={ zQlj1$&kfDf3IxcnmS}>5@Gj$axCLFL@$GS@aW+2P_;6fq+zD41ABk5sn2Xt50%VZr z4vxk$NYp*Cj1l#5SjLFDHcdi8J~3~rVu3Hh(npyAy_ihyI;Kp!ryT8b`bp%b+Rp z<1_d=xyQKaN}I@1AB!ivBOhm_y*xEg$qI>T=j0~rnq=b_z-Ll zJP`W_LSJ8o>rML0agUW@{wwgHk3x^=#}X;OmJ@7z=2r?Zz798G2O57p&M+Q>3yg2V zQXx%$3ziD2Z^QD_JL-x32J-VSCg2Vd*jGMx;teMLZd_+P9T$8N7I;4%_(f{oJgxvP zoxll~)*P7@bnEetaLG$+WIHdy(ptT_0+ew!jb4%77~$gI!*Z}kP+RHNMo)160qd|i z9m~P1r($V5=cM-m0RyR=|BfaFG@nZbtQpS6amY^-MY`JKwzuJD<8rU1XJzgMS4}UGiOT z?EloBlX4JV_*_RXi}Z5vv$5=3SA}n|)J+@fpfY;z%LX_0-X(yaaB4F@(KTN8S*j0z zlUqLz5B89AJn!0|W%zF+uLIusRT$qj;%<1Ci9Z2XutP={r_#80JBNai`Gv4x5+M`dBQ#M5aC-XB(e@3ykyod#V4PP8^)<`uejE1E0Ni(7>YegLr}TR{ zALTCDQJ#1!y^Z%>m}VSzFsi;wz4HQT=FgAuV-`DJNQ`Qnocev3=D|yOnQQzomY-`2 zHa@J2^G%z*i^rRLSu3#q5}F)xopX?%Cc^$Nq!A$T2M^(m9|_O|Swmz8sb3c-PVBy6 zeYoSZ2`}9cx93(jaOLC%1T-K(&iyNM-PI`SS`tvYwxh>`J${Bf zyb8B+9wr%#@53d=ui}YY8VdB5;x$`CzlA6N6#5-36$~~`Pwx@1vLS${Z}D2=kFfmG zU9j=>UwDM^r&uba@oTXCROMG#4nX6-!E(U005F zz79_}z3>REy*nIlHR-RyyNpNT7Td!8j>6-OZ@8Rm$5|#|ED1`?4(8&uCjKex)rJK= zjdP5j#r=&d@I>Pm@l?v+%N_7HmnZrB3;}IiK>9FVo8flOxp)O;Uid9^2_EymumVGH zwee7#O^bGN>8InW?P2=+aX;eyE~mv`OA;{mmoUK__+}Cu<_g$~YfSt$+_x@Fza95C z-huVE8>LG#ivv>}TiiPYOP2;4pVI3U=CMqCN%p7?$mv?wyA7jL*PNe6u9JEOBC5 zawkobMN+w0R6CrDFVj@N;I=#5+tkEoT^TqiIp%f5<==+y@t=*C;btU|rY*raxRp{xv*pT{t>_l=LS4XFQ7dy~!XI*mnf4 zv`qYgxQO^P7k}yqMz{Pvr|#fP5@eD9Dl<}bi?rUge~{V`G5 z8kmv#|GP z=zjRohWwl$ZzdqqBp8n$BZ1z3dj`uW4>lf^!!pX%&tv^TR;kchXN~_B>kq6-e4}du z`|)z~s3`$5>NP_PtiR$a8IE<<_~WtkvHAooV@92i^_N{G|257Ue;t-VE*s;Y7fl3o zA)qk2ka?>KDzQux z^%5-eUi})DF`#|}OP{Kj;m6jc+N@0co6MtYWpK*^_sU3CLetfYvHZxbzCD)4OHpyK z@%$YgY~n9+*7(7A(0Acbxf9Eexv0?T*9F%2GjYjZ z?Sl^#6Q6X}_(}Luc9=_m^i&0&fpxw53NIsn7V&bx-A2*D5)f?Mni<6oaa)(*S!a!} zz;h`ug8vW!m zi%t5)cqERw3T?!z$j>v%eg&If&-E^D<$Me-G%b?6i~!kTu*JR0T?X|PSPE2+z-bgv zK!CKs1I`-%5SAUNORLl@dO)lh@@Q4HP`sV&_EW=J;cV|Va2TG7!(XQ6(FVM9eZweAdN&dvzYnc5eVKDmDDRVD`MqeJxgBo|tnr6o`Aun^ zxRaeV{w_&Ry!sxTou*F4yn6{)*AT#)koa0{BpUTWTxt9;UT!=aR~yg4^2^x4#u|TBF3d<12J8={r%L+(s+}s?iw8GK&HIGbdYZv3X$QNb-MB|#JO29*%a5UJS@AIp*2baJahDAZgVj3< z&oJ@baVhcs!P1k1vHXI$D=+C?M!-^2z&*IaWLSjPU_HNY5Sy<50cR2)Y;kWhmI|qV z!UgzT0%QT$XKdggo)u<40;GnT;Q*Xt9-7I-<;2Hb0jE1_`ZKXqSba8@15)?LascY{ zFsJTdOP%p)VxJ4@q!VbA8SF!b;DxLp(&(*Rr`&_3(c6+q;(Jyx2XS#);HR;)fsUwI zuk!BE`qayx^0esWmJN;VJ;knPZS3grxU}CEALBZ#o%1KIHf}$T6Rz=Dc(UN~LbokhSvGGs`B zH2YZGo9P?1Tj<;!oGVDiO^uj$`^|eMxHICrac@(= zeR!bpgLsy4DPCp#7_R9Q9?*9-UY^X_WCQSzc$X>QXWX0H7EECNrF&g&;l(^H*2XvA zEry%bgf{~w;j)fl3*3c!WQU$^%#h|I3MN223y(G#X5%B-f$nfQ&cOS+3jBi0O!}R; z#`rJXpY*ciNEc_{%DBz(E5!Z@I)Z?F66n+(h}Q-Q{P>HU`y#oT{~{9qO~l{f>?6V> z-W2hVxQ8Dv`=`L42`Duge!=C&JMlu}zi=!1G}vO^zY(X6-!r}u&Nk_r<6^PDe=5+5 zfD)5nUp&$HKrDkucX&v|*%2R(cbfEFaPQ7x{%*K04)#w4dJ-_uB#UuF3i4DcmT9ei1dqh+36L?cJh0n80q+waJJbvx;<-4}W!UMg@qgl_ z#OJv94z~r?_(O3G@hx0@e`k$957+&W40m_|0Wz&L!9`f6m3lCiX&7wj-ep*3fyQ5s zWtOO~z%r=SBe2W@^)R0# z-~xaZc{&x5760cCxTIuk*E)Clkaw#nMlS$H;~nO(xM{W2~& zGW3$$2GVm~!+@nE7)?(G=csh=W1Me#wpt40h=YyKdEz|dFa7+fN#F7wzHQkjm&g2a za>*Err+ZtlR6IW(v~=6|c!ZI1v}G^AvY&(e^nBeDmU{Vfiu~L07@TnBZDPN=NyGem z8}rv5SlWa=53~^;VGg`Gu40FJay|yHJ1T6L<8lAo&?iM)5b@~~n7>6PLthf)bPEeO z7v~vY5b-4u55WUX`e8V~dsyBGJkj{tWF+8*h{xiECc`Ze--b7s_(>5@!L5!CD{xQ5 z$$JUtViG)n3yf2^$aoH(WBepuYW#G>3nG32uMN{Dy;lh6(Ic#36|OdZBjR@=eh=50 z^dI8FW5V)2!8OKf_Au8^U+)pXRK{MSGZ@ewyx`=X~?%@htqcaSG>d z4%0t^^HR5Oh@3h0f1Qu2u$;7w2kTiemgQnA`;jxrOIT)mAq$xJUo5j#)0Lxfck9&*pEn~IJ?I3*_PioNhJ)CD@85%{dz>aUn{DwZj z9pP{+4Sj+0v)ESnq<8l8ml0pv_T4=bH0G4jDs}QEKHOtR*!$9fX2gAn3ynX)i zAHRK1r{h8@=nowZAlKRRH@>9`%K@pAJ*5Bw4kttwfuYWtpcqRFsjtM+Lh7q=CGJXq zAG03N?iOglbE4ZOg>pPj{JmIq?qe{-*0~4(?w%qwS2?Txtsa+1e>fRQv58u%JlE-i09zU z6FRuv^EhI}Wq3Nf^%p<7;}hJM^abRQ*Swi`Fy$m5*f{Il5hPG&J_poCWh!ItjbjmyFW-gI2eW6CarcR#K)@eknA z6=D2Cc&Ujm#aoRZ#Uov5e8A$KpA!4+F$t!uj`%ymhu@P{u#bGb4kk6xpe5K zd?<`b(w}&l+t*;36uHhnU^%`Zf4VpPGd`?A{=Hmz&wj=gf%L#cm*JhyIRTsJveVaa zh9^T8m!S~b^wT0P;{bJ&MPeDYJ@Q_}D%}jlC&ce$zt1#)qVE!Pd}?@Id3HxWqU$XB(fg zu`A(ovS71^5fmw%dgp3BOu!*zy9IqCmNs4P;#boLvPT^hdw)Tv8~4XjL%qd36HASx zj&j+!?-c)kg9DIG>qZsrA@=m0y1X{>`n(U}x=FqvIB{y&w!naS`8UT(YwuQmP}XPzGJ@OzwV`~x0rymbmwX0!?T9|^2~jrez5 zX43zSSJD4XX*Rh~IrL7t?I-u}D(;WV&j>4YK3=QiiTH_00(P1NQ}9$0=fUN}R5!5F_1XCp*%qISk9# zSw}{h+H1V8Qi*_@5EDaaK1?QrryQi)JOO-1+D@u@7XiHO~m`+fhPZfxY+m* zJk>bcd6p}`G#N?oSj2O2nJHjCUTXXt-evqE&g>VqKxM?QMx0zqKmi%#>PDJ;uW5m` z$@htPKRlZBW8_Rs`f<*h{?>>m;8~_Zci?5`G*mF@O(mcv4DjxCE^`&y7KyKm_&1#B z-%y}ek9!;M##4>s(*sxe<#RLUW*4AGFd^dGafK=1PF!z14dmGZ(8+j^@oCOE?ub8%#8*fBIi4Kkm!+D|p%5@|V7PQH&N=P~F1mlu z_#qJw#pUGJ7MkrWM=bk$yuq@60-hvbmD%Cb5kHG-P5cXZBrB{`NLJXdaoz>o#B(js zc?P52#9x3jhz~Y?^b$*YcdFtZr3UyZV%`-IkHCXW0oURgdKTmoZ#8c5b9giBFWmRS zaEJfmk;Z8=1N+A>$I!$DXbqd=@g_qnTxPs4t~EX|;zJ_tfHMb$6*@ey+dmcPL_n@d za1?IK5$Vl~i*Xm+iW*9jPr*4Cg$3S&`x@UL@vMkbc<@EZuz)!Pw7od=lMz21@v}JF zq<;aI8NU*7Rm893rAd=v83Db`5pKhECcX}5ToP9B_lWkil#JP+*PE#^(~>+{K^ctnmY|j0yGmcqBf~ zPhS}KCb|Gka0ixAs=gDKnm)W6%SCIjrF+wH<*?MIU5TzI+j|(Bc_>1zetVNpUfA5i zeI>bC_D^E?GwwmirJ8#GuX$%Fb?$E7hZ$*xWV?r{uW@@k*Z448QWOs1&bY!jH{xR= z&ciFs;q-c#S3awTrGDKVd3BJ*jX0@DzMSKz|D5l6PM95O{ZFSL-Q?B7FuaENzHlxzL&GEe*;&u>9a4M7A0BZhTwwAa6>)bw-NYX& z?_t`2<4G{bBsd8#H7>xdE)OesM#TLhJ{ONS=`V=*q9g&OCczM#SsQ*@;BI^*me)%% z`6_X(N&hNtGAyjnn-RYo@e17c3isY5B_8Lwa5v3~>SeD5pu*?~#D_b|c<`Tl_DqK$}NsL7KD+M<}!4VQ0t|^B#@(aV%Zn zZ}RHkDI0*F#+mFu?=*di^Ne@lIxT?ou}AlGqlla0oZ(>$?S(5SuMsui_~YJj1k55J z!>=zNFu;SbHu3#8EmXaTXuf^|Thz%uRBjj>F# zU`zL!;roc+mjLPFW1Ka89)61WZ|Z_+|s3=<*e~3EYnW?2(H08 zrrvYb_?4Jx863Y%oR0{QX{8BPW0?i&PqEAb^%^`7#|e-l{LfkA(idt;eK>XWd{0(BoOvp{_+&U`0yA^x}<33Qs= zC;=wJI4q-D3%D7t9hQ10J$=t72s4Irzm&n5M?yJmFW|C7mh|b)pTE!BU5pKXKRh8g zgZI~D{g|E>q;JYwF>8tUXAki^v7AKPkKG=To>hT-6PGWW(OaXGk_f{;k;#qw~AYr}F+h&Ue?n)p*AF2sXO z{MmT4@qi~-5GqW-g(R>Z9Pwqi`j_w_`Ng=#c<;HaL)V2BZX5CbxQmI;oSWP;;1Ck@ zH3_ouTE?WF8v5Zf6Mr6FZagUBOCv7AYfSnpk_5~e71sD_TxL8f;xQ55gr{x~*PVHI zjmiH^#LwYc6Q6vMfP&Fs1uF4i<5!)t1+Z5N#u1Av=%@6j_<~o5yVtMzs#QlkvJ+!yTN4 zb4>j8xL|x3KQ7{1Bc6Z%ig2#=9O7 zmxX5kBzT5^wkAUb&NF@q7a1>(`1Oe2#3d&EyEu;))3ft-+}~d}{Nv|GJ)fclCUo%Y zD-~*o$B@8ZvgwjDaItCfF}T9`30!URmpS|AD9USEwrBiaYB_${VQT`GQeYcjaj!R) zg(ukJ-br{XmXnl>k*l0Fek7JzqaKB2R;h2mGVRo3v3v(uuzw0HA)tr^>7FIBWc8_^l211|Z7;!1 zlHr?<2Rt1(NWOMz)*kglkZ zc&z1piRT)}o?!*OJuJV`GYpFvCP6n6w74To&@MW>W&os17#1d=Kw3 z>q|2%gH+>N;tYHR0bKBNnePHL!SPr|vHAoogH)Z5WmKzA!P0{2)39`@`V3rc+!sq1 z$;SAPd*={PXA%s+GKzyO?wyaNiPeL!^r89^oNYV=OBZSUP%KTZF2>U0Y_crJy()d?;ZkG@s^HLK`!ZPU8 zQ?Lvo^;9hLT0ITRpi|$6W!9)?VwqLySy*O~mwKpedgnbJNqc4^?`g8eRip)r@LZDW zCX4P0EW@!t;#pYwJ-_GhJTKx4@G3KWFTuSZ2#0gg^K?Sr-@_R`jRb9R4tteFb+KeH z@f#)nq3}tM0Wa{PkoYW@{x-bTq%X(bgW(RJch*am`WIvnm;}2c8N3%6p1+2RYA2jW z`Z88kX@P5u`yQZ~PK{ZrmLYGQJd#FrJDFjbFi8rCI@A8&&NQz}Hbn zybKR+$Pn}1!}S!{)K#z!#~5^aqCMzk#>}I-1Mb`4xQRatZ`BIPB0P?O>N#PCTb&2H zLH150{{4tQ#5E@WCpgXQ@NeAY@v!{=aKgMO<-;TK*F=0B z?rrklhx&{>8k;1WYvrv~XVODsWaLzJJ8$;Zl=-5YC|j zty~4}!1+&vEie`L_bvOU0{6NAZSs#A5(M$p5r2-0O@V9i$hqMTzQYy9o1CjCPFgg3 zk&E~DPrwlxAp65z@G?_CH=OxoxPzX!*tnOow%FK6{4EjRh9{Cg*grd*L_n)~;STP? zU5uwY7si7lSRRT0AmUZHx5@u0&Uz{=|4TgR4{jD~AH^24w3I=kRos|3zF;#@Q~|`1}F^Bg_uh<64uU#@W5i7NO z;X8bOiM3hAzzuk2k{#;8@fZPfO@?{6%J><)&bR_^Fn$S_P~HLTSEltkyvxLI#CcDL z721rG5>Vt8njD6wO>ktyxwyY6;21pSW8U;>930VDTyNrU!EK)jcbLR^#*?cUf4xn> z-6R-fd><|~e$ZJf{6!@Gn~1-|3r+q_cu;v*p)FO6|1l<@RthlQf#(?ifvb%F!S%-8 ztAUH%71BA*I>rV@d|{G+9?ym~8jRO22t5=Jt_VHcdA#eg%1HdH5ii9PP5!s>17^%6 zYY9j^AMRiW?qCvRzD9*ie0%5oc+lrVBJsl_9*z?)gymm@i$W*8(FDv01H7^LAu2%m z{wSV{`@R?!Fdr{}zk|2IHF5lPu9r=GV_ad}0SFDO}Mx57Ux=8NGjB6 z>7MaNMcf@1nf%A%T4%;TpXDYX=aq1WCp)ikJD41azdPdTxX|REiPsrFjCUD7>byZ- z1j!M6A4%{-#G7$eWmv&&c&>3BUT6HfbGe%(d2j3)e?o)(^Iy!%Cm^vX+`*~1@8ZyB z;>pJ6ICqH$UGP98J{9pJxXR>z0&kH)DEpVS`Xd6yGX{ck|X7)HPnli)sF_E86q554+bv=KLXJ*?1XJkWSs#B~w> zhD%KPdOTas|Fodr0v+GtC8?=#KU`{jGcI2iR$v0IHogNtY7XE9{5a;^3mip2Hs|MH;{j_d=WF$G5uX_G$#}F$e;QtBd={=W?vGa{O~CmC>@>bu zygaPHWq6l)C4Uv3`feD19e$Z3jC;Wm&&F*{{>SmNrUgF0$vGy$Y62FR1b^WQ+{g%DqXh$UekBI+zJIS;$1^i2b*US!&c*pZz$2y1x;x#zV9%b4l@t0Vq)pIz5 zS)&zt5f>O&;*rL$N&(9$K(B&puuMBG;HQYUN4x_sHR=DrlUH?U$o~(POEfLddv{MK z(<1>*@GO&|C7x3q7SIOw<&H?O@oND%cXb%w9*;IY4416oL!Yr=9k~Xt4C6Wf6VUsU zuz<0+zws@2qH$8vf7!vSmv;*2gpcq>T9ESnF8KquG8O&@FE^HtpB8_r`(yn}Cm{PX z4d4e-@o3|{@j7;(w^WYDn@pcyfq%qtSAiK=jyTw2-b2{7SgDPd^Z#Qu0MEsxrhxgl z%NJpR&*A>YFXEp}1-`{CXd$h@23$+Lj(4GVk?%Wb+~ zi+gY2U-22Pye-Ze|1*~I{NtBl^gjY*hnk=cONG?G;k$4l0W$9oUJ+R1v#{KDQ+LF2 zTTgu$mb+l;Bk&eHG&ugaH_!!Wf(x~W zS}gl#i+dvp*lH4t!g7}@*y7#|SnhJE$6~pwr7pp8(@A|RmYYoK30Q9Js&B{K+I9P< z0+R`ld%>FEE<6|?M}Rc>%g!3V2(K~kbyVSpNH3#8(*NMB={Msg#J6_wt=|`$_eR?i zAUBgW!~R%qCaVv`^*D_H*}yZQb|(H>XN@0?+Y_(nf=8V-{&6fX zZq-kI!1(KE3S313u_pKg%Z)_!XIO4hslUK-lS;i74>JB1%RMEH{~qspJM_jR0dmhq z6V%|D##^wwUf1}avAlX!{}0QnWpy2vt7!FaSgxYge_$@V8=U-$0J&_|1iP?YHmm=` z^Nr&l2A9zqpN{2)gt`fq7ar>7SS~u%dttexbLQtx2#||TP0$w0MW=dyELXMa1F>9G zst?9;QK`l+xqeWeh~`vD|)F zpNHl4yZQn=(kV4HH$7vIHvyM!i1}~$tYn#xM^EdpywKa(DDY+E)=l0NoQUnYcuK@m zalScM-;1|Wn z4i18^k@%=bP$LbD@BQ(f@ogjCAJ>`unK<+N@BrH5 zeB;Bgv{>Pcl2qKTscODad)!lCY^GQD^eSI=;}RpF+Ad{aDP*U z>u{0rjjQQ|$tIwL1mZlY0FC^Sb5IHH@I?GM9?vo9$#FNXGSlMlPk5zg%I^~KQS#k> z>r8?kB$#Z5)eu~@K5W!scrEc4P$L<3_u-Xhhp*zozruN0gEKdT`G0cOQFMB;dd~!X zBR&WBHU$jCV~j7t%Z!IO>nM6N68~<*$rS|Dm;ye+tu}=mYf|V+2K8uyMfT*aEhX&;l6foGRsNetGoynct zCT#q^`%`ZI=bV{2GjnF%DiDF(5R-IiS8 z;Z+`f0Ul=9zXW%0aMQmAmm9p!!~fh!Fq;M&FqmQ_cpGju_x%DQ+SAB z-w2PO#k$bU($(DxHYEg!X6NZySejIG794!WHzWmF~7fPS{l!q>83H>8j zsmx1Ku{tu6d1)FfUFpn2@LTX?%E>_Q{K(aAepJg&Dfad1YWjOI#SPhMhl@RtaussD zNu=BYk2mUhhllTiml*nc;D$YJJ5Gmh|Jq$VpNHqej(fCI{U#!%WUrfG2L>j8;^EzJ zjbZ z8uqzy1ljnf(uE3h);VB-z15W$Gb!ZyA#^8J5?FQfP;hC+NOL%h- z>^BnF@RBCCfCcb+gP(wFjKRDZUTE-B@N$EnfuA?{Sy)DevmMPaSdL)+*Y-yxp5b^U zqgRIC23B<$?SF(NBTj^!(Y*_n(J(nJp`W>j*Q(H`Dt&M-mjhuv8$1t-}lNdn|R1=xwGI04ekeTz+SH`H^N)s z&MN(%CreAoE@H-?{}1fajtwQu?v*dL#WjI2S%!>0gG28~WXFrOR>a#4Vh_c5+*w zyN6Hpa5g-|us;nRdZL^DEI8M2_zE~`@HDurh2yE#pAf8U5pY5SFE%*kJ-Wc)zVKXw zuY@ZNz8kJF_*ri7V^sXdiy&}XcejbdaH+vX9xn0l0J!-(H-^T-OB3lSpCTr>0*7yc zJALma_&wachwH#14?hW)81@@rnI{q(pTdA;9?<*_Eb~Ci74`QJ$ULA8>S37&G;f1t z9?<*|JRa_cKw7Bt2MN~t6JQypn!Ca>Of{bb%P?jBlP%TijzGp~VoSAp!ZJ=Z{|J_0 zsyP75Fw>k1%P`Y?1}wu&^I7m@gU^O*;6(X25JWK7Fo?i1u5|{5u*?gZi{VU(5ohDM z6gb!50dUmdL2#MDgJDL6Djx@iAgDA9E`lc;dox#@# zf5#Q|uGB#KaJnOKYxDs84pA$!z35jd)-`?smZ;Xe29}`J{4(4f?uJ0p?@_Gv`{4X+ z431L<-Rlt;8T5op>?g{6t-pkG!{@DEHaY_{y~(Ot2G=lH)*U5*#q|=!2^((Ud3Yhb z&=_1#!b1%=o~tKH>I{QFW6)^uYDv&jSDZ(Z;c|mtg(n;QcX+D7>){6t-UtUzb@O|t zo+ue=2tL5T^l+=Nq5s&!pTISSey@i=gI5~*FW|YoTnC!t2~ z$H2kfy{)B)rAsb@(*mykXK<;(KZmE}xcc}=m4WWVDi4qK@b&O83e@&D!SfBi6|OgU zs)v8onz>elAT!s^@Hg=M(_DTC-eB;p&K~+TZ|OZ}90J?&INnIOA+LzX;rDa174Q zcl0t#r&#B?0*42AcraX^NZ{yy0*~qE7H}!N*x=zFzRJVp@Mg!}StU}eQ3%q4ZidzH z@Q};nJUr3Eli(V|ehR$W;5*?35jVfPH9O_g0>9P*>L)F7KWs(a1T#H62kvX=Z4W;J zml*oT;o$}^hNr`c@+t6XC2-1zpY!kvxX#F66`UJ$9efck=Qk_$>B3HUsKF;}V-y(n znF&_qQ(zB|K^9zZBnWso7d~w0&xEHJyAI{UOAL;9IOcHNO>i!PwMK$cc)h`c;U9o*?WH^0Z=EQ9|b_69H6M*QtJ1kYk%^79`4i)7f} zE#R*n{u?Y)Yhp{a*1~-W!k!4610}^;zi(UAvM#_t3-)8sX{npR7qCRJ)_)0?TlT?= zJ=ZsG;(CO$2pyHUev!+OlsHQE&h?HJu&f!4ocGA}k0l5B(NfCca))#MV>c{*I5$1G zo^jR}*w9sZ%6=m(J(I2Y_NJ7hXeoQqC7ye3dD|1N%D-~RHW(g;BjvChA3UHKWaCT6 z+Y@>R;fLX+hJC$at>59{hV67=rvbXfcoY!>lN;gb)J$I}Ie7;yYS?FaxEEY*=yT!e z2A>J9F*tt*y)&Kydf=k;@l_ZICpJEcEg4vL>M&22jX|zAX{mcX8Q<^W8SpIf?L#6d zrxtE799iSxm*KKfw_)mb&{C%0?-)!o4A#Tz2e}D0!kx}{`5g~`;Nh)so?-tnJjUQ% zJK{8*A=rn3$p<}r2yQg&zlJ-Pxek2~ZyxM&+DEPVXb*ReBWN}fbb&kl*v+6DJi_3f z@MMFtJ$#yn^WX)B{n>EC1#bTFFoMoQTtShCOFTRP&Nl4J;HbeD!qW`C#KS*r&2j5z z2qcIS8^H>jze7jz_Ga0L<@Q|B}>!l z1XZv&uJx}ralOpoOTOeYu<%i;z*(>~z2;4@bdAn0^FMqF$Vh+Xe>fMBU<#6ftP%4* z;t#dS1ob=|^t(q`_3&~d_;z@>0d6$(yWt_}Zu-oRIo=uW4u&3a1f>*^MWHgooe!5A z1zr!2hfh^{8-CExzXC5X((i>=8~T$PC=dtq1>jP+*>EU64#5-zMXG?`!pjYVSKxJI zsILI;l?;pmy6t2>!CvbJ!Z9QLczA@tHay1Vxb-T6zCY`&8a>7OyNB0%_}`L&VZRxk z)+x8;F2eU>f0dhG+9!0O!AHYOuumK`Gd!aRhF{a$YDi5i*AKx{%iRnfhWoZ8NVQ&q zOW<79V!PpyhCcICS_BR#{Q!8Pp&tvc)-2Cp%|ozG3*fb|IF#6U>D$Bq@bEw38pD1Q z+-&6cEgZbo%`bHq*GrY2_~(i+f?Y;}5pZmzo8TIFzf)gvDb*SYTf{&m7^2C;E{SKBW*Sr9hDA)WrEK#m`5iCKf`AJxU zRPz#8f>iULU^?!q9*lAu1HyivK zEHUELUs~XG1QKLA!5gpyndbGd1exZ4!xB`QH^DLrG`|fmF?b6sL8tW}z!G!Pg>0$T zRs<3hi7nOI0ZUA1Zh)IR*rH0N<94@>ovt1}2_9m^)+z8|gL}c9N4c?= z>)|tZ(`KeYUkpl&1R)Pc;faR67(QI#7SJCKj&}Kc4-fJ1MZ1aFiAI897?}K1c$%Rf z0WUE48o1uz3J+iB;jwV{O4q>&nF#8tT)|{G%ij2NU%!y~^v6w{zeqWyGOw|=^C*wW?1@2^SiKgk>>Yd=_1V^ z!qP>Wx5Ez_{4p$DruCn|5<`mP)@}r^xB{yYt~2;^c(cI=;WTQXGdu)m8r%$@Wbij| zH-o=}d$ceI0V$32S&JamN`s}(bOGtG^qJ;kVCgc=$HCGCnls>AV0}C4T*X@7AC@j~ zHv5fheP^_Kg4B12ho1?-{YNFn>L6HRyiD=zuTq@$VrV-@>YHI{@Epb6zD{xKuMeEB zf~Ec>ckCCy(q3A>?dz1wod(ecIp1(G#W1LXr9+%S%BjH;SUSWx?1T5h(ji*^z+o=7 z*sqLaa+zpE;&`fU@&tIAp`Q#7pV-@J6&d}v!E+71%ft70_&#`vVgEoQlgoBPFbjhw zgXh6@H@O8q0&g++aSt!{@Kf-1!+t5;Xz+?gCYOv!ZUL(>$TRpw53lv`YjCMyzs|#N z!rN$gpY$xV<(F_1oUJ$z-^W-yR(~=r)fx&9h4Ylbt?*)4Prr-c##>y6pYrfh4=;lc z8}=*VCAYfi<1a`8qksmu-ry5HW5u81Cdl+~4-aR-S%!T8&NKLQIOcNP>Vu%n74SQr z1ew7F@N|REffpD&0N!A5nec6{!xwt^l2*(S_GJiW(I<(G7w+Jd244x+!TOTv-HNsS zy|DDL=IL+)d^`f_^FJ%r`c-h6zM?8;7%w2Ge?@!Dqg(JnGH`}J`cD<>4EDehM4I=( znRMB)2&BO7pC?%Bd&0fYpRV*jRxEnrpWk;ykhRQpU?@D81b&s^R>hJ)>~Du9NE2JC zbtgO-)_32RDAxKv!4l+}pMxc+*(je3S0Gr4K(D#=igki*umq*%k6;N}%{$@42JeE0 zcXsuA;oRd~{tQ0m1YtR|$AJR~u66_oZi1&~*axdT$J23+$|N@QL^|f%6lXYQ(^qm7 zw+fbwhmnn3qiKdE-yHP9=X}TW1R1&3nTn^v;`j(<{}L>YZ%}M~&ovnF{1cU6(Dz)S z#({t~*v}tolLP!yg>TngnPTO5_%t|Z=+A7mVrpaz2mgO|Zg z2EPxdb#*iF9pD;57Tdb)F|Zu0*UiX~@ZN=eXN2w|RIfoMq^LCHlKv`}^Qu&<^_2&MR47L7RSylg>?Z-gb|3=&FAU$c)d2*9T({sg`QcIHd;_Yks~_KII}u<={O z&Os6X_C46z|B#2HaEVdBV)(&(-TL;2ml}LNJmo%DKLnm@@Wlsda8q!($KVQhfvy)0 zPJ_i^-9Gog^Nk8Tr&#M(sPvjw!sAtHF34E52kn22^>yuHo&_Go{E%%Q7)#q^{Mz+> z8%a(62+lV2pGr~Pa=D9>7$p6_pe=Cia~f9$&HeD?>27{A;TnVIDtqm!{e^X+_2@}% zT_3?Z>6JBlf=-K_Y)mIjJh}E8 zw`Rw9_&9ioVIPAR8usUTxD*~?*pGwj4f}~r%zvg}5(Z^Ga$6p2ehD6CaOXpW9T_@T z+3AWRcr~0&vq{%fz2t-lK%k3JoNbivb#wSFnwXdHhngC}8svSZKb z=le>a6MP8YkHOI@!%qK6u+|?7OAKf}9$sqL7c18K5?EqH^8ncCG7-oT;vfX`U)O!c z4-AMwclU^HqGFxFB=|e@eGo{EA5*OLPrzr=g@lBoU$0o}{|!qQ%f_^xYHdOwQJ>gS zt+(M}J?xJrBwlpwI?>l(UUtNlT> z4^L8hwSQji52}55veK*l^X$XsT)*&})^&dqHhtgVu$^#Yf=FIW3HYQIVCyG~JhwV$K*o7BGRZA!29bJ(}Kj2ipCb!A7xrgLM2?UdVn z{aS^<(0gUw9e8^p1n#~)QOc`opL$1v2dVwtYX7R*r%qLRwZEHvtFE4!A|orYNtizc zR~k*W)M5MJRL}BSH!NW%15HjRR(taK7@ltAv&+MK;RS|%Kb$eo?W#lYO55eHQ&Q~5 z@AP!t42H+_hwV*wdg7`GhjM3TTctSH)#Bs@!JV<6sPz8>A0~e}kQMuP;0;t@m*TytTpd{bnJY*+D#aQ`hCyX;EG!>Q)_e}! zfP-U{z6u_?Kfp|vC}57HhZie;*<=53T8cICy?`}Y>5qzMaJXHOn5VmN5h)jLz+fm9 z6^~cJ^0rAGOQY}}IIB9~oIVOa(j~=ezA?aE_=G;CD|gu63OL`=5dFVkIV7H{^(Uq{ z@5<^HjK6*=HEeR5xbjDQA*f$(Yq@gZ8CV|7?W-~v-HT`7M<I%tAR@i zQs5;yT!@^C1IpnUy}1xMfi6+}S}qmj5u%Za{P;f7>C|w1z*9E+}X3d{&`G5L1^Yq=_* zI?PafBw!6!`r)NS{egg0ryTA-kjFl@<~Tp)D+S&R%N;r$v^@uDRp7uOOf*04ZOvCTz5|wLnDnq|hUFE6QsuzFVVtn? zgAc=0`d`EHGa|YL$}cDA7-gcDpq&lZ?3Nbh*k4+p$4{BbK6RUTD{Vc61i4OvG%NcG zM!}m*B&xvI;jBv6KKEy>W26R_a|%6-$6O6>4LEmvq`W_BrhLbN!e1~EedvzsyRW6{ z{|Pu(uOva)ND4Ig*-;F$Lku&Oep?k$-oq`Re>F3mF|T}i9TmJJz`K5l^6neM%cjIY ze1jS$oyYR7x!kQ(8U6!qtPWVSxUek_JUf9VJ1)n{Rza6Kk)Y)5)gj8h0+#oH8x_9> z%X_?<_uPbovBcA%PJWZfuMcl5jZ_KF^PdJnm=QD}!10 z@WAZiKuZ&6-phB9cJlK9O8+xhUP)lIIbG8Cz7%VHc8)bhbx9?>d6zqH?1YEbGZU)x z1LklKsTUKEvY!ISr?Wi9l)+vEQFyrGs~(08j~|2OI+?d?346?)rtR=;8YBvtZq2yOcW#G z?QlZxv#Q{jp+5l2D+_%wkQf^FN20u#SELaO{|=V>ZMllyg5~a$j)52BPjiSwjrB}* z0G5lXr7FXbOZgrE1(Yj(8kUD0#w+gpZ0jx=51YgApRhR$^PeLom^pQq$A67Lp5WI_ z_#$jhy-mU;iH~hbjfO8{y=UUdRyBG7mS>wMDu+&4&OGv^yIR)4^|0=;i7Q$iZ^W%3 zt7!6EegT^{mjXUr%{P|iLKOvc;Xt+Mh1Lfk!M`&bPR(hVH>%;L3;7WZ<9P ztbUv12q(vCP!2W1a;cB`&8gsdZ?TwhJF8Au*8j3CDbCmbCMts`V7VSNUQI;Tyw}>H zmtk{e3%pN_hI7E7(q91&{dta+rT76@zKUL>D)<#Vo`YJcu(SRbe85yXI;SNn?|`#L zuzacveD!2_RgUw^1ybYt;moUZc&ay1qx27%nqj>>&w#t*Kve6uaxPGwW0k84oe$Uj z!f_z6{*OZ-A9T%D3EqU)(4;bMWxbxVjbp@$#3yjYfeUvqvCPl0meZ-i+hF;A+Hw*I zmwg0Z?;fH(2+N0DD^>oRVfha02)+JieM}78kkc}ESHtp!$dM|+I#@oeI$v=&I#<4n zx?S;wuzV3x57V`&J)REBM>pjG1kt|$ z%Uz%Ks>WZyat~A&5d4&RoEtIP^n|gBWvr zu;aNGbli`QdL4J_7%KW9ZiK==$Xcq|uH(P-Hg~AtNakMaAKcg-pB zf>?BPBvug}T~HhgjVdS%hpHl>XhmdHurgK^3RUM9>CR7Ti6>Kx-cM>D!`L3Y+Sko~ z{1sn%@1*vjsQtvBd|7t(v%VATbD#BfOYVF)*kSKO#h3=OJ8U10TJay2Ap8Rhh$OR* zx9+L1bkz^3LFfnC%LHcT|Dz*^j@|g2FFPk`w-(s5SNX26GgkXTwJVqTYSQDC#iOF3 zP*Kt7NVK>xI=Zr=aCA{|VNr3cu(&D~2^ZvtBy@1bnbnh9Gp5YIOqw8{3AMwS7tTB2 z&$Fj3^F{4}t9`-vsBmm_btD`qVkA`*6<1Wms)|C@)m2r&aBNhpGMsNts7Z~@xjLz_ zEMN1Q{Jj!wS^9$S)|8(FW09hQqRLQVsH$LeBvM&X9LAZ#P%s<}g=yS;iAtv(lUdp+ zFZynaC$o|Tmr2iQZ?}(tvmjcnlk=7;BUO8**e^A`C)T4PwGcR zMrFGl5^vRak(M}3nr*m)4J;9Hgk0mE=!uxooYaYE;gRars%la5*uc#=-cA%39I@3} zXTAeawGz^5d3JsJ#p#mNPdb^&k{%KZnu|W)W#Gi`vja|5Itn zdnlI3pv@lIQRnYtPn+$(rgp)T{)^KxMi*5@3r9r?sw=C*qr;UEd-gN_lG=i2{9}D5 z7Dfv=oeM__3WJegBvufL6xs)t`@7lemiZrPvm-}+=#SJcS?-^mmQfk0s4Oh1jzz=4 z%Brd;hZ}+POgs3YKij_ZFaG;8qQ#Z5NF-WNTuGl-gevX#{^IXh8(!tVEiE1y6)P?d zg`&mP!ODt?ifD9HK~Xds4p(!2SrHo@%2)jqDhMMDMq~7I0ew?kR9M`>jtaLMD-kQ+ zv5pF>cK+{h>u9t@+K#uQBx0Ao=s&+CX+wlnSGUm+_NX=f)9hhu{0H0Ws@g05=I`1i z`H)ft{C6GgC;sLC!?{TZgqkh>JAK4z%Kq$duAm41iSbfUzZ~oZv5U~*=7NwZcfj!-`?Usxos_hZinCVmt};i3&T|f zMWLc-Wpy-0$GLI-*Z2G%mn3bWQ2SwIfBt9R$auT8>|m%LVM^*qpvSBAaBHKNI_N^X zQ(6Z`O58ag4z(MI9mpb)L(%`OA+K{!$|L{JrmW77v|o+Hco_DfKR+e;1gIQoe*#Q; z)}mS?R9FyZrVU36S)_yHR~Rg?20C$(G>bwt`LvORto3J{qRMFJSm2CPROGj%f1=*k zt#pm zxd05>Z(e6Y>Z!*^yDqBfxjnu8i-Z33_L?WpUU($!DJpi`$(ztTLj5Pq@@Lgv{e^#R z%DG9;=k!30#0o>9f@rv?C|Degg^M`PTf2gT``L&5FV45W^{1uV!yZb{IDO?zZuh8- zTV2kUcx>FV!qDocdRwb)`@V{I&Mzn__YhVR}7eO6uV8#B`%z3YDg D9X#Nn diff --git a/artifacts/program_methods/token.bin b/artifacts/program_methods/token.bin index 746e0b207e3b0dafc855722ed6ce289b3a03496c..d840d9dc1c25d02d6c56dba9a5dc76ec50655957 100644 GIT binary patch delta 1577 zcmcbxSN6hQ*@hOz7N!>F7M3lnnUeL%=81`^21zEy7AYp?sfh-u#z{uWNyf&eDJIFO zsVOOXrsfPPDGYi(iFx^XdIVL26_cQz$<%E6L`7EJ?c!3bg?EH4EG!HyOf4)e3@i-{ zP0TC|ER3dq6k}7DHZju6$tla#!=~WwH`Z)yI=4rEXPv}?O=j93*16ckA$FPKu?y@N zQ&XId*>3WewO9m~*&0%~b%N~Hkg~vO^7KR=HudePLTpo+uo~Z}$fhBQTeqJm+bNv- zr11C{WG(?`1Ea?Tx6MF*>0`AS9F`XNLqvW09C0=doZ6?~!zKGLl1+HJLlm3BbR7w{ zm$(ejm>wX>#*R}~${4q|4*Ic+Pv_2H6WM-Ul5H9zRx=u;*`l#Z2<~SM#uHf&Ygiqo zHz>0z;8zoeN7_r4Ee)I1+YigKC1X!Pp!k@cpny9()TQu5GdP_X;0`aaydeR3JmC%0 zk0%+K;ISF(FC8U($tVx6>;`F7M3lnnUeJe7RKhL<|&3|hN-5>#>Od0mPTo5sb+=-Mh1pP zW+uscrsfPPDGYi(iFx^XdIVL26_cQz$<%E6L`7EJ?c!3bg?EHaO-wCJjf@S<%#4A^ z(#*`jc=|^%Hg#zeBfXrQvRplE3hsVm&Bms4d-QkKNi5i8ru|`^i%lG2mnj~*z>YCB z#p#&sCVyFrMR1v|A%$Bf$ZicO3!ElTPvl`!-<~SOHkAph@r{aX8j`qm`-!rh!l_RR zkB>p-5^y#!dQ5QJ4D^>iR-3_LX@NgP)Thr8XXC)BefmA1tPp0Rn0~O6O?bL}6r197 z9SOFVxb$mG50GSI$0;jijN4ZS{n*8)b7!!LY`-qaHjNRh84c2G(O4w}_p=7$iK~Y- ztPax~lvx$h_$WV1lj#YmY+~E*o3JS`*$^}gR&-%8t=-z3ZM(HO H`&4xRI&z0f diff --git a/artifacts/test_program_methods/burner.bin b/artifacts/test_program_methods/burner.bin index a47305f5a4df13f294ecb7fb60270ea9fdacfabf..c5ec313dd6cbe4473790eae6d50a07330282722b 100644 GIT binary patch delta 8842 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 diff --git a/artifacts/test_program_methods/chain_caller.bin b/artifacts/test_program_methods/chain_caller.bin index 847959fa1ca1ed9751c75aa2e54afe64e18ee271..753a3617ae55389291d722768cd8e4ab2295709a 100644 GIT binary patch delta 777 zcmZ2*QDVVGiG~)&7N!>FEi4@h^~vUmiKzxjCdL*iCg!P$2C2qLM#)LW#-=GI$*HL+ zDSD>n40=9^dHH#I1eKaIsHA`pvFc6D7^Vj(u;^?zR%EHYDQszMXl!9>W@>0=YHnz5 zU}9))HodW&)oVKMZx(S8EV2yK-%GNnO^^G{!j4t*#(ylv(^vmyS&Lh3ela+@8P3$f_rV;ZF1E4}w@NriU@% zbcTkM0Zv1KuGEk+#4l}xQ+j(oGixT74Z&1s3XM`jOLG$gBNGz?GXpbo6AMdIL-TeK MKGy9bd~7{Z04oE{kN^Mx delta 779 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 X%*;(JEKLo~+gF}s*}n25Yqt~t9#%y5 delta 220 zcmdmTLVU{!@rD-07N#xCJWuKkER4-f%~K4`3{y>$jg3>1ERE9AQq2qvj0_Bo%uJH? zOwAeed=m5W^YjQRHD^#s0U=`5o0>6f?|#Dk=!p$MqfJfqa&pRY^$d+I%nS`pO^nRV X4J=J8jLc2V+E<=r*}n25Yqt~t0$x5? diff --git a/artifacts/test_program_methods/clock_chain_caller.bin b/artifacts/test_program_methods/clock_chain_caller.bin index 10db4c77817e099c0a97de86549be1387c40672c..68911f918f3b1a859a7fb2d458a723f650111277 100644 GIT binary patch delta 9284 zcma)>3v?A#mOxLvdf_8c2p{=F)gycq2uVmtkRYI;L5+wEBD4V#2of>!5fGF}g%%Kn zfjA9@29!Sn28c9R%n}<^7~`5aAQM}(ae@LGB}n)qpw6!MZl#K~=w-8DE%yDKd(OG% zoO^G*z1N$TUT<31N;6(--A>D$({ElsZFj%GUr$=+PKcyuhNOXrXn}ytJSno=FvNfZ z0Zlrd64?VcR&2qCV-0DhMf$&jliC@wNA-93PNWJ(OnCkTxYQ@VkNZXwUFBszmnsxB?!Y?e&Mwh-74WoCBx%xcDcLr9BL3g&sK0l167m zO1uUsfXm=q<+*Ec5(+JkOps@*afENd-EaX4)mMgHftSGb6!$zQQta!W1%C~X4EHw< z$on+Bhlc5Df}FQ6{}8xW)7lgzpAPIu7<7@XO!Kz#_3I+dV0SC$-Vn(e<5_&Ls7Y1e ztl5v|0-Eb6v9*2?sqF1V%p-RDGl4#um3v7fx}PDPl)d#XWAA;2EK7W6B+!lA<=4`t)j^y zHZrITX-*o&jtfa=#ZSPEVb`!X;9WjWi_*kEUc8d`LoH1*;Z6~5D8p-OGM9#+Qs79@ z#`A%Fk5;j6^i-qa%r>N0ac%=ma_P^Auq8Wb*hRx; zHK0|DCIfT5cpD98`FI^%XN)0})%bJpOgL7#YkNaY4l~}}wsUa&Q(hh(*zI2r7x?Di-r^?tmQ1C=zrYu;e}TR&iIAtg1*X9M z1=hg+1#W9a{7y9FxKbz$j-TokpcmlflMERg?zc24p&@m$H=zZ_U0PNt5STQ|UMrZjk2{n|I-2*p>G)yw_t((mFBI zYY+=w<>L?Gqcg}m;?D_#0e5LqP8l{($cgH=JCkO!y(;-)7aWBFPM$jb``}gZP{o0+ zn)E_`R+t+FU9z#dmy?-sDON2AzF)Eiabhu)3%U&RxO55dLrQH(n4 zD7G<R8nc_JH5rQh|;I=IT~w=W zPQru7dfXvFlROma%Xmkj_3+0m;8Zln6Q|&E-+~HDmo*@2utBUcroD#o=c^b+$yYE3NMR~fz?_V3VHc&Ts4;*-!5J36a%r@)y$yLQ4i zJPybo?a%A!^#j)CCgj6PFT)$%iN}4M59h#cMc4*+g53&o3_j``KcFeG?c)+S-Z%dn z*zo2TjlDzvCT1dG;rIHIqQ~m%qqVo}-Szd~qO>%7cN2YeorFy!ZN_@mR(a8~Cr()B zz=sRMz(!9pk+|};iR^OpnU#4LC21C--9%LeZFKpmLXRmMTrAZm{ zT%TsZdwp^i!S~G2bo952tC8_Ld=6mHh3nZw~`<&Yo`St78)C{edW*>78N^ z!#H@Z*?k1f2i|cz2JQkkRtEeTzREl|Sj*u>2ffpw+x@Kb zks&jcKPSM!7eaD3^TTBTo(8+gQ3cQSc#OoQlfFJhC&A?hybXB|KJHDBU*NTjPge`v z+h3D7`dzl*rLg-h_@L-uvOY;WV<-2}muQcs4B)URGo(;C^i8-`DfTP?Oi`TsmKj=|Grd-Gb`2k+4Va^ep~W{(l>m^WJ6rDqIQU=5PY_&mi|Ndbf{4xP*0@ zsdbLPS-$?(53{bXe>7a^^;@!)h63M!DtJEwiV^5!?Ak#XKF4$LNq92s8rty@s^ldM zPzsKK3od)S5MFx4H37qgK8Ha++m4(~j7!+_b zw;J{-p|S;bZ!_@trlK8l1R8ls4GuQ8?8zDbwlzM zZ-Mv28H$eZxu-1Y`(oyyVTx z%hn|SSN9sG$xgToj#tawJ%$qOi>PhzG34K&8rxyggre+ z-&fnpKQD5iiz%sU`gtl?POMo|!CElym`{x_*yp5<^s5Rw8247vABl@7>4ke2giINz z5`b!PY^awha}HtQ92vX8&O{(NPMxDK1m5qr+8xjuajmwjzYmD-r{IqbVHE}HyFlO-!c5~bu1 zgX>hYziRv_`>}WQ(NR_^#pte;A;H{mg3f|F!3+!Y-{8(Z)(SYPeB;yMAncan`EUnc z|0i%a-~4FwjPux%M`&p4oA4T(;0=&XFKLqKw~q=i_%_6Lt-{3dj5A z_nPk%FjG|&d#9~8tZlxDcUm4$Xd2b76#6OwARD;?%i z-db?)P&|EsCUrM>i|>KU*L&Y9ufZefcfH&D6-`FLt}z90rmz1aINR&LPinnNp7{nm z07t`a8Z3fa!CjSi4#63|{z>-qkMv1V*4UQ`V_$p5BDVGJkQmC~74VQPq40CqsoTfk zb#RD&hui!+@3O7DpA=`o>6=0_T&=qfUIiakd=k!kDJ?;~IU!dRES$Hrx zB-7Nwzrgv$oCy3`EFTh zib0uh_(S;cyO9r24i7&ia`H3kB4Orm@pmG@lctnlhQsIKJr!p7m~psIrO3rhLrNm+ zSz`Ra=eNO;50cJ+XW#{cxH>8U#c=c{>WotGBwSj{3|~>5@mZ%4xRdX7gpR{n6(3$# zo8b$D!>Mov5gf1PZ{mw|-WnskAq|D3{*i{VJ&{L-GvR(J`WigoRAh(O!B?+ELN$gm zQVAz*HDst#FzP;~l(w{aIZ z#UZIId=O5D12x-;}hzUq|EQ4`rn7EpLRZBSt@9viR4fuYn=(b;2T)n zNlmDP4}5}472kC`k?!L>*dJtv;ONrGJJOMt-jGB2Nuy>)C z7}&Nw9{85)n=<%GIBTzAahHq?c#nn>1gOFwuiVAOXM>kkhv2leM6FV|e`gByy%B{S z1$uPB&Bx71TEYFh^7LW+4K@BmHx!25w7!spCZ(3A@ycW_4l4|X3#SNq4~IXDDBcBU zk|pSihoa;PTn#&a8o)Q;EMNbE9$cIW!VG2c0XVDDtAy=RxQJLknc+1Y3-V|vAqeqY zI3_m1xg8=m3a5YZJ)8h|#I0lp;OIoJuypTDKMQ1{kTX6XE}`(`DXxJ1Th`}ZO{`*S zw;L48Y3Tb~>(kiIBH7EMw@u>>|ZkjFmgC-|W@mf?d68C^6CwAa+7Kq_uGaL3FE;Ak{ zYkHeCm2exJT8}hS3hm*ISM1xO)0yO7xv!!1NFE(NUObA*$6-^TEU2Bu9=_#Ow(+n( z?doRZ_GmM#pkv_)c&|_1b7RON%?$tg;q-U6#_|E>p2(^1G|YuFI)~(d(s*GmX>~6y zR9p!UChGH4T5fpiW`$}^xLKiGxWS#&0X2UWT-eH#R*J17G#n0*m&(Gvyf;dkc^2ox z8L?jF`w-4*&aF`i$Ut&o3!VvT{%7#;mZlUc9`p=_26jt%Ih=_CNs)d_22Es7S`)R( zqF3QMhNr+zI6lr4LkVoid#4naM#D}T?t}NYGs6!q$Ag8uTXII2Qles}!?SoS9cF^l zztCairG@3O|Nl$FA{uhk0xhSK*RUJaW8s0_yt7~%T{u3pbzV23OH8TTD5i z7WfFxpzy3whfAM)Jhsi0d_F!n3jH^nw-=Ay9^s)ca<-Hagi3*}aP+5Pj-3C$(l9g9 z5EhWdDKYl~3#ynXg$G_XYfiuU^YPkB?#5A(I#32zUq=D8VDpzzpl(Py)s85z0p36< zj_kQ6Jr@v!%|lYCb&L#XxKI;=(wnL@dO}%?x{IR zDdV!^$8{f*ICf0;?#VexW5WZR;v!m+T#Vdw3L8mcUPSbxhOTGa^%5+EJ&0wWMWg)wSCK%5DZKtPnpLx=;4RFsE| zGDAkeMnQr+1T-#L1}tV}1{}i}zKsjG(E%4E$it{0$Xj7_f7N|ERea;lEMNZMcOU1T z$35rXTU~eQhOL)ws7%(9et%PnR`hKC+bpg^)*yFTcSDMN z5k>4Kk@{Ri8WeB(hW=5m;V&H*+3Mj2ctnZYf5Qopf?}5+g7ZB5#<%Y(q<>m19{)W`)kpSmk6q$dwA#ID!|bI?SZR*;Ra}sopsW8&}Xf|Zv*ZzWWO?G|4$-?_Zkwf)~OOr z77$3kGNc7*lsYybT@)9>NpRG#m*7nv4#sF=ATM3X`}`_Rir`KWPLz9NHJL+$Un%fm zXw7Ngw!w#3_f#PcQO#2{{xj5&RK*RB9>WZ&RT=PZoF?1GxtVkx-ZI3HfolAVq0MJ} zmNwYVI_sOHnH>@Df5?zBrPf5a5{_1et3x}^`4(#L+r!TLTEgwEKLZz)7*efxWGhX^(_au_OV-k`iH3D* zKth5h1IN4jZ75vq;Sd}*+K|a={4sbsoT}WlDp8Z&jE{!x7@Yp7n+Kg+YqG4A%BMNo zt%oL0(QuIoaR_uu>w7mL5FW1hN4U|WKz?ZPW#6un`kT@7F*p24w`lS@>s+O#4To33 zEE5*H1m5b|ZlA&4{7g1*9P*MG?>Iiy-tl)|mCt(cT21Q8-1Lv3q|cw`t~&u90XynD z^LD|-u%S5jM*M-?OvR7FtKn$>61c)M-`DO6`Id~Q!Mi{`>|G$MJv(HAyTCZuyTD@D zyTDKImWhTmDusf{1Zb*TfF{99CK*x~?zc2qLqqOlcftX<@o_`;DgiAC(8Vc+vj9zI!)@u0F4&Ju%SGWWYW~M?+GFmH`LYA@iCp+7vkz(dRKMj<(qz#Dcaz)& zpMs;itaC?f`W04GnK{!Q>Qc&OqF@a@Pi z4s&at9O+6i_#qJ9N1D$sdG^>?y}Qp^6^~-GsW+;=54sKSzknwc*TU8FP>ee3DE3-6 z!fR2!Reu87J)3BkwReoKa>lZcZ7lAr{H;9NL5VIN#L z#^v@wP0CQHFXJ7BmcSpffK$;NPkaV9cos~~(Bvf+d`R_=gdd^5ILx|FszQse(YIOO z5`of}k*f;PA;u+Fx{29`T9XR*RfeyEy%9PBFY-jJLneA+M;Ep3IJn4T*IM|p%Raf^ z{^VM{rO$f34f(Lt&G5MEG19|R;8HkR5mv&T;AjQe1Ml^W&%1%W?cp_Wx@Z2Uu;I=R zjcK7DN*Keo@OphtXjn^ql(x*?+*1E3Mhn`T+vrts!KEZ^!7A2PdC{sTPFU&Y=1915 ziW|Jf(A=B#4GC2=ukbVn>^pDKH)z&>wTKFz`Kw@041IFUE;se6grMBTE}ib4V*TKv8Lr?9 zcT+Us=pob7zO#p3rCHbYW7E9v9=8v|X>gJ~?EB*fpr|op@e_|kY6)sgt z^aWh_v}@09yG^cc`GN_*;E+0KNWJpgTzK8*t{HpaX|vpUiS~|O`oS3M_2I17$n96n z>-bB||Jsn_ipRmbEqC5JxS+y47rut$J)HI{O}2l-b4JZCbJ#Qg-{56%3jM?SL%B9x3WP74nlDCDhEY{dxW%Rrp3J(@xV{7rh1*BuN&~!v`M8yJ zV&pcvyq~_oZ#{4i`}8FKRsLTA%W3yAegbZSadS9 ziTARur++A1>GoSvMMH&Wz#(`$1F8||Wb7;VVfeGIgZIIc;i#d>_fsX$VSrNbKDgq% z%N6jV3odVj*IhJZbyz;Pi~K?&_`O>Vcf%EMu@X3HFd2t}H!2HP!U-r4&D^7~SK+6J zT*-+KT*>Rb?8n0X_L_luOFe&D5nJc7A*a;BuZ(0T{J>UMo_KVWCIc=RGE?z#cspF6 z_@mIddnk=BJVZu4=Q?Psy}3XirCaZhAkwruRocI4Ip- zJY3%v9}GOmI@g)aFQj+zOFi64taid(w;Kxpn5{a`{7@vAXR>8rNKUc0}d20C(~5c{t58zGnqTJsd5?Ps1HO{eOnL zd**BC+0A832GDSeXTm%<=njyjvo*=^@U3$>t6}^SR`5|c#lvsICLA^B1f1@fpFYni zV5X`l_C{Mzj5S}zJIOZ$ns3pk;h9MRIjg+2%Rc&NeV1;1jxy;t2jrBBO8YsKw|3k+ z6hAg!ldD&|i@yUmta86so`grzAN6j=Z!~!rjv7-A7kT=(z$I>fKe2 zcewR$d6&J#`$_RIc)*(h8KKqh zpN3~vy9UjgNxs7El%UvWH2DCIUNMU7vGsZ%P1|p;`AD~}(%RS^8uSgi_8a??zi~I$ z_Stjy=_g~fVWIMaTy@9UZ5s9aeOB+od@o#O%67yi5{~EKb+<>p?>L-(gzuJ3rWlk7 zhquGK-;I2La(MVrkt2Jki)=H8*Buk_A2Fo{GaUXF-g3|kA2Sa3Y!W$JWJpb9Jxkhs z#pk!e$OlPhz$5Vd`?xwP0dKe6 zaJcJnzDTo!)7AW?e333&VT1#cC?xSg8tS)19vRMrTq^nsJm6GhhePniA0k^dfiiLc z&V0*|p-RD$Ga{95xZ|tfP2ZccMD;hqldmVGl)U9M#JSV&G22z5x5F2pfpWW8rNUVW$E@n_)v8EzlS#+<&abs z_PGXuc&J{Dp9kmW1;U4>Grr@sBq{TqyN<&f;ZqZwPgs`PG&GC|M6%WykRFdhSlmfX zH~`n~#HEUFzK+X>hf84ZCaZmu(+M_$iF4&`x1b4dTx8ifzxQTAV0qnDG&_Aerz zWt<8B3D1Aq4M9O0238reNhwfjTdMoH@t4*3z1>k5j;3`}CYsb)uEv#FRIk?zh6|?%c@Kv_j3{0Y7m+3C zi-%$;)>sHT|60M{!Ns2bXR^6Cvk427#eam0o7_s+HiwId^{p9R!?B=*h8i{@o(u1Z zrSSNUksF26Kf4zv03L}}vOmJ{8E#?ebO-$`P=rFx_$hD=g{Mq$1MCf1W^YZbYHD|M zQ~Z{OzCT5NJa7bj0Jl2ny7U6g?bZ2w>Ow#?&F0*t$&sVH7S$d}8KlYK4Y-`S30!QZ!rsHB>_M{T z4zsxuu7q>1CC!vV@9@T}_JpXhi2Q5tG$fAX(c$6Q4^#O#Y$}ummq!u9wQglAD!wx9 zeuQVnn_&eV3-^}rSn|l5Fq$mV%MNWOEVFp~#B_Op*7sH24sZo2T{S$a>0L%oZ zzrtbU<%Q)D|2i5L&`_!tXf>6*hNHWB1U#_2dlsyOn>?G$KaCTS{v~Su5I8Q~4FBE{ zRtO$Q2%~9v8E&FKoW{=i-?f|{NP?!!R|4co4x1iWq+C1=F3gH*Odq_Yry0I`I}4nH z`*saTy|TFbuZcMvtrKN%Tk1%ml3xusq;OZq*&~~_ND;~Qp!h@dSY^i4xDg~aOIIseblFg?-` z7BGxcV$K;BRD0r2@WAtC^Xd2WJo0)ecjK5y9e5u;bqNL3f-Rm$fvW@3DK?_OtMF<{ zaU|xvyXLbAZwyGKc57rn?2DQhl-^vW;hS&;E~{1+F1O21=)rg^J-0_rR!(U!J2*CL zOphL=qkCqI8#gvPn4Xay%*f6h(=97Ux)qd6oHVi9zZ{w)sin@}|95;=w%8qh&<}r_ z5X|Y3ksZv<$jQ#h&du(bo)en#l|L!eZIAz>#DD1PX}9>;e@Oc$lZ;SSgTL?3%nUVN z@ZT2N*x;{d{f}ZLwC93;Yv}P${INIwOz)^)-WLo8L*}Rcw)UH!_-FclR>T|U^p5R% zb}K7;^6_pzBP6oK^1c4ppPe06pz)ve-kAA+$+q+M`D?Gv`6fpZt{B<(#mQv4xq1iJ`HnrJ;eDsfmHHvHA8_ zn^{;GvB^wl+{&VdOF~`R&_FLIrz}?wo0%>id= z*o>V1YY&S*R*9IsERV2C1ny($z$!7{fW>CI#(oxYtg;VJu|#5(*tef04XeaG3l@iI zimbfTt==#TO5*n0x&thhSPcM1fx48TDK4GU6+W{_PUpDIA~ZeiAj?KPM&L5R92Cpy zQpN=2E%D1s8=Bx&a9|ya%y#d?EJvAa2qtY)s8S49v_;EG$h8&D(vB Mv26D_#@ZtV0B0oQ-~a#s delta 859 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 delta 9868 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 C%&po0 diff --git a/artifacts/test_program_methods/flash_swap_initiator.bin b/artifacts/test_program_methods/flash_swap_initiator.bin index 4d19759dddc27560305ebaa5a303d845fcba26e9..3fd8f0dd5a573d23f278ddca1c5098eca8e76e30 100644 GIT binary patch delta 1109 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 Ij?HWS1rVgYcmMzZ delta 9922 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 delta 8462 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 diff --git a/artifacts/test_program_methods/malicious_self_program_id.bin b/artifacts/test_program_methods/malicious_self_program_id.bin index 44bb34141e3581eb18d522112cb35194532400f7..0508f3fd7d67d11ed38a7ad3e366fd9adb021553 100644 GIT binary patch delta 8460 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 delta 8461 zcma)=dw3PqwZPZRoJf#>NenLyGUt$Llz>Ud;~=4;fZ#Pq#PBpikf6vzaupRVIH2hT zyjVekCkhCbT%ZaCZR${j3;Lm@0!lIX#R?awJOTwlMT`jL{^rb{%ttR}$p82_cyQUqF zZK>DS=d?eGe3mI4G*`dj--?{;>d)W*JJ!3`*XO@t%l7GK!aB_tX?DzV)ciBNy_;`F zvc2vLR2rO|DW!DmniPFMUM9O~(Fm$M=!JV7bA44!+N zDK$#It-Yl|Kd4*J;5W0EDf^Y&njcWKw<$?VZqj*?L>v@?9S8mGN0AlxMWn0Z^d^x7 zuxHq4ID3fCmoDJoB2%)}d~aRE4Cc>tIaNAd5-F!4q!d^b>$YECf8RRR&F+IkRC90E z?bFwk48<#0r=p)J+jZAr&;L`T*ZmP`q4fF?Zo0#ifl7XOtlI(I(mL7e4(L<0@OPNm zZ=flYm0Gv4+#c8q=Y4kXgZk8v^wn>3f5tUeE-)7k&i5T0^l+G1Y*rxF z@`T=3dnq>Pg#Ovs0WCDC8Xgg1AinAI;1^*mi}Ox68aTwQ6Y+H*>kWqM%KhXKgZIFm zB?s-9C-rL*tnZu|$C@%N?gCA2)39iq8IN9P&wmY<2Y3%$346(;6EZUbJQ1D?JHhCT zuj99|!j!d&Z!k33PJgk>mQ0`_8G$uQU@yFJgr9cXl126ecm!NA-jqruzZ$NGGjw;s ziUdvijP!$UHM|1$u7i_s(<7!F!ERmep-Hc+*!O_Ib8sUI4r2l5xP1VZ(BDCE$lh{R zzg4#mx7DO!It#1(Ue->NrPHvSyy{r~SZ7VnR+5iY{~H;2W(w(Baf8F7B672ux8pA~ znGPo_9tGD0cnLhgXG=!jh$|n6NQxS;1g?X<2@b%!2K(IkCh`Uf_CelJa4Fmud1osf zL;nvh35+*0HEGR)BUS%c_-nX4&W0{4W2e8@w^{?zG%20UylMxIBA4`>f6DsatVtT& zM;X2v4(78)I608tZoY*LKo9Reng}-p^m-efUe;`vF8ABre$cPct@-Ji?3m{rXH9;D z*95q{6Q>jQ^4UT-8BW9?$06I`#(;d+8`z-$SHq>SH~u5I1DxoNkG=n+emJE&+aC1# z_}IE8eT?>dyY)}{4D}O?PZC^dd=F~4b@*UrJve^p-jIPHkD~c4vC0yo=^M3(ZD=&;D!MI1>VK@ zbT$62TurhTo6@A_UkwNLP?wYT?yHUEDLJ7cqIA4}TJC}yU@s_t?oG~zz0=j(UY2ew z*Q^wBcG7x3?>qpf!)Z!^`S7%d{b1b<&-jCX*JSq8r1%|ErYnDrgJ&Us3*(*Ou7%IS zo*qYGd8C;ilACTLuLJ}pz}w&TH>3_O^9RUzxD)dI)B=UQGqNsk8C2c3(DrsNQ7C0_D&cob(>{EB!x#({11Wr+%qPHe8_&(J^>eK%IJfO4zXU zoVI<~nBAuAQhu8U*X;7m*ax4T*lf47vpZ!N2NSF}i&^hes$VtkmJ-ZwFy)luiSWS5 z{w8O`*R+gImM6jop4E@zg=I}4fKzIXZih>tfZj{ zMZIg~D7*oIwaQ_y_rq`|@Em*qZiKx6Hv1EgUt@p@m?3cG5udBzs-r%?2iF`kr8Yi4 zwNC%LoGQ@IX7z9-T&^Y@HvneAj>?m(;CZlja!#Q6%2~DW>-TfxHxlZ~6H|t2l1Kjx#lM9&z{QIH8XJ^PYW&S$B6zCrplx>R z0%MF}eRMAen|9BUiO5YZ_aZ`2aI z|6U5?hej6KuKL?Npvk#_A%o$}O5Y(1;5GDn8R@U~>0ZWiW9&m^=o64z3GeuU??*N7 zA-MLuDOKvIJo+H>21?Jj;Znx8RrZ{M&47dQ?9;a!Ta$8b9HhySpZ(Hs(?}c(XR38l zS*PTZ&%zHen%g#c%2T_U=K())rR(Mv=Pf!V*=(|3L;TO$|3^uxlAt z8c<^o`<&61e#4#TZroc=zZ(|`l81YzCx>OAn(qP!p(_8K+)XXG1Ku9!pJ4A^YfMeB z%4Sm0E%e9rf1do^AtI(ScoF=`;z;~4z{#uo;Okz+5c(Z%{{r_{jPEDKBjL@jL}Y|o zcL|)fC?b0lAApa*$6R?`I@?>`HMZ(^l>H|Lb%_Y!98WOk;d3>A|`mN+e z!pz|$^5KlG?$?OJli0m|_x2aRuR~zq$Fs;RZPEa9GOY@OZyOdQxeMg}BvOTiCGfwHzJKn#?s0egAG zNY9E$hT>>@?iyT}srWoxxhE`DDn@#Dpf>w7+#D0d9SL0K!x8cM&%+(qB4@r7UYx(V zj$~o8#bUVvJ+7xNel;9_6?ZgV1XusgeP42T2Yivs%~MFyDH7f?WwSaJL*W(3dwYKF z2EJ30-7MgYU(=a=Cyiz+g<6@6U(6P>eq6&zGz9l}C!F>n*S?D4P#6y_;Z0G=KMgk! zWS+;4!WVzVhnou8|0X|WeMZnJ5ABC1?{S}f9EH-l@S!o^6st~6xQ>RpxJz7xzJZqp zI46Sz{^))gI}_~x1s)3=+fzJ;oTZ;b5jUv1t0pybO-LwBxS8PiGlSxFaQ*R!#csIA z<}3{pD1@AU$sD5};0E^0>z|!P9ZFDAU&R;L0+*1OydX>G?V*VvcAhdE1;@iH*aGy9 z^Ky7ZntMMx{d2OpuV1m;irQ(|Lc_(*exk|hfdC7Xp^(%6B)oz|G+A*29E_Q09v&kT zdRw#*&OYrHn$Gw?!$RTFq{jaY*II#0mzU4JP~wkJ0@d)YS~GqXITQQ@&)^hPs{T<0 zoQnT(ztx=nP$4cSHD{>)4RA2E&n?2`pY!d7OC9-}Zr8+mU@0y~u@vfrr)gM2CiGld zIf!%G)z6Hp;LM+R-cc@nX9%ShTjp)i5x6+O?e1rb0z9XbWOdGzSxP|}M*a_Gy7FOH zo&tS1QG3CRE9hvvAI=L*ICTW)_>B9C>hx!g)TB?Qdxtta6E5l)k?l(1s?i+lEIg?A z@M!XX9}>-Eb!?W6QRh-=co_~J%dzE*3~?;g1dHKWSBIT+5O?WLcv~`wNsaG0mYBIJ z+-&iaa8at0cwG7SEgDK%P=u)o`ai^kiB#Q6;1hUYOLD#90pmCo@HEA{;bIiX^ZF|Y z!d3*WGUx@kskN`b+pw7)7E{Svt;XX4T$)6Kb9-%sH>9}VFOCc6J;L|PfUs;}lO66n z0r^~*0S;F=%!Ea1!d>tTxI%H-qdXwMUQn08(N4{&+>%u^Gz5YyaU$O<2-K(vhQUqn zA;t6HD0}D~OPR#@8{9J1Q78va>>QT4Ni2^^OKnquaWpFjA*xU2m z=Lo_U5m}&I+-f$Tf~4N4Qt&Of5|6D_2L85+Cxq@1Cz08!zc6OEv9hB*3iAsqatd697kJ97v;Ff^X3eKI1kE=!)yv5#%hfZqG&eCY cGBGhQGcYqZv9L5XG;fbM&9Xh>G;4$u0Geb)%m4rY delta 225 zcmdmRT71K4@rD-07N#xC9#88HER4-f%~K4`3{y>$jg3>1ERE9AQq2qvj0_Bo%uJH? zOwAeed=m5W^YjQRHD^#s0U=`5o0>697kJ97v;Ff^X3eKI1kE=!)yv5#%hfY9wlFg^ cG&M0YH#e{}u`n_>HEWMJ&9Xh>G;4$u0A-XvE&u=k diff --git a/artifacts/test_program_methods/missing_output.bin b/artifacts/test_program_methods/missing_output.bin index 95d0c893438ed0ec0e98842f55c79797831ffb74..4f6d61aa35cf54664239ea34f54bef0716be670f 100644 GIT binary patch delta 225 zcmca`QvAY6@rD-07N#xCSx@Sd%@Y$-4U$ZZEmBO(QxgqRjgyR$lZ=f`Q%sUmQ&Up( zOwAeed=m5W^YjQRHD^#s0U=`5o0>69H+sUXvt9Hl^S3891kE=!)yv5#%hfZqG&eCY cGBGhQGcYqZv9L5XG;eo5#j@S~6lER4-f%~K4`3{y>$jg3>1ERE9AQq2qvj0_Bo%uJH? zOwAeed=m5W^YjQRHD^#s0U=`5o0>69H+sUXvt9Hl^S3891kE=!)yv5#%hfY9wlFg^ cG&M0YH#e{}u`n_>HEVZ2#j@S~6l6f|ND|z@}3PrqfJfqa&pRY^$ab|O$>}oObpBn X%*;(JEKLo~+k;N9Y!5oY8YKk)PUl1( delta 220 zcmZ2;RD8`*@rD-07N#xCbua4;ER4-f%~K4`3{y>$jg3>1ERE9AQq2qvj0_Bo%uJH? zOwAeed=m5W^YjQRHD^#s0U=`5o0>6f|ND|z@}3PrqfJfqa&pRY^$d+I%nS`pO^nRV X4J=J8jLc2V+JjE8Y!5oY8YKk)GVeWr diff --git a/artifacts/test_program_methods/nonce_changer.bin b/artifacts/test_program_methods/nonce_changer.bin index dcbe2971df82bcb5ba76a8c45d4fefc022485bb6..b1c5b542aa81f6bbb850d675ecb0066e4fbba2d2 100644 GIT binary patch delta 225 zcmexxR{XMX* cWMX1qW?*J+Vqs}&Xx^@LhGo0b8P;=B0IT>%VE_OC delta 225 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 diff --git a/artifacts/test_program_methods/pinata_cooldown.bin b/artifacts/test_program_methods/pinata_cooldown.bin index 310cfa5c6febf0f2fd0968851e504997afd144cb..c735b1df4dde65bfcd97e2be622557ddb7cdf34f 100644 GIT binary patch delta 227 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 OG%e0po)`7%g8v0;!1+D^ delta 9138 zcma)=YjhOFwt#o{WFTO8gtv;)GdzrfFq1cu1K}wOXuv3_APEKzA_8i_fYAm8#kD}9 z2S~&SdJZ1(k|VkV8wCt<5%J0rRNzK=MIeY6US5!=a=-4WPB(YC*12oV{P=3`s@k>p zu3c6A{?^vZx3(^6s};X;LwjxWtlo2aYioMz&3BF2SS2#=8bdmWh^}k$*Y8D+!iM5T zdqlb<7}7%VSU4MY^?U6VS(p=+rpPs2m(_4Z6GL`1iH-M1we`_1{ZrlCvQMPAogq`y zKyU9C$!%}QVa0n7h+OVy$O^^%szq|(3dKu*6e%C-P4x6Zk@Y@a4;L7Qv{m}yLn1Rh zHsxg+%4ry{#Vo7O%yD5u%2bDE;c|Gb;{Sqo4D%*Ts1e!5gl&*JD}~R%8H&%shkXX6 z9}$^S*T1hW3x2{P6!45Qzz%o;e2wD7qqxo|9|m`3fPPB;H*3xJdM{0Tzx3=6`l@L4 zF_EOGA#K!pl73~rh-ZJR|G^=-p8dm1ckR(nhQ32>HqG&B)H2kvlf8hyXVvUw7W3jS zbWbxRNe%x-Es2tD$UMa<$8p!ao;#+(n_<@-7Q7mE6XOD$eV@lYPKdP0G-PWa7LNUJ zbq_I+mHk`PlIzJCHI6S4z}Z5bRIts4@+mopTKQkcVU;|wLX6Rl1LHb zMbvl$f5#DUQjD94MZ;bi;*GqMG->>u+bLDeidz2Msi2v#$Jc zMdUw6grz>?+IHr_g#!#3sPxa4jygAJJ&GefH2!9%=_{iHRu zM!yngCM9Z8e7Cp3SHN*OhE%J5sm(M=dcez{Y4B{=b;rl>Vf5E3Giu@G$X)k!YpzN5 zgP#5qaE`~Otf66{Z@}|##8Z$SEi@?~W=K}Om>-^it4J&Z18qMvU_-3F--~mydBPSxVbL7uhS&=cvw=MhB)bJ&G|*&uA7w&G}-)sw^L5Qr(j#p zE}iWfYSQ6Bk8|J=@LDCWhL4W)Hf)b;G-*1@^Tac-JY-0f(q9Ev!PPM~Q8;5K6n$zⅇ7f4M!`>F}-bj<80>dc{w)_ovCTuwK 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 delta 960 zcmX@{QR2i$iG~)&7N!>FEi9?>^#&Hk=BDN;hGvGTrpd;}DM^+_X=$luh6Y9khDK&4 z$$F;d40=9^dHH#I1eKaIsHA`pvFc6D7`8u=XVJSZY+!0^Y;I&^Zfa&`VQgk>U}HjQ_*zDe(|DS~$yKf44Sv92bSUG(m2kXS?iHxi< zSPj0w$STK-O=dbHD{D1YiN+1ABGX?#W6_*`hLtrEs}jR!7#m0f;APZMt%oY ziRlm2S%tQTu(MXNU{wQ*2Ysv(prF8KD>%XQ@UU`X)eV+Ck4qLD%=qFStiTMPpLtmg vuvxr)3ok1xs|~@-V+ym~*uu=v(A31p+}yy@!~&Ej+P@01ZvQI8c3Bkw*puxF diff --git a/artifacts/test_program_methods/validity_window.bin b/artifacts/test_program_methods/validity_window.bin index d87ea9e6dd104828afa01e438ccf77c78ea3a3c2..a2ba8b5d5046e8dc397a91330d7ab862af2fbee9 100644 GIT binary patch delta 9976 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 C-LuF5 delta 10002 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 ZmVLzW%zCYEjz^IoJgTM5^VqQLe*vL&th@jK diff --git a/artifacts/test_program_methods/validity_window_chain_caller.bin b/artifacts/test_program_methods/validity_window_chain_caller.bin index d4584e99919b959aa1caa1710401dd058561fcf6..c02c355fcbebe2c39bc75737538a2e302c49178d 100644 GIT binary patch delta 818 zcmbQ!A~~l;vY~~sg{g&k3roC4eX@CCVyZ!siLphBiFs3ca? zC2+|KPoEIVsxV!elhpy6lI?k%tQOcE^Ph`VeEJ10)+rKLe8LbPN4iIgAo$YGDi49df|T-?dc9etUS{VlvpjNJMgnE!(*8V z0n5~-Epe;ZUN68}z++7?rNNwQX>MX*WMX1qW?*J+Vqs}&Xue%bmeq^NhM)C&964%n1z&*NmZ!0wp;T&&{LFL1F=k-*{;hWIEyv+0aNtdi4v zI9a8qZ{TK)!fL)O533Xt&R|rRF~=Q@kbssk!WYsD|FdXMcMxLbnQoxOYB}A3pLH1? z%S;GZrY>!XTgCQz0oDQ@Yl0~a=3HRHF*GzaF)}wdur#qSGB-8bt|iOr#biU!1XEL} SD=>{{-yqMreS, - /// Public keys of private accounts. - pub private_account_keys: Vec<(NullifierPublicKey, SharedSecretKey)>, + /// Public keys and identifiers of private accounts. + pub private_account_keys: Vec<(NullifierPublicKey, Identifier, SharedSecretKey)>, /// Nullifier secret keys for authorized private accounts. pub private_account_nsks: Vec, /// Membership proofs for private accounts. Can be [`None`] for uninitialized accounts. @@ -56,7 +56,7 @@ mod tests { use super::*; use crate::{ - Commitment, Nullifier, NullifierPublicKey, + Commitment, Nullifier, account::{Account, AccountId, AccountWithMetadata, Nonce}, }; @@ -93,12 +93,12 @@ mod tests { }], ciphertexts: vec![Ciphertext(vec![255, 255, 1, 1, 2, 2])], new_commitments: vec![Commitment::new( - &NullifierPublicKey::from(&[1; 32]), + &AccountId::new([1; 32]), &Account::default(), )], new_nullifiers: vec![( Nullifier::for_account_update( - &Commitment::new(&NullifierPublicKey::from(&[2; 32]), &Account::default()), + &Commitment::new(&AccountId::new([2; 32]), &Account::default()), &[1; 32], ), [0xab; 32], diff --git a/nssa/core/src/commitment.rs b/nssa/core/src/commitment.rs index 24d5de87..556b9128 100644 --- a/nssa/core/src/commitment.rs +++ b/nssa/core/src/commitment.rs @@ -2,7 +2,7 @@ use borsh::{BorshDeserialize, BorshSerialize}; use risc0_zkvm::sha::{Impl, Sha256 as _}; use serde::{Deserialize, Serialize}; -use crate::{NullifierPublicKey, account::Account}; +use crate::account::{Account, AccountId}; /// A commitment to all zero data. /// ```python @@ -49,16 +49,16 @@ impl std::fmt::Debug for Commitment { } impl Commitment { - /// Generates the commitment to a private account owned by user for npk: - /// SHA256( `Comm_DS` || npk || `program_owner` || balance || nonce || SHA256(data)). + /// Generates the commitment to a private account owned by user for account_id: + /// SHA256( `Comm_DS` || account_id || `program_owner` || balance || nonce || SHA256(data)). #[must_use] - pub fn new(npk: &NullifierPublicKey, account: &Account) -> Self { + pub fn new(account_id: &AccountId, account: &Account) -> Self { const COMMITMENT_PREFIX: &[u8; 32] = b"/LEE/v0.3/Commitment/\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; let mut bytes = Vec::new(); bytes.extend_from_slice(COMMITMENT_PREFIX); - bytes.extend_from_slice(&npk.to_byte_array()); + bytes.extend_from_slice(account_id.value()); let account_bytes_with_hashed_data = { let mut this = Vec::new(); for word in &account.program_owner { @@ -115,14 +115,14 @@ mod tests { use risc0_zkvm::sha::{Impl, Sha256 as _}; use crate::{ - Commitment, DUMMY_COMMITMENT, DUMMY_COMMITMENT_HASH, NullifierPublicKey, account::Account, + Commitment, DUMMY_COMMITMENT, DUMMY_COMMITMENT_HASH, account::{Account, AccountId}, }; #[test] fn nothing_up_my_sleeve_dummy_commitment() { let default_account = Account::default(); - let npk_null = NullifierPublicKey([0; 32]); - let expected_dummy_commitment = Commitment::new(&npk_null, &default_account); + let account_id_null = AccountId::new([0; 32]); + let expected_dummy_commitment = Commitment::new(&account_id_null, &default_account); assert_eq!(DUMMY_COMMITMENT, expected_dummy_commitment); } diff --git a/nssa/core/src/lib.rs b/nssa/core/src/lib.rs index a4fcdee1..478d475c 100644 --- a/nssa/core/src/lib.rs +++ b/nssa/core/src/lib.rs @@ -9,7 +9,7 @@ pub use commitment::{ compute_digest_for_path, }; pub use encryption::{EncryptionScheme, SharedSecretKey}; -pub use nullifier::{Nullifier, NullifierPublicKey, NullifierSecretKey}; +pub use nullifier::{Identifier, Nullifier, NullifierPublicKey, NullifierSecretKey}; pub mod account; mod circuit_io; diff --git a/nssa/core/src/nullifier.rs b/nssa/core/src/nullifier.rs index 802c2079..cfe1dcc3 100644 --- a/nssa/core/src/nullifier.rs +++ b/nssa/core/src/nullifier.rs @@ -91,10 +91,10 @@ impl Nullifier { /// Computes a nullifier for an account initialization. #[must_use] - pub fn for_account_initialization(npk: &NullifierPublicKey) -> Self { + pub fn for_account_initialization(account_id: &AccountId) -> Self { const INIT_PREFIX: &[u8; 32] = b"/LEE/v0.3/Nullifier/Initialize/\x00"; let mut bytes = INIT_PREFIX.to_vec(); - bytes.extend_from_slice(&npk.to_byte_array()); + bytes.extend_from_slice(account_id.value()); Self(Impl::hash_bytes(&bytes).as_bytes().try_into().unwrap()) } } @@ -117,7 +117,7 @@ mod tests { #[test] fn constructor_for_account_initialization() { - let npk = NullifierPublicKey([ + let account_id = AccountId::new([ 112, 188, 193, 129, 150, 55, 228, 67, 88, 168, 29, 151, 5, 92, 23, 190, 17, 162, 164, 255, 29, 105, 42, 186, 43, 11, 157, 168, 132, 225, 17, 163, ]); @@ -125,7 +125,7 @@ mod tests { 149, 59, 95, 181, 2, 194, 20, 143, 72, 233, 104, 243, 59, 70, 67, 243, 110, 77, 109, 132, 139, 111, 51, 125, 128, 92, 107, 46, 252, 4, 20, 149, ]); - let nullifier = Nullifier::for_account_initialization(&npk); + let nullifier = Nullifier::for_account_initialization(&account_id); assert_eq!(nullifier, expected_nullifier); } diff --git a/nssa/src/privacy_preserving_transaction/circuit.rs b/nssa/src/privacy_preserving_transaction/circuit.rs index 6506e9fe..fc6bd521 100644 --- a/nssa/src/privacy_preserving_transaction/circuit.rs +++ b/nssa/src/privacy_preserving_transaction/circuit.rs @@ -2,8 +2,8 @@ use std::collections::{HashMap, VecDeque}; use borsh::{BorshDeserialize, BorshSerialize}; use nssa_core::{ - MembershipProof, NullifierPublicKey, NullifierSecretKey, PrivacyPreservingCircuitInput, - PrivacyPreservingCircuitOutput, SharedSecretKey, + Identifier, MembershipProof, NullifierPublicKey, NullifierSecretKey, + PrivacyPreservingCircuitInput, PrivacyPreservingCircuitOutput, SharedSecretKey, account::AccountWithMetadata, program::{ChainedCall, InstructionData, ProgramId, ProgramOutput}, }; @@ -68,7 +68,7 @@ pub fn execute_and_prove( pre_states: Vec, instruction_data: InstructionData, visibility_mask: Vec, - private_account_keys: Vec<(NullifierPublicKey, SharedSecretKey)>, + private_account_keys: Vec<(NullifierPublicKey, Identifier, SharedSecretKey)>, private_account_nsks: Vec, private_account_membership_proofs: Vec>, program_with_dependencies: &ProgramWithDependencies, @@ -242,7 +242,7 @@ mod tests { vec![sender, recipient], Program::serialize_instruction(balance_to_move).unwrap(), vec![0, 2], - vec![(recipient_keys.npk(), shared_secret)], + vec![(recipient_keys.npk(), 0, shared_secret)], vec![], vec![None], &Program::authenticated_transfer_program().into(), @@ -286,7 +286,8 @@ mod tests { true, AccountId::from((&sender_keys.npk(), 0)), ); - let commitment_sender = Commitment::new(&sender_keys.npk(), &sender_pre.account); + let sender_account_id = AccountId::from((&sender_keys.npk(), 0)); + let commitment_sender = Commitment::new(&sender_account_id, &sender_pre.account); let recipient = AccountWithMetadata::new( Account::default(), @@ -298,13 +299,14 @@ mod tests { let mut commitment_set = CommitmentSet::with_capacity(2); commitment_set.extend(std::slice::from_ref(&commitment_sender)); + let recipient_account_id = AccountId::from((&recipient_keys.npk(), 0)); let expected_new_nullifiers = vec![ ( Nullifier::for_account_update(&commitment_sender, &sender_keys.nsk), commitment_set.digest(), ), ( - Nullifier::for_account_initialization(&recipient_keys.npk()), + Nullifier::for_account_initialization(&recipient_account_id), DUMMY_COMMITMENT_HASH, ), ]; @@ -324,8 +326,8 @@ mod tests { ..Default::default() }; let expected_new_commitments = vec![ - Commitment::new(&sender_keys.npk(), &expected_private_account_1), - Commitment::new(&recipient_keys.npk(), &expected_private_account_2), + Commitment::new(&sender_account_id, &expected_private_account_1), + Commitment::new(&recipient_account_id, &expected_private_account_2), ]; let esk_1 = [3; 32]; @@ -339,8 +341,8 @@ mod tests { Program::serialize_instruction(balance_to_move).unwrap(), vec![1, 2], vec![ - (sender_keys.npk(), shared_secret_1), - (recipient_keys.npk(), shared_secret_2), + (sender_keys.npk(), 0, shared_secret_1), + (recipient_keys.npk(), 0, shared_secret_2), ], vec![sender_keys.nsk], vec![commitment_set.get_proof_for(&commitment_sender), None], @@ -407,7 +409,7 @@ mod tests { vec![pre], instruction, vec![2], - vec![(account_keys.npk(), shared_secret)], + vec![(account_keys.npk(), 0, shared_secret)], vec![], vec![None], &program_with_deps, diff --git a/nssa/src/privacy_preserving_transaction/message.rs b/nssa/src/privacy_preserving_transaction/message.rs index 85f4a202..a46ddf07 100644 --- a/nssa/src/privacy_preserving_transaction/message.rs +++ b/nssa/src/privacy_preserving_transaction/message.rs @@ -154,9 +154,11 @@ pub mod tests { let encrypted_private_post_states = Vec::new(); - let new_commitments = vec![Commitment::new(&npk2, &account2)]; + let account_id2 = nssa_core::account::AccountId::from((&npk2, 0)); + let new_commitments = vec![Commitment::new(&account_id2, &account2)]; - let old_commitment = Commitment::new(&npk1, &account1); + let account_id1 = nssa_core::account::AccountId::from((&npk1, 0)); + let old_commitment = Commitment::new(&account_id1, &account1); let new_nullifiers = vec![( Nullifier::for_account_update(&old_commitment, &nsk1), [0; 32], @@ -179,7 +181,8 @@ pub mod tests { let npk = NullifierPublicKey::from(&[1; 32]); let vpk = ViewingPublicKey::from_scalar([2; 32]); let account = Account::default(); - let commitment = Commitment::new(&npk, &account); + let account_id = nssa_core::account::AccountId::from((&npk, 0)); + let commitment = Commitment::new(&account_id, &account); let esk = [3; 32]; let shared_secret = SharedSecretKey::new(&esk, &vpk); let epk = EphemeralPublicKey::from_scalar(esk); diff --git a/nssa/src/state.rs b/nssa/src/state.rs index 5c15e192..d26b93e3 100644 --- a/nssa/src/state.rs +++ b/nssa/src/state.rs @@ -456,7 +456,8 @@ pub mod tests { #[must_use] pub fn with_private_account(mut self, keys: &TestPrivateKeys, account: &Account) -> Self { - let commitment = Commitment::new(&keys.npk(), account); + let account_id = AccountId::from((&keys.npk(), 0)); + let commitment = Commitment::new(&account_id, account); self.private_state.0.extend(&[commitment]); self } @@ -614,13 +615,13 @@ pub mod tests { ..Account::default() }; - let npk1 = keys1.npk(); - let npk2 = keys2.npk(); + let account_id1 = AccountId::from((&keys1.npk(), 0)); + let account_id2 = AccountId::from((&keys2.npk(), 0)); - let init_commitment1 = Commitment::new(&npk1, &account); - let init_commitment2 = Commitment::new(&npk2, &account); - let init_nullifier1 = Nullifier::for_account_initialization(&npk1); - let init_nullifier2 = Nullifier::for_account_initialization(&npk2); + let init_commitment1 = Commitment::new(&account_id1, &account); + let init_commitment2 = Commitment::new(&account_id2, &account); + let init_nullifier1 = Nullifier::for_account_initialization(&account_id1); + let init_nullifier2 = Nullifier::for_account_initialization(&account_id2); let initial_private_accounts = vec![ (init_commitment1, init_nullifier1), @@ -1222,7 +1223,7 @@ pub mod tests { vec![sender, recipient], Program::serialize_instruction(balance_to_move).unwrap(), vec![0, 2], - vec![(recipient_keys.npk(), shared_secret)], + vec![(recipient_keys.npk(), 0, shared_secret)], vec![], vec![None], &Program::authenticated_transfer_program().into(), @@ -1249,7 +1250,8 @@ pub mod tests { state: &V03State, ) -> PrivacyPreservingTransaction { let program = Program::authenticated_transfer_program(); - let sender_commitment = Commitment::new(&sender_keys.npk(), sender_private_account); + let sender_account_id = AccountId::from((&sender_keys.npk(), 0)); + let sender_commitment = Commitment::new(&sender_account_id, sender_private_account); let sender_pre = AccountWithMetadata::new(sender_private_account.clone(), true, (&sender_keys.npk(), 0)); let recipient_pre = @@ -1268,8 +1270,8 @@ pub mod tests { Program::serialize_instruction(balance_to_move).unwrap(), vec![1, 2], vec![ - (sender_keys.npk(), shared_secret_1), - (recipient_keys.npk(), shared_secret_2), + (sender_keys.npk(), 0, shared_secret_1), + (recipient_keys.npk(), 0, shared_secret_2), ], vec![sender_keys.nsk], vec![state.get_proof_for_commitment(&sender_commitment), None], @@ -1301,7 +1303,8 @@ pub mod tests { state: &V03State, ) -> PrivacyPreservingTransaction { let program = Program::authenticated_transfer_program(); - let sender_commitment = Commitment::new(&sender_keys.npk(), sender_private_account); + let sender_account_id = AccountId::from((&sender_keys.npk(), 0)); + let sender_commitment = Commitment::new(&sender_account_id, sender_private_account); let sender_pre = AccountWithMetadata::new(sender_private_account.clone(), true, (&sender_keys.npk(), 0)); let recipient_pre = AccountWithMetadata::new( @@ -1318,7 +1321,7 @@ pub mod tests { vec![sender_pre, recipient_pre], Program::serialize_instruction(balance_to_move).unwrap(), vec![1, 0], - vec![(sender_keys.npk(), shared_secret)], + vec![(sender_keys.npk(), 0, shared_secret)], vec![sender_keys.nsk], vec![state.get_proof_for_commitment(&sender_commitment)], &program.into(), @@ -1405,8 +1408,10 @@ pub mod tests { &state, ); + let sender_account_id = AccountId::from((&sender_keys.npk(), 0)); + let recipient_account_id = AccountId::from((&recipient_keys.npk(), 0)); let expected_new_commitment_1 = Commitment::new( - &sender_keys.npk(), + &sender_account_id, &Account { program_owner: Program::authenticated_transfer_program().id(), nonce: sender_nonce.private_account_nonce_increment(&sender_keys.nsk), @@ -1415,12 +1420,12 @@ pub mod tests { }, ); - let sender_pre_commitment = Commitment::new(&sender_keys.npk(), &sender_private_account); + let sender_pre_commitment = Commitment::new(&sender_account_id, &sender_private_account); let expected_new_nullifier = Nullifier::for_account_update(&sender_pre_commitment, &sender_keys.nsk); let expected_new_commitment_2 = Commitment::new( - &recipient_keys.npk(), + &recipient_account_id, &Account { program_owner: Program::authenticated_transfer_program().id(), nonce: Nonce::private_account_nonce_init(&recipient_keys.npk()), @@ -1482,8 +1487,9 @@ pub mod tests { &state, ); + let sender_account_id = AccountId::from((&sender_keys.npk(), 0)); let expected_new_commitment = Commitment::new( - &sender_keys.npk(), + &sender_account_id, &Account { program_owner: Program::authenticated_transfer_program().id(), nonce: sender_nonce.private_account_nonce_increment(&sender_keys.nsk), @@ -1492,7 +1498,7 @@ pub mod tests { }, ); - let sender_pre_commitment = Commitment::new(&sender_keys.npk(), &sender_private_account); + let sender_pre_commitment = Commitment::new(&sender_account_id, &sender_private_account); let expected_new_nullifier = Nullifier::for_account_update(&sender_pre_commitment, &sender_keys.nsk); @@ -1836,10 +1842,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -1870,6 +1878,7 @@ pub mod tests { // Setting only one key for an execution with two private accounts. let private_account_keys = [( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), )]; let result = execute_and_prove( @@ -1911,10 +1920,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -1952,10 +1963,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -1988,11 +2001,13 @@ pub mod tests { // First private account is the sender ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), // Second private account is the recipient ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ]; @@ -2046,10 +2061,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -2092,10 +2109,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -2138,10 +2157,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -2184,10 +2205,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -2228,10 +2251,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -2296,10 +2321,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -2333,14 +2360,17 @@ pub mod tests { let private_account_keys = [ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ( sender_keys.npk(), + 0, SharedSecretKey::new(&[57; 32], &sender_keys.vpk()), ), ]; @@ -2386,10 +2416,12 @@ pub mod tests { vec![ ( sender_keys.npk(), + 0, SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), ), ( recipient_keys.npk(), + 0, SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), ), ], @@ -2480,8 +2512,8 @@ pub mod tests { Program::serialize_instruction(100_u128).unwrap(), visibility_mask.to_vec(), vec![ - (sender_keys.npk(), shared_secret), - (sender_keys.npk(), shared_secret), + (sender_keys.npk(), 0, shared_secret), + (sender_keys.npk(), 0, shared_secret), ], private_account_nsks.to_vec(), private_account_membership_proofs.to_vec(), @@ -2795,8 +2827,9 @@ pub mod tests { balance: 100, ..Account::default() }; - let sender_commitment = Commitment::new(&sender_keys.npk(), &sender_private_account); - let sender_init_nullifier = Nullifier::for_account_initialization(&sender_keys.npk()); + let sender_account_id = AccountId::from((&sender_keys.npk(), 0)); + let sender_commitment = Commitment::new(&sender_account_id, &sender_private_account); + let sender_init_nullifier = Nullifier::for_account_initialization(&sender_account_id); let mut state = V03State::new_with_genesis_accounts( &[], vec![(sender_commitment.clone(), sender_init_nullifier)], @@ -2816,7 +2849,7 @@ pub mod tests { vec![sender_pre, recipient_pre], Program::serialize_instruction(37_u128).unwrap(), vec![1, 0], - vec![(sender_keys.npk(), shared_secret)], + vec![(sender_keys.npk(), 0, shared_secret)], vec![sender_keys.nsk], vec![state.get_proof_for_commitment(&sender_commitment)], &program.into(), @@ -2879,10 +2912,12 @@ pub mod tests { (&to_keys.npk(), 0), ); - let from_commitment = Commitment::new(&from_keys.npk(), &from_account.account); - let to_commitment = Commitment::new(&to_keys.npk(), &to_account.account); - let from_init_nullifier = Nullifier::for_account_initialization(&from_keys.npk()); - let to_init_nullifier = Nullifier::for_account_initialization(&to_keys.npk()); + let from_account_id = AccountId::from((&from_keys.npk(), 0)); + let to_account_id = AccountId::from((&to_keys.npk(), 0)); + let from_commitment = Commitment::new(&from_account_id, &from_account.account); + let to_commitment = Commitment::new(&to_account_id, &to_account.account); + let from_init_nullifier = Nullifier::for_account_initialization(&from_account_id); + let to_init_nullifier = Nullifier::for_account_initialization(&to_account_id); let mut state = V03State::new_with_genesis_accounts( &[], vec![ @@ -2921,21 +2956,21 @@ pub mod tests { nonce: from_new_nonce, ..from_account.account.clone() }; - let from_expected_commitment = Commitment::new(&from_keys.npk(), &from_expected_post); + let from_expected_commitment = Commitment::new(&from_account_id, &from_expected_post); let to_expected_post = Account { balance: u128::from(number_of_calls) * amount, nonce: to_new_nonce, ..to_account.account.clone() }; - let to_expected_commitment = Commitment::new(&to_keys.npk(), &to_expected_post); + let to_expected_commitment = Commitment::new(&to_account_id, &to_expected_post); // Act let (output, proof) = execute_and_prove( vec![to_account, from_account], Program::serialize_instruction(instruction).unwrap(), vec![1, 1], - vec![(from_keys.npk(), to_ss), (to_keys.npk(), from_ss)], + vec![(from_keys.npk(), 0, to_ss), (to_keys.npk(), 0, from_ss)], vec![from_keys.nsk, to_keys.nsk], vec![ state.get_proof_for_commitment(&from_commitment), @@ -3183,7 +3218,7 @@ pub mod tests { vec![authorized_account], Program::serialize_instruction(balance).unwrap(), vec![1], - vec![(private_keys.npk(), shared_secret)], + vec![(private_keys.npk(), 0, shared_secret)], vec![private_keys.nsk], vec![None], &program.into(), @@ -3205,7 +3240,8 @@ pub mod tests { let result = state.transition_from_privacy_preserving_transaction(&tx, 1, 0); assert!(result.is_ok()); - let nullifier = Nullifier::for_account_initialization(&private_keys.npk()); + let account_id = AccountId::from((&private_keys.npk(), 0)); + let nullifier = Nullifier::for_account_initialization(&account_id); assert!(state.private_state.1.contains(&nullifier)); } @@ -3230,7 +3266,7 @@ pub mod tests { vec![unauthorized_account], Program::serialize_instruction(0_u128).unwrap(), vec![2], - vec![(private_keys.npk(), shared_secret)], + vec![(private_keys.npk(), 0, shared_secret)], vec![], vec![None], &program.into(), @@ -3252,7 +3288,8 @@ pub mod tests { .transition_from_privacy_preserving_transaction(&tx, 1, 0) .unwrap(); - let nullifier = Nullifier::for_account_initialization(&private_keys.npk()); + let account_id = AccountId::from((&private_keys.npk(), 0)); + let nullifier = Nullifier::for_account_initialization(&account_id); assert!(state.private_state.1.contains(&nullifier)); } @@ -3281,7 +3318,7 @@ pub mod tests { vec![authorized_account.clone()], Program::serialize_instruction(balance).unwrap(), vec![1], - vec![(private_keys.npk(), shared_secret)], + vec![(private_keys.npk(), 0, shared_secret)], vec![private_keys.nsk], vec![None], &claimer_program.into(), @@ -3307,7 +3344,8 @@ pub mod tests { ); // Verify the account is now initialized (nullifier exists) - let nullifier = Nullifier::for_account_initialization(&private_keys.npk()); + let account_id = AccountId::from((&private_keys.npk(), 0)); + let nullifier = Nullifier::for_account_initialization(&account_id); assert!(state.private_state.1.contains(&nullifier)); // Prepare new state of account @@ -3326,7 +3364,7 @@ pub mod tests { vec![account_metadata], Program::serialize_instruction(()).unwrap(), vec![1], - vec![(private_keys.npk(), shared_secret2)], + vec![(private_keys.npk(), 0, shared_secret2)], vec![private_keys.nsk], vec![None], &noop_program.into(), @@ -3397,6 +3435,7 @@ pub mod tests { vec![1], vec![( sender_keys.npk(), + 0, SharedSecretKey::new(&[3; 32], &sender_keys.vpk()), )], vec![sender_keys.nsk], @@ -3424,6 +3463,7 @@ pub mod tests { vec![1], vec![( sender_keys.npk(), + 0, SharedSecretKey::new(&[3; 32], &sender_keys.vpk()), )], vec![sender_keys.nsk], @@ -3455,9 +3495,10 @@ pub mod tests { let recipient_account = AccountWithMetadata::new(Account::default(), true, (&recipient_keys.npk(), 0)); + let recipient_account_id = AccountId::from((&recipient_keys.npk(), 0)); let recipient_commitment = - Commitment::new(&recipient_keys.npk(), &recipient_account.account); - let recipient_init_nullifier = Nullifier::for_account_initialization(&recipient_keys.npk()); + Commitment::new(&recipient_account_id, &recipient_account.account); + let recipient_init_nullifier = Nullifier::for_account_initialization(&recipient_account_id); let state = V03State::new_with_genesis_accounts( &[(sender_account.account_id, sender_account.account.balance)], vec![(recipient_commitment.clone(), recipient_init_nullifier)], @@ -3480,7 +3521,7 @@ pub mod tests { vec![sender_account, recipient_account], Program::serialize_instruction(instruction).unwrap(), vec![0, 1], - vec![(recipient_keys.npk(), recipient)], + vec![(recipient_keys.npk(), 0, recipient)], vec![recipient_keys.nsk], vec![state.get_proof_for_commitment(&recipient_commitment)], &program_with_deps, @@ -3630,7 +3671,7 @@ pub mod tests { vec![pre], Program::serialize_instruction(instruction).unwrap(), vec![2], - vec![(account_keys.npk(), shared_secret)], + vec![(account_keys.npk(), 0, shared_secret)], vec![], vec![None], &validity_window_program.into(), @@ -3699,7 +3740,7 @@ pub mod tests { vec![pre], Program::serialize_instruction(instruction).unwrap(), vec![2], - vec![(account_keys.npk(), shared_secret)], + vec![(account_keys.npk(), 0, shared_secret)], vec![], vec![None], &validity_window_program.into(), diff --git a/program_methods/guest/src/bin/privacy_preserving_circuit.rs b/program_methods/guest/src/bin/privacy_preserving_circuit.rs index b9287558..ad3d4f95 100644 --- a/program_methods/guest/src/bin/privacy_preserving_circuit.rs +++ b/program_methods/guest/src/bin/privacy_preserving_circuit.rs @@ -4,9 +4,9 @@ use std::{ }; use nssa_core::{ - Commitment, CommitmentSetDigest, DUMMY_COMMITMENT_HASH, EncryptionScheme, MembershipProof, - Nullifier, NullifierPublicKey, NullifierSecretKey, PrivacyPreservingCircuitInput, - PrivacyPreservingCircuitOutput, SharedSecretKey, + Commitment, CommitmentSetDigest, DUMMY_COMMITMENT_HASH, EncryptionScheme, Identifier, + MembershipProof, Nullifier, NullifierPublicKey, NullifierSecretKey, + PrivacyPreservingCircuitInput, PrivacyPreservingCircuitOutput, SharedSecretKey, account::{Account, AccountId, AccountWithMetadata, Nonce}, compute_digest_for_path, program::{ @@ -302,7 +302,7 @@ impl ExecutionState { fn compute_circuit_output( execution_state: ExecutionState, visibility_mask: &[u8], - private_account_keys: &[(NullifierPublicKey, SharedSecretKey)], + private_account_keys: &[(NullifierPublicKey, Identifier, SharedSecretKey)], private_account_nsks: &[NullifierSecretKey], private_account_membership_proofs: &[Option], ) -> PrivacyPreservingCircuitOutput { @@ -338,12 +338,14 @@ fn compute_circuit_output( output.public_post_states.push(post_state); } 1 | 2 => { - let Some((npk, shared_secret)) = private_keys_iter.next() else { + let Some((npk, identifier, shared_secret)) = private_keys_iter.next() else { panic!("Missing private account key"); }; + let account_id = AccountId::from((npk, *identifier)); + assert_eq!( - AccountId::from((npk, 0)), + account_id, pre_state.account_id, "AccountId mismatch" ); @@ -375,7 +377,7 @@ fn compute_circuit_output( let new_nullifier = compute_nullifier_and_set_digest( membership_proof_opt.as_ref(), &pre_state.account, - npk, + &account_id, nsk, ); @@ -405,7 +407,7 @@ fn compute_circuit_output( "Membership proof must be None for unauthorized accounts" ); - let nullifier = Nullifier::for_account_initialization(npk); + let nullifier = Nullifier::for_account_initialization(&account_id); let new_nonce = Nonce::private_account_nonce_init(npk); @@ -418,7 +420,7 @@ fn compute_circuit_output( post_with_updated_nonce.nonce = new_nonce; // Compute commitment - let commitment_post = Commitment::new(npk, &post_with_updated_nonce); + let commitment_post = Commitment::new(&account_id, &post_with_updated_nonce); // Encrypt and push post state let encrypted_account = EncryptionScheme::encrypt( @@ -459,7 +461,7 @@ fn compute_circuit_output( fn compute_nullifier_and_set_digest( membership_proof_opt: Option<&MembershipProof>, pre_account: &Account, - npk: &NullifierPublicKey, + account_id: &AccountId, nsk: &NullifierSecretKey, ) -> (Nullifier, CommitmentSetDigest) { membership_proof_opt.as_ref().map_or_else( @@ -471,12 +473,12 @@ fn compute_nullifier_and_set_digest( ); // Compute initialization nullifier - let nullifier = Nullifier::for_account_initialization(npk); + let nullifier = Nullifier::for_account_initialization(account_id); (nullifier, DUMMY_COMMITMENT_HASH) }, |membership_proof| { // Compute commitment set digest associated with provided auth path - let commitment_pre = Commitment::new(npk, pre_account); + let commitment_pre = Commitment::new(account_id, pre_account); let set_digest = compute_digest_for_path(&commitment_pre, membership_proof); // Compute update nullifier diff --git a/sequencer/core/src/lib.rs b/sequencer/core/src/lib.rs index 16f5b4d5..3857404a 100644 --- a/sequencer/core/src/lib.rs +++ b/sequencer/core/src/lib.rs @@ -110,6 +110,7 @@ impl SequencerCore SequencerCore V03State { .iter() .map(|init_comm_data| { let npk = &init_comm_data.npk; + let account_id = nssa::AccountId::from((npk, 0)); let mut acc = init_comm_data.account.clone(); acc.program_owner = nssa::program::Program::authenticated_transfer_program().id(); ( - nssa_core::Commitment::new(npk, &acc), - nssa_core::Nullifier::for_account_initialization(npk), + nssa_core::Commitment::new(&account_id, &acc), + nssa_core::Nullifier::for_account_initialization(&account_id), ) }) .collect(); diff --git a/wallet/src/lib.rs b/wallet/src/lib.rs index 63ea8611..0439405c 100644 --- a/wallet/src/lib.rs +++ b/wallet/src/lib.rs @@ -300,8 +300,8 @@ impl WalletCore { #[must_use] pub fn get_private_account_commitment(&self, account_id: AccountId) -> Option { - let (keys, account) = self.storage.user_data.get_private_account(account_id)?; - Some(Commitment::new(&keys.nullifier_public_key, account)) + let (_keys, account) = self.storage.user_data.get_private_account(account_id)?; + Some(Commitment::new(&account_id, account)) } /// Poll transactions. @@ -393,7 +393,7 @@ impl WalletCore { acc_manager.visibility_mask().to_vec(), private_account_keys .iter() - .map(|keys| (keys.npk.clone(), keys.ssk)) + .map(|keys| (keys.npk.clone(), 0, keys.ssk)) .collect::>(), acc_manager.private_account_auth(), acc_manager.private_account_membership_proofs(),