From 521cb2312b0c16c4a999bb644f94391cdaac231e Mon Sep 17 00:00:00 2001 From: jonesmarvin8 <83104039+jonesmarvin8@users.noreply.github.com> Date: Wed, 8 Apr 2026 17:41:55 -0400 Subject: [PATCH] various fixed tests --- artifacts/program_methods/amm.bin | Bin 537376 -> 537308 bytes .../associated_token_account.bin | Bin 455380 -> 455384 bytes .../authenticated_transfer.bin | Bin 390788 -> 390784 bytes artifacts/program_methods/clock.bin | Bin 407784 -> 407784 bytes artifacts/program_methods/pinata.bin | Bin 398240 -> 398236 bytes artifacts/program_methods/pinata_token.bin | Bin 404172 -> 404172 bytes .../privacy_preserving_circuit.bin | Bin 535872 -> 535820 bytes artifacts/program_methods/token.bin | Bin 487316 -> 487300 bytes artifacts/test_program_methods/burner.bin | Bin 390976 -> 390972 bytes .../test_program_methods/chain_caller.bin | Bin 407900 -> 407900 bytes .../test_program_methods/changer_claimer.bin | Bin 393504 -> 393528 bytes artifacts/test_program_methods/claimer.bin | Bin 390380 -> 390380 bytes .../clock_chain_caller.bin | Bin 396888 -> 396884 bytes .../test_program_methods/data_changer.bin | Bin 391064 -> 391088 bytes .../test_program_methods/extra_output.bin | Bin 389912 -> 389908 bytes .../flash_swap_callback.bin | Bin 398896 -> 398920 bytes .../flash_swap_initiator.bin | Bin 416804 -> 416772 bytes .../malicious_authorization_changer.bin | Bin 396128 -> 396100 bytes .../malicious_caller_program_id.bin | Bin 388496 -> 388492 bytes .../malicious_self_program_id.bin | Bin 388480 -> 388480 bytes artifacts/test_program_methods/minter.bin | Bin 390696 -> 390696 bytes .../test_program_methods/missing_output.bin | Bin 390476 -> 390472 bytes .../modified_transfer.bin | Bin 389956 -> 389956 bytes .../test_program_methods/nonce_changer.bin | Bin 391048 -> 391044 bytes artifacts/test_program_methods/noop.bin | Bin 388512 -> 388512 bytes .../test_program_methods/pinata_cooldown.bin | Bin 409400 -> 409396 bytes .../program_owner_changer.bin | Bin 390456 -> 390456 bytes .../simple_balance_transfer.bin | Bin 390328 -> 390320 bytes .../time_locked_transfer.bin | Bin 412000 -> 411948 bytes .../test_program_methods/validity_window.bin | Bin 391808 -> 391832 bytes .../validity_window_chain_caller.bin | Bin 414356 -> 414356 bytes indexer/core/src/lib.rs | 5 +- integration_tests/src/config.rs | 65 +++++++----- integration_tests/tests/keys_restoration.rs | 8 +- integration_tests/tests/tps.rs | 12 ++- .../key_management/key_tree/keys_private.rs | 93 +++++++++++------- .../src/key_management/key_tree/mod.rs | 18 ++-- key_protocol/src/key_management/mod.rs | 2 +- key_protocol/src/key_protocol_core/mod.rs | 15 ++- nssa/core/src/account.rs | 19 +++- nssa/src/state.rs | 9 +- testnet_initial_state/src/lib.rs | 16 ++- wallet/src/chain_storage.rs | 4 +- wallet/src/helperfunctions.rs | 1 + wallet/src/lib.rs | 20 ++-- wallet/src/privacy_preserving_tx.rs | 22 ++++- 46 files changed, 206 insertions(+), 103 deletions(-) diff --git a/artifacts/program_methods/amm.bin b/artifacts/program_methods/amm.bin index b3f45bb87d7df2b37ac8acd2bcb61e0e3ba11289..026b6786dd5cd04b2bd3e5d2baaa326c87077448 100644 GIT binary patch delta 13443 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 diff --git a/artifacts/program_methods/associated_token_account.bin b/artifacts/program_methods/associated_token_account.bin index b7df725eda278952f3851b388efc66f2422ffb14..206eee2e929b169d9e30fd1feac821bbc36429ce 100644 GIT binary patch delta 12000 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 BP-OrB delta 11900 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 diff --git a/artifacts/program_methods/pinata.bin b/artifacts/program_methods/pinata.bin index 3cd4e7755096e1d9d2c05a98fc79d3631901221a..83b6590ff66cb7ac6bf368ffb4c54a9fa636c554 100644 GIT binary patch delta 8302 zcmai&eOMIN^~cZb%mPM?fMO6(XI6+r5q1#-Ta2KXn8;5dRikwkYb-JS9Gpye+<_ndp~ zIp>~x?w#GUKV;|rkg{;0>3^O!(UIW`J`J?2LdI0Kx>`2;ux9KhM9yFd*leippvIhl5H zf4%`HKQB|g==S>s+UzfoG(o0Tt`OY=4uQitZw32JH26L^0-VDgT=BR-r5Q4nbNy?s z;7&_prW5%~nkG}7MbFQRy%5(_nIibK4zM&CesC`8Ezkw{?F%z3&X2(jQ)C*)<uuPc?Y<44IB{yI+ExkPqSd zkxvQKY0}RD`z`d&SLq-I(oG82z^x{B3>GLnOQvKWJ@6cG!%Q2=e1U|a0>#fY^5q*N zPz4-L=JMyjt>8(VOTn+gezu!?S?CY3sJweNigyo4)JrS&6&o$;`vU|@n`czm1#mu? z>9L9plChA9$ADYFN4dNioHJjh5T2P>1r?j?jhvQ(3l|uft^j8*l&M9ZuhMA@B<0GK z!43M`1S&D{XmAVoJeRKqA6;bd`{44$G9_^bu7jKMjH3}V5L=TkySJ7Fv=vNCJOQf$ z-NAs20k-!{VGfEd3T)^6DR>B)}XIsevZ3c&%=J)xL zKxYv6G%kM;Tn&e^-7H$@SFR&{#AE7j(4V5W!7kr{FQ9jEi*bm4^kduy;1r&S-C%P+ zy8tdV^|yh^*Z}z9X{d9+6(+y-gVUCJEIoGlY8sxd zMMjI&cm%-Q@d}yJ_#V6tE&|Iu)TA+3uE5CYYOnF(W4`AOUy}y?{W5iO z`)9$XJ+#mOZE}p*80Z)=0Y$dPI4x_y6=2Uo_6)=d_MEPz+T;{*x1c`rJc{PH(Ra$g z9pK(PfIop#)*8iX8IRL+!nkW@fFnMVX(i8RIXE5qgE5~K_Ze_4*yBfNIs!2GXXM0y z-58*^!8_}W4Y>@Cdc`m>P+r*(;~-;s>SjA3vlzC zObtA5AAi;e`IRr^Y?=NO!L16UtDjafskW=g6OH)a2yJr4O{3MJ3(yA>@x%F z-nY5$Ex}?XC%E9M(QIA=A2r$i6uc80rrV_+h-)0?Bdu7+N-t@}6UAytEkzy$;P{|Y42(H;^Bsl0r1Pb;P@MLiOO$5LT=2h^x?+pGu*m=v~|A6y5WvX!7$6IIh zRJ4TKMmOs=4FwMwHIe4mkk5cEEcy}Idbja6o{v2EaPUr07vQ9&5{Ad=gnIa=W3EGKi zVwR|WkAUKfjYN)wUea<;MOdg1oCCQhvH#4$^>W{Mgv#?#>0mowt{j|Us;IC9=scMJ zIOMF;%mk;13Ki=5akOF~UMQyf?E`Q!CPecI_rRtJl%jn$1D#^lfVs$nRiPZ+5ZwV6 zNs9LaXbSRh91GQP`Nmv<>P&&ufjdoXU4#!yu%{zEqwUQScZ;(=$9VE4BLN|cagF*a zbe7wl3|{M}P!T^W{{~k$jSpKn4++5hU>?sb@KjTR-qZHJBp&m3OwU5=>7jU^hOvly zJ2;B3^D6v^>S=I;Ye&9#E^r6-Z>6kI3NMdLt$2yp=&Q;w7agH^JJvYpm712dqC?$% z5^~-#*P*P+A=f*WmF6Rz88(H+@#XWD;`uXBp?sP>^Zf4B ztQB}*3X+zvPi&M@oj9y@zc%(=1GiQf`<_sUI(S!c-#qMDQv!DW((5SwRU3Oy%(4Xf zuNP=B#_PF%Roam%G0#`<(;|xdXh|Bu^|6XoYG1YVdM{Rr(_a=9wn^ z0A6J%kP~jNHgRhywhxS~xg8w5S)hd`&IQj0djdKHUTK>DE%?A)h4&Y2^a(M@SMf)# zq!63;P5oQ&>|h&p@Z6PY%NoQ+QQggQIKW2N`JSBxH;3UB!g)xUK$-iD#TSFa!8Yz} z4R|lulihakKCma4;cwuqo8+s&?-}yZREvR1lfn<+NnlSm9laHfgNO13i^1DX@<`2k zQp~feeYc?4_8apo+i^P$v3ZLn1N`PeoBO8$)@8SXzX99eIpb!qe-*y2IQQ9s(|W*0 zQ~A16!56_zoZkc=e$Pf<>G~ErtKB>;9X#A80fY3=3(v04;1X?ri>r7q0VCVwr)`Us0%#aHq0 z9i&BG6Wb)!?t|udPmeDUM`#Y1DrKs{GC|m$Y(Kmgci;iec{$kLt{-|P{|MZ4ML(>J zV|xlDkF>eF8RNIWQWbt0;qxC4!1Dt3C+V!xS`1u-LDr4g1Y025=igDfy@2^VDML9cfL6v1pDJkg};cCK(VYe%EoV9V@Skns(0N1TmPIL{gj zIqW$({{~$CgmEf*Jj1sH>$?ps!a%`E#d}OX2K)V>|D44ZxC?H%rg)E`{aJi&e2<8@ zgY&^x?#b@9!}LD^SNu+Pw=u>s<6s}BET6Bp1ze}eq*n5Q5ziszNA+K)*@R2rLKtAz z8RI`rz_Gc6XFRVFXQn_y-bc#eKp^gzN^l{LWi;2{n}v*xG>+*PVCs&(!5#i;Hcrib zo9f-ezH{*GG40uSaEXa)=VDKN^ye*eXhjZ+&R=mmz&LY0s@kM~5$qHc_wQ{?{>}nC zzkjUvSH?HM@zJV{>bOU@^I+g`Q~=hCNYBt|a7!>w37`Mi zQtWZKLgAcKz~wd^Tb`jq;FW5K5z#jo=pA8nI{V95urDrXZr}s()KI+FxPei)D&#PQ z$~f18YrqAZM=!(s7!JgH86VhZ3Jq2wsVlvSZ1P*-$(* zO9tX)%jNg+fQ+7|Pz|q%?W^!8NCRU6OYv>SG5W)saq4QE3h-<`|FzYEN=GrkE=#6x z5()vaiuW!ETZ4#9Mf3_d3G#BT|0%c$e4g`tZ~(T@bL^I_#eBQ|#9{XLfzN|Wxc;hF zRP_2`h=`~7>MQU#!SHzGI<(diiu;+v3@ipm#n`BUM|=R>IaL3ZfXOd`34J1iFAxd) zwGnt0@sv+k5BXKN)gAch7GxCne=>KV4V)HgqcWc1`mJbe=&bxb5JdB~!DFPX zl1G@O?YJX;eyLZY-4XAIw>#{^9K+)h>g ztti*bR>}9_(mfB6Y9F*pN2G_%8x%S$CO3EaqL{8C_~@$i*Dfb2XQg4TQ`e+J510O> zO-kufI`Nhi73z5SqHcM@!{xiKOB1^?{JU?ZQ$kk)*H<^Bk}d`7+ohj$DcI7@I;~5= ztl3g_--r7Kaf&N{hSdKNI&3Q+Eglpa_wXfHdj7|B*U;}CRVaCnkPdRyd?)#J8M=F4 z{)c0aDkjYD`Z&CCOFG=GS7KbeV?@&M#Ds*nq!Es|VR4Cxu9|;IPiXmqb!Ydk#G2g0 aI(L(+>0OJYm2R`H6oi?Yb%*t>b^it8w0ndA delta 8314 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 M(@3b3UwiTY0cc>OVE_OC delta 8635 zcmai(e|Sw-y2syj_Sq67k`qCi1bZJ*L~u?V39V=lCOYvuel`frpwo~bRVwTtMTrW+ zQBzaX(c4}PRZ=@wx!jrD%6(92FHcRcDwn4>Izn1$%an1yYoE2Vcjq}V`R}vdwcht# z?|R>Nt$lL#V$9i#F(sv})KMkH%id{i7-cVVlaq*;!$DKqGP*ZLp`KuegVAZQGFBlc z3-C~Vv@8`c*V-^f3F8z}#Jo@SbFHL)%r&wDqoN7c_!K=nRCuZ#O@dyb$JLI} zsmThJ34Rxxv&>B~!jF1zDL7SduL$S`M+*Ken3h}oJ~(TtLT?Ix#zZoz2iHo5-xKIN z3>?Z)s9sDccfp|<3dIZl5nN^CIZ=%2!1INJ{{tR4OQBt2{se#LHq!a=r&}{>nyXNa zBM_fEov`dT3MGhTWii<29QYwP{s~4M;CBer@OaMzZ^%<9Q^@b?X>Fyht=Un1MzjNL2<#%)xdPzn`_`P0BP-~q4Zg>D!D>CdPE139({UnMcR41<%!0;Lb549LyQdEUP#RysfXHij#fE94P= zr1WLPirv&oEL#Q+0mF=8_ZYa;RtOKk882IY4e5u#L7$l~>-2MR(pwHKE}l_zu|ha! zqhNaUV02-vWp^`pADHitAJ})`O0Xh$Iw~Um6@`3)H-Q^r$CMufpS7(|==BTz8g0aY z-N0?I-N2MYWQfhc2C&_L4z?Rmdov1KrO+ke&_r;?YJ~=h4Q>VBfP9=G*U%y`P^u|( z)fiy(2%NOiVlNJ?c#T#11z;cM2NW=R2b@=8&0pn(J~&)0^hG2yD#uAhf_a8?M^a>f zM{(9~c9rfrHBUG0v~^mG!Sli9n)z7cEJYRyo%P@{@KwP@K9tF;uqihAE_egh_vSWW z^ILF&X6frQfbXH1H7dlwGMm98;Am?C{RmE2kGezt@ibVG!pQTI+c;)!U^&7&_;stj zI0vDRtaKZ7%H<=$(a@hQ9C{6W1e|Mddj~Cj3VGD7n~_J%;iOOXhVD{7hxQQpsccaw zUkVuBkjkiVHzFZef??lIIEEX5JNBBzq5L)N{4P`QXbo`2ld* zHuTMaevSSQ0|VE%$t4u_N`nHhsqjT`w5_ur05|PWC>`^;Ly1Ee=`hGU8jnOixW?wd zLGT(lFiptsfTuv7Yp~=XufKCI>7>>N5x?~|^g051mpp^IdCMxy&%u@8bP<@;^nW-Z zaAT2mVjqKZun#ju9)h!M`+8<5>{;xfdVNNs6yeZL;%>-&Uono}*kE@?={DXDzO~=# z2sPkCV6%hV1((?7&wLUmY~$15YTNpI;P-B zVeDId!BbK{$y+!A-R3ZCi@LZ0jt85y=@|)MO0B~@>_3+#ec)Pz;d0yXU48Qq=>w+y zF$2@96v_~1@Fdh_fEAn-4@KRt7#+vD-p1KEC@K?YV$+ii&U)1{w-cO)^=4CUKMJ{V zRH1u9e-YSLWe(Ey6Y0`BiTxTtyKZCboeugmM#KyZoZt@6lDcESHsIK+?v`Kj19nlX= zlD4q%4-uE7%Lbh5vqV)g^2H!zVGS1?Pz(Is#6A-P+F|^vzQw&Efsu z$%xZ!h0cn&O`d{-0-JgDHaKsqweGr}HeLE!))qbwdw1|`6zhJPi|zkSp<9Ae=i#}v z&04n{Jb1fxFMJGs0J-_vcnHq?S)mJJecF7~nr*!XE(3Ri9L*<+{sRMb7%&e^@*l{R z?u6*hRw3WrG$~7x!CUyh|pAb7-0%mZ)tlXnuyTe(te#zJW zfnR~*=J`(SFk0_CUy6{1j(7nN%C;&s3d8e$izh}KmGXpRPvzqs1uhm`0M5kxEWy9` zFL)8H@i}B{#SSY#=kz}L(kw~a_8W90jGLKx5qx!>^*)Wky2zc@y2T6dqG_i#zoM$a z*TdN{n>*IkJah(|**!Sd<0+7fj@c36Oou#>2Qo2)FEUxBOkqCcW#kDsU-0l1=+L{Z zyeS3yz@h-%G@=;iVf&C-55Dwvd))ao4HeQBnKkJv zcS~Q#xmvHp3wEwbwIaT0`huf)V6r#$J=M~A=g_9LxJiy!=RUR+&yFhV+|Pka4y(q^ z!vmzeiUfYQ*-@IKA2=b+a=7+kyd%bIg?}UT&Zne;5Vlv}d|DdYTKi@l&f{B^NCa&1 zM(A<4n;XP+aCU=Ax5PnwxfvbImIraKGtv&YNf!EZz~zr{o?O)*A8toA+s1eA!tL~wl`Qq(VaMG@SLR(d@eM}X zz-|PDb3VB01ir2W9|ZgU%}rB<-9~U3xK42LZoF@fx#^q0dZSD zU9Z7`uz)-z7VF_KzXYQQ&yjf;s2T01EX18F_#-&WX7C1>`Ueh_%X`Kl0uNQ=1B&w^ zaJ+5)(s(4=iomZeT%Ot)=gJ@0!l6nP8-7U%Y*535kGi4VeINL~<_j9Yk+vgPn1C1E zL4~S>g4%xggu0IVLPUsp@Gc1NMhTF+@U!o5aK#=N6cM=zj;U6SA5yvgQC{3HX97Pc zYJA`f2J9YBNXCQgd)&JsB5#1}vEVrF5kCJmcp%u!krOEh@sYsiESF2Ei0C2f%+C%& z{)&d4MVW9peRU`$YlnlIqaps7;;ZPws zGBwcKxq|Fp;bz5Gss{!+ZvK!r@hTdpje#Y0YQ&AqJ9ghUS@G2YYOs z{UScoI;d149Ew-~1@Wrk0C(^vINCP9cp=Ktr5e9FbNQeGRLQe}_R4u9xan#9o>wD0 z+KR@TG)ARD!MDM_u{bkPM*Cm-WfFxgHIpb1p@raG-BFfe{oCM}B$dz(j0j!=PfbQu zi4BZ=8C9h9w05)x0~h+M%^|M^*F%o-H55!(28D@ut_cNSfUknf1!pfutL?2C|5)HV z{1SWv>@(%BU_*V7lww2WV6D8L%ct)9|0HI zlBh!o&JgllLjF9s{2A5w&6ls=39iF@v+TlGV|_XzDCQ3V?*(rV>{M=q8vk9M1Klu_e3BMi)hoFwhgNwNmWxC%sQQ z=X=-M`v&wMkTPh{pk$BNH)v4*WY2&BepQxx_#+yfp~0kjA_Od$#J|ZQ=j$JS=j;_! ztT%k`+!9pc-_qp#eNc_ulX&ldzWMn}7xeYE7ovnkd^VfanT;Wf3${qc?|K`jII>k`n`MCuJSwA~VgDxu>ET`(R51c!L z?<9SxbFlx>-<>f*7ytDMIm5s3Q47-7r#UCawj4jdOLeCE@8rl4{)dXw^-pHb+;K$? z3F^ePZE`n%9Fsc*l^S8mXL9hkPLGx61zq+iN>21AIpnNhQXTo29z0$~UiI()m|bIr zCzw+I>L=w+{uQ!Z7gWj>$0a{rZ;v?NKbtV_^>ODgSQO{{t|0o1p*z diff --git a/artifacts/program_methods/privacy_preserving_circuit.bin b/artifacts/program_methods/privacy_preserving_circuit.bin index bae8f89fff4bca9078961d0fc55a8943aca268b7..c0ae0d7577eb7d39977f2770fd892768c592c9f9 100644 GIT binary patch delta 13901 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 EKe5WuG5`Po delta 13928 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 Sg=M}RO*?LmTkd;p%KrgTIngx$ diff --git a/artifacts/program_methods/token.bin b/artifacts/program_methods/token.bin index 33cb383669a28ed820a8e4d756ebcc3ba0c275a4..18d098b1eba3c3d588a2b0a12f8823c155f9666a 100644 GIT binary patch delta 9847 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 diff --git a/artifacts/test_program_methods/chain_caller.bin b/artifacts/test_program_methods/chain_caller.bin index b5aea81f6c49d8aa6e16edc20bb6d4ab804bb605..876d90ba99c4864bf698a518dea6dbc3f049fd39 100644 GIT binary patch delta 8006 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 diff --git a/artifacts/test_program_methods/changer_claimer.bin b/artifacts/test_program_methods/changer_claimer.bin index 1287d3851a98f50549bb3234ab703356d00485fd..fcf62b0069a082893ba18eec5432b9666af236e5 100644 GIT binary patch delta 9907 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 I#Ih&<1K)v;PXGV_ delta 9888 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 PQ>@o9WHZ1u+nUgQ(&}aj?*-`{tMPs>omhg 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 M&RW?^BR7`*KVcn}+5i9m diff --git a/artifacts/test_program_methods/clock_chain_caller.bin b/artifacts/test_program_methods/clock_chain_caller.bin index c99cd0ce56bbf0d205131258a36e92ecbe8facf6..0ab6e8297393f389c7b5b434df926d30c8ccc560 100644 GIT binary patch delta 7831 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 JlV{tie*o;u03`qb delta 7833 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 E0$0udF#rGn diff --git a/artifacts/test_program_methods/data_changer.bin b/artifacts/test_program_methods/data_changer.bin index a5e415d2e702ed8084f2bedee275614b3c3eb058..3bf39469310977737706929f873f95bd2d2d1606 100644 GIT binary patch delta 9706 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 delta 9691 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 diff --git a/artifacts/test_program_methods/extra_output.bin b/artifacts/test_program_methods/extra_output.bin index 2c5ddb727c0547281ed5e67b35b8fa5cd2486dc6..becee722041d9fe0e4a2eb446803d70ce3495d5e 100644 GIT binary patch delta 8392 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 delta 9845 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 SrvJ?|N7E9_H-erQ{`$WUuyw2e diff --git a/artifacts/test_program_methods/flash_swap_initiator.bin b/artifacts/test_program_methods/flash_swap_initiator.bin index c1d7af8c06d546c1ac1486029aad3f8207d4a6d7..5adcea8455d6abfcd08133e2783aa614314fe8dc 100644 GIT binary patch delta 10580 zcmai)YhV@CwSd>0IR~NyNFYjpATuWcq6A37D@cF@BM%LbSU}LA0i$3I0v44=+5sCB zG(v*l!3y#aOKNE$1v}WHU_r~(c%h0d7A(->RV%HaC}^$TZ|3aD4EF|`Kl1Iz+H0-7 z*4lf|ar3T@)w?>@rfFq$UDCD9iwl<&YD)@3FBIzA+FA?#DbjekA+tjwp^zrUpNizS zHe`by=W9L_IhJI|X2oy7i&6|Zq{YVESwq;xWKMU(hpu{?fAP$^>Tlq&*A+hipK@X2d720 zMh)4o44HLCq+)4QQkC4UXGLn@fr_WXRj{Y{vv9&PpZ|d)`XO&#T)rh~Uy3AlH^hiH zhy@=(aZfJ9GLJfd`x@eZ6><_Gzw?TNuUf87Nsn&gpXIMUI}wz}yJA*Rqg= zR`~*+G2M_F#WkG?3gkH9?Ci;#@K)HXNNv(ISqpnsj)OCw^qC4S=VlnPR$0}zizc;q z8*(6Cif@uX(lBYJAs?y%_g{rV_xfRf6fO(!$ga2}xdrBY1 z{*(v(%DN$g*t*}}<00Lcb{~2uF>k^{(A%vW*x9zbCiQa-8KwF++lzbaT`$wh?TrJS zY#w_J!Tm!+=Bj0%gv%|%^@Ee0C*j!v&gw}l!(KAYhid}-8oUP1SMrjwi19^+Y*oAf zK1_dcoGsZ;Ln8y~)qvi;7!dO}Y7Trlz&qi&i~XZV@2$xxI75}6y>QtYf8+E%gg2ak zd}rfFzzNk}xcAj0MniRAK;0n91w2trI1E?9UgUI$ogAVcoVw{+O?EExs)8nehp&Dr zDlOEstijY<7{9yg-V4tTq{((T7}%e}Ymk@5c(*Lt$;0&ZA?wvls#}dAWRcr`6qV0C z;jdfRPm}$yW1lncIk*uv6u0TmI*%ICPw_A~3HJK$g--|OAAtk%Eg3rC;srLr!3A0k z#IV2u`EYQ7d*I*#@4#8h4LPC|YMIALT4xCVaSgbhe}q>UQsVY=^e&`fGYu!ygdK44 z<37I+uU+YkTDqo{i}=?{Bz(h4-mSVa^nnQP&#u%~loA!)LjHInecu;6q!-ya~)!$mRjj`(xJpbzI%CRNr@3-r34JIphFdD#VD_({~wQ%8ZX z;C$qdSL26_(Bvpw?sEH(Tr-kw%}RIUNDGDKA-iz2-X~;jxtapBodps51i9!V^;CSjU@NpJ!Dw^X7<3{2&u;4WK`E^m5toomYE&9t{ z4u|CZ8)Nqs>n~d;hqLE95UeUuk75FQyPug4!^32EZMO!q6Dy%MqoE(nZo zN69%szoVGrv4!xw!2GT741a!XSc!fzx#H@J-F{0fr&PZ^^w$yg%2K^|qV|ma$`rki zo|ADC7w3KcC1?$N?00^4o`UN)Hd!fm#muStw&ZT#BWVN8TkMlGYu3%B=>Do9MQRiN z42NM)_v-N+7tHgV`Wk#VASYo0PTu4%cLSWke6KA39lPmOt z$vI1IXW^gu$HwpBxv&?8Ra3dhz}_+QvYq^ZzFxCd-b&P*^bg=;@LV`WIlpxodHB2^ zu4CcD@B8P&&*05}MwQcr{U4e}A3#sXfs z?0*}TBhddK{33=FsReeyBk1?|OL!~n-F^qh>gMUQwCT1sUtgh>Hk6ZYr+H~9ho<6} ziVv}0>3<_U_aoo_^YBu*LS@nPX$0TTeS0R@Cl}~eDCfyLh?{TyXT;?dT%5k~&6o(+ z{L-Hnv+I7SACFkk*{mm~)F^-d{0Erd%9PWJKZZZt=FjUj*U57KWS9kK1h@fCNHpcJ zntv8P5}4oje##M?9(P|mxu1p$Gfv*(&8BMe4!o3g zy?yO4%c(X|=^U3Uli?4Uk6Vd@h-|Y9m+0HV))D;BFUgb?<^OJXYBH*w*>sP+56*6H zHeDe1!1Gc}^%~OT^1Ha+vyOK?Du(L={V{lZp#NR?h~Ll2Hl2%4V8C5)!WCxIjj{6# zZk!FigKvYE!k(cU;hl_6Q33NdeBer-BX?6!I`}*gK9g$7W*iX;ald$thE*NSrW?|P z?;`*vFyk2nC$XUSQtojNH$B+P-0#Cdg{AUhj{P6*Ju}cBCPfd}a~{*%>V;pj^W)P@ zIinWt{2;ZZvnds>rkebdoUVbZ6sONe5aWv#-xPagIi;~J5xV(+?- zs7O0}M=paCHv2c!MmUdt&#~PXaPhm!R2MO#2~O$i@BAtFOdz7BFC-#aw+-qzmF9VP zZ@MXq;_BtfzA6?B+(}yekRyTxv($vqaA1Pe*mX}(DW=}z_@TQgGvb0|Bz_2YGn+o< zY=R3iOxdsc4uUL;o|_8!lPiXBCWKiuGZJ-+ee8Y}&&emwc)92P5}9;o11XBTeK_q4SB*czk8n3AWa zS0a9Ekze0dF)s_HnC8}nQlh77B>k$szWxAF5m5RCHsjE6>VcB?+aGg&TxT|Yv^f6= zL2NfgS+3+Qfujbj|%Fz@;`!)b&589`#8In{6Loi#z;8&j^GGV;tn%#1}CO;1FXm~N~x&1M?HZcFc;Z@zE>g2Lt{+HgarI~}T&J;$Q zj?r4UWLQ+rDc{eu&xXPWb*ldM(x>)@ZRgW9d=G?c$=;ruupalZ_~8hc3qe7EM5Dvt(oCZ zLYf^rn;u@Th3&eG@E*0byh&4{{R_8oo! zHb|(sYWx{^=k#ck2lp{%_d-L)E02!S*wGhwJ2~SmI>*tF$bjuiz?*OpA2Zh~?i8Z% z&gKrU1Wbm<BvvXECe0`XkTo2QITUbs*%4OUg z_xgMK6&!Twl*`HDw@mk=tTX;4xG}(8T47=Ps2FO`?|@U@jlUM1@!b-+w13T^tYT;# zhw-k-?n~QpHTs%{QNbWgLPI_3zJ?qDcf(7QqB2Se*ajC5jWz{cax!J<559u4;k5xi z2qz^{rj!S-Y)7EBin0Y(+$B?J2wJ!Y4q9loXG@&=s9e}L1%ati_tzOm!H2G(?7Z&p zaf>Ut-oFz6mf-Z?(t&b=fhEj$vTOyssF5vaeb)nzcBHPchu$9Tfz#N-BGsSR$+^DA z4@XDfJcF1a$SPI;DY*JgJ|8N++2k;V$18pnK7>4#c5+V?g+DRGGQ6~+VG((rswU{^ z>=9W}t~eh)WOB}_Etn5~m>!i4s^5m!e#(NRjicZP-SPF^(WW3B(}N%l$X^a;jfq-r z#dIdTMZ+;%nxOWmb0*i6zyyO*TlQG|gQ+wABs|`EAu9zY_9m^C7~&apcQzgkaa~ph zZiElL;b&PihnU;LH~5`OKvh0z^9@%xHQ@#LbkB6xf@FRzIuDQkB@22{JcN_~ZL=v& z{|%o$>emfx=*0@R7{>h8QK?o2j)Ci~V}|TjX|suj3kdM)z?|!F>3%U z;DZ$WwKCwu$cuxn|5z-{KkL;uTh#|%k{TvI8Vb?q7;4HD7|(ZH$yJH z&R-HyI}F|)=(pft)*Od}Su?DJe(FLN^PMgGJ6t`6m{1?{a?VjhU~PvhuQHp0^oq$G`4x$U8ggJ>@t45H|d`9*O6 zX{iKEgpcH#lBT!@PQA{QYGuGz@P$0zpaJCDDqebCVXK1c2l0M)=d=GUmLTw29#Bfa zWAKK-ru#oVI2I*5OetkS?|felZ-)D+@d=Oc-W_5}nW_s#a7lr$KqWkHtSN>X-w3DT zQ70{vEz)W}Pr(E2Nk%QqFky{QoZ+b}?X$642psEGRMEpKY84Z-8r=;HBLwaCRv!RO3H| z%i*PpUtLbjjK?6gMT1tL@C0AsW$=l~rt^x3pZ~w1A!QQBsj~PSeClTZPM1?l5S7Gl z_dZJT-&o|66eI{NJ$(O%8L3Rq`jU*2I{?;iaqd|1BE!A2FqhuQtvC zw>?Sa`v8}}uUp0y7`Txj;=K3vyb;bW;)bML{M=@OusGUO>587? zu%WVURfk!=ZRUnse%wAcJFowsL4Et@Y!9WOaCR+1HYz1ewn zwUPF*HwQ;dds?qZgVx*_yGNhMnPz)p$)~~vF=I^Fh>g7|(xSP^v66j}8)Bd2M3y(( zi%a@6+u_*L={sE2&@a-#?%g-?wBGFW_Xb3!HQT|0-{mJ~i#lC;17eGxiWsr;10x0P z{(nrww3(5-*h6`drOmGFT6F1viqYS^E8MUdm~-jPbq2)RTpLMfcHQ{&zTZ8)^T2-p zX~2O0G$8N02gIffzJ!KaL8OPhVQ^%A>-Gb4`{fME8!)hc|J=MmIk|mv2M&z6TU|6d Z^4nI;b=&PHMDAaz4YrrP7kT0IY)v7Odv{tATuWsgS--mBuJD5qJlSQq9C9Ff(8T)0v0I$eS6WM#AA=5%4p^zpwe=U;V z+K{z+oU^_WIhbNfHq)6q4UMoNCD2aD4vAGssUfBt`Lk ze-}Aw7;>EPtQVE!Z$*rSQAtn&hQp}=fmL>GlKx&xYwKS{s+al;eGBg~Q9Le4{?Z__ zF>1&jWytiCA{C3GlB(oJPl?pPxr!&ib74>M4RFF@pTEHoImnw8mv2e*A0mle4Kd;k zvH(7a;+}wt??f5{oOc#OG7U*nxd>N0{vC+Zah+? z`fs^Flk1S*!eNUApQ2$H4XxFHL-1|zg^JT!XwvYQ?~!qE8VY#|KMVJUz44#H{oxL3 zer5vk2PZ4O2fh<_42(Dyzif|B(=UoxeZLSfh8nU$xvC9&UtDa+HnsQbz7*MdgCQ$b z|5L=&q?>$K|36#~J2B@3ebGNfrY-Xo?~Lm!ZZTx9>R*PZhmSC%A|Aw+ROp)QTkcPI z0nTB7p(fmfE2~)`Me%Mp3@0jXh35)jZ~Q4NEe|L#v!x~_0k+{J#%HQbqqz#k1`#QT?WnRo+Gu<90luJaqtmW3(ZaN^aUk znv~tcgL ztEyEl?u6EN8B(M8CAb@85%}SG310Au;Nk_y4Mf;@8GfkPwax5;YmutBk<9wq>Y+?YixQ?eMjl@ z*q`!qzp}oOL2TXc@9~(+n06m}C^28cSEILEH?XsJS4}p|Fl318-(%0~rFUtmRoUxu zoov4M3WEDVLuRODUxmvp!}WucomzKIrUkedu7bT}S_Rhx_;YwAoUi0%^&rNp4B4po zY4`yB#c{UeI1PIlut5#Du_ps!{zlcp4FNs?&zR>QJ?XtPISyy2@^cg}Tj_6HdT+uT zPC&l1@e|>MYA@XTYGTt+9T>2sKji|xRZTbzSHfQ8pW^mj^c4}672Oag&P9%8{vR_OUCy5@dCTx z-~!!qF)Xk^85~?-2^?JD4BTU>AqSO0m*;Vk)*8ZpTmvTXkMJ@>O5A>q-qkd$r{SoY z@Bv)>n9mV5sP1t;^#{Yln*?Yw8?IjNkH7gEo0;F8@lI5}4j0$? z^0YxjvCozi(XckK;6gaxA0ThTMKSV@_;bSGCeEo$s;r?F78P8h zjshL8Lmu*ntMOytkKuBc+lAzY>)F;G>24fpp|Ct_7Y@~Xhpe}{QGnKPXvGVmloe@` z^%9;?{1JTm1r&=P-|`@pDC3!^bW;nx4yVALC(pqp0WKIyI0SeeT>Kn$GcMnf-_uaO z#=p4y6E1;0fdg;QB$3nD<9YB_6e>Ug$5TJRM_9nAXpSce{)>1GEch_|t6xNAwCdjt zTlAN^91cmOICfvL{<@{%@{PYiu&PAY7Zcc<{mgs;u7nGeXIc&Ww=IHCaGV=zp=EG2 zhIlcuAD$5~tlf=xZf%ocA=z$k8Kz$pvYyDM=5F^>{0CS9d{-Y7{k>ljR>IR@uY|k> z7X-%lq2wH;-%-r**lKuIVE$fsl0QE-utYzWT;1)*Zhs(_U8;`@g|4?BFV%Y`YOmWn z$LPKF?4p~wIPdl^LEGTNyZr17-@*a5uE|PS5HrW?o06}kd0U|QE&CYFn)UNibbr&3 zBDD$M!C~0bef@Bb3+8!F{Tx0JkdrwACqL^icQ>5De6KA38LocIkVYkc$gMxx#E>kp zlPmQ1lCz&5$HFiA$Ht%G8L$_Ib>q3nz}_+QCp&qjzDBcNxt*vv<{!Xk;Tdp>a(>S; z^6*!FxZVpN_{={a{uf^VDNiT%+}W(~7}jC@70h?S`&zgL_Vic)*ZF*h)YBk-gR~rr z02c7dw?;hap93frIdM^n2U^!#Bd-?f3Rr?JRw&w$RpQ>&vv#{pF-v11~M* z&^-K7aRU35{`bH${^Hx;{titR!4)ct7Q&NW^6k0bKK6iag|c70lejtOKO?TF;NtXy zZ^lfx=4F4LZPz}iABk9lrm>!wQltF+&d)Hvl_?F1Tg@O#H~I61!4;eRlVKU05#arB zLZT@L)coZ8H8~iVe+#@7PLI2Ych_pIYxk1F8}fqom_9O(ZCe9-UbWV?%tPhh|TIN@Tm z>Bcx<5;x8*zJniv7r~yPJK?R2Pf-E$4P1YT&zDW6ptSdSBz!W}l=V0w6tXn=oQ4%0 z%%&UC{dXe(CNSd}bPpNFg5FE{dbk_xW$vSJP+_C;$87%_-#8`EA0|al*wdHj7wLr^ zW^!>!Gv%aOc)-u8EuBoMa5dGW&1^yzo~w8;oWS^E#rMT_E~PZ~CSte0;yY-aJ#U#l zPPZoBM>Y73@5mS7g!TRnwE@nf-*fDB4{-6j)KnKSmWETh_&Xn-gCheGwGckdx@}O$ zsWflHZ={=26<4p1d^(o}19y_H4{}7XU=KB6G8~v78|~UBs1)OuIDY7A%A~j;xr^Es zzRYa;n6nEm$S`G(>i-HkD*}dOJ;a6vcse`;_A1gV_V_3DHM%vJU`X8RJD?giGEF(G z@mdO;$w;T5e}ncLdi$IgD}6yflB}_NjRn*L6+Exmg}>Byw6IRM z#;9SYf+J^iY_{*|E23n={|o3U>Y^+3t{_z}*J z!DiD(i}s5MV!J8I`p766%4qPys>5RJ^9w#%JJ-JxW^t}(|)#gOrNS3&U&1Z_dllWi^Mf~3m(n5dZls8 zCwL6(HD!jsGyE3zhxa2u4A<6+eh**$PeT>dF9x3&PfdQ=f>F?y)a^Z z!77X2@wM!=in<~65z@3JlJ#lOYri*{J+5~x<=K>WxxKt-nNBV zitkPqMw^b&&2Y)UsGL^5f6P7=3csgYb&gMmM&+d1vqSJ3*K*5IocXLKlMncd-vj5s z?6Rxuui@8V&$}n#*J00?zRyv#1N}4Moqqoy`5g^=0t3#%m9Upq1J~mnxTjk1VR&Pp zKWfiw5uO^cE?Gw~edy0S_dF_%h>D>M9`=GJuN;cHRo|)N%iz!-F@%1H_rn<<^L|s@ z?w8y*{}7c?YTXg=S$Ln~7`*qRsC*tDACg1%^w!}Wp+T2Ci3iK0GD9uA89sd2S1kW2 zE{1SNCFo5!{S*H}({Y1+UsCuQO?%qjk{q@!&_1xUQ^T8d?Sy@-Q+Si6y<^vQ4o}s! z?`+Kse-+aH5IdC~UZZ8$wHe_Zn$_tmk)f(OCzDJ0@KIhp#pu(PefmFm^J%ID@#Jvm zBtOpF$&WAS>TcNO62&fd>Nw(IQ#{?p(5&@)(&6#wMY-Dh*QU5Oa6XF z#NbKp952p*UXA?YBX07Fcf`vcY>-eh)cEhV?{mTsjBNdEazD$~xmehW7?|Kr1Y47ZpS8`8+t~Q2e#%j31oH zrTr|2vWlVKa~N+M?Y^`vSEG(?&@d2$qms~2kGiiRN5DdOQBqWfC;{)n#n(ieg06Qm zR_^x|Tng6(_)9n`kus$`nA291)K*cpz>2$M4h=yIKY@c54s6GkIQ3DvurvjMsZsaW z8Arjj7gKiL_V+mB60Y|<|v4W@7~e5zQ+$oM_|k#W(cxM)vud8$lvAjq2ifv7Cc<>ad;o{RNBdsC<=dNh-Ij> zI!Z$od7i2!q^Gk-WJS5+GI*cKIj6Q@6?`H+Dr;5$M{wQOEJ)fo3bwc$Ur&xU1?d!c zWkCMRaF1b8%dMEsgs*8hj7t;L9u3Ikni7~$K&dTT68~W8jMuIp3!E3SQeb8;(rUgT zov7}PiK=hJxo^t$AZ@$ zpwI*+l*}PbP1F6I)ah?Mmjx!o?=KFIg^gRIvPUU2VIEmA)|6?AcflFdh01sqS@O`s zKMta!a4?7lJ;IsYkF-<*X2J*aO-WO{5l$U!O0_beBl*>s=Noh@yn>gWSJ>*{4gGn) zyYt!quJaLi6%QyS;3atN0Mq@S9vq7@7f?!B&^zB>hS$S6YJBEG-b`1UQl{!c1zb|# zD^LT^y3rIvjc8ya6;V3l0VFc!@ z@xO)-z!i$mzY@i${2rB~9Y>>g2ga!yYb?bJc=-;es5_>lSeZMy?}>IPbkZZ-BFkxFIPQ zzqy_uERHr+x{BvHY^bao)nQgYsaMR!-k5`}WQ4m)Ea<|9*Y5V_I(H z^0d6HUX_(Ir}S!Wg#BRW$cvHYC-+Z}{G$0DM{F!9Ba(3b?zHSHe`3`s8Igr8&ObTU zt4HKK-9vgr-fn*4^yQIuu}uRaraii6WQ*49AiHz#$jRorV#&wD1+nt%NY`d(#2 ziS3AuUllQ8$8#eE%`af)M{;BL=0z4Y-|a?2R{!%E=6WV4`zQ2EzABR0=|2wW^V1S~ zH?N#4JLjjTX2xE->U{C$%#WQrZ?|iE!GQDGK7L^2a{J){k=dH-wco3zeu~?p8QE<^+W#xD_qNW diff --git a/artifacts/test_program_methods/malicious_authorization_changer.bin b/artifacts/test_program_methods/malicious_authorization_changer.bin index 1d7fa13e35f9beac3ab4cc83bd4f030cbe86a60c..323687b34179921ba3a998820c33e2544b322c5c 100644 GIT binary patch delta 9758 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 TT0M&QyLgD6AlD4 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 MwO(5oS~ll@0n12yCIA2c diff --git a/artifacts/test_program_methods/malicious_caller_program_id.bin b/artifacts/test_program_methods/malicious_caller_program_id.bin index e2eeb9d25f4af6325c7bd25e1d6ce116306ba4a2..846906c27eeff7b7772b214e067735409cce78b9 100644 GIT binary patch delta 7525 zcmZvheOy*mw#U~#=XvDGP2K0 zMS~@Y(XiV@8^9iBbEC27E2)h6zsC5+1cekXmu>WXEyXhbpS+B^6W#HzjHC`JmFYKr zBnnG`UaqJ9C!+CV6{_Jp>Yqg2(=`g`cKjL~{!5LLId2F1z#*Kkf$IhSIWao)3xzgt zd;SbA9;eVD*|K{&RWL>|sS0&*flxRXHbJ2X&M$)F1ilE)1kd9J&XyT{l%`N4m;bzB z(pjlFdl=%EnW0dtWXETrk5Tj^3Ptf{{qJHFo(?-WzYTsLb_YR?8ShST=Ol$P`1~Sc z(mAO)SpOn|QOH#2;oId6Wz-1np&!< zd>A;M&oe}512~6sI(QuP2P_Vi=(*vH(l2Y2XbpJiGsAmLIwtA!2QjM5bu(-oxCv~^ znHhT++#&D};E+5-g3s67!)W6Sg~EAcE`vQY+(?YNm(kvQH_`>*#+eGW+v|0D9RuZ0 zD3rw&wt`y(z6B0>(p8Xvow@~{4?bR?PzpDo3GAEgmc}J;T%lqet?AH|!HiPCinX84 zXcq?Z1%aXWF$#d=xIxRn`|>n;6l~^L-ywI-mxIL(PJu;z4^lu-?0ha9kWIstwI49_eM3uAOu=q`ES_G~w68^Nssw+K7IonXh4Xyf1w zX@FNB*AF3`qfiC(nju*R4iqU?_L_VYTrTk7{*0=?!Cd|+aE-vbz>Q!t8O`-Sf|X*0 zwsU@Z0Hafw&$L;mofv3?Kob`j5`r_&ciYu$aJ#^pz!fD5m2>%S@C9&`WN-K%enuHH z-K6UVH-VjU9z75_F;Afjh@>QqW>k%VazWs~!QI#}4;xr#jL7F>KAiJohWC3ZR?=^) zjJg(MW4jO13mWRa0-k$pLwZIc5(^Y6<@0}vVO0BsMk5`)4{*DmY3tJ|=;w&slN$NCf=9vo!H&Y$z)fiU4j%!R!oUfTx3WK$(NxHrM`=1*1I`!L z9|aGB0W@+T#vOPOT=|rns{6n-yWE>*P#U9xoeC}H@yr6Rg#0M1H&eR~d=u>0aRTgnx|iot z*u$s|K_C}=>O=QHHi3)X1@u?&aLA|g4Wi)qhXR*?!y)fn6z?_UM$2XFq;W7>Ud^(H zA`YAPDOAe?S`Cia1OK`G1~|rW{V$q~0|OWH5;_S!C7APjW6LO6m*S-ibnhbyweh$; z4{mC6-S`xIbAGSiBpbO8%ICcL>p9r(DBg^G-M#tH->%SA&NIMSrS7_Q;5M+C`DT1i zgKGpHIulL&D}_$+^|Qbeg!S)$BfydN`hj#F0|5*;2Nv0IaJ2kw_R;C+v6nUL)?$*E z!hVS!d)jR^Y2a=_?=tWy@DOg-L2!7Nb8C8Oh~Z6=n>~8^qqsfKAig~QbztgrpRi}a zU0{UE>I@G|LFNC&y*-~dd4Zefd%*!=UY?45h51R~T6bQjS`3gNa01){f$cnCD>7jK z=A8f^26uy<1n&13^7XH9fE$>m)`|9T~cVXr5`VygvZf=F1x+#_uwjU zfGf^^v3fClTzhES^qE(fx@^G z$R2P-z{v=SQm}5LuhAFJqY09>k3ub z@(C0>2cA{ZnH9tXGgDAd6f_bbNd+20ka z=C$%BxI=h(wu1|>eh_zPa0zZzAwqME;g8A(g5yJT8GZMI`!c+YNVS2Z`97)GH}Ip& z)eVF4!CJXc^0#7qE5;9T z`$~+YHF8-HYcaO0m(Tg;^jVDaIHVHsfIa^*0(wsEeeKAVnEyF1{-ldiB}R^FHL@u2nIcz)fJNwfF+~1A#~UD|)^lKObBT zcHZOL!CQs-Z^6yN`UKedpDydP2m|j33k>j1SAg28aF+|5{|XKWjJQ|^t_Qy>a0hr3 z*l}psGGwf^QR(+#$?g0iSp0AEuZU z_`VVZ%D^>XUI&O2q62=AZ`cEF6Xw?%-aT@eS6@{P2kYE*&#uCgBU~eeJKO?3u~xIb z{mn)y{Tn0gO*n#ilheWJ4fuTG{3^Kh4UO{ozK6gOYcx8}x$kQT6!?-YFHxq^^E>%~ zl(q_ael=3V&sKIlM!typYIF^21_!Ux=svC}@53e= zyZRQex$&!lwJ=r?!ix- z_#vyEZ}`Xi?&KW`9KiRGkI(-dymFm;gfFNF`D!=9izD%vI<68@o^;cq6;b$-gurdC zAbvO_1vz1Q=*KU_Bk#xi@J-eFjn$N21>XF={VR*fpMV3~6xxqF#N^NsXfc>~awv8b zj_^}lUi`@BfrBgYJt2{9E$IIMs_(e{$bKqd}1B7#C3=D$7j>nr4 zAdh*RprvohXf*AW3W%_VQ8w6$H|HX72ORWZe|YGntr#fB^=mKi(g)y9OTeE01{_$c zT0a7t22M@HttRjX;J_DZZ_eZ;Ap$sa1lBUB7CbM^z7@>%6)9*_II=kGZwYL}K(K;_ z%X#oP2tZ*0=egh=9=D7Rg2f{lJ|0zYKy}KBmVhT*v!65Oh97}L&Zxa*+XemzRiHO= z3)O$Y8Q~?F&o^8O?%1qY4bW6@30#A+Ea&r&JcP2^Vt*2t^Vh*mTkYSiP5x~ve%-+O za4x?n9c6hEPkf#uVUI8>+MvOI7~se4RE&YWN8Aw3%0(7G;MVaPaLV`i6@eT4HeTj2 zI5Oz7j_}Xm9D(I0QFa1X6rl9Jv!A}Efw8lZbGLNGGQb?Ts}N-(EZ6|9|JME~&YYha zz*lCp-I-0^2F@I;Q7boSX9=nz1`*=i|0&3$FO>4ea~Le(;7JA|YL=y0 zWf#FMc*NH5`904t9p|nhv+XL#EJMf=z*u31c&EuwIG!)~9$W)1=A4FDcY~dzT?Nh< z>fRkE!CgWQB`rjmW4@8EU$zka-#1LP{#`LQ+yj9OoS{>858`#)h50zXU^Y1XXDY4a z9RD18y$X+bh_`^VB3*-fz>OnR>wRSEzrO-yIYgs2?r=cIKnMn$4Sov_N2AE%8=L{3 z^5a3pL*C~Fgt*@I;63mmfhXhn5YwPiE8pM>I1_zkBX7MWcs_K$rBY>oJHq;P43us| z$okm>FTI2>&V5KiZoqMH@b6rXdKn*t0>8Qx@7?p*kQ?~F;0#>1PV3%|=jGlNc)#G` zZI<~BaQ77$VDC4bQmbLWKVU$RZNOphW?Z+b!LTXWwFNBK9$YVlM7vCl{E5<{U z7$#HrLSS+y`>0(k3pMSKpp-OYAfQy4W&)JWkQT+|p9WV-SC?-)i| zFmN=Vml2_Aa3<%+z@wl)Wbxe+EgryV+!>7$tpN{xV|ag*nk2m-l2OqVH^Vl7Yrv+Q znX!%FHi3TuhfhT$`21VF8Eu@VP!x~MS+HlC8;Q7k7}aIDk)8#vnyyf*y@?&a}?`nO^4F&Wt0q7to?LG zyD^X@2=u#;Q3xE*4JrZenX1tfU^B=3eQuxs4OraZJFuuP1-U0icmcS}fXd02q_M2E zvf`4|G<(h6jLHx@|;Gg3$$`yJUe|C%akuF1R7&7U2)zcCh2g5M%#k zDa@-sd>2AGTcJYeHA7MY4$V=l>@~R=yinjiJsA~){aijDTqf{ta2420MsxkYz)G${ z+c-ZT#;67J={D>1DFzxLP{RfKhU3h$+;$ZLw+g%oT$rcOLN0$9d=lJWvNx;^FiM;5 zCf#Ll4cIB?q+ZC0e1%RTl9Du>(FzPK6a@YU+=&gRVgu`p5&104M{%BLcz=?HN%}uk zMjcDBvE2vhWes&-2+uvXA=d{Z67v));PYR{F)E*-(O^gK{fHzuob%J*y#l`lUMO%A z*s}<2)7Gcc9S1%F99oHpS`|9mQMtBVN4AA`ig6E4m)p5Ve&9P z^BX01$;0H}ng`K*R%4}=gp9h4z@1a>cG3)R#H=nCsipE%xLg}pi{bvlaHO#%AlEW| ze-aE|qtG~h0%=gc7p!o{E~6n%!a66Si4QSK5%eqpw+mbcZo_)#22UEvXmo`_H@N>Ua%?2xfPR(_jJ?uR&R z-lI@C59kVT^k?v&+y6N@&T#$DdkhB#&gCU^2;3r=^A}^w5LuUko-}mtZxm|eaa#(m zX>{Fa0N;3_%Wv`;Q|_0Kd-d{6?Ds9+jC|d_S8W8z0}w6CdsuP{jn!-dmcl4dHmOcsoj0Twu3vs z2$$6v?tc=M|ATvbE;V_co9BDLAz|M86!sP79|xDa^E$1;00{yu;Ccvb;{jWl4g)an z1h^6033d`V>}lld-{Al^Fcn;U(&ZPy>rT161zdAlq0N?lymS&LpaY$8d)Z&W#o!QE zm@yHrTx@tRk7NaSHQ1@#Rq^q`S6N)D4#=gwf{Kc`S9-+1Lr zw2Tg)AWae*74i^ljda*nL;nu@Kn7u+Z45pW|oo^O|t!$=V_>JT^^>w99}tb`~8aOow5if#D> z3eHBUPt-`^0)^m0EQsT5fQ1Eg)0i?Ao#NTUW*n~Iy0;b4?rik*%fjam;&1~SHSqa| zpJjAQaAX-cexVzXecfb= zmtqjl(r}g1`1XVI8D$1kD&U+~fOx;?$V>DAxB<*7P@}o?Zhvua1?NMcFOS1HV=?m2 z7ufb2^u`#K{2tqoxrR4ie%s4>8x`~9<9z}{=i_s2oJt3Hd~=MFmGUr&{n^;PN^bI` z_FjyGU9EO~_bvh}Yt^oUzX-lju3A@-`HFdT2}-}X%TQWw>@Sydq`;RL{{Z6$xP5bt zq_y&b?(7R=%e(S%-)!GfoW}u`hzD%xs|e_Ewd=LxEyDcQDqY|Qacdd;7xLg?bd|6- zH1cx&%fPz-3@w2eb=Z4Zfdmcpcm*%vT!T&*TMOebsU}xY}J;xDro}D2){E@E72N6`J+! zZ#GiTn~bz~;0WeTehfUW5}!|;OTi6mG|J-peg%$Rt5Gv&|0)CueAovNMD;oIY%*9qhGm6RCdO8EP(2W{h28FU4^zoe=nR%41T}s z9IRQ5$mB`j&9CFJ&F5!<)7tI&Hs?PA`;OXmY4SZD{Dv?@vl^GluY*T#z>gsIdY%4( zfevh#$ra{$;V=}Mjn`aI3GRPFr4Z*wx}kIaNg)L}V$QDxZ!=V@;7tAweDWJtKCCtTT37T9wqjt(B1SD?AzJh&Ymq~kgLCXYq*^X=K3eWzBbkRy6UB4U@ZpL2@A#tkOI#uT^>H!8$WU4 zhpbk<;eq>Z=bZ{1!1s`k&))!-u6K{{WfdWR+l}xmF?dWhtAvy%-Lz%9=Ht-dayq{^imB57UKG~7kKGoaJwa7&;JMxRjAgF zz@~vuC*oEU_+xPBJGCokvXT%1oH+t(8MFqRA7S4L=K3YcXj3?{clJ8FRzWz~RT#uChG`-i0dAtGI55^G`g2vf5&Q5}5N>z%?J(zgwI9-WdG4f%Q>b z{-tp!%fI1?&vT^r$n1({1bjf;0ABR%RCN8 z27T5M{tcWduy-cPPT(ck$g8XN)7LaGI14#_h^SeXW|f@* z*W(de#^>wisAY=((tT03TsmV|{nlJbnTn5hNJQlI;1UpH)3Y^y0 zy*mzpJA@n>u?S_3`6|A?WD)wm?^mkz-xYJiItZlU44twYhSzZi=HvN-5ICxzN~N5K zzldJ1!XqBy{{l~naSgr>t{S9T?;}%xY$3|Bk4BB$;b(OWgk!+j;5~2@8pR~O!Eta) z01ql2a^Fh`@jBOot>6O!r{Vb!SE*71-{3qr9ergZZ@qKzeCXVuQc+Jk!uk~q6nuz~ z-DM9Hy@D^!JxD@sz(KJ8k1h{<6(58Gm%fJg?g?zj4eSJ`;ktEN_a}H>*1duE3m)EP znO_BWo`nJSei@Xy90pv60o`o_8o`@!-8yGJy97ztU88ay;*q6{6tvc4Zs1{XF(S5& zd-%UbWV<}|{N2Nck4Q)iCM6{%B_uqQ5T6h~BB`?TE6*t7^RGSM_KXMylM{l$_@u=6 z2NOpm4<8W>1|O{avBMK(>^$PR(&OLG8+E5WdskG>nD4#QD4ORjWUSe^G~c^n+5ZDD C;iuLB diff --git a/artifacts/test_program_methods/malicious_self_program_id.bin b/artifacts/test_program_methods/malicious_self_program_id.bin index a745e6f88517a7cb24ba9952a2932b8e539eab8a..8f974af78e4d346b508160277fd995ed3f273be3 100644 GIT binary patch delta 7512 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 diff --git a/artifacts/test_program_methods/minter.bin b/artifacts/test_program_methods/minter.bin index c6a2f5ec92802c79c42b6f4fcd3359e51100d9ce..3d77888fa6aa89396a238ee876d26aaee626aaed 100644 GIT binary patch delta 7453 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 diff --git a/artifacts/test_program_methods/missing_output.bin b/artifacts/test_program_methods/missing_output.bin index 77b3b0dd89719a628cc06b05b2c660b5229f3696..8d3a5096ebfbca55b0c3f9c67c9cafacd355a417 100644 GIT binary patch delta 7486 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 Vp%^P;a%hsKUAHz&3B5Dx{{W(!suBPI delta 7483 zcmZvgdwdtwmB7#ZCO?7_9>D-XLz(#zBqEpu1B5lmBTyp7B|HreA;GX9ML-@BBxPbt zlr8}yCIl)KT%b!^5S7Pd1tDs1-^MgqJn25xPh!zS->mNln z_cbI14uv!+f$QNIEy~~6;lG9EY4Mq&$&r4B7)sB!%T9$-wfNLqG)WrZj}NvFpAHSu ztb9$A!C9=U*7+WuHPDc9#TD#zeL_SMl^yTH$qz@QzvA|~CJAsm#be>k0j`9v-fzf8 zWlw($t{7xUz3$pQMm}aBKiiP=N?~ajgN7NBr1%s(CBP51(4-iir3|ctPY*X_z0$w0 z`uN$`)wTt;t^Oj%67q-Xq|+k%r_b z`APfuC!t+&R@l%aYZU9K?aJUf__X496aVug(o(H67QPO9@mU9N%`>D%t@|FFG%+G~ zEB&~LCN;39KMJn**^;#k#Q6hq9Nr$_#BRiEj3HSqqK=P(8^%V&P#YxOsmc0$KVFyM zA`Hw@^0XeT2ai*{5FWw$1uowfl7Ayr#$AX=hC2`=-`iDJLPtZ^hD65@Kf~(bW3Z#= zWbAiv%Sk@>>`Wx#8YSNkADL_jYOa3A+cjx7*^k6TxN(Xf=~ZyuBZi!a&bQ=E1~yJL zBu_2)72FiyyY67aY5oF*a8iNK8{q43rZV8qaK?21YIH~(K-$-g^OUr-OtkG zECVY73b|c0DTmXPL9fH_PKw9_u#;m0esZ&X6CB(??|SokkHf(TZ-ko-s6O*`C|e6x zcmF1IwD3?z4w=}I1MW^*Crw_0@yz9H_*$U4l);VT{jB{@_;Qhd3EOfgaWi~R9=6AS z8)_T2X161xj4$#$gv)0dZuUAMx&dzta8A4?JK#8_Uj^3$_$*upJIUzG@6}$D+*yX~ zP`nNnI5*0coMzw}1KX9t$lFMwDSo+H4L1h30p9$WA@h}f*94MmHrF{6-S8wl?h!xf zx^~cH5A0p%>2SszLmJ&2xmT0j43q>EzJaf^;RH5t&zO@aLY}C&#ICv#N)1_ecc*Ut zoQ}`Vf3A&bR69e7X{|ufK3dT zsO0w(tZ(50m-Ud8Rvp$4S;iiCDYvA&NX17Ap-wucLwjpb2PfcRhc(<9Xfg4x*{LtNO1bgLdIXn(_ zGQ)|-PB=L*Kd~1F7?}SwJS8yybvW0bU;RRiekT45gTbJ`TU{2`r)i1yxv-uZrwy<> zwAWMhK8FVI23E1Rn}wR(`%jwGR{EvXf{p3TPKtJ4^^+a+SK@0KPYa9>wflC|cWKs_ zl)U6>Lx!nCSj_t8*ZID8&BAu(c|k3Na|7#aftvz+4sOYMNh&te2hvn*FyxwA{~b7R zh#_fV&q&md#-|%2$lAyJ+cF()g1sc{^nfOnuy?yA+B16Un>4F;Hd(XVuRBZNd^kZF zupM4G+fUZd;2PV1YlaO&zSodq6;KPVM8Bt-tRbm|V}9n_p$+Hu`aE5-87O9gXXpx8 z*uZ<-8sPc<1Zn?MP14aHrZyN09}I9MoQ(bhO8#N>xnBA_Eo6`Htv{!Y&ZRABIA}

GE5=%wt4ZQn;;Z6c3-@aDo7mP5kss&$ z?r{=46O z9V`ocN3-&%=6}Zll`wPR9p`=C4A*|<^9S&;&kfn?u1~L1IGTjN;FrV8@D8{@EohD5 zMqxl_70I{ZmtpVbhR5D)@QeS4`;5C;{$7w{sJD;WhX?6x^&ypnco|;7gkFjp;lKpxVV@g8r6_DMjW}H6!H+H^XW{eT_#Z$6i9<46r{uF|puflu zz#rhj0d9h8+1IN`z3sgZ=$rJyga3j(0lgpLnC}fasn*S!NvVNXsH<`qJ|Ad3V`mWn z=66v3tQE_06&=myij|7qoWQnCoNGa6xMAgzj#NAn;od4zLMf+;!5 z%?UpvFFKeqNAcQuG@?s9{gC_*d<<3(L_{j*Q)&V&_lIyX3SCqjI@#eO-D(;C(PEye z9;U>_MEi_NyK0X9Tv*GtyD!jB-4UPv1bthMDfKG8<#vZPdTL0!U=Od*kH!qi=1ogk zXEuNMz69r1o6YB*w3IxkGToQR>0{=>TURt2DzDk&tMqB1_^%k>$9TQ6uhKqTtgrN4RWU(v0{=ApV={S-iVkn2dfX{A-xF7#c z9Zg@YNuOWi2y%xP!sA}#`$_R$_}IFL%%5vA7WP_-19sUv`XEiqvJcnkRts&hJ^YXQ zE?s-v{`yb!;@Td2TZ5k3Lfc<`{6kvXckRW0)~y&T?+1~M7oz^fb4kkJqL&PLm2KK{ zJf-}S?uoed$l;y*8lI))R`Pe?MUByG?#SC|T(48n>*;VwECf%_Gz^SW3h%)w=c4u2nQ$G>gA0^=%Pkbpw+t~z6-RyzKC$0)@14W<-HH((`1*_B zl+TcJ4;=Yx@ZbxkYSA;r(f%i~Uj=BFCSndLg8R+%AA$ycZZBm)=M)b4G*opa01zG6jkn^pa1#zHhia81NLF zOhnc*#o><~`NyW)EIC}3Nd!1^BJau%!Ig>8$H0+qxsNDvWNB*tM{s5`WtRQj2|4$p zz=Bg0KM$X5>0g_xaPUaR4I=B`F}-UfJK;H3qJMBX8-4<3oiUrQX{W(-OJx0eWndnh zNBd|wb;_CWDg!NlXSj9G;SNJEh$)AK%ejoi1aOB2NLJoVk;0WBfoiAUdzjXxH z@C1#$%8~4mnk?K*$T1+EH|Yhq@qN>34quE?N`yi;2edOk5avQMGLaS zAHl_4B2uReIz5Y9kw%0R4}1)L>cSkA<=?@<9GX1)<{Wwx&azr^P1FKc7&y?zlqAJH zX#K9!3a(HdRKX{2HJd$pA1?0bSH4axRNjgQUCn@JIEAUTDHV#hz*Yhq zE>Z(`&Bbdt!&87yv?VE(N2lNndfrkckDW&oV3=Yko(bo31kSZ|u2}-1Y3g9Qy|5F( zbF`Ed51R67Of=_~Ezm3}>Bj&w9EH;h2q6n*sRdIOl7w)P;`wlrX}XWAqhA9rf>V?{ z#N(O3krXH{f;S@fuI=k^M#PlUN`7vU#R5$5uH6)x;)HI|p2*o?H9QPnsU{RWNuB79 zM=Hd};F2D`!O2S~t#_MlTjb0i56|fukt53E=in^Zs{=UPj1Yr0Z52B+?}mQ&={u(p%|t4Vz6V;XBYV$e?Rj{|XUn9cAlx z3>-N~5-J0JgfkEMJa##4dw}<@pjMn?LuFtWy3R%C&F0em7rM&&RkSVi+s-{VpT&Sn z7@#(s3$OnN2E@7s43+N~XrMvx&V0>ElCV`oDpZJPuHv3jS~Hb_Er|UNBDO<$_=CNz zQ9pVkAw4~_PkMS<-;A_=8T~Ww?Vp~W-miM}moc5~&1Yl2Z}tDm?VXome))`j&*JcM OO}k<5d@}sv^8W?4B&UM_ diff --git a/artifacts/test_program_methods/modified_transfer.bin b/artifacts/test_program_methods/modified_transfer.bin index a370d528ac05595bf6c2deb5856cbcb81e05f8ca..c1815d829ef577bdd4272352b6f6bd4da164813d 100644 GIT binary patch delta 7424 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 Q;We7J%zmvn{NkE_0%i|@q5uE@ delta 7426 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 O*R)0UD`mmWKm9)(QGsy) diff --git a/artifacts/test_program_methods/nonce_changer.bin b/artifacts/test_program_methods/nonce_changer.bin index 5f95e69b3395d9990068ab11c18e6a9c9e8c499b..e11516ce10e5b4d09989f1fcc6607d58a427e6c5 100644 GIT binary patch delta 7524 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 Yzs{gIs?47ISYV;1ZMV;r1lBD6H=k6i$^ZZW delta 7532 zcmZvgdwdnuwSd>mBqT~AglB+&a}MF529iLKkOoLJSRO%nL?93#ylj9V6rn^RPShY+ zd4v`SLInI36_gfg(TVaDQ{W;NMC|3(Am9yLu>sMWN~!_+%{lvIhW`5JxA$6mueJ7C zYwwxTZ`&^awryFQc41A&&RX~9GM8p*?`Gt zuE}jU_CZs^v>-oiN1xZ{YB767leoU7m`X0qUU@;cG~YXSX;RqF9sj7QCMVKN$yfRl z>>gj~12yXlje-8`qsEKbtNQ>`Rw!<1Xc9KgFR{w595?~)t9Tt82RB#zS9rUJ+hXvZ zfu>X_`#yk2WSDZy2>3BdCWdPgn`O$^N}vIjL8inhp4x;BJp30p6)sQ){yajHt&f

4=DLh;X@wzR-H9D<+3GX8EEAW$VPa#htI)rqfJR~5_G&39`DZai>Wra*j1Bp zxo*7v)Qv>J;B+Nl!54oW~tQ{|3c|$)rrL-+YLF~wZz)nZtH()#qa3n#l^mLn{aP1g3YgfR#XShXp z20j6YJc+aS*Xzx~t;85Y%J_nihj4a*8R!O1hz`Sf9*%B7vcXYGemq>{;Wyz@*hxl5 z|2sHprYSoWPiRSXFrOV{OI~N75`pbXpjj(T&P;UM)hM{u!|UMuS*FZW@-^@&I9|1h z*IHxnBsb}5;C*nYoV&FlCkjoe3FJs`tY@IqBd`|^gU7Hz;EdryI973{ee;%{s9V>& zU}!NL2m7GRrYtu+jpt!O&#&}g-T9^zs`>p%WdCHp+!tCGUJEx@JTMtYJX`{odiX>5 z`a;@fa6LmNB=N< z9|q*Ac_W2O49*X*q06B19=dVR8bf~?@gnQ06Ig~^Jc< z{p}e67(F^p!qHQ)hFs#b-{S(6>`HV?N*z)(2U&mM+b z!A@#80htfic;wH)r5=8S6OHreFM^|7{qmo}jf*jFFzAi?%jH*_7?ZVg_V5TJF-p5- z7q>JLjpWiaF2VKety)z*T(ZvXrCC4Y7N6GWq#P+f*T&ctvy|af&v1nOYFlHMX4(BP zz1);6bp~lHw;eW>Yc=UyTIhu?sjmGs$?>dH0M~i=E%+GvaZ1120LqNRO#L|cMZ~H@O!2dsd#3=70BO@zLVTb;iy8_jw5iK%Tp!t5e@)_ zkfB51L$-S$>);|+LH--=hkTaWAQs1ucsLhMKz@jt-&8)lr!iMMYVYr9tky=x5QnmZ zrj)6G7QvBw@n6~hHXOUp^?&S8mV>9OB036x?J?(F`_&}F(vyD}M*lu-$_W*>S=kiJ zr>-0C!BO*EH*eU(dmHD&t>?$F-)FoUm0r_4+&^bZt>R&D!7p9Cm2eFlYO5#VZ61!9 z$kqL&DQA@aNO+t_|F>`o+?jdKr-gjZKoJ9>18ZBpzn}5#$irg@$W?#f-qQ4Ni5yFp zy+AWjaq9y|&Ufuv1lO`mhv2&MKAeO;tFTYFG_!A}8N0%))Zv<({fhXib(X@lHSQz! zG<@cg`+B_hQS#;g-1~DDJeYk$x57?1+cSRyPV&t6drXrh?z|Y`YV13>?T}RPMYTa)5 zE?fxbs|B-0lc5;cPDOGVyaNtZ?s3>_aDL96eBkQ!u9E615|2(Hl*}(t`~tia&Q|V~a86g!=+8s6@CdY*t6px;{g6FpOt3{QX_w>v&&9E?hi$mP8vzQ(8F7X+#j?ymOf&A!>X z%SGkUdB*veOwOyKrB5c<{2j=tP^ys5p8{q9jlJz7kIY)Bj;+iXI^#8`w3?W z^T9j_m)3-HL2I83R@-+d#OyXcDO5am9vz@4B(KW`xEfXk$h+v5cRsl{!6gWERB@=b z=gcsy$e7K)qO*1PNmN*{QgiK_bBxvDTBN=5DdT*Hn2z&F$RR#Crs6x&E?#XU>e_Dm z_iK!kVVRLn)9Tmz8b5re!BHE0jpu$5u36^`+(b?%NO^|(SlVc){L0?H-k7Y%R5E^m z@ng!qT)W3B#@q;PkNxUa<9y_l9~W~TpZG*nz-G}T2G{r+pG!C3%2Ph6RR?kHd0M_F z4-#L{q}vL=gsb)E!F6A8o=U#RKDWb|9Bz#&(d0wqa5qpe>)=B$VgWu2f8^l~&ykNF z`AKjE9BRE=;RBxe|Amiw^t)o`5tl8Q$$;%qcpLsNS3nMxYI5Ae*)Q@31ST#416RR& zJ$wp&9}YRxVi|?z(SID?dCjLfh@H0EXc6J7Bs!6I`x`H^wrpAu;g>oUtvY*-ZJabL zV<{I;j9;#+Q^|nOM)U4ay!s_gUR&pGei|->{mR%@zt-d*a45QC;UD0TGaKPL&-^*~ zpYHraV!q55qDNpFybV@$AaB5X;2vtjD{zfx{w4e7USn>!RlJ-FXuYfV#7Zu}j(#zf z!+YRwHu?h}|4twM0Z!Y5Bg{LTx{43G3cjBdKLb~n`(>QkcORUx!7ry2--5$l@yq3) zye=8`)ent>dS>wwBG}z83)IGKi|L!2UBi9{$HVQ_LJ7}mG64=fDW0>hRv7~|U0Z4Q zJYqcCL`$=Of5O;hXua%-r+AEOeeLMeMq(3fKzaYOylr2$&z&_^hgqN964_Q8bTEc0 ziM%Zmzr~c@?9+ntF*F?N=?^p{hm+v4<-EDo{3CG6rC^;q^S_1b&Ijw$;oA||o#+oV zFo$PHa>s7vZ%9zzk}nxJ!-hF(!R)(eEG+0WU`N4%n_u=xzT&QTYhoTY#Uxjp`Ni;t zeZD~9IeY*6FLg5 zn{nge0dLd*kA!2B{SvR{ZFslGfOPtc@}Q+1%9qN^Tlx4AA-ME9DWDR-et-@?hc0|9-#Lz zAIh1|Jvp+YTw3ag^5FUsJ|ol-=!tZd&jUXVtiS?k4AibMWseH!XK?)o!S60-gN!5$ z!eZx^ba)*f+qKMdVgVk|mnvRqLP7`7WDp#Px8kvI9S&kI4u;D{csaK&{yPfcvW0u9QZrQvKdyk}D23cR_3zd<~hZDXJ{^4>q*bX;b^fi`g zHN2Iq-=GX^oyie>XNu)CDo0@<1IKolfyU?X-{7K4zQ7+Xhky1EW%O3?OTghv@Y=U| z_bL4~57U6rk5xQ#FlBg_m%Yl7$YGS~YlIvFVz`vX!P`#zti}+I%q5GH+`3%`$KT@T zfwK5FJjk;+v(Op-87}nj4S1f13-YP;e+FN?j=`O$atyc4fB_EQgmbQ1?t*30sLQ(G zKR8EV_;hNwN3bJ1yctgI_qS_-jpMD^s}ufU}VzQDW4(QjWwS(<)1p*+rk8}1GMIB@3ISPX>GC`PCa zK7|jp;UT3${^K)*_!ZZKO+1J9csOkdmr(`JZneQVIJJvkwyM^fTTH~Z`eX?og3gAQ z;BmW%SaguBC!f`1#X*u#8Bhh+dpMQ|O+Vz$Kf_CJ9@lY|GVm)nh3hrcy0ncV zBDPa`_>tZ5vN7sbtK{U=UdhQxeNvJhOzE52yKi!G@`L4_{y!|%-dGd%Q`7%AZ*RXI hHckJ}Q>Z>#T7K_u^l*FLqVOV3J8WMm3g7hXzX0)gth@jK diff --git a/artifacts/test_program_methods/noop.bin b/artifacts/test_program_methods/noop.bin index 4e5d29bd8344f13229d08d17c41d1c46acb1133f..035690119d05ef6c099b11aca1efc3a22da6d33e 100644 GIT binary patch delta 7513 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 bqYkdGTiW33VOK5jm1|nH?OW!1j4b{ zmMZU1NIzpQ^imo=;2NB0spR^F!le=LRY6b^FG$o-;quhRa({EqKAEB4{qwi?+H0@9 z_F8MNnW~d_Rh_(RNx4>|uRoFW%#R{5j|3!2L^NHOr~e^xD9Mz*u&!&;1Ydxov@lP% z51i0TH2-f~MJ^9E#Z+=}_L!6UAkDwZr%6VNJN{dH*(rUL7To)jNKq8X}|1Q%yuhvLU>)#L~4ZigDj-&^722TjRT^TX{8r}bSi!OiiS%pQjxwOzNn zHEDqx75^SSlM|3=rKcHA&vpGX;2upHvP`K}dS}7~%nwlVZ^Eq}`7?0LGLy9 zvONNG;1&<>gv)qgP(!pvIAnO4fX^ysmpQw^>PnQwqtObnm+)yz&VPe@z}4> zUl8IubQ#u5llA8Uk{lX{lGp9r^ZHReIIy!O$8y~Wn*q1Nj+_&*ufd6vUEUARhHKS) z_MMtso?=QD<(WUiIaAtBE`Nt(rn#Or@4`^{czAtKCNfa}s43Y>;R-lzy36muv*AWH ze-+Nib9o>;_ncu$sxqJ$&YS6`#tyhV-wa)?bD$1gHCY9lA$>tj7BW!n5om&I;6%0I z*lwD%=R^;|PK+Iaz4OW4Z{A=N?A50edtMJG!EFXqym?W7K-*k#_M(1tR?Z!ooMI

9b3Y(hSkdFP61;OlTCov*=p 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 delta 7923 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 diff --git a/artifacts/test_program_methods/program_owner_changer.bin b/artifacts/test_program_methods/program_owner_changer.bin index e36a7c10ff14fcca2abe7431a3c6608553823b29..98843f5d41b020c9de625a50e90c3042d968ea34 100644 GIT binary patch delta 7468 zcmZvgdw3O9lEABPClcfW2?Plmu zg5YN`h-8dAj1yg6tIRfxD7c0pGan8x%L2}V#1Yu=(kL+E@Y-MZJ)Lgm+duMs`JGdz zPF0;cb?Wx+i>-HGY+YQU?Fy8hP91bdqiFGCC^cggC1CXlSf&1|g6k#ukTd24BHV1Q4Za2^DsFk7Cb5|wn{X05M;UknE_>XNjY>YheC^)?JI3t1Es~UFNOd3* zpC&;~Vn!I!K`pC-Zw$c>#pz8onUCF#P-DmYC3ycZLx!sP=GNM80y~0cx}iz^FVLg5 z+YK)oWk{{!%n<%(hb2boSqblg-T3^`o*!+kV)QJN}Uq3ZJ6V8RlD}E2Y z3+FoAG9dp=sst~ECCwR#l5W<>?*oSe=Ai^lawd8ib`xF=+j4fsCbiLIuaBp|_3&;r z|1DfR*$|dF^1~j~q-K&AiBfoDju+`q;YCvnIT=}RN<9Okry4R^DeU-=CY3(Uf$QN~ zHD3lFndb2!cxSF5>B@ln6E&%u?p=+caO_OOIa=GHt#ATtIQmRYTD8?A-6vqe8E}f) z@Ep7hkA}f^j^(wxcm6N1e}i5R->a_@_DA?I++aZYTh{}Fwe<4S*8_*A|L_2zm>d>z zz}YFSwI)x(c;;{sywg`*cEg+h#mm}%z*}Z{mu?V;vLALmdDUwAW1xAoSrJP}8837_ zgfpHtoNTv4loE#>K3)vx!a*fp1Lyg;RSV7(wv*9bKMj^ShHO>*M|cFlGvut3 zBadowo`E!jj$0w@!1@I0G%5_)|$VVHN z>if)U%2VbF)T#rxj@YeVdY5c`nkG@pnOAYx1N+O_O?arUy!G!%{4v9=rzX6`XVzzM zW^RL<0eQyyMAMrG%&lEC*}c}i&6>3CO1bfIF`Nmz&>&r((>0igibL#$}|5V;TTA!wkuqvYU#0BVp`31DZzl^i zd8)4_g=JnT{SZDmy}?OIEAQ4y-w}6};X2>&LhA~{n)wLoPQGbKraFTvcr$D$*T(kK zBz}e$(=s>;c2ngzyv4@}{i*bQ z`~A+4MJk>j!db|7VZEK(SK+;|Ye(ASG(8^AkRk?ByaBP`UH{=7i2j5oo#%N99)~aB zNT%9gC0xXMmk+|HVE3hHTwal+=W9K!rrq>)+8C3rq~udW)~kS?hi~n{e`S9g;uQSY z^Zx*Bz_ZjP>N%X;_Lbly5nOtPVxr>qYk0R$?>Trg{7^)% zbi%J%))Q9tiI%0-$UgdxDDyqyaOi8|tMpujYrpY&*o=`B_p@H}xE78*?>(O<;T!DZ zJ_-;1g1GzUXT!C=`QO3?-n=P4Fi_(YNE=1K5ZH>Lb}_mD?_A&oIB7JF!fpcR!&(1} z11e$Og>&mX{x7)jg2&NgNQ8@qY;p9{>Xb2%bjhoR?Z=`3&UJ4PoWX`|oX7>_Iy@0} zZ*Kaydky~cKk@AG_s-w)a}*xFX)PU~H`fOq30lb)Mc?+p4A*v>%vU_ONFd>PeqCg!oe8S{3fSp;WaH>5Zs-$P!X#Rk6j?HJsT1xac_ z>)H1#kV#g>5Guv=KGTT9kG%I0MbZktH~-!H{Zjy+WTR>|UxA)#pCezvH+=l?Q#@y| zTaj|D`NQ;g^y%L--mlOLK#!-%w4V$)rS#^*W&bdwL|v5|aHX&F>^p}5u)dY@XE9vw z3()7*{E_;;VCuqbeka}aI>TYaVJqBO?ei{nWN4uVK3_g%l71#`$3(iE79pl0@t?O&Nk zp0o-{p5g=fROlC6`GDM4K;?l|o`mHf1OAS?@d7qLpsk9-aO;zqx)~D}EaIu^6p~<6 z#DRm>$UJ>rv{q!DUZ9_OC~ghwmJAI^jf(F+>x;E|azJZm-Cn03jv83Rn|5kLsNr|- zQCP}D4d*`UMe?95Q<#si#GS8XTh4V;I4CF^kPaQjF`huz|Z^m6}ZqRe+bTk-O}6am-ywI9|OPO zTVDnjd2GrF2A=jUXoI0IdIHkDM3a|%{QDJ}%z}xFW8f`#o{t|}smWZ}b*LC#8EnAq5`)T>k34j&5A zXDGhCT9Ywl-sTyv(5b;;W$beJH?SMs1MqvW>rBk6G-$s05%Bxo{2+OafvrA)qwsjx zt(Wm@hz{IMZ8!lg^UeQgjr_fyA8lS*#eLo2tvgmq$B`HoLpdB?tI4Lf!p?7hyN=F+ zFT!EwZGI09zRk}k#dUD$n_I#6 zy|`9qO*x_`-=}?7zV6S^5?mfYd<-=&Cuaa@u;aKf()*~vC7IG$bn9qAT! z>XFS~^H;KpmRrsL2zNdkx#sqKrpER9Dsnw--r0x_t$Wz1Up6Pk@b?biLL%!;S;s&P z8;(~BZ^NfhXxCqRK}utO6Pyc4uHxfx{AY$3q>4S?^?m~WamcxMHa`njANAya3!kcE zo_k==pM|eo3`wP;;|M-ODXH zU@*Ue>?gyX&xYqzct`dnocM+p(Z6=2g*q0J66L^!P80&>Z?WFA6}-_I3ok}IisQrZ z8j`tSQ^@(WYR_MSOSVNmuGnmJ;Yr+X$X=cfn-{|CnRj#M^==&5A9%CW5&a3iZ1O8Y z9YH~NipnwPlY!|dsA8aYy+N`?6b?*g!Jf#^E_;LRZ~+#(9_zi3XFjOpx5BGS4M->e zntTL1@m72Q-a?XNFP|l%C8jq=#G{M<_JU|>%0QJ*U?iOJR>=AGYa6f)KI!A8>CFE% z)Q}^);q{z3k#`*W0UnwVc?|6J$A8Xa%aNt9rOm;9IM|*t%l^*5;>Qp`VUFTzcs+GE zPjROK_a4bAxb*XodyS+PHolK^G4=)zWYF!@h8nKvaJcLe4k-g)hNEa7&1|*7Hw^5p zGMu_+D;PQugSdtTYW{ur)ccVi0`~m4L4^E+$meRC@4_2dpP=MV4B;A{ps`muQZ$^a zT1m(;AdWZb5AepLA+sTb`?AU6WbfWyhZAn|?Lb*9Q@OXkBYG50CI0o1}Zw3*#Yfw5`5!Xa1=rE5nZWfY6#gpKjw1Oonq&4vR z`$JN!IEsZy4|tVtIGoXh2VJc{1{VbB;FSEt`DA_5kgQjH95!nhC{zPE&(d09K$

Z3sDdzgi2sPd;?ys_>Ce8$s>5ALfq&D4DRF^JON(RHRQBKwnM97 z#WA2L>$S$!$d+r9wW3?l^X%=RxDe6e=HA!NIrb zy440F=o*qbgr!oI-h=RwcS5p+-+{LNadZt?+lg4y2%D!EDE^crR37$NMrHExN;rF; zH(ysmUv-WRm4Tz_Iy={e8cKJwRp?to+d{u>-}CYCkt-OWHhdS(x`_de90LYP(rT^| z&#QappTYf_gk`-7@uoHWLupM{2KFKLxs=we%EMG^%2_??PRrgs(o*}R_v+oVXOHwg usXZR;(Ytr~(fX(aYwh2nZZ`SWW*jgDlNr1FMJN1M{#_nf;A=lDMF4?Z8hd#}Cr zT5GSp_BwaZh3H`(0(?;D8DV-RWC=t;D0U7y|NZvh$B*B4zCcEJkaFiC| ze%Aiefkj&E0@0*&kRgVWyJQVJ6BwYy7TluAi41T2F>7UGV7O*hYMNXgie9B>0J;-~ z8B(G6UATTySmKo(ZFEge!Gjf#hL6E9ip$~2zxMbjy!{u3)F^ujF*tj;AxCt_?upVl zs7drFLzLJZ0eb@Va{q*{I};sw>Y1c1_rQT_icjkVAn; zd^$#J(r%m~iE7yn_}XafP&}lgCJV5;Eo$s|uYeDXHDrvMkF_el2<(bBhZvf){0cp4 zyS;G9{f0Cu{$&XNCx@k-(o+uC!)|>3Y|oE3WRKE&13t-oKP5jRtVz)nPreK;_1Kid z3>@+)Y=65Z`JRB}!Z8yK$!rsGybLaXAS{O3V8Wf68QZ^yCi{Fm3vPk; zsQDJSbebV7bL7YM)a1xiFA~qf8>f4bJ^+`@Fr*=}-jr_{7(dgH@k(J*FHN@kcqZHe zH>&v!@QGO-e+bv*8s)!XLq{22^jl5*VcosXl!raD4XVZiHf5 zSjYiqr$OB{nFQmR!zFN?ue$7oYaaBn_D6VIfp_V$Ig|si>q&*x@oJ!R(A*M3NEt77 zJ%qF78cw#`AsQHq9X?(O=flxT{(ZR6$KAVdrm&ri_WIed%rm4`@t@&(=5r!!O4nO8 zsYPJB5-{Pi>0Y^d8?NzjFiw-aM+_-a@_FzfI57~}Ft#hnJ;O`7Jh%{cuX8orG~bYO zPLA9SFp%yO=tt!1*>DmYIA;teFdwgYx0QQ6Fd$&&-$8b-VB<&~l)u6iC3sH3w>_Vd zLL?R&QmE!rQZamHSnhK5!r5?);$3j5k6Yk$AE%{ha;})N8PR9TdZ6I|61GA8KvLEh@ynU3mqb+cPZ~Z`m^C^x`QS(dTT^N+_upW@t*00px zGT);-Wv@o9I)JN){kY1zWRuc0iF%rO6^A!qe>uAjkMWha;r9@K%y8@JDtMdEtasq- z{8l#uQfTeh^v(fuXJ1YBRJylWlOFvjH$HwE&W7D`_D8rKY-ffYkF#)tPd+!91N8Bq z;27Wf^RRg9tH(v@pT~CN)cryKp?X+QpQYtmn}hm*XlD-NRwrdpbxK!#SL_vrn|#B|t!9Qbvk&STHW-qv&R_>z0~^Y zybX3Y${9-z!tUjI*6Q6?-=djwMv*lC>6M*YIQox<#3=_(!dxq4eRVYa-d=5aXl zHA6~NJnP{c`g^^(Gv^Mgxxa1((jFd1oIWz-n2OtHaQO+(jXQIQ!$QxExz^@1{Y=pO z_Sfw9Uo?$s-ILRB|CAw@6u$w-7kTTh!|PzTst%t{ar5yic;dZ|D`V5NM zqOjb~Jm=Fz?qwhe0r$YxRCmnK|2|>hB%V21l~hMAC?#;k8H$OD+sp7CpWgFu4csfD zSMI{EM%EKn_6dq<<^EjX6=iNG4#z$xzDmy(xbX|GhaH(qaX;rZkI%s|UwO~xXYe)l zaUX?*UlDiT{9L%vH~$J;H(D!)>z(xxM>+XR&4#q7jW5omQ@KQ{t4O?wMTyL> zQ2ZUd70yu{uKr*orSZ&E)GYA=G{LGIrO(pMZj7fd^#VBs&M0s*A|N&JJm%fN{$n;R zT8r0%X3n8Mf$a>m52hY&@@3TEhcJ)zotU>P%@gqCD~6Ot1~xjR=C`2dkk64u_?nMH5A&SC zZbh17Ef}kB(Pw|hcxJH|fb_X!+V_T>QhFD|>;7p-nYt?fgtz)S&&+uQfc0IKKP%xD zUx41V7Ub%0MW-#F%y-gHUS~LtIMl*PYM+;|BTEala#Qt;srs4N-Bajtx`ddD#D9U6 zJ54{{*33j*cDGP##VSB9@sfM4K?zZz;(9QzD&`BMRVwq5iWQXAgm+$CNXDq`*Ul$T zx`w1s@!>^O=;f|_fa*o%fmNP_dytW66^G0{YSLz6iCpOLHk2wZ}tpNgc$@r}5vH2V3Azo(W4(>2HLaKIc4@ ze3O;3U7r;+-$u{kwPC?s=fVU_DUC2<4v&GC`gko|?34cx&Vk+18?y?(eDe>$%YExN zz{@-~Xc`WE!U(8oOiNiEal2_NrUtw{k)TpR;$!1H~a^;=CIfnA55hD&_w--Wj} zhg1czp4q8)X&XxV7asg};ns(24LrR~ST3t*6;OD=K5&vSjBzxib-y2fLHeEQL*Z4b;5_am5 z&1d;5TSLpO=C8p?=OWkKp1)V)di^bOJ#F6ImJY3d*r{JO_ijfbY~i<%$a+(%7&yX) zc}n38_!J85`fD#pyM=FpFGG^AxB-qkXox|o*z+mv3HTc!=ib>|1RwgylYa$1)xKGIfL6@mgK%_eSQ6EIpU%kp z444OJ#6>c|USA70oe4SLR5o9Mi(Pq>fq#$V-=FLSeQ&#&;}S8L zuOR!$u;-`3^EP`&_E$LJc`u@;?xck}8Im&Pz{Nfk0_J~Yy=g00pM-@MA|A!^!*C_Z zT=YW7`DxXjZ-&cWjr_P`bGR>0;!Z>M@pRa{9Ij&C&6(#@II{P6v(ynCgD;tUMW`cK z(x0Mo()r22bQJ7hps~u3dgalm0W5eu^4Vo?PzM)bvFmYg5c14NEBT#pd4&N91%RZ5 zop>ug3~wXJv6r7Eg3^94N5rFx|Mr5QbY@_?PvCwyYg5Si?bkM77u?|E&Kb;q7HZ9r zy>Jz0PUIbjF2iHuBaeZ-zF{bjEk~BhmNs|F#KGGsv+VB-to#K6D4eeNJ-CWGT&Vc2 z;Wr=2@8F7eLhdz^v#{|^q>HgPh|i+iX$-Yq(;Rr+MI2HFu7;y%AI-^XgD)A_x7~2+ zo~_`%5g5cZEK>9T0iSv$@*!Z)KRA+*?}+?dZL>Ct)|vJ3O8(Q)T*FUj>{X7G+^0#u zt%Mu{VtJE}z#BgbnXMr_IGHRS;N9D+aQt6QU-N> zgjhDuD$DyndUFm{!Tucj7H%=ya!r(iJLhx8okEhJcsg81D_EvN`aWFM zJ|v}z+psXXn^*aA;H(Zj=xY7Pa8WcJoRXimfUNHrk}Aawuz7@mVl^;xA*~e#q`Lxe zMQ4&yc@(#ZIuYv`kO{{aAu*JEjm;c^eJ$;4HkQzA?HY1=VLO67m+;n(3rU^IiMl14 zDXD`PV1+Hvbtxf4VWv_z11^LM6u%6gfZe2RhLb|xTQQi&^N25pHo@bW->BA~hnwI= z#XTQ0QNS6x*X~~*LqV7jDuK7*YjC;Z^~)$Eci@o<@h!_SxQ}P>6u6{c$Z3mghn|6r zpM~X^^7s(ka$Dqg1AAUGOW2@$7!K0AEi5v+30!D;YkXWk9WY)FVc0Z z4RYxkk`u$SRh8bO@QE!US;2Rpt^Yx~hMb*5tYd`DzcEnyCP}C~On-{X|~g zg);i8FWFETIFYV1sVUT2x?|R$Z!K*L{kDD2C&4G0F+gqj5}fk`2DEhy7%BbBxkfy% z?wP*>XLblnl?rjqTK=K5W+(%P68n5gYpwF|ZfnLlJ?chWT3W`yw6xTF(o+Ye56-xI ta9Ud0pz7l-QSnyA*{B~n{J-U_FKz%EVx3`23nh!1z&vXe*sH5lj#5e diff --git a/artifacts/test_program_methods/simple_balance_transfer.bin b/artifacts/test_program_methods/simple_balance_transfer.bin index 25ef436e6706dc2f3330dbd67c91ca2a6c3558ef..79efa3f8af9ea643ad358c6503c9fc03248a6e56 100644 GIT binary patch delta 9016 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 delta 9046 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 C0MBgz diff --git a/artifacts/test_program_methods/time_locked_transfer.bin b/artifacts/test_program_methods/time_locked_transfer.bin index bf0cfef263b455221aa8a4b12adfb360c1c611f2..f991da9a078065cbbc4ba5b8d052c7c599b6f9d3 100644 GIT binary patch delta 10452 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 c`S`8=4_aJLY!2`1U$RcS)7g(!IiNuS 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 diff --git a/artifacts/test_program_methods/validity_window.bin b/artifacts/test_program_methods/validity_window.bin index fad0c5160fc208f67e9e2df80435a67a56c649dd..42a18ae243280a2c39c43665913698db529e64ce 100644 GIT binary patch delta 9911 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 delta 10595 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 diff --git a/indexer/core/src/lib.rs b/indexer/core/src/lib.rs index 120ed707..102acbd4 100644 --- a/indexer/core/src/lib.rs +++ b/indexer/core/src/lib.rs @@ -72,7 +72,10 @@ impl IndexerCore { acc.program_owner = nssa::program::Program::authenticated_transfer_program().id(); - nssa_core::Commitment::new(&AccountId::private_account_id(npk, Identifier(0_u128)), &acc) + nssa_core::Commitment::new( + &AccountId::private_account_id(npk, Identifier(0_u128)), + &acc, + ) }) .collect() }); diff --git a/integration_tests/src/config.rs b/integration_tests/src/config.rs index 630552ac..e6533d00 100644 --- a/integration_tests/src/config.rs +++ b/integration_tests/src/config.rs @@ -3,9 +3,13 @@ use std::{net::SocketAddr, path::PathBuf, time::Duration}; use anyhow::{Context as _, Result}; use bytesize::ByteSize; use indexer_service::{BackoffConfig, ChannelId, ClientConfig, IndexerConfig}; -use key_protocol::key_management::KeyChain; +use key_protocol::{key_management::KeyChain, key_protocol_core::PrivateBundle}; use nssa::{Account, AccountId}; -use nssa_core::{PrivateKey, PublicKey, account::{Data, Identifier}, program::DEFAULT_PROGRAM_ID}; +use nssa_core::{ + PrivateKey, PublicKey, + account::{Data, Identifier}, + program::DEFAULT_PROGRAM_ID, +}; use sequencer_core::config::{BedrockConfig, SequencerConfig}; use testnet_initial_state::{ PrivateAccountPrivateInitialData, PrivateAccountPublicInitialData, @@ -36,7 +40,7 @@ impl Default for SequencerPartialConfig { pub struct InitialData { pub public_accounts: Vec<(PrivateKey, u128)>, - pub private_accounts: Vec<(KeyChain, Account)>, + pub private_accounts: Vec, } impl InitialData { @@ -45,8 +49,7 @@ impl InitialData { let mut public_alice_private_key = PrivateKey::new_os_random(); let mut public_alice_public_key = PublicKey::new_from_private_key(&public_alice_private_key); - let mut public_alice_account_id = - AccountId::public_account_id(&public_alice_public_key); + let mut public_alice_account_id = AccountId::public_account_id(&public_alice_public_key); let mut public_bob_private_key = PrivateKey::new_os_random(); let mut public_bob_public_key = PublicKey::new_from_private_key(&public_bob_private_key); @@ -60,12 +63,18 @@ impl InitialData { } let mut private_charlie_key_chain = KeyChain::new_os_random(); - let mut private_charlie_account_id = - AccountId::private_account_id(&private_charlie_key_chain.nullifier_public_key, Identifier(0_u128)); + let private_charlie_identifier = Identifier::new_os_random(); + let mut private_charlie_account_id = AccountId::private_account_id( + &private_charlie_key_chain.nullifier_public_key, + private_charlie_identifier, + ); let mut private_david_key_chain = KeyChain::new_os_random(); - let mut private_david_account_id = - AccountId::private_account_id(&private_david_key_chain.nullifier_public_key, Identifier(0_u128)); + let private_david_identifier = Identifier::new_os_random(); + let mut private_david_account_id = AccountId::private_account_id( + &private_david_key_chain.nullifier_public_key, + private_david_identifier, + ); // Ensure consistent ordering if private_charlie_account_id > private_david_account_id { @@ -82,24 +91,26 @@ impl InitialData { (public_bob_private_key, 20_000), ], private_accounts: vec![ - ( - private_charlie_key_chain, - Account { + PrivateBundle { + key_chain: private_charlie_key_chain, + identifier: private_charlie_identifier, + account: Account { balance: 10_000, data: Data::default(), program_owner: DEFAULT_PROGRAM_ID, nonce: 0_u128.into(), }, - ), - ( - private_david_key_chain, - Account { + }, + PrivateBundle { + key_chain: private_david_key_chain, + identifier: private_david_identifier, + account: Account { balance: 20_000, data: Data::default(), program_owner: DEFAULT_PROGRAM_ID, nonce: 0_u128.into(), }, - ), + }, ], } } @@ -121,9 +132,10 @@ impl InitialData { fn sequencer_initial_private_accounts(&self) -> Vec { self.private_accounts .iter() - .map(|(key_chain, account)| PrivateAccountPublicInitialData { - npk: key_chain.nullifier_public_key.clone(), - account: account.clone(), + .map(|bundle| PrivateAccountPublicInitialData { + npk: bundle.key_chain.nullifier_public_key.clone(), + identifier: bundle.identifier, + account: bundle.account.clone(), }) .collect() } @@ -139,13 +151,16 @@ impl InitialData { pub_sign_key: priv_key.clone(), }) }) - .chain(self.private_accounts.iter().map(|(key_chain, account)| { - let account_id = - AccountId::private_account_id(&key_chain.nullifier_public_key, Identifier(0_u128)); + .chain(self.private_accounts.iter().map(|bundle| { + let account_id = AccountId::private_account_id( + &bundle.key_chain.nullifier_public_key, + bundle.identifier, + ); InitialAccountData::Private(Box::new(PrivateAccountPrivateInitialData { account_id, - account: account.clone(), - key_chain: key_chain.clone(), + account: bundle.account.clone(), + identifier: bundle.identifier, + key_chain: bundle.key_chain.clone(), })) })) .collect() diff --git a/integration_tests/tests/keys_restoration.rs b/integration_tests/tests/keys_restoration.rs index 54b9474a..e95e8622 100644 --- a/integration_tests/tests/keys_restoration.rs +++ b/integration_tests/tests/keys_restoration.rs @@ -259,16 +259,16 @@ async fn restore_keys_from_seed() -> Result<()> { .expect("Acc 4 should be restored"); assert_eq!( - acc1.value.1.program_owner, + acc1.value.account.program_owner, Program::authenticated_transfer_program().id() ); assert_eq!( - acc2.value.1.program_owner, + acc2.value.account.program_owner, Program::authenticated_transfer_program().id() ); - assert_eq!(acc1.value.1.balance, 100); - assert_eq!(acc2.value.1.balance, 101); + assert_eq!(acc1.value.account.balance, 100); + assert_eq!(acc2.value.account.balance, 101); info!("Tree checks passed, testing restored accounts can transact"); diff --git a/integration_tests/tests/tps.rs b/integration_tests/tests/tps.rs index 58e1b001..ea8a23b3 100644 --- a/integration_tests/tests/tps.rs +++ b/integration_tests/tests/tps.rs @@ -18,7 +18,10 @@ use integration_tests::{ TestContext, config::{InitialData, SequencerPartialConfig}, }; -use key_protocol::key_management::{KeyChain, ephemeral_key_holder::EphemeralKeyHolder}; +use key_protocol::{ + key_management::{KeyChain, ephemeral_key_holder::EphemeralKeyHolder}, + key_protocol_core::PrivateBundle, +}; use log::info; use nssa::{ Account, AccountId, PrivacyPreservingTransaction, PublicTransaction, @@ -107,6 +110,7 @@ impl TpsTestManager { // Generate an initial commitment to be used with the privacy preserving transaction // created with the `build_privacy_transaction` function. let key_chain = KeyChain::new_os_random(); + let identifier = Identifier::new_os_random(); let account = Account { balance: 100, nonce: Nonce(0xdead_beef), @@ -116,7 +120,11 @@ impl TpsTestManager { InitialData { public_accounts, - private_accounts: vec![(key_chain, account)], + private_accounts: vec![PrivateBundle { + key_chain, + identifier, + account, + }], } } diff --git a/key_protocol/src/key_management/key_tree/keys_private.rs b/key_protocol/src/key_management/key_tree/keys_private.rs index e3e3414d..9141b120 100644 --- a/key_protocol/src/key_management/key_tree/keys_private.rs +++ b/key_protocol/src/key_management/key_tree/keys_private.rs @@ -13,7 +13,7 @@ use crate::{ #[derive(Debug, Serialize, Deserialize, Clone)] pub struct ChildKeysPrivate { - pub value: (KeyChain, nssa::Account), + pub value: PrivateBundle, pub ccc: [u8; 32], /// Can be [`None`] if root. pub cci: Option, @@ -39,8 +39,8 @@ impl KeyNode for ChildKeysPrivate { let vpk = ViewingPublicKey::from_scalar(vsk); Self { - value: ( - KeyChain { + value: PrivateBundle { + key_chain: KeyChain { secret_spending_key: ssk, nullifier_public_key: npk, viewing_public_key: vpk, @@ -49,8 +49,9 @@ impl KeyNode for ChildKeysPrivate { viewing_secret_key: vsk, }, }, - nssa::Account::default(), - ), + identifier: Identifier::default(), + account: nssa::Account::default(), + }, ccc, cci: None, } @@ -58,11 +59,22 @@ impl KeyNode for ChildKeysPrivate { fn nth_child(&self, cci: u32) -> Self { #[expect(clippy::arithmetic_side_effects, reason = "TODO: fix later")] - let parent_pt = - Scalar::from_repr(self.value.0.private_key_holder.nullifier_secret_key.into()) - .expect("Key generated as scalar, must be valid representation") - * Scalar::from_repr(self.value.0.private_key_holder.viewing_secret_key.into()) - .expect("Key generated as scalar, must be valid representation"); + let parent_pt = Scalar::from_repr( + self.value + .key_chain + .private_key_holder + .nullifier_secret_key + .into(), + ) + .expect("Key generated as scalar, must be valid representation") + * Scalar::from_repr( + self.value + .key_chain + .private_key_holder + .viewing_secret_key + .into(), + ) + .expect("Key generated as scalar, must be valid representation"); let mut input = vec![]; input.extend_from_slice(b"LEE_seed_priv"); @@ -88,8 +100,8 @@ impl KeyNode for ChildKeysPrivate { let vpk = ViewingPublicKey::from_scalar(vsk); Self { - value: ( - KeyChain { + value: PrivateBundle { + key_chain: KeyChain { secret_spending_key: ssk, nullifier_public_key: npk, viewing_public_key: vpk, @@ -98,8 +110,9 @@ impl KeyNode for ChildKeysPrivate { viewing_secret_key: vsk, }, }, - nssa::Account::default(), - ), + identifier: Identifier(0_u128), + account: nssa::Account::default(), + }, ccc, cci: Some(cci), } @@ -114,17 +127,10 @@ impl KeyNode for ChildKeysPrivate { } fn account_id(&self) -> nssa::AccountId { - nssa::AccountId::private_account_id(&self.value.0.nullifier_public_key, Identifier(0_u128)) - } -} - -#[expect( - clippy::single_char_lifetime_names, - reason = "TODO add meaningful name" -)] -impl<'a> From<&'a ChildKeysPrivate> for &'a (KeyChain, nssa::Account) { - fn from(value: &'a ChildKeysPrivate) -> Self { - &value.value + nssa::AccountId::private_account_id( + &self.value.key_chain.nullifier_public_key, + Identifier(0_u128), + ) } } @@ -134,10 +140,7 @@ impl<'a> From<&'a ChildKeysPrivate> for &'a (KeyChain, nssa::Account) { )] impl<'a> From<&'a mut ChildKeysPrivate> for PrivateBundle { fn from(value: &'a mut ChildKeysPrivate) -> Self { - Self { - key_chain: value.value.0.clone(), - account: value.value.1.clone(), - } + value.value.clone() } } @@ -189,12 +192,12 @@ mod tests { 80, 170, 66, 217, 79, 38, 80, 11, 74, 147, 123, 221, 159, 166, ]; - assert!(expected_ssk == keys.value.0.secret_spending_key); + assert!(expected_ssk == keys.value.key_chain.secret_spending_key); assert!(expected_ccc == keys.ccc); - assert!(expected_nsk == keys.value.0.private_key_holder.nullifier_secret_key); - assert!(expected_npk == keys.value.0.nullifier_public_key); - assert!(expected_vsk == keys.value.0.private_key_holder.viewing_secret_key); - assert!(expected_vpk_as_bytes == keys.value.0.viewing_public_key.to_bytes()); + assert!(expected_nsk == keys.value.key_chain.private_key_holder.nullifier_secret_key); + assert!(expected_npk == keys.value.key_chain.nullifier_public_key); + assert!(expected_vsk == keys.value.key_chain.private_key_holder.viewing_secret_key); + assert!(expected_vpk_as_bytes == keys.value.key_chain.viewing_public_key.to_bytes()); } #[test] @@ -233,9 +236,23 @@ mod tests { ]; assert!(expected_ccc == child_node.ccc); - assert!(expected_nsk == child_node.value.0.private_key_holder.nullifier_secret_key); - assert!(expected_npk == child_node.value.0.nullifier_public_key); - assert!(expected_vsk == child_node.value.0.private_key_holder.viewing_secret_key); - assert!(expected_vpk_as_bytes == child_node.value.0.viewing_public_key.to_bytes()); + assert!( + expected_nsk + == child_node + .value + .key_chain + .private_key_holder + .nullifier_secret_key + ); + assert!(expected_npk == child_node.value.key_chain.nullifier_public_key); + assert!( + expected_vsk + == child_node + .value + .key_chain + .private_key_holder + .viewing_secret_key + ); + assert!(expected_vpk_as_bytes == child_node.value.key_chain.viewing_public_key.to_bytes()); } } diff --git a/key_protocol/src/key_management/key_tree/mod.rs b/key_protocol/src/key_management/key_tree/mod.rs index 08a576e5..c9db4d2d 100644 --- a/key_protocol/src/key_management/key_tree/mod.rs +++ b/key_protocol/src/key_management/key_tree/mod.rs @@ -212,7 +212,7 @@ impl KeyTree { println!("Cleanup of tree at depth {i}"); for id in ChainIndex::chain_ids_at_depth(i) { if let Some(node) = self.key_map.get(&id) { - if node.value.1 == nssa::Account::default() { + if node.value.account == nssa::Account::default() { let addr = node.account_id(); self.remove(addr); } else { @@ -478,25 +478,25 @@ mod tests { .key_map .get_mut(&ChainIndex::from_str("/1").unwrap()) .unwrap(); - acc.value.1.balance = 2; + acc.value.account.balance = 2; let acc = tree .key_map .get_mut(&ChainIndex::from_str("/2").unwrap()) .unwrap(); - acc.value.1.balance = 3; + acc.value.account.balance = 3; let acc = tree .key_map .get_mut(&ChainIndex::from_str("/0/1").unwrap()) .unwrap(); - acc.value.1.balance = 5; + acc.value.account.balance = 5; let acc = tree .key_map .get_mut(&ChainIndex::from_str("/1/0").unwrap()) .unwrap(); - acc.value.1.balance = 6; + acc.value.account.balance = 6; tree.cleanup_tree_remove_uninit_layered(10); @@ -518,15 +518,15 @@ mod tests { assert_eq!(key_set, key_set_res); let acc = &tree.key_map[&ChainIndex::from_str("/1").unwrap()]; - assert_eq!(acc.value.1.balance, 2); + assert_eq!(acc.value.account.balance, 2); let acc = &tree.key_map[&ChainIndex::from_str("/2").unwrap()]; - assert_eq!(acc.value.1.balance, 3); + assert_eq!(acc.value.account.balance, 3); let acc = &tree.key_map[&ChainIndex::from_str("/0/1").unwrap()]; - assert_eq!(acc.value.1.balance, 5); + assert_eq!(acc.value.account.balance, 5); let acc = &tree.key_map[&ChainIndex::from_str("/1/0").unwrap()]; - assert_eq!(acc.value.1.balance, 6); + assert_eq!(acc.value.account.balance, 6); } } diff --git a/key_protocol/src/key_management/mod.rs b/key_protocol/src/key_management/mod.rs index 17dbb007..d17c23a2 100644 --- a/key_protocol/src/key_management/mod.rs +++ b/key_protocol/src/key_management/mod.rs @@ -178,7 +178,7 @@ mod tests { .get_node(second_child_id) .unwrap() .value - .0 + .key_chain .clone() } diff --git a/key_protocol/src/key_protocol_core/mod.rs b/key_protocol/src/key_protocol_core/mod.rs index 4fb6a178..e2910a05 100644 --- a/key_protocol/src/key_protocol_core/mod.rs +++ b/key_protocol/src/key_protocol_core/mod.rs @@ -28,12 +28,13 @@ pub struct NSSAUserData { /// TODO: eventually, this should have `sign_key: Option` and `pub_key: PublicKey`. #[derive(Clone, Debug, Serialize, Deserialize)] pub struct PublicBundle { - pub sign_key: nssa::PrivateKey, + pub sign_key: nssa_core::PrivateKey, } #[derive(Clone, Debug, Serialize, Deserialize)] pub struct PrivateBundle { pub key_chain: KeyChain, + pub identifier: Identifier, pub account: nssa_core::account::Account, } @@ -44,7 +45,7 @@ impl NSSAUserData { let mut check_res = true; for (account_id, public_bundle) in accounts_keys_map { let expected_account_id = nssa::AccountId::public_account_id( - &nssa::PublicKey::new_from_private_key(&public_bundle.sign_key), + &nssa_core::PublicKey::new_from_private_key(&public_bundle.sign_key), ); if &expected_account_id != account_id { println!("{expected_account_id}, {account_id}"); @@ -59,7 +60,10 @@ impl NSSAUserData { ) -> bool { let mut check_res = true; for (account_id, bundle) in accounts_keys_map { - let expected_account_id = nssa::AccountId::privte_account_id(&bundle.key_chain.nullifier_public_key, Identifier(0_u128)); + let expected_account_id = nssa::AccountId::private_account_id( + &bundle.key_chain.nullifier_public_key, + bundle.identifier, + ); if expected_account_id != *account_id { println!("{expected_account_id}, {account_id}"); check_res = false; @@ -154,8 +158,9 @@ impl NSSAUserData { self.private_key_tree .get_node(account_id) .map(|child_keys_private| PrivateBundle { - key_chain: child_keys_private.value.0.clone(), - account: child_keys_private.value.1.clone(), + key_chain: child_keys_private.value.key_chain.clone(), + identifier: child_keys_private.value.identifier, + account: child_keys_private.value.account.clone(), }) }) } diff --git a/nssa/core/src/account.rs b/nssa/core/src/account.rs index 5d56a240..52dc0fc6 100644 --- a/nssa/core/src/account.rs +++ b/nssa/core/src/account.rs @@ -6,6 +6,7 @@ use std::{ use base58::{FromBase58 as _, ToBase58 as _}; use borsh::{BorshDeserialize, BorshSerialize}; pub use data::Data; +use rand::{RngCore as _, rngs::OsRng}; use risc0_zkvm::sha::{Impl, Sha256 as _}; use serde::{Deserialize, Serialize}; use serde_with::{DeserializeFromStr, SerializeDisplay}; @@ -18,7 +19,7 @@ pub mod data; #[derive(Copy, Debug, Default, Clone, Eq, PartialEq)] pub struct Nonce(pub u128); -#[derive(Copy, Debug, Clone, Eq, PartialEq, Serialize, Deserialize)] +#[derive(Copy, Debug, Clone, Default, Eq, PartialEq, Serialize, Deserialize)] pub struct Identifier(pub u128); impl Nonce { @@ -110,6 +111,13 @@ impl Identifier { Self(u128::from_le_bytes(value)) } + + #[must_use] + pub fn new_os_random() -> Self { + let mut bytes = [0_u8; 16]; + OsRng.fill_bytes(&mut bytes); + Self(u128::from_le_bytes(bytes)) + } } /// Account to be used both in public and private contexts. @@ -201,13 +209,13 @@ impl AccountId { } #[must_use] - pub fn private_account_id(value: &NullifierPublicKey, identifier: Identifier) -> Self { + pub fn private_account_id(npk: &NullifierPublicKey, identifier: Identifier) -> Self { const PRIVATE_ACCOUNT_ID_PREFIX: &[u8; 32] = b"/LEE/v0.3/AccountId/Private/\x00\x00\x00\x00"; let mut bytes = Vec::::new(); bytes.extend_from_slice(PRIVATE_ACCOUNT_ID_PREFIX); - bytes.extend_from_slice(&value.0); + bytes.extend_from_slice(&npk.0); bytes.extend_from_slice(&identifier.0.to_le_bytes()); Self::new( @@ -457,4 +465,9 @@ mod tests { assert_eq!(identifier, expected_identifier); } + + #[test] + fn default_identifier() { + assert_eq!(0_u128, Identifier::default().0); + } } diff --git a/nssa/src/state.rs b/nssa/src/state.rs index 5e898dde..1e8bb6ce 100644 --- a/nssa/src/state.rs +++ b/nssa/src/state.rs @@ -356,11 +356,10 @@ pub mod tests { use std::collections::HashMap; - use nssa_core::account::Identifier; use nssa_core::{ BlockId, Commitment, Nullifier, NullifierPublicKey, NullifierSecretKey, PrivateKey, PublicKey, SharedSecretKey, Timestamp, - account::{Account, AccountId, AccountWithMetadata, Nonce, data::Data}, + account::{Account, AccountId, AccountWithMetadata, Identifier, Nonce, data::Data}, encryption::{EphemeralPublicKey, Scalar, ViewingPublicKey}, program::{BlockValidityWindow, PdaSeed, ProgramId, TimestampValidityWindow}, }; @@ -2593,7 +2592,8 @@ pub mod tests { fn unauthorized_public_account_claiming_fails() { let program = Program::authenticated_transfer_program(); let account_key = PrivateKey::try_new([9; 32]).unwrap(); - let account_id = AccountId::public_account_id(&PublicKey::new_from_private_key(&account_key)); + let account_id = + AccountId::public_account_id(&PublicKey::new_from_private_key(&account_key)); let mut state = V03State::new_with_genesis_accounts(&[], &[], 0); assert_eq!(state.get_account_by_id(account_id), Account::default()); @@ -2614,7 +2614,8 @@ pub mod tests { fn authorized_public_account_claiming_succeeds() { let program = Program::authenticated_transfer_program(); let account_key = PrivateKey::try_new([10; 32]).unwrap(); - let account_id = AccountId::public_account_id(&PublicKey::new_from_private_key(&account_key)); + let account_id = + AccountId::public_account_id(&PublicKey::new_from_private_key(&account_key)); let mut state = V03State::new_with_genesis_accounts(&[], &[], 0); assert_eq!(state.get_account_by_id(account_id), Account::default()); diff --git a/testnet_initial_state/src/lib.rs b/testnet_initial_state/src/lib.rs index 14d800bd..ca07f6b9 100644 --- a/testnet_initial_state/src/lib.rs +++ b/testnet_initial_state/src/lib.rs @@ -78,6 +78,9 @@ const PUB_ACC_B_INITIAL_BALANCE: u128 = 20000; const PRIV_ACC_A_INITIAL_BALANCE: u128 = 10000; const PRIV_ACC_B_INITIAL_BALANCE: u128 = 20000; +const PRIV_ACC_A_IDENTIFIER: u128 = 13; +const PRIV_ACC_B_IDENTIFIER: u128 = 42; + #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub struct PublicAccountPublicInitialData { pub account_id: AccountId, @@ -87,6 +90,7 @@ pub struct PublicAccountPublicInitialData { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub struct PrivateAccountPublicInitialData { pub npk: nssa_core::NullifierPublicKey, + pub identifier: Identifier, pub account: nssa_core::account::Account, } @@ -100,6 +104,7 @@ pub struct PublicAccountPrivateInitialData { pub struct PrivateAccountPrivateInitialData { pub account_id: nssa::AccountId, pub account: nssa_core::account::Account, + pub identifier: Identifier, pub key_chain: KeyChain, } @@ -147,6 +152,9 @@ pub fn initial_priv_accounts_private_keys() -> Vec Vec Vec Vec { .into_iter() .map(|data| PrivateAccountPublicInitialData { npk: data.key_chain.nullifier_public_key.clone(), + identifier: data.identifier, account: data.account, }) .collect() @@ -212,8 +223,7 @@ pub fn initial_state() -> V03State { let initial_commitments: Vec = initial_commitments() .iter() .map(|init_comm_data| { - let npk = &init_comm_data.npk; - let acc_id = &AccountId::private_account_id(npk, Identifier(0_u128)); + let acc_id = &AccountId::private_account_id(&init_comm_data.npk, init_comm_data.identifier); let mut acc = init_comm_data.account.clone(); @@ -385,6 +395,7 @@ mod tests { init_comms[0], PrivateAccountPublicInitialData { npk: NullifierPublicKey(NPK_PRIV_ACC_A), + identifier: Identifier(PRIV_ACC_A_IDENTIFIER), account: Account { program_owner: DEFAULT_PROGRAM_OWNER, balance: PRIV_ACC_A_INITIAL_BALANCE, @@ -398,6 +409,7 @@ mod tests { init_comms[1], PrivateAccountPublicInitialData { npk: NullifierPublicKey(NPK_PRIV_ACC_B), + identifier: Identifier(PRIV_ACC_B_IDENTIFIER), account: Account { program_owner: DEFAULT_PROGRAM_OWNER, balance: PRIV_ACC_B_INITIAL_BALANCE, diff --git a/wallet/src/chain_storage.rs b/wallet/src/chain_storage.rs index c9d07d08..e17998fe 100644 --- a/wallet/src/chain_storage.rs +++ b/wallet/src/chain_storage.rs @@ -86,6 +86,7 @@ impl WalletChainStore { data.account_id, PrivateBundle { key_chain: data.key_chain, + identifier: data.identifier, account: data.account, }, ); @@ -136,6 +137,7 @@ impl WalletChainStore { data.account_id, PrivateBundle { key_chain: data.key_chain, + identifier: data.identifier, account, }, ); @@ -211,7 +213,7 @@ impl WalletChainStore { .private_key_tree .key_map .entry(chain_index.clone()) - .and_modify(|data| data.value.1 = account) + .and_modify(|data| data.value.account = account) }); } } diff --git a/wallet/src/helperfunctions.rs b/wallet/src/helperfunctions.rs index 6cfe00c8..3a548984 100644 --- a/wallet/src/helperfunctions.rs +++ b/wallet/src/helperfunctions.rs @@ -193,6 +193,7 @@ pub fn produce_data_for_storage( InitialAccountData::Private(Box::new(PrivateAccountPrivateInitialData { account_id: *account_id, account: bundle.account.clone(), + identifier: bundle.identifier, key_chain: bundle.key_chain.clone(), })) .into(), diff --git a/wallet/src/lib.rs b/wallet/src/lib.rs index a3afb7e6..a45b1f97 100644 --- a/wallet/src/lib.rs +++ b/wallet/src/lib.rs @@ -27,7 +27,9 @@ use nssa::{ }, }; use nssa_core::{ - Commitment, MembershipProof, SharedSecretKey, account::{Identifier, Nonce}, program::InstructionData, + Commitment, MembershipProof, SharedSecretKey, + account::{Identifier, Nonce}, + program::InstructionData, }; pub use privacy_preserving_tx::PrivacyPreservingAccount; use sequencer_service_rpc::{RpcClient as _, SequencerClient, SequencerClientBuilder}; @@ -305,7 +307,10 @@ impl WalletCore { pub fn get_private_account_commitment(&self, account_id: AccountId) -> Option { let bundle = self.storage.user_data.get_private_account(account_id)?; Some(Commitment::new( - &bundle.key_chain.nullifier_public_key, + &AccountId::private_account_id( + &bundle.key_chain.nullifier_public_key, + Identifier(0_u128), + ), &bundle.account, )) } @@ -393,6 +398,7 @@ impl WalletCore { )?; let private_account_keys = acc_manager.private_account_keys(); + let private_account_identifiers = acc_manager.private_account_identifiers(); let (output, proof) = nssa::privacy_preserving_transaction::circuit::execute_and_prove( pre_states, instruction_data, @@ -402,7 +408,7 @@ impl WalletCore { .map(|keys| (keys.npk.clone(), keys.ssk)) .collect::>(), acc_manager.private_account_auth(), - vec![], + private_account_identifiers.clone(), acc_manager.private_account_membership_proofs(), &program.to_owned(), ) @@ -414,9 +420,10 @@ impl WalletCore { Vec::from_iter(acc_manager.public_account_nonces()), private_account_keys .iter() - .map(|keys| { + .zip(private_account_identifiers) + .map(|(keys, identifier)| { ( - AccountId::private_account_id(&keys.npk.clone(), Identifier(0_u128)), + AccountId::private_account_id(&keys.npk.clone(), identifier), keys.vpk.clone(), keys.epk.clone(), ) @@ -502,6 +509,7 @@ impl WalletCore { acc_account_id, PrivateBundle { key_chain, + identifier: _, account: _, }, )| (*acc_account_id, key_chain, None), @@ -510,7 +518,7 @@ impl WalletCore { |(chain_index, keys_node)| { ( keys_node.account_id(), - &keys_node.value.0, + &keys_node.value.key_chain, chain_index.index(), ) }, diff --git a/wallet/src/privacy_preserving_tx.rs b/wallet/src/privacy_preserving_tx.rs index a7ceb7c3..bce96592 100644 --- a/wallet/src/privacy_preserving_tx.rs +++ b/wallet/src/privacy_preserving_tx.rs @@ -81,11 +81,13 @@ impl AccountManager { (State::Private(pre), mask) } + PrivacyPreservingAccount::PrivateForeign { npk, vpk } => { - let account_id = AccountId::private_account_id(&npk, Identifier(0_u128)); + let account_id = AccountId::private_account_id(&npk, Identifier::default()); //TODO: here (Marvin) Should be based on epk let acc = nssa_core::account::Account::default(); let auth_acc = AccountWithMetadata::new(acc, false, account_id); let pre = AccountPreparedData { + identifier: Identifier::default(), //TODO: here nsk: None, npk, vpk, @@ -137,12 +139,13 @@ impl AccountManager { .filter_map(|state| match state { State::Private(pre) => { let eph_holder = EphemeralKeyHolder::new(&pre.npk); + let epk = eph_holder.generate_ephemeral_public_key(); Some(PrivateAccountKeys { npk: pre.npk.clone(), ssk: eph_holder.calculate_shared_secret_sender(&pre.vpk), vpk: pre.vpk.clone(), - epk: eph_holder.generate_ephemeral_public_key(), + epk, }) } State::Public { .. } => None, @@ -150,6 +153,18 @@ impl AccountManager { .collect() } + pub fn private_account_identifiers(&self) -> Vec { + self.states + .iter() + .filter_map(|state| match state { + State::Private(pre) => { + Some(pre.identifier) + } + State::Public { .. } => None, + }) + .collect() + } + pub fn private_account_auth(&self) -> Vec { self.states .iter() @@ -192,6 +207,7 @@ impl AccountManager { } struct AccountPreparedData { + identifier: Identifier, nsk: Option, npk: NullifierPublicKey, vpk: ViewingPublicKey, @@ -209,6 +225,7 @@ async fn private_acc_preparation( let from_keys = from_bundle.key_chain; let from_acc = from_bundle.account; + let from_identifier = from_bundle.identifier; let nsk = from_keys.private_key_holder.nullifier_secret_key; @@ -226,6 +243,7 @@ async fn private_acc_preparation( let sender_pre = AccountWithMetadata::new(from_acc.clone(), true, account_id); Ok(AccountPreparedData { + identifier: from_identifier, nsk: Some(nsk), npk: from_npk, vpk: from_vpk,