From 5f9384042004a966c93eba042f494a3e6c8b2dd7 Mon Sep 17 00:00:00 2001 From: Makoto Inoue <2630+makoto@users.noreply.github.com> Date: Fri, 2 Feb 2024 16:33:07 +0000 Subject: [PATCH] Sepolia resolvers with analytics (#30) * WIP * Fix errors * Ignore favicon * Update bun.lockb * Fix lint error * Update gateway url * Add console.log * Changed endpoint * Update apiEndpoint * Add sender and calldata to props * Move Tracker to evm-gateway * Revert "Move Tracker to evm-gateway" This reverts commit 5d3ba373c43b84e05ce98d6b517db98b9d767cf1. * WIP * Downgrade to 4.20231121.0 * Bump it to the latest * Add type * Replace tracker with @ensdomains/server-analytics * Pass custom apiEndpoint and props * Add GATEWAY_DOMAIN and ENDPOINT_URL * Point to correct branch * Fix CORS problem * Add gateway log tracker to OP * Fix lint error * Update readme --- arb-gateway/README.md | 7 +- arb-gateway/package.json | 3 +- arb-gateway/src/worker.ts | 79 ++++++++++++++++++++-- arb-gateway/wrangler.toml | 4 +- arb-verifier/hardhat.config.ts | 2 + arb-verifier/test/testArbVerifier.ts | 8 ++- bun.lockb | Bin 575304 -> 640112 bytes crosschain-resolver/package.json | 2 +- crosschain-reverse-resolver/package.json | 2 +- evm-gateway/package.json | 1 + evm-gateway/src/utils.ts | 4 +- l1-gateway/src/worker.ts | 3 +- op-gateway/README.md | 11 +-- op-gateway/src/worker.ts | 82 +++++++++++++++++++++-- op-gateway/wrangler.toml | 5 +- tsconfig.json | 1 - 16 files changed, 184 insertions(+), 30 deletions(-) diff --git a/arb-gateway/README.md b/arb-gateway/README.md index b2b1a44d..e580afeb 100644 --- a/arb-gateway/README.md +++ b/arb-gateway/README.md @@ -24,9 +24,10 @@ cd arb-gateway npm install -g wrangler wrngler login -wrangler secret put L1_PROVIDER_URL -wrangler secret put L2_PROVIDER_URL -wrangler secret put L2_ROLLUP +wrangler secret put L1_PROVIDER_URL --env sepolia +wrangler secret put L2_PROVIDER_URL --env sepolia +wrangler secret put L2_ROLLUP --env sepolia +wrangler secret put ENDPOINT_URL --env sepolia yarn deploy --env sepolia ``` diff --git a/arb-gateway/package.json b/arb-gateway/package.json index b61ec7fa..3db4f8ee 100644 --- a/arb-gateway/package.json +++ b/arb-gateway/package.json @@ -57,7 +57,9 @@ }, "dependencies": { "@chainlink/ccip-read-server": "^0.2.1", + "@cloudflare/workers-types": "^4.20240117.0", "@ensdomains/evm-gateway": "^0.1.0", + "@ensdomains/server-analytics": "0.0.1-alpha.2", "@ethereumjs/block": "^5.0.0", "@nomicfoundation/ethereumjs-block": "^5.0.2", "commander": "^11.0.0", @@ -65,6 +67,5 @@ }, "devDependencies": { "@commander-js/extra-typings": "^11.0.0" - } } diff --git a/arb-gateway/src/worker.ts b/arb-gateway/src/worker.ts index 40b9f348..46287d00 100644 --- a/arb-gateway/src/worker.ts +++ b/arb-gateway/src/worker.ts @@ -1,14 +1,49 @@ +import { Request as CFWRequest } from '@cloudflare/workers-types'; import { Server } from '@ensdomains/ccip-read-cf-worker'; import type { Router } from '@ensdomains/evm-gateway'; import { InMemoryBlockCache } from './blockCache/InMemoryBlockCache.js'; +import { Tracker } from '@ensdomains/server-analytics'; interface Env { L1_PROVIDER_URL: string; L2_PROVIDER_URL: string; L2_ROLLUP: string; + GATEWAY_DOMAIN: string; + ENDPOINT_URL: string; } +interface LogResult { + (request: CFWRequest, result: Response): Promise; +} + +let app: Router, logResult: LogResult; + +const decodeUrl = (url: string) => { + const trackingData = url.match( + /\/0x[a-fA-F0-9]{40}\/0x[a-fA-F0-9]{1,}\.json/ + ); + if (trackingData) { + return { + sender: trackingData[0].slice(1, 42), + calldata: trackingData[0].slice(44).replace('.json', ''), + }; + } else { + return {}; + } +}; + +async function fetch(request: CFWRequest, env: Env) { + // Set PROVIDER_URL under .dev.vars locally. Set the key as secret remotely with `wrangler secret put WORKER_PROVIDER_URL` + const { + L1_PROVIDER_URL, + L2_PROVIDER_URL, + L2_ROLLUP, + GATEWAY_DOMAIN, + ENDPOINT_URL, + } = env; + const tracker = new Tracker(GATEWAY_DOMAIN, { + apiEndpoint: ENDPOINT_URL, + enableLogging: true, + }); -let app: Router; -async function fetch(request: Request, env: Env) { // Loading libraries dynamically as a temp work around. // Otherwise, deployment thorws "Error: Script startup exceeded CPU time limit." error if (!app) { @@ -17,13 +52,37 @@ async function fetch(request: Request, env: Env) { const EVMGateway = (await import('@ensdomains/evm-gateway')).EVMGateway; const ArbProofService = (await import('./ArbProofService.js')) .ArbProofService; - // Set PROVIDER_URL under .dev.vars locally. Set the key as secret remotely with `wrangler secret put WORKER_PROVIDER_URL` - const { L1_PROVIDER_URL, L2_PROVIDER_URL, L2_ROLLUP } = env; const l1Provider = new ethers.JsonRpcProvider(L1_PROVIDER_URL); const l2Provider = new ethers.JsonRpcProvider(L2_PROVIDER_URL); - console.log({ L1_PROVIDER_URL, L2_PROVIDER_URL }); + logResult = async ( + request: CFWRequest, + result: Response + ): Promise => { + if (request.url.match(/favicon/)) { + return result; + } + if (!result.body) { + return result; + } + const [streamForLog, streamForResult] = result.body.tee(); + const logResultData = ( + await new Response(streamForLog).json() + ).data.substring(0, 200); + const props = decodeUrl(request.url); + await tracker.trackEvent( + request, + 'result', + { props: { ...props, result: logResultData } }, + true + ); + const myHeaders = new Headers(); + myHeaders.set('Access-Control-Allow-Origin', '*'); + myHeaders.set('Access-Control-Allow-Methods', 'GET,HEAD,POST,OPTIONS'); + myHeaders.set('Access-Control-Max-Age', '86400'); + return new Response(streamForResult, { ...result, headers: myHeaders }); + }; const gateway = new EVMGateway( new ArbProofService( l1Provider, @@ -37,7 +96,15 @@ async function fetch(request: Request, env: Env) { gateway.add(server); app = server.makeApp('/'); } - return app.handle(request); + + const props = decodeUrl(request.url); + await tracker.trackEvent( + request, + 'request', + { props: { ...props, ...{} } }, + true + ); + return app.handle(request).then(logResult.bind(null, request)); } export default { diff --git a/arb-gateway/wrangler.toml b/arb-gateway/wrangler.toml index 00e1d010..47885357 100644 --- a/arb-gateway/wrangler.toml +++ b/arb-gateway/wrangler.toml @@ -2,7 +2,7 @@ name = "arb-gateway-worker" account_id = "15dcc9085cb794bb4f29d3e8177ac880" main = "./src/worker.ts" node_compat = true -compatibility_date = "2023-10-13" +compatibility_date = "2024-01-25" [dev] @@ -13,3 +13,5 @@ command = "yarn build" [env.sepolia] name = "arb-sepolia-gateway-worker" +[env.sepolia.vars] +GATEWAY_DOMAIN="arb-sepolia-gateway-worker.ens-cf.workers.dev" \ No newline at end of file diff --git a/arb-verifier/hardhat.config.ts b/arb-verifier/hardhat.config.ts index 000a54e2..3da3d073 100644 --- a/arb-verifier/hardhat.config.ts +++ b/arb-verifier/hardhat.config.ts @@ -42,6 +42,7 @@ const config: HardhatUserConfig = { url: L1_PROVIDER_URL, accounts: [DEPLOYER_PRIVATE_KEY], deploy: ['deploy_l1/'], + chainId:11155111, companionNetworks: { l2: 'arbitrumSepolia', }, @@ -52,6 +53,7 @@ const config: HardhatUserConfig = { deploy: ['deploy_l2/'], }, arbitrumSepolia: { + chainId: 421614, url: 'https://sepolia-rollup.arbitrum.io/rpc', accounts: [DEPLOYER_PRIVATE_KEY], deploy: [ "deploy_l2/" ], diff --git a/arb-verifier/test/testArbVerifier.ts b/arb-verifier/test/testArbVerifier.ts index 4729498b..bdf92c15 100644 --- a/arb-verifier/test/testArbVerifier.ts +++ b/arb-verifier/test/testArbVerifier.ts @@ -46,12 +46,14 @@ describe('ArbVerifier', () => { const rollupAddress = process.env.ROLLUP_ADDRESS; // When testing against Goerli, replace with this address // const rollupAddress = '0x45e5cAea8768F42B385A366D3551Ad1e0cbFAb17'; - + const chainId = hre.network.config.chainId + console.log(hre.network.config) + console.log({chainId}) const gateway = await makeArbGateway( - (hre.network.config as any).url, + (hre.network.config as any).url, (hre.config.networks[hre.network.companionNetworks.l2] as any).url, rollupAddress, - 5, + chainId, ); const server = new Server() gateway.add(server) diff --git a/bun.lockb b/bun.lockb index 992cb21a26f050c9382dcc378277c8e28b2ca8c5..9f7d0e38aa65d278676ee1ecbf8831281553bb24 100755 GIT binary patch delta 173445 zcmb?^2Y6If+wGZ24$MJ%ml`?*1B5mMfuTr8dheu6l1Z;XXcMFe2nZZ>=%7f8poAt( zKm-H}Hk2j`C<;MP1O#l{wf5d8M1H^T`R{%1JPvEGclUR{``zW7i6<7+`ek;#g^hx* z@7way+s%rs2%39u-oRyDe(mD@cuv~8M)~g!mi_AGyLWnDde6}Ku@_o2w3=_?FS=ll z|EX`+v{IUu?a7Gsq@`=xVkD>tUKdy%*ga6w$^j1sNcm!g5lM~WkX*|FFN^rONcS}G z7I+z8C^*ZBOAkqp4R5A-Aus2HU;qLv_){b(4Qv5k4Ok8s1k6Uol(zv^2Hr!uO2F9g z^jKE;)KjtoZxR~p%}DnoBzRLYypdNSX9K_Fiu0uR~Jf3R7XGKX(Ly_4x z6)q~N`LrSsM0g@&n>E$6uTT&(1OVCNw=optM?jd)fm(^ZfsD^cYu=ItN5+PGiOoo$c*+Tqa%juux~jmjV*a(lNF?-c``D*p0wD^^!O|!ybd`V;z>{NCS_pO)RgHS z)Q~ts@mq>Ft0fzp;2D=hjWqyg!wV@a2}B>|Pwyq)8fAqiCTQVlF)86`=^j7iOy^AxiAhL~&`#Eq`R75-4tisflG8kzHXWSx zFj07dFI~G+UkWCugwfulsF2JQZFd8i@ePG3AqmNm;Tf=?1aG1@Lwh4w#>XNbhp0_M zSz($tF)ch=(?lzvf!mNXJ~=58)oa@LwD6P^sMeblo#6Gw#Af_}1Z-ivCuvAM1^T4QbwV&jdDoUZ`xy z7)(_fEvH!sT8-(K5Rdp;&EyckF@>Psx3`xCqDaUjda@t6Xo>E>5h=Q^+ zvQoT}@cHM#soI$5WQVo_=@&)<*|1L$&#{+A>-(QpYfX>;WWA+P0QU!0g>(8y8=3-S z#a0E0@z71mV?Pj`9^#phkrv*mpG+5*o}3iz^Coy&LBN(>MbBux8R;QOm<*a_6Iq0l_`8~j?0LyW@z&Qc~N6B_|2eLou$qA8ck9)LiM@AyFfzNSp znvi9?4Z+KRR|isomZFp+^=a`5;p3T6XbcJ~uL^Jg*>S6&G!LpA=h4h?*^spG@gWh( zQCXQuDPHaas$gnTaqEDrs1%S54MQ`@(=);|GSjiy0cW{Uo|Gs}Gk5Eyeb4Jdp|BOfND<#mNeOLqA!e<%_R?bGjsjCnbB)Xv@c2 z4&n^r*^yBRGF>bT;0mH{(h7tR2g{-nZah2G?l4C*F2MPgl9jxXC1SSz%(GFvP4lPfgx zW0{0PQ2;Bdgdt(Y6M@u`wJRH*DV5$2$OflG#79NLIbxeGw)ADOTp8G^X3rA=ExQX6 zQfbL3h?p4FLL@8(GbL}U3W`W?ffYy7BEr)>ArmyMG30E>PK1d$KsF>IAw1rL9d>oZ zmjt(Fera%8+efgzqHtCDEw=WNSFlDffwg_yJ5d%8pj7WkO3n19dD5&QiS&kG+mWnA zBv0@pp4{?@ z4}$!{FuCxSm@9|s@LaU01|qgVzzNk+6|fu$Yl26nMTYPUV`YfMm_x(bVWelinyO%P zzT7fcM~L5%A3IQSER0G|&iB`)F9<~LR2L`_)E35%D%w9z+cbx2(%1i>XDcB$;k5AIHiA!ZwH<=RhD???K zuWIQ+Q&O2fo8& zomKwR8RhJ1na|o_hjV)eC#;1>M5KAfY1(IKXDJk%!c8bX?}KyNyraNly zP?(y|)S8yH33Ak*eE|XX;1rN8&Dty*lmaxsk3mjsnImoE4PZs^m}D-c=m0opPfA*H zB90YWcshHgX=_j+<(B8`h;pdW_qWJ$o&oo6 zKI??g3=OA3s;dq}CMP8G)~FmfJ76v7Po9^p1-{5msmSmN-ef9!*)Cb0)n034!;>-+ z(wb+aSHei4+%nlGy2%c{1*A!=>SmrtyQ~$#x=6VAww#o6kcRulo=)- zG?$mE>q`PN`LRrYJmfTx zL?8!rIIs-Ro1TtKnDE5sz-a*K>9HyC$T$0aS)TBIkYm$>Gj2o@zal2alaUgR7XE$Q z{JeBs-|UmJT+3h=gR?`HydBD?K8t)P(^-bmRLP-Zp{elk>CM^h29Tqp*)DXL?cDp3 z^xC)=iADpoT9B86e8tD29v>E-V*S9qiM1O~Ns}YB{!>}ulQUM<=gZQTApwWVla`j0jDjt`0CH+#GLRMg zqoR=U>6VG8o@84USlhg7r{qF8@Js33+My%#+KquFfqmIQIyL3rwW<)XqOXvVC=vkY zoslMBWwdxHq-Vpe{iR*0JmZ{9e-6lUu&^d^M;j3y;Yon1*PWL`$#u!BQm%?G`hrY| z1X&5mN!kc-_B`mKls5(EP`nGyF~!A>hZiTkAm>o6`9==K6(Aer{#J51Dbls_DqS8b zX3wp7b#dd%zqxtROYtTrJSp94orT+}f@&+Yj($m3WP=00lRYyK&j$aF3ORW$D|sAF zS6E54)8LGM{d+bPJL?}s0A~THj4ix*UG}7Zo^%IYfb7|akkl1K3cL~cjGr{k z3G9DU(}ID+z#9V75KlCImifm3sadNbX`Yz4bYF}oX%Hefz3<-rs+k_)A0&GI1 zF5M=k*Aid}q>D~Y3-N?U#+D3}@w1SwJmd{jd|+Xj|K-9yoA6j2kkCManTVhbWB@r| z1ZP8i@d#8#U;vOUw02oD&~g@tX-JQ&O#-JTlo0gmz6WjDJn@m`%ylm;~XcLel(6^e* zSi8Ec;3IGo zV+2@`wS8QJf?1Gg7}W7+E!mSBK*~=kZaw)LR9iOOdRTa|j%=uPQ{El%)Wr97r6$LP z<4BhQ4^j{Ha!s>NgXfWeDvk6;2^+GwNJu#@gwsR3>E~5LtZk9Ifoxc*V3|Jv$RXIQ zczAkJDDOO0DEU34XZ+TNHmw?4mIndH_yUl&_<<_$%rj<0m6pDujbwCWEcO&>xR*+f zj1P%U*FFi6<>cR<@{R?cMNMRf#{*f z0vz%xKq@FDQ(jLN2WJJXk%5!D9*{#@0?4^JqlIj^7sxsLdt+&PQ7vWqyvFA9Rl77D z)k-GAEwKmc)h;UD4@mW-%k8b!S@D{!%-^flE%LidX1nb&gR52Zg&~%WbG4PdYOF8> zayBv%rj(38iBLD29!`WO|jder13tY^D$Vg8Lwkq4(i+X+e z2|Z3Zfg%zzJrUlts2DXY#XHK3qkyd7&kk~eSi@rtm!;)9i0ANF!(k1p8kQ%Xfng&3 zPxZ>4S(nMy4kQPAF=}cRH+4YkK}Wf+vO+lfNH6T@uP$;Jt>+yX$#N0+v76L1o-zn~ zTL~^EQUU^0^|kJ@r_LVIp1tYG5pkZ#jPsB)eiYKt&U^Qi>2?6=DpmoxsH|5N;DT9H zkn^03$3w6Q6m;k%%V`PZya~@pj=)6Lv{#XkDtodaPgclFMy9{oNA~1`LaxK!Bu%r@ ze*igcTWQNf|$}No)9Vi}_=28`>3{-c?($hw) z!{I;9bX-WSjMjz4AN!?Iw(B4Cce!hKwzzDZKPJR%t*qiIRW(cT1H;nqZf^${PS3ciyndwj90 zJTTx6)tiJXkwa-R|0W=k7%b0!qL_QAfz2_zV0A#tmt4&LZ)T}3`z9%0OHku))kM%e)OFcH63_0g>3XsNR z-8x#gj7w(8e4z@XRJuMu4pk?W9~W9tAt~`O>S?|&`^DK(6)D~%@%$zXoYQT_9GiHP zqUc;%!1F*3K{}8<(SU4-2kFQ|R5|xvl$wBM#5+|t!0A75_rv4jge&u8N8}?u-{ZG% z!q7rGo&;=Usaj)!p|<2&qJ+;%gv#3`iIJD=&aWZ<}8#AwO%u5yhwI99&&Lx zWJNsr*x!2G|8TMFf%VwmLTd~spdecN5Fp3A4Uk4{`IFk<+*f9%!BFtAcKBmnwrM`9 zt_K1fBdUyP4la?_S_nO%d?k#MW8cLuD|!)}6= zE6Z#?k-^$pSsuhFfE7J*s>1DQCyw@@c5`Fta9j5Z8aJ zr`CIj*87J~_8dIatd)G7o80Rrwy#yEnVwkAg7`AE^8PH;k=GY#{K*_ zO&jyJ>;R@+(@ea#XuZ_(<{sJLl|VN1z+S0A9&k`UUhUeaJROkMs_tgAjPNubn6+2; zOO5;pfhI8A%N*2G8qF#p-3$b+)rtnkceB zUjwNbEOx>r??(fvksl7r-LQ4rl#-l)Hz(t@=7?u`4HSyKILiB~hTM<@K`x9KkE7`7 z%8y3>DZr)!Ppp%*Wk=+OLA>wTLemz2vq0Rgd-2X{dQ@_vctdgq-RcnhO+osg@e zW#tfy&-Q1Ys}ND>%IF=J8qT(v-8u)Eu_5jIrkrT-d(Y3^H+K$8JrjI2r_8QiL4Uux z@#I^5w>JE&{SUT_TUYekleY82$kS`v<#o9H=g1lt8jr3wy2g(?MwcnuWmesp6C3<| z{nHwI#_xRg^(AxCh9;Zsok8Z(<`vBpr^C#42Kg4py>YaZ)-|_D!u)Nu_btD1rhM@H zS06Okku`Q-k8bX$!H2JmYrCpd@6$yJ&pFoh;AnU1(pPs({iAkBsWXc!tvH%p{+qp1 z#*|2&wX4zPjDY+7UV3Uxo$O~C&h$ilJ-SK%?G5+NuW&0eEbP|q4S)7;@?csi&r5p; zW>0#n1qAPms=(+eY5D_*J|FqpHXgEVuNZCIZGn? ze75%6({Jvsp7ZpHMaIRM+uoQEe5vx}!$*_8YIg5hu^sh2@oksPPW|HR_cv7N99RCp z?501ynYC!hmDKx7m$W~6de6{`=kC80wQueBw^uByeXy6g@oxB$8ppaWefr*lSGN!P zYsx2~gXRuu&?V&4_iinit~I}0>4W31?>zeDt}`!n>pL~!z}LAuwtSSh;QqQkzjoR5 z%#iZ~O6Q$1+xMzyW;bfm6 zv^!n7$EPQ{ZhyLZ&v(nzDr^pIRo@p@z1!%Ci+l8ZF=|Qff%7N7Z5`TkV5Mo_ZfV;) zC9CSpBW>KX`@QyXOv2>y`mn0Kt4=@ZnR#Lgd==9B1M%f0Q`KRt~D816YIC^1dyVvVXo?fcbjl`oXhW^;^ z!$D(zdi49k@ZZc!O@qc-7M6bW*o6;Y{yFx|ulN5{BmJ35r@ntDW$A)@-zHVNbLh*n zwOgI|=u}>%zM~rz?mcOIN`qS+SC2ao;{9AtJ8`}FmdtJ6{Iuxp_uli?44pmS9#?<; zyvaSM-D;oL^3>RY=HZaTB@g`(y>HyXHE%=@nSZO&u-=``l8uAR_Ko|ROB-KXH@k_= zTpHTVG4i4}VOFzdyB0UC7-XMVZ1>!nB{NeuT-3(Zdpb6!)@uife3Df%zku0IgDOrg zG-^fLdFzupmDsj1WB#Xeqvq`%?EQN6t;Nl@IUWUNf4pEq@EP;dW^2s}&4bLb&XVS~ z=JkWBes}qLk&n_A=;#0FoVe}dZJ}+J{cZnviMGGhp-$nc`-69!ZNAB7&ThHZT$43fyH`m)wPW&UiTkTpC>~U# z&&LB+)EV?^gEPmPym4=S@g>i#u2g5XnLVhzS#oei$L`~CJvM*w(@691puWE6|9F1& z{(A!sP0Ag)*f;6RTd#k)a?ycvj;0NRbIY_Dcysgg`V;Q28$M;w!FvgVQ6FTSO1Y`LKL#hF(t-?(+6 zi?{OH*b_Zpp7r&|wl9y(9b0eU{jZuAKNj5U<4?{tsPV$VBK=0yY}oj(4+f5&vU%Oh zD?k40;}J)@Jov8o58mRHcJ)g)$2P6#n>M6jg$=t#Mdv(qwdvV4&rS@g7FE9c^d$=t zR$p9^S$?nQz{%5|%P~#bby`&Qo!~Z0U)gl}-u&Mi^;%n^`-!o|zCOHZT3F$;`&zE) zz3{j7Yxh+Rcz!{hWf>!{gtd3I$qlO6b=aR5rY$`A;ib8TWj@x-X*?^ru(RFMzGZE% zzgqFx$W!aTD&8uobh)10t52E91BZ$P1LeV-nGYgvWaWum{SFd+O%`SQh6Q>G1Wy=Tp;tM4pM?-*oR zjla|edwX;25Qovqu4!$s2?#J#?>gz$v;G>9Ygja4whsaV0wqQ)8{x;Df&kU z$&yQ9%hFb4>W$DK5n6}PFp>RF!^|7u)>~m8)JH_kMyQvF`m%_bGtzCVW?moJ&X!;{ z7}d`H`cr1yD7XGMc2mR6nXV-VxV< zqGS5Z{Ll%6L~TY8woR>ta&C`w8pFYGods3pUUupWz+}$P5E8xBOX8#}Wdjg`QlPpe z`JpcnLamTh!NIb-xfSa4nAgMG**BLogCpEVTkJbKp@Kj&b-2?u&DrxgnL5H%7-t6(|K%?NnuuW@3(0ek1eol} z7O*BFYbqXzd~IHjY-e|uHG`wv_Q_?}m-EwBI$88^7&W!W8 zjg>gsbwOU6KR3+g3IxMYod~msl{bT5aT{J7PdbRAbI&>LXUdy-xo#r`XB^fS;7<*- zxg20_FuNH#+NobBGed@j8TGL7Y|oO-+e4g=@nASWX46zf9~`G3Va@pxy)4eT&CIPU z!|Yw3HsetHbO`#(qCHN%FpgBM%$u9S>^&=)ajV?M^AO-fgBnt!oyI$i&S$^n$K@V$ z*(#ekJKe@CoTaEohiK^qGV|u7Frz{hX%~UiroCSk+LrNxCG_V;KrvvQXnKZTRd&lT za}%8Q&Q;C0B)5GMV2Imz4{>q~Q%5_E;@FKh6%7g<<}})a4F}Uq3{t7}VC}#H)h4{M zSz|~&4z2x{YGz!t+h|i=(_BaZ>zwX1rh>7kLbO$58`wZF-3;|Oi?s;SG@LuKF$Xml zifJe;q$plUVP7>fG}dW!Q>>8xwi_d+m@cg6gZz}Y}GC?(|8d~TGs7I zr?DSQm6_}`?ki?9*}Z19@f!@}1Iu$7Q@~n^+HXfV^&Mbc%#h?T;~_$=A&2Gkvbk(^ z%)Df`@oF7atUtFd8VA-%6m&bvY1F7IwH;`NE_UkSU}<6$E+fPWAcv+a)RW4xiw^Yx zV+rtq9;ab~$&_SYfUyghS17$ieQCOyiDnwTz~~U5mUyQ=4XiaAU2H!>918dmtzy1{ z|Adsrr}=NCp2UA+s|4Gi_X<#IHXy$KM5{5+U+XlR0ccSAF0vRk)3gY?2@c7MhUhPJaH zU@A;Yq}uw7nUmsnT!oNzB4!(V+b<2Z(H4?i8o-IT)ug+5r7l zY$W5LU$EYap)Rk}SO7-d3;h}&fUzBhc{|H#6mG0(y+tXvFF1`sU^Elm%#C*1w>LI} zGu_5j2-`zg*u1^TsW*aIVl9XdGhz|y3%OM79xyd;E<5eNG%8TXT0zX(Bd^JZk2Q3~^! zg&^T1r_mjZ9fXx)5-tN9DdK1j_rUsqVcNwy^-dTTEM5D;^j8pSW`;}+GfpDJ(LxFg zmg*c^oVL5{hgJ>^ez z*@U~%f1{XMEY=l17>#=Dj{KK;+YAS!96a<0GwlMH9Bt^)Xn>(+92T>9r}4aEQh`Un zs4}$v7ncL`jb;H;L)W{4bq9kBIPWwTg7udSzNs+mY#^8+QjP$l3NV9WoW=?;j3b%? zmtuUJABUzm0@`ZYV8p3;u+MNnz$#(E@y=2!!8qq}4=6rQ!y5>%t=~sX2QzU(STPsI zn|AF$3OMNVLO;b4AZ0maA%)rsOSRcIxXs{|?qWY8R!nNdmbE-gv3<}#J5lH#(&Fvq zDE(795Yo|4rqvHZ+TKj`gc(m^5ofDl^RR+$U~CPS6PE*o+EMdIMHylO{|ZKvkdD=b zk>JoiCA2yXjCzz)V+R;3fTCceKZ41T;skE^teJ!TP|CAXD6KjNj2STMuz_n}7zs{p zY-pNxl2b}9P(CmgR#^DXyBey~o=sy{-=Z6*#0GurmbPXYgx)yvHBy6tcDGV{D{<7dQ4 zO>&D-57U$VfiJ*(9S=rLV&V;R+IRIf^WxmbeF#|{rY78IGkBpMV&At6p?rI?f6~Xy zi+39pP#9Y(jb#WJvtl`!=L!UA?%!I@*2aNQ6NsT;45kfkh7FP?(HD#bV0(;VU#Q~5 zK-*9BGxJj2_QL(moHV!nxBg}x;PU}yaJt(liW&5btO_b}fuRyA01)FO>i5IkvJ@%a$(R$XE4q`EDPARjvr|TXSt0d5OM}UIKpZFbEKJ* zg{}T5GY@ggM_FyB3eSSE*HCDh)82cunKRLC_m4L7Cc2GJM$1yr%M6!o3=ffd*D>(f z^zinV$C!DO-1aZWn8B0XM)9$79%ELIa2g%KSSl1xEiS z=iM`2*;I${q;X*IJs2HYCatw;oKyz3I9Z4Td+d)lg0b;%OgIL7 z2i6J9A5ue_qDZzfoCStgEad%-v{VH?;fUIk;B@anNHM}lmo+}x*v^+lB2|Go>x zY_N^zMMCzxFty^Snke-k_R;>e6K#eq(F~rC0|p}G`1722PBCB^~i?Nl3kXn*{yFqF`!~Q2xF}puC8s(*$!KT~(eX1E}!i%O!En!o>3TCI=a_(Oz|&8NAf3_aBEO^c}{_ z42ecz3#WeqhQ{JlU2(i@EQU4KX&*e^j9cb5<~|l;({cigS>-0)K0yw)SnQ0ZV6xWG zaZV!|OsbdTc7%+ZAiYo)-8i>H9TB3=P#uhR0$2yp1D<*Jg0%v}r+AvP+hF%3zo&cM$ z%TvspHEw&Asb=09w=rO_VJ=@Kw@84Ra_kMmjRWT$+dzU$KY%pPBUA8%9-Uhd^2eKhZfm1J1RGo`s z6_{8C>}hk&oQ-bdGK5%bQ8^CHdixi})hceOW+KGG<(hF8j5-jT7JK`7X5J>ZJ!763 zyxDEvI?s&T>^3gWvkJ=fx*YRm#o~U#zInbGoP#YKglvfjD`!PMEEs59!y-^8pjaogp`;sqnvt^Me0hz zn1B#XrI2tPyTBe#${S#uCAi$fp{>qhS%RGIUNA9(#O`z*n4Ccz^9w3YT6Q^8mKor` z{SpintSQQL_;Uy0P7e&5>v!8wOf_H%ZgT21mr%^BzHtaW$0qo5nNva2nk^!i=B3--wfXE zcC7G=Kfv)=t#;c|GiSG3@3Iuy5+30NggPQ0cIOzklVIYe$|$x>b_Avq?sSX>qh215 z&#REI|8jTs1sF#Ku5Gf@QDONLsqKB1^Ge=WjEE*OSqi)6sfeMg z%)A3`eGY{1fN5dIEfo!0fP1gMTDlv~E2j|!#$FiA;kS3w0g~HH`beRC*Af5>&={#gZ1s}@d^nKu9bPWte*t! zC&sh+22>)Jz9@vKH)NmWa)8K|pq2KIHkiR5x{Wa#rE|cg!vvSZBL3W2P~avr4=HAD zvfKx+s;+}|Mu`}x-MH`DEM_Gx|7UFGgA4r#1mau59}v;yj!<7IAL(@DfUyZ;e)=!D zY(^j?^1deMExF)f9m76p7#Ms=g` z0DB;zePB?MaT&VJ%=yA?ubpe=ec{$eg88W^^@>0w6Dc9|Q8 z9&DqAf{FczzJPLJu*VTjFBfG6H#Ph8>4>$Hds_wXO~ntcA8PnVliM%*=$YIu&T-D9{NT|I|+lnfe_6? zlxeTC+sr%bwrA}&gHO8ky}MC^*a_Z4h^dNj;OvdxHgnElfA_YWpg6@~z&E{Z2A_8u zk05*oDPb{K6dUdl6K6^r+a5Cyu}i_j*cx708(&z=pSl1m$6mFL@TSr}e6N{z!ELO8 zkYgjSD8C1zChh**H<4kVj4R|%9cXhE2BTZZ_v7}}`^?~rZsP|;^kXJ*12AO2nRC%? z-?ZP%1AKPC4E_cd@{TnvX_x)MIHj;{%S0_;v_>3+RyiGa!5-JLcDi9ZXvTf(*5@Cj z?a@QLkB}S|Oamj}ko;*dMjOYdP_QPVDY--NoCYjdETJzdx!5Ti`@uvng2Fz~jvV;~>CwPIl^tz_3)0YU4N}8v|oP zW4eN|E8_0jm;>epLqk!(`(Vw%aJIyhDEyuo{Jq=W?maW^d$*DOo>V&~F_zUmV4~yp zUyk}Q)PlJV-H_wI{ zB~BE~+7*l=B6q^$!RTvHEIiLvFsdZqqVyY(;MwZhFnjHjW^kU{7bBx|#ELyl6V;-1FiG}zC7{^5%GxV|_a=^Ln^+kwt5Th6E z)aQa>P_x4Hj}XFMV_O@?NAl<6XiTJwgsIULJQ@e-4f41rA42jRZO>8RV`(|kzXrVu z{|ZTedSZP8Lbwx!wSA9})C|>M>6B!`bo9Ppa%ou z9k>16&&-@VZlmz$1>4>hjI#?`!cld~=Vshp+>SjK;v)BFFpiG6Q`JMh5USb~W@IrW z8kV}*sUHJ#<=;~qe}Og?kto+_e7e8@+Y?Wlalg6soe<&)@31iacZ9^IUyu5d+k85X zEeQ3H4V&sTexqCzhuyZ}{>oA;8=d`?8T`O)Y==JG3WO{ZLx2Nz@L4(AV1t-7DQC^RhwiH1Ls$e!tiOw)sn0FQYskIL+CL4)IcrZE`M#t{pB{AUX&`a`9ojB(FN>T zGx4u5`{|2j@ZWBGt#8b@zuo%qZ+KdS+}MN=4G*R^-KpOKYcJN|uHQ?&D=K8qy5i5V+uZtbNaPh(@$d582gbU`cmB8lo7+DBJAV$) zxbZmlj?3}A)i_SH2ry1p*~_h9QWu=!zbJ;S@P{tP)qKOjjC^=q&LH$;pR;syo|<`@ zrUl~rq8*Rs>T+XMW)GseqI?^~{A@jWl3u2c*d9MZWTF_HX*c|Fh0vqZH#BXgKQX`- zrtkj=e{V_#C*Q;^g9zFm-t@;6M#2fV@cRZCTkdBL8Qo(BLew1W1h+HW!8i&y0l+bT z4@TP)rfyXE#nKm?wmuZB7u%t)N62U1d<5@)+n-~gqBm}{?we0xOZ+SDLHt_{v~3xJ z^JVRI@8GUP2G1fGBZKYk;upIzxCg;-e_|07aL?+7o{QiZ8QMu*dnn0i*qi{f1G+u*pjimKhLh z*!=P3ZEYRszvy~?>m30_o|FuOgl;`Qjj;f2wslq0>^8yk&^*~C^Cn#SpUDwy;RoKT0s=)Pq4{sfby zK!JMS;!u)#b8#C70&*pw_!}_X9HoTmK_!rx2MNbWgqZPh=e9wjtN{a7sHD{ac5XOW zCs8SfZ#5WJ7VJjy5E^YY#?h^mR6%~30c%Uy{0*zx+Ui#k)lr;a>Xo*MztJNHc`O)* zPVOIVwh33oJ;}twHdFRfU)B^GGZ~$1*3(_ zo%(e!wjB&c*rL2;XsNqg_VPCWjT)FU??FoUC)3;mW6Q9p?r_<2t|aYD4d3gA0|IssuLE&7z^FQ`lqa3~GnF}@ymm}Nh$V{M zh5iAUeDkn)6?6}Bd9#@gCT6UBpa|9%aaa|wsVY`gdI59_(`pP@E5yl89r_1*0MtOk1>dk8) zrJ49!n30T7ul!U8z|??6I32%%QBV1^z-U_2rrvsD4fDaM7n?uzEoc=?8qsY$JT6(w zpA&+;LJ#~Unf!Wsk(m^?YiW{pY&=oF*v6S1U9q&_j}u#ot` z7{>|jG%5!dEN=)H?y45FaVRm24bJOlFwPlqI5FxpR31RQ2jo=@DKP;~f^jg!&97lR zBc}tFK$uBaFgj7h;hudySPx-GEwTN(7~&6h zLJ<`jsSb-LQhgM|WWt&H1u!`cu~r5gYXlWWw6#BM@Tsmqu&&}^L&X-Dn*NYC@thVR?)A}6IECY2Ls-73yJ}0M7mU|L8DQ#!27iA5 zOgJsEsre0zW+tBY+8a6jIqjgW$xfTN?FjIvI#D~Act&7+jS%b9{Hf*fnoBj8HLp|0 z<2_8puqfl`H`V12?tuMZY%2^M&BDH+l|Kg(;~FI_M4Yecw)O{igfynLbk*>?*PO;u zu*XAi7ECS+JWH1kLzDemyFmpA(XYt;*;FttCGe6smTr3-H_oYF0uyicINHeG3)?h? zf{FFi41LMPC^6%N0UienL20#^_-WnkoFm6L8BLok2Jj^(N5Zf&lYx{%t{Ux8J+~^ zrDI@?!0@slSmln=fW>XF?gbO)7sqCV{;}=T?}<2G4!3xg2Fz723nA7FgM|6-0+VXu z7VT#+P82ycT6MB|33p*+fprx5xb52y#u1h;>f8XM9mp0n=*&qGa<`2G0jWVQ*?Yjk zkO(&Ff{oq*WuG*EDBk!pH$*ow#;}BdgXGb|f#d5MryvWY_2B z%MTzl6mo3Q;2_F&liLckF$<59z@$d${BDC`qK^)Ef*zn9lNR@*7y`x~AP+$IvsXKZyC3cwl2!w>&(vKk|?lbgK&tdP% zQP4dIVLy8kmVglTfK>uo&I98ZVz%KrvrjLnWiX7D4~(_J25}wu9+;f1>}%29`7?f{ z%K;(>m7A1tV9X|W==;E^Qq7+`1k~I752V(5_=R(I7-7l$dcdQ;&On{2gn&P8;nYZvf`bNk5t0^iXDXp%L?)( zMn_2Kgyhx91Ta=9W{_h$7$=TQjq9?&A)MswQy+ww@Nq$NAYm_|eO!yZKg1t58WXAL zP-}!ZdAoth=FwQ@fwAfEh8Vq%z-ZEO0|cG=M~kJ9!s!vTRD z3>LBkj4hQrt+QYpHaT63kC6ue>8{3tQLlFY?KzlRV4TXxhlhqgDJEZ<3o3?J^~cJ_ z@kI@mzoJ2*yoZCVuMkM(*866!C|ABsUP94AY893Ke@rxV(O z$*=;9_KKIzS2^{|U~o;if2bNSjYH_Ym=}yEqW}$mZ5IwnUI*krs@x_H(09Q&!g8dV zC&+qbk0*e!7Hk%=HXj7zehZ!{&*}ID?4J%JIMK2v>LF1vOucO`2MDvm08r&Q#pE{b zsU$0o58~T`(Yi%*^f_RI#ABXYDiyY8pq`I8~>({RsqMKG#({vECFsmCFdpw{Wb3R&ea-{xjKb~WY*rF1l2xH6rSJ_l@gpLC&_;OPDb^HCJ%Hz+U`{h} zS(x!ILgHxyZ+>;hRM@DQXolHGPW9(xqn*nk;aN^j!P{VR+s`w_VV|_<0RQb8=yiOy zyzf!;ThPI5nb>W#m?j+&w1??B9*p}eIHHZPH85H?ewzVXzYNBKL_SQ_a?eYf0K=o5 zK43$Id)|l;ZxdBz#&oG;c;D$xd#~yK;2CKA%aGE%utUMm7(Sft&!O~BNIBu*IWS#c zn4uOhvBP{H?6JQzW?Ei@Ytpk|Y$j|6d$V*ft{W&j!BrTfJ&3gWpmf8b1af=mo+VZB zcv8Fy3G0EI`Oy_fA{K-?FDP%Jdl15vKDNzoBP8}>`aOi?!qIOw8fI?&xs3w>+7^bN zR|#Oa-oT1iYL2`ymQHOg*jS{3cZA8*m@B=xT)-ED@s=*YpE?DDcmb4N3i`&+Dr&qa z`-O~n+8O?$KW{FMY#SjJ@4@JQBZPL~L6U2prE2cBlE9=-;27qB(O=1(^Gz_RIHqhk z-|`OhEa6~sF{Wo*114TRbeuzos?S%Tqx1qfG*Ys5nGpy9Oc!o#F+yrxM&+l##LD1L zO~eM}C7BJ~!xp$T7|j{32~C*|HULbS)CEwf7-8KT7RsD*BK!=-0mmT%-lpv$Yc#1} z9~iH8XXRC0KAQmJi4U*?JRZ;OxOjS0B;Q%`o|8$^Wi0M79w>jLc9}2`>~n*3{0(_IA;XB zEM0<(O9E>wdy|QmHNeDB`a@^J-oUzu*WetlNVg^Pj0EEp#(?7@ej%9D2kZJ+rIcE> z7x(+~UdGMa5Whe872rz0KMrX8I75PfRpt`}h zpgbks+#e4n2Nn73+gJGWmht*yCFccyH{1mwdM8=#Ofacz)>3qpoMBkaur=%tCT_7r z3+90FU<~ubFWuh;<1!*kajcfA$K4-R-59XGh{MSODn1X^9}MmUkNcllLqEY;8HEs6 zad{iL8jO9%?i+@58jPzd4jFjeDQK-|J1$G25Mo)_(XYgWpm&;|HI%c7KZa{gfhf`j=O zFuBR$4VoW}^9_o@ZublrH%I8me7s2eI%f(mbyE?d`v?$^gWduYCHO<X%esrTBe*@5MufNG32Q*?fN#jG>VXi=sCiMQsHw=kP7_)%l zn{8&ir>*haW;w2K0?|1P5&nz? zesHz5pa~8GdB889O3G{WAL9l#)rZY+N9`aT?+ z`uQtfnlM%(!EhvpZn4t;_NG5?o6TLK`CGC#fkCIUGj&vGf`G$`2y3Wla8tzx5+=LmkTV0G7bXiN`C*Hw;5Xi8$Ql77F3-9@YgdofzkBfVqr{wfXRarwbglt zG;YLUIhqMJP^9E8?G_mOiXA1^)V@2pOx_$Re>DubRz`M)zZ%Zn>Cf2!TWq>Z8l5;3 z8xdd}T$?!J^Upxy(eCgt<2*yMK|kQ;akupOP$|yK-N1T?H<5A>lFjBzus`kg=WId^ z4d1plc{PSem1B*`{{izc!-4n~D7&P1V{I##c;VL=x<{>%e*WbY2N)*@jyOBXA@BsAv%?t8$fNy)nHQ`fL&>hE|TR+?5Z@viAruue#beH)gC2K!ZQ;$7=8 zV0iTKW*Y|rv`si8T*%x3YY+C=2{bz(pI8L?Q)i=*U@Q`K<9c%)7$*Qm1EY8Wj2;;? z09%z(@8mO_3A=&`=fc0tLY?eCR$Dpl0(926(J zJxCml=15;t?LBFllJy5;Q|04<)nIb;ZcleP@(JGHGm0OT{e~^#`D_ocPRJ$)XMtj{ zD%@g!p3k@v1s#(`iVF0hV7M*87Gf1bYS4am6;_GVZud{4=y5rS>`P^gki0$V2&vq_ z+(yY$!Nv+La|QhdEdN5Ge%<$N+9)efhXjPH;{^tRepFv3jY7HO|?^RFPpk;d9RBsyTmpm=AA_# zlHU7DxabgHIS_se<68yaYWPAInvO5FRayYP@G0U$WDU>aOF0fN;zOhy`wM|+GXLf& z9ld79m#&W=BGbWPit@2C`a}Y(bwV%}$cDryo&aP)nfMmMcM`rVa05Pfy?lvYB%7^PeEk-CVW}o8~7H*_icPB--|Eh2k>PBkKkJt z->>jx{8@Zi;W>QyA(Edb!RI{c=j*K6_xQ4>H}Nfw?;rTGfWH(z0`gN3+2cYi?Fpo) zu#yuQbSN~G+(I7%loi209P<)D2e1N#3K^`ZIFSvj1f;04k{3kASB0F0Rs%?0OQkD_ z(40@JiwMTmQ&=BJl{TdC{}EYnW8^OhY^Ta0vLPK5mx%4yKLwI=EW09MU0|ZhKx8mU zaU#=YC{APrK^$RiqDn(#aFXH$k)p{;{@;*Erl@p82B+d5)}5{7 zLXPj=_;@b z5g#JUJES;~!NZdKtbjl!#1bqLyay!5f+s!&k)q>DPGmz)Do$kZ1BD+dIgz&W8Ia|E zA>2ta!EY5_0n+GlN4!Y@=p zA`3XJctNE6OC=}T{qy(RD)>0tE-5jQ$u2AY-;gHqgG&FS!fOhztNj0lEI&`h1ASuT zZYcqg34T_b$cpYN{=Y%yzlZe9a$n^uh*V%v3_DG-WPlpMlC%RM_|M2KNd=XzAW~FG z$^SRVq*d_`G03Mf1_9af8VYMFc|l}+Ey&raIx4;((xw|KIgzuwnc_s|Z>~6z+}A=0 zh%DHtctK=Bmy#113{&VgEyMNU|TLnMS8aVnc{%LLqN)p0=cC>#mN89 z$VKTwfb!`Gh!2s$Zxkm|L6?B+&t)Yia!`I$@z<4{$lyb|sw&<82HCJ`K9!*wkQLPcvZZyEoXB7> z{$YlOKsGp(LWOLI3!M4dDtSR}V?Dmjtq2Pqt^ z$XQ z_<~5$VwHbMpt{XKKzxWCsn>w4cs-C?xNSf-AXmwE0{I~Z`bQl_Kd8sUD%raVj{sTB zF~yGq`605n_Z25H_@UxN20u}pNDKW6$b4s%ya38&xqv`ad|qX^pfV6yz}JfZH)Oht zD*ZPKzg78&jK8Gta$qDFK9^O3e?w~Gd&F~Oeoz^IRO$Z>nLba&69fFcj$!`=sdh_= z3nB;L4&+qS??6`br%Ly4$oBuG;)%>}$3GMmB2mb49Et;_qA6g)qAG&O%d%h~XHF9( zC$geYg-w;5$o{oZoXCotK&E#oIg#?#inrELKQp#f3Ee7!$c*iPymK0$ zhbmqWS+LWiWIeT71#S_`)x{4E-uAbsV^7@JsnLeZt>Zj_Ps{}28Y@t&nB$BrR(x^Hp zc|l~s9U&(^tKx}tVBtXKk5ux4$n;TEDSHw_^shQ;!`-ldD?n`L$E$4rhRih)@hoPN z!pSTJ+^2XpkkvmA#DCgs#peP!Fbfo4sBke5|7lA(FwD3dj0LVzxE9EauLBvsLCH4* z*^nH?w*sl)?Ml7_$n?7u->vu_AP4?kAj>@lWWEnLFf8yx2#6m6*^p0w{1BP&wBkgj z`x3})@|FL?-n~cF)cyU#Z|{nd5Ksv+T&g4K$TYe22}oKfsbOu- zCn2exDM+f9zC(t#&*0LSOH(cbW^=#HMN$J+NZN5e=XP8=B59$d?Te9gWJ|bQ%5A5l z2A6ZWlH0xtN%gxSX@8I3+XI9=xdL9lL1+UK{|Rlu58A<>R=C9I3I%iPl+=M8+&U#~ z--)FCc5@kpq;k<*?%^`#*LIx$efWhIN-DUY%UC462t16W3X`}@M$$q_<&SaelvM6G zw@yjFW^n72RQ@!#PT7<0n6mH--RkqW4U{y5`AFKK07;vQ>Bqk%m7^~OqJ@&m-{saR zX?q#B{-08j&c#En;A12W;S+BC871p3#Y_L8_wdpmt3vPagD$XEB<b(I7D^fw9*&TlPe=N1N&Abz=@uo8q?_t6E=MD&UR5#NSI`D609B}sq=k|yp2V$F z(hhoDPUW1E_M67#bR_L(h@=CW#knb$=15v7=>gwXjLy}sUw*?g0fu3Vi3*DXAkg+;oje z(y(($9qGfZ|9?+h8dOnVR74HacW=@1KS>%$S+4wlN~%{5+vziFWh5QQ7_K}ewKw+H z``h#jS5Sv5AeeOOXTYgKBX0YDmsD;hSB{c8I-A>n4(F6qF2I5VN&@=MFy%V(F_%k_RNfg$r*18hM!=ifz8;AsK!|>!f<9bs;tKe3>4&66Fsb|& zuDm~2ZX1_0qICI$A!(tci*Gl#{(mOU|NjZU*Xc+ixg98JJqk$;??KX#GHyF1c|5mH zN#zf6>y&ilhmch62$F6c^qp?MJ|R1XUugMHNt-h8gLXWFq#e&8se$vf@!ygfx(KJd z%$2*sWge3D&qq>y*O9+&|2Mb-H@OYBxb-3~i@7X8(#7})Ned-)q=H))OgaU1a2lys z+;&QOV1AFJjg~m4 z?_N0n)L=iZzyKswJdi6eh+CIIQo}>Jb$KM+(4Bt$l78L9ty9uSZb4G{?MSLG5J?@}fuuz+F@ga?JF$U!z8gt9#vp0O zy`1mo)?<;hP*S;r+&U$dPvG(&ByBp5A5<Ul)#X#dwQwBuv0042RG`U*)sf5SN? zU34wnIwdvq9!cd|Ij5vk*Uqg|()KPSmH*CVH!^@4{>j0w8#mS|sUQzYJBrYa{@;?0 zK#bci!EF~z+TIsV^-FQv1(SS$1b6!%hywHpwlb0)R5X!v?j~_L1xX7fjf@$$PDvHb zMpB38a860<7Dze(E6ypYUR!S6mc9v|z!5+dyCSK=)m(x9Nm2tIC{GQp<@WpUlIr(F zIofZ10QbvAu7XWm1(Y;|TadJaKbKUV7Qv+Lft*v)0fi!|Lt&g#(t0?T5uCH)8eZ>T z4+6WnEs=L`$Hrxf=T5cb52R+s<^D- z@(H({lD0oZQuEI^r=)gX(M3!L+60>DUue!q>7foDOVurp3@yk4SOM} zA|G!1CNBMu)ZkVmb<7`0BN>LIk&Z®S*A0{f8EKrELGNfjJK$|BDpsiO0oXCrB$ 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

X>k)LBKR4~7z7Izw& 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 delta 132339 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ʂ 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 diff --git a/crosschain-resolver/package.json b/crosschain-resolver/package.json index be061fd7..061f3d45 100644 --- a/crosschain-resolver/package.json +++ b/crosschain-resolver/package.json @@ -46,7 +46,7 @@ }, "dependencies": { "@ensdomains/address-encoder": "^0.2.22", - "@ensdomains/ens-contracts": "ensdomains/ens-contracts#l2-deployment", + "@ensdomains/ens-contracts": "ensdomains/ens-contracts#feature/crosschain-resolver-with-reverse-registrar", "@ensdomains/evm-verifier": "^0.1.0", "@eth-optimism/contracts": "^0.6.0" } diff --git a/crosschain-reverse-resolver/package.json b/crosschain-reverse-resolver/package.json index 60b2e1ca..d129b092 100644 --- a/crosschain-reverse-resolver/package.json +++ b/crosschain-reverse-resolver/package.json @@ -42,7 +42,7 @@ "typescript": "^5.2.2" }, "dependencies": { - "@ensdomains/ens-contracts": "ensdomains/ens-contracts#l2-deployment", + "@ensdomains/ens-contracts": "ensdomains/ens-contracts#feature/crosschain-resolver-with-reverse-registrar", "@ensdomains/evm-verifier": "^0.1.0", "@eth-optimism/contracts": "^0.6.0" } diff --git a/evm-gateway/package.json b/evm-gateway/package.json index 66901332..98ee1954 100644 --- a/evm-gateway/package.json +++ b/evm-gateway/package.json @@ -6,6 +6,7 @@ "module": "./_esm/index.js", "dependencies": { "@chainlink/ccip-read-server": "^0.2.1", + "@cloudflare/workers-types": "^4.20240117.0", "@ensdomains/ccip-read-cf-worker": "^0.0.1", "ethers": "^6.7.1" }, diff --git a/evm-gateway/src/utils.ts b/evm-gateway/src/utils.ts index 170d588f..0524bdf4 100644 --- a/evm-gateway/src/utils.ts +++ b/evm-gateway/src/utils.ts @@ -1,3 +1,5 @@ +import { Request as CFWRequest } from '@cloudflare/workers-types'; + export interface Router { - handle: (request: Request) => void; + handle: (request: CFWRequest) => Promise; } diff --git a/l1-gateway/src/worker.ts b/l1-gateway/src/worker.ts index bdff5f3c..97b7f52c 100644 --- a/l1-gateway/src/worker.ts +++ b/l1-gateway/src/worker.ts @@ -1,10 +1,11 @@ +import { Request as CFWRequest } from '@cloudflare/workers-types'; import { Server } from '@ensdomains/ccip-read-cf-worker'; import type { Router } from '@ensdomains/evm-gateway'; interface Env { WORKER_PROVIDER_URL: string; } let app: Router; -async function fetch(request: Request, env: Env) { +async function fetch(request: CFWRequest, env: Env) { // Loading libraries dynamically as a temp work around. // Otherwise, deployment thorws "Error: Script startup exceeded CPU time limit." error if (!app) { diff --git a/op-gateway/README.md b/op-gateway/README.md index d4a496d6..d6552f47 100644 --- a/op-gateway/README.md +++ b/op-gateway/README.md @@ -21,11 +21,12 @@ yarn dev cd op-gateway npm install -g wrangler wrngler login -wrangler secret put L1_PROVIDER_URL -wrangler secret put L2_PROVIDER_URL -wrangler secret put L2_OUTPUT_ORACLE -wrangler secret put DELAY -yarn deploy --env op-sepolia // or --env base-sepolia for base deployment +wrangler secret put L1_PROVIDER_URL --env op-sepolia|base-sepolia +wrangler secret put L2_PROVIDER_URL --env op-sepolia|base-sepolia +wrangler secret put L2_OUTPUT_ORACLE --env op-sepolia|base-sepolia +wrangler secret put DELAY --env op-sepolia|base-sepolia +wrangler secret put ENDPOINT_URL --env op-sepolia|base-sepolia +yarn deploy --env op-sepolia|base-sepolia ``` ## How to test diff --git a/op-gateway/src/worker.ts b/op-gateway/src/worker.ts index 1ed3959d..7592ce10 100644 --- a/op-gateway/src/worker.ts +++ b/op-gateway/src/worker.ts @@ -1,24 +1,88 @@ +import { Request as CFWRequest } from '@cloudflare/workers-types'; import { Server } from '@ensdomains/ccip-read-cf-worker'; import type { Router } from '@ensdomains/evm-gateway'; +import { Tracker } from '@ensdomains/server-analytics'; + interface Env { L1_PROVIDER_URL: string; L2_PROVIDER_URL: string; L2_OUTPUT_ORACLE: string; DELAY: number; + GATEWAY_DOMAIN: string; + ENDPOINT_URL: string; +} +interface LogResult { + (request: CFWRequest, result: Response): Promise; } -let app: Router; -async function fetch(request: Request, env: Env) { + +let app: Router, logResult: LogResult; +const decodeUrl = (url: string) => { + const trackingData = url.match( + /\/0x[a-fA-F0-9]{40}\/0x[a-fA-F0-9]{1,}\.json/ + ); + if (trackingData) { + return { + sender: trackingData[0].slice(1, 42), + calldata: trackingData[0].slice(44).replace('.json', ''), + }; + } else { + return {}; + } +}; + +async function fetch(request: CFWRequest, env: Env) { + // Set PROVIDER_URL under .dev.vars locally. Set the key as secret remotely with `wrangler secret put WORKER_PROVIDER_URL` + const { + L1_PROVIDER_URL, + L2_PROVIDER_URL, + L2_OUTPUT_ORACLE, + DELAY, + GATEWAY_DOMAIN, + ENDPOINT_URL, + } = env; + + const tracker = new Tracker(GATEWAY_DOMAIN, { + apiEndpoint: ENDPOINT_URL, + enableLogging: true, + }); + // Loading libraries dynamically as a temp work around. // Otherwise, deployment thorws "Error: Script startup exceeded CPU time limit." error if (!app) { const ethers = await import('ethers'); const EVMGateway = (await import('@ensdomains/evm-gateway')).EVMGateway; const OPProofService = (await import('./OPProofService.js')).OPProofService; - // Set PROVIDER_URL under .dev.vars locally. Set the key as secret remotely with `wrangler secret put WORKER_PROVIDER_URL` - const { L1_PROVIDER_URL, L2_PROVIDER_URL, L2_OUTPUT_ORACLE, DELAY } = env; const l1Provider = new ethers.JsonRpcProvider(L1_PROVIDER_URL); const l2Provider = new ethers.JsonRpcProvider(L2_PROVIDER_URL); + logResult = async ( + request: CFWRequest, + result: Response + ): Promise => { + if (request.url.match(/favicon/)) { + return result; + } + if (!result.body) { + return result; + } + const [streamForLog, streamForResult] = result.body.tee(); + const logResultData = ( + await new Response(streamForLog).json() + ).data.substring(0, 200); + const props = decodeUrl(request.url); + await tracker.trackEvent( + request, + 'result', + { props: { ...props, result: logResultData } }, + true + ); + const myHeaders = new Headers(); + myHeaders.set('Access-Control-Allow-Origin', '*'); + myHeaders.set('Access-Control-Allow-Methods', 'GET,HEAD,POST,OPTIONS'); + myHeaders.set('Access-Control-Max-Age', '86400'); + return new Response(streamForResult, { ...result, headers: myHeaders }); + }; + console.log({ L1_PROVIDER_URL, L2_PROVIDER_URL, DELAY }); const gateway = new EVMGateway( new OPProofService( @@ -33,7 +97,15 @@ async function fetch(request: Request, env: Env) { gateway.add(server); app = server.makeApp('/'); } - return app.handle(request); + const props = decodeUrl(request.url); + await tracker.trackEvent( + request, + 'request', + { props: { ...props, ...{} } }, + true + ); + + return app.handle(request).then(logResult.bind(null, request)); } export default { diff --git a/op-gateway/wrangler.toml b/op-gateway/wrangler.toml index b9da3cf4..9175b4ef 100644 --- a/op-gateway/wrangler.toml +++ b/op-gateway/wrangler.toml @@ -11,6 +11,9 @@ command = "yarn build" [env.base-sepolia] name = "base-sepolia-gateway-worker" - +[env.base-sepolia.vars] +GATEWAY_DOMAIN="base-sepolia-gateway-worker.ens-cf.workers.dev" [env.op-sepolia] name = "op-sepolia-gateway-worker" +[env.op-sepolia.vars] +GATEWAY_DOMAIN="op-sepolia-gateway-worker.ens-cf.workers.dev" \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 42ea5e16..e4dc3b47 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -37,7 +37,6 @@ "ES2022", // By using ES2022 we get access to the `.cause` property on `Error` instances. "DOM" // For `btoa` and `atob`. ], - // Skip type checking for node modules "skipLibCheck": true }