Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
b28e5d3
feat: extract transfers and contracts from traces
vasyl-ivanchuk Aug 21, 2025
c166cf0
feat: switch to zksync os api
vasyl-ivanchuk Aug 22, 2025
c5cfed9
fix: UI and lint
vasyl-ivanchuk Aug 22, 2025
ac52398
fix: remove linter
vasyl-ivanchuk Aug 22, 2025
d42784b
fix: make calls optional
itegulov Aug 27, 2025
fe72532
fix: mark all contracts as EVM
itegulov Aug 27, 2025
dce045e
feat: use `debug_traceBlock` to speed-up tracing
itegulov Sep 4, 2025
2f90e51
feat: same db configs for api and worker package
bxpana Sep 5, 2025
7547b5d
Merge branch 'main' into api-worker-unified-db-configs
hatemosphere Sep 9, 2025
0d4517f
Merge pull request #515 from matter-labs/api-worker-unified-db-configs
itegulov Sep 9, 2025
92d82cf
fix: work around TypeORM DB connection SSL settings bug (#517)
hatemosphere Sep 9, 2025
358531f
feat: deploy zksync-os-stage
itegulov Sep 10, 2025
507d928
fix: use correct channelId
itegulov Sep 10, 2025
3248fe8
Merge branch 'main' of https://github.com/matter-labs/block-explorer …
Romsters Sep 21, 2025
0d726d1
fix: do not retry BAD_DATA contract calls responses
Romsters Sep 21, 2025
0e83a18
fix: do not index failed contracts
Romsters Sep 21, 2025
75c6625
chore: fix lint
Romsters Sep 21, 2025
4d46056
fix: disable PR tests
Romsters Sep 21, 2025
895feee
feat: remove batches, rework to using blocks
Romsters Sep 26, 2025
cb1edd2
feat: adapt front-end for zksync-os
Romsters Sep 30, 2025
6c1e924
feat: adapt verification api to work with sourcify
Romsters Oct 5, 2025
ec9b577
feat: adapt front-end to use etherscan-like verification API
Romsters Oct 7, 2025
dd17872
Merge branch 'main' into zksync-os
Romsters Oct 7, 2025
5847871
chore: fix tests
Romsters Oct 7, 2025
df030b5
Merge branch 'zksync-os' of https://github.com/matter-labs/block-expl…
Romsters Oct 7, 2025
cbcec5b
chore: fix lint
Romsters Oct 7, 2025
b996319
chore: fix typecheck
Romsters Oct 7, 2025
41949e4
fix: fail request if cannot call potential ERC20 contract
Romsters Oct 7, 2025
00a8f90
fix: add drop batches table to migration
Romsters Oct 7, 2025
56cf9fb
fix: send creationTransactionHash to sourcify with verification request
Romsters Oct 8, 2025
48c3156
fix: update stage rpc url
Romsters Oct 8, 2025
e6a1868
fix: update stage rpc url in dev config
Romsters Oct 8, 2025
7452805
fix: skip indexing transfer is trace has error
Romsters Oct 8, 2025
1955eb0
fix: switch front-end deployment to zksyncos instance
Romsters Oct 8, 2025
2f43246
fix: don't retry contract calls if message is execution reverted
Romsters Oct 8, 2025
7c2a0bd
fix: fix getAccountNonceQueryBuilder
Romsters Oct 8, 2025
9f792bc
fix: fix permanent call_exception error parsing
Romsters Oct 8, 2025
d7c7074
fix: update l1 originated tx types
Romsters Oct 14, 2025
b029167
fix: save genesis contracts
Romsters Oct 20, 2025
222b102
fix: enable systemContractService
Romsters Oct 20, 2025
1aeef4c
feat: remove zksync-ethers and fix tests in worker
Romsters Oct 27, 2025
a299050
fix: use module and action from both req query and body for verification
Romsters Oct 27, 2025
ec361c2
fix: removed unneeded script migration
Romsters Oct 27, 2025
7d176d4
feat: allow admins to bypass prividium filtering (#525)
calvogenerico Oct 30, 2025
f0306ec
feat: replace zksync-ethers, fix data-fetcher tests
Romsters Nov 3, 2025
b1c5a12
fix: fix api tests
Romsters Nov 4, 2025
422b627
fix: app tests
Romsters Nov 5, 2025
5cb09bb
fix: enable tests and lint on zksync-os branch
Romsters Nov 5, 2025
8fb5ac7
chore: fix lint
Romsters Nov 5, 2025
72afedf
test: fix api e2e tests
Romsters Nov 10, 2025
2a63ea2
Merge branch 'main' of https://github.com/matter-labs/block-explorer …
Romsters Nov 10, 2025
b5a63af
fix: use UserWithRoles
Romsters Nov 10, 2025
6ddf512
test: fix tests
Romsters Nov 10, 2025
4201423
test: enable app e2e tests
Romsters Nov 11, 2025
bc680ad
fix: correctly extract firebase channel url
Romsters Nov 11, 2025
1953f5e
fix: correctly extract firebase channel url
Romsters Nov 11, 2025
886a5b4
Merge branch 'main' of https://github.com/matter-labs/block-explorer …
Romsters Nov 11, 2025
424718b
fix: deploy preview apps for zksync-os to staging-scan-v2 site
Romsters Nov 12, 2025
88d9b7f
fix: create preview channel always in staging-scan-v2 site
Romsters Nov 12, 2025
7b1dc58
test: check if firebase token exists
Romsters Nov 12, 2025
b4b1a7f
fix: add user roles pipe by default
aon Nov 12, 2025
7cc8cc9
chore: update prividium config default rpc
aon Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 8 additions & 3 deletions .github/workflows/app-deploy-feature-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ jobs:

CHANNEL_URL=$(firebase --project staging-scan-v2 hosting:channel:list --json | jq --arg channel_name "${CHANNEL_NAME}" -r '.result.channels[]|select(.name|contains($channel_name)) | .url')
echo $CHANNEL_URL
if [ -n "$FIREBASE_TOKEN" ]; then
echo "FIREBASE_TOKEN exists!"
else
echo "FIREBASE_TOKEN is not set"
fi
if [ -z "$CHANNEL_URL" ]; then
echo "New channel"
firebase --project staging-scan-v2 hosting:channel:create $CHANNEL_NAME
Expand All @@ -77,7 +82,7 @@ jobs:
- name: Deploy
working-directory: ./packages/app
run: |
firebase --project staging-scan-v2 hosting:channel:deploy ${{ env.CHANNEL_NAME }}
firebase --project staging-scan-v2 hosting:channel:deploy ${{ env.CHANNEL_NAME }} --only staging-scan-v2

- name: Publish preview url
if: github.event.pull_request.head.repo.full_name == github.repository
Expand All @@ -97,7 +102,7 @@ jobs:
contents: write
with:
targetUrl: ${{ needs.build.outputs.dappUrl }}
testnet_network_value_for_e2e: "/?network=sepolia"
default_network_value_for_e2e: "/?network=mainnet"
testnet_network_value_for_e2e: "/?network=zksync-os-testnet-alpha"
default_network_value_for_e2e: "/?network=zksync-os-mainnet"
publish_to_allure: true
environmentTags: "and not @productionEnv"
4 changes: 2 additions & 2 deletions .github/workflows/app-deploy-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ jobs:
contents: write
with:
targetUrl: ${{ needs.deploy.outputs.dappUrl }}
testnet_network_value_for_e2e: "/?network=sepolia"
default_network_value_for_e2e: "/?network=mainnet"
testnet_network_value_for_e2e: "/?network=zksync-os-testnet-alpha"
default_network_value_for_e2e: "/?network=zksync-os-mainnet"
publish_to_allure: true
environmentTags: "and not @featureEnv"
29 changes: 15 additions & 14 deletions .github/workflows/app-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@ on:
required: false
targetUrl:
type: string
default: 'https://staging-scan-v2.zksync.dev/'
default: 'https://staging-scan-v2.zksync.dev'
required: true
default_network_value_for_e2e:
type: string
default: '/?network=mainnet'
default: '/?network=zksync-os-mainnet'
required: true
testnet_network_value_for_e2e:
type: string
default: '/?network=sepolia'
required: true
type: string
default: '/?network=zksync-os-testnet-alpha'
required: true
publish_to_allure: #Here we define the variable that can be overwritten by caller workflow
type: boolean
description: "Publish test results to allure"
Expand All @@ -47,15 +47,16 @@ jobs:
fail-fast: false
matrix:
tags: [
"@artifactsSet1",
"@artifactsSet2",
"@artifactsSet3",
"@artifactsSet4",
"@redirectionSet1",
"@redirectionSet2",
"@redirectionSet3",
"@copying",
"@search",
# Disabled all tests running on Mainnet until Mainnet is deployed
# "@artifactsSet1",
# "@artifactsSet2",
# "@artifactsSet3",
# "@artifactsSet4",
# "@redirectionSet1",
# "@redirectionSet2",
# "@redirectionSet3",
# "@copying",
# "@search",
"@testnetSmokeSuite"
]

Expand Down
170 changes: 170 additions & 0 deletions .github/workflows/release-zksync-os.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
name: Create ZKsync OS Release

on:
push:
branches:
- zksync-os

jobs:
createReleaseVersion:
name: Create ZKsync OS Release Version
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
outputs:
releaseVersion: ${{ steps.release.outputs.releaseVersion }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: |
npm ci

- name: Lint
run: |
npm run lint -- -- --no-fix --max-warnings 0

- name: Test
run: |
npm run test:ci

- name: App type check
working-directory: ./packages/app
run: |
npm run typecheck

- name: Create Release Version
id: release
env:
GITHUB_TOKEN: ${{ github.token }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: |
VITE_APP_ENVIRONMENT=production \
npx semantic-release

createDockerImages:
name: Create Docker Images
runs-on: [matterlabs-ci-runner]
permissions:
contents: read
needs: createReleaseVersion
if: ${{ github.ref == 'refs/heads/zksync-os' && needs.createReleaseVersion.outputs.releaseVersion != '' }}
steps:
- uses: actions/checkout@v3

- name: Set up Docker Build
uses: docker/setup-buildx-action@v2

- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Auth to google artifact registry
run: |
gcloud auth configure-docker us-docker.pkg.dev -q

- name: Build and push Docker image for API
uses: docker/build-push-action@v4
with:
push: true
tags: |
"matterlabs/block-explorer-api:v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
"us-docker.pkg.dev/matterlabs-infra/matterlabs-docker/block-explorer-api:v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
file: packages/api/Dockerfile
no-cache: true

- name: Build and push Docker image for Worker
uses: docker/build-push-action@v4
with:
push: true
tags: |
"matterlabs/block-explorer-worker:v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
"us-docker.pkg.dev/matterlabs-infra/matterlabs-docker/block-explorer-worker:v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
file: packages/worker/Dockerfile
no-cache: true

- name: Build and push Docker image for Data Fetcher
uses: docker/build-push-action@v4
with:
push: true
tags: |
"matterlabs/block-explorer-data-fetcher:v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
"us-docker.pkg.dev/matterlabs-infra/matterlabs-docker/block-explorer-data-fetcher:v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
file: packages/data-fetcher/Dockerfile
no-cache: true

- name: Build and push Docker image for App
uses: docker/build-push-action@v4
with:
push: true
tags: |
"matterlabs/block-explorer-app:v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
"us-docker.pkg.dev/matterlabs-infra/matterlabs-docker/block-explorer-app:v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
file: packages/app/Dockerfile
no-cache: true

deployFrontendToStaging:
name: Deploy Block Explorer frontend to zksync-os instance
runs-on: matterlabs-firebase-deployer
permissions:
contents: read
needs: createReleaseVersion
if: ${{ github.ref == 'refs/heads/zksync-os' && needs.createReleaseVersion.outputs.releaseVersion != '' }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-node@v4
with:
node-version: 18

- name: Install Firebase CLI and auth
run: |
npm install -g firebase-tools

- name: Download Dist package
uses: dsaltares/fetch-gh-release-asset@master
with:
version: "tags/v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
file: "dist.zip"
target: "dist.zip"
token: ${{ secrets.GITHUB_TOKEN }}

- name: Unzip Dist package
run: |
unzip dist.zip -d packages/app

- name: Update config
run: |
echo "window[\"##runtimeConfig\"] = { appEnvironment: \"staging\", sentryDSN: \"${{ vars.SENTRY_DSN }}\" };" > packages/app/dist/config.js

- name: Download Storybook package
uses: dsaltares/fetch-gh-release-asset@master
with:
version: "tags/v${{ needs.createReleaseVersion.outputs.releaseVersion }}"
file: "storybook-static.zip"
target: "storybook-static.zip"
token: ${{ secrets.GITHUB_TOKEN }}

- name: Unzip Storybook package
run: |
unzip storybook-static.zip -d packages/app

- name: Deploy
working-directory: ./packages/app
run: |
firebase --project staging-scan-v2 deploy
4 changes: 4 additions & 0 deletions .releaserc
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
{
"name": "prividium",
"prerelease": true
},
{
"name": "zksync-os",
"prerelease": true
}
],
"plugins": [
Expand Down
1 change: 0 additions & 1 deletion docker-compose-cli.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ services:
- DATABASE_NAME=block-explorer
- BLOCKCHAIN_RPC_URL=http://host.docker.internal:${RPC_PORT}
- DATA_FETCHER_URL=http://data-fetcher:3040
- BATCHES_PROCESSING_POLLING_INTERVAL=1000
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
Expand Down
1 change: 0 additions & 1 deletion docker-compose-prividium.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ services:
- DATABASE_NAME=block-explorer
- BLOCKCHAIN_RPC_URL=http://zksync:3050
- DATA_FETCHER_URL=http://data-fetcher:3040
- BATCHES_PROCESSING_POLLING_INTERVAL=1000
ports:
- '3001:3001'
depends_on:
Expand Down
12 changes: 7 additions & 5 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ services:
- DATABASE_NAME=block-explorer
- BLOCKCHAIN_RPC_URL=http://zksync:3050
- DATA_FETCHER_URL=http://data-fetcher:3040
- BATCHES_PROCESSING_POLLING_INTERVAL=1000
ports:
- '3001:3001'
depends_on:
Expand Down Expand Up @@ -53,7 +52,10 @@ services:
- PORT=3020
- METRICS_PORT=3005
- LOG_LEVEL=verbose
- DATABASE_URL=postgres://postgres:postgres@postgres:5432/block-explorer
- DATABASE_HOST=postgres
- DATABASE_USER=postgres
- DATABASE_PASSWORD=postgres
- DATABASE_NAME=block-explorer
ports:
- '3020:3020'
- '3005:3005'
Expand All @@ -64,7 +66,7 @@ services:
postgres:
image: "postgres:14"
logging:
driver: none
driver: none
volumes:
- postgres:/var/lib/postgresql/data
ports:
Expand Down Expand Up @@ -112,7 +114,7 @@ services:
environment:
- DATABASE_PROVER_URL=postgres://postgres:postgres@postgres/prover_local
- DATABASE_URL=postgres://postgres:postgres@postgres/zksync_local
- ETH_CLIENT_WEB3_URL=http://reth:8545
- ETH_CLIENT_WEB3_URL=http://reth:8545
healthcheck:
test: curl --fail http://localhost:3071/health || exit 1
interval: 10s
Expand All @@ -125,4 +127,4 @@ volumes:
reth:
postgres:
zksync-config:
zksync-data:
zksync-data:
Loading
Loading