From ee88f37e92a02f893bc0ee33c4ae0561cf2c67e0 Mon Sep 17 00:00:00 2001 From: Daniel <77058885+0xDEnYO@users.noreply.github.com> Date: Thu, 6 Mar 2025 13:32:25 +0100 Subject: [PATCH] Add new function selectors to MayanFacet [MayanFacet v1.1.0] (#1032) * added three more function selectors to _parseReceiver function * deployed new facet version to arbitrum staging * remove unused imports * remove LibBytes * add audit report * Added tests * added tests * deploy to prod * Merge branch 'fix-solhint' into fix-mayan-12602 * update logs * verify on Polygon --------- Co-authored-by: Ed Zynda Co-authored-by: Michal Mironczuk Co-authored-by: Ed Zynda --- audit/auditLog.json | 10 + .../reports/2025.02.28_MayanFacet(v1.1.0).pdf | Bin 0 -> 36968 bytes deployments/_deployments_log_file.json | 96 ++++++++-- deployments/arbitrum.diamond.json | 19 +- deployments/arbitrum.diamond.staging.json | 4 + deployments/arbitrum.json | 2 +- deployments/arbitrum.staging.json | 2 +- deployments/avalanche.diamond.json | 15 +- deployments/avalanche.json | 2 +- deployments/base.diamond.json | 29 +-- deployments/base.json | 2 +- deployments/bsc.diamond.json | 23 ++- deployments/bsc.json | 2 +- deployments/mainnet.diamond.json | 5 +- deployments/mainnet.json | 4 +- deployments/optimism.diamond.json | 29 +-- deployments/optimism.json | 4 +- deployments/polygon.diamond.json | 9 +- deployments/polygon.json | 2 +- src/Facets/MayanFacet.sol | 16 +- test/solidity/Facets/MayanFacet.t.sol | 180 +++++++++++++++++- 21 files changed, 345 insertions(+), 110 deletions(-) create mode 100644 audit/reports/2025.02.28_MayanFacet(v1.1.0).pdf diff --git a/audit/auditLog.json b/audit/auditLog.json index dbddc9bb3..494e7b492 100644 --- a/audit/auditLog.json +++ b/audit/auditLog.json @@ -174,6 +174,13 @@ "auditorGitHandle": "sujithsomraaj", "auditReportPath": "./audit/reports/2025.02.20_CalldataVerificationFacet(v1.3.0).pdf", "auditCommitHash": "48427d21160585f276d206f0e103ce6bd42c4c03" + }, + "audit20250228": { + "auditCompletedOn": "28.02.2025", + "auditedBy": "Sujith Somraaj (individual security researcher)", + "auditorGitHandle": "sujithsomraaj", + "auditReportPath": "./audit/reports/2025.02.28_MayanFacet(v1.1.0).pdf", + "auditCommitHash": "be250763f57596d53d19a1af0988ed3ea351148e" } }, "auditedContracts": { @@ -245,6 +252,9 @@ "LiFuelFeeCollector": { "1.0.2": ["audit20250109_3"] }, + "MayanFacet": { + "1.1.0": ["audit20250228"] + }, "Permit2Proxy": { "1.0.0": ["audit20241122"], "1.0.1": ["audit20250110_1"], diff --git a/audit/reports/2025.02.28_MayanFacet(v1.1.0).pdf b/audit/reports/2025.02.28_MayanFacet(v1.1.0).pdf new file mode 100644 index 0000000000000000000000000000000000000000..7f524ee4e7d18eb31d0301ddf6b4c76388615626 GIT binary patch literal 36968 zcmbTdbC9H4x9wfFZQJa!yKHvZ)n#|twr$(CZM)01jr{g|&U?;{@9d7a``qWR%*c$4 z9AmCI$1m4z#7JNJt=-nZa@$&_}UGI5H$>IBaM7F zFc!)J9Ma6Dm$(qvU&62YY-3-JrcNq!;-lHr*rz#U2N-IaL zLY7cx8%5^P1}?C9)BsiYNuO*)#>?L{^?S;kBszZbvL6yRB}TaiJ2>olU;RiXcsaH9 z$T2CMxFijK45f8Ly354nj!qNwhU+Hy8d=K{CwG;1ep+T6E5L^haWdS9JXb>)1K5Z+ zehjiPf_sc=i$d6*4>xywuzaC$qOXfs+OjI95aSw4WX6h#m4Qrd$h;=a!azYNc(P!v z(aZWVmEOnt+n`*t_m$kX*a}VdNXo_74}II%)!NGI9I2FN z1iASHc^DHL;GRN^(NFje5n^BMxE%46KJ?+~BRvz^^RfP(rl8h{fQzSlipRPZ(;K;*g0uCsNEXRIRYz&WFnyRPceU+=(!Ns~GomQ$? z4r!b4JG;;U^qvOS*QPk>$;EY_lXH?Y2R3Ex<^1qQtH)?+VBefD#mUk~ASK2N2dUkt}jeVAXHWzUYLEjQsLa8F8Ni2b*-K-TLz| zT?-wp#uu(VrVaWk~ZV!RJ)M>`eL5ayFWg1?h6IeHkv*)`jp;&QKT)si)D#8-5 z7$btJ_3I{~YLG*$DXh&MKMWS+9dv(3C9AbF6?Uv{9wIOU#B#bs{Q7G5{&0^m+fQ2U z@2iJ{_3x{Pg_(`zpZ0f?#-{Ct1cJ|uUS5cnAcTeLc0ED}=o5c?il}?5txC!V5Lf_D5?~ta&9A~3 z(~;yz!pm;&^9#XLloEt$m%FcoSD7WZy8O0Aa&_w$TZng!?Sfm_cJXh*lpO=D&$DbX z>G!cOZjEu(DSOa$$$x^t##Uz|!CqRxwG}eC+>57~dvtB#Wbo!zUs>P9@v^JKTV%2CSTIG6j*o!nK9JHk&xnDC zXh!o@mxXBT8XFjj0kM@*l&2iN$8VLxl4-~REG$yA@39$@QWm494&{TqL_)pvxg;>CpdHL~%Ii0p(21CkmCktW z8N`G{uS8J6>QHV)r-eEZbCLTwo&s#ChfS)Y4_Wh?Te#v(8%D~*siIEua3Tq9vBSDp z=1VtkI0l&S42UV^rxI25?+29K!9Bi7mgX>HKOhkG#;u7n)~q<2$+daa@rJ4&PN0qG z!nmM^(>zA|M3*qX)udT%|G=Lj#wA@^#j^e8We`P`s$2&g#TMguw1!bgKh^71mi#Ta zAOIyQ{Xm>bJhR!T8hCW;4LJ;v57$;gKj8QwQ*ji3u55+moV{KJxh5MvUyA6!P6W`gjB-@6<=i^E2sCavx(LtXrsYqqxb0a854HTDdX<2} z$KTbtH_5_C+5==w*vMDIMM)njbG~a4M;-~Ix4{e@*+>-9?%(A3?t`^gQ}_H(wM0)> z?W)7fV2HI1Lb}FsB{pCxW*R|&$6nAw#Qc0`8vOJHGut?VuFCn~-t^nC1K^52)d_w& zO8qJ(Giygl7e|LAp=tcNfX}rWSwm$rbUy7_^Y|?sH(;p%q8P*IsNJ{i;6(n*5j;nRAiRCV z-|VpJ4(*Ee_~|SKfSX`^cqsIMhngx!EW~@^W_l3D`4B%EHopq%7@etwsuGir-`{8` z=90Cc=ZIm!y*(1`EL=Dw3I;tV@bPw>n4rtagl7l+6TxDK>% z#BgRf9{e@}d`5&)Q?zDe`#jC}aDc28Ds*5{x?l$`^qlo4zWzs6_+-Cp<=BtAd+>OY_r|D`?{~qN8 z4X_whF32L_0Zb%beOJSP28DW}Zr=mo!EK5)|CgcoGfuY}_*oB<8A%(Kb7#A=-o}gM8y3*O@sPLn-}x<9Ws9z4MZjlhVKRh% z0Wg_hDrU2zHHTD{FDbQVKlxHGBd>m=mgvIC&u3Mtdv2qdP&?}wWF#=IT~XoWK*n#1 zqVxlAhRT&L1ff}ZrvvkJw$n z68Qxyhdh>z=iyTTz5got9iQX|n)3w`&$ z^8lTrT=53M=j@Sg^Tf8XxoEq|j}&Xbb*6zZ_I=b5N zSo>_?w|Q)PK9m7V%qJX+;_rSQMM)MP?goq=YJXLQdL1!?tW^y)yy}Dd!#tb*2OHF< zuusK;Fy)g?L*eQStcUU$Ir3K*!~EGC|5_Vmhr_GW=LoRi`&zDogd`0-)OcLKUrRn* zkcb+0;(I1ejfFl5%QKamVJmIZ|Fl8H&yR{-;;4P(JP@r2gPWkN?M-2!d^0aLp< zNC_^7#g7vz`v{4LO$I%d3xV`qZa=@lzSDd?E?!!xIFjgr?S+lY8X*oln}^|-DcDc6 zF%#YZ@e|J(nS{ zej&4CXw0tb9!BU&zUqpHE#%j>t?Pn*PsBmq=a>vE6>B)}c0HwCOVq=}_a(KB2+o>_ zd7We2cgc&9Wls~vg-O|o3bW^RYtR?*-?WnqwJ9rv7+aWjI1%qG%dyX+>#Zh5tHTpH<&|7T8jA-t9Fzh55+^E z6?jbAXW#65;c;<*JNuMHToWP-$vfAJhksCgki}SHo)g#MdJ24~Ncq z1``V99>9IS(7&SLwrZv7P=^`Fs#Zw5cDF=#uF~bvty3+9#zw(1_|H9gv7t>f?U-K|~63;NEb8Lkrm(={xprFfJ4k9Qpe2Et;m4qn|ao02*cUixFgZPaMCX7=Vlz;@g-i-|j&)~HA zu_+jXtV-s35Mtmqx7QeKph#a3Q%rw>x35WBHf}1PZrS#23}E(+GxQtwDbqIZfob@# zJ_K8HLns7&P~E9!+$Vw5q^+4O4%8p=tl;Ba!X(+U?YpMLK1 zUh%Xsd#4R*9m|3hue0|4f^->3HW|tv%4BYD2%E&=ie$_?d&O5#Hq!lW%DOq{o=n2B z43x+0CJHy;$qJ@2UiO<-CD)xyI!BJ)8boo0512%7i~%tloPMw%tS@eH;zDTPf>?eZ zvWOwL%`q*Mc;8;;?|OixIGM(dg!;jV+(5u$N}1LUnf&&nRwqalz_DWk8$tzDXJtOz zzB__EI|AALe*TED6WBaNvW1a3$$VjVMk(9HlD6~%S5YTTf;|NMn zKHFycK6acW{cwVs$nBh?p->4r2=^oC0?J@;tYmyO^j4z1vwn8ZG#$FZM18xB^G#tR z?5V)w6+)Q9sStm?cR~E1a2XHr%XKA!d=kkdR#h=nN6ADU5$Fpt!-D4E?-9Vv^oI=K zVEy+GR-*s=j#QPZkZlGNTKDr0qDv5^TdM%(tGY`ilQRa@X6cTAKDmIzRD{vxk9WQR zV!!#)gkn6qi|6j=S1&@u3qFt4j*i|dx32b=PW>=(L$o32M>WeBaw_Dw5%b7-Ea$}M z6G|Zors1!ArgEkkryIw|rU_CBrsX38#zMHTQhA|4a{4Lm+*QVkEUWPO(aTu+SP8Se z_%OlD1Y$P{pV^N2BfzqdgxlG*tYB?VP1D(zfPqZQRpn||B062&b|YR%D@T#}FTqs6 zy7rpm3FwEyg=#bY=H2deb6`$v1Zm<8ShQB8ElX&vPi0}hJ!;;q_>n`)=}VRfcmNtYy)q5b;v&!#yY88SIT zL15%MBLG70gae45*MucRazFy-wX#F3EJpEHE%4qlQ0~1+%chm_Le-r^kCR*4L|J7Y z(UXf{+IGOVLm>66%qODpD(}m~W-|mqsP|GQZ3!%K`|ZJ#)f9~@((cXZu@;Y_n&I&T zupvcm2(SEKXDzY7G4CWD^as^!7M|e($zPj`?+YmnJ+Vknt1G=?GtQ&F2lePadY0=t?y30ca` z?W}1@amU^F3C#fDzT!4(eojkgSHnT*(~L(_i9D84U~V+ELghYP%6lRcD)3k)IdGCy zudU&Q&xx}=MtrCH_&+tvAGUY6{*6mS|Dah|nU`6cRG1W)*g#RlFkpg%VW@+(gR}+L zfyk_&;v}aJ9qtb15g}phPCa}j<@JK%^XF93DeiKUxw6U;2VLXHhfBMdBe}KHd$nT#*o>xpAg8yF|n$p~jJ{$5QZi3@!8s8VvY)KpzyJw9;=a8v96>6=bJvS3&w5ZOk%Q07TV^W7OsN* zU8&?g+E)r#3gR*>3R-9WEIgik+Z+l*-cg0pymJTGGGR%MQACaXTr2kzZk|QxT%=Y| zu+p)l{>}&snR@pS$Xach^<4)dfpT#3dJ)AU1xY7j50Nu;Zw8zv5Gk>7T5^jo>MGUM zUy4<}QGTEwK+k*On}4!{{SS7qvHxQ`{=0-AhNvRo$|6B%BGtkSMzBQNK!f0tWXBF% zZVsm*v{+hy)euOu?San=T`F8kx$PkfBop1&6Enz61Ux{UK^`;c4e-|mvhleF0V2cl(MJ-*twUW!6Ork&hE)9i34nxy0}u~FQo+&Yylt_V4qO*S~ z-xr_(MtSf3x0ch~pMPvPjz4JO;P~Hb`Kwx_|EF59slcJI@e=>;w;xQ+2lLNB;SQ%B zZ#0Q$NyQGQJm8$PK(7oibHOkWb=uhsFpr2>FMtm~FA)Gy_(Q)I@B@+T>jpFo^1}nG zoH^7DE+;PRHIgYm=axCrEExH6D#UNl9&66C6I-k^1Uc$D&0x@nXzm6vsT3F)gUH{{ zDxct_ML@rY7^)U4rGoMY5hhR_T`1I_s`-cW2xczkf9!zuBp*z_AQJcvG%)CbYhV^? zD|DFulD~jHj1Vnsosu-Hs8&KoTEPJnwK5&gv>Cbj1?2nBBlK4@-l9YpFYrTDZWGrb z?FN+|Zcbf0wfs#*e$kG2H0!qF_e*;*o{dRrk&aw1u~Xm)aM9nuWOzVuj#Z62>cT6j zx)O<_0cCvyK!O;+*#e$1;24G`rC8NDJMJ1~IHD;5dw?5k6-~V*d!Q8@di^J*Az}mX zpwNK8YH3~u>EC;}7L3}MfAZrGCuq!^|9nMcMgNB%L8i4x#kWvtsHuU2BuPl5twFg- zLF#2iLHSiJ^+WIj)@&Mi#I z6&)s$zL}}K?$j^p%X^k4TOi*F(dbVZY{lB^SgCfE8LWWAH9)Sql%{`-(%VftURNOWCz zzXFozb^Kl*+iTz?=7n@9awSMLY=-dcxNzm7Lj=0DEdQm~_&eAH+TMj1h8n`8UmDNv zwuHBaH1o2A#iC_pK9xI4r-4^43IhP`z1)Y`x!4C{%U(xOwtPy#%j=mm?Jex4n&wrZ z7F9i@Z$HTF20YmtK?b0YRe9<^iTVSCF*E-^BsjPsDv?QP ztl_BYsEHNGK|mW(*nu_!r98u@9k>xHgBM~hRZ4eBjj*JmIZaBpvTp-O>~%hpb*Vnm z#Nlba0ssIEIsgC=#)i2g_4V>bhW;ziIe=~fpim(HozYhw+CToJ;ZIP;{{Nr>%n;QG z+=%r*3xkUEF9>0dcWle#ZF?9%mx23>KYa7G-?F=5$VH3FwBO`_r(pyY|ALU*@&9BH z#Jm59=u!YE*r01)$+UZMmf`+wIfqQJ`PPg?&(T%7-$N4%o>5c~y^f1%MC>gj z9o-g7!#!Xz+O+I@yszvKg+uh~u(Lnk*~*t)yMu1+T0~Z@#(s)yUEIj0n?ZstCQ5_G zIC1jH=#bLrt3&CTIFc|#HNh(fyq7fSHK6f(6e-CHl8L5rDSqCMJOFV?C>05?!m}`( z2!z3Nfmc;NS9#Vqp^9=oL_%Iw?B>A=f0qw%w@zK5KRNLys{4Og{UC-$u;8fwUj0VO z|8p#5{An!x)e|~s`S9p)hHbn$XjlhWzP;IC`TrU{aDpE_z(T%55-dSr{;xo>`aZr{ zW;;H;MB79@zCvF@pTH2_xmto?prH2vA2_&3fRC??Ywv#%>=(Ci;GeYqf!|nI|2eOS zPS;udb;l3H&bBdBs6Sz!yWi8rD)khKNV+f|*nFADSfcUd?7Ype^XTk~#c2c>_pd1o zL<-C?KD_AntJo_t^4lr9L1M%g?)H7--dp+_689qY0%Ane6ipkm_&B#C*Y8J)d&c$H zJw0BPV=_n2cyVcW(u2GH_0%cL4N*;69`(*8qg7FlPdBvJH}VQ@>>#~yAn?P2)oAqx zllWzY2dbAhE%cD$0Ik;EXYH|02@{7zov~HKhOS3 zhW~njh?$9%^*@{IA8cYdo2X>Y#nWGbxj;pAbaX(p?92*+MoAa+;roO6TiPLB$=Sj7 zZ9-QI`3uDJu(~XJ-CG`goiueTtD3GZp zwON4RC#sX-U(x~9h!LRS;80^CA%QsmiiHps^!I%xg7sw^#p@k|-a$e_63hdZ;No^` z^R22R26DHKdWMscnFKU`Km(_`eU=0awu?~j_^Te0OHh~iYXy^ChzMv9 z2doxs!w*QQ+`=7(#sSEk3*FimZxr|dq!F~VEp5$j3Rp_tF*blU6j=ZC1f=$T1X%y- zL?8G|Ii2>LHaUyYJ*CqthtzAS#%{jma}%fzO6=p%;jgy| zBtEes0W0pto*9=8s?b zHRg-G15yvtuDzjtv2d@8apll!5 zSqwG{xK{c3`5g9P8~d_Na?>Na1;}Uxl+XEi3<6f3KWb*{ZJeEH1m9PHUq<|aJ8iIj z_@eC0M85(I{hsuBY5>G~dK*N$`j0f=Jhbluk@`P0YAHvB;o+ED zAk;xFbv+(dsxS3{9qK@Ne07^XHpGBnArWVKUK%U=j+zmC(x+)}R=^!BQgiPk_2(#i61{r>I-cnYqzb+yawIS1)B4GE;?K}ZvWlGsW4B@qX8%i`2l&gyfg z|4Nhk$n`6;ztaWE@3A@@rzr!+=7<0H%*nS!D%C(szVS}`F0n~NB_#(!GyYDpD-#okW^!{KFuLGd{63@SBS@J7Un65?H<*mKnAwxr0$T8(!E z%R^MWeg8X_A=!ki6Vru}v|-UEK&aGNv{g~nyDCD`N!??B!PT1WyXoPDBY}9qbAn+h z9oD>tpaN`zDMzD5RFLQ|2GuEPN!xes=IWtUq_Uc;AyWy|HP@jQew(Hz6eV4*sXlCT zu;E2$AfwX~;3$pTbXDWD$h2Ngmlo>zGTAgnWi>OrPSMY3%Fbtu8{eyVU!JP#YXstK zjn)BKQYy#;8dRpzrG;&1fhc$S@%BfYH#808Avo}6j&HP~<~WJlY9$=JypU5s8R&EUE$(dg8Wqzg|fHs?s~Wf9zd&+1QoS#s@@h=tY51QTQp^R{fdW+p$tKtjFs#Ogv@lQUs>8ZG++!t ztb!VOWteS2+=B4^xu(z9t!@UiFNUZlK4_ceDxU!^(2DYvou;Me(gtxV@v_P4EFQw0 z=2+3bsOuKY$NaYoI&pJ$v``TZLIytQJSO$v8l!NfdzazMQ*$2+@ z*Ww`$>V!IWeaDM&nJPTXx=}{w`FV(Jt_96?B4qo+(olIo{L>JegFB^lgo3=_<(&)_ znqu8$W($9Ft28q*Fo1HmxKLe=YAA#AFzhnIB)--~ z4&iOk>{|=&?xTTt4WnZ;CThuJ3`Aux4XGQ}^(+YvpPE|Q5kZElR4&;PM{#t?p>`YZ zfJ>7O8tT{6xrTf&EoRDP=lR?=1ZRIduUwD1GSA(cC|J()Nt5)G{i53x;`hEO_;ru5 z4(i_@Bwg&1=|0Pf8Krl8ABx4XPw4hGcBJs-$dB;9HBF@)5jEzy6I5*Fr9XnQc<-;QH#DDZxvB= zwTIGgyYtdh`ynHmtDby;OLM+#znv;o+G*IWP9hxi2(JWtnaom(S%yf)aw&`rxyHUB zMSon4?RzCFNREi*hJue7@9ZiB+3@C)`Q}4+adp&~2r8u%Ezd-&^Mprp1|Usue(+}S z^{dniP#(|6!~CvfZ3hzg?5%F{KE(38*Ug7mXLO7FkUTWl4|}`m06b~#wQ4fHOrNbl z%b?bsxkTwz&U&xGYlYFTOL7;*9>rE)FWW^qdlp;!3zX{ldwC|sCNc_GPPvn;%_Y6y z0dc6AQmAo%>zsZUH%`;Q<7vhz(q^1Xu&{I8`9=Y!79sw~l4v5-`?GhNit;P&NVYpZ zQ$HqNWpCghjT6^joSyE9`FFWl(GB>IQq}T8&gTN)cNfXD2Gx%YR&^9?L%e{0x3dJp}~3`HdZ)yMcMm30}^lC@aTCutSF^ z4a_xQZvDMdiWP}auf|_ITrI}qCt09>d<6yG717|qsne$kwH%sk7^Drcf;kdB@yVhr zkRD7T`{2UDl~T_eNu^Mply|p#XKIYsx}7)UWSTM4$4}bxP}|4#f{Ii!nC~zV&AM8C z+^Ky!gk#w-0giy+v}f@SMgk^uFMI(hHQSP*u^nXm&)ZY~uFDjCz}Qa@jFjOSv&F%1 z*#;U0IpWf}VszWls%)(LS(nlQ76?RY57mr)P{dmUO$=+~9GolDsG|wSrUvQl#%d=V z!W1BfS-rXT&307o2@Z0OxpmtyEfl~`T;c84C`kQB-I24??-8)1lh~~k z&T)ux>k+E~21a*VH9(WFbBL@3KDkt=_%m5O9Rz9#-s>p(@9m%V_oD=3adpfMHQ!Gs ztM^cCr|Ij=q6WMOu@7UaT@Esv<^$?}avf%u-yboMhJih+r9g|~VOSOsn(tFq%;R?_ zXB25yD!Qe=coLu>TmF(E?`hD#`p$%n<%PY5&Y`UQOZR9v!VD?rWudyg_l>^z=k1lUB<>-t4JcK{TA`3u+b78alkPs=Z*G1KRQ~+wpNj^5 z$#*+0R#aAvv1YeNZf~b4{LF1Sl-QCGPt&q0p;`bV$@QZgJlf%WDnoiZRKtw)W#k_8 zr#2QcZa~>KC~Ij|5v^7714rw7Ue}g0zsJJ_AN7*0?h&e0wl+3gmI{8pmkczimMi#8 zhf{&>@#|i-4~M7AQ$b@yX0?}u%vb>&sBw$LTU(swWU-KTy7Wj@YbZAhPGve3_By@$ zmA6Z_WPzERNX~&U;d%#y{IXwm8$dJ>(|fSrSu(p{!9a-D6m)faF|$~J4L9WR7|UFZ?i`9NXD z2^^j_tLghvGih;8vu#$}(;T0~&~LwNA`CtEm&zT%H8HbFEKknFyhoYND0k!ij1BF` zTO#qbcrF)EW8c9|ul1i?Q7UTT8bvYTHc;A_rm$0U6T`gkh%K>zt&3C`O?UG3{Oa4f z>Cw~S$V!f0VSgUo33GnNLGN-#ty~LiMxym(G4RdFf_d^Ks)S6Bmv20r(JR-#IhD)o z_}(!Xzl_gtW-g8^g7vs^uZ@^{vdTKpa(qh*-0&VMQuyr(C+$fQD}1u2|Bh+kX}EV&A2L+oAB8G*!7ow-`?P0)T9-*n}0@zL7Af_YZbMG=?fuq9b! zoKu8eV96LC8a^_HR`vWD18+0sS?x9WwU5fsPpWlw{=6VV%EgGff(9dWw_4D@V$OrU zPy^D~rCXv*Wh({CXANt{!5ArH62sj943t~Kxf97$+fnAM1x8*Op1$oF1AQr)(lttT zV0MCEioZHD0xn(5iZmjDQ z$iG_Wlo%G^>K}=9+{Ttyvvm28tf!;BUcvzX6yWJ51mb$4X=7qjBW9yk=x)HZSI^)j zsB6w0Q5*Q1orU}z#(c|hB?$m$onCWM^*hDP>lUXFW@565lg6%CTSl0~psmSJm@m(k zwlMCABMI}jcx7NAW4F<RO)t;Jv1LTc=+2sq(_`?dk(tycS3i_EBD}_S&D#?!z35249|qsRIW_7w(guJ=ici3eSISE^!AthgN6 z4sKGRdJK`vasYJ!0?jo*a{7&b{qf>Kab#e4IaXWq?Kyn~6`T`v%1y~w!=m5EJzWJ! z^+%HkMA!Slr;*xg>X|5V0mQLxho zxDR;cP6QoDVYw$GQxdqzypb5VXRHoLkt~Y+=$zpOm>`?Keem$RP=}hTW;4C(2zm0u zbF@F~@_g~tp@mV{Y0YHbER8X-CU6?-cq8_^n%lP^5FQEI-}J&ai7}&1zByY)po$PT zvY#7^Dh9&sBgy&8gGL{|glBw?RUZ|dZ0DU+`L^yBZ{Lq8+ z@KdMwR06HH=ysC^zdw>7<@9}9ZC)m8rV*H(hw4N!zwh3CYmy+InAoxcmZ;8vX~ZS= zMS(Zo#sK0!2hUKb)NfG=94WHpLpspQWmU2k*J-zq3o@L2ehSs$Q-7aP+y6)}`W>dx zw3Fi0Z}1r#tmsLVu8V7z^ohs6d|P0qd5UsK;|A zAn@3Q!QtSYgulcdkGeb`QQouhAdEIF$GkmL3`?Xt9B&gnT{`(Jgu`o`r91UCZAGPr zNhL{kwHK*@*5+MudM8`|FhsVZ20Ti1uCI4wBZ~OUUXAy{zh!&*oWdu&6m7x4HGEZC zRZzpycAGK|%p1t1y253gmiuTKq;owmsOEt*2)nPYTvEDYpr6G!h@At1x#9cFrM}|k zRNDfWXdOP-`57`oi!e*Jvl_dFEGdr{zli`=Co$8)w`>0z+J4RyAK7)_i3yR|7s`)z zndGW%esnP4Z?3N;fk!a}$(0@A^=7t7EpOsW=dNnSahLmdTyV9f`_d3kPO>Lwu&^=b z6l1Qhg=|}tzkP~;;Zs8=f`-<*EqxhqnHv`?yz9(Z$MqRjo}sgujB0Tl)O+vO;_)Mx zC!O`A{gx2-j5ezVCMJw$Y_xD)lWS=nL~*g#x}#79sAlJ^Dh%0h=7elZ1)lX*%Qhtl zOqYt0U8VV=f+ar!EdhtMgnechWRWu2K~Oy^ZsD52i$78U@K2cH86%NT*HgZpRh-UW zk!MX@@#PeEMY3*>iq5obY0)N>>$$`2BsAN7U_voj$Ub@e#>Wq*k_|i=< ztC>xIJ^VfdJ7k$RA1)R5+EBKF8zflK;!m7a(%kCDOWvmwc+N{Hj*=&|%gPqmEPict z3xQj2{lj7jtPyK@3Ph(4=anuhf~4VHjLz0ZOx~w@bNW|VDVUcY(>xgSv=xnXug3bE zY{TSwMDziG?Svn^o3%fEeXrrVgZrottk_lc9byL@bS!(+Gd$zs6RsZ)6nnUUx?tv9 zYWueZ)O>3KV0QmC)J=ZyVO0=6mu`;W(i~0(A-=Pu%zP>ZC>Z{i zyeW~_lj&N}Y=zWfTT#+NyZL4n##yn4CNuqSZ5F|b8N<4|h`KX=X2Ck(*@I#s4~n~| zRO5lM?H%b*Qj_kb)h;`PDeMf^=pqOcfu^P@X)My7tOD^$a^V(c*>u0>vacq0ibz z50j6M_;^3^oP*j{xRSc=j1r6!RTIj)u@dV`+?j)aUti>@WQlNrya$HTS2&c;tw&{U zeVbvFPt{c|Lw2LAnCT6e^NUg#5+>%vwyLo2xmah)6xDieG@9lQDsT<6?`Ro8VzqC( z9LZ@V>{w8BBq2{7qyPo`qkwJ^JFiCv*dF5jj~XSNEq#G*%qJFnWZ}Mm)dJ~ zgf471vlTT6?K>pcalef%-xm@6Hy;_~%)a7+SuwvFBUAy(6w1Ek`c5Slj8(f<-U_P2 zX|87C^UL<^%0jAg>3!i+NBmL4wz{8H^;ZTbSd&#@g^NG~c>V`G=&CaL(+eF%*A&Gf z5ffrDLbHds%lHa{=ZYSZG*oF_EOoKyKI};SV`52zZpq)$#LT;&FTPvSRk7TADdljB zAEYA&KN8x9HnlAt7_m6Dsj1ehv%G zP)HvgcQVlEi+1e`9qlw^{V=A#CXUq1!QmIo78OQTG|+JVzL)>P&h?;J{QOw>=QVFr*;L!`+~lccEv zBrcyJ@U_K}WNmO5ziQe^2>e1EpN^S$jZT=1fSP)hZpUp-K%8IDR>do(&? zWIsqb2DiK$rfGuxNU71z@QFF zPx)ruXB9oy4-V0kQ^$&b#V}iH|7x9uM|#>tVd=^W(ody|`N`?|6_yy;aKQ=;_NbbO7b<8}rv4(3S#VWf5tpoy%TWgT5xIt9hyCtwJr+nz&)%N+*umiS}yPiSAYt z_IHOVb|5b12qMVMnyJ7<0b8n$@XPO1;A6uWks-tD**2>kxfm}9dbF4WJFKSpTitgw zPK7Oz^d(FOrY}+2_Z*4#Q6lGy6~5QjCFfu=#t+ny%rwF5CC$`z)RxjOPJ0gcqf1KzJw--}V_SY_4Wvco=|k}=!%?t#N6rQ&{t^QAc{@n(U}NS= ze&Zk{Td#X2bep8&H<)q|Dbr^^&w4L?Q1mOSWE=t<5}Pi^!p;ou(|JrXM(GbrtYm&KLss z!LBiZQNf;9!45pB{Z#6PcPZJxAA(Z~(p%AI0}RUTqL!TT2oLFk=Z{GWCU|)#S=&V~ zgaz)kCMa;?|l(@x~(F&Pi?#_A^y`PJsxM zSob~M2&r$H(c7|Qe-3G{&P@$f)9#pN4%2)wow#@KWVc&PV%c5m;5eODd6bVXn~oTO z{LZ0s^nz`9+>jl(OApt=)!+RPo`}kZmSDUU)5xd1Q7P{oX<2;Kpb=*{v^n+(EHVyA`1(FYp5=oD z+mYvC9k;0tLg+qo1$zo{soH7DvO-@31}75hdMNjzx@s*wQO$ zq~9o;a#f4DmRPjHA!eWA-tuq1vpTuIRMjH*Nj^jLnd#hO?hF|M%HHjjcyM(`J6;;C zvWG0gG3nS0eqxR}+hLWzv`a9v= zE6~wT`dDFQ(w{wd#1S@}+g0vGdkJz7#!WU!NG1sMyXLJ`a1cObaaUNp8P4kOD4T94Zr9)l}8!F zA@ma(-u%q?kGJDjI|3__r+H_H%t}+1QuH2!aH0q%IT}X~yv%<1C(Zd!T@=pCNzqE! zs0sD9MZ!1iv2cqGmxz*ryGz|F#}Qca2^?KXQn_!vtVC64supZG^3fp^cgIC^p~q(G zV_&TbU_FiQj_OnK(l|%Uy!rFPA+)9ALuNb2-Yijf8Z0nf)yW;dp5Irs&4adk0#4-5 zX|DzI_+6=EK7tXG+gFm(tym7J=V^r2gGoE9ZOi@iN#5m>{VNeP^ z&G@XwBKmk#RcaJYP?&ruZD<`` z>~tyoCb$iEg+Y71{(;Ccj`X5wR1n?$Xp zGR7y#x|%)*0XMK@dyxW|e}^q%C$ZT02q$9lwNrk8>&L03+OG9&2xs$%b9UigD|fOl zVmfEkI;H9hkinOfhMf@Q1yYtr>3t7GNoFW8 zzEk-k4lAS0`K_Jo%sHHLt*mW&E6KZFmw(!o`T0oGlTaCJxCQj8pf^MW87Jn4=aBi4 zx*8A4`e69x(UK=ajVmT&5<>~^>CsAe0r!h@rDh!2yUL(A-#R+W}oa-8Ft>x#_Bl)9hjJ_yAbMrt?>6O??-ed8ICt?-> z)iVVTrYKA+%44(*Jky9PhIQ68G*ZkcDH9I{J^vRRD3B}j-TFx_Zq_SHI~9C4EogBl zh2Tn9tDXgnz>|^Ta=y$Ii96Ib1J>})heNS;9c%+?*+v$^eRV~(!2$%JR^ZODu%$U+ zl(&F}X|d5I*y8_V?H-#23BqkbZ`-zQ+qTi$wr$(Ct=_h6+qP{@U(UsuxG@t`QD5o@ zJW-jEE7w~JF-8SvvD*!m?!%W&73UVnpM1>x!oG9(vCRD{gGy4Be*6(Y94;H6Wd5AV zAX)8ZFZgJ=WS5^dpt3MZnHpVWYZtvI=a>XBqhC}}+Xg+N{*2^9%X_yflOzZ!&BMYt z!kMCcVMBGI#lB)EmhXniHD6}4I?4MpsJSxm0Y7bjhF^FR?^}x9#GhsF2`VQ5ZANSc zHFE-`>LeCiSb$$uk@rcwv@U{AN~03tP)j##wuYpLM8#!3?q(=E&1-#byf-oJWs4BP zl%6xd$|u@!$T!%&_Qq_@qh~i~bPKm|T?;)$>3{vF5-U9G?K*D!t^q55ARhsED#D>7 zqxupBQha;%Eyy&(=UhM4<4-(+(b4RNxX@a+Mwbqj-1ZzQfa^LtOW6wQhKi8EV zghF9D8RDDis25k#4j2%TnBlG9X+b_sZhwQ8LCFI{&W%Q$0ZT@rH!PI>_wX%i%z9@O zk<;F1kpb$=C?yrDTMV)8T?xZUlURwdCCy%vbaD^IAJU`o zjL&BJ*kI7etTD57B$pZqcZzp>$?rDimADimHs+{%v8Pr$e$kl@OwPz@k(Wqi1e7Q5_0BRDPU9#s#d5EBNj$5 zMM+dAr~^r6Ec{cnX6Al9-}EySn6onUjocLI+v9A%q~!I=x5u}!-wJ!JtpynzVjcTM z>=bd84iow{8kkz2htpTHp>>L}QVSL_zW71_W!pM}h>JodPYXX5@qw}C3n}T%e9Fbw zK;Q5?r;L26Wr}&THNjE`XLQb#??{VsuuW<p&4F5Dt3OOBv^XGP1&WSd;63U< z&6PV7j@$TZjn^=_jQ5#TL1fWx$-}*4)R7hIX|t#=2{8jTTglZ5xB|x)KDB}|tV)me zhue@_bD?%IyaS?36=MkQNhOv&^5pCrNbP&%ML&r%_#T@i&{5P4_3oaS0b%6lX`jri zsk&Z~A!->e2#Zhmy6l|fO|T!UzSce3u@sF7y{ugqceP!cqcorXUEomtKt|3K^#{Uca4Rskq;<+NTgLC} z7tO_o3-^gA_x#>Sb9Nd{x_1wq^8=Fkcl*lD(kL?B;%|Q_>n&He*wsdMPzkUOPo~tW zd=HrLa@6X0@d$0FNVF6N+&mx1@>g&SYD}$Vm2~I~?J1ze66699k-_8kGm0hkikaAi zejNI1LW{=UuZU@|4WHIlvN#wo`nA0SC6fob*4sDB;dODc-3Fuc-l<3tS9=G~Q*$bd z&8jf=xQ-u)Ymz#`E!PnaS?mjnz;a7+9}1!8=lFSR6W{U*?|MnFO+f8~zwcH>yKzk1o}i$lW?Z|9b%TU#yXlh2_7c7ynbNk(2emef=-7Mz;Tw9{oSZ8eQB> z{%A{Y(Dvsb2-OK>?#UhA;B9SZf?=J9mO7BPS;g;xK*JGo^l#G&3KO(R+qY*kyP4jw zKW>}-mRC0Kcvh?Ndf9PVy3n#oQm2#tfddn*16=0}0jNX}msUrog)V2xB3m0ly#smB z)L)#p5JrI8`z_3au;5q&0t^r|p+S)EYN@6c7zTpdI{*RT4B-F`b`OwulDqN48rTy8 zaN!t2JONbzC+@Qchj@xe3<%K1?Nca;3oN?|(`zr&*H1I(bV2M!)LyBm)iz z5|kJ9aQrgcy((aED}VLtUqL8e-X+y&=W;j`Ae^bu7tQ#!`T{Zd#cl*72I$Jx&JN7h z2B>2OxB_fAexojKDMNmKzkmCI`K!pWSK)~6&$L&&flIUZYht?(;c)k*$M#iLfcJ*a_51s# zDDsCxKp;^8JIt>c@_-2Z9zd%?7=d8Z58@EN4Q}b;78_hGtX<%zqY;3Ofc}o3!$u2Y z3=hiH!9!_x7X`!e8K2OkfFK&o1fWgpjf_kvp#*Eb&sn1SLL-4g$M#Kmay zMXvB$1Ki5Mm~L>iO7hpx6CHd0YQBa zJd0$>d$wWX+vX@z-NKa)wxWtD^y^~dK=lw}_3pI=pW%`jJLzoiC#^b$cNMe4DVAhX znQSo2c0uR**0(y2U>QT1(4y-lOqCS0Jz}8e=7YjA!v(GQaeS2ZaSc++7m4%3P!8nY zt~PpBYRJ1WOSYZ0#>LpvQYvnwQrC6<@H@x*yCzT`q4cZ5C4})-QShge%K1jRor%P- zKsfR`MhYdxEGg(%qJ`RC`tqY()}OHMg{T-B+tc7FbEUa6_~)(<<40r2{7$oxBz-6H z`1Vdn_N>RNPQImTA`DbIeagxp7f9uR1 zWy>2(wOC$NvY1B;KE+Vy#~aSXbKKcspO@nnm_h_Tow)F0*orB9_uIisaoVQF`9{?+ zgRGLPFtTt`A<6x>al83uL6K%E!UeNcoEm{jamv~$Kw~pP(Bd;=RxtY~P{m{I3c4TV zDZUF(yjq$y(YG zh}n=<=*m0FN@by0ctSv8BDB|1E-AeE{d$LTd`nti_`|-a4S+7xppe^(nUdTN%|S|!((7%l6* zEe*A*Bv&1P`iZFB1u|i26@grGvavA=X={8}<~VICrO6>iPCUu#lKz0}$vK25*kV(p z^8j%DdbFAtS#0^2D2(q5)Fx~rHmN(WgPFP%-n3&+~F!1~rV~ zFzOGov+V~TZ;IaM=~Xa$3l&U&X;Gj=3jb(>RAMP>c3A6j2-C7d3Gpe6T;8?5op6@n#NfM&zB*G=L0jmj@5*56Xky!0}SoHphBVAU1=6Qeq~q18Lgq} z_XT7h_F{@apu8w7xAPt=kw(I|XX2>92k4b**?t@TnDRjwq2hLyO@hek1!T0f33ZV! z&Ao&`H)60>jMG7ZPnZw1hwIjoeAL%&!;atJ`k$D{MVT|-zSPt>cN!hhGGlTyar;!e zj(#5EY3?oH#S88xGSUyp#@x2`VW;KxSX}J$TK-SRnXV#r-q6{}I2)#S&QoP&;8p2% z#(vAAFb)g!Vqe$1mTTKi2hEH9Y(Y2g#d~A%nNt&C<_0SxB3Vw6%}zY%j*0^+(I%7& z_Z3wRV8<>nrZh01p=s`h2sK);P4G2bCThiVCxFIpRz>&oVd{qEsUi6NnIva{-n5u6 zdh)|Sc273@57lLeH_8u-rigjFqa*#KyOZyhyle~mGd$5#A0sshjNgrd^d#Lv{Zf4N z=?K;CdSr!B1zoqK_NHTD8S!K*anaIt=$k^}Kl6V_^ODV8$1N1S*=)3Cs#6=V0?1jH z(Y9cewfPPbM*EierpeZuWx zAgi_IsTi)97OZNP5;S$xynnGWS`r4=&moJJkKexK$AKK z8E-fC)GxnLLmlery3T!DspsAc!R6Yz0Y9_SLskr9q1DUt@^a`)A}5su9xJ}Tl%}OM z9BEYMG{%F!f>v5HuODyCBb?&a$er^f){sB7;U_7v5-cz86jaDzh&>&463I`vcvKQ# z$`mxXZcNu|#@SPh?G=BsFFBkKC@H@*Rigo%SPuS#fyD9bSs>ocei z5|(x>+RZYF*M0dgOTqV3k%j=7F~jY`gQf!x43B2(FJj+@De4~;18^Sw1VE?1O-pBn zwrimbo^MJVUsK6>kHIO!kzl#ik-8z~$cRwLDq-`DEL6o#_0X~rlkaln75tokDl8{8 zncQnjW!}MSuPI1pPUbd;Hnp)+&R`JCQ6ZFgm*JP|GHBMK}MDJsmv z@db_{+9*IuM+!OlyYc`o{bP_O<73Cv!+@smp+%Ro5BYsoS+NhVGH0tLRn0%OM}gO2 zdX3&-dn0c?MhXk`)D*<%{O(j^h=0H&J zaYUe-!?zj!M8~rK;&*Qn${-Wx`(XgcF3z0epHb3VC%|@r?E$w@W=$PSRXFv=_=};< zc2M1w0~xNqdnoUEScEGCmD872o5LNSfIbp=R9{hT=r~u!wDt9iP>fBCiR1BNADa|w z7))gM36enX|F;WO;86(edws^{2OIkd5RG-5;BZ^oxTa-g2EaDaANu?A?x@A7X^xI& z81X{EN%Y5^&Ssak`t4|qqOf7UG_EKznG!jM%t+MK5*S}xqjMEqZ^tuh#xKQ8m)b_; z0oL)C>y`AtQ|*M;AVoCroaNdf3+4ti>Nb3rR0P~Bv&y!D<}ll}|L{^6HiV>Oe+l(; z*>oA&!^I6hK8&wN9_8?%uD6U3@|^x}z#b>k!RtPTa|1H%cfnx4gx;=2slK0)pN6_~ z@h+_%7nZ~^h9F8qWswEm5l%am30tojY~)_<-zd+rEGw3pK>Qz^wTRZtxvvy#4=NCh zf8`s^UdeI{78dmyV3*6A)UiIzGn%o~J0>K*1pz#v;Yi%SP3yw|%PNFmxMpD1&|)7K z)99M&lV+_E#LCfFD=&~7pLX^zyS4;VEpa4+^%OWp6gZc6)+8+~6>HwclnO|SHEr96 zK*3Hn=kmSO%t9V??PZk{La$djPHq&S($4Y}D?0$VNv~Sed~*A~efm<$wHhu)7TSf= z`@2P{4c!`;NPA?<%Y+=AcqFF}zJ8Eq z*1so5R5Zmhq&QyLmkCA!33`&|d^_ti@3Unk^}AcrrdeyMs(}1&>Q?Ntm?o)bvj@Gt zt8xn)1uqC)vNynqad!Ju6O=cus+RdgnQKwZwUt(x)WeuDPIY<8gB*`d?F;C*l9jm2&X&kTRg(uNP^3j<@F5>X9U%F6*#etlq* z(rB=A)=o(j_bb%*DK)VBrF_n)1XQK7>^}x*93+6X=fW5}*FgjtjL*f7&>SIK?_Ife&Wq($uv1c&;~H zLL^{9WS2?9R*eK(=OSND`{Sj}K{O3jZ}`0VxEk0G(w^hu7CL$zc6)gZ1Yiy7<29ql z#y{IK1AZf^q9Ew|==h|{Tl1Y24yAvDxOKW+nvk0SQoSozAoBY2 znV}z&f!XMFH!gy}L#zYrOP6hH0YlBDEks~c!H+RW0bg9Yld4x zWH1BO1qKp;B?H;#h#}OMMsPsQ>vU#_zdm6g;(zKx{0YquX|d;OqLcxeZF%!HoF4$t zHYESl9Rff-0=Kt^Q|=>WjCE#3o#a!A05qRc0gusz`*%?3LW=U>)VD9A^Yx25n`fJD z*R+Z+PM6N+k*`~s_Kjn~-d%XibNSYswtv(S0Wz1@Uez&OILzn}FyS3OWeat_l#De6 z&%OyMoZ8#sXYuDN%EQ+#lvskDs~Lm`Skm2cuf0k_hj1gb6v!2Jc!4!dp1B^HMcGk- zp#1T#of=n)x;T)Ksu8?c=xkG6B4o@SM<5koM?%Ox)mfrbU?-gBOV*>Vg(?>+>YI466EXU!^Tk#@dSmuQ(W5f_#E_O*#i1Vc^ z&vYfAy|2Jn>AXz0hr0N)@5y-H1Q2?Q-R)WX)Rt4ACQ~ujE#>Z|Jg$XjP2Q!9c5-?& zWsr0tTY_?vsFp`@l{`r$s%sE3UYl|q+eg&>pfb;r;;dfL+` z__$cRb>d`=E={Hf55!eN>S#aQI73F^6-+jyFR$w+*Oq`5ciKQTf0L&wi8ty9QX_Dl zm#cn9VLwtKee-0Ow$3r|l_fVWda5lX@E;rpH5VC}Z%^&YY1aGYqX7>avJREj=bmU5 z>8lRjcs@&svceJw?I!~nC1A~-jxwb$1S=y%a(`@b8adKWSD}0Hs;-7g73unoPxWua z%8HsEaN`)Mpu7SWx2hE?EX1Hnx_w%m&5{NQkTmD=>ELN+_;Y%o&+t~2n1wAj=61!_ zCh@2bAN8fBz=VU0$ ztoilvtiCugaRI86N!H)(=932Qd9!S`6^8O!s#fXXbaQ7lz<5h^UO7+uI&;x$cWKEj z{xR)z-QwGuP$mxovQ_mT!}Lwm@F*|s`XWf-s;XR705E29y7iOA0W5PfHu{~--F(oE zs=X?oig#4BUzatjTWfKN(^Q-F^^owl8@KOh+R8 z4u~30G0~~3P2O9Z>koNH+4D7jh(}#qAF|_>f|LmT-IlP$Wz6$b6za+C9uV~NKLFwj zg*T9z#sH<)ga2vgL>sdc?JlbAp==yQa~@l6th@1c7E7RNHBX{2AaoP~rS*V^XoB_T z9E`d-7ok_Fn>a4j&f32d4&bYjl__j#T|0#98*eWMQ|yKk#;-#qvh^wYE3;3K=?IXg zw+Kxupk}aJLHp?7*nMro_rBqijTa}=QiHr48P|C~p=NHY$EQV9IeqKC0Hu3wBM`Kffdsox(24G`!q-rCrIc`2aACo5>}K?G zNS&l;DKl?}PSs>Inp-uHdlZ0Wq*u$F%RmuN;Bvm;me4@>h9*`32C7^M#&XtP{uwNe z`&>&jCMhRwMUGm-OjVg`VtD+6^uni1YqC=(Qx{;eQdE%&-%zSqVb~vE{1(xm1LO8Q z2xP~?_%W8%IzpbC@w^`$Y&cyQ`kc7N1hE{WQ9P|?BY2H1x)=>bF!k7dw0!u)F5DwE zv#GObjeA9bff#G=#f z&ka%G#lv;e?Fw#+m9>p8sZp6vlgCHvkLbOFPFD}~#jBtmzW+#yw!qQ#x#dBK6Phqm!+}Zhj32%a+%Y(zhZP-_gbDNGL4zXRRut%FdCAQr)8tSwH z>{dMgn^5T?y2eS6S=Zc&D0)JqyK1?n^a0;ha zDugK-7-$XsMvV4OMS-6$!rW_^!jkK3k|pzzi$&Le71379^`+8Q*7t(5hV@knX^4vv zgS@COX9_TWYm%)GN^QDW6wFj?1b+ZwzeVNhgrcR|8*FUg$ew1HcGB@Hpz&Gnol%8> zOV$OnVOfz%laa#HqQtTL#Bl6;$u*7*068^y2j-mnuDEo=FR->Zt0;=#cs6_E_CuOny?F>$>F~scEEWmakc!Y71Z8aSdr>U9fXKU!UVeC9CXkkipB*Jfg6RjF z%A%)Vc$jn_vu@~_4jNb(Sd%m}tZatC#CW+jkp_NA(D=dzyR7&93ePv4chK7V|B&Su zh}{FPdCv=+$k3b3DZnGoGSshe@&!l-o^xgBo-!kdNTw1y!0;9u8WbmmL91lXQqz~c zE?r0#`V6~jc$Wmkusa-xbZ|O%fqi)fPG3AX@~Z<3KfkN<8cfVuLfE~O8i}ob>uYZc z5Sv7t>!EzhitRGTQQ(GFs3)p&Pi-jQt;1F-WK4RvwU90uXnv@~5zjs5q@X2GoC>X` zt+G6b{&`-pIJ>aZYcwN13L_qHXQaKAG_Xqc7+$tytJ z31>3MT>EZMne*k_8%y6_QJ%2^nZ2<(IXi6T2l7cIJr;4D%ri>W#G)Ln3*jh=+>Y(> z))Zof$2qW3%fH0(+uxn>SJNcFAoVd>j*1a(F_&D-zJ<>8#7zA(2NH6$xQp7!+Hf8c z5-oR&8@4uZ*^~Qumeolq2)tQWb}SmC?zM8uMa(4fK5Qe<9S`w((^-rt@s$swGGg^` z8jfvzS7+0H+$bymKp6v8Oo;c-bO6ph8tX<23-*0+H~2o?Ki9%MIEN4Oxu}vRz_l(B<4S7fYhoN!0v44#stm zqa=~{Ltj}*!cJLxRAX@btP1xqFGM*+#v~`juScL#pg{*78+G2g<-wtVsklED`KIV< zApDMd4S!7pM4mZ!YRs{D2VAjKS4x~6PtrC$D^FaCwo-LG)@MU0_evHp(eo(_od``= zk^;WESIxc|D~ITp;YF*1@;-&837L;u?BO-Swo{>{6A>jj7GjK%h}mi<=F?-BVoSPvz| z(&}}__Qn?6JUiZUIp{eJ&Ei4e135df@ZpDv**WV>b0QWhCH|EYuE=1X#FhdR&r~my zXB+tq;q-ZhHzoXw=(sNi3?Yy(xtbuw95 z-WK((*A=vMp|>rq-5WtMY_I&KdX`vqP@*>R8De|19+?1N7eSZ%6iN4F*JPqz-5 z((mWoEWsmdYx;BWRh!!z7{t=h1MtN<+HQ!tqjA)1f*GAZ*9z~-1@(^Te$+jp#nz>4 zM|Z$~7bFrT;HqGSqXhJX_+Wi|TNtc<_CP&-#YE7FturVzk;2mt5wn@*B!@aL6#wlRo(*a1c~nB z(qJWH4iO14a&LO0q@PQxFF`VJ&d0@+nOzZiO!~w~O~M{`jS}nSMMNuvt32(2)n$H+6Cq*Tf^Wdy8C2d11CU+qU*pd-@Dj}z zXY5Qo*9urfXL&F*xBNP&mT2C5h zHU7LKm@wD&pK3oZngJX6`kEP8S*7Nt{i|tlA;-k^(N#ITD%w-+cG>EFCTida8*>Tc z2Y5)Cdijxa|5!FV;!||?cQBlCo4>iB{VQyw|1AGxDZrMQ!^Y$7=+p;bOt*q{hC}}G zQ8dmnWM5c{vawC=0U9PeqOEtxwNj>^q3Dfv)Fjy=70$a!P5-y~a6bYKRJKthQH86r zWJaHOXG3hU{2i*DPDe@kK>9sx0P`snX5NWW8n_AafcoK68txNnL(YKJXNgC5GK=wb z(wh$d&AxLHgP$jRxA9`+(cXuc0WnLc@>}`cK-zpXt1NN>Yv$VkLLU3GseOn|{8r^7 zqX*T&=_e?lo5?^zLNn7VCzjsfwEGIW+SU?{+R=(j-O#-y4P~auumfnC?XJ&xwe!Pa zzN@gR@AafRL+mY$TRpVCq8_CcpYAo40u2A=W-Si#UCGe04CiF6ZKhp zKG>2-b`W^%5R(%oVjI02eKFVh8Bv|{i!n{j_Ty2Q26`;aUCj6tscltg{Qu!E;nYLAzA$z;_J~mp|HgHzw5V%GAUK zbiG`Kxy~0-%C*SBjnnvMd)nabo0eAGTjTH$4H&D>KuzC^Jd%@^GZ*L47$w*YqN28e z*jJsJ(WVJ<{D#BB=TkYu_6|yY8Pxs!gxB4;Kv|V?QlEF!1>2I`t_Q)e1ZW=|FA@>9 z6X0TAy5zjd2Ef?d!T_}uOEV^Hm^n)~Mr7gPghGW<);%x`LnW5)fy(S-r&#pDl<8-565WL}_C zBwU56H&LuVy$5SGN2moeQ+<-SZX(}zH$TJsK@Rg+Ixr0arE{_t%fUwfZ8!P(ejVz zh;Y|@L|k+rPV-iN^JAcOL9=Y`ffrkBnbZUB@x$36s`SU0TZYC$ zrgSn5eF^I!oEh$8U#>Z8eU>Cx{iVkya0y7>70g7_F1)AZb{6!I8dgZlxeNSx=55vA z_YeKk-W)mH41Ly(V!Sk-&?G!1&h8WpK|eIF@aP>{oBcg&>ncFB4D}M*c>jQk4_6_Q z0Amu1dpPnqJl#Srp89MrOgl2Nqc51?gP-&cYQXJgdh6$A&J zU|E*=&%Q72iQCJ$urgiSfitx5I}Z@qILWz-^=?*f!IfMm=$JDPY#B<`QS^<9);uIr zZVw6=6#-0e_;s_puu$*O8f+JX0KhD_iK~*Mmj24)DV5kJ+N>4ieQGi2J-MTjyD%Xr z&vousVkP3?u%dOBHpu8(Gr+EfoQl83$I+%5`C_JNlRmm{MfrKQXGODVPWDjh6Hk5S zWaY_TG-Jekee0ibZfd?ew^cw=#SKZ@%*b}BhhsA+w*Nnx-^TzP^7)I>)yFGMevXfda9^XLC5AeOQ~m z@7UrS-CeOx0^3~0(!4pFzgEkTCFX}Mq$wkXMhdYPQxDol6MlA>guqlx)`^NZJVaqH zTa)T;e&sDyll-t+qG6!SWaS0-;z8r+a~}^h9v2dEu~eO&aFl;{UqcmjTUg6~7G8wR zCPrJR4c(iLRdUm9*+yiL%mGnCKK}W$Y`lt?Y!-EQDnp5f+4S@26UP=nT25kf+FfN*w&tWIqJD?(UeSLaD*p^Xc6a5xh3(^;~%vY#?dKyqsaI~9!GUBV_Ffq)U)9x#1ZRl4X+{b-JW^i7}oXr(n!mA)1tP#VfT=^@Fysl z^BNaH81-23GH0@3;b`I)5UiCJ?mvn>{s-ON?EeOk{FmqdoM*IA>9;*#KCXjlAkS_Efj7gf)Bso~}0Qt$le@^V+06;`j_R@^?RGF)aG<(ATIULLJ* zJ^lMjPP?VG=v(41zTMNYTlDiiy8=i2VR6*WHVVJdyQ9>kmezc*q-V>)qVt(Q)xDDG zZ=!X&jn@I+zvfhRuQ6R?aoG>8pfv_5Q+`p(^?}M?#f#~G@O-*|_EP1#3fh=~)jM~x z&*9zB(5e5$vSe$%!S3RvD0=p>^okD$l?->{q}qwgTBL!`?o~FjDy-9@$M01pq>HVn z?9$Brlr;gH^)e00TzzV(mipM&{JfkSQDWT5eM**GRpy=^k%3$%qRqrW3&D_Tn6y9) zlLQG!xDlpZMo9*M=|JgEO2CLB-<}{hw?woVNSd6;Qpl0RpzjDUCP6wV0%ClYaJ)q< z90&6qSpgso1T{xTS_E+2(6>co4S7!5FbN8bg6w~#6s!mnG$S|kaV7KIgEs4D?8&t+yN3sJ>-$XSea!j34$K7}t9 z?RO|wm+P(NbT?W|o`?`JZoN;7zHTqrK?fl0502Bze(iY&65|_M|eX zXE;awl=dc|?qg=l-Ou>d{XXvY4;ZBIXu ztIC+(ptso_|NI9SnE!+F_W!pSivD4EMBNcCd5Iqh6_7y{B|<31X{pY%Y+gmlMymi6 zN&GJuinlFGKw|RDPP#oX^uFD<9Foq|s>t20W`vK)-e-02wRKQ+T=?2voNu+S zFC1Ro%kaW#Hae0zX4r>IZRFUKyDX|+ovugzVW{4+TJ$aT7uVtM+)etqp4AV7{APK` z&06HX_S^lxF|g@)l}%Ou!{G7{17Js7|B_SHdAaFs)AJr^Ir@La@cs`2@IMUKqxVN} zS+2XFQ6ZUp^C$N#-gOOG`X3Dc34^+e&p!+=Td%kO2}7#1YA5eM47YCJWu?1e9oGDQ zPjVq$Y=xy4mTp&WDcG*pRnTaf^vi`bX#rN3c3xzuiD}>ISqe3|hX$sml6_bX<9%HO zeSaclrQ#T5OhJOp@f~wY(*cZ!N&r&*hZJ~D#kd5OqpYD*6{Hrz51dE*#{mh5Q(%x0 z;|s)7o#J44nVzUmfc`>K2y~`K12tU&IYrg67N?ETslzD905nJ=iZQ}q<%B<<$vn4U z|1TKY{}YC(|BgZEKVy*mf55Q+4}*`!|Ac|=zhQv<{|Q6Q|BPYsKVt~`|Bk`qKgMwQ z9kDEo`30(H;#mH_WB4Cy>Qy}KO$g}a4K0+}_~aCCAeVCVer0eJ#u zCg%TIA^v~6``L5RXP4$p8A|Lo}jysP?Uf7x@HCdIZufivbtXmt8FO$lC zT)uJ>fGW0-P`9)$)(ax+_4m8c^>GrAX6UC{^y4H=)QuIh%0QJCnsDF?RXU&Lw|w*hJjs?Q+++Krl-As~S39o-y23?mg>S8k{r*Mi3)_ zp0N-NJr*;_0Ypt>&veY#9#r061Zytj59d!x=8#~Jeqj*4(szjpf|%&h-!$BX_XPLG zpyFjNUKE&&cf{ujMhZflUdClE2BO%W3tx_Vo*97ICbEP;2(g4%SU_8VWxg$8E-k1J z8UtpoWndZS8{+`zyb*@?2OIj+A7!8b-y0Z4G%_0P<5dAi2DJd8x&W$)HN9VLB|c)# zjzHAEusXRLLlKyTaw*7;MS(yCUD5z3G#Dr*0tSf-T!WP50H{q+nC>8uQ#&|WOjsET zrhssNte)U6OL4?lS82f=sa^k{fg*4J9Fk(#KpeOq3>*)zFRDn1A;3R->XPXcBC}Kn z|0YOo33$-7*Ou&OdQS!nq#qd<8+Q=WlS~1s%N`Qf?9r6?Tc@M2%RT4vn|&qU+m+sy zMfV!YpDgPu%9Dq9PxO3Lz8 z0qW2_2CXmVI8|*r^%hF!Xprk3PVw`$aRoQ`On)~MU@VYr@)XH5Uy>~@`uvoag+Lh_&0`M5{>SYqG3#(!yv)>}MQ zK4DnX=6xpnUEV6oxS-Noi8_C@1-N1JKjfJusj}SeS|gp`aJDVWl5Hvfv@D}P1wXuA zw3%wNnR!NYN@?F&*=CY&*<$&$A+KP+?($T#qbq2(j=G-U5{5v(3cf$|bdW307}Nx#Pj3Kp{X1&s0v9=e4Uc(CJC{H8calr4yBL*#Qp1 z6kAA@H>SOvN#_6lf(FtEhz~~i3mp;9tr0tV+9{zUTxnAfvP;4XCM8ygOFS$fVW1+x)NqVYF$Rc)hB zOXbi}v^$ml!-2|?s3B!W8L?|iM{*RK3!(o8rPJV*&)4v2) z+e{1##*hEiJ{J}|bt)4sK+I2mmO!)rV29976%w(kHKy}@`tryOz$aaPQ2zNIx1y4# zLyx+A@8!s&_p3rrdpuwMOXEk)=kxP;9=g-b#lgQ$u$`30lfGoJ@i-t@Jb^xdAG{p= z=T9+9SUeFQe)w|v9}F*yiYE(cet(n*79=1ih>FMuh58IDA}XbSUnday<6bUPLKiShgc;J5p~I5a1(t)xh6fjh+u za3%FEObQ}Ms7FS?!`sWM-Fx3qkbp3Z4G`+K=FbWvN~y$%!sVeIRL!DLsFl+UCk=Ig@TA!+2r@pAz1oi8+hK+i|roEByo3-}tD{Cvb zD8)QV`vL|^^HFX`hjBL_UHrK(@Gs_ciYNg+ zJxxs1M`k-=y}eWSgxuiQC}fj=d0W&p5&YaTN<91v5^^|&M=?MNi5IcLlH=jDnQ+u$kFt zp5kKHI0M>MiWfokXD<1e;?SS3g65+CX&JN(wn<5Q;`VomL+_H=U0LPLmmFrsceH!z zk|E8HPmB1HfEt(nz<^u5bk@9RdSdKY#4JzR0UmWJ0||Zs!fO~5Mv6N*nA0o@4VbSm zelbZz*3v$NASpz#X%JdKjBOE=->Td{A9UXgUxKI-3v9C#8CYXW%vL%<>n>4l7tLE# zCoqQ@kg%QS$kJk&IaW)wT~-poYyj3evQjC2e6oVER)i~KPr0cGFJ;HY!Zjt-yb%1T zTVy?Nk7k-zn14!)VM9&!|3cY!GlGlZ%Osp{>8kiUvZczz>waXoC{JOX867zqtfGV+ zsBj~E&4M7L=m!J=5YaLo!=!_^x+88aNWHVv3nVz)mX4YckXXp=|Hx}Vz{OL>)g*S7 zY7FGrgB9kr8>@j@4g38?wj9%bW*0(`A>vGM1hw)zcri#)Cx{i~+3fY2Suby*^@I;a{I`lMwF1vp3NNtuo#7_DeJB zkEZ+$v#P|WMa;CjnrA0pVu9YulOPSB?(~^ViOt~Cyk4KrT|M9T)6S2|-t4^8B=%Wd znNeYd=*cKf=I#718PDn55_)W)O=IgGfEjS-zd>IRxyR4FRUZcpHVeT|R~d;tqk8lc z4!j(h+R@Zx@ia7*Rru*F;S>DLLGfp-fa!*x$i72*cWGa!znS=DPj|3>lf8%J5?4Eq ziLdVfn41_8JMrq?L*lGI{0DFzK)riuT_?Tw@ZM9kZ^82K&Pw-IzBH!=CxR+lpPhaiidQ+B-Qs=zpUkV-rs;}$3v*tMGdQIbJ zB~5Li@xgO52lggP+GFdDqq&D zRdn3LIp{zKR!tVSMiy8aF{N7C*H6ce^3ZPwqk#)zQv%_c(O}am&iA~pSxdIL@)?vVEzgwO4f+fVC$w_=d`PV zYzZn8xoYQ`Y(i+)Raqu>6QlJ5n(~@?Ww}%|<;G~++U!f$cA5^X;enXyA_fbSOIWu& zsJack`ChHP(~Bh%PHM!sjHOsl(p7~<_2U1tpjbsk0bwt!5VHiQ{_CZG}dBGU(Fto ziC;5|H})s^wrn(+EsKBnSf=%!J)nENUry;=?e|V}?aq6&p_&HCUz+YUI_{z3uNo9h zr6y?fOI>49asjB!JpY2r4>$csgS%M%$B||Vj&{Z_MkbB~6!ylZDkgtu8R=LU=$P34 zuW54WJC>GYW5^OVo64EYNA3JRHK=miJpNb zmz^D`Q<Ieva#XP$LLHN!}^kz@GE2#Oi8$esTMc{`B*_@&vR`HGwq#b z$JnB~ltO#IZMwVVR+)b&-;srpA=c-Z`flyN&web<+ON3D{LF004T^mMEe5WcZ3R5S zZAK!Kc~m=GcoLli7P1^;St@ePvrA%|sjK8-119xFDQyc`ld~quv;-|sTOe(06s?o? zu-jy*gCX1c_{|^q9gz4EIGwM^Q%m1p|_a) zqKqD!P6zYQqgS8HJgxH#bDzMJ_2hMP;MaA9uZoXkbWi&fJLQvq?E8k7LOBn9q^h2c z+@n}rysuaJes?ra^@q51eFs$~udr--=s5Sx!^@Qpo`2;;RIf+vJK6NRCvx|S?q3=U zQl5XbiatN%$fZMXzs-Jn;ZFC~8LcNIHdY?zP&rn?bMwMW2`|UYq9W(ljGtF`Y!`8{ zy1V#6miEIlk?kh8@7?Em^ar?qI=P6k-S2MllsOYxuXKMX^=fkFZ zw_opW=Uw*in!VYwDeMc`uiunqP^&Dz{ryq;Ug3xNx>lQ*<$s9jy-pHbH`{B!n*s2o zt<$RS)TB4?%lAJjc;3gP`uF!2{xvHmEy5fEF*LzUw-G_9X8P8RjD8*mwvcHw4s8Lf+0{aC_ldhCPp-2m+KYM>H+m#h%DrGD9 zv-pUhZs~`TUowWNA+61fRs2^seO9cp)^}%hd-3+JS4iTVd+%1ZiBHy8#HJ@!*dKKz zQL_BQLOJUluFQWRWs!Wd#4(Ly2926$lK3LeD7TBAS@AowTql7uJK{K-*~V7e zHLL!gzIXfBKDK%nXZ=MF`7fSWoMECZb-L5+ZKs*IOLW(wwW=3?G-fENoSL6`NqZJo z$FigEEDtF574#*~$*8`z&-!Z3g=@yOMXvJ~f2&!V&mZEvudRl6r&N*YlgtyBCoC@f nS{n1kR{6i1s`g3Dgi>6RSX5F0EXBEu&5SLLxl~nM{oS|#cd&Mh literal 0 HcmV?d00001 diff --git a/deployments/_deployments_log_file.json b/deployments/_deployments_log_file.json index 0c74257c3..003d82bd5 100644 --- a/deployments/_deployments_log_file.json +++ b/deployments/_deployments_log_file.json @@ -23529,22 +23529,6 @@ } } }, - "MayanBridgeFacet": { - "bsc": { - "staging": { - "1.0.0": [ - { - "ADDRESS": "0x5Ba4FeD1DAd2fD057A9f687B399B8e4cF2368214", - "OPTIMIZER_RUNS": "1000000", - "TIMESTAMP": "2024-03-13 16:20:44", - "CONSTRUCTOR_ARGS": "0x000000000000000000000000f3f04555f8fda510bfc77820fd6eb8446f59e72d", - "SALT": "", - "VERIFIED": "true" - } - ] - } - } - }, "TokenWrapper": { "polygon": { "staging": { @@ -24238,6 +24222,16 @@ "SALT": "", "VERIFIED": "true" } + ], + "1.1.0": [ + { + "ADDRESS": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-28 17:42:48", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "SALT": "", + "VERIFIED": "true" + } ] } }, @@ -24252,6 +24246,16 @@ "SALT": "", "VERIFIED": "true" } + ], + "1.1.0": [ + { + "ADDRESS": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-28 17:49:54", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "SALT": "", + "VERIFIED": "true" + } ] }, "staging": { @@ -24264,6 +24268,16 @@ "SALT": "", "VERIFIED": "false" } + ], + "1.1.0": [ + { + "ADDRESS": "0x6C96d5C36d9aDBD3F4e0337D2d1E133A59288D1A", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-28 09:07:01", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "SALT": "", + "VERIFIED": "true" + } ] } }, @@ -24278,6 +24292,16 @@ "SALT": "", "VERIFIED": "true" } + ], + "1.1.0": [ + { + "ADDRESS": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-28 17:47:49", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "SALT": "", + "VERIFIED": "true" + } ] } }, @@ -24292,6 +24316,16 @@ "SALT": "", "VERIFIED": "true" } + ], + "1.1.0": [ + { + "ADDRESS": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-28 17:57:43", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "SALT": "", + "VERIFIED": "true" + } ] } }, @@ -24306,6 +24340,16 @@ "SALT": "", "VERIFIED": "true" } + ], + "1.1.0": [ + { + "ADDRESS": "0x6ADA8e557E1571c56D004D28006cD609e8837C58", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-28 17:40:13", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "SALT": "", + "VERIFIED": "true" + } ] } }, @@ -24320,6 +24364,16 @@ "SALT": "", "VERIFIED": "true" } + ], + "1.1.0": [ + { + "ADDRESS": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-28 17:51:32", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "SALT": "", + "VERIFIED": "true" + } ] } }, @@ -24334,6 +24388,16 @@ "SALT": "", "VERIFIED": "true" } + ], + "1.1.0": [ + { + "ADDRESS": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-28 17:52:38", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "SALT": "", + "VERIFIED": "true" + } ] } } diff --git a/deployments/arbitrum.diamond.json b/deployments/arbitrum.diamond.json index ca1b860ea..b153df1f3 100644 --- a/deployments/arbitrum.diamond.json +++ b/deployments/arbitrum.diamond.json @@ -101,9 +101,9 @@ "Name": "CalldataVerificationFacet", "Version": "1.1.1" }, - "0xF965f52046D7095d5080bD31459601F4Eb24f72D": { - "Name": "", - "Version": "" + "0x5052fc5c7486162deDf7458E1f7c6ABaFbcd6895": { + "Name": "AcrossFacetV3", + "Version": "1.1.0" }, "0x711e80A9c1eB906d9Ae9d37E5432E6E7aCeEdA0B": { "Name": "WithdrawFacet", @@ -121,9 +121,9 @@ "Name": "SquidFacet", "Version": "1.0.0" }, - "0x4682d79DD4D0e7555415841b5151933AF50594A8": { + "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324": { "Name": "MayanFacet", - "Version": "1.0.0" + "Version": "1.1.0" }, "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F": { "Name": "GenericSwapFacetV3", @@ -137,8 +137,8 @@ "Name": "AcrossFacetPackedV3", "Version": "1.2.0" }, - "0x6e00e0a7685Ca22c288d56D9E7924746B5043Ee7": { - "Name": "AcrossFacetV3", + "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803": { + "Name": "DeBridgeDlnFacet", "Version": "1.0.0" }, "0x6F2baA7cd5F156CA1B132F7FF11E0fa2aD775F61": { @@ -152,10 +152,6 @@ "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5": { "Name": "RelayFacet", "Version": "1.0.0" - }, - "0x5052fc5c7486162deDf7458E1f7c6ABaFbcd6895": { - "Name": "AcrossFacetV3", - "Version": "1.1.0" } }, "Periphery": { @@ -167,7 +163,6 @@ "LiFuelFeeCollector": "0xc02FFcdD914DbA646704439c6090BAbaD521d04C", "Permit2Proxy": "0x6307119078556Fc8aD77781DFC67df20d75FB4f9", "ReceiverAcrossV3": "0xca6e6B692F568055adA0bF72A06D1EBbC938Fb23", - "Receiver": "0x050e198E36A73a1e32F15C3afC58C4506d82f657", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "RelayerCelerIM": "0x6a8b11bF29C0546991DEcD6E0Db8cC7Fda22bA97", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d" diff --git a/deployments/arbitrum.diamond.staging.json b/deployments/arbitrum.diamond.staging.json index 98ee3bf74..109b4b572 100644 --- a/deployments/arbitrum.diamond.staging.json +++ b/deployments/arbitrum.diamond.staging.json @@ -152,6 +152,10 @@ "0xDd661337B48BEA5194F6d26F2C59fF0855E15289": { "Name": "", "Version": "" + }, + "0x6C96d5C36d9aDBD3F4e0337D2d1E133A59288D1A": { + "Name": "MayanFacet", + "Version": "1.1.0" } }, "Periphery": { diff --git a/deployments/arbitrum.json b/deployments/arbitrum.json index 13694d12b..5b5e7f824 100644 --- a/deployments/arbitrum.json +++ b/deployments/arbitrum.json @@ -43,7 +43,7 @@ "SymbiosisFacet": "0xe12b2488c71432F9a116E9ac244D3Ef4c2386d3a", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", "SquidFacet": "0x5C2C3F56e33F45389aa4e1DA4D3a807A532a910c", - "MayanFacet": "0x4682d79DD4D0e7555415841b5151933AF50594A8", + "MayanFacet": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", "GenericSwapFacetV3": "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F", "StargateFacetV2": "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", diff --git a/deployments/arbitrum.staging.json b/deployments/arbitrum.staging.json index 85c94bf9a..7cca0fa87 100644 --- a/deployments/arbitrum.staging.json +++ b/deployments/arbitrum.staging.json @@ -33,7 +33,7 @@ "WormholeFacet": "0x7260Fd3F8D0bEb06fF5935C6eadE9f406107c270", "SymbiosisFacet": "0x21571D628B0bCBeb954D5933A604eCac35bAF2c7", "DeBridgeDlnFacet": "0xE15C7585636e62b88bA47A40621287086E0c2E33", - "MayanFacet": "0xd596C903d78870786c5DB0E448ce7F87A65A0daD", + "MayanFacet": "0x6C96d5C36d9aDBD3F4e0337D2d1E133A59288D1A", "StandardizedCallFacet": "0xA7ffe57ee70Ac4998e9E9fC6f17341173E081A8f", "GenericSwapFacetV3": "0xFf6Fa203573Baaaa4AE375EB7ac2819d539e16FF", "CalldataVerificationFacet": "0x90B5b319cA20D9E466cB5b843952363C34d1b54E", diff --git a/deployments/avalanche.diamond.json b/deployments/avalanche.diamond.json index 649710359..9ed751cd8 100644 --- a/deployments/avalanche.diamond.json +++ b/deployments/avalanche.diamond.json @@ -81,9 +81,9 @@ "Name": "CalldataVerificationFacet", "Version": "1.1.1" }, - "0xF965f52046D7095d5080bD31459601F4Eb24f72D": { - "Name": "", - "Version": "" + "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803": { + "Name": "DeBridgeDlnFacet", + "Version": "1.0.0" }, "0x85f9c55B22bd2c389b560130F878CeB8b289C4c4": { "Name": "AllBridgeFacet", @@ -101,9 +101,9 @@ "Name": "SquidFacet", "Version": "1.0.0" }, - "0x4682d79DD4D0e7555415841b5151933AF50594A8": { + "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324": { "Name": "MayanFacet", - "Version": "1.0.0" + "Version": "1.1.0" }, "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F": { "Name": "GenericSwapFacetV3", @@ -120,6 +120,10 @@ "0xF5c923a087fb3c554579e2DD10AB6E37E0f6F849": { "Name": "GasZipFacet", "Version": "2.0.0" + }, + "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5": { + "Name": "RelayFacet", + "Version": "1.0.0" } }, "Periphery": { @@ -131,7 +135,6 @@ "LiFuelFeeCollector": "0xc02FFcdD914DbA646704439c6090BAbaD521d04C", "Permit2Proxy": "0x6307119078556Fc8aD77781DFC67df20d75FB4f9", "ReceiverAcrossV3": "", - "Receiver": "0x050e198E36A73a1e32F15C3afC58C4506d82f657", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "RelayerCelerIM": "0x6a8b11bF29C0546991DEcD6E0Db8cC7Fda22bA97", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d" diff --git a/deployments/avalanche.json b/deployments/avalanche.json index 71e03ceb6..804b25ca3 100644 --- a/deployments/avalanche.json +++ b/deployments/avalanche.json @@ -40,7 +40,7 @@ "SymbiosisFacet": "0xe12b2488c71432F9a116E9ac244D3Ef4c2386d3a", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", "SquidFacet": "0x5C2C3F56e33F45389aa4e1DA4D3a807A532a910c", - "MayanFacet": "0x4682d79DD4D0e7555415841b5151933AF50594A8", + "MayanFacet": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", "GenericSwapFacetV3": "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F", "StargateFacetV2": "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", diff --git a/deployments/base.diamond.json b/deployments/base.diamond.json index 2cfd85f70..172c8aaeb 100644 --- a/deployments/base.diamond.json +++ b/deployments/base.diamond.json @@ -65,9 +65,9 @@ "Name": "AcrossFacet", "Version": "2.0.0" }, - "0xF965f52046D7095d5080bD31459601F4Eb24f72D": { - "Name": "", - "Version": "" + "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5": { + "Name": "RelayFacet", + "Version": "1.0.0" }, "0x6731C946747bA54c78e7a65d416Cde39E478ECeb": { "Name": "CelerCircleBridgeFacet", @@ -113,9 +113,9 @@ "Name": "GenericSwapFacetV3", "Version": "1.0.0" }, - "0x4682d79DD4D0e7555415841b5151933AF50594A8": { + "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324": { "Name": "MayanFacet", - "Version": "1.0.0" + "Version": "1.1.0" }, "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61": { "Name": "StargateFacetV2", @@ -125,9 +125,9 @@ "Name": "AcrossFacetPackedV3", "Version": "1.2.0" }, - "0x00990C0FfBB7eAB014351652aFB65AaE00db43A4": { - "Name": "", - "Version": "" + "0x5052fc5c7486162deDf7458E1f7c6ABaFbcd6895": { + "Name": "AcrossFacetV3", + "Version": "1.1.0" }, "0x6F2baA7cd5F156CA1B132F7FF11E0fa2aD775F61": { "Name": "EmergencyPauseFacet", @@ -137,17 +137,9 @@ "Name": "GasZipFacet", "Version": "2.0.0" }, - "0x6e00e0a7685Ca22c288d56D9E7924746B5043Ee7": { - "Name": "AcrossFacetV3", - "Version": "1.0.0" - }, - "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5": { - "Name": "RelayFacet", + "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803": { + "Name": "DeBridgeDlnFacet", "Version": "1.0.0" - }, - "0x5052fc5c7486162deDf7458E1f7c6ABaFbcd6895": { - "Name": "AcrossFacetV3", - "Version": "1.1.0" } }, "Periphery": { @@ -159,7 +151,6 @@ "LiFuelFeeCollector": "0xc02FFcdD914DbA646704439c6090BAbaD521d04C", "Permit2Proxy": "0x6307119078556Fc8aD77781DFC67df20d75FB4f9", "ReceiverAcrossV3": "0xca6e6B692F568055adA0bF72A06D1EBbC938Fb23", - "Receiver": "0xeC03B65CbDc5f8858b02F44EBa54C90664249fb1", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "RelayerCelerIM": "", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d" diff --git a/deployments/base.json b/deployments/base.json index 99f7fefa9..4ccc5cecd 100644 --- a/deployments/base.json +++ b/deployments/base.json @@ -34,7 +34,7 @@ "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", "SquidFacet": "0x5C2C3F56e33F45389aa4e1DA4D3a807A532a910c", "GenericSwapFacetV3": "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F", - "MayanFacet": "0x4682d79DD4D0e7555415841b5151933AF50594A8", + "MayanFacet": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", "StargateFacetV2": "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "LiFiDEXAggregator": "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", diff --git a/deployments/bsc.diamond.json b/deployments/bsc.diamond.json index 90bd9baef..6c390dd1e 100644 --- a/deployments/bsc.diamond.json +++ b/deployments/bsc.diamond.json @@ -85,9 +85,9 @@ "Name": "CalldataVerificationFacet", "Version": "1.1.1" }, - "0x9558CacEAC173Bdf32fb4cd7067e9e3c3b4c155e": { - "Name": "", - "Version": "" + "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803": { + "Name": "DeBridgeDlnFacet", + "Version": "1.0.0" }, "0x376f99f7EADE8A17f036fCff9eBA978E66e5fd28": { "Name": "ThorSwapFacet", @@ -105,9 +105,9 @@ "Name": "SquidFacet", "Version": "1.0.0" }, - "0x4682d79DD4D0e7555415841b5151933AF50594A8": { + "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324": { "Name": "MayanFacet", - "Version": "1.0.0" + "Version": "1.1.0" }, "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F": { "Name": "GenericSwapFacetV3", @@ -122,23 +122,26 @@ "Version": "1.0.0" }, "0xF5c923a087fb3c554579e2DD10AB6E37E0f6F849": { - "Name": "", - "Version": "" + "Name": "GasZipFacet", + "Version": "2.0.0" + }, + "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5": { + "Name": "RelayFacet", + "Version": "1.0.0" } }, "Periphery": { "ERC20Proxy": "0x5741A7FfE7c39Ca175546a54985fA79211290b51", "Executor": "0x2dfaDAB8266483beD9Fd9A292Ce56596a2D1378D", "FeeCollector": "0xbD6C7B0d2f68c2b7805d88388319cfB6EcB50eA9", + "GasZipPeriphery": "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "LiFiDEXAggregator": "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "LiFuelFeeCollector": "0xc02FFcdD914DbA646704439c6090BAbaD521d04C", "Permit2Proxy": "0x6307119078556Fc8aD77781DFC67df20d75FB4f9", - "Receiver": "0x050e198E36A73a1e32F15C3afC58C4506d82f657", "ReceiverAcrossV3": "", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "RelayerCelerIM": "0x6a8b11bF29C0546991DEcD6E0Db8cC7Fda22bA97", - "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", - "GasZipPeriphery": "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3" + "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d" } } } \ No newline at end of file diff --git a/deployments/bsc.json b/deployments/bsc.json index 567495461..c2081fc73 100644 --- a/deployments/bsc.json +++ b/deployments/bsc.json @@ -41,7 +41,7 @@ "SymbiosisFacet": "0xe12b2488c71432F9a116E9ac244D3Ef4c2386d3a", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", "SquidFacet": "0x5C2C3F56e33F45389aa4e1DA4D3a807A532a910c", - "MayanFacet": "0x4682d79DD4D0e7555415841b5151933AF50594A8", + "MayanFacet": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", "GenericSwapFacetV3": "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "StargateFacetV2": "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61", diff --git a/deployments/mainnet.diamond.json b/deployments/mainnet.diamond.json index 02a1006a8..4c35c709b 100644 --- a/deployments/mainnet.diamond.json +++ b/deployments/mainnet.diamond.json @@ -149,9 +149,9 @@ "Name": "SquidFacet", "Version": "1.0.0" }, - "0x4682d79DD4D0e7555415841b5151933AF50594A8": { + "0x6ADA8e557E1571c56D004D28006cD609e8837C58": { "Name": "MayanFacet", - "Version": "1.0.0" + "Version": "1.1.0" }, "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61": { "Name": "StargateFacetV2", @@ -187,7 +187,6 @@ "LiFuelFeeCollector": "0xc02FFcdD914DbA646704439c6090BAbaD521d04C", "Permit2Proxy": "0x6307119078556Fc8aD77781DFC67df20d75FB4f9", "ReceiverAcrossV3": "0xca6e6B692F568055adA0bF72A06D1EBbC938Fb23", - "Receiver": "0x050e198E36A73a1e32F15C3afC58C4506d82f657", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "RelayerCelerIM": "0x6a8b11bF29C0546991DEcD6E0Db8cC7Fda22bA97", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d" diff --git a/deployments/mainnet.json b/deployments/mainnet.json index 4ab58174e..cf627641d 100644 --- a/deployments/mainnet.json +++ b/deployments/mainnet.json @@ -51,7 +51,7 @@ "SymbiosisFacet": "0xe12b2488c71432F9a116E9ac244D3Ef4c2386d3a", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", "SquidFacet": "0x5C2C3F56e33F45389aa4e1DA4D3a807A532a910c", - "MayanFacet": "0x4682d79DD4D0e7555415841b5151933AF50594A8", + "MayanFacet": "0x6ADA8e557E1571c56D004D28006cD609e8837C58", "GenericSwapFacetV3": "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F", "StargateFacetV2": "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", @@ -65,4 +65,4 @@ "Permit2Proxy": "0x6307119078556Fc8aD77781DFC67df20d75FB4f9", "RelayFacet": "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5", "DeBridgeDlnFacet": "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803" -} +} \ No newline at end of file diff --git a/deployments/optimism.diamond.json b/deployments/optimism.diamond.json index d38cb0c53..f12194e36 100644 --- a/deployments/optimism.diamond.json +++ b/deployments/optimism.diamond.json @@ -85,9 +85,9 @@ "Name": "GenericSwapFacetV3", "Version": "1.0.0" }, - "0x4682d79DD4D0e7555415841b5151933AF50594A8": { + "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324": { "Name": "MayanFacet", - "Version": "1.0.0" + "Version": "1.1.0" }, "0xE7Bf43C55551B1036e796E7Fd3b125d1F9903e2E": { "Name": "CBridgeFacetPacked", @@ -105,9 +105,9 @@ "Name": "CelerCircleBridgeFacet", "Version": "1.0.1" }, - "0xF965f52046D7095d5080bD31459601F4Eb24f72D": { - "Name": "", - "Version": "" + "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5": { + "Name": "RelayFacet", + "Version": "1.0.0" }, "0x71205D77043848B57243A3F7eA133E11A3dd346b": { "Name": "AllBridgeFacet", @@ -137,9 +137,9 @@ "Name": "AcrossFacetPackedV3", "Version": "1.2.0" }, - "0x00990C0FfBB7eAB014351652aFB65AaE00db43A4": { - "Name": "", - "Version": "" + "0x5052fc5c7486162deDf7458E1f7c6ABaFbcd6895": { + "Name": "AcrossFacetV3", + "Version": "1.1.0" }, "0x6F2baA7cd5F156CA1B132F7FF11E0fa2aD775F61": { "Name": "EmergencyPauseFacet", @@ -149,17 +149,9 @@ "Name": "GasZipFacet", "Version": "2.0.0" }, - "0x6e00e0a7685Ca22c288d56D9E7924746B5043Ee7": { - "Name": "AcrossFacetV3", - "Version": "1.0.0" - }, - "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5": { - "Name": "RelayFacet", + "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803": { + "Name": "DeBridgeDlnFacet", "Version": "1.0.0" - }, - "0x5052fc5c7486162deDf7458E1f7c6ABaFbcd6895": { - "Name": "AcrossFacetV3", - "Version": "1.1.0" } }, "Periphery": { @@ -171,7 +163,6 @@ "LiFuelFeeCollector": "0xc02FFcdD914DbA646704439c6090BAbaD521d04C", "Permit2Proxy": "0x6307119078556Fc8aD77781DFC67df20d75FB4f9", "ReceiverAcrossV3": "0xca6e6B692F568055adA0bF72A06D1EBbC938Fb23", - "Receiver": "0x050e198E36A73a1e32F15C3afC58C4506d82f657", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "RelayerCelerIM": "0x6a8b11bF29C0546991DEcD6E0Db8cC7Fda22bA97", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d" diff --git a/deployments/optimism.json b/deployments/optimism.json index 7d8c58b33..1f2a9ea7f 100644 --- a/deployments/optimism.json +++ b/deployments/optimism.json @@ -42,7 +42,7 @@ "SymbiosisFacet": "0xe12b2488c71432F9a116E9ac244D3Ef4c2386d3a", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", "SquidFacet": "0x5C2C3F56e33F45389aa4e1DA4D3a807A532a910c", - "MayanFacet": "0x4682d79DD4D0e7555415841b5151933AF50594A8", + "MayanFacet": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", "GenericSwapFacetV3": "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F", "StargateFacetV2": "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", @@ -56,4 +56,4 @@ "GasZipPeriphery": "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "RelayFacet": "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5", "DeBridgeDlnFacet": "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803" -} +} \ No newline at end of file diff --git a/deployments/polygon.diamond.json b/deployments/polygon.diamond.json index 187afe530..82bc0bc4c 100644 --- a/deployments/polygon.diamond.json +++ b/deployments/polygon.diamond.json @@ -121,9 +121,9 @@ "Name": "SquidFacet", "Version": "1.0.0" }, - "0x4682d79DD4D0e7555415841b5151933AF50594A8": { + "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324": { "Name": "MayanFacet", - "Version": "1.0.0" + "Version": "1.1.0" }, "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F": { "Name": "GenericSwapFacetV3", @@ -156,6 +156,10 @@ "0x5052fc5c7486162deDf7458E1f7c6ABaFbcd6895": { "Name": "AcrossFacetV3", "Version": "1.1.0" + }, + "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803": { + "Name": "DeBridgeDlnFacet", + "Version": "1.0.0" } }, "Periphery": { @@ -167,7 +171,6 @@ "LiFuelFeeCollector": "0xc02FFcdD914DbA646704439c6090BAbaD521d04C", "Permit2Proxy": "0x6307119078556Fc8aD77781DFC67df20d75FB4f9", "ReceiverAcrossV3": "0xca6e6B692F568055adA0bF72A06D1EBbC938Fb23", - "Receiver": "0x050e198E36A73a1e32F15C3afC58C4506d82f657", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", "RelayerCelerIM": "0x6a8b11bF29C0546991DEcD6E0Db8cC7Fda22bA97", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d" diff --git a/deployments/polygon.json b/deployments/polygon.json index 5d12b4353..01e27cc81 100644 --- a/deployments/polygon.json +++ b/deployments/polygon.json @@ -46,7 +46,7 @@ "SymbiosisFacet": "0xe12b2488c71432F9a116E9ac244D3Ef4c2386d3a", "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", "SquidFacet": "0x5C2C3F56e33F45389aa4e1DA4D3a807A532a910c", - "MayanFacet": "0x4682d79DD4D0e7555415841b5151933AF50594A8", + "MayanFacet": "0x6F6d8c854417F00dcB0C698B6f0724b9FCe02324", "GenericSwapFacetV3": "0x31a9b1835864706Af10103b31Ea2b79bdb995F5F", "StargateFacetV2": "0x6e378C84e657C57b2a8d183CFf30ee5CC8989b61", "ReceiverStargateV2": "0x1493e7B8d4DfADe0a178dAD9335470337A3a219A", diff --git a/src/Facets/MayanFacet.sol b/src/Facets/MayanFacet.sol index ab312bda9..d21dac2a5 100644 --- a/src/Facets/MayanFacet.sol +++ b/src/Facets/MayanFacet.sol @@ -2,7 +2,6 @@ pragma solidity ^0.8.17; import { ILiFi } from "../Interfaces/ILiFi.sol"; -import { LibDiamond } from "../Libraries/LibDiamond.sol"; import { LibAsset, IERC20 } from "../Libraries/LibAsset.sol"; import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import { LibSwap } from "../Libraries/LibSwap.sol"; @@ -10,12 +9,11 @@ import { ReentrancyGuard } from "../Helpers/ReentrancyGuard.sol"; import { SwapperV2 } from "../Helpers/SwapperV2.sol"; import { Validatable } from "../Helpers/Validatable.sol"; import { IMayan } from "../Interfaces/IMayan.sol"; -import { UnsupportedChainId } from "../Errors/GenericErrors.sol"; /// @title Mayan Facet /// @author LI.FI (https://li.fi) /// @notice Provides functionality for bridging through Mayan Bridge -/// @custom:version 1.0.0 +/// @custom:version 1.1.0 contract MayanFacet is ILiFi, ReentrancyGuard, SwapperV2, Validatable { /// Storage /// @@ -244,6 +242,18 @@ contract MayanFacet is ILiFi, ReentrancyGuard, SwapperV2, Validatable { // 0x8e8d142b createOrderWithToken(address,uint256,(bytes32,bytes32,uint64,uint64,uint64,uint64,uint64,[*bytes32*],uint16,bytes32,uint8,uint8,bytes32)) receiver := mload(add(protocolData, 0x144)) // MayanSwift::createOrderWithToken() } + case 0x1c59b7fc { + // 0x1c59b7fc MayanCircle::createOrder((address,uint256,uint64,bytes32,uint16,bytes32,uint64,uint64,uint64,bytes32,uint8)) + receiver := mload(add(protocolData, 0x84)) + } + case 0x9be95bb4 { + // 0x9be95bb4 MayanCircle::bridgeWithLockedFee(address,uint256,uint64,uint256,uint32,bytes32) + receiver := mload(add(protocolData, 0xc4)) + } + case 0x2072197f { + // 0x2072197f MayanCircle::bridgeWithFee(address,uint256,uint64,uint64,bytes32,uint32,uint8,bytes) + receiver := mload(add(protocolData, 0xa4)) + } default { receiver := 0x0 } diff --git a/test/solidity/Facets/MayanFacet.t.sol b/test/solidity/Facets/MayanFacet.t.sol index e30d67897..0e99012a1 100644 --- a/test/solidity/Facets/MayanFacet.t.sol +++ b/test/solidity/Facets/MayanFacet.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Unlicense pragma solidity ^0.8.17; -import { LibAllowList, TestBaseFacet, console, ERC20, LibSwap, LibAsset } from "../utils/TestBaseFacet.sol"; +import { LibAllowList, TestBaseFacet, LibSwap, LibAsset } from "../utils/TestBaseFacet.sol"; import { MayanFacet } from "lifi/Facets/MayanFacet.sol"; import { IMayan } from "lifi/Interfaces/IMayan.sol"; import { ILiFi } from "lifi/Interfaces/ILiFi.sol"; @@ -19,19 +19,44 @@ contract TestMayanFacet is MayanFacet { } } +/// @notice This contract exposes _parseReceiver for testing purposes. +contract TestMayanFacetExposed is MayanFacet { + constructor(IMayan _mayan) MayanFacet(_mayan) {} + + /// @dev Exposes the internal _parseReceiver function. + function testParseReceiver( + bytes memory protocolData + ) public pure returns (bytes32) { + return _parseReceiver(protocolData); + } +} + contract MayanFacetTest is TestBaseFacet { MayanFacet.MayanData internal validMayanData; MayanFacet.MayanData internal validMayanDataNative; MayanFacet.MayanData internal invalidMayanDataEVM2Solana; TestMayanFacet internal mayanBridgeFacet; - IMayan internal MAYAN_FORWARDER = + IMayan internal constant MAYAN_FORWARDER = IMayan(0x0654874eb7F59C6f5b39931FC45dC45337c967c3); - address internal POLYGON_USDT = 0xc2132D05D31c914a87C6611C10748AEb04B58e8F; - address DEV_WALLET = 0x29DaCdF7cCaDf4eE67c923b4C22255A4B2494eD7; - - bytes32 ACTUAL_SOL_ADDR = + address internal constant POLYGON_USDT = + 0xc2132D05D31c914a87C6611C10748AEb04B58e8F; + address internal constant DEV_WALLET = + 0x29DaCdF7cCaDf4eE67c923b4C22255A4B2494eD7; + address internal constant NON_EVM_ADDRESS = + 0x11f111f111f111F111f111f111F111f111f111F1; + + bytes32 internal constant ACTUAL_SOL_ADDR = hex"4cb7c5f1632114c376c0e7a9a1fd1fbd562699fbd9a0c9f4f26ba8cf6e23df0d"; // [pre-commit-checker: not a secret] - bytes32 EXPECTED_SOL_ADDR = bytes32("EXPECTED ADDRESS"); + bytes32 internal constant EXPECTED_SOL_ADDR = bytes32("EXPECTED ADDRESS"); + + error InvalidReceiver(address expected, address actual); + error InvalidNonEVMReceiver(bytes32 expected, bytes32 actual); + + event BridgeToNonEVMChain( + bytes32 indexed transactionId, + uint256 indexed destinationChainId, + bytes32 receiver + ); function setUp() public { customBlockNumberForForking = 19968172; @@ -286,8 +311,8 @@ contract MayanFacetTest is TestBaseFacet { super.testBase_CanBridgeTokens_fuzzed(amount); } - function test_RevertsIfNonEVMReceiverIsIncorrect() public { - bridgeData.receiver = 0x11f111f111f111F111f111f111F111f111f111F1; + function testRevert_FailsIfNonEVMReceiverIsIncorrect() public { + bridgeData.receiver = NON_EVM_ADDRESS; validMayanData = invalidMayanDataEVM2Solana; vm.startPrank(USER_SENDER); @@ -383,4 +408,141 @@ contract MayanFacetTest is TestBaseFacet { defaultNativeAmount += 0.123456789 ether; testBase_CanSwapAndBridgeNativeTokens(); } + + function test_CanBridgeNativeTokens() public { + vm.startPrank(USER_SENDER); + // store initial balances + uint256 initialBalance = USER_SENDER.balance; + + // prepare bridgeData + bridgeData.receiver = NON_EVM_ADDRESS; + bridgeData.sendingAssetId = address(0); + bridgeData.minAmount = 1 ether; + + validMayanDataNative = MayanFacet.MayanData( + bytes32( + 0x0000000000000000000000000000000000000000000000000000000abc654321 + ), + 0xBF5f3f65102aE745A48BD521d10BaB5BF02A9eF4, // mayanProtocol address + // Calldata generated from Mayan SDK 1 ETH -> USDT on Polygon + hex"1eb1cff00000000000000000000000000000000000000000000000000000000000013e0b0000000000000000000000000000000000000000000000000000000000004df200000000000000000000000000000000000000000000000000000000000a42dfcb617b639c537bd08846f61be4481c34f9391f1b8f53d082de024e232508113e00000000000000000000000000000000000000000000000000000000000000016dfa43f824c3b8b61e715fe8bf447f2aba63e59ab537f186cf665152c2114c390000000000000000000000000000000000000000000000000000000abC654321000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000abC654321000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000006655d880000000000000000000000000000000000000000000000000000000006655d88000000000000000000000000000000000000000000000000000000000e16ffab40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000" + ); + + vm.expectEmit(true, true, true, true, _facetTestContractAddress); + emit BridgeToNonEVMChain( + bridgeData.transactionId, + bridgeData.destinationChainId, + validMayanDataNative.nonEVMReceiver + ); + + // execute call in child contract + initiateBridgeTxWithFacet(true); + + // check balances after call + assertEq(USER_SENDER.balance, initialBalance - 1 ether); + } + + function testRevert_FailsWhenNonEVMChainIntentionAndNonEVMReceiverIsEmpty() + public + { + vm.startPrank(USER_SENDER); + + usdc.approve(_facetTestContractAddress, type(uint256).max); + + bridgeData.receiver = NON_EVM_ADDRESS; // nonEVMAddress + + vm.expectRevert( + abi.encodeWithSelector( + InvalidNonEVMReceiver.selector, + bytes32(0), + bytes32(0) + ) + ); + + initiateBridgeTxWithFacet(false); + + vm.stopPrank(); + } + + function testRevert_FailsWhenBridgeDataReceiverDoesNotMatchMayanProtocolReceiver() + public + { + vm.startPrank(USER_SENDER); + + usdc.approve(_facetTestContractAddress, type(uint256).max); + + bridgeData.receiver = DEV_WALLET; + + validMayanData = MayanFacet.MayanData( + "", + 0xBF5f3f65102aE745A48BD521d10BaB5BF02A9eF4, // mayanProtocol address + // Calldata generated from Mayan SDK 4.12312312 USDC on Mainnet -> Arbitrum + hex"6222ad25000000000000000000000000000000000000000000000000000000000f52ae0e000000000000000000000000000000000000000000000000000000000000f2d000000000000000000000000000000000000000000000000000000000018eb30afc7fcf68097cd0584877939477347b5b8fa10efee2e29805370a35fd2a22ee9500000000000000000000000000000000000000000000000000000000000000016dfa43f824c3b8b61e715fe8bf447f2aba63e59ab537f186cf665152c2114c3900000000000000000000000029dacdf7ccadf4ee67c923b4c22255a4b2494ed700000000000000000000000000000000000000000000000000000000000000171e8c4fab8994494c8f1e5c1287445b2917d60c43c79aa959162f5d6000598d3200000000000000000000000029dacdf7ccadf4ee67c923b4c22255a4b2494ed7000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000001e00000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d000000000000000000000000000000000000000000000000393846a1e4cce00000000000000000000000000000000000000000000000000000000000667d7a7a00000000000000000000000000000000000000000000000000000000667d7a7a0000000000000000000000000000000000000000000000000000000000177f850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000" + ); + // invalid protocolData that produces wrong receiver for payload + + vm.expectRevert( + abi.encodeWithSelector( + InvalidReceiver.selector, + DEV_WALLET, + address(0) + ) + ); + + initiateBridgeTxWithFacet(false); + + vm.stopPrank(); + } + + function test_ParseReceiver() public { + TestMayanFacetExposed testFacet = new TestMayanFacetExposed( + IMayan(address(0)) + ); + + address expectedReceiver = 0x1eB6638dE8c571c787D7bC24F98bFA735425731C; + + // test for 0x94454a5d bridgeWithFee(address,uint256,uint64,uint64,[*bytes32*],(uint32,bytes32,bytes32)) + // test for 0x32ad465f bridgeWithLockedFee(address,uint256,uint64,uint256,(uint32,[*bytes32*],bytes32)) + // test for 0xafd9b706 createOrder((address,uint256,uint64,[*bytes32*],uint16,bytes32,uint64,uint64,uint64,bytes32,uint8),(uint32,bytes32,bytes32)) + // test for 0x6111ad25 swap((uint64,uint64,uint64),(bytes32,uint16,bytes32,[*bytes32*],uint16,bytes32,bytes32),bytes32,uint16,(uint256,uint64,uint64,bool,uint64,bytes),address,uint256) + // test for 0x1eb1cff0 wrapAndSwapETH((uint64,uint64,uint64),(bytes32,uint16,bytes32,[*bytes32*],uint16,bytes32,bytes32),bytes32,uint16,(uint256,uint64,uint64,bool,uint64,bytes)) + // test for 0xb866e173 createOrderWithEth((bytes32,bytes32,uint64,uint64,uint64,uint64,uint64,[*bytes32*],uint16,bytes32,uint8,uint8,bytes32)) + // test for 0x8e8d142b createOrderWithToken(address,uint256,(bytes32,bytes32,uint64,uint64,uint64,uint64,uint64,[*bytes32*],uint16,bytes32,uint8,uint8,bytes32)) + + // test for 0x1c59b7fc MayanCircle::createOrder((address,uint256,uint64,bytes32,uint16,bytes32,uint64,uint64,uint64,bytes32,uint8)) + // example tenderly: https://dashboard.tenderly.co/tx/arbitrum/0x3bffa9aa20062cd21e0f4d40333214ce23e382d308180fc20ddd6c405bff2649/debugger?trace=0.3.0 + bytes memory protocolData = vm.parseBytes( + "0x1c59b7fc000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e583100000000000000000000000000000000000000000000000000000000004c4b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001eb6638de8c571c787d7bc24f98bfa735425731c000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023e290000000000000000000000000000000000000000000000000000000067c1b1f500000000000000000000000000000000000000000000000000000000001c497b000000000000000000000000a5aa6e2171b416e1d27ec53ca8c13db3f91a89cd0000000000000000000000000000000000000000000000000000000000000000" + ); + bytes32 receiver = testFacet.testParseReceiver(protocolData); + assertEq( + address(uint160(uint256(receiver))), + expectedReceiver, + "parse receiver test failure for 0x1c59b7fc MayanCircle::createOrder((address,uint256,uint64,bytes32,uint16,bytes32,uint64,uint64,uint64,bytes32,uint8))" + ); + + // test for 0x9be95bb4 MayanCircle::bridgeWithLockedFee(address,uint256,uint64,uint256,uint32,bytes32) + // example tenderly: https://dashboard.tenderly.co/tx/arbitrum/0x8ad553f8059efcb7fd84130e5625e4b2fdc3ea34461227e1e4a983053e12790c/debugger?trace=0.3 + protocolData = vm.parseBytes( + "0x9be95bb4000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e583100000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df8e600000000000000000000000000000000000000000000000000000000000000000000000000000000000000001eb6638de8c571c787d7bc24f98bfa735425731c" + ); + receiver = testFacet.testParseReceiver(protocolData); + assertEq( + address(uint160(uint256(receiver))), + expectedReceiver, + "parse receiver test failure for 0x9be95bb4 MayanCircle::bridgeWithLockedFee(address,uint256,uint64,uint256,uint32,bytes32)" + ); + + // test for 0x2072197f MayanCircle::bridgeWithFee(address,uint256,uint64,uint64,bytes32,uint32,uint8,bytes) + // example tenderly: https://dashboard.tenderly.co/tx/arbitrum/0xa12ac33dcc79c4185a484095764772f8169fee8228c614892843e2f8df685a98/debugger?trace=0 + protocolData = vm.parseBytes( + "0x2072197f000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e583100000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000b4400000000000000000000000000000000000000000000000000000000000000000000000000000000000000001eb6638de8c571c787d7bc24f98bfa735425731c0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000" + ); + receiver = testFacet.testParseReceiver(protocolData); + assertEq( + address(uint160(uint256(receiver))), + expectedReceiver, + "parse receiver test failure for 0x2072197f MayanCircle::bridgeWithFee(address,uint256,uint64,uint64,bytes32,uint32,uint8,bytes)" + ); + } }