Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
4c2fbe6
Bump @types/react from 18.2.33 to 18.2.34 (#1446)
dependabot[bot] Nov 2, 2023
89b73ea
Add meta tag to prevent phone number detection on iOS (#1448)
sealer3 Nov 6, 2023
17eb243
Use ABI of verified contracts to decode function selectors (#1443)
sealer3 Nov 6, 2023
5ea1dc2
Disable tab/route for now; feature will be postponed to the next rele…
wmitsuda Nov 6, 2023
6bb1d2a
Remove old gitcoin link
wmitsuda Nov 7, 2023
0e6ef80
Bump erigon version
wmitsuda Nov 7, 2023
761e5c5
Bump version
wmitsuda Nov 7, 2023
6a04722
Bump vite-imagetools from 6.2.1 to 6.2.4 (#1479)
dependabot[bot] Nov 19, 2023
a9bda1c
Bump @testing-library/react from 14.0.0 to 14.1.2 (#1480)
dependabot[bot] Nov 19, 2023
7d1775c
Bump prettier from 3.0.3 to 3.1.0 (#1478)
dependabot[bot] Nov 19, 2023
b625e4f
Bump prettier-plugin-organize-imports from 3.2.3 to 3.2.4 (#1476)
dependabot[bot] Nov 19, 2023
29252f7
Bump react-intersection-observer from 9.5.2 to 9.5.3 (#1475)
dependabot[bot] Nov 19, 2023
3269829
Bump @types/react from 18.2.34 to 18.2.37 (#1467)
dependabot[bot] Nov 19, 2023
3c55c60
Bump sb to 7.5.3
wmitsuda Nov 19, 2023
8effabd
Bump @types/react-highlight from 0.12.7 to 0.12.8 (#1462)
dependabot[bot] Nov 19, 2023
c7275e6
Bump @types/react-blockies from 1.4.3 to 1.4.4 (#1464)
dependabot[bot] Nov 19, 2023
3daea70
Bump @types/react-dom from 18.2.14 to 18.2.15 (#1468)
dependabot[bot] Nov 19, 2023
18156e2
Bump @types/react-syntax-highlighter from 15.5.9 to 15.5.10 (#1463)
dependabot[bot] Nov 19, 2023
6b05978
Bump @types/jest from 29.5.7 to 29.5.8 (#1470)
dependabot[bot] Nov 19, 2023
ef4cc8a
Bump prettier-plugin-tailwindcss from 0.5.6 to 0.5.7 (#1469)
dependabot[bot] Nov 19, 2023
c34006a
Using --link as an attempt to optimize build times
wmitsuda Nov 19, 2023
81f30bc
Add Cypress e2e tests and GA workflow (#1481)
sealer3 Nov 23, 2023
d4d4d28
Bump @vitejs/plugin-react-swc from 3.4.1 to 3.5.0 (#1484)
dependabot[bot] Nov 23, 2023
c82324b
Bump @types/react from 18.2.37 to 18.2.38 (#1491)
dependabot[bot] Nov 23, 2023
ee94785
Bump typescript from 5.2.2 to 5.3.2 (#1489)
dependabot[bot] Nov 23, 2023
76087fc
Bump @types/jest from 29.5.8 to 29.5.10 (#1493)
dependabot[bot] Nov 23, 2023
0e15859
Bump @types/react-dom from 18.2.15 to 18.2.17 (#1494)
dependabot[bot] Nov 23, 2023
7bd26ed
Bump vite-plugin-rewrite-all from 1.0.1 to 1.0.2 (#1485)
dependabot[bot] Nov 23, 2023
aed5d59
Bump react-router-dom from 6.18.0 to 6.20.0 (#1495)
dependabot[bot] Nov 23, 2023
5cc923e
Better use ci instead of install
wmitsuda Nov 23, 2023
23d1a67
Bump cypress from 13.5.0 to 13.6.0 (#1498)
dependabot[bot] Nov 24, 2023
b9d6fcb
Remove commify from raw decoded uints (#1486)
sealer3 Nov 24, 2023
806053f
Enable e2e test runs on branches named feature/**
wmitsuda Nov 25, 2023
578a4e0
Bump vite from 4.5.0 to 5.0.2 (#1499)
dependabot[bot] Nov 26, 2023
839f900
Use gha cache
wmitsuda Nov 26, 2023
d461c67
Add --link to everything else
wmitsuda Nov 26, 2023
d0a12db
Improve e2e workflow execution (#1502)
wmitsuda Nov 27, 2023
05d6747
Smoke tests (#1503)
wmitsuda Nov 27, 2023
6676e84
Bump sb to 7.6.1
wmitsuda Nov 29, 2023
828a7e6
Bump vite from 5.0.2 to 5.0.4 (#1518)
dependabot[bot] Nov 29, 2023
b93732a
Bump @types/react from 18.2.38 to 18.2.39 (#1512)
dependabot[bot] Nov 29, 2023
3b43688
Bump vite-imagetools from 6.2.4 to 6.2.5 (#1506)
dependabot[bot] Nov 29, 2023
378eeca
Bump node to v20.10.0 in order to avoid https://github.com/nodejs/nod…
wmitsuda Nov 29, 2023
629c67f
Bump @fortawesome/fontawesome-svg-core from 6.4.2 to 6.5.0 (#1517)
dependabot[bot] Nov 29, 2023
33415ba
Bump @fortawesome/free-regular-svg-icons from 6.4.2 to 6.5.0 (#1516)
dependabot[bot] Nov 29, 2023
6ac3980
Bump @fortawesome/free-solid-svg-icons from 6.4.2 to 6.5.0 (#1520)
dependabot[bot] Nov 29, 2023
9ad6346
Bump @fortawesome/free-brands-svg-icons from 6.4.2 to 6.5.0 (#1522)
dependabot[bot] Nov 29, 2023
43e6a23
Prevent SectionHighlighter from truncating by default (#1504)
sealer3 Nov 29, 2023
c11acc2
Enable static network discovery (#1529)
wmitsuda Nov 29, 2023
6957010
Bump react-helmet-async from 1.3.0 to 2.0.1 (#1492)
dependabot[bot] Nov 29, 2023
10c824d
Show parameter names for Sourcify verified contracts in traces (#1473)
sealer3 Nov 30, 2023
87ea109
Use checksummed addresses in Token Balances tab (#1477)
sealer3 Nov 30, 2023
7db40f6
Bump @types/react from 18.2.39 to 18.2.42 (#1567)
dependabot[bot] Dec 5, 2023
c538a99
Bump postcss from 8.4.31 to 8.4.32 (#1563)
dependabot[bot] Dec 5, 2023
1750514
Bump sb to 7.6.3 (#1568)
wmitsuda Dec 5, 2023
9dbb75b
Bump tspeg from 3.3.0 to 3.3.1 (#1535)
dependabot[bot] Dec 5, 2023
256a664
Bump react-router-dom from 6.20.0 to 6.20.1 (#1564)
dependabot[bot] Dec 5, 2023
6883c9c
Bump @adobe/css-tools from 4.3.1 to 4.3.2 (#1543)
dependabot[bot] Dec 5, 2023
2f030e8
Bump @fortawesome/free-brands-svg-icons from 6.5.0 to 6.5.1 (#1550)
dependabot[bot] Dec 5, 2023
12cdc9b
Bump @fortawesome/free-solid-svg-icons from 6.5.0 to 6.5.1 (#1553)
dependabot[bot] Dec 5, 2023
ea10658
Add icon and selector to contract error types (#1542)
sealer3 Dec 5, 2023
404cd4a
Bump @fortawesome/free-regular-svg-icons from 6.5.0 to 6.5.1 (#1556)
dependabot[bot] Dec 5, 2023
2d2ece8
Bump @fortawesome/fontawesome-svg-core from 6.5.0 to 6.5.1 (#1555)
dependabot[bot] Dec 5, 2023
2b990f0
Bump vite-imagetools from 6.2.5 to 6.2.7 (#1566)
dependabot[bot] Dec 5, 2023
07a5187
Bump @testing-library/jest-dom from 6.1.4 to 6.1.5 (#1548)
dependabot[bot] Dec 5, 2023
a607149
Bump react-helmet-async from 2.0.1 to 2.0.3 (#1549)
dependabot[bot] Dec 5, 2023
9a5dc28
Add Prettier workflow (#1559)
sealer3 Dec 6, 2023
08c87d8
Use the Sourcify web server by default (#1544)
sealer3 Dec 6, 2023
39855d2
Don't replace the @ symbol in Sourcify sources (#1558)
sealer3 Dec 6, 2023
1568d4a
Bump vite from 5.0.4 to 5.0.5 (#1569)
dependabot[bot] Dec 6, 2023
c0dffa3
Use .nvmrc for determining node version (#1570)
wmitsuda Dec 6, 2023
2fe6007
Add e2e test for tx page navigation (#1561)
sealer3 Dec 6, 2023
8bbf27b
Bump vite from 5.0.5 to 5.0.6 (#1574)
dependabot[bot] Dec 6, 2023
16fbfc9
Bump tailwindcss from 3.3.5 to 3.3.6 (#1573)
dependabot[bot] Dec 6, 2023
c21d94b
Bump actions/setup-go from 4 to 5 (#1578)
dependabot[bot] Dec 6, 2023
ca16850
Bump prettier-plugin-tailwindcss from 0.5.7 to 0.5.9 (#1575)
dependabot[bot] Dec 6, 2023
85dc88c
Bump @types/react-syntax-highlighter from 15.5.10 to 15.5.11 (#1577)
dependabot[bot] Dec 6, 2023
779a724
Bump @types/jest from 29.5.10 to 29.5.11 (#1572)
dependabot[bot] Dec 6, 2023
257ba5e
Bump cypress from 13.6.0 to 13.6.1 (#1571)
dependabot[bot] Dec 6, 2023
84acd9f
Bump chart.js from 4.4.0 to 4.4.1 (#1576)
dependabot[bot] Dec 6, 2023
11766fc
Add array entry interface and FunctionParamInput redesign (#1471)
sealer3 Dec 14, 2023
1de5800
Display uint256 values with unselectable commas (#1594)
sealer3 Dec 15, 2023
596c737
Bump @types/react from 18.2.42 to 18.2.45 (#1601)
dependabot[bot] Dec 15, 2023
0b53870
Bump typescript from 5.3.2 to 5.3.3 (#1587)
dependabot[bot] Dec 15, 2023
8d89698
Bump sb to 7.6.4 (#1604)
wmitsuda Dec 15, 2023
dfbfe27
Bump vite from 5.0.6 to 5.0.9 (#1602)
dependabot[bot] Dec 15, 2023
34d8841
Fix duplicate github actions execution (#1605)
wmitsuda Dec 15, 2023
c49f2e2
Bump ts-node from 10.9.1 to 10.9.2 (#1592)
dependabot[bot] Dec 15, 2023
5f3801b
Bump prettier from 3.1.0 to 3.1.1 (#1598)
dependabot[bot] Dec 15, 2023
c7fc7df
Bump actions/upload-artifact from 3 to 4 (#1606)
dependabot[bot] Dec 18, 2023
db257f7
Temporarily disable arm64 docker builds to debug ga issue (#1615)
wmitsuda Dec 18, 2023
313e173
Revert "Temporarily disable arm64 docker builds to debug ga issue (#1…
wmitsuda Dec 18, 2023
92fe1f3
Bump @types/react-dom from 18.2.17 to 18.2.18 (#1617)
dependabot[bot] Dec 18, 2023
254f2d6
Bump vite from 5.0.9 to 5.0.10 (#1611)
dependabot[bot] Dec 18, 2023
4949569
Attempt to separate amd64/arm64 builds (#1619)
wmitsuda Dec 18, 2023
4028c35
Bump react-router-dom from 6.20.1 to 6.21.0 (#1603)
dependabot[bot] Dec 18, 2023
09ebfe7
Bump @fontsource/space-grotesk from 5.0.15 to 5.0.16 (#1589)
dependabot[bot] Dec 18, 2023
7a51430
Bump @fontsource/fira-code from 5.0.15 to 5.0.16 (#1586)
dependabot[bot] Dec 19, 2023
165b073
Bump @fontsource/roboto-mono from 5.0.15 to 5.0.16 (#1588)
dependabot[bot] Dec 19, 2023
b42f4b0
Bump sb to 7.6.5 (#1620)
wmitsuda Dec 19, 2023
080a72f
Add copy button to token addresses on Token Balances page (#1596)
sealer3 Dec 21, 2023
622e685
Bump tailwindcss from 3.3.6 to 3.4.0 (#1631)
dependabot[bot] Dec 21, 2023
01438b1
Bump sb to 7.6.6 (#1633)
wmitsuda Dec 21, 2023
2474f62
Bump react-helmet-async from 2.0.3 to 2.0.4 (#1627)
dependabot[bot] Dec 21, 2023
928122a
Reactivate blocks rewarded support (#1636)
wmitsuda Dec 24, 2023
d9206a3
Update README (#1637)
wmitsuda Dec 24, 2023
ce839a8
Revert "Attempt to separate amd64/arm64 builds (#1619)" (#1638)
wmitsuda Dec 24, 2023
9b9abd1
Bump version (#1640)
wmitsuda Dec 24, 2023
a8f9bb8
Fix typo: show as '0 contracts'
sealer3 Dec 30, 2023
178461c
Use checksummed addresses in contract lists
sealer3 Dec 30, 2023
eef5df9
Add toggle for non-view functions in Read Contract
sealer3 Jan 3, 2024
1273aad
Attempt to fix docker ga
wmitsuda Jan 4, 2024
db435ff
Add setup qemu
wmitsuda Jan 4, 2024
5a17da1
Debug error on npm ci
wmitsuda Jan 4, 2024
35b38ae
Bump @types/react from 18.2.45 to 18.2.46
dependabot[bot] Dec 28, 2023
0440a77
Bump cypress from 13.6.1 to 13.6.2
dependabot[bot] Dec 27, 2023
4402a38
Bump sb to 7.6.7
wmitsuda Jan 4, 2024
a37505b
Bump @testing-library/user-event from 14.5.1 to 14.5.2
dependabot[bot] Jan 4, 2024
20002e0
Bump web-vitals from 3.5.0 to 3.5.1
dependabot[bot] Dec 28, 2023
b94a1cc
Bump prettier-plugin-tailwindcss from 0.5.9 to 0.5.10
dependabot[bot] Jan 4, 2024
ac35141
Bump react-router-dom from 6.21.0 to 6.21.1
dependabot[bot] Dec 22, 2023
aab8ecc
Break overflowing words in Read Contract error messages
sealer3 Jan 5, 2024
1996a41
Use 3 pending columns in Blocks Rewarded table
sealer3 Jan 5, 2024
4795c6d
Bump vite-imagetools from 6.2.7 to 6.2.9
dependabot[bot] Jan 3, 2024
c783b55
Bump @testing-library/jest-dom from 6.1.5 to 6.2.0
dependabot[bot] Jan 4, 2024
196a7b9
Bump postcss from 8.4.32 to 8.4.33
dependabot[bot] Jan 5, 2024
63dd894
Bump vite from 5.0.10 to 5.0.11
dependabot[bot] Jan 6, 2024
37c981e
Make creation tx hash responsive and truncated
sealer3 Jan 8, 2024
9f05af1
Bump tailwindcss from 3.4.0 to 3.4.1
dependabot[bot] Jan 8, 2024
1ce2d08
Bump prettier-plugin-tailwindcss from 0.5.10 to 0.5.11
dependabot[bot] Jan 8, 2024
5b498ea
Prevent address tab page titles from being overwritten
sealer3 Jan 14, 2024
c91421a
Show user notices and dev docs in decoded functions
sealer3 Dec 3, 2023
bc39a3f
Add function signature and docs toggle to params table
sealer3 Dec 29, 2023
286b8e3
Move dev and user docs to Transaction Action section
sealer3 Jan 5, 2024
d88e060
Add HelpButton component and apply to function docs
sealer3 Jan 7, 2024
1562f23
Simplify component return
sealer3 Jan 9, 2024
ea2b10b
Bump @headlessui/react from 1.7.17 to 1.7.18
dependabot[bot] Jan 8, 2024
e5fb100
Bump react-router-dom from 6.21.1 to 6.21.2
dependabot[bot] Jan 11, 2024
2dfbf03
Bump prettier from 3.1.1 to 3.2.4
dependabot[bot] Jan 17, 2024
d0d8aee
Prettier 3.2 now interprets tsconfig.json as jsonc
wmitsuda Jan 17, 2024
da7c912
Bump @types/react from 18.2.46 to 18.2.48 (#1693)
dependabot[bot] Jan 18, 2024
ce3e142
Bump cypress from 13.6.2 to 13.6.3 (#1699)
dependabot[bot] Jan 18, 2024
f45a8d5
Bump storybook from 7.6.7 to 7.6.9 (#1694)
dependabot[bot] Jan 18, 2024
2abf094
Bump storybook from 7.6.9 to 7.6.10 (#1708)
dependabot[bot] Jan 19, 2024
2935d0a
Bump autoprefixer from 10.4.16 to 10.4.17 (#1709)
dependabot[bot] Jan 19, 2024
d0eac1a
Bump vite from 5.0.11 to 5.0.12 (#1712)
dependabot[bot] Jan 19, 2024
524df61
Bump react-router-dom from 6.21.2 to 6.21.3 (#1713)
dependabot[bot] Jan 19, 2024
347e40c
New attempt to fix docker (#1714)
wmitsuda Jan 20, 2024
bdeab63
Try to split runners (#1715)
wmitsuda Jan 20, 2024
0bb2ced
Fix (#1716)
wmitsuda Jan 20, 2024
e9e23f0
Docker fix 4 (#1717)
wmitsuda Jan 20, 2024
d5fea15
Show function signatures (#1681)
sealer3 Jan 24, 2024
25e7079
Bump ts-jest from 29.1.1 to 29.1.2 (#1719)
dependabot[bot] Jan 24, 2024
871a0c2
Bump @testing-library/jest-dom from 6.2.0 to 6.3.0 (#1721)
dependabot[bot] Jan 24, 2024
be30bc6
Add withdrawals count to epoch page (#1724)
sealer3 Jan 26, 2024
1c448f5
Show withdrawals on slot page (#1725)
sealer3 Jan 27, 2024
7afdc1c
Add hex-to-zil and fix API calls (#1)
lucac-zilliqa Jul 5, 2023
d79dd0d
Update image name in Docker publish action (#2)
JamesHinshelwood Jul 5, 2023
29ef4bb
Remove publish to GHCR (#3)
JamesHinshelwood Jul 5, 2023
2ff438e
Show contract bytecode in Contract tab (#8)
JamesHinshelwood Jul 25, 2023
ea18cbb
Display Scilla contract source (#9)
JamesHinshelwood Jul 27, 2023
7a495ca
Add ability to view DS Blocks (#13)
lucac-zilliqa Sep 18, 2023
c7abc31
(fix) Make otterscan build again.
rrw-zilliqa Nov 2, 2023
fd8c6ed
US-322: Can now decode scilla logs. (#16)
rrw-zilliqa Nov 23, 2023
faea7af
(fix) fix compile issues
rrw-zilliqa Dec 5, 2023
991abdd
(feat) Show raw receipts.
rrw-zilliqa Dec 11, 2023
cafac60
(feat) A bit more resilience to improperly formatted receipts.
rrw-zilliqa Dec 15, 2023
2f92339
(fix) Reverse priority of scilla and EVM log entry decodes
rrw-zilliqa Dec 18, 2023
94fb16f
(fix) Remove debugging
rrw-zilliqa Dec 18, 2023
e61060c
(fix) Fix builds.
rrw-zilliqa Dec 18, 2023
d94851e
(fix) remove publish to github - we can't publish otterscan's images :-)
rrw-zilliqa Dec 18, 2023
6e946df
(fix) Fix use of invalid variable in AddressTransactionResults.tsx
rrw-zilliqa Jan 31, 2024
b2c9e9d
(fix) Make otterscan compile again
rrw-zilliqa Jan 31, 2024
53fd17d
(fix) Better spacing for address display
rrw-zilliqa Jan 31, 2024
9486b19
Update ethers.
rrw-zilliqa Jan 31, 2024
a88dda2
(fix) the obligatory prettier run.
rrw-zilliqa Jan 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/workflows/build-and-prettier.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Build and Prettier
on:
pull_request:
types: [opened, synchronize]
push:
branches:
- develop
- main
workflow_dispatch:
jobs:
check-prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install packages
run: npm ci
- name: Run prettier
run: npx prettier -c .
- name: Build Otterscan
run: npm run build
69 changes: 0 additions & 69 deletions .github/workflows/docker-publish.yaml

This file was deleted.

112 changes: 112 additions & 0 deletions .github/workflows/end-to-end.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: End-to-End Tests
on:
pull_request:
types: [opened, synchronize]
push:
branches:
- develop
- main
workflow_dispatch:
jobs:
check-secrets:
runs-on: ubuntu-latest
outputs:
e2e-erigon-url: ${{ steps.e2e-erigon-url.outputs.defined }}
e2e-cypress-record-key: ${{ steps.e2e-cypress-record-key.outputs.defined }}
steps:
- name: Check if E2E_ERIGON_URL is available
id: e2e-erigon-url
env:
E2E_ERIGON_URL: ${{ secrets.E2E_ERIGON_URL }}
if: "${{ env.E2E_ERIGON_URL != '' }}"
run: echo "defined=true" >> $GITHUB_OUTPUT
- name: Check if E2E_CYPRESS_RECORD_KEY is available
id: e2e-cypress-record-key
env:
E2E_CYPRESS_RECORD_KEY: ${{ secrets.E2E_CYPRESS_RECORD_KEY }}
if: "${{ env.E2E_CYPRESS_RECORD_KEY != '' }}"
run: echo "defined=true" >> $GITHUB_OUTPUT

e2e-test-mainnet:
name: Run E2E tests on mainnet
runs-on: ubuntu-latest
if: ${{ needs.check-secrets.outputs.e2e-erigon-url == 'true' }}
needs: [check-secrets]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up xvfb
run: |
sudo apt update
sudo apt install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb

- name: Run Cypress tests on mainnet
uses: cypress-io/github-action@v6
with:
start: npm start
wait-on: "http://localhost:5173"
spec: "cypress/e2e/mainnet/**/*.cy.ts,cypress/e2e/*.cy.ts"
tag: ${{needs.check-secrets.outputs.e2e-cypress-record-key == 'true' && 'mainnet' || ''}}
record: |
${{needs.check-secrets.outputs.e2e-cypress-record-key == 'true' && 'true' || 'false'}}
env:
VITE_ERIGON_URL: ${{secrets.E2E_ERIGON_URL}}
CYPRESS_RECORD_KEY: ${{secrets.E2E_CYPRESS_RECORD_KEY}}
- name: Upload screenshots from failing tests
uses: actions/upload-artifact@v4
if: failure()
with:
name: Cypress Mainnet Screenshots
path: cypress/screenshots

e2e-test-devnet:
name: Run E2E tests on a devnet
runs-on: ubuntu-latest
needs: [check-secrets]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up xvfb
run: |
sudo apt update
sudo apt install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb

- name: Download Erigon
run: git clone --branch release/2.54 --single-branch https://github.com/ledgerwatch/erigon.git
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: "erigon/go.mod"
cache-dependency-path: "erigon/go.sum"
- name: Build Erigon
run: |
cd erigon
make erigon
- name: Load devnet config
id: load-devnet-config
run: |
OTTERSCAN_CONFIG="$(cat cypress/support/devnet-config.json | sed 's/localhost/127.0.0.1/')"
OTTERSCAN_CONFIG=$(echo $OTTERSCAN_CONFIG)
echo "config=$OTTERSCAN_CONFIG" >> $GITHUB_OUTPUT
- name: Run Cypress tests on devnet
uses: cypress-io/github-action@v6
with:
start: |
sh ./scripts/run-erigon-devnet-e2e-tests.sh
npm run start
wait-on: "http://127.0.0.1:8545, http://localhost:5173"
spec: "cypress/e2e/devnet/**/*.cy.ts,cypress/e2e/*.cy.ts"
tag: ${{needs.check-secrets.outputs.e2e-cypress-record-key == 'true' && 'devnet' || ''}}
record: |
${{needs.check-secrets.outputs.e2e-cypress-record-key == 'true' && 'true' || 'false'}}
env:
VITE_CONFIG_JSON: ${{steps.load-devnet-config.outputs.config}}
CYPRESS_RECORD_KEY: ${{secrets.E2E_CYPRESS_RECORD_KEY}}
CYPRESS_DEVNET_ERIGON_URL: "http://127.0.0.1:8545"
CYPRESS_DEVNET_SOURCIFY_SOURCE: "http://127.0.0.1:7077"
- name: Upload screenshots from failing tests
uses: actions/upload-artifact@v4
if: failure()
with:
name: Cypress Devnet Screenshots
path: cypress/screenshots
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# Vite cache
.vite/

# emacs backups
*~
Expand All @@ -12,6 +14,9 @@

# testing
/coverage
/storybook-static
/cypress/screenshots
/cypress/videos

# production
/build
Expand Down
3 changes: 3 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ const config: StorybookConfig = {
typescript: {
reactDocgen: false,
},
core: {
disableTelemetry: true,
},
};

export default config;
2 changes: 1 addition & 1 deletion .storybook/preview-head.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<script>
window.global = window;
</script>
</script>
11 changes: 5 additions & 6 deletions .storybook/preview.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import React from "react";
import { Decorator } from "@storybook/react";
import { INITIAL_VIEWPORTS } from "@storybook/addon-viewport";
import { BrowserRouter as Router } from "react-router-dom";
import "@fontsource/fira-code/index.css";
import "@fontsource/space-grotesk/index.css";
import "@fontsource/roboto/index.css";
import "@fontsource/roboto-mono/index.css";
import "@fontsource/roboto/index.css";
import "@fontsource/space-grotesk/files/space-grotesk-latin-400-normal.woff2";
import "@fontsource/space-grotesk/index.css";
import { INITIAL_VIEWPORTS } from "@storybook/addon-viewport";
import { Decorator } from "@storybook/react";
import { BrowserRouter as Router } from "react-router-dom";
import "../src/index.css";

export const parameters = {
Expand Down
28 changes: 14 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM node:20.8.1-alpine3.17 AS builder
FROM node:20.10.0-alpine3.17 AS builder
WORKDIR /otterscan-build
COPY ["package.json", "package-lock.json", "/otterscan-build/"]
RUN npm ci
COPY ["run-nginx.sh", "tsconfig.json", "tsconfig.node.json", "postcss.config.js", "tailwind.config.js", "vite.config.ts", "index.html", "/otterscan-build/"]
COPY ["public", "/otterscan-build/public/"]
COPY ["src", "/otterscan-build/src/"]
COPY --link ["package.json", "package-lock.json", "/otterscan-build/"]
RUN npm ci --fetch-timeout 600000 --verbose
COPY --link ["run-nginx.sh", "tsconfig.json", "tsconfig.node.json", "postcss.config.js", "tailwind.config.js", "vite.config.ts", "index.html", "/otterscan-build/"]
COPY --link ["public", "/otterscan-build/public/"]
COPY --link ["src", "/otterscan-build/src/"]
RUN npm run build

# Add brotli module to official nginx image
Expand Down Expand Up @@ -71,14 +71,14 @@ RUN set -ex \
&& rm -rf /tmp/packages
RUN apk update && apk add jq
WORKDIR /usr/share/nginx/html/
COPY --from=otterscan/otterscan-assets:v1.1.1 /usr/share/nginx/html/chains chains/
COPY --from=otterscan/otterscan-assets:v1.1.1 /usr/share/nginx/html/topic0 topic0/
COPY --from=otterscan/otterscan-assets:v1.1.1 /usr/share/nginx/html/assets assets/
COPY --from=otterscan/otterscan-assets:v1.1.1 /usr/share/nginx/html/signatures signatures/
COPY nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/nginx.conf
COPY --from=builder /otterscan-build/dist /usr/share/nginx/html/
COPY --from=builder /otterscan-build/run-nginx.sh /
COPY --link --from=otterscan/otterscan-assets:v1.1.1 /usr/share/nginx/html/chains chains/
COPY --link --from=otterscan/otterscan-assets:v1.1.1 /usr/share/nginx/html/topic0 topic0/
COPY --link --from=otterscan/otterscan-assets:v1.1.1 /usr/share/nginx/html/assets assets/
COPY --link --from=otterscan/otterscan-assets:v1.1.1 /usr/share/nginx/html/signatures signatures/
COPY --link nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
COPY --link nginx/nginx.conf /etc/nginx/nginx.conf
COPY --link --from=builder /otterscan-build/dist /usr/share/nginx/html/
COPY --link --from=builder /otterscan-build/run-nginx.sh /
WORKDIR /

CMD ["/run-nginx.sh"]
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,6 @@ Follow the creator on Twitter for more updates ([@wmitsuda](https://twitter.com/

### Donation address

If you like this project, feel free to send donations to `otterscan.eth` or use our gitcoin grant page: https://gitcoin.co/grants/3224/otterscan
If you like this project, feel free to send donations to `otterscan.eth` on any EVM chain (it's an EOA).

We also participate regularly on Gitcoin Grants rounds.
40 changes: 40 additions & 0 deletions cypress.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { defineConfig } from "cypress";
import fs from "fs";

export default defineConfig({
e2e: {
projectId: "rypdvn",
setupNodeEvents(on, config) {
on(
"after:spec",
(spec: Cypress.Spec, results: CypressCommandLine.RunResult) => {
if (results && results.video) {
// Do we have failures for any retry attempts?
const failures = results.tests.some((test) =>
test.attempts.some((attempt) => attempt.state === "failed"),
);
if (!failures) {
// delete the video if the spec passed and no tests retried
fs.unlinkSync(results.video);
}
}
},
);
on("task", {
// Run cy.task('log', <message>) to log something to stdout
log(message) {
console.log(message);
return null;
},
});
},
baseUrl: "http://localhost:5173",
// SyntaxHighlighter files may take several seconds to load in dev mode
defaultCommandTimeout: 8_000,
video: true,
env: {
DEVNET_ERIGON_URL: "http://localhost:8545",
DEVNET_SOURCIFY_SOURCE: "http://localhost:7077",
},
},
});
28 changes: 28 additions & 0 deletions cypress/e2e/devnet/spec.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
describe("Devnet tests", () => {
beforeEach(() => {
cy.visit("/");
});
it("Has a warning header with the chain ID", () => {
cy.get('[data-test="warning-header-network-name"]').contains(
"You are on ChainID: 1337",
);
});
it("Can navigate to a transaction's Trace tab and back", () => {
cy.sendTx({
to: "0x67b1d87101671b127f5f8714789C7192f7ad340e",
}).then(({ txReceipt }) => {
cy.visit("/tx/" + txReceipt.hash);
// Click Trace button and make sure the trace loads
cy.get("a").contains("Trace").click();
cy.get("span").contains("<fallback>");
cy.location("pathname").should(
"equal",
"/tx/" + txReceipt.hash + "/trace",
);
// Go back to the Overview tab
cy.get("a").contains("Overview").click();
cy.location("pathname").should("equal", "/tx/" + txReceipt.hash);
cy.get('[data-test="tx-hash"]').contains(txReceipt.hash);
});
});
});
Loading