From 80a6b1c268cc042dc560698884d641e7d376ef78 Mon Sep 17 00:00:00 2001 From: onmax Date: Wed, 31 Dec 2025 14:03:34 +0100 Subject: [PATCH 1/5] migrate to self-hosted Cloudflare Workers - Add wrangler.json with mainnet/testnet envs and hourly cron triggers - Replace GitHub Actions sync with Nitro scheduled tasks - Delete nuxt-hub.yml, sync.yaml workflows and sync API endpoints - Remove NUXT_HUB_PROJECT_KEY from env files --- .env.example | 5 +- .github/workflows/nuxt-hub.yml | 86 --------------- .github/workflows/sync.yaml | 99 ------------------ nuxt.config.ts | 6 ++ public/assets/fonts/firacode-030c1602.woff2 | Bin 0 -> 5384 bytes public/assets/fonts/firacode-300fab9e.woff2 | Bin 0 -> 7892 bytes public/assets/fonts/firacode-50d475f6.woff2 | Bin 0 -> 3500 bytes public/assets/fonts/firacode-6175507f.woff2 | Bin 0 -> 11992 bytes public/assets/fonts/firacode-7d2b4d2e.woff2 | Bin 0 -> 7804 bytes public/assets/fonts/firacode-b029b37d.woff2 | Bin 0 -> 23348 bytes public/assets/fonts/firacode-f5905b7f.woff2 | Bin 0 -> 6664 bytes public/assets/fonts/mulish-294ced17.woff2 | Bin 0 -> 15892 bytes public/assets/fonts/mulish-4eb440e1.woff2 | Bin 0 -> 9784 bytes public/assets/fonts/mulish-78a2d471.woff2 | Bin 0 -> 21256 bytes public/assets/fonts/mulish-c1a61bc6.woff2 | Bin 0 -> 26912 bytes public/assets/fonts/mulish-e64de9e7.woff2 | Bin 0 -> 29896 bytes server/api/[version]/rpc-proxy.post.ts | 33 ------ .../api/[version]/sync/missing-epoch.get.ts | 55 ---------- server/api/[version]/sync/snapshot.get.ts | 41 -------- server/api/[version]/sync/sse.get.ts | 82 --------------- server/tasks/sync/epochs.ts | 59 +++++++++++ server/tasks/sync/snapshot.ts | 47 +++++++++ wrangler.json | 37 +++++++ 23 files changed, 151 insertions(+), 399 deletions(-) delete mode 100644 .github/workflows/nuxt-hub.yml delete mode 100644 .github/workflows/sync.yaml create mode 100644 public/assets/fonts/firacode-030c1602.woff2 create mode 100644 public/assets/fonts/firacode-300fab9e.woff2 create mode 100644 public/assets/fonts/firacode-50d475f6.woff2 create mode 100644 public/assets/fonts/firacode-6175507f.woff2 create mode 100644 public/assets/fonts/firacode-7d2b4d2e.woff2 create mode 100644 public/assets/fonts/firacode-b029b37d.woff2 create mode 100644 public/assets/fonts/firacode-f5905b7f.woff2 create mode 100644 public/assets/fonts/mulish-294ced17.woff2 create mode 100644 public/assets/fonts/mulish-4eb440e1.woff2 create mode 100644 public/assets/fonts/mulish-78a2d471.woff2 create mode 100644 public/assets/fonts/mulish-c1a61bc6.woff2 create mode 100644 public/assets/fonts/mulish-e64de9e7.woff2 delete mode 100644 server/api/[version]/rpc-proxy.post.ts delete mode 100644 server/api/[version]/sync/missing-epoch.get.ts delete mode 100644 server/api/[version]/sync/snapshot.get.ts delete mode 100644 server/api/[version]/sync/sse.get.ts create mode 100644 server/tasks/sync/epochs.ts create mode 100644 server/tasks/sync/snapshot.ts create mode 100644 wrangler.json diff --git a/.env.example b/.env.example index 3d588df..0e0e752 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,5 @@ -# You should copy this file to .env.mainnet or .env.testnet and fill in the values. -# then run the proper script `pnpm run dev` (testnet) o `pnpm run dev:mainnet` (mainnet) +# Copy this file to .env.mainnet or .env.testnet and fill in the values. +# Then run: pnpm run dev (testnet) or pnpm run dev:mainnet (mainnet) -NUXT_HUB_PROJECT_KEY= NUXT_PUBLIC_NIMIQ_NETWORK=test-albatross ALBATROSS_RPC_NODE_URL= diff --git a/.github/workflows/nuxt-hub.yml b/.github/workflows/nuxt-hub.yml deleted file mode 100644 index a9339f3..0000000 --- a/.github/workflows/nuxt-hub.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Deploy to NuxtHub -on: - push: - branches: - - '*' - -jobs: - deploy-testnet: - name: Deploy to NuxtHub Testnet - runs-on: ubuntu-latest - environment: - name: ${{ github.ref == 'refs/heads/main' && 'production-testnet' || 'preview-testnet' }} - url: ${{ steps.deploy-testnet.outputs.deployment-url }} - permissions: - contents: read - id-token: write - - steps: - - uses: actions/checkout@v4 - - - name: Install pnpm - uses: pnpm/action-setup@v4 - - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: pnpm - - - name: Install dependencies - run: pnpm install - env: - ALBATROSS_RPC_NODE_URL: ${{ secrets.ALBATROSS_RPC_NODE_URL }} - NUXT_PUBLIC_NIMIQ_NETWORK: ${{ vars.NUXT_PUBLIC_NIMIQ_NETWORK }} - - - name: Build application - run: pnpm run build - env: - ALBATROSS_RPC_NODE_URL: ${{ secrets.ALBATROSS_RPC_NODE_URL }} - NUXT_PUBLIC_NIMIQ_NETWORK: ${{ vars.NUXT_PUBLIC_NIMIQ_NETWORK }} - - - name: Deploy to NuxtHub ${{ vars.NUXT_HUB_ENV }} Testnet - uses: nuxt-hub/action@v1 - id: deploy-testnet - with: - project-key: ${{ vars.NUXT_HUB_PROJECT_KEY }} - - deploy-mainnet: - name: Deploy to NuxtHub Mainnet - runs-on: ubuntu-latest - environment: - name: ${{ github.ref == 'refs/heads/main' && 'production-mainnet' || 'preview-mainnet' }} - url: ${{ steps.deploy-mainnet.outputs.deployment-url }} - permissions: - contents: read - id-token: write - - steps: - - uses: actions/checkout@v4 - - - name: Install pnpm - uses: pnpm/action-setup@v4 - - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: pnpm - - - name: Install dependencies - run: pnpm install - env: - ALBATROSS_RPC_NODE_URL: ${{ secrets.ALBATROSS_RPC_NODE_URL }} - NUXT_PUBLIC_NIMIQ_NETWORK: ${{ vars.NUXT_PUBLIC_NIMIQ_NETWORK }} - - - name: Build application - run: pnpm run build - env: - ALBATROSS_RPC_NODE_URL: ${{ secrets.ALBATROSS_RPC_NODE_URL }} - NUXT_PUBLIC_NIMIQ_NETWORK: ${{ vars.NUXT_PUBLIC_NIMIQ_NETWORK }} - - - name: Deploy to NuxtHub ${{ vars.NUXT_HUB_ENV }} Mainnet - uses: nuxt-hub/action@v1 - id: deploy-mainnet - with: - project-key: ${{ vars.NUXT_HUB_PROJECT_KEY }} diff --git a/.github/workflows/sync.yaml b/.github/workflows/sync.yaml deleted file mode 100644 index 8156915..0000000 --- a/.github/workflows/sync.yaml +++ /dev/null @@ -1,99 +0,0 @@ -name: Sync - -on: - schedule: - - cron: '0 * * * *' # Runs hourly - workflow_dispatch: # Allows manual triggering of the workflow - -jobs: - sync: - runs-on: ubuntu-latest - continue-on-error: true - strategy: - matrix: - endpoint: - - https://validators-api-mainnet.pages.dev - - https://validators-api-testnet.pages.dev - - https://dev.validators-api-mainnet.pages.dev - - https://dev.validators-api-testnet.pages.dev - steps: - # - name: Stream sync API - # run: | - # # --no-buffer (or -N) tells curl to flush each chunk as soon as it arrives, - # # so can see Nitro stream lines in real time. - # curl -fsS --no-buffer "${{ matrix.endpoint }}/api/v1/sync/sse" || { - # echo "Sync request failed for ${{ matrix.endpoint }}" - # exit 1 - # } - - name: Sync missing epochs - env: - ENDPOINT: ${{ matrix.endpoint }} - run: | - set -eo pipefail - echo "🔄 Starting missing-epoch sync at $ENDPOINT" - - while true; do - # call and capture both body and HTTP status in one go - resp=$(curl -sS -w "HTTPSTATUS:%{http_code}" \ - "$ENDPOINT/api/v1/sync/missing-epoch") - - body=${resp%HTTPSTATUS:*} - status=${resp##*HTTPSTATUS:} - - echo "HTTP status: $status" - echo "$body" - - # any non-200 is a hard failure - if [[ "$status" -ne 200 ]]; then - echo "❌ HTTP $status returned" - exit 1 - fi - - # JSON error field? - if echo "$body" | jq -e 'has("error")' >/dev/null; then - echo "❌ Server error:" $(echo "$body" | jq -r '.error') - exit 1 - fi - - # parse out sync flags - isSynced=$(echo "$body" | jq -r '.isSynced // false') - syncedEpoch=$(echo "$body" | jq -r '.syncedEpoch // "N/A"') - totalMissing=$(echo "$body" | jq -r '.totalMissing // "N/A"') - - if [[ "$isSynced" == "true" ]]; then - echo "✅ All epochs synced (last synced epoch: $syncedEpoch)" - break - fi - - next=$(echo "$body" | jq -r '.next // "N/A"') - echo "✅ Synced up to epoch $syncedEpoch → next: $next ($totalMissing remaining)" - sleep 1 - done - - - name: Sync snapshot - env: - ENDPOINT: ${{ matrix.endpoint }} - run: | - set -eo pipefail - echo "🔄 Syncing snapshot at $ENDPOINT" - - resp=$(curl -sS -w "HTTPSTATUS:%{http_code}" \ - "$ENDPOINT/api/v1/sync/snapshot") - - body=${resp%HTTPSTATUS:*} - status=${resp##*HTTPSTATUS:} - - echo "HTTP status: $status" - echo "$body" - - if [[ "$status" -ne 200 ]]; then - echo "❌ HTTP $status returned" - exit 1 - fi - - if echo "$body" | jq -e 'has("error")' >/dev/null; then - echo "❌ Server error:" $(echo "$body" | jq -r '.error') - exit 1 - fi - - echo "✅ Snapshot sync completed successfully" diff --git a/nuxt.config.ts b/nuxt.config.ts index 096f9af..bbf2106 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -139,8 +139,14 @@ export default defineNuxtConfig({ }, nitro: { + preset: 'cloudflare_module', experimental: { openAPI: true, + tasks: true, + }, + scheduledTasks: { + // Hourly sync: fetch missing epochs and update validator snapshots + '0 * * * *': ['sync:epochs', 'sync:snapshot'], }, openAPI: { meta: { title: name, description, version }, diff --git a/public/assets/fonts/firacode-030c1602.woff2 b/public/assets/fonts/firacode-030c1602.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f4cf47d580428bd87622e2d2148981ee04637c94 GIT binary patch literal 5384 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 amh*XL*8K;bAc}-71OH>d`@ZmQ0000b=dM2h literal 0 HcmV?d00001 diff --git a/public/assets/fonts/firacode-6175507f.woff2 b/public/assets/fonts/firacode-6175507f.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c56ad0fc6e12b902a3cb7a007ba7d7b0c58610ba GIT binary patch literal 11992 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 O!X#)&sqfRnYXAV#NeLSO literal 0 HcmV?d00001 diff --git a/public/assets/fonts/firacode-b029b37d.woff2 b/public/assets/fonts/firacode-b029b37d.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9589c8a91cea0753b51c64a37b6bbbd3924325c1 GIT binary patch literal 23348 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 SE|7if3X~Q1llZEVuK@t(OVgVG literal 0 HcmV?d00001 diff --git a/public/assets/fonts/mulish-294ced17.woff2 b/public/assets/fonts/mulish-294ced17.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..221351457c23d5955469ee3e4a06220739ddd168 GIT binary patch literal 15892 zcmV+vKI_4EPew8T0RR9106r7|6951J0D@=$06nAt0RR9100000000000000000000 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 qug$p~dQr#NaL^WR?%0002=)}Isr literal 0 HcmV?d00001 diff --git a/public/assets/fonts/mulish-4eb440e1.woff2 b/public/assets/fonts/mulish-4eb440e1.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..18a1e6808084335dbc70cc9bbaadcc36cf88470b GIT binary patch literal 9784 zcmV-8Cdb)#Pew8T0RR91046v96951J0By(s042x(0RR9100000000000000000000 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üxPP;fC@u&}h+Oz0Hvqyk(Gx4^@j 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 Df><)q literal 0 HcmV?d00001 diff --git a/public/assets/fonts/mulish-c1a61bc6.woff2 b/public/assets/fonts/mulish-c1a61bc6.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d66e265a68534eaa8dc7f05233b63d056e95d644 GIT binary patch literal 26912 zcmV(@K-Rx^Pew8T0RR910BIlq6951J0Sia~0BEiN0RR9100000000000000000000 z0000Qg$f(Sd>n;RKS)+VQil}=U_Vn-K~#Y_Co%wuMlXI52nvCVaP%Y#hH?Nff#Mti zHUcCAjT{6Z1&K%pp&J{!`bW?@Ov<~m>A7v2dU+D$V})|tN!*U1{O;!TQAo>4E2Fdj z|Nk?Sju>m8Zh+qTnp#;s=t&CDW+*^ZRzf*bDMy&)EFm@9p1XZb`~95! zvTr1AP=>@oD^MIt(29a8Ob{EwOD7CJl6^d`{9MOUGiUT^1(J{> zQJ}%(KAnCuQrygV|B)a_@&}^saCapupb!+@q14@z%8y8n1Fa#fH}n*OmY}U^T6^H; zgN>E3e^9_SD})aB$4r}P6Ad9Qq_oYkd`zEcGji8ZK_&$|p(jbM0{{dlhfFO<9^qx} zqxAdUg>(?M$po6LPCviqHpFWnj?gtU*q#5Wy>IxP|G7mZG+H1ssPAt?AHKYqL>B^D z59GiC;vlh`LS%!TSzr_7HgYtndH7P5s(=esk@R&bLDL2cllqC$tx-0}C2(CG$?xPUj!?#-w*E1me z_bq?fq2Dh;3Th<6_I1c|lH91KM2=1ZMrZ zU{;rK6vzNW4Pwb^t%}T2=I|J40tpAvMlAX6zIXjL?Crm?*O8C?*dP*Iv0(_}4tB`e zD|_Ak|9)w`kaXK}W@yI{gYYCzMa4CZ^YNW-kRdvCdPv7oFl#$0i>w)e;U32RFXwT! zi#2k!loD%w_S`LSV#DE_hN%yNnE+vWp8Z~kfCM6=fY`8wsJKDgc|-h+fQ-!V0}({m zO$jzFGt9^=k@>-I`NM)NvLdT&>^GxBwlF5%-t3o@LyqNyl$>@p=Vc^IRxZowZy?C6 z4#}050uS<7Xq)Tu5^iK|kJ{>ONh47Iy@|46OoVZ7xfK+8% zG|_5Eh?e|eA`9%vQd3ixI|!awN3zAWNi;FZ9?mh3Po6jPn-C0G3~0kpvo?n!^YMwA zWPp+g`oFs$4%`OJ40Is~1_76x7XlO@Lg$aPKt5eKUYvJVD&=aew%)3T&8QjqaTrG; z5*#9g5yccMM5P+l6@w+zgqpO8msyq7IGr=lL`!f5PxQq=3Z+PnDr7Hh_RYHNwD5wCrhVL4ZNtBH*iSb_Rg- z;dnX;q))=bDIi4vs#yVn!S_9pP65Y9`YE7%+UwQ>QlQKx7ZAAqa5Eev*8m1ZsOif{ zq2a8V>VDjQzqw6^Kx^kfxpkhG<;@t{JqzeCYQxa>sdy1e(7DC#^lKlAK6Y2zAWF(6 zA0q@-Lyf51ZGW#KLQEYTs9igR0oIP@N0!Ib4OR}mv{3h=KN!rP&73`X;lbG*vn*XR zCpjB&8e9ONfw;RggQ5~NNb#Fu2eZcrcVM05)$Bd#XQ&!(n7`B_b0xLojCO!^(ro&+ z#9HR0l3|qu22V5yK=H844y(l$b_vp)*d8;ij(9!(cR z3|X(6_yXEpDsM{R-D`58FNgXfHI`%I$#D>Kc8m?)z(_bBx>|<+MYj%3QwhvPMnqq~ zBz?*E;`;j&bq*LgwY?V^^jK;A^n)w!39ottM3Uv#$EFV| zKE%M%t*Xg}22wj2rwk_9%2@Wt;?lY>7A#v+7OP3x1Eti=hsD&r0;Qdy-HvoKIcRgE zc>k7_6LIcp=@FD^5~kJdH8tuU^CooL3!J?QJz62 z*`gq`GcC4lDP2k@OX}&AD_k^$eM`q@&K|$;&jpJXhq$bm|YgfR(SOVP;-qC|8iHJp8C}5 zfHjS>KtuJ*rz$t5SumRM((7_!$qO#v0c5f1+2WFOm~pKU=%}yYfzT#0|dEZE~hMPr1+}X^{#Q}Y*6)QA&@qZt*{w0ZZ!gZ5_FTmAWu4>v4zFyi ztWzTcqyKD$7yYueY7tnq-%W-9?O_!yTe)$u+jvTC=&`cl(B37C70J?WgXv5+ zTcjAjTHtSMZL)>IPKoxl{T=E69CXrI7iG0eOPgKQs?E*Ku-nPiuh<>Wyj13sFM9M% z3^9cnX3Y@!Id3kgfK%+tKC%fof{k;aJYu{4u<|(!y>-HkIptFU75`aDVK}gnPGDd| z3kU(jXU!kWf!y%sYmff139t0_<=UafS4+>XQBybE+P{PhtEZ^u)HFu-uVBDBls6qm zZ*=(Mq{r!TO3ARi_J^DQf<|T9k<(i`sL)WmbiLDIUc=HM<_Qf1#tQXncyqOYA9K?6 zTFgIVC{-+xs>e&a?EU+I)&9qx1GT#ca(xDC2ktm(ZXTQ`WU1G@+O&IHhHDFD#1u=& zkCIzcpKg+dt=hku)630kl(&XlGj4ICZl!pAdAORF>q>e5T7@kL+9pg2r{voEifotH zS90~y6R0^1h+_%dd-eMOx<_9(ey@LRR$h0-l^kZsEIyacFTXZiV^6#Mj7G>LeZU%s zd0%TXwK+#hJ@B9%DATU#N3CY4x7XCmSGeT+x?iulheP5}?MFGEm|VcFste2Ij>?lg zVcb6nc{_UoSza66v9=Q(R^;!ovfVYwQ(vvG+wSrs>$9n&gu2(4SOd5wg!jWNK+W?Q zsc{%`|$qB=k}(%xHoNVEQ8|5{Lb7AqwnJ&FP5utfYDqg)WM$3pnv{c{i6)e)fx`>z9Z}pXM5KJnq8Y=8)o%&|MP#Hg&zb5dXR8527$*C zhkyh_#+HDJ8##C09QYc+O@IkJ1qw8Rj*h=zVMdy2nsH{BVS-u0O%y3os2}`hl0Pgk z$093)TV=CoTNo`6Z?9$cOS0Y}DKAz7BBr48S!SbE5(OTNs!2IspnV5M|hQ{kKA zW5y-~*<5&g@o@-P5SEz6V%aRB$qie`gEbZgD`HdKh)yC?GnG*5GeTWaUu;G+YS4x9 z6$OK#@K~Z7x8nr&E<`Y6g+!rH2+AhvByzSTmJmS#gRyF=4rTR83zjU$m{};RPhG$Y zlXG)^*$LUCEur5gCl$7fy16wu8VNO7hp63-y}S~C>S9cKh(a>Mi(W-+snKXO1QFmh z;hXsIctyY_LU}qaZ7=4hrwRdP8gDe4MryyW*xgcV(pn;>RVnGxYq_63b!Pt#T*feb z5wLn82^M3@RI%^@5vqwu+oU**qa>w}E>_^jfy$!NyZnYP54RaI3TmGm=`cP;ZRi8)`4C|hVv#UALzF)-HtPXgBgI4Eg=C?{Ys;`%lR zGI|0Sv8C_xD;D(P7#KG_)aOMz?1-a|Iqrm$Qubrd_AU6{!jcA<8nfSavu=__e3$!% zZ7PM<-{UOZ287Mxl<_@Rd~5;lB}{`N5l+Kb||-&!{MBsBy*jzpYqAj}xrJ%=#D z(7ySC7yZvv(@Zx*TT}}N*%pioxwnmEAF zQ~qEp(r9X`0$rra35Bu-kv0nEt6=V(HAQo|Wjvbmt&?@|J9t{=k|Zu<*|5Cr?4S)> z6zxq899HGwE8t{BXBxFrlpOdb(7(`6KW^tKyG~0!@7N`&mtDEx)g!2Q2JS!s^5gpm z(R{9`Lm8%y6pz}A9K_Btce$69x5C%P-*%*OlybCcta_Y-j#m>IIN>>M}G$MeGh zevluMbjV`mae0?AS&^z5tQk>{Yq)gs>pQ)sgua}AD3o&&1z6V=vI8&1D~I#01t$s( z!vFQ|w*m^m%v<>Pl>%ty4sRwvmjL8x zDSKYV3p3v@mRQFK0TOrsyi-actw)#OXfIIikCz(MOc@@V0N%h! zP*Dn?GoHabtnkOvkKS|<5DX}Y|JZ~4s|MKfSPT*YJ z=~ouNi@($~bQv>e$(Ad1G}BE#ldMLM89P4yjr07Hr0+8^Y@FvqNMhjM7c)V6kh@2uDo7h*FzeDn)} z`F?74f2;=ZQD<5NFkLp~n9joPc}%ka!OgY-P>1aKzR?nwxx!TdGP=z~06nqPw<-Iz zwZc)T(rN&HVVbP7*;d=_wA&tgP44$$986wFMO5Uax|m`Hi2Q_XfXJ^CXIdI>0*}c5 zbx4Cdk1L(PWn$Mze$$&*c!;)Yv4hB}G z$l6e?2}Nv3^l`$*(Uz3ilM!~tM||Av&T!i^%&z!3kWmh0oWo8hgfp4MzX|2XAYfa( z98Vw_TX}*_(PEYeeFzu4;Ngi{zXb`53_Mx>$Z{ZEL`&tMn3EEtlpCwk{|xy#nXoiC z%R`V5PdnmmU1;LsjPf5l|7V8NK|yo?TpgXA#_YDs`&?q&9uxLDOL3u*el|#)ClkRd2O@`VVX_VYK9K;d^2CKNd5jyF8q}|_%+!OlPp*kycH?1K6D#W z?C%h*4%x<(FvOKHZuZ7sVtgfKjQt64FryvGcxN-2W0~k^CO8o-DGAbN(12|=>9-F@1V5cmOQ#k!u7>czOmAcKP{0h7f-FbAhxGp?>G;4k7`bM}~$G z)v3EPf@ti)-5E^|o^)p{%kgA-##f=rLQK!yVXcF{gKt4+0ATD8!0_{+{|1J;FBPXT zX+~H6(HEDf9y^z?;JhQI31B@ES&~*jGWZ(l&QR^u1R9sr!=Un8ML=O|FUrq?vxAqH ziGG7Qr;3EPgTZ0_2tH9d3M75w5XI0{Oa@Tp)$_V=xW)`cR?vjQ&nRIPcH!_d`G-wF zF-V7DJdRNrOi%-m1yVxuB{~rlrtMN%*^(A}{~J6V{ToOe=eVKngM>bU0F{+x;$StF zE~y~`RA<>QMoRY?eUNwt7jZVz(O^Y@UoI5uV-Lh#wZWiH0+NIp+77^}1-u_4ArI*5 zLSMs!+62SFV+q5~3a^w2^Hq70$4R&4JLF{0F03%$KtO(Gu|0&{Vzm{YG30zpIZ9`M zFj=$6XqbS+smm`%nzJ<~D$yL#5gGNnM#_A*s8|d%VNST9c5C+stDPVR8kTd1Fo?yYoOGgG19{Q((S6Wra#J?Resyvn6JQ z7`%Vb33!x;YKCcqjCZF6gz`8|G8yw@G!c1ddZ095m6I%c2z4&OYDbY0ZBS{JRP$m#jk> zs@-WDc(P;s1y)wdo85VFkHuwp{t8cSa>cbjQ=t{3upTG=CW8tlid8MOG}I=D0`eUx z5uNa=IhQKOMBz^V#TuC#sqBQ)_Dsc32Jrxg}qmS{b@V z!BJ-!bDK(nB7*OHH`+_yvMb`xno|?@|e=SUU+(qlqvcna`atTVc3>D_ynS?i}Y|$^v zm^6pHS!X@7<;4@+sr9sNMzL*a-iYhnyM$fXo|>Vt>ygWV!zqcI&Va(5RsF5$v$+c^ zdv~9=`+V*F>xI{*0ToK~f~>`iqxO`YHss{Hkp1Q%2mNT5>zMK_?gZ5tJvDpQ!?hfc z4=c60p!}+bE}Qx+ofGXgHOY>=NBqL~0i~y|B;P(cD4;Tat(xZ02R#h>P{1)Fj-$8q zyN0OtKPbGBlmjvz^cmvZ+B~7~arc_`V^!dCVOf0|Y^s5IH`rWh&4pIqx?6OwdT4Ty zN4VNymCHaK(w%;l&B?G?s?iJTa|6tjEccB6fiB8=pz^k zK1d{t35+L9n{PAITWc`Qc`-Z%Xgq0oi))Z+KQEO)@x1nYxzYx+W1QN!8ONwrvsaf+ zIk=AXR;F;ssP>h&M^H&?d3gnxG#5Lo4srooBlN|}%hQpq$5Prl`erBm4yfY}UB{=6 zJaBOF>tAxzL|7oO@jP7-0TtfNYr-fOp_KsxNpA;>5f0IXzBz8bzR{m95N%oT%_Mn` zv+{p4;-*6d-g&L9?RZMrk0wB4%@#UaUyVY+T`A>uHl* zIw?0VUC3AXiw}eM`DF%ICCPVxg#MM{*y}=8#iT-M3F5LjowlF0JYy^OwjW!vocGSW zPvz&f!?QxUP&kWm1<||YQ1vsM_D-z88y4>`_1&4mNytTX6Kb?7f8>p;O`ruKc`(5^ zpyHmX1Ygpa=vGHst9NC4F^x>D{XFRMVpJe2S^RS#qX#+5-+lmxH&4 z*Je(-BxwiTY}&ZU*bTuHikL8O>i8_%cfstLk?hlz>y_U2TyN(;Y>g@d%6jRMxh*VP z7IS?80pT2fcJ%X!^s&E);(Pk5%On4c{FD3{?N3Z=+4YKf>rGw-yhS`_x8|Rn%g>;> zYJ(VDaW-?YDoQhjvz_DAcH8`S?+llsZhNK({GoOWZY0l$W+l@>J$~5wdn@Zd66=0> zX`af}8ZTr3zfqqNz&tLB8I8vcD z<|a9j@e)fU#2LdspWedX^v0%LSvS^qcJUqsk9TvlFR47aLU+K?Oi!(7Yc%>A%=u_{ zc2kqHZLDMPI{Q<5yVdDzv$o&hyl!o`n=S3O*7pF5{Bu*tc4%P0c5qWD;To2_;YY_{ z)9UrdckNn#Vzns-qy2A;NI=ZfAEftre0zt6eEZ_)^lA3R{k!*myy5OW`%f19xc!d6 zzo&1WTU>nP{ON4=^bh_ZC$4M>C&{1ZKoWArj)478dcb*bTPWd5Nxtx7Zq?$&tGAul zwP(wb9aX;;oIg)0=6q4jpQeJCr{S=xRya&O_o^QxFcEfS6P);^jctSqF|hwj|M-_X zz9d|{A`tpG))C?`Z=gkd-N$f+Ol3KicaDrci+X2w{=>uC4ZaNjZtmy=XZ2$FoTd4m zg^DI`1JhR<8H60_jTb6gwXxG zk^lVL-?Sj+X>{*Mw7Ev%Z-G^o9PSPAFaL_`zg12zR=;fMzS7j{w%c1>O;^BZWN=DA zF*=Qq7psWG+=fbXO%NL)bP!sDPL;Z`PinJ|3on-QJ2}RdWYAVqt8-zZgwBFCx4oh& zkQ9MH|rdgoC}*Dc;g&YnfSna@VfS$JUh3z!^AV!;jH};8>VI{Kx`xP#a8^%es#WZx*XgdtS-?zx z??g}Lbpr{1V|cO1Ki|K^pbC3WO?BGmsT%Io0{1V}ix`Kc^q%irXLkb#>uBo*H{4c2f4{sX0r>x|8z);1li@@lPCZ%5e208#!Z zE7}crzs7p<0ZLO{*4S`moz?PX^&9*fm?+Cl9O0fJT8j4>IIzU6_keeOTAg;UUeH{x zGBR#eJ7<&{aO%?EGJf|T=&C9KzL4IWLN9-Z4(YxLGNM>KG? zuga#k1;TZu{{nSKb3d3nqBAx&ISKn{EWS2NAW9l9%&^-Qti@&@;hs4`2#^{Loj#o| z(B3gk4X+nSno>YXl=|oogcpT}%I*IF7vCA9eg{O%)7<&ItmN!YqlwHwh3_faAI=w< zL@ZO84*W`2Mi@WnG<7tw$x<$4eqs;d@2K@s-dQhHp=e;9^?qS1=Ic!rBIfCDA_zu| zUL}J+uPXzMNVU%CQN^Ix)&mE2L5ItOHj1Qw9_>7923d4{V{2FqSNZhzT32(#Ukd-m zn?R{MjNp^Azlx9Fw9U9VGWDkI#hc#Qzser`MxFHyjJvkuo5Fjuk1Z=hNM5>5yn9{J zz_Zznys-D2Pp(e>aQ3B3@#wH4Ezq8;+9K!(&bsiXr=m!!X0r7_l<@8n(G3mqSUN8FIx0#E1N*=a_MLhGT2 z`y9b!A{I>99l=yAQI`agCs}T?Yx(-bje9mj`}g2~KwCX7JDbBU|1#f*3vS#B9sRBA z8;r&6vV)lePRMy@e@85_gVXWAb>~k9fG)l6qh^1|^I8kyFA&ahp2%vVv|;NyAVW6C zoF-O@CdUa)?>sh#kPgYKnYFdhz_!m=&9kOMjR6&ha0(gSL~=4<%XGre#+ z{ijC67Q3#-q~KNtL+(~!dnrWRRQ^X@)!~bCT>ZtvUt%W?K0+_?9&|%{9ihu(Te*A2 z9&(1zzxyTdcV--lr~MI@v6bua+d0HTIFn`KwqFI_eN(=&*A^2gn-RtvQ7C#Fp|5C- zOD*Z;k^xv{GXQm8Z!;uc>|*tQq+MwaxM%hj z^?}~|g*72kH0o6q4H2>K|I-(tyuG1En_BBUo)%xrBjEKtS9QlcoNb(!iEuD8u;u`i za%!qo>;DWI27PTiFAHsZViFoVq4jU=k-BrTONYPM`x974W%z;90opGp}ktOQi zOG3vC>%VsIrs2}zF~(TI7zOK1eBA-8# zoIc$!W8SFDAyIRn{v^Sr++15xLIO+2*d#Wnht|KS{Od*V-4l*;xd|8| z|4b(RLe3E;NQD#aO2l#+1``HQT#Yx7@#?@6%k#J+!{ul}t!koKz7sxN#MAX*>3 zU-|d_v(a5Lh9iNUPrEAE|BO9k?Rriui9Nwn8-b`w8BvjKD(ikHV}J&#dQmd-#dY@x zAakX%CxH=Kl8M=3#vF9}11sp=U`G9k95BYjU^1=n^>X5U$DCJ{nQ5!?N@bN^)SAhI z>OKQbCBnCh?cNgFmD1lTQNK+$2hW!|Jjir>%8qy{;|eUGeBv;x2ij_&?Aa3hKQ|V0 z3(YHnXY>8@Lc3Zx1?HWBZD^Y%;Flsimlz_nPt=Pdw&)OAGlLl8rLRO4B{NbHaP6?Z z(b9UY?K82ZgA{QY7!x62-TY4^(gDq(_t}T;SH|4G)ynlI5kUoH_YN}_vz02i#ohDI zSP^`+#Jc7ArXmdBLhctOV_sY*-+5peBeR<6|BmPJ88jEp%(PW{Wzs4yU{om?D?9J) z{+3)P(}DcF@2uOa6>Jo@KwPTRF@fFbPTgpMWhTuxKiI&sJmU5b_1w24TUKEyCoh`y z9lD*3vg6K0b4%YYaXJlz7kN6EEixT*-&{UIDiM(L@BiTWjz;jIX1Z&cDO0&eI((xN zUuJT;z{Y#)I`>~V$@NtdaNOPa^r0d@Sivd#NM(j!MF4k_kH1HUoI2N!%DHo3-3N7L zwHocdj)&gjrL|`&SD%Vxge2tfSLe6^e?fBwF9lD@m!0wlg0U1><402QhhXp0*eS_u zu@*15{ejieyTOVrKZ6cJ&t7e?A={Pd(VGy6{ zNLB-5(l@u9$}^6c>h7dCX{=w89l?CdQJ8kdn5q?2@2fIa3O3~zA}4bD2AQ*HfpZQy z;dq7GC5>;HK*7*slcQy>L&(Q7H!)1mK=R*&iD@2SBNS@gyv%3$dv4`(8(uW-BRd(@ z?IwmX!!>DFupz)_1GB*~Fkw<4@q(ijXTj=pA6=|7 zgV6O0af*+w0tGRx1ci?#6j;?;OtQV5=zMdqf7!99`jo7B88yE%WOVcELQe?x6)KhJ5 zurh1s*c&Q?pNzgAp`bI`m{8G(DJ2kGERY&&olMf3`Kaan=eP9WH#^x zVp+0u$~67KoEZErl`%((S#6M?G2g3{X6U@XemiGmHHW6QVD1yIg}fS2VbmlM6Q0l= zO*1j29ENWA!miTKTTbAN{)R@`C%gi2`-Z;nMnL5dw@qpdB4V{|n2j*%xT#^G|5!jQ zqNSDrVhS+>%Sq9yrUNwjV2Y}}DNf0QY*Y{{V8JpndX;`6N(mZ}?d6I@tWeSWUDVU* zQ*G!64g3YS{B!HSpI7_utQWjH{_Tt3CfgG;r0m(E)C(ux_{ThR=ill-0N}#&Ohxdc zwwP5HB%FzMq18&85q%ZpbBekL8R4h#H0?WwXjTZoXS(c4Vgf`vVmfxDjhjjlT!IEE zb28FWwA^pO=uHDh6D9$O_XDnB=j?nu_dFd+e1ixTaba2q-8|IwN~q`-W)nL?ViMC} zs5H6r^!l_en*vGdNS6e_t(v0c`~iHB`chJ@gsQ+;QMI51MJ?p=j$`Y7z`VstoM&|~ zk#5mt5t7Ro(1t?lE-`0v$_@_fZ#Lb=1(^_s5|NBEIV)ktg=$R4#fn}*1s9^-Z53*R zGZ5W42m>Bt{ZM@}`G^xk((6No^{^gwL`YkmV(OMuCDoM&3;^Gpz%a<^> zCR3Yp1;uZ&xK2-GOrEw0NU_6;qQ8Vfzcir>38_$Nrrf#g4S0xaw@ax(v=*p`)a#}Y zW>WiZ0Fvdce#(_T ztc9zsCe=ZTGEB}WsK-oLWER`fVCE_p*`;?I`#0#1mhc_tbpW98I(S)h^dCd~GHD?g zz;vk>jMF+OZFVZvl9w}iGdVOEGu;(q+J&N3gMxL?0+nWph&^=CF8xxa&CiV?sc0%k zB;jAEwu4S_0Cm8iDNCK`uKY_X`-3Gbs?|)f zBGw{J(@UWhgYjpO@M2j$sUEFwDzmZp`{xH&D17&G$6Mv8#P ze@~R``0ru>pXf3#e~X{pFViB8VLphbTZCHN=)b}mt$LDwe>aHqs_E8>+z?aXW8oULF4G@aFgA zugu?)e=7fSeo6iZXe^q6mZQz+26PX4C3*|`6#6o{1pNU9i6LY77&XR&nZ#_yq+l*# z?qJ@>DzGqCg>_>mv750e*h|tFnE|P}iB}GWXq&1|Yq;yg~sgzVh>Lw$}WU`;UKu#jxCBG*(QB)Ku#YhQKIw=#B zO_UVMCCVMD6IDSSp{}JKp{7yusL!b%X=7+kS{rRYEt^(MdrhmO_0n_cG`fhcqxB%> z%p7JZ)5L6tfO8zW#hS(1&njm7urIO)Io+J|T#~EeZsqpyT)YdsQdk1V;Awa-AMs(n zn(yH!_@n$C{G0qzeht4{P$Z}k_yt3Pt%B2n8-nM8Iw3A(2rGp_VOqFTcu#~xUeR{Z zC-E@x3h{dJIdO^jlf+e0D;bvTk(5Z@N(QB7>5TNG^p^C6v|8FEvzAF@K3Sh^Mz%wi zE-RLqWagY*E-iPJr_1-0zmluvVflIapu(bPRE#L@Q(RGWDe+3RGNBw(ZdIOECQ6S6 zyd3b*9<88{ibX~U1BSPK5re83nLd-L4>D)eGmvK< zh@Pta^`H03BtE|-N|UiKUOBrl*@W@tfdjG@XHooU0mpu( zkNN&pKwzMr88Df8pm@=4M)H|c@!Z#wCmX>rr|p(lp_`_4;NZq|(qj2}9mYQB<4vr% zv(5we7KaQEw0(+$30$$bxM=a_sX69bVPO*(x6~7uRS$^ANRTx$;12(XC)swHYh{Ze(W(14F!W^RuG7{MG713lLDfHTrufoP$J`;@qWoRgxOVVu1Z zWtIWNsYcFj-iZgFKBWWIlh)S8at_H~Mqy4)NwtAHfN{7qgAo>%`o$w+j^dy1lkv>+ zk;Q-SY_)XIfXk*&I${qrwmL8Z>j1l3Jx#WpLxH%&ae#1ag#Zvp30zBTIs7O4036OR zwYJn2u5g;$TGAYiZdi(jwxzQCS_3#*`r}?(E_C~yd0~KXEL$8PAb`*}>G^GZkTl#d zmJhl^u=_bgJkWi;!W}V&0NBU?M9DbhG~{G)v^3&(OL*pI2Q&d6s?@@wJuk}fXl0Qe zB&_c9EN4tWg@I_tfDnf>C{_lp}X+gxLf>xvj39~NWq^q;hSQSRXITVB#v(0^rZaZVMI+n;)RE+o3y*8*^(%QY1wlVczCwyw+hO z3;Dz@s}6&ij&pi!5O7`wca(vin_9shr{tU`PbH;6{5WlXc5~`F5U*jj}gpfq@kz0A=`bmxd(aL5CDkwL$5ce(>WIX~uvZ8f~VXhF)-yF7-)4G?5hoxzprN zj2Skns@gTLusAos;UENr%>)RIp8lHJ|2H#<0i&fU$y2aJ)*yr{%GAJj+78^$jGcR~<|UtkLx zuehEo@$)18^O-RTQPhRQ-i%Yh&zMRN2*#dtDzDX^I6Vmw%;MOfxxt1B&Jj0G32_FW2= z(J!@LmMmY{5Mcj+vxa@RG9tzSK~wh;Y~YGo z`Kngv@li8#?>?8@X0y!12_A>;R#))9<(#|g2R1g+j3?YS05-D{dv~#3%E5_^ zv)BkuFn_Ao0ueU_4XJO zKvST28(*Qc+puzN5xRRir$X`@wX5v}d#~>&?4W;aHYVk8BQvm_6 zgfi9N#`aIIqR*uE8P?=%&UpjYL)kv$rV^B+dayl-+gO^yrZ#nPi1o^s7JrcKAIW#Hq3U=>Pt!18X=Ol2{5Q!c}(=%k?~73^I!!h}Wc6n;UbW;bLjX zNRyS^#RhPsRG3?Bk;Z1u&B6sf$QBQ(ADu9QIKV~M(^j`0QIwE1n}oi4?l0SeOvA#n z$ZhQzbXsgOMX>NzjbVTn4FO-h#6YvTHYZAGgVZB96%Hj z1rs7%{M2Z=M+bIl-VVq+ze-!ocXqNnzp?66aEg4)#xFX*hmVYo_IIKUz#nVQS2E9Z zPKepai{Fr2nf>UWjM~c;j^HP&XNEX{22>5ADhUj5LePdL?A!w>nb(h6)skyzpYWoj zEG*lP6f-Bqy(d0W ztlzbj9{M$SjWBX7KV7jp6JsIyF$zEpBF<@=Di)c_&j;t*Q`*1$?wv58TFyQ?p+qg? z!I-%*69x-9+)XwJ!-XSiqh3~pT_mp&56bu>bfUWV?l|kq)2B~pU#R*AF%B@uCBYU~ zi#))1_Vu0QLJuC`!8?LwniM)cAQVO&47UiEAh!=Ie=pcx+7@RO?*AcV+RRD-fw#Cd z)mZ=sGZ# zQy>ttfmGBD%IXUTIEuYvFL*YY!2k>V`^tGl4|qw*$|$Cw)$#ur=9y0yWM6r+ib3|o+;<|G`*;! z^^WOIbJ1zXd(>QKBZA7TJ7_1tLYoF!j>hYpQLrkl< z96-S^gfN_>sJ)XT7uSOHj9Y+3TOMos7>o2Lj(}~GjHFf}?|Q;vCTwaNO;-KK@N$cd zhF8W|H*SeL1`#sny7jCp7Y^eBz(OR1L^x5He5FOvOi{~o1V_M`IIDs+Rw6>|b6o}9 zZdu1b7{ZW^N8`zl52h9O##=bTUfzAyr|Z>d06WVq*m+=TXjTNG%(U%mv{Hd}R0E{o z<3O(UVoGX0_#IVLMo+mV2@oRyD=GtfUE#%(dMqnJ`0+L|j-d3=&^V4#fn9X(F3{FW zV2RhV0>`n9Ud}Z!@T-aOq2^t`xde;;dPrKbtFagm>Q^Y-%sg4u#5DX#=f zRH-S7({a5Q7|O)^|92%jJELo~`H|4f(wM`}h)nTpEvLL#W56#5zkHXU%aSB)e#W^0 zIT|lYqBxB^R({Jr5IA|Wrp0x;+|MgKy1y?8kXQ#)8(ZLa=ztDev{|avAv0Ltu$0x5 zgraB-i5t6|No8{IOxoEx&T5JAx>p#mAUeWZ#iYxA>{SfN2Tg?D^b?jRp%4tEL)qSi z#iYk4As=CRCVQ;Ap{b#vXIk2oD~G~u;W!Vs(|^3gepF3e>17A@xn%>bTc6&XV`aWc zs0rLj%rtvW>h*MG9P~+;j3Tjk4U!6MFs6Ni9p!q461`}K^JYhD5}B9B(E*VGxZOz< z0rw~f*9juR;8toX5oXxaQ|eaZt0AJ}U-09`U(JQ7PHgAPf0&|$C91ZHsL8Lhy>#x(=K zs$&RsKkLjd7*;X%cBXz8o5js|cGmCL1&_yYZNOHRYy-rHZku8}77Bel{pM$aNnd5y zp+4S|E;fL~@)=+kgQ@VkRePdOzaW@&?4d`cO0%8Nu&hIM!HuR7cC%4}Af{n7c5^Y4 zaU4Ss*>m6)X`;sn2#HXMdDLzNSR{jY&`s5%?PWt z;U^XW2-~^%NK;zH!5>3{CfjtCd(qOlW$@9+6A0%6!b(uMn_1^winxu|b%_r@1@lU0%i%CA1&1O5OjSS7;?dC>$hHqu0-R{Ofi z=pATWgb3+|m7E&~NXK3XOfc;y`UPDTdr(sweN$C~T}V2-+!C(i2()C4)lfP@a^!)D z!%eTX3m=)=1N(7gCLjT{W6wENX{S*jTk3dz((Ur;c5B*j>MgFY-Fd6x%VS2sVm-hv z9WTyD(l+RjbPqZVyC&DtVhLtp#U9S%;m4^D8bxiv(#MTNexq(|@)%eBsBD)748jN~ zNm3i#FgVm4wH3x`F&x>DP0x5LJL_b-2!aU0Qrjy;zH)F$Q=*D~)iZ6;3?d+4miumhaJrK13skK!7gjLuLA?*@%Kjgd5A`05Ja#Zj-{M zrv2t_$`^zQRQGdNS1uR`V@!Odxz}@Id7;P+MA&1f44W{atScK72FCq{@ZGW1f~oxJ zZT0k)buZQ|p>n0ny@ikuK~W6ENF?|6`$LfrCHufC;+Ib`m4FRL3HTWQ(Zc&_FcOXQD(^egBXW3u+7%$!lt*H zEEMfE0Ce4fa4xO{1}U~K)dVLXIUni(#D({xHsmz$p3&p?|Vm%?W2IDjw%q z!o3~oUD8mP)6!X2P71cE9EQSjPxPIF6Wn|yKn~p zA!RliT=O$hY2rbV!_lspvD!H#5b_A$y~Cf%u6#KRuxXtnl@ou5OWMnZ7VQ z-3fHsu1rSsyaMaQ{}0uMr(whnS}^n!7pzi4zeZGSzHnXE##O@c(lzjNu6Z& z3es+Y_Y;RPh0Vz%4cgmaI9UAi@bzlbqKTbc=B=%0i!4cf`%CuZ-KZ->#lfM0J1-Mu~uQTeVo$a1is&W8ZwBy%V~6dLZ_wdpJuhwx)Lvjah? za2X_5Q4-*@_!x*7q8daX!U`=Q>~8oQ-YN>YbyxVLaf8<2kZ>M}bE+!%jq+yN=iqZI z!U3Nw1%7Y9mWEEOq zwsP~F-h;ykApkn{pf(QXfwi;OF^Jtz5EN$L5S(?G?v6hoaWvSl^_#~(> zLHORi^#+nmd4i}`XTUoqr3Ya~W%^|@8xU5&h|ED4h52>yjRyx z$qduFyCq3jRZ$_S>HV)~^W#QcW+4$4g+(-kN;hv)mfpmuF7vlmu6I zz;?l!{`Q&C-ej;@zBHEM(G7^Hxc>|6lP4}COj;Jw7sGkxN(1z8{L2zJqeK;T2jBwN z2o|Sl?QC}?JB@w6-SSsdeph!m&?c96pPRxA*Na@zBf-6Dx3v&%m#sq0iX1Nc>x-kj zukLW*^~8pkoq$W)28)(Q{lL+Q`m%9LHX2Ho)~E*yYzXmr3YBjKTjw6{7ix+2oO0Q) znS%;ID5D6RH9H%z7Xi-w#~mv*zFRS~YfF{$8@n61?;Kn_p$CbOh$h_FmgHF22A0eG zCcksM?37z9J|x#WPWf@nt0)RwsHj4pwsahRR;I+A`o&L&C*_m< zIgA#dSf}&5(V}hp8mubivc-C>-pFU;$zq>g55_1e^Fy|JksrEHIX*i4d~!FM(l<|y zWO)lNnHFrDzv^ltIxsmtIhBltngSc%2?f4Bs+Z~!#`QztdaIT<&@-T! zIgis;t?rb#-z|E4ID-JqaTg*Crp0NYB8oPuj-4+@n2B47V|>cD-e5V77dZk!!u4d$ zxm2-1mHEGjzX*<|lW49hCMji);AXXp#r2Fzsez|yfWw{hX7#zYcA+Z4v?NJfR<9_w zc$fJ4rL=|k(z9mOd^Ic6=G0xx1hl9Xq<+Z7i$`Ng)1X7jTD1WvK`+T$(P`p&CRK5iuLNGzp1F_YpMpre(+lx0H#cih^pBG>m4IQm}*x&Ne7=23UOR0RNdMNmDkItw%0_1>)BL*P6SIO>#!`T?{hefb{3Ai&H{Z=|UF5E>n zF%)!1c_6PZ9AJ=q5EYC{rsJ3fhPS!kg=^GQkg|Y0te{#^W1*mh(udl!$ZjY8gOu-0 zi6TSCLZ2?hKX`jrtC^326Ja^`k9G#Ewdkp5d5}jv2TvC*0J@ugX+9(xo}7lq@e~zc z0PCny)15~$u4WJTD01A7rFkC6NON23*KaJG;Qxn$*(k@!YWC;ya&B!}s5RnIC7MZU z{H*y3DPFe6%vJigLrK5u$FsO9jsqRa?EE<16>pPwkq3+<2B005tM2ZzkewHm%TLf- z;XnSR>M7DbuodF*R0>cpv)4Y>Csq3Q8IPgwT2XX}T1R+sUpLi}9jN<|=hLw9{~!bO zS{zh^tk&{<62JrMU$Yp{!j`+iR_szR2Y6~)!!2adECpskf#HYv9`}Gj9Yj=4K*G9i zMA*Pbe1UOh+;*i_0M^)m5tak2xAhq*+`yA2_SVE^Ii2fDuQD;Vlg1@yzTqKqm48M&w`6FEA` z7uU-eh^a1a#wev$kUUeOJVd?~Rl-!9XBXBzUk(zw%W?$_M?k&at`1)do!lig`6W*Q*~R$i8GW*{<3%zZ(@g#l5LT6YtMz@?<_^8-@lvfmE^>m zEfY*&nxB$#-qTo+W9eKDaq(nNbelV>YhKX1k`Vn7bT?A%V*6Whz+~?0Kgot_J^t7;U zngW$KE3&37tP3`6Y-kS?-Xx1NFm4MPN!uF z-b*k-YW?t+UAsOUTVS?9XLqO0GGx<}Mk2i>GI>)F{A*IMv^jB(N`86sGvJqtC{9t0YG>+{c~a~JM&jOm&uMW3NX_Si ze!yEn8%`A^eH`aV*_g}F^oCE^E6bNFg1MCV|G9YcBU!d4v1PYeTzXI3m&%gQH^naG z%(2PZ(d)Sqw;U*6TA>s`&#S$(88>*AkLMnlE~5H?9`pqL@xeo9@o960Xd;ellIUKX z4RAD`pK9 zXV%{Ek(JW>ud@s5vmYHBuMHRstK2;A@INdz`Y8G9hTdQCnqA^@%`;fPx~zI>ru3rL zxB(=#^FU22j^QM3Mw72EZml}Q%+#uQC{@UgM@)CKq8l`?l z2P|OeEQ^VyL4D2FM27bW$Rq~4k^*AJvOPT!)uOYMIS$%@gbuYuK>J%v9n$RW+&ekg z^?&DNFYeNU!w;}dL-FFbS5sO^K%TZ9i}C*|KXHQRj5F}Fz*2C#awh3+hgxB>v!$+c z9`N#y*+he$)Dzh=b-I`W24!s$x)S0Ubel^wsk`QxZw7|>h5hZCqOm-+)Hz2!3>3BW zcO=q5P#iSZ{NVn5^1#QvG55^(JBP1sYSYK!>BBoe{cM!I^F7pp(=Kf`DQ*4?MNu`` z-!C~dWyaN3BW~kBAWpWLGA^+AZmF+sR)h_Y(xbF3s5(rDHRfhb7ov(!QZ$D2Hv1f+ zC$Wz2$4Rtq=la1Ot8C@?=YF@(GNWav_sqk<;xFA`;LVE03LMf0S++lP=rG}=f!8vL zznmPyu!|+^>jc|KqH+iiIJXQ3qi_mUjQMWD7}rc621!qzs|6b23BO5i)W(YNya5C%q`pt zOO$f|m($~8sy2jaj|6Cn-at{8vgzIin_Z!3Ph$@W<>ddmEbr1YNB`}xD}6368+;}qn#h=dbQd-E5$nn z)Zvwr^e+YYny;mGX{mmwY>ewH{XMhkKcHNZXzJ1h-o8O!id*qWJQig#jt_q$#8vKp zRSpkea4I(&HSOsIbdNp>=DgK+c%%Mh7a5@cSD(h0u-*SXIaQ7Y+dP+&G$QGUY{z8D z@A)){gA4^Z(kAc6OZO0>gEQ&pZI#oih;9k zu6Z=~T;YLWzfUpj-9$RPZad(%>8n0fuG?iZ%Xyee!>!i>Jg@}2{nh?vDq*5~B$CsWwrj3{0^9Z0`h7O?#&!3?vmJM!&XHioI$gtQT zK+4bFZVF1dYq>)Z&t!&w>wZyI6#U*uvd_SG*(oLq@5>9WPS_8hol{3LT)0nnR@l>0FZ z5t%*?VxR%a^<-O5I3*#w->%d_TCxIjU@Jp!+Cakr!U*9_L@NM9*P#F1UHeTp}P;>gR(HI!x-KH!~@5}2%eBV z0F;nBI`=oNRB!6TQ9O8Jj61jd%vl?J(Km@4@D#s4hk>P8o0SqX75g^H zuaj={1{KsU49`cgQvp);_^^MB3<$SbLe~^@yZol(%n3out&gq~@*oeJLqV?&19})R z9K*wE@~xb2^rpx@uB`i3fay{bF;{!{+P4nx=)Eo0iQ@@vA8d4^bMgpi*q21dtm=)v zySE5#YtL8)D4=>*c9c8Y>Fd*0IFq{zfr-) zgv$b2?dv%bZgB-BqG-C+qok8}&?Ii(Yw>W5-taj=-6UV0l2AD;%uEw(ey5)$B}-rk z^TO-oo0s;5J1^+2^k%VmbE8QN+Xy{Ru`Ej>K?g%xV5gl4mUKBGL}=VJI{!ADXq7Z` zphF;+m!WHRb4VgaxmYTOqLX|G=jLE4y<*R*<8~0)j)9mU>zx=4&JYN@vLTpc6~(m+ z!$?4^7Cm(fp>_mC6xy}|&+}u% z?36r7&P3_~ihZw#ilEl2o`M=Od-PxRLbAv*C=01yi8>tUrXdJiU>Je`yNYH&(lFW+ zlo)}T1GZ7YS{2KuP`6NeOThbB9JWqZ(ni3|IB}4 zGee{QLQv~e-c)=D29O6}sz2s`_+Ke5?pHBP@+7uvfMpm;EisvdRG48!V=#p@m+-PH z@O>8(i@+XBDX=0)42lJ@g*60fvSJ`(c8){SB<=NX zT^R4;^mAT<(Aw=)7R-v>r>MLXOV;Zva=90%g1b^;;HnF&>eTcwrExQG@OgKm;^W

rYU1=<~Q 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 literal 0 HcmV?d00001 diff --git a/public/assets/fonts/mulish-e64de9e7.woff2 b/public/assets/fonts/mulish-e64de9e7.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3b6c58c70bcffceb595437e7b9218bf67279b0a GIT binary patch literal 29896 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 LDwL`sJoz&K<+Dcr literal 0 HcmV?d00001 diff --git a/server/api/[version]/rpc-proxy.post.ts b/server/api/[version]/rpc-proxy.post.ts deleted file mode 100644 index aecec1a..0000000 --- a/server/api/[version]/rpc-proxy.post.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * RPC proxy for sending requests to a specified URL. - * This is useful for sending requests to a Nimiq RPC node from the new - * Developer Center without the need for CORS. - */ - -export default defineEventHandler(async (event) => { - const body = await readBody(event) - - if (!body.payload) - throw createError({ statusCode: 400, message: 'Missing payload in request body' }) - if (!body.url) - throw createError({ statusCode: 400, message: 'Missing url in request body' }) - - try { - const response = await fetch(body.url, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(body.payload), - }) - - const data = await response.json() - return data - } - catch (error) { - console.error('RPC proxy error:', error) - throw createError({ - statusCode: 502, - message: 'Failed to connect to RPC node', - cause: error, - }) - } -}) diff --git a/server/api/[version]/sync/missing-epoch.get.ts b/server/api/[version]/sync/missing-epoch.get.ts deleted file mode 100644 index 11ca096..0000000 --- a/server/api/[version]/sync/missing-epoch.get.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { initRpcClient } from 'nimiq-rpc-client-ts/client' -import { fetchActivity } from '~~/packages/nimiq-validator-trustscore/src/fetcher' -import { getRange } from '~~/packages/nimiq-validator-trustscore/src/range' -import { storeActivities } from '~~/server/utils/activities' -import { sendNewEpochNotification, sendSyncFailureNotification } from '~~/server/utils/slack' - -export default defineEventHandler(async () => { - try { - initRpcClient({ url: useRuntimeConfig().albatrossRpcNodeUrl }) - - const [rangeOk, rangeError, range] = await getRange({ network: useRuntimeConfig().public.nimiqNetwork }) - if (!rangeOk) { - const error = createError(rangeError || 'Unable to fetch range') - await sendSyncFailureNotification('missing-epoch', error) - throw error - } - - const missingEpochs = await findMissingEpochs(range) - if (!missingEpochs) { - const error = createError('Unable to fetch missing epochs') - await sendSyncFailureNotification('missing-epoch', error) - throw error - } - - if (missingEpochs.length === 0) - return { isSynced: true, next: null, syncedEpoch: null, totalMissing: 0 } - - const missingEpoch = missingEpochs.at(0)! - const [activityOk, activityError, epochActivity] = await fetchActivity(missingEpoch) - if (!activityOk || !epochActivity) { - const error = createError(activityError || 'Unable to fetch activity') - await sendSyncFailureNotification('missing-epoch', error) - throw error - } - - await storeActivities({ [`${missingEpoch}`]: epochActivity }) - - // Send notification for new epoch (only for mainnet, no tagging) - await sendNewEpochNotification(missingEpoch, missingEpochs.length) - - // Subtract 1 from totalMissing as we've just synced one epoch - const totalMissing = missingEpochs.length - 1 - - return totalMissing === 0 - ? { isSynced: true, next: null, syncedEpoch: missingEpoch, totalMissing } - : { isSynced: false, next: missingEpochs[1], syncedEpoch: missingEpoch, totalMissing } - } - catch (error) { - // Send failure notification if it hasn't been sent already - if (!(error as any)?.statusMessage?.includes('SLACK_NOTIFIED')) { - await sendSyncFailureNotification('missing-epoch', error) - } - throw error - } -}) diff --git a/server/api/[version]/sync/snapshot.get.ts b/server/api/[version]/sync/snapshot.get.ts deleted file mode 100644 index 1656418..0000000 --- a/server/api/[version]/sync/snapshot.get.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { initRpcClient } from 'nimiq-rpc-client-ts/client' -import { isDevelopment } from 'std-env' -import { sendSyncFailureNotification } from '~~/server/utils/slack' - -export default defineEventHandler(async () => { - try { - initRpcClient({ url: useRuntimeConfig().albatrossRpcNodeUrl }) - - const source = isDevelopment ? 'filesystem' : 'github' - const { nimiqNetwork, gitBranch } = useRuntimeConfig().public - const [importSuccess, errorImport, importData] = await importValidators(source, { nimiqNetwork, gitBranch }) - if (!importSuccess || !importData) { - const error = createError(errorImport || 'Unable to import from GitHub') - await sendSyncFailureNotification('snapshot', error) - throw error - } - - const [fetchActiveEpochSuccess, fetchActiveEpochError, fetchActiveEpochData] = await fetchActiveEpoch() - if (!fetchActiveEpochSuccess || !fetchActiveEpochData) { - const error = createError(fetchActiveEpochError || 'Unable to fetch active epoch') - await sendSyncFailureNotification('snapshot', error) - throw error - } - - const [scoresSuccess, errorScores, scores] = await upsertScoresSnapshotEpoch() - if (!scoresSuccess || !scores) { - const error = createError(errorScores || 'Unable to fetch scores') - await sendSyncFailureNotification('snapshot', error) - throw error - } - - return { success: true, data: { ...fetchActiveEpochData, scores } } - } - catch (error) { - // Send failure notification if it hasn't been sent already - if (!(error as any)?.statusMessage?.includes('SLACK_NOTIFIED')) { - await sendSyncFailureNotification('snapshot', error) - } - throw error - } -}) diff --git a/server/api/[version]/sync/sse.get.ts b/server/api/[version]/sync/sse.get.ts deleted file mode 100644 index 631af7d..0000000 --- a/server/api/[version]/sync/sse.get.ts +++ /dev/null @@ -1,82 +0,0 @@ -import type { SyncStream } from '~~/server/utils/types' -import { createConsola } from 'consola' -import { initRpcClient } from 'nimiq-rpc-client-ts/client' -import { isDevelopment } from 'std-env' - -const consola = createConsola({ defaults: { tag: 'sync' } }) - -export default defineEventHandler(async (event) => { - const eventStream = createEventStream(event) - const controller = new AbortController() - - // Handle client disconnection by aborting the controller - eventStream.onClosed(async () => { - consola.info('Client disconnected, aborting sync process') - controller.abort() - await eventStream.close() - }) - - function report(json: SyncStream) { - const method = json.kind === 'error' ? 'error' : json.kind === 'success' ? 'success' : 'log' - - if (json.message && typeof json.message === 'string') - json.message = json.message.replace(/\\+"/g, '"') - if (json.payload && typeof json.payload === 'string') - json.payload = json.payload.replace(/\\+"/g, '"') - - consola[method](json.message) - eventStream.push(JSON.stringify(json)) - - if (json.kind === 'error') { - eventStream.close() - throw createError(json.message) - } - if (controller.signal.aborted && json.message !== 'Sync process aborted') { - consola.warn('Sync process aborted') - report({ kind: 'log', message: 'Sync process aborted' }) - } - } - - if (!useRuntimeConfig().albatrossRpcNodeUrl) - throw createError('No Albatross RPC Node URL') - initRpcClient({ url: useRuntimeConfig().albatrossRpcNodeUrl }) - report({ kind: 'log', message: 'Starting syncing...' }) - - // We need to return the event stream to the client first - setTimeout(async () => { - try { - const source = isDevelopment ? 'filesystem' : 'github' - const { nimiqNetwork, gitBranch } = useRuntimeConfig().public - const [importSuccess, errorImport, importData] = await importValidators(source, { nimiqNetwork, gitBranch }) - if (!importSuccess || !importData) - return report({ kind: 'error', message: errorImport || 'Unable to import from GitHub' }) - report({ kind: 'success', payload: importData, message: `Fetched ${importData.length} validators` }) - - // Pass the controller to fetchMissingEpochs for proper abort handling - const [fetchEpochsSuccess, fetchEpochsError, fetchEpochsData] = await fetchMissingEpochs({ report, controller }) - if (!fetchEpochsSuccess || !fetchEpochsData) - return report({ kind: 'error', message: fetchEpochsError || 'Unable to fetch missing epochs' }) - report({ kind: 'success', payload: fetchEpochsData, message: `Fetched ${fetchEpochsData.length} missing epochs` }) - - const [fetchActiveEpochSuccess, fetchActiveEpochError, fetchActiveEpochData] = await fetchActiveEpoch() - if (!fetchActiveEpochSuccess || !fetchActiveEpochData) - return report({ kind: 'error', message: fetchActiveEpochError || 'Unable to fetch active epoch' }) - report({ kind: 'log', message: `Fetched active epoch: ${fetchActiveEpochData.epochNumber}`, payload: fetchActiveEpochData }) - - const [scoresSuccess, errorScores, scores] = await upsertScoresSnapshotEpoch() - if (!scoresSuccess || !scores) - return report({ kind: 'error', message: errorScores || 'Unable to fetch scores' }) - report({ kind: 'success', payload: scores, message: `Fetched scores` }) - - const supplyData = await $fetch('/api/v1/supply') - report({ kind: 'success', payload: supplyData, message: 'Fetched distribution data' }) - - report({ kind: 'success', message: 'Sync process completed' }) - } - catch (e) { - report({ kind: 'error', message: JSON.stringify(e) }) - } - }) - - return eventStream.send() -}) diff --git a/server/tasks/sync/epochs.ts b/server/tasks/sync/epochs.ts new file mode 100644 index 0000000..ccfc982 --- /dev/null +++ b/server/tasks/sync/epochs.ts @@ -0,0 +1,59 @@ +import { initRpcClient } from 'nimiq-rpc-client-ts/client' +import { fetchActivity } from '~~/packages/nimiq-validator-trustscore/src/fetcher' +import { getRange } from '~~/packages/nimiq-validator-trustscore/src/range' +import { storeActivities } from '~~/server/utils/activities' +import { sendNewEpochNotification, sendSyncFailureNotification } from '~~/server/utils/slack' + +// In production, limit epochs per run to avoid Cloudflare Workers 30s CPU timeout. +// In local dev, no limit so we can sync everything at once. +const MAX_EPOCHS_PER_RUN = import.meta.dev ? Infinity : 50 + +export default defineTask({ + meta: { + name: 'sync:epochs', + description: 'Sync all missing blockchain epochs to D1 database', + }, + async run() { + const config = useRuntimeConfig() + + try { + initRpcClient({ url: config.albatrossRpcNodeUrl }) + + const [rangeOk, rangeError, range] = await getRange({ network: config.public.nimiqNetwork }) + if (!rangeOk || !range) { + const error = new Error(rangeError || 'Unable to fetch range') + await sendSyncFailureNotification('missing-epoch', error) + return { result: { success: false, error: rangeError } } + } + + let totalSynced = 0 + const epochsSynced: number[] = [] + + while (totalSynced < MAX_EPOCHS_PER_RUN) { + const missingEpochs = await findMissingEpochs(range) + if (!missingEpochs || missingEpochs.length === 0) + break + + const missingEpoch = missingEpochs.at(0)! + const [activityOk, activityError, epochActivity] = await fetchActivity(missingEpoch) + if (!activityOk || !epochActivity) { + const error = new Error(activityError || 'Unable to fetch activity') + await sendSyncFailureNotification('missing-epoch', error) + return { result: { success: false, error: activityError, totalSynced, epochsSynced } } + } + + await storeActivities({ [`${missingEpoch}`]: epochActivity }) + await sendNewEpochNotification(missingEpoch, missingEpochs.length) + + epochsSynced.push(missingEpoch) + totalSynced++ + } + + return { result: { success: true, totalSynced, epochsSynced } } + } + catch (error) { + await sendSyncFailureNotification('missing-epoch', error) + return { result: { success: false, error: String(error) } } + } + }, +}) diff --git a/server/tasks/sync/snapshot.ts b/server/tasks/sync/snapshot.ts new file mode 100644 index 0000000..f30fd50 --- /dev/null +++ b/server/tasks/sync/snapshot.ts @@ -0,0 +1,47 @@ +import { initRpcClient } from 'nimiq-rpc-client-ts/client' +import { sendSyncFailureNotification } from '~~/server/utils/slack' + +export default defineTask({ + meta: { + name: 'sync:snapshot', + description: 'Sync validator snapshot and calculate scores', + }, + async run() { + const config = useRuntimeConfig() + + try { + initRpcClient({ url: config.albatrossRpcNodeUrl }) + + // Use import.meta.dev for consistent behavior with Cloudflare Workers runtime + const source = import.meta.dev ? 'filesystem' : 'github' + const { nimiqNetwork, gitBranch } = config.public + + const [importSuccess, errorImport, importData] = await importValidators(source, { nimiqNetwork, gitBranch }) + if (!importSuccess || !importData) { + const error = new Error(errorImport || 'Unable to import from GitHub') + await sendSyncFailureNotification('snapshot', error) + return { result: { success: false, error: errorImport } } + } + + const [fetchActiveEpochSuccess, fetchActiveEpochError, fetchActiveEpochData] = await fetchActiveEpoch() + if (!fetchActiveEpochSuccess || !fetchActiveEpochData) { + const error = new Error(fetchActiveEpochError || 'Unable to fetch active epoch') + await sendSyncFailureNotification('snapshot', error) + return { result: { success: false, error: fetchActiveEpochError } } + } + + const [scoresSuccess, errorScores, scores] = await upsertScoresSnapshotEpoch() + if (!scoresSuccess || !scores) { + const error = new Error(errorScores || 'Unable to fetch scores') + await sendSyncFailureNotification('snapshot', error) + return { result: { success: false, error: errorScores } } + } + + return { result: { success: true, epochNumber: fetchActiveEpochData.epochNumber } } + } + catch (error) { + await sendSyncFailureNotification('snapshot', error) + return { result: { success: false, error: String(error) } } + } + }, +}) diff --git a/wrangler.json b/wrangler.json new file mode 100644 index 0000000..d35a20a --- /dev/null +++ b/wrangler.json @@ -0,0 +1,37 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "name": "validators-api-mainnet", + "account_id": "cf9baad7d68d7ee717f3339731e81dfb", + "compatibility_date": "2025-01-01", + "triggers": { "crons": ["0 * * * *"] }, + "vars": { "NUXT_PUBLIC_NIMIQ_NETWORK": "main-albatross" }, + "d1_databases": [{ "binding": "DB", "database_id": "cc9f1d25-676b-4cb3-8af6-887e85a08baa", "database_name": "validators-api-mainnet" }], + "kv_namespaces": [{ "binding": "CACHE", "id": "4be4d10e6d3444eca6e7c02cdbcd275f" }], + "r2_buckets": [{ "binding": "BLOB", "bucket_name": "validators-api-mainnet" }], + "env": { + "preview": { + "name": "validators-api-mainnet-preview", + "triggers": { "crons": ["0 * * * *"] }, + "vars": { "NUXT_PUBLIC_NIMIQ_NETWORK": "main-albatross" }, + "d1_databases": [{ "binding": "DB", "database_id": "dd9fa8b7-f5a1-48ab-b0af-d93d1092b89a", "database_name": "validators-api-mainnet-preview" }], + "kv_namespaces": [{ "binding": "CACHE", "id": "e3497d0c795d46f59473e187d4d70920" }], + "r2_buckets": [{ "binding": "BLOB", "bucket_name": "validators-api-mainnet-preview" }] + }, + "testnet": { + "name": "validators-api-testnet", + "triggers": { "crons": ["0 * * * *"] }, + "vars": { "NUXT_PUBLIC_NIMIQ_NETWORK": "test-albatross" }, + "d1_databases": [{ "binding": "DB", "database_id": "de14e353-5028-4e52-a383-a9cc200d960d", "database_name": "validators-api-testnet" }], + "kv_namespaces": [{ "binding": "CACHE", "id": "90c1598af92a4e72a767e6601090f014" }], + "r2_buckets": [{ "binding": "BLOB", "bucket_name": "validators-api-testnet" }] + }, + "testnet-preview": { + "name": "validators-api-testnet-preview", + "triggers": { "crons": ["0 * * * *"] }, + "vars": { "NUXT_PUBLIC_NIMIQ_NETWORK": "test-albatross" }, + "d1_databases": [{ "binding": "DB", "database_id": "da6931b2-6d06-4598-911b-fba1fa19efd2", "database_name": "validators-api-testnet-preview" }], + "kv_namespaces": [{ "binding": "CACHE", "id": "9ef2ab4420a04df8b5d82825f79620e1" }], + "r2_buckets": [{ "binding": "BLOB", "bucket_name": "validators-api-testnet-preview" }] + } + } +} From de1f7dd96fe67d2f1eb515b3687aa564b5b1a172 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 31 Dec 2025 13:26:33 +0000 Subject: [PATCH 2/5] Initial plan From e6fb595b3fd59ee9480a87f77c352dc1afd26d69 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 31 Dec 2025 13:33:41 +0000 Subject: [PATCH 3/5] Fix outdated references after migration to self-hosted Cloudflare Workers Co-authored-by: onmax <22072217+onmax@users.noreply.github.com> --- README.md | 22 +++++++++++++++++++--- app/app.vue | 51 +++++---------------------------------------------- 2 files changed, 24 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 3f62fa2..d6527f8 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@

- +

Dashboards

@@ -203,7 +203,18 @@ The system automatically detects the environment and only sends notifications in ## Deployment -The deployment is handled by the [`NuxtHub Action`](./.github/workflows/nuxt-hub.yml). +The deployment is handled via Wrangler CLI using the `wrangler.json` configuration file. + +**Deploy command:** +```bash +pnpm build && npx wrangler --cwd .output deploy [-e env] +``` + +Where `env` can be: `preview`, `testnet`, or `testnet-preview` (omit for mainnet production). + +**Required secrets:** +- `ALBATROSS_RPC_NODE_URL` +- `NUXT_SLACK_WEBHOOK_URL` There are 4 different environments: @@ -214,6 +225,11 @@ There are 4 different environments: | `preview` | `preview-mainnet` | [Validators API Mainnet Preview](https://dev.validators-api-mainnet.pages.dev) | Push any commit to any branch | | `preview` | `preview-testnet` | [Validators API Testnet Preview](https://dev.validators-api-testnet.pages.dev) | Push any commit to any branch | -Each Nuxt Hub environment has its own database, so effectively we have 4 different databases and there are 4 tasks in the [`sync.yml`](./.github/workflows/sync.yml) workflow that are responsible for syncing the data from the Nimiq network to the database. +**Data Synchronization:** + +Each environment has its own D1 database, KV cache, and R2 blob storage. Data synchronization is handled automatically by Nitro scheduled tasks that run hourly via Cloudflare Workers cron triggers configured in `wrangler.json`: + +- `sync:epochs` - Fetches missing blockchain epochs and stores them in the database +- `sync:snapshot` - Updates validator snapshots and calculates trust scores **Write operations to `main` are restricted**, only via PR. diff --git a/app/app.vue b/app/app.vue index 9e2c1db..b5cb292 100644 --- a/app/app.vue +++ b/app/app.vue @@ -6,27 +6,6 @@ const debouncedRefresh = useDebounceFn(() => { refreshNuxtData(['/api/v1/validators', '/api/v1/supply', '/api/v1/status']) }, 300) -const { status: statusSync, data: dataSync, error: syncError, close: closeSync, open: syncData } = useEventSource('/api/v1/sync/sse', [], { immediate: false }) - -// Check for sync success message and refresh document -watch(() => dataSync.value, (newData) => { - if (newData) { - try { - const parsedData = JSON.parse(newData) - if (parsedData.kind === 'success' && parsedData.message === 'Sync process completed') { - debouncedRefresh() - closeSync() - } - } - catch (e) { - console.error('Failed to parse sync data:', e) - } - } -}, { immediate: true }) - -// Also maintain the original watch for general updates -watch(() => [dataSync, syncError], debouncedRefresh) - const colorMode = useColorMode() const toggleDark = () => colorMode.value = colorMode.value === 'light' ? 'dark' : 'light' @@ -110,7 +89,7 @@ const currentEnvItem = { branch: gitBranch, network: nimiqNetwork, link: environ