From 98da9b26cce8397f5a361e532a6a385840ad93e7 Mon Sep 17 00:00:00 2001 From: Moudy Date: Thu, 30 Apr 2026 15:44:51 +0200 Subject: [PATCH] fix: address PR review feedback - Rename PrivacyPreservingCircuitInputAccount to InputAccountIdentity (drop the PrivacyPreservingCircuit prefix; add Identity suffix) - Rename PrivacyPreservingCircuitInput.accounts to account_identities - Rename AccountManager.accounts() to account_identities() and loop variables to account_identity - Drop legacy mask-1/2/3 references from variant doc comments and guest comments - Remove the explanatory comments about deleted parallel-vec tests; moved to the PR description - Rebake privacy_preserving_circuit and test program artifacts --- artifacts/program_methods/amm.bin | Bin 540568 -> 540476 bytes .../associated_token_account.bin | Bin 458580 -> 458608 bytes .../authenticated_transfer.bin | Bin 394112 -> 394112 bytes artifacts/program_methods/clock.bin | Bin 411128 -> 411128 bytes artifacts/program_methods/pinata.bin | Bin 401564 -> 401532 bytes artifacts/program_methods/pinata_token.bin | Bin 407496 -> 407496 bytes .../privacy_preserving_circuit.bin | Bin 559700 -> 559692 bytes artifacts/program_methods/token.bin | Bin 490628 -> 490628 bytes .../auth_asserting_noop.bin | Bin 392296 -> 392300 bytes artifacts/test_program_methods/burner.bin | Bin 394344 -> 394344 bytes .../test_program_methods/chain_caller.bin | Bin 411208 -> 411188 bytes .../test_program_methods/changer_claimer.bin | Bin 396852 -> 396852 bytes artifacts/test_program_methods/claimer.bin | Bin 393676 -> 393676 bytes .../clock_chain_caller.bin | Bin 400232 -> 400232 bytes .../test_program_methods/data_changer.bin | Bin 392812 -> 392836 bytes .../test_program_methods/extra_output.bin | Bin 393236 -> 393268 bytes .../flash_swap_callback.bin | Bin 402220 -> 402220 bytes .../flash_swap_initiator.bin | Bin 420140 -> 420140 bytes .../malicious_authorization_changer.bin | Bin 399428 -> 399380 bytes .../malicious_caller_program_id.bin | Bin 391820 -> 391820 bytes .../malicious_self_program_id.bin | Bin 391804 -> 391804 bytes artifacts/test_program_methods/minter.bin | Bin 394056 -> 394056 bytes .../test_program_methods/missing_output.bin | Bin 393832 -> 393832 bytes .../modified_transfer.bin | Bin 393284 -> 393284 bytes .../test_program_methods/nonce_changer.bin | Bin 394372 -> 394372 bytes artifacts/test_program_methods/noop.bin | Bin 391840 -> 391840 bytes .../test_program_methods/pda_claimer.bin | Bin 398820 -> 398820 bytes .../test_program_methods/pinata_cooldown.bin | Bin 412704 -> 412704 bytes .../private_pda_delegator.bin | Bin 403016 -> 403016 bytes .../program_owner_changer.bin | Bin 393780 -> 393780 bytes .../simple_balance_transfer.bin | Bin 393672 -> 393664 bytes .../time_locked_transfer.bin | Bin 415300 -> 415328 bytes .../test_program_methods/two_pda_claimer.bin | Bin 399552 -> 399552 bytes .../test_program_methods/validity_window.bin | Bin 395160 -> 395160 bytes .../validity_window_chain_caller.bin | Bin 417700 -> 417684 bytes integration_tests/tests/tps.rs | 6 +- nssa/core/src/circuit_io.rs | 29 ++-- nssa/core/src/lib.rs | 3 +- .../privacy_preserving_transaction/circuit.rs | 16 +-- nssa/src/state.rs | 124 ++++++++---------- .../src/bin/privacy_preserving_circuit.rs | 77 ++++++----- sequencer/core/src/lib.rs | 4 +- wallet/src/lib.rs | 2 +- wallet/src/privacy_preserving_tx.rs | 12 +- 44 files changed, 135 insertions(+), 138 deletions(-) diff --git a/artifacts/program_methods/amm.bin b/artifacts/program_methods/amm.bin index c6312e1cfbe7ecabbe44d2ab805f760e8e837d3e..a991cd7d4bf2862a0c10a505751fd27d15239408 100644 GIT binary patch delta 13176 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 delta 13230 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 arY8F{>)oAo{X4g^Sm~~Boz-aB)Bg)0r`E&( delta 11695 zcmb7~dw5M(+Q8R7XCI=1gwP=B?31*jg4_^oT1jXzO)GV2DJmfiTCGb{L#aatl_{lY z4Q)QfAVArfMc_wNF~9F&(W8^V|EZefIW!OrOs`p5MB>>s{|{ zt+h{TueCmXt@WZ9rR?=Kv98NAW@XLEQs!j2c4WC9o8?crD#Vm(pNJ4bC@z=S08a?> ziYc(mrHF^?gjnY2A9_s)^(&tUljB#y;jlIT9DITK2VKGW_X$O8r$1Vb{~kUIcMGy# zbXF8m=@2jx9{jZ}@LwoV*3c`8Jwbt+R7LcO^om__fg+D0O1|-lW^#d#;4d%O3vRBb zh|8_K;!FCC4TaZN#Pra5ewTQJ1`*{I%lOY2&^}BN^Fsq%;{FDTILrdK$pvP@+u-_= z55T+OMv@~MD&k-ZuW2De-W}m=5RQ=wtcEYZQ3m@N5Yb2x-rMZ~li~DeoBsw6hI6HY zLmMk%S4*#0Bn9?qrifv>2|h(#%0QQ{6-W;a~Z*(*vV@47C;!S8HWHNw>5Uay$02FE`ZfvG!s#RTc9 zf5M5~yyAqMzeE3Qj=M<%?W@+f^r9V8gJRGJZY}kBLvOIq-PY~j-BA(ouX)8%Ie$Q+ zBBJJFNhyC?k|N4~wDs8oXJ7J(22#$e$%+^RM@s$}E`TjVHAzv#M7X)^e-xezw+ynr zX0ba{$*k{VmDjx@kygXM{oopSoa6vJZ?WyZb8snajc=#7Uy6186JrTf+QVgFN5vs0 z;1v;aH|ybAR<|;z29EwmD04)oI~5TIM@Vfaz)Kyx6|P(E6>(DDpt}gO;*hoc;%6FC zS9wK(9I&jNB63T-!Yj?&EnX2b|L7Il<;MODrTcq29hoNM zbQ_$$f$@_2cVL5MmSM2%`!s}Yv>Fs~SArtq;4yMS2|RxjnJE>B4zv%r7iQ+(LrK}{ z714574IH=GE2^X(lkR2X?@=M-wEFi^0UUx9dMardY};+ zXGo2wX0RX%S*7d>ycV`f-94G?7zN00^RSo>C&EOq$&0c`WXFb1>dRNU`zhK7cqqC; zmOK}S3geD2&XTi7Z?M`(@a#^C$Un*kqzB%E!~f+I9i;qAaGk^ADV-HjOuuEIb@0q% zctFnY(+z#E*!_2=VSoc(@-~>d2l3FZgI;kt$XTLUPY#>IUNN5qjohv!7AhTzCOx2t zv?E>-FZ)-+xv(l1jMl$>+ucJ^_Ur9S-Az3Hm3Jj}uF zhsoJb$q6~WKU@Y|MWo3i7=-Z=^czPmZ)9pi7nC(d|9wP_F%=4%=*Gr>xNq#=qZ zgddXv3gNR31@yq!_3q<&Sx<0u{EuBUe-AHboqBRwCA=DD8B>qOLlvPqA~Oee=H6mB z7kSnp{JFk-gL}2he^+lJ>aTV!nKpnF`^sMTJUkyZ)Hed+fq@iR*eiJxte*9XRLSSy zD%P?38xJzBKlc17utUCId_jYAfvm@FTwnv7=2+k?>|CJX<2Nqw0$g*>zV57n^Q(zi z(;@`xft!Zc*aT^C>?!ViwN_;%2MZK2h7B2cYV>~rm%#%iYoitM5b|?PZsrn=snKa~ z#+q@YxKvS~AKl^Z?D9|QV^mx&7xGMgKA)0bhb1Kc0GD4uF*T^zLFBCck&-X_ufa=2 zZ0HQ@F;)??VJm-U!W9nQ4;R|(7yhS7XeBmuXW9=}z?J~_GZYMNDHcBfPe-8)c4k=W z0Nju9Mny9$p^l^AIOabHw_?E|vi}wMBAjco+a-<$e%|HY=a0tXg&s|0$kN^LSv=s< zLWwyRPK7h%#y>Xt9Uf}@93fO|d#oRP89l5JSp-)*^g0R8c7^uo5>xf=yWLG({$`JI zX=$vPt~WL~176$6=5OFa*s2K8{qZbpRgm8B1;_ZU@DT^Mrs8Bc=4Zo+_WZ!%a`*YB z$%KW|>c0#L?B3&kQu&kKamQ*tdYd2?cnHYJ`lW0*|C^d2&NvoLbQ*wD>s4_pmfQ8?*$R8`nI zWwz_<&bwDD{&_DUFhw)R8O}Qer^8W1o5AiGTp+^jXzc|Tchf>w&DHR@E}EDk?fE%8 zpYeCg=xt3wt%EH+hQZ;DLOfEeqG5t#z&W_OtL=~uGbtSQ1o14~p7Fip0-NBS4!#J- zFy5@Dq*qd)eYJbMGF)F??Ov!ny5?n0hx;|LNE);;c1gI0{Y(8b;q-g${eKVV!1*$Z zhR^1-aj5f^V>i z-LKwyg8&(!i5e;AJS>{o^J3qmn!wiW;VC%X!E4~eTuq#o^S^;>o7(f+2MAC&HfX-4 z;u#tu5MViMW1zv0?u(BOUc_6B@|$Rm^N3Y&%t*W1d<2&`^lJ1v)d99%sQuuGK&(J} zs+>o>qxZe!-mLmR!4AXnv9Gj$>sN4pfhI0UeaFCqM{9y~HsfyxTrx%ry%ohg^kNfuM!B)YNFJXPjHvhP)>tY4j-D20613){2Y#FLHWiOZ5AjZ6Sgup z7j`QA)BoZHuie-mx6r{VDZN*pdd1zuop}+@PoJQPTDfrKazcGPp)M_vw}MoGr%Qel zPGo$xn=VT{*6Q6dN_NsW?puT9eed6RUP5> zr!U2FE$vwI!&B;6N#ha+;ILMr@5FhBv!_@IgULK*M&d|h|pdfMIAIQq- znuwF3v)$jNtXq{kYP%)v9^XxJ*+`}MK6v5vA{|E!^U+?CgVEqXb|FM+FP zYT~Sve*&(UrExzA8e+&g?lKOKt$+_Q-};Vq7WO&}6{k07qMi%STuC)ff5i^Xk#Dmh z2d~FoRdcn_YuClPYvm)nSV6Ir^7?JWUBz1H!`rLx5y*E~ z<6X(3l7<8ttjJ%m^~Oixari`=SkVT7M&?B5MR%(Hu*g$7fx1Z(;cC#n3-p$q)P)`; zU0;`?o@*WX=r;UuToXs6{paY*`>6|EuIk1)XenVMvQ^$?zR+6Q9440HtA4ET7GT}t-Bm6Ls;$L3*u>Nxef$Nv^`#wOc(Rl{Ro#F~b0_aR@b9sD#r z&M|%?+zYmj!HaN#qd)neBE~!BzW_gHv!9PViWuRT@C!WA9w3?=R>UL+uQbUN*~XVpm%%f zM_*KryZ!x9reuvz)Jm@`gol+9Et0?ZND+PSwHMba6%hsFM^o8R@JiUS?z`|R*xJmu zaIvF5;bTR-W%p-^@ide=25g11VJnRO2@iui$_3LtVPlT|Dt(Aw9q;j19;3db+w*oD zXW?zW(C0b#2}LZLh$Z^22c1 z{juWf;CPo4!CmwmlEq4%Aq z@>wrOFDg>~^^_vL!6J3D+jYI4zI%zfNm0D|*f-S9Zl%4xe3^RDrL+kYtx#7hpX=?5 zRo+d7SA`hYlIK3_H^na(;6gl~$a)69RwqO%Z^}Z+0e)DS_-4?9ksQ=N!|~LU3fb>x zPM-t8uXM)zZ3_AEq0hX#82mMSf_f7l9M3h7O>f!7FE3I+5gfPAYu=lU3AJ!pSg_(5 zyvNM~7y0E!j!#xm8a7TKqyL#ON_A5$ByTgEGu|hL$^I*F8SJGnH5Go`cpDmx@rl{e z0uR9|3K{oML*NGZ%Xk!!JggzEy<0P1hDQI>;oJ=heCAPY@V9X4;9xEpe5x@=;&VRp zHfL~yCd_}?Xa19 z;j}(pF;DWnO<8at7UEYoqkkSevc`a`zSw1%9 z`Aq?E2FI}BIKeL+M#HDZfMQ=L=(@DRfQ1qzkB8?!=`&x`#{5-q&YygtnE4#;6~o0>D)^*^Qq45s50e6lX_)zb@CQ*t zz!M!&=uV$`qcOO!Gd{zoIgB^*en={9jyh2eS2-*c(}fsFuq`$no-z)3(gg=##`{Ai zj_Z2kgt>5OM-F(Y;5YE1PBs^HHedfF0;N5A=@2QzT85;ah4+`n? z!3%`JjWVbkQ~kjYokl|j4XNaDu3Yc~xZ)*zCN!3Qy^OuL~yZ>$@h zUet}%)B!nu4BY1qEtCaA9wd$ZL~$QEU@i@7;c=2@^`;X3HTb#PQ1B3ZWP{H6)Z4ND$sSf;ulc_ zm65lR{Ny%eI6?#(N|WF5B&C%YuqxLKczZ{?6kms(7Me4H80w^na#=S%hbtJrMJ~8@ z6lvK)Gq3H2LO+c1qakTvX_WsI*MP%zAsJM_H)>+SDkS-%aS`L|q(Ilx!8Ee6sOfkt zf{6(UGp%>SyTUa{V0K09hs`gZl0Ws+a2gAsu$fjZCUE`aVPX7>AkA9CRgV6la4BhL z#msFJu>hx80^^MxjfE@80uDKox5D1C;C0{VuYs#J+cDxlUC53xiB(8$dx2X1fgQC| ze~W+;J1Eb>PM4%lxiL*w!p=0k2G>3AGhbSU0*_C{1-}hG>|noGK*Q-5Y!mN?L&qZ% zet`#a8d|4g@{1IbnLaUJ?(jKSIzEG~!=&9yH=c&qXQ9v&nkbb)wrVyfWN%!?0+C$1e}J9$fo~Rbzu2jX zTq(cJ5=!xGEtqA-`5(UwAL4T>28P1f4qgD~IQZIfTsA`!Go`@lKNyt_mRZwlrCC}- zm9-Rhmf}lqb0?UinF^cdf8`&ke2xW1lwyIYn)yqq;j@@`NTUyfcT|I)h0C{d{!5b< zuE)f>X8yH;(SH)IAdALHg%)hMF=#Kr@~jA+{{zcz)Nm&}cp=YcxxjaD)f<}mW<8$E*ENs*TImis0z1JYWKj*Fn0Wz!3a#30<|4v4V*7|ES$F1j{5iDMX+@?T!j;HQLY?6 zd?zlZ-@i;YY@i`$ohH7N`~|#-3Bx20(h;y86H1;7=fd+O57|W)ZDdE%#2>@UHrWcd zd7sm8t7g6&jSW2lZ`sNDUnzGykA|5$?T5!9cpjB1M=s#mP15*-(R$E#Yso72=|BWaswBS5)(YcBlu!s)QK*~2;yOLP(UvDG7U=? zqX3^r4Fwu~#Cgsg&hq)&aOKYHDzSM$gW8RN!>;jq~v!^O&pb!nw+0M>M6bLNmWz)zc#E>a(5AzFFIxCJvaWj zPQN-jDe?a^Iyo&6QK@#+Yfh=Dr<-+6PEGET(yd$9#4g>Fx~8ObP3<0dYrUsktCUXT z#!Y^<(@pyI$!k3Im7C4fUtjB~yJ?Rhv-3@-RIm3eP+Hw&88PCCN752U1ZvlNe1T16 zp2C|=H+2mR-{=Xub#KWndiC;+9*=tKd3EpILh9>hJRJfZ$~}z(Kdtj*1?KMYvKS?~QSpI{ZJzo!>(z&D^W1iGgC&iw*DSE*A0BU@Y`f?9%_f_BZ=ITaOGn88xAtUU zV$*sZ^o*UJHLja3aCMjG#hZ3~+21oD@Z@)%dQJbY;{usgp3%2x&kStY?TNdo$h?d7 zqIZ7anSX1CwEC5uwo3i4mWcl^AsrZ9;hA+)wTxV7oqTH(>OJ;*5x delta 267 zcmZo@muLW@7RDB)7UnH17uXfj%q@(Q3@prylhTsR4ATtFlhce-%uEcD4NZ(vQj$}* ze_&@(WUMEoOwY)YK_!Jj&nGc2KTnUKYC{83R2x}rpTNoT^phCa^4+JGCLCI~QD>vNDC+n_|1�hHB@3x&>%Bu53>0L$2w-MQF9HsnB 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 delta 10211 zcmb7}e^?dO*2mYJIR{Wd0Z~yfX9oNYbk5h%m9@OXk>pY*m)?Rz< zwbx#I?>W~GhHm{Rv?QEsE$th@#V<=*nZ&)9WVzPH`6vm$S@v*A#b=08!vxB=5Lql7 zjXg(nu&+SnyodY$K$Ia0RL}Smu)V)Pg;tMzt`dFCBKycC-xIBPR-#ZM;w%;#dx|K~ zDNs0AwcDqWX!8((4zqENgIi(@-hG;AO0+;_oJW6J6H&Rzp6x7AEqH`(AG{A7=wX>w zqak^bw}H-MBH3+YL4z6&8{2Gjl*4r2!0m_wVvFMzu+ z{t{enlJ~q!WW|K0Gx?vv?cikaFm*<+py4u>U<_0E7VL`|`ZDg@O4Jn`z<8$e9na@+ za&0?N+kFCUW;vDv=bI8RbCxS5JV%Y_7s&b@2d6HUs1xIID@TulgBYIyKLOS!5^3XT zA-D&V&jGIi_x7;+GaLU)&;wV9){YS<7maGZtXGcs@W(j$1lnE60{PoK?TfDxC5{s) zkU1ChD-s#T^u$jChZY)%`ZCxLtULcTc(aLnw_yX0$Feee)!>2&-pR|9@f%U`M1i81 zLOZx>5)zX|YuoQc4e0_^F~<|GLH}WaDw+OCaNHDZ1jdW6BXOq+)X37J&mTzaY0zi9 zADlQt-?_0I2{(wQc^f!d2VMl$^U4>?*ErM2E7^Ud6E8a!`Ez8SB~U1{YYpINQHDVK zn4hWOR#PBK-Ag+2?T$9YzAzj6lywWiV#Z|&l+1Ww7mgmxH1_4I%I+@wOiug)!!^z^ zwoAWm935OBkrl(K$(gA{2k`9{c`CtBKBmX)9RQzSBGFK$M;u2d!1{V6ffp?`_(O2` zQy8E1Pw0$s=L$#;Pkx+)e~nKH)XMnfK#mR@en|8c8XD#cG>F9^If$d{V9ZlXyc*?5 zAV1S450^NKUtsL_z2L*(M%Hh11RN`pw1TBha0R#ltULY*c<0lIH?#XYxD|4Jq6v{4 zl`J##i@@au%XA10O(ugr{W&T!6lffH+CqWieLRjAf&CXsgji@1e`gR!1%*ald^#8t zg1vYq_a6d#;B>|l!Tn%AL*woiS~?U4Ln6qfHCX8@C7~C8%pxD@!_kT*SOT=GTlG4) z60GW}932M7O*{h}y41+LOW<9yk(uL=3mGpMk$4Gwut=a2%w7$+Y?(LmGBu-N(Q<)O znL_`*9MzimF>vS$-VU@0+-Bm>z$aD+6vvjP(_I_|u0l#M9t)0p(Kw6V0w;n6Z9JKy zkbdykq_7m61GY1Vn!r6Vqj6w0H=aPYn&tIi^8haKW_#Pf<_I4FdmV7E4&%pgBi%>B z_+zs!V|$;+NIq<&VZAxJ1jbCXk)H*(8tG5_!6DdQ>M^T&b`4xttXCV3#$YYagY}ub zr2G-iceBacf)Ucy0u`X2y2j_gIWM6MGj?>xl9;#rls-ej4}!Sg-Sey|6u@ zuTDS>L>kz-$_UIBaA1i*Oq<5&U-y;LjZRH@M0) zU>9tor!e57Or8QB3wegdyoJ`g=MCTw$d^%{a{mFltTNX_FY*mzm&J_aC<>g&CcY7D zu4i9>>k1@o7pf~3G71ZTdFTc8VQ{=@UR%H?4Yts|%I<-DH;epgG>(XO^zF=%Ee7?* z#Ph*%V7;Dg2M+?PE3XFRD45JpJUCv9HsBa*jgHL)DGUd�v-_i>cJ##p>#?&+iWJ;CeI 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 P6>waGa(ajDwWa?D79_&$ diff --git a/artifacts/program_methods/pinata_token.bin b/artifacts/program_methods/pinata_token.bin index daaec47f73f312d3f113ddbb24b1db910995f837..dd2e56e1bf9ddc9767bc362f7dbc57ca2ac5aaa0 100644 GIT binary patch delta 1454 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 delta 72611 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 delta 1506 zcmb7EJxc>Y5H*?`?ffn-5D~wkVlKOTo4t)6!N$(Q+BBNPYm8AFTP+T>QbBY z1mQqzY!wR&E74N$C)jz3>D;-)a`(;KH}mGP-gnabPVRXzuhnbw;&j*MjD^Hk;N?6GE#1_7FVmARV%WZlK)gQsjirj z_MdY`^0kLKR1%RD+#x(?^Wdnu`(Zr6nN_LmY*-pR-w72B&%f`4leh*@t9@{(yAOm2 zaz9~aF@68E9}fC-yzNN{;i&*7y?^Hk>==fW|27HNt-4q1c9=HSje1GL6GltexQh*! zZFI`!7C5R~A68vtpdAxe9~tOC!9jw92`(|&voYYRM&L{LaKnFm;szXIWC~1megwUK zfx%f!yQzgyC}@>AENcl}F=IvLvj7-6ukvYQz{KX2YO4yamV6_ER+j}V;i%Uf17OQ`2|^R5c8&g@6ejm1!re?Fkci<#+}THQV>eEQrip`QAOv~HXha?X!b=kf5Cw$Lpixi} zaYPe`D4CHN1BQp1JB?lxX9fh9yu6~K7cUG%1cV_-gdiaEb)Vho_Wp6*A1v0lckS9$ zwQJX|(>dPQ_Eclr6&8$aD-qEG0ohY0(qW>< zt-cc(d5a+(m=6RrnFAO5xDH+hPu0TnV~>e6bTOnt$$tqiyVa1*iaUQVl2p*7e}wF2 z;4lWXR0gy>E^-FGPVsO!8iU;Vm*D5%95w$1{2hFc;#h0_$-q#}e4;^QOLs$7>S4n| z7euNP4QUey^PonNh)GR`$TGMDZm#rBw|pG7vnH;1`= z{;9y(7&$32EX9yQ2JPq#v`SA0_G;$u8E<4fIx;+-{sYEj8q!J`_bJ?Fa!6v8@)oB= zvfvEGL*Yc&J+&9%%|8AdZqv(L(;}H!P0pLr?q4FgcNmhW1m1(^W*cItXyu&| zspxM=tup)qoSS3FCMEw$J!x~dA#)X{pCx+t7;;#p!G3t;VB{6g{t*XL()~ry$=tA-2=M>*ZX+xc@8w6{nh&8SDDW<$c}J= zEYUQnA7w~`;?J+qWQ}J>NZK^hq;8BM3ChqX;OMc2L@0%qtkMgCy%FXgiCpe@GDFD) zZ`Nc#d|2^%c)=qfiGpnh&%g&@*YK2fn$%7p;7ac#xRH6+(Q0^Qp(pH?Ph~aEx-_z3!f_TB5@vWm~O}cr7z(IO?J&_io7YK7^o>WWSA0I0blm<$8he}P6XGO*Goa00G`laxV2 zZ_?yXc;uGaFJS+C@3z0*U^VR5*PPt*M>rF1GN62|ruWy@l%Ll0z2nEWWM+Cu$bs-R zgCB?S#Ni|GelPtczLh4Ku$#4$VVUEW8%;LA9bng!^H!X$w~REKHz%ZwmnaX1! z!-^~68XtcTZ-JxLeA=~|?DX+sct30>qaET;;fVQ$)F@8BPLo!T80`5H=Qgg?@euO_GYer27zF0lR_Gt|uoJ8dB%vM5-nu z7|8PpybK>;!~5C5zW)c{Z02JXx3|VL*KZG)JK{8ne}RqFgVC=e*ZNsJr!v}}kGz$_ zyo8re&5!R&WS*qHD_#Z9of(qRY@*y$$IBli1K1RP9sWn>b+v=;Mk|(5V zvh+>%cG6Ijui$-u@oH&&4@zH2laumhd8wgqjG4@E^rPPJ39C;~->8`{r(yb9UUPK@ zv8ZdT_FVrsgYv*SH>OdP$ONCBLGVr=FN0&z=Qh2~dy=eg8PcfqKMecMFd*x#qR#s2 zn3Ns;IQ#|PZE4;g#ju-%ALeLM47;~W?y~Mk*I(Dn{dcf%yH|KR-pMJ$ZPeimg$qi( zY+V8G{KR`~et;`>(2uErcFATV!DcsG z;M|3tg7@GS$mggHeun?xmZ^28@5lW!hMZE|?Ey0ANpIZ@xE795?!OI}`1l-rnf3eC z`qVr!&bR(iI0Eh*Uf)_Q1_m!op#)v=%3(RY1PJFyt4fC5NhLaGB)~YFF;RP>+jXa>E_bkaj_Y91NkXDdXAeB0lA)a zOMUAS#?qt(f=ylMbT~>6HnmR2Z1!c;v~hG4tiN8xsRpiX7L-L{^HO9x5zY5Ka8cti zfCY(a!C=_8K$cq{jG$7CUvJ0Z+MrAgE0Sj(qNqm&g=fu4$vQX<-lpb1Lr-mxTYJL1I6S2o9HyLgd9h8Gg?;CJET&7A@Vu2>xe7)y%IEVE& zDt|V@t$YExU_GCwZ;ehqL5WFf9c=0iONmPqoS^pk0{bd&@VH%h=_LJ7OlQvPRD4jV z&yL%xt)j{L)@J6)6Rb-PN~T)A0rgc0!KMoKEE9(x73d&9u?{n7a3OY`0gcY|+ z-y6|)T?zYCdwCG~DCf7<%Y!H3v^Rs!%VhU8U&0H@Jv(EqZdLlYK+LGeG+EC0PG#RE z>$N}WGn#4lTP@bb|`A48HJM zNchC#_}`kMlheTYD*1NSkazWQk!AyWUVJ?yxa-JeEFkbOVh%qJzvSZ&;FUgkDWx>S zZYAvpFZazq1(*BQ?}T6R*p%xqbct`l5cpM3Kqf5WY4`EJ7V`@mCN7SFNl$3)z8_Hw%s;I(h9wO>Ojh@aEW%G^l93VtxCOzE?N@j4_3w zkkqSFIRYniq7PA={FEj$-}E*wfwSO{GWM_VcG!*XMfhXbbtda+u7Pjfgg^1-`^n!K z*yR(5T*Au_yVqbKTn2Yj8$Jiu`sTY@Mcefmk!GhdI=X6aUDPvlAl*YvUx4n1->(Td zb=bZ>74Ws|aRke4{svCmzz-fE=;Le5!8^ z^zAg42=)pI*UBj{@4+1?z+iqF*;jg_ULzN+8fquoX<7dK`ZV{ zeWR|uZ0-J<=3JX^mHv-@CQ>_GUi43WwbspQaYR28Fz-CdhvN6?U{Twe<9HEHvJBbA zN!XlH$M@Seg3fzv^E7xV36Z4aC-dES^zXtQmOcLv_3+?r;h!@$zYpjC5Q`$q__{BXAt9X-82|8w|dNyS9n1%8Ik1Sf3qo-Yk3lG`IvVRP!+{NbNuM$FC_7bJ9ffjB4WSk zwm}EsEyw5`)Dd(x=;eq|qnKfVlpwbfh2%zf0USkA+6rU%%DkWJzHc`nRP#4?ruvX% zm5S%Vhqs15NZA{1fCrLfu0hA(%8v}$5)szlJDzR=`AzKaZ1_zVUXw22vSBM&ek*5s zfM;J_!yWM4xA~~3X9 zAvov9ptFa~32B6wh!SaMegeGaw($FG&kxE#f3+F@EoBcZVqjnoFU!yLM1T!Os|_-H zp^#hPX7wuAp97cR<6i`uj%Z|W8Xi5|XxjRpg>%o@Nf$QgL%81b6^088C5x^R-;UMdMs-o>}( z!S51sLKH)v(Ccm%9Q8t)N)6uD*DEB`;F6YJQk6VNi_Vd`NAxC~<>Rm6Y#$GLh&P#^ z5{r}r{}`>AzbdVr$Ivr!ttynjc6f8EpktsNfz@NldY{6Saa_yDpz|5ko<9RGyCeLD z+MJ!wkE+{4vQ6c{fJt1_ene35nn@-LC>(|A+T>3rseEt2-(kN&@l!a%c3exPAP?SU z1f9P(*&8m0qi?0qCB8xxdGDrt_u%Lc+MuninA14dz%l79i-2^T2-3QkP*lDZSIFN0NSHf0(E z@tjG%TJR}cgMga@H_ya_w4n2sF?+*YxD0vsTK)r$PY<`T_Iv|85?-qG?U+SqGjT{o zxc6)f=66rnV9x(J2KM*ihrcSdTi^xBA=#xoJ`d-@NlIaA2^&yIhAEy6w@RS(RUxnB z2aVTYXwqj6kDD*24#HE{2W6YB-+up1I=!V7o+@R)B{=b&pe*3GyzSAFd3*1i zbF0UB(e{yq%7Dr6z|TB>AFlOrhsFFN;x*i+3@n4oehxZ+RCeC~eou17uhVMs8_BK% zOW{Nb$pW?E7jSipkR&t<8<1bdHR64D&-^F2A}%B=REYO1;in*_*L|#tmQuWkSdDUU z(sO)5$O+kn%$jmWzu3~qm@uheQbuZWMn>BBo)ddaOzJT{B{O4U`uNQB9_c9)CR&TG z>Osx?EwSz?Jte+Cy629cK4W_K-;_>H`u|9$WLkz6vG=n!$r;H>X{kMWruIxvN=fRO zoRpNBX$3xyh!6Go%`HJak@I%XpTMARr4csG|5jQ&HFp&-G_6Ue|qj8K0d#_*Is+A zwbx#Iy@#{)EoGXqOco9B;$j28U){7!~!QyltEB&ncL|0A-8 zfuk7ER2gtvt;l)!R>e7R3OyFV7oP9}Tdv`+?>tVx! zS4FB44QUYw^PqZ>h{8rg*rAZXM>z z7taQMh`VuGBqzm?Vg~K#J!qAm3+&U(H_nLEGaeHe9#8!@#-tk(tBm^$ZZR$-t(5YZ zvmzOAn&P2wBJ7^pB6ypR{|UF~V@QJ1_xw4L^o&O5O=B>> z&WkMRZ^%|<_!T%i%aF}V{&#hx%>YBDDNg-?=nXRDs7iwa@bJONE1rA-2Zy+6)I*am z888|LG#PLa4`DZtcEYQNdU=#ySzZ?~lS2gY(!++dQhGPS8L*pP4REVxyujRJb^9UE zR7?Jl(?9#DArsZQy_|N{BZg!t{#-PP8HWGL-z=--0$CI+M_Z%i5-Q1O5Zd%zbGVKmE1>g4(uLS16=3hsaH7AeD+uCzq`SFu0eK$ z6J(C2N!^o%TvGhcn>1PN*%6ZFQJS2{Go-UJbT%CGv>_2nVS`nEHLx$jTuJ1zN0S*! z&Sfb;$lz!47}Q7Q@XX) zq}Hc!B3$7K$QHP`z>tia!k(XjXFVGdLm8CQL6fTAc!}{WA?t^}3^l(Vu7HQT4!|AJ zpYL$potd(Ln+vhV6R_ylar*<1;?D)x9coDI9F zm)lH}uS>kt+yb91@gi{H9|KHDzXeNXUWk zHG^lsc;fIe_@I~m(lJ((blA<>LRhA{rErg=$i>CagOaaJ7$5!Q0^&HQ(bFO?LZu7JLx4lhF?GXK=)ehEyv~y;YOg8HQws*_4?KjAWon z3Dm+>6THITHAa)2J{}KmM&U#yzXLYPyh1;ti6%)Cy`qJ=gkGJf||+o)oAZ~^bJ%g5j<4D81Swt-J~*Q5vX_EFj!u7vyf)_)6M$MF$rzT@4R9Ke8lhxLFI zRxXIqKQR+2`70~Yt19yv5#w=6PAlYF?Ja{O7?U(eRT{e1Q9-|%7Va0_Z;GAZV> zs{}5Z(&$$}ZnyR}(VGU$NeP;?Sm|D8Y7u;Cg~t!v$?b$walj713-CzTP7RxX52yOp z$KJ(>`PNT|SNhhkgA2U%l~2X$$KslE?Ea{CsvHuhkJ8?_zD-ZFEvTs4O@1O>u<`$2{*1*IM@m^-Y?&I2F^^@|vqN zXoxcpMA*GuH?pk0J@w_9d7v)~KlKVv{C%7<+(I4BP`IGn z%hrYP?!SAF%^7&f-{{9wK=16wM#y(@vNa&%;G?i>$QroL<1uoYf#KeObjhSrvB5Ss zTj1=Oo`P*~6Xdhh20y~@`nV5~5aivrqO5X9nm$3Rvbv?~3$e?DBa*YiL90ooF{K;5D$c)QP>x2-09bTg3ruK^VBZ4NyRrtphCsD4VB}yNM}ZsQ74Tu$ zP2g|gsvmJc8Q3Bl#~VBz0Pp|F<7x1TYlf_L^qZPQ4WR^G_sZeh@OC&~DZFzib(;-a zt4J2X(_#1Ou7~{wXFmK(KKvg%A;&i#LA|}%dha21mp@K(Mh3ErFx;U}Nia(q>;q6^){!VEt_>PV3>VQ9+p%HZMhLh-kj=fr}cA z0W3&V3m$@f3uJ+{;}I&w=xRF-w*;jqtVrfPMNy9q3eTF8lE>jxxJJ$IN6!hLBXMI$ z(Yang9)XuI?^dL@tOdjM75eCevDo92D}-Cb1m$a`_kFkyu27|_Yk?*;zTUG0&SL%T z%AbvJtS>-UtOdFHCo##jl$fMu!N%UOjJQO@oz*@Ev2R&(k6Txk7wSjiLY&vxgrHEL z9k-WTCFAr@qRh8Wvo1L(>1z1~)UWIuY^-2k496^=8E}+XuTd9u<#Ep1Clh+yFt?X;C z-g{r45T!k4HCd-0i5|UlD(7<~DB=d}Me^rzu(5wy0!M!vl(Xt!7S5zq_vOWY`09Hh z;S-PJe;h?8>k{XyT$}VxRmCxEOXT zX=XWo`Q|I&O5ggw!EbwP$}Jc=*S8=We#aA#(X)8keSB^x1w0Bb9wn;_ZmD1SHRuWhOfd~ee+$cl27#sk!Je}I=U)vUDPXdAl*ZaUw|Hi|6Cn% z>acx%D&bo;;0Tu6{3V>YksnZs+rG+mTpN;HwQn9Au`VS06|aB~!l%OW0Xb&n{g3`h zAhZ26BG@M+Tq~!*Y=cj1@(jzG&hH4gjZ(B1?z-7)F+x_}KlJ-F?S1P#&gUlWD=Yqx zzDd^>TYJBxIoD=bBCNK*2Jd^aBXSh&No=bxk=e%&SfbH?V6;QXJ%2OY;HyyuF@ z(Rb+K!|P4CpMg>Yau~1$MmO+fd!r%4iG!`+B)sSMp2Chl{nCIr@Urzm=S#OOe+o{m z_ISWGk*zI5P77$ySHZ>W+N?*1TsZ<6!e4xb8X|Du-hErZ|s#S87MVL|`xj6<5NQ(q6Cxp7uk~X`XE^tT4jvyu+f$!kzHWUT5!9zE3*EaK2S@Av5tnU|c-Yk245nKuvtNGX_r1mV&ffmiU z6D7_kI5V7dcQg(-Jfj^3RC#B<6Rz3hZI~I)4?%KbxZ1#K&!+c>Btda}2RtSs_M2`S z^cB4Q6upBwf{;NkM}+Fd3=1R&xs@m+H^K|xXp+)a7{^!U16=q0dkLYMZ`G0NLy|31 zJPkhjN%(`5z2OFUAW7yLbP`^+(~#{EVf}p)=q8Zg%>K@XU*5%Qa#y%)*a{YO;!F?o z?5k_I3!e5N9~G5+Z=SCN*p0v%c;K7-a8qYIgnBgXBsrx#UJh?N75?sH>pui%tTM#h zsuWJ>g5*Cu4>!ZLK94WL1MOdiN`84F5g=lA-(oA=n2bW^Ng0P9PoaD*Hy~k+CV8;) zok8&gxaQ}O>3qVs@BJSb$fXeqFNhQi-pvsZF{du{??E4$8Io+}kqIy3nk6!C8}Pqy z)`g(6hs~W*2{92R($4&7cy*WX`)tn-N<)8@8U8J0510%L?B!+o_q`EdgOO^3v_2^0 z7PwjcF6_^N2DtW%VB--zdJk7u4>y{&{#W4ai+0k54cYy6P1E?_mbt?y=%J*J^{N)H@Pn_hOe|g)StR=hTmQ)2~R(O(}TAV zazYeGpU`^%3yymsO`!(YWO{|92rg~vCDoJ>wCEg}dqf|=89qJ?_w(_fr+Ab3DKSeq z@Yj)=`HRvT%A;rGS}jomHSo6BpktsNf#pw=^*)8kqqvrlLFY57J^wvCzi;>rwfVk$ zepKBZk{Xo*0}8pO_Y*rgXa%~SzsGDU;>Q73?=_Myc;f1dnmmDL-hu z27?$l(knRI&dC_F2b0S$2CAA(ZGZ+Y9JIn(J{b`r8CVQxBu zugd#LLS;Z9Jn(amKZ3XVxb19y5%C(mzme=ZFc(gw zRWDN;9)zo!grsv+*nm+LTqE9h_slQBOX5SaNQHRsTz(2tdfmsWcplF$5vx`X7QDtM zgshNV$gF41>pwO%#-*kA7?YIVtH+peV|pczOHLa*u17(y)TFV=sVM~oV+*ZWH}s%p z{+d|#l-`n1Al#qTC;fk{lKcVT~+{EY-BJ*5~DsOK1Kc+v%-l diff --git a/artifacts/test_program_methods/burner.bin b/artifacts/test_program_methods/burner.bin index d4332d497ecabe660abe24389c5694e4ab222724..a31debb612d44b2d628051a77613baf39f039ebc 100644 GIT binary patch delta 309 zcmaFSA@QO^qM?Pcg{g&k3(GNPCG(`zlvHzLLvwSJM9XBeWCOEABMb9n(?knXGgG6a zWIeO#A8lA{rr&?XA~@ZYh2>H`K^;bx3@RxMdOnGH`FVN-RT~wMOQ8IXPvydWOd4=EepVM&^d5 drY5GAX2u4lM$-eoGn=>1|I4y{{$JLUYydx}T8;n! delta 309 zcmaFSA@QO^qM?Pcg{g&k3(GNPr8IL3<0JzMGvlPRBs0S_L-XV`;}kO!gJeS!qm-27 zR6VolA8lA{rr&?XA~@ZYh2>H`K^;bx3@RxMdOnGH`FVN-RT~wMOQ8IXPvydWHr@h6WbqrX~hP c7DgrphGs@UD+0eWo43#Z%d&m`U)Gas05}s|8~^|S diff --git a/artifacts/test_program_methods/chain_caller.bin b/artifacts/test_program_methods/chain_caller.bin index afe98d81fcd48f35f73a3005f2eaad7530a0d200..42247274cc9224290976438e5a347f894ffc2b2a 100644 GIT binary patch delta 9810 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 A8vpYU-fk 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 diff --git a/artifacts/test_program_methods/changer_claimer.bin b/artifacts/test_program_methods/changer_claimer.bin index a6a54a7113adcf098330fe554b3d78bcc289b712..9cef121c7e8018938548499856b933210b9bdd15 100644 GIT binary patch delta 1005 zcmdloM`FtyiG~)&7N!>FEiArVO6EzaDXHehhUVrbiI&M`$p&VLMi%DDrim7&W~N3- z$$Dnf6@yu9rmyB=c~(zQv5_T%N(zIXPhwtvo*qHfh6bdlHnNy5$i2TQGgA`_1HxP9CnHvEC!Vn6Z2xeD#eqc% zQ=cJ2e3YMsLHzV}*IAUN=iFo|#cBr7YK`eKw^%rE%fnt79m)~Vc#c8LMAx_=f6YsI`U=NRjcUg?LZ@$lR9;>USJYuQA zYT<=1EK%6J(f^nw1FMFFXcmX*`5`QFlDJ*j_=H871*>jwWZ!#%HB7-lCxz2ga7xjT zHXxut${eQxkOhX=JPV4m={m1)yJ~tqcFFCXuUHCXYzgKWBbcL%&CQJsER4(zO-)Tq aEzOJ#OpT^5Y+yBS&t+%bp3Ba5oDBf~;18Do delta 1005 zcmdloM`FtyiG~)&7N!>FEiArVN@?a6#z_ViX2wZrNoIy=hUUp>#wlhd2FZpdMky)D zsd{G96@yu9rmyB=c~(zQv5_T%N(zIXPhwtvo*qHfh6bdlHnNy5$ixP9CnHvEC!Vn6Z2xeD#eqc% zQ=cJ2e3YMsLHzV}*IAUN=iFo|#cBr7YK`eKw^%rE%fnt79m)~Vc#c8LMAx_=f6YsI`U=NRjcUg?LZ@$lR9;>USJYuQA zYT<=1EK%6J(f^nw1FMFFXcmX*`5`QFlDJ*j_=H871*>jwWZ!#%HB7-lCxz2ga7xjT zHXxut${eQxkOhX=JPV4m={m1)yJ~tqcFFCXuUHCXYzgKWBbcKMj0_Dd%uP)Uj4X^y Z3=GYTfcax#1FLy^E<5Y?Tz0nOYygwI66pW{ diff --git a/artifacts/test_program_methods/claimer.bin b/artifacts/test_program_methods/claimer.bin index bc5c393e7c6713582c4bb0c41187f80001b64b6a..67e8d6b28e7e5d6db7bb1ed8033e4d4fd25cd2b2 100644 GIT binary patch delta 264 zcmX@pEODk;qM?Pcg=q`3!hZ$xq|}sDb7MnubCX2NWV2)gvqU2c^JLRR3sW;wqom~R z4*!`I8S4ot(=)PUP)T9X^GVFh&(kBQ+R%U$)kYRuAF!86H`kwV*^v8=@VI5&D)uNvutPj&3cLr00vo13;+NC delta 264 zcmX@pEODk;qM?Pcg=q`3!heM{a|`1n0}C_bq_iY6!!$$lFEi8LQl+2S-Q&P>14b9C>5-pR>k`2rfjV#QQO%p9l%}kAw zlJ(4{PmE=;nJz8L^0=O$Vk1iil@ta&pTxZUJUxP{4Gl<9ZDcXMQG`Wz`zkS(otK17 zO)M;d(Adzz(9F!x%)r#xYf0TNaJ!XWp`KNMUgdLwuBFEi8LQl+w&CjFSv3%#4%LlFSU#49%0%j8n`^43Z5^j8amP zQ}xWIPmE=;nJz8L^0=O$Vk1iil@ta&pTxZUJUxP{4Gl<9ZDcXMQG`Wz`zkS(otK1- zj7*FSER79KOpVM9j7<$p3@xX}zhN<+zVao@I&8ArvtF@0V#Fo`(pQ32LQ$AieEQ!v zEK{(`Ccb6Sn11Fh3x^aI$1uc4`577-PH%k2BC(zA9ZM|}E;H1p@BP5SflF3n+DAN+ z(#Co@Ic2$ehFDxM9ppY~6Wj{6FZ{^Ttz=6unvBe$W*8V58d#W{niv>a7?~Itni&D3 TB(RRvynTTP>-GgAY$w?I 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 O;kX9nTiO2h^8W(yGnS+P delta 9822 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 yW1Oz&_^6>nV}}lli*XK(b|(*%;Z`$xVnzp7KG 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 FzXA3Tzdrx~ diff --git a/artifacts/test_program_methods/flash_swap_callback.bin b/artifacts/test_program_methods/flash_swap_callback.bin index 7e740f1942c463348b05e500c4700c39e8b58fd9..91738b4aa3d8c9b381c4ded61c08ee590dbce10e 100644 GIT binary patch delta 1043 zcmb7@%}WA77{>j0S36ZAg|3nkK|-+X%^q6MbqjyqjY|r=Y4)J?@YB3sy0H$C3neF^4`GP%q-0o@&&3P zN_E@Hk(^3wY|@-zn+7p(Hm49)UxOrDjX~>Zq#0YTxx7nRwu}2kWuzOa|8Zl}xsF5l zE=ZAX5!|O!O+pbu1nDf$fqB_bc6Sf<6prr19>MSCB^~Pt9=tq-McPo|3WKr;BEq&G znh3Il2503N(jM;Y+J+QlZ7RiC>lIQmXBXG@W*V88_12{+cJ%_6ryWRfXZ1M~vMHos zOOmv}>K(WZ3u<(goy&ccW*H`&`*%q4nbYIGX{LNYo=Y*AflOEo5%`21ZqBa3mN@6Q zzu*kG!NJ<%;O|ozc|0_PxPN|D>B5+>oi)4Q7pn5`@`Ox<-OgbTE~1Mge-{25fiy}r b)x;DThHh9yQw_{&QJ^Q~sN|HRKIZ!dihvVD delta 1043 zcmb7@PfG$p7{>kcu6C+K3SA{7f`nk1nO%2h!N?B~78wK`3U%94*{x%B5c&i*CxhrJ zg%Rx4E>fqyg5aqR_Q#;QXj&a-l+Mrdyw7iV=dCtE)kf&JTDpb`SRZq?wqmIm@Li=ZgD9WuzOU|F{WtuHz8C z3u+iqVkTA1G>M@iovH>4bYNaiD!aP}dkRN)Vvpc=^OBDF1P@-G!Xj;`aD_ox1na`K zADRd@g$8Hk88RO3?AnGDWNkx=v(_u5WzJh%+nX6o3G1y(Q|#&mE>Am<=FaMKCS)q4 zU`vv;!0H{i4GU^C#LneDO0x_T&iy;2_{^Dc-!xM`z~WL&W+59ELj*p-=H_xW*b?U) z_ZOT2H#m5|^kP#Lc diff --git a/artifacts/test_program_methods/flash_swap_initiator.bin b/artifacts/test_program_methods/flash_swap_initiator.bin index 0d420cfa61a2970484e780ddd0ad05000ab6586f..8c1c48d5cf220a9b2a20e8c3c93bf45fe778df4e 100644 GIT binary patch delta 1184 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 diff --git a/artifacts/test_program_methods/malicious_caller_program_id.bin b/artifacts/test_program_methods/malicious_caller_program_id.bin index f22a84a5acd447e70242302badaefd553e5a1bb4..0ee8cb70d97e65f4658bc289422b79ae10a0b3b9 100644 GIT binary patch delta 300 zcmeDAD&F%|yrG4$g{g&k3QLfJc~WXhs=2YDxw%QAWwKeafmx!Fg?X}RqJ^oMsZmn$ z^a;P2?WS&Ed0bCOrJj)`gGvg6o=;+4ex4pd)rJP7s5Y|LF2uz0?t(DTQKn`_=4Phm zMrMY_X2wP)CevFlu~={SyUcP@-j<-XM&^1sIc2$ehQ{XR#s(Hf=7y%GCZ?8V#s;QF U(*^%Ao40p=X4&5TnU#?p08ThpVE_OC delta 300 zcmeDAD&F%|yrG4$g{g&k3QLeenz@B>l7WSpaZ*~6nPHltd2*U@ikXQ)vZ0AlN=kC- z^a;P2?WS&Ed0bCOrJj)`gGvg6o=;+4ex4pd)rJP7s5Y|LF2uz0?t-wXfuVt+xskDf zv6->4iIIhYq1p7-ODxvg{Vubdl(!{lt&zE2PEJ{_o}qz}p@D_DsfmG+g^>x+6eA;x U>4N{5&D*;_vuyAF%*x0P06D{0)&Kwi diff --git a/artifacts/test_program_methods/malicious_self_program_id.bin b/artifacts/test_program_methods/malicious_self_program_id.bin index 9f0d8b2a41217d6abb8fa4c6b6ee2e7049cf5e0a..5e9bfc3d638e38a06cd81424fb4e7134c354cdc2 100644 GIT binary patch delta 304 zcmezKMf}ef@rD-07N!>FDJ(Wh=1Hk3spiIp=H@1emdR$x24;yy7Us#Oi58}2rbbE0 zdS=rbAF%jNUCnZ-o}gMIO9qt`20fp|y!<>pf~pM-NKtKMF@;5UyCxIM;R`}0CWfXK z7DkpPW`>p~hUO-w2Ga{Ku~=`nyv%Yz-j<-nM&^1sIc2$ehQ{XR#s(Hf=7y%GCZ?8V Y#s;QF(?902TC~@FX4zi%ne`tV05KL>@c;k- delta 304 zcmezKMf}ef@rD-07N!>FDJ(WhY33HjNd^{X#z|>OW`=2o=E-TsDP|@H$%ZCIDJjXR zdS=rbAF%jNUCnZ-o}gMIO9qt`20fp|y!<>pf~pM-NKtKMF@;5UyCxIM;R`|rrsn2G zhDJu_7G_3fMixdU2Ga{Ku~=`nyv%Yz-j<-nM&^1sIc2$eh6YB41{UU~CI(Vv?lbE@HUK7RTXp~d diff --git a/artifacts/test_program_methods/minter.bin b/artifacts/test_program_methods/minter.bin index 17b931c004439e587ced59ed0bf02e8c362f630b..a87b7a319e46bfbe8e40cdfb7dbda70b3876b9a8 100644 GIT binary patch delta 275 zcmX@nCUK%oqM?Pcg{g&k3QLTVc~WXhs=2YDxw%QAWwKeafmx!Fg?X}RqJ^oMsZmn0 zp4oIkV-}mKyI3CA6I5$t$)J+Lpy!jAm!GFcP_>}}DXNVurYf-LZuewjIr!6-pxH*| udO0~|xq61i=H|u*7DncVrluyQmS)BVrbg2ZbXm;X>;AB8ulvJ#iVXmUSx#{P delta 275 zcmX@nCUK%oqM?Pcg{g&k3QLSqnz@B>l7WSpaZ*~6nPHltd2*U@ikXQ)vZ0AlN=kC7 zp4oIkV-}mKyI3CA6I5$t$)J+Lpy!jAm!GFcP_>}}DXNVurYf-LZuewjIr!6-pxH*| udO0~|xq5~MMur9!=B6eFMixdU28L!vMi$czbXm;X>;AB8ulvJ#iVXl+T8` qa`g<2&CQJsER4(zO-)TqEzOJ#OpT@orm~v1FZj)}eZgT8` pa`g-ij0_Dd%uP)Uj4X^y3=GYTfCdGovYNLq_|39?!Ee?RYygY9QE>nO diff --git a/artifacts/test_program_methods/modified_transfer.bin b/artifacts/test_program_methods/modified_transfer.bin index c1d436563e680a8d0b13233e9d3cd779121ed12f..184fc2c66e37f8dd5538424b9cb19cee56d422f1 100644 GIT binary patch delta 272 zcmX@oAaSHYqM?Pcg{g&k3(F)HCG(`zlvHzLLvwSJM9XBeWCOEABMb9n(?knXGgG6a zWIeNK7A!W?Kd`Vot|zG0$dW-Ng+b3JF)u$)kDzKp15#8QS!@qtV|n_?mY}&t=6X3f rWx0BW#^&b61{OxS1DRON+gJZ&*}nQG>r6HP=&?>i delta 272 zcmX@oAaSHYqM?Pcg{g&k3(F)Hr8IL3<0JzMGvlPRBs0S_L-XV`;}kO!gJeS!qm-27 zR6Vn47A!W?Kd`Vot|zG0$dW-Ng+b3JF)u$)kDzKp15#8QS!@qtV|n_?mY}&t=6X3f rWx0BW21bSk7UrfV21XV}CI*IPMn)FX1DRON+gJZ&*}nQG>r6HPw*61j diff --git a/artifacts/test_program_methods/nonce_changer.bin b/artifacts/test_program_methods/nonce_changer.bin index 670ec825efb0dc6d733393166f5f06aed1559cec..383f9eecde7dfa8f96fb2386a6c295ba47ec157d 100644 GIT binary patch delta 278 zcmZqalxXRcXlP+jXl`zjXqjx5Y+#mXWMQ6cnrLBaW@?m_ ztY&-*^may;$Mpmi8(A`_q%i3DBv)K4gg{JPg4K@ delta 278 zcmZqalxXRcXlP+&-*^may;$Mpmi8(A`_q%i3DBv)K4gfbOP~!jq diff --git a/artifacts/test_program_methods/noop.bin b/artifacts/test_program_methods/noop.bin index 6096f5d9915b0b696a0f48a7543494f339112e3e..cf43177148286b7b74287766d8fba00de3d3fc56 100644 GIT binary patch delta 311 zcmZ4RReZr$@rD-07N!>FDJ(Hc=1Hk3spiIp=H@1emdR$x24;yy7Us#Oi58}2rbbE0 zdS=rFjah7_-+RC!IQ2BkrFw!Ij4T;cQW*4n67%x&^a!dpG$2K_k;PO67TxWhOe}{l z2%DK$m>XG|T3T2dTN;>{S{fJ{O`mv)#d>?xWtI!_wgjya<&0Wq delta 311 zcmb8oKMny=5P)&kh*oGF|78v5z;1^)30 z_f2lV-9jrWsL^z}TB=-4_>X2eHlUpiJ-FPeB#s$Lh=s7DjbTdncj#r~2i)p|+%-Ej fpRX5+kO{?g46?96vdogcTV=O9eIPr1%3kFM)5TlQ diff --git a/artifacts/test_program_methods/pda_claimer.bin b/artifacts/test_program_methods/pda_claimer.bin index 1a3948fa156791cb2b6d4073c137de9671cbf55f..d113586fe2211d59d7bccf01b69653ab0dda3b9d 100644 GIT binary patch delta 1054 zcmaE|TH?uSiG~)&7N!>FEi4ftO6EzaDXHehhUVrbiI&M`$p&VLMi%DDrim7&W~N3- z$$Dnf1>9L|rf(Brd0bCWv5_T%N(zIXPhwtvo*qHfh6bdlHnNyLQG!KxyQ>(>@6)nI zM#hF_CKeV(W|lyPnYoF95kq{GpSf|oiciS&{YjblnY}~H(l@%i-we`UQSL~ zt{yJ=>A8u z3kOy|L81YF`U6I!8E)Gz-e!^6F7=tEN7|NPCNqM@x1q7Qxv_zTk-4F%sfnqjnX!SX V(e#g!tmf@f{H)uh_}Nae0RU;K6FdL_ delta 1054 zcmaE|TH?uSiG~)&7N!>FEi4ftN@?a6#z_ViX2wZrNoIy=hUUp>#wlhd2FZpdMky)D zsd{G91>9L|rf(Brd0bCWv5_T%N(zIXPhwtvo*qHfh6bdlHnNyLQG!KxyQ>(>@6)no zhDIi)7KR4qmWGBVK+@RIm?1vO&)hg(#V2I?ekN9#>6MRI%7wA0n=bf>MMKI|FDIug zR}Yu`^xVfR?AUZ~Z-2}p!HP`=WUjiDF>Z4|zhF6qRik4atMK$}X;y{l%&%D15m55| z6^jE_B_QjiP4L(cQDBbSfe3dnzF`r^X32K#H!L?9vB^vqf5%dVRU*NiC3yOUKP+rm zWj8KmahM+Po<$9pY@8%c2XFhpB9GlM;HWUdsSy%YCV1sFqzv%OPnY|IJ&Ax#pC12- zg#)XfAklz7{Q)D=47cqUZ?nj3m-@`oBW+7ClNmwd+t9$s(7?jn)WpEZ!pOwH(98&! Up*~8onzu{wvu>B-XFJ6P0L}Rn1ONa4 diff --git a/artifacts/test_program_methods/pinata_cooldown.bin b/artifacts/test_program_methods/pinata_cooldown.bin index b1e9e802a5b6521525c30fe75f5150714ceae20b..cc229c51ae46f205feb0e38fd826a7205c49ed80 100644 GIT binary patch delta 298 zcmZ25Lvq0k$%Yoj7N!>FEiB8;l+2S-Q&P>14b9C>5-pR>k`2rfjV#QQO%p9l%}kAw zlJ(4{U%bR(Gkt?PtKf7obC#?11a%l$GN`05==mh(<>%=URBdQLifSW^>5j%My6w{~ zShi2MU^QlRCTM|?xn53AS+1U;vAMaifrXK|p{c2fsim2*fvFKge3YM=#q@)`tdi6D Sby?Zlb*)&p>sqmW76brb!cxBg delta 298 zcmZ25Lvq0k$%Yoj7N!>FEiB8;l+w&CjFSv3%#4%LlFSU#49%0%j8n`^43Z5^j8amP zQ}xWIU%bR(Gkt?PtKf7obC#?11a%l$GN`05==mh(<>%=URBdQLifSW^>5j%My6w{~ zShi2MU^QlRCTM|?xn53AS+1U;fsvtsg}JGTfsuugiGiV+k&y*Me3YM=#q@)`tdi6D Sby?Zlb*)&p>sqmW76brJ22@V~ diff --git a/artifacts/test_program_methods/private_pda_delegator.bin b/artifacts/test_program_methods/private_pda_delegator.bin index f6b3fedb45ce2c0374ae7520bb6a44efbf5d6d8d..1bd9b65a923ca546a31005fe012b1ad38b756b81 100644 GIT binary patch delta 1048 zcmb7@J4*vW5XTcU8%-gi7Um@vj1oaS?)I{`x1gxK53B?Q^*rq~Du^HmXA!Wmu$wMm zXBk1cuiztvpFjw9K0v#mA*d0t$ezJ==0Crg`OofUDSBCo9^`}hmVD?OuKW7<%G&B0 zH+0Ukws1^GGi_>dhuIc08C`Ky6UP={1P9Y_?=}@v5$InHsFQYXGp9CH>)Lc%SXyfLeuD2R(AL#hhLsAGWby4G(v7!6B!!VTC`!4V3S<(N|48`D zn0SYnl<~E6Quk*B>b4}Pzv8!xH&BJAplq3R4fbX6vl=YO;}V|0}JgW-q~FEi9*$l+w&CjFSv3%#4%LlFSU#49%0%j8n`^43Z5^j8amP zQ}xWI+efq5OxI9md0bCWv5_T%N(zIXPhwtvo*qHfh6bdlHnNz$L7qi-`*szUKc^*4 z&5bQA4b2QJ%q>kVjV#SfEg9mY{LGExr$2nlA~9W7h?RZ%>kllI!dMhe-zdSNK7HOt z7EYY9(w2HTIc2$ehQ^rsxBvObvVsk())oBrbm%NcCqh1#sb(=TYV zDop46#j*jbxq|X6>e3dtoirU`hU0G*NvvjoJS}60+YAP9ut*!>R)Mf(yXqg7H;mXk zqx_GhMi9gE(;xD%#$Zz(Si<5kJ;9fifBHOLR!JNx;-v7n>ERz1@vZ8t;aFWWfsxe! zYhZu_6t}66u$XSc#ELtKOs~f!3o=~B6rbr}>&kMzXWd>e&vudx0I`=3O8@`> diff --git a/artifacts/test_program_methods/program_owner_changer.bin b/artifacts/test_program_methods/program_owner_changer.bin index c7f97973451d95c122dd3b941616f0ebe4a33f74..b81e33cb8f8666ff1e576638eb4cd347ee604f00 100644 GIT binary patch delta 275 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

W&(nY=768Z40p*K#)(Uqst z4vzOQ-SaALoYHH0!fWy_ciP3-5|wSV^B{W;4&zOB9_$5|R;$KIBk54X?IX~>gY6ro*Kd$#c9N>}KDF}Up!^@_VSSFML{`8S;)uOu7mQYL_A!-C z@WLE^2J7d@3*}jfYS#J4!}{~V6&JC-EI(DB{GNrj ze6NFpOYm*ukiQQc3ARe{O7I9r|32`2j`2NU=NOwc8jpsdjsa`H_uB&W7OLd~4j#M+ z8v=~D7zS$KbO&z%r-3bpv0fRp41~`;0m)w$m~2RG%#lpqQtD3u=6n!}D$gH-dLF zp8}WH`sk=B@4{Q;+&yxWD{aPnL~y8&ux*T!GzfRdHTAY(mEdadEv%^5Qxbg#wyqen z^tt=wp^|h)uir0g*Gc{LgoAR8EFICmKa9({RG`1~jeN=@eH2)F3|HL}y-%y$Bx&al z;N?0*HEw)iSdKq_ffvIwDk&%nf_r_52f=3ZQ(N$2aQ0U7PA+)(S462lsKzlO_)T!p zSE!RnJHZ*K-{n84#tWq27r-}jJq#s}MkmowRAbg#A@JBCBIR{_n z!Np(W4fa#i8J=K0I1_J%BEX`5>|vs|H*8)F_Tr^VoFk&YM+@E{(|yJ{9!5yxTfTt@ z@K9`AA+QNt(x}ij=Vj~)68xDpOWiup7M{09xy?U;ZK7>*<5!ky+9p-`|6?6pHiea_*@{8fAgv3#^( z^k;z)Qo8pNQR6!bW%Go)z~29}^>z8xc0dyo6r-WFRyBTH5WE{)`j*Z9c4&sj;ubCX z{|s(`2dkKW24^|OXI;jl@+q8QyhJa9o%%0;S-)l|9DfCC{EcdShKLE4gUfz4?_PqN z!6~wjRpq|!2?xqAEk2tYvAU3yt_01xf9+9 zGknIWE(~Y_H-n2XzY&2c!PxyvZ40M`qFB!|Un#|aW8JRhCAZ@AfdX-R6aB89FleK_ z#+l#{hXEgfx4j92S$^nkD0BDtNHek!3aZdhh9rz)fl0k_Z8)J4>b5b#o8X;@kd<`r zDH172Dv=t(fJrJm!h5dJ7fNn=1O>7uwyBr<*MhxotF(rhB2cflE1L1}BNQZ{p>?}L zjc!xn3UCtG3Sqy#_;l-U7FHpD2wZbD)L-EW77@8a2&Cs+6L_@4Bf`^Jyo1xhm3z#$10jF1KRkA9 zyDNU^LqAf+h}i2f_!QFcawGnPV8BK+7*8?GP2dvjYXrpD*REKsDXxm*PYCvTCvd5w z|1aRe5x$PfxeMHiU1a6Rz&K?6dDWOg7&srSB}My;tGsA<3k|35G_Np%Um1ieBHmy8 zm{9O8aOK^0mJdlr{~47gaR2k*BwQYfn2&>8WZuQa1Yba4 z)df4ry4;OJ+_CRRfU7&H#^EaDUk4X7E5>0hxN`~&LJ}9V0Y%`lE#}v(=V5L z>>_yUVAOwS?f>gA)PYk9t>+|6&X7oc&xfO4EP;!bgPo_{;s>!L_t?@SyHXvkrK8Q|Sus}whYi|?_M>=vxe1@y0C`9g3-vPvz?tHHY=Z*9x4 zCo%pm^XWhsln!1CUIuyN{O>*sm2EIQ;t;O@9~fd={3TdP$I}Rx+Rn4_X+6k?%r-sD z0IvdDbz(7iE$T=X8?+TXVE{f3IEQ}3Cm-J*%=5o|9!@t$miNb9xbAJ-@pyty!23{m z*0KSk79e6e-eU0DAw2pF+_oJN>tb^5QxZjeh9qPI>cN!`zJ4J*{ap0(`9G}`uQQi1 zAzSzFHi#^)zb8Z^m2 zC_gqSaZ*BlQo^8w*ol({4hm$Aai;{Pwz@+DNgnrJ?RQ7SCR1bq4IG_6W9E#3zbhT% z|NltGCIxCF_W=Ff>)gM77#1577dyxw?~nESlN00P;}Vhs+dgrZ{YJa~$S(KmuHWbg zsK2=H2n^Zlp8gx1`oH(OH@SbSL;Kv_Ib!hdIv1Nbu&8L>^no#PiHULkq}armgoOBn j-ruoL;-gQzA+4=mVB`RzLecr^pI_ delta 9374 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 delta 10804 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 diff --git a/artifacts/test_program_methods/two_pda_claimer.bin b/artifacts/test_program_methods/two_pda_claimer.bin index 370d3c11007d13607a23383b7e12f692dfc102a2..f58a3378678c4bca9ac5d9d672b906854b90e97f 100644 GIT binary patch delta 1047 zcmb7@KTE?<6vbP;Q9Fi;O>JC?w3F$}%b%BkBHe`!egI9=ZnbVYh^SC-u#1D-&2J!5 z5aJ?KoJ0_Dbh1N5P)iYO2gNECx0eRz-#zD^dw8#2lj=2TyArMpRfbPMjwM;XSST`0 zWlVQ$*K~>LP>Z>SV;QDF^R8mzehy|a(*qIrVsN_^sGxRex)4$pobqZ}37l5Rf2OI0 z_Y*MVMdI*z6(zQ25kjeDQ$trZoe+Xj6As5YAcPGOQrK=n#2?G5rIbo*D~if-@Ny3j z7yQKu&0mXWPr%PxO9~oZKf^Kinm)aFfvoS^G|snR%pWJ%fK+|^n-)mC<=#gN?!r8R zk8RlCg7YdY;!zJqxwMgkpz%V#L~JTd)*FH6LWzdi~a@G7}JPFnQ9oiVVfE;C}vH8 N?RG`M>xv_nBi|6K6QckC delta 1046 zcmb7@u}cDB7{;~UvmCX^Gi{O3sq_23`@FlL2=~CDKcLd{CbO-Eh#CZkTpHrt`VS(6 z;HJQ6iXft~DF-8{L?Ux2xWs7cJCEky`#$gUJ$z52E;s7(e#KuIsf?aMJd&_72 zh)V9uG1Yw+&!0i;x1Nwxym^6B;cEu;@)feKXH&S;hH-Zs(}%bk$lta>79F=g+i>p} z5q#>vju2ebU=p-Zz$*Lk1s`+ny=UOwl~=lq$hGwaH_ub>9gES5|p z89|JNOe3zvRn5dYi&Iml8pW}=qVY%=7P%oo^Pn$`4aZEvp)8x}?X=RDM(TfPtn(Wu zELcSkRBuNy(J5hS$iRpYRcE@+FB>oyAWAB=v!x*N7qC9>!0Qw!E#Ct~-GTz&e}q%f zd&f#f)ZVKbMn<|lVHKVr;<9NT%YP?FOoiiBvm_s%yY{ec!nYlCzeqRe(JBFey4EnHqVQU9QV zWVW>lH`P#}f>fxBpukm&cBMkA?u@j(=XuZj-g7vGe7KMgXLH`1FXz948cdq1CMJ=l zh)FZ4U=yn;Q#2F_rLaT{BefLPEdh&v0qgS)f?kHw3Ozu=&nVFSM>u7@ zcdU3UJ9~A*@K|#utl|^IeGbi|bfFAEX7L?n>Gcc5>G>;+(vLDEm{>O;cCkOHzyNC) zbZC$htyUFmW;nYBdo083E-a5b+tITYth00%9IUwMmcC((R=!}wdV7XV=8`(gpvQHG zc{LzP@9WUVGVdxw4d{0&@>q5GQ(GR5NbUf3XdR_|lbP63n=m~Q>v=rnHyI)rX{szC Wq7eyUg|rXlaD!8iY_4brN`W8N?H2q1 diff --git a/artifacts/test_program_methods/validity_window_chain_caller.bin b/artifacts/test_program_methods/validity_window_chain_caller.bin index 8a99d1bbb8720a80bdd5414a719418290320090b..c1db547906c314d0a86e1d505e6fd8b7483329cd 100644 GIT binary patch delta 10527 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 V?h9DUPXy*@`~cSCWT0lj{{eqA*{lEn delta 10582 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 diff --git a/integration_tests/tests/tps.rs b/integration_tests/tests/tps.rs index b9c73e4e..cd8e9ae9 100644 --- a/integration_tests/tests/tps.rs +++ b/integration_tests/tests/tps.rs @@ -27,7 +27,7 @@ use nssa::{ public_transaction as putx, }; use nssa_core::{ - MembershipProof, NullifierPublicKey, PrivacyPreservingCircuitInputAccount, + MembershipProof, NullifierPublicKey, InputAccountIdentity, account::{AccountWithMetadata, Nonce, data::Data}, encryption::ViewingPublicKey, }; @@ -249,12 +249,12 @@ fn build_privacy_transaction() -> PrivacyPreservingTransaction { vec![sender_pre, recipient_pre], Program::serialize_instruction(balance_to_move).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: sender_ss, nsk: sender_nsk, membership_proof: proof, }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_npk, ssk: recipient_ss, }, diff --git a/nssa/core/src/circuit_io.rs b/nssa/core/src/circuit_io.rs index fd6a00d9..af78104d 100644 --- a/nssa/core/src/circuit_io.rs +++ b/nssa/core/src/circuit_io.rs @@ -16,7 +16,7 @@ pub struct PrivacyPreservingCircuitInput { /// Length must equal the number of `pre_states` derived from `program_outputs`. /// The guest's `private_pda_npk_by_position` and `private_pda_bound_positions` /// rely on this position alignment. - pub accounts: Vec, + pub account_identities: Vec, /// Program ID. pub program_id: ProgramId, } @@ -24,38 +24,39 @@ pub struct PrivacyPreservingCircuitInput { /// Per-account input to the privacy-preserving circuit. Each variant carries exactly the fields /// the guest needs for that account's code path. #[derive(Serialize, Deserialize, Clone)] -pub enum PrivacyPreservingCircuitInputAccount { +pub enum InputAccountIdentity { /// Public account. The guest reads pre/post state from `program_outputs` and emits no /// commitment, ciphertext, or nullifier. Public, - /// Init of an authorized standalone private account (mask 1, no membership proof). The - /// `pre_state` must be `Account::default()`. `npk` is derived from `nsk` and matched - /// against `pre_state.account_id` via `AccountId::from(npk)`. + /// Init of an authorized standalone private account: no membership proof. The `pre_state` + /// must be `Account::default()`. `npk` is derived from `nsk` and matched against + /// `pre_state.account_id` via `AccountId::from(npk)`. PrivateAuthorizedInit { ssk: SharedSecretKey, nsk: NullifierSecretKey, }, - /// Update of an authorized standalone private account (mask 1, with membership proof). + /// Update of an authorized standalone private account: existing on-chain commitment, with + /// membership proof. PrivateAuthorizedUpdate { ssk: SharedSecretKey, nsk: NullifierSecretKey, membership_proof: MembershipProof, }, - /// Unauthorized init of a standalone private account (mask 2). Used for recipients who - /// don't yet exist on chain. No `nsk`, no membership proof. + /// Init of a standalone private account the caller does not own (e.g. a recipient who + /// doesn't yet exist on chain). No `nsk`, no membership proof. PrivateUnauthorized { npk: NullifierPublicKey, ssk: SharedSecretKey, }, - /// Init of a private PDA (mask 3, unauthorized). The npk-to-account_id binding is proven - /// upstream via `Claim::Pda(seed)` or a caller's `pda_seeds` match. + /// Init of a private PDA, unauthorized. The npk-to-account_id binding is proven upstream + /// via `Claim::Pda(seed)` or a caller's `pda_seeds` match. PrivatePdaInit { npk: NullifierPublicKey, ssk: SharedSecretKey, }, - /// Update of an existing private PDA (mask 3, authorized, with membership proof). `npk` is - /// derived from `nsk`. Authorization is established upstream by a caller `pda_seeds` match - /// or a previously-seen authorization in a chained call. + /// Update of an existing private PDA, authorized, with membership proof. `npk` is derived + /// from `nsk`. Authorization is established upstream by a caller `pda_seeds` match or a + /// previously-seen authorization in a chained call. PrivatePdaUpdate { ssk: SharedSecretKey, nsk: NullifierSecretKey, @@ -63,7 +64,7 @@ pub enum PrivacyPreservingCircuitInputAccount { }, } -impl PrivacyPreservingCircuitInputAccount { +impl InputAccountIdentity { #[must_use] pub const fn is_public(&self) -> bool { matches!(self, Self::Public) diff --git a/nssa/core/src/lib.rs b/nssa/core/src/lib.rs index 405cab6d..f1e2e4f5 100644 --- a/nssa/core/src/lib.rs +++ b/nssa/core/src/lib.rs @@ -4,8 +4,7 @@ )] pub use circuit_io::{ - PrivacyPreservingCircuitInput, PrivacyPreservingCircuitInputAccount, - PrivacyPreservingCircuitOutput, + InputAccountIdentity, PrivacyPreservingCircuitInput, PrivacyPreservingCircuitOutput, }; pub use commitment::{ Commitment, CommitmentSetDigest, DUMMY_COMMITMENT, DUMMY_COMMITMENT_HASH, MembershipProof, diff --git a/nssa/src/privacy_preserving_transaction/circuit.rs b/nssa/src/privacy_preserving_transaction/circuit.rs index 57c9185f..0b907ab6 100644 --- a/nssa/src/privacy_preserving_transaction/circuit.rs +++ b/nssa/src/privacy_preserving_transaction/circuit.rs @@ -2,7 +2,7 @@ use std::collections::{HashMap, VecDeque}; use borsh::{BorshDeserialize, BorshSerialize}; use nssa_core::{ - PrivacyPreservingCircuitInput, PrivacyPreservingCircuitInputAccount, + PrivacyPreservingCircuitInput, InputAccountIdentity, PrivacyPreservingCircuitOutput, account::AccountWithMetadata, program::{ChainedCall, InstructionData, ProgramId, ProgramOutput}, @@ -66,7 +66,7 @@ impl From for ProgramWithDependencies { pub fn execute_and_prove( pre_states: Vec, instruction_data: InstructionData, - accounts: Vec, + account_identities: Vec, program_with_dependencies: &ProgramWithDependencies, ) -> Result<(PrivacyPreservingCircuitOutput, Proof), NssaError> { let ProgramWithDependencies { @@ -124,7 +124,7 @@ pub fn execute_and_prove( let circuit_input = PrivacyPreservingCircuitInput { program_outputs, - accounts, + account_identities, program_id: program_with_dependencies.program.id(), }; @@ -237,8 +237,8 @@ mod tests { vec![sender, recipient], Program::serialize_instruction(balance_to_move).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::Public, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::Public, + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: shared_secret, }, @@ -336,14 +336,14 @@ mod tests { vec![sender_pre, recipient], Program::serialize_instruction(balance_to_move).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: shared_secret_1, nsk: sender_keys.nsk, membership_proof: commitment_set .get_proof_for(&commitment_sender) .expect("sender's commitment must be in the set"), }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: shared_secret_2, }, @@ -410,7 +410,7 @@ mod tests { let result = execute_and_prove( vec![pre], instruction, - vec![PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + vec![InputAccountIdentity::PrivateUnauthorized { npk: account_keys.npk(), ssk: shared_secret, }], diff --git a/nssa/src/state.rs b/nssa/src/state.rs index b54f97fe..724ea4aa 100644 --- a/nssa/src/state.rs +++ b/nssa/src/state.rs @@ -363,7 +363,7 @@ pub mod tests { use nssa_core::{ BlockId, Commitment, Nullifier, NullifierPublicKey, NullifierSecretKey, - PrivacyPreservingCircuitInputAccount, SharedSecretKey, Timestamp, + InputAccountIdentity, SharedSecretKey, Timestamp, account::{Account, AccountId, AccountWithMetadata, Nonce, data::Data}, encryption::{EphemeralPublicKey, Scalar, ViewingPublicKey}, program::{ @@ -1293,8 +1293,8 @@ pub mod tests { vec![sender, recipient], Program::serialize_instruction(balance_to_move).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::Public, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::Public, + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: shared_secret, }, @@ -1341,14 +1341,14 @@ pub mod tests { vec![sender_pre, recipient_pre], Program::serialize_instruction(balance_to_move).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: shared_secret_1, nsk: sender_keys.nsk, membership_proof: state .get_proof_for_commitment(&sender_commitment) .expect("sender's commitment must be in state"), }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: shared_secret_2, }, @@ -1398,14 +1398,14 @@ pub mod tests { vec![sender_pre, recipient_pre], Program::serialize_instruction(balance_to_move).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: shared_secret, nsk: sender_keys.nsk, membership_proof: state .get_proof_for_commitment(&sender_commitment) .expect("sender's commitment must be in state"), }, - PrivacyPreservingCircuitInputAccount::Public, + InputAccountIdentity::Public, ], &program.into(), ) @@ -1617,7 +1617,7 @@ pub mod tests { let result = execute_and_prove( vec![public_account], Program::serialize_instruction(10_u128).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); @@ -1640,7 +1640,7 @@ pub mod tests { let result = execute_and_prove( vec![public_account], Program::serialize_instruction(10_u128).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); @@ -1663,7 +1663,7 @@ pub mod tests { let result = execute_and_prove( vec![public_account], Program::serialize_instruction(()).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); @@ -1686,7 +1686,7 @@ pub mod tests { let result = execute_and_prove( vec![public_account], Program::serialize_instruction(vec![0]).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); @@ -1717,7 +1717,7 @@ pub mod tests { let result = execute_and_prove( vec![public_account], Program::serialize_instruction(large_data).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); @@ -1740,7 +1740,7 @@ pub mod tests { let result = execute_and_prove( vec![public_account], Program::serialize_instruction(()).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); @@ -1773,8 +1773,8 @@ pub mod tests { vec![public_account_1, public_account_2], Program::serialize_instruction(()).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::Public, - PrivacyPreservingCircuitInputAccount::Public, + InputAccountIdentity::Public, + InputAccountIdentity::Public, ], &program.into(), ); @@ -1798,7 +1798,7 @@ pub mod tests { let result = execute_and_prove( vec![public_account], Program::serialize_instruction(()).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); @@ -1831,8 +1831,8 @@ pub mod tests { vec![public_account_1, public_account_2], Program::serialize_instruction(10_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::Public, - PrivacyPreservingCircuitInputAccount::Public, + InputAccountIdentity::Public, + InputAccountIdentity::Public, ], &program.into(), ); @@ -1866,18 +1866,13 @@ pub mod tests { let result = execute_and_prove( vec![public_account_1, public_account_2], Program::serialize_instruction(10_u128).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); assert!(matches!(result, Err(NssaError::CircuitProvingError(_)))); } - // The four `circuit_fails_if_insufficient_*_are_provided` tests have been removed in this - // refactor: each variant of `PrivacyPreservingCircuitInputAccount` carries exactly the fields - // the corresponding circuit code path needs, so the parallel-vec length mismatches those - // tests exercised are now compile-time impossibilities. - #[test] fn circuit_fails_if_invalid_auth_keys_are_provided() { let program = Program::simple_balance_transfer(); @@ -1903,12 +1898,12 @@ pub mod tests { vec![private_account_1, private_account_2], Program::serialize_instruction(10_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), nsk: recipient_keys.nsk, membership_proof: (0, vec![]), }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), }, @@ -1947,12 +1942,12 @@ pub mod tests { vec![private_account_1, private_account_2], Program::serialize_instruction(10_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), nsk: sender_keys.nsk, membership_proof: (0, vec![]), }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), }, @@ -1991,12 +1986,12 @@ pub mod tests { vec![private_account_1, private_account_2], Program::serialize_instruction(10_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), nsk: sender_keys.nsk, membership_proof: (0, vec![]), }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), }, @@ -2035,12 +2030,12 @@ pub mod tests { vec![private_account_1, private_account_2], Program::serialize_instruction(10_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), nsk: sender_keys.nsk, membership_proof: (0, vec![]), }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), }, @@ -2079,12 +2074,12 @@ pub mod tests { vec![private_account_1, private_account_2], Program::serialize_instruction(10_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), nsk: sender_keys.nsk, membership_proof: (0, vec![]), }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), }, @@ -2121,12 +2116,12 @@ pub mod tests { vec![private_account_1, private_account_2], Program::serialize_instruction(10_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: SharedSecretKey::new(&[55; 32], &sender_keys.vpk()), nsk: sender_keys.nsk, membership_proof: (0, vec![]), }, - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + InputAccountIdentity::PrivateUnauthorized { npk: recipient_keys.npk(), ssk: SharedSecretKey::new(&[56; 32], &recipient_keys.vpk()), }, @@ -2163,8 +2158,8 @@ pub mod tests { vec![public_account_1, private_pda_account], Program::serialize_instruction(10_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::Public, - PrivacyPreservingCircuitInputAccount::PrivatePdaInit { + InputAccountIdentity::Public, + InputAccountIdentity::PrivatePdaInit { npk, ssk: shared_secret, }, @@ -2194,7 +2189,7 @@ pub mod tests { let result = execute_and_prove( vec![pre_state], Program::serialize_instruction(seed).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::PrivatePdaInit { + vec![InputAccountIdentity::PrivatePdaInit { npk, ssk: shared_secret, }], @@ -2232,7 +2227,7 @@ pub mod tests { let result = execute_and_prove( vec![pre_state], Program::serialize_instruction(seed).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::PrivatePdaInit { + vec![InputAccountIdentity::PrivatePdaInit { npk: npk_b, ssk: shared_secret, }], @@ -2266,7 +2261,7 @@ pub mod tests { let result = execute_and_prove( vec![pre_state], Program::serialize_instruction((seed, seed, callee_id)).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::PrivatePdaInit { + vec![InputAccountIdentity::PrivatePdaInit { npk, ssk: shared_secret, }], @@ -2303,7 +2298,7 @@ pub mod tests { let result = execute_and_prove( vec![pre_state], Program::serialize_instruction((claim_seed, wrong_delegated_seed, callee_id)).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::PrivatePdaInit { + vec![InputAccountIdentity::PrivatePdaInit { npk, ssk: shared_secret, }], @@ -2340,11 +2335,11 @@ pub mod tests { vec![pre_a, pre_b], Program::serialize_instruction(seed).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivatePdaInit { + InputAccountIdentity::PrivatePdaInit { npk: keys_a.npk(), ssk: shared_a, }, - PrivacyPreservingCircuitInputAccount::PrivatePdaInit { + InputAccountIdentity::PrivatePdaInit { npk: keys_b.npk(), ssk: shared_b, }, @@ -2389,7 +2384,7 @@ pub mod tests { let result = execute_and_prove( vec![owned_pre_state], Program::serialize_instruction(()).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::PrivatePdaInit { + vec![InputAccountIdentity::PrivatePdaInit { npk, ssk: shared_secret, }], @@ -2399,11 +2394,6 @@ pub mod tests { assert!(matches!(result, Err(NssaError::CircuitProvingError(_)))); } - // The three `circuit_should_fail_with_too_many_*` tests have been removed in this refactor: - // each variant of `PrivacyPreservingCircuitInputAccount` carries exactly the fields the - // corresponding circuit code path needs, so the parallel-vec over-supply mismatches those - // tests exercised are now compile-time impossibilities. - #[test] fn private_accounts_can_only_be_initialized_once() { let sender_keys = test_private_account_keys_1(); @@ -2479,12 +2469,12 @@ pub mod tests { vec![private_account_1.clone(), private_account_1], Program::serialize_instruction(100_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: shared_secret, nsk: sender_keys.nsk, membership_proof: (1, vec![]), }, - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: shared_secret, nsk: sender_keys.nsk, membership_proof: (1, vec![]), @@ -2780,7 +2770,7 @@ pub mod tests { let result = execute_and_prove( vec![public_account], Program::serialize_instruction(0_u128).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::Public], + vec![InputAccountIdentity::Public], &program.into(), ); @@ -2818,14 +2808,14 @@ pub mod tests { vec![sender_pre, recipient_pre], Program::serialize_instruction(37_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: shared_secret, nsk: sender_keys.nsk, membership_proof: state .get_proof_for_commitment(&sender_commitment) .expect("sender's commitment must be in state"), }, - PrivacyPreservingCircuitInputAccount::Public, + InputAccountIdentity::Public, ], &program.into(), ) @@ -2943,14 +2933,14 @@ pub mod tests { vec![to_account, from_account], Program::serialize_instruction(instruction).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: to_ss, nsk: from_keys.nsk, membership_proof: state .get_proof_for_commitment(&from_commitment) .expect("from's commitment must be in state"), }, - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: from_ss, nsk: to_keys.nsk, membership_proof: state @@ -3221,7 +3211,7 @@ pub mod tests { vec![authorized_account], Program::serialize_instruction(balance).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedInit { + InputAccountIdentity::PrivateAuthorizedInit { ssk: shared_secret, nsk: private_keys.nsk, }, @@ -3269,7 +3259,7 @@ pub mod tests { let (output, proof) = execute_and_prove( vec![unauthorized_account], Program::serialize_instruction(0_u128).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + vec![InputAccountIdentity::PrivateUnauthorized { npk: private_keys.npk(), ssk: shared_secret, }], @@ -3321,7 +3311,7 @@ pub mod tests { vec![authorized_account.clone()], Program::serialize_instruction(balance).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedInit { + InputAccountIdentity::PrivateAuthorizedInit { ssk: shared_secret, nsk: private_keys.nsk, }, @@ -3368,7 +3358,7 @@ pub mod tests { vec![account_metadata], Program::serialize_instruction(()).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedInit { + InputAccountIdentity::PrivateAuthorizedInit { ssk: shared_secret2, nsk: private_keys.nsk, }, @@ -3446,7 +3436,7 @@ pub mod tests { vec![private_account], Program::serialize_instruction(instruction).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: SharedSecretKey::new(&[3; 32], &sender_keys.vpk()), nsk: sender_keys.nsk, membership_proof: (0, vec![]), @@ -3473,7 +3463,7 @@ pub mod tests { vec![private_account], Program::serialize_instruction(instruction).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: SharedSecretKey::new(&[3; 32], &sender_keys.vpk()), nsk: sender_keys.nsk, membership_proof: (0, vec![]), @@ -3531,8 +3521,8 @@ pub mod tests { vec![sender_account, recipient_account], Program::serialize_instruction(instruction).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::Public, - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::Public, + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: recipient, nsk: recipient_keys.nsk, membership_proof: state @@ -3686,7 +3676,7 @@ pub mod tests { let (output, proof) = circuit::execute_and_prove( vec![pre], Program::serialize_instruction(instruction).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + vec![InputAccountIdentity::PrivateUnauthorized { npk: account_keys.npk(), ssk: shared_secret, }], @@ -3755,7 +3745,7 @@ pub mod tests { let (output, proof) = circuit::execute_and_prove( vec![pre], Program::serialize_instruction(instruction).unwrap(), - vec![PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + vec![InputAccountIdentity::PrivateUnauthorized { npk: account_keys.npk(), ssk: shared_secret, }], diff --git a/program_methods/guest/src/bin/privacy_preserving_circuit.rs b/program_methods/guest/src/bin/privacy_preserving_circuit.rs index dd0a2cf8..7aef273a 100644 --- a/program_methods/guest/src/bin/privacy_preserving_circuit.rs +++ b/program_methods/guest/src/bin/privacy_preserving_circuit.rs @@ -6,7 +6,7 @@ use std::{ use nssa_core::{ Commitment, CommitmentSetDigest, DUMMY_COMMITMENT_HASH, EncryptionScheme, MembershipProof, Nullifier, NullifierPublicKey, NullifierSecretKey, PrivacyPreservingCircuitInput, - PrivacyPreservingCircuitInputAccount, PrivacyPreservingCircuitOutput, SharedSecretKey, + InputAccountIdentity, PrivacyPreservingCircuitOutput, SharedSecretKey, account::{Account, AccountId, AccountWithMetadata, Nonce}, compute_digest_for_path, program::{ @@ -23,16 +23,16 @@ struct ExecutionState { post_states: HashMap, block_validity_window: BlockValidityWindow, timestamp_validity_window: TimestampValidityWindow, - /// Positions (in `pre_states`) of mask-3 accounts whose supplied npk has been bound to - /// their `AccountId` via a proven `AccountId::for_private_pda(program_id, seed, npk)` + /// Positions (in `pre_states`) of private-PDA accounts whose supplied npk has been bound + /// to their `AccountId` via a proven `AccountId::for_private_pda(program_id, seed, npk)` /// check. /// Two proof paths populate this set: a `Claim::Pda(seed)` in a program's `post_state` on /// that `pre_state`, or a caller's `ChainedCall.pda_seeds` entry matching that `pre_state` /// under the private derivation. Binding is an idempotent property, not an event: the same /// position can legitimately be bound through both paths in the same tx (e.g. a program /// claims a private PDA and then delegates it to a callee), and the set uses `contains`, - /// not `assert!(insert)`. After the main loop, every mask-3 position must appear in this - /// set; otherwise the npk is unbound and the circuit rejects. + /// not `assert!(insert)`. After the main loop, every private-PDA position must appear in + /// this set; otherwise the npk is unbound and the circuit rejects. private_pda_bound_positions: HashSet, /// Across the whole transaction, each `(program_id, seed)` pair may resolve to at most one /// `AccountId`. A seed under a program can derive a family of accounts, one public PDA and @@ -43,9 +43,9 @@ struct ExecutionState { /// `AccountId` entry or as an equality check against the existing one, making the rule: one /// `(program, seed)` → one account per tx. pda_family_binding: HashMap<(ProgramId, PdaSeed), AccountId>, - /// Map from a private-PDA `pre_state`'s position in `accounts` to the npk that variant - /// supplies for that position. Populated once in `derive_from_outputs` by walking - /// `accounts` and consulting `npk_if_private_pda`. Used later by the claim and + /// Map from a private-PDA `pre_state`'s position in `account_identities` to the npk that + /// variant supplies for that position. Populated once in `derive_from_outputs` by walking + /// `account_identities` and consulting `npk_if_private_pda`. Used later by the claim and /// caller-seeds authorization paths to verify /// `AccountId::for_private_pda(program_id, seed, npk) == pre_state.account_id`. private_pda_npk_by_position: HashMap, @@ -54,16 +54,17 @@ struct ExecutionState { impl ExecutionState { /// Validate program outputs and derive the overall execution state. pub fn derive_from_outputs( - accounts: &[PrivacyPreservingCircuitInputAccount], + account_identities: &[InputAccountIdentity], program_id: ProgramId, program_outputs: Vec, ) -> Self { - // Build position → npk map for private-PDA pre_states, indexed by position in `accounts`. - // The `accounts` vec is documented as 1:1 with the program's pre_state order, so position - // here matches `pre_state_position` used downstream in `validate_and_sync_states`. + // Build position → npk map for private-PDA pre_states, indexed by position in + // `account_identities`. The vec is documented as 1:1 with the program's pre_state order, + // so position here matches `pre_state_position` used downstream in + // `validate_and_sync_states`. let mut private_pda_npk_by_position: HashMap = HashMap::new(); - for (pos, account) in accounts.iter().enumerate() { - if let Some(npk) = account.npk_if_private_pda() { + for (pos, account_identity) in account_identities.iter().enumerate() { + if let Some(npk) = account_identity.npk_if_private_pda() { private_pda_npk_by_position.insert(pos, npk); } } @@ -181,7 +182,7 @@ impl ExecutionState { } execution_state.validate_and_sync_states( - accounts, + account_identities, chained_call.program_id, caller_program_id, &chained_call.pda_seeds, @@ -202,8 +203,8 @@ impl ExecutionState { // a `Claim::Pda(seed)` in some program's post_state or via a caller's `pda_seeds` // matching the private derivation. An unbound private-PDA pre_state has no // cryptographic link between the supplied npk and the account_id, and must be rejected. - for (pos, account) in accounts.iter().enumerate() { - if account.is_private_pda() { + for (pos, account_identity) in account_identities.iter().enumerate() { + if account_identity.is_private_pda() { assert!( execution_state.private_pda_bound_positions.contains(&pos), "private PDA pre_state at position {pos} has no proven (seed, npk) binding via Claim::Pda or caller pda_seeds" @@ -238,7 +239,7 @@ impl ExecutionState { /// Validate program pre and post states and populate the execution state. fn validate_and_sync_states( &mut self, - accounts: &[PrivacyPreservingCircuitInputAccount], + account_identities: &[InputAccountIdentity], program_id: ProgramId, caller_program_id: Option, caller_pda_seeds: &[PdaSeed], @@ -316,8 +317,8 @@ impl ExecutionState { .position(|acc| acc.account_id == pre_account_id) .expect("Pre state must exist at this point"); - let account = &accounts[pre_state_position]; - if account.is_public() { + let account_identity = &account_identities[pre_state_position]; + if account_identity.is_public() { match claim { Claim::Authorized => { // Note: no need to check authorized pdas because we have already @@ -341,7 +342,7 @@ impl ExecutionState { ); } } - } else if account.is_private_pda() { + } else if account_identity.is_private_pda() { match claim { Claim::Authorized => { assert!( @@ -371,7 +372,7 @@ impl ExecutionState { } } } else { - // Standalone private accounts (mask 1/2): don't enforce the claim semantics. + // Standalone private accounts: don't enforce the claim semantics. // Unauthorized private claiming is intentionally allowed since operating // these accounts requires the npk/nsk keypair anyway. } @@ -475,7 +476,7 @@ fn resolve_authorization_and_record_bindings( fn compute_circuit_output( execution_state: ExecutionState, - accounts: &[PrivacyPreservingCircuitInputAccount], + account_identities: &[InputAccountIdentity], ) -> PrivacyPreservingCircuitOutput { let mut output = PrivacyPreservingCircuitOutput { public_pre_states: Vec::new(), @@ -488,16 +489,22 @@ fn compute_circuit_output( }; let states_iter = execution_state.into_states_iter(); - assert_eq!(accounts.len(), states_iter.len(), "Invalid accounts length"); + assert_eq!( + account_identities.len(), + states_iter.len(), + "Invalid account_identities length" + ); let mut output_index = 0; - for (account, (pre_state, post_state)) in accounts.iter().zip(states_iter) { - match account { - PrivacyPreservingCircuitInputAccount::Public => { + for (account_identity, (pre_state, post_state)) in + account_identities.iter().zip(states_iter) + { + match account_identity { + InputAccountIdentity::Public => { output.public_pre_states.push(pre_state); output.public_post_states.push(post_state); } - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedInit { ssk, nsk } => { + InputAccountIdentity::PrivateAuthorizedInit { ssk, nsk } => { let npk = NullifierPublicKey::from(nsk); assert_eq!( @@ -531,7 +538,7 @@ fn compute_circuit_output( new_nonce, ); } - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk, nsk, membership_proof, @@ -566,7 +573,7 @@ fn compute_circuit_output( new_nonce, ); } - PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { npk, ssk } => { + InputAccountIdentity::PrivateUnauthorized { npk, ssk } => { assert_eq!( AccountId::from(npk), pre_state.account_id, @@ -598,7 +605,7 @@ fn compute_circuit_output( new_nonce, ); } - PrivacyPreservingCircuitInputAccount::PrivatePdaInit { npk, ssk } => { + InputAccountIdentity::PrivatePdaInit { npk, ssk } => { // The npk-to-account_id binding is established upstream in // `validate_and_sync_states` via `Claim::Pda(seed)` or a caller `pda_seeds` // match. Here we only enforce the init pre-conditions. @@ -628,7 +635,7 @@ fn compute_circuit_output( new_nonce, ); } - PrivacyPreservingCircuitInputAccount::PrivatePdaUpdate { + InputAccountIdentity::PrivatePdaUpdate { ssk, nsk, membership_proof, @@ -712,14 +719,14 @@ fn compute_update_nullifier_and_set_digest( fn main() { let PrivacyPreservingCircuitInput { program_outputs, - accounts, + account_identities, program_id, } = env::read(); let execution_state = - ExecutionState::derive_from_outputs(&accounts, program_id, program_outputs); + ExecutionState::derive_from_outputs(&account_identities, program_id, program_outputs); - let output = compute_circuit_output(execution_state, &accounts); + let output = compute_circuit_output(execution_state, &account_identities); env::commit(&output); } diff --git a/sequencer/core/src/lib.rs b/sequencer/core/src/lib.rs index 8ff4ac58..0c5556b3 100644 --- a/sequencer/core/src/lib.rs +++ b/sequencer/core/src/lib.rs @@ -1075,7 +1075,7 @@ mod tests { program::Program, }; use nssa_core::{ - PrivacyPreservingCircuitInputAccount, SharedSecretKey, + InputAccountIdentity, SharedSecretKey, account::AccountWithMetadata, encryption::{EphemeralPublicKey, EphemeralSecretKey, ViewingPublicKey}, }; @@ -1110,7 +1110,7 @@ mod tests { vec![AccountWithMetadata::new(Account::default(), true, &npk)], Program::serialize_instruction(0_u128).unwrap(), vec![ - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedInit { + InputAccountIdentity::PrivateAuthorizedInit { ssk: shared_secret, nsk, }, diff --git a/wallet/src/lib.rs b/wallet/src/lib.rs index 9c86c808..e35c7c46 100644 --- a/wallet/src/lib.rs +++ b/wallet/src/lib.rs @@ -390,7 +390,7 @@ impl WalletCore { let (output, proof) = nssa::privacy_preserving_transaction::circuit::execute_and_prove( pre_states, instruction_data, - acc_manager.accounts(), + acc_manager.account_identities(), &program.to_owned(), ) .unwrap(); diff --git a/wallet/src/privacy_preserving_tx.rs b/wallet/src/privacy_preserving_tx.rs index 819fdc82..839e2da3 100644 --- a/wallet/src/privacy_preserving_tx.rs +++ b/wallet/src/privacy_preserving_tx.rs @@ -2,7 +2,7 @@ use anyhow::Result; use key_protocol::key_management::ephemeral_key_holder::EphemeralKeyHolder; use nssa::{AccountId, PrivateKey}; use nssa_core::{ - MembershipProof, NullifierPublicKey, NullifierSecretKey, PrivacyPreservingCircuitInputAccount, + MembershipProof, NullifierPublicKey, NullifierSecretKey, InputAccountIdentity, SharedSecretKey, account::{AccountWithMetadata, Nonce}, encryption::{EphemeralPublicKey, ViewingPublicKey}, @@ -144,26 +144,26 @@ impl AccountManager { /// exactly the fields the circuit's code path for that account needs, with the ephemeral /// keys (`ssk`) drawn from the cached values that `private_account_keys` and the message /// construction also use, so all three views agree on the same ephemeral key. - pub fn accounts(&self) -> Vec { + pub fn account_identities(&self) -> Vec { self.states .iter() .map(|state| match state { - State::Public { .. } => PrivacyPreservingCircuitInputAccount::Public, + State::Public { .. } => InputAccountIdentity::Public, State::Private(pre) => match (pre.nsk, pre.proof.clone()) { (Some(nsk), Some(membership_proof)) => { - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedUpdate { + InputAccountIdentity::PrivateAuthorizedUpdate { ssk: pre.ssk, nsk, membership_proof, } } (Some(nsk), None) => { - PrivacyPreservingCircuitInputAccount::PrivateAuthorizedInit { + InputAccountIdentity::PrivateAuthorizedInit { ssk: pre.ssk, nsk, } } - (None, _) => PrivacyPreservingCircuitInputAccount::PrivateUnauthorized { + (None, _) => InputAccountIdentity::PrivateUnauthorized { npk: pre.npk, ssk: pre.ssk, },