Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update blockscout frontend #21

Merged
merged 654 commits into from
Feb 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
654 commits
Select commit Hold shift + click to select a range
35bc0fd
new arrow styles
tom2drum Jan 16, 2024
d71e398
Merge pull request #1503 from blockscout/tabs-fix
isstuev Jan 16, 2024
c0239ee
Merge pull request #1482 from blockscout/tom2drum/issue-1405
tom2drum Jan 16, 2024
e7d5da6
Merge pull request #1485 from blockscout/fix-wallet-tooltip
tom2drum Jan 16, 2024
deb9ff0
Merge pull request #1491 from blockscout/tom2drum/issue-1355
tom2drum Jan 16, 2024
e845814
Merge pull request #1497 from blockscout/remove-alerts-from-dapp-page
tom2drum Jan 16, 2024
f519318
Merge pull request #1495 from blockscout/add-new-mixpanel-events
tom2drum Jan 16, 2024
e39ea3c
token transfer filter fix
ArminaAiren Jan 16, 2024
47566b8
Merge pull request #1507 from blockscout/tt-filter-fix
isstuev Jan 16, 2024
c2d1269
add tests for AddressFromTo
tom2drum Jan 17, 2024
d0edeb3
update screenshots
tom2drum Jan 17, 2024
db3ebf3
hmmm
tom2drum Jan 17, 2024
cd536ba
Generate multiplatform image
vbaranov Jan 17, 2024
4d719e8
Merge branch 'main' of github.com:blockscout/frontend into tom2drum/i…
tom2drum Jan 17, 2024
938a0bc
more updates
tom2drum Jan 17, 2024
48ddee3
fix filters and layout
tom2drum Jan 17, 2024
36e863c
update margins
tom2drum Jan 17, 2024
4c09d83
link to token and screenshots update
tom2drum Jan 17, 2024
ba685cf
trying to fix truncation
tom2drum Jan 17, 2024
61f676b
Merge pull request #1460 from blockscout/tom2drum/issue-1376
tom2drum Jan 17, 2024
06449e9
Merge pull request #1492 from blockscout/tom2drum/issue-1486
tom2drum Jan 17, 2024
8f6e3e2
Merge pull request #1513 from blockscout/vb-generate-multiplatform-image
tom2drum Jan 17, 2024
e697433
Merge branch 'main' into tom2drum/issue-1484
tom2drum Jan 17, 2024
ca91333
Merge pull request #1489 from blockscout/tom2drum/issue-1484
tom2drum Jan 17, 2024
463f386
run "deploy from main" workflow manually
tom2drum Jan 17, 2024
63b5efd
Merge pull request #1471 from blockscout/tom2drum/issue-1448
tom2drum Jan 17, 2024
ccfb4fa
Highlighted address
tom2drum Jan 17, 2024
745a9ef
fix tests
tom2drum Jan 17, 2024
87f1a56
Merge branch 'tom2drum/issue-1446' of github.com:blockscout/frontend …
tom2drum Jan 17, 2024
a58e467
csp for bens
tom2drum Jan 17, 2024
22699d6
update screenshots
tom2drum Jan 17, 2024
d67d662
Merge pull request #1463 from blockscout/tom2drum/issue-1446
tom2drum Jan 17, 2024
f238ea8
Connect wallet event sent twice
tom2drum Jan 18, 2024
e607dbf
[skip ci] input for platforms in "publish image" workflow
tom2drum Jan 18, 2024
e56e875
Merge pull request #1516 from blockscout/tom2drum/image-platforms
tom2drum Jan 18, 2024
dbbc311
Custom 'wei' name
tom2drum Jan 18, 2024
c4cee87
fix
tom2drum Jan 19, 2024
c9d7786
[skip ci] fix skeletons for home page indicators widget
tom2drum Jan 19, 2024
8c0adb5
debug ci, remove ignore-optional flag
alik-agaev Jan 22, 2024
815aab2
Merge pull request #1515 from blockscout/tom2drum/issue-1509
tom2drum Jan 22, 2024
c7dc03b
Merge pull request #1517 from blockscout/tom2drum/issue-1490
tom2drum Jan 22, 2024
55ac1ea
navigation doesn't work on error pages (#1519)
tom2drum Jan 22, 2024
652620a
Merge pull request #1523 from blockscout/test-ci
isstuev Jan 22, 2024
6f8a9b8
user ops list and user op details
ArminaAiren Jan 15, 2024
a6ab591
review-env
ArminaAiren Jan 16, 2024
f00d3b3
token transfers and call data
ArminaAiren Jan 17, 2024
37cbe81
logs and some fixes
ArminaAiren Jan 17, 2024
91b8e7b
hide fee if hidden in config
ArminaAiren Jan 17, 2024
d1d615e
user ops tab in tx
ArminaAiren Jan 17, 2024
411cd1d
address user ops
ArminaAiren Jan 17, 2024
8921dfd
icon
ArminaAiren Jan 17, 2024
ca55da3
raw data and some fixes
ArminaAiren Jan 18, 2024
863cedc
slim icon
ArminaAiren Jan 18, 2024
985e8b2
some other fixes
ArminaAiren Jan 18, 2024
196493b
fixes
ArminaAiren Jan 19, 2024
f49d487
schema changes
ArminaAiren Jan 19, 2024
1a40469
tests, fixes, etc
ArminaAiren Jan 19, 2024
285a4c5
timestamp margin fix
ArminaAiren Jan 20, 2024
09e4f13
fix2
ArminaAiren Jan 22, 2024
336fcf5
search
ArminaAiren Jan 22, 2024
1cf6ca7
raw data sort
ArminaAiren Jan 22, 2024
bb0c499
add integration mark
maxaleks Jan 23, 2024
5e61c15
fix envs-validator
maxaleks Jan 23, 2024
3ed37a1
remove call data tab
ArminaAiren Jan 23, 2024
9f1afad
fix
ArminaAiren Jan 23, 2024
65268e1
add hype provider (dev config)
ArminaAiren Jan 2, 2024
31de340
bug fix
ArminaAiren Jan 3, 2024
bae6a03
revert after demo
ArminaAiren Jan 3, 2024
e958e77
new hype sdk
ArminaAiren Jan 23, 2024
bde4d16
fix styles
maxaleks Jan 24, 2024
00d1b56
typos
ArminaAiren Jan 25, 2024
7b2872c
Address title: second line updates
tom2drum Jan 25, 2024
b352e18
new category tabs
maxaleks Jan 25, 2024
6716d99
update screenshots
tom2drum Jan 26, 2024
1f9dd25
update dots
tom2drum Jan 26, 2024
27e4c09
use separate list of categories and improve apps sorting
maxaleks Jan 26, 2024
5dac462
update svg fill prop
maxaleks Jan 26, 2024
cac9198
re-update svg fill prop
maxaleks Jan 26, 2024
67f365d
Update docs/ENVS.md
isstuev Jan 29, 2024
b752acc
Update pages/op/[hash].tsx
isstuev Jan 29, 2024
a7a0a39
review fixes
ArminaAiren Jan 29, 2024
8d97e7c
Merge pull request #1504 from blockscout/user-ops
isstuev Jan 29, 2024
add54ac
rework the category query
maxaleks Jan 29, 2024
bdc05ac
bump Node.js to v20 (#1417)
tom2drum Jan 29, 2024
6f8ae2e
post-review fixes
maxaleks Jan 29, 2024
e4df830
fix linter error
maxaleks Jan 29, 2024
766c2b7
production configs
ArminaAiren Jan 29, 2024
c196134
Merge pull request #1542 from blockscout/tom2drum/issue-1537
isstuev Jan 29, 2024
f6ccec0
Contract interaction: nested tuple values are not parsed properly (#1…
tom2drum Jan 30, 2024
5d90854
Graceful service degradation: tx details tab (#1525)
tom2drum Jan 30, 2024
8f822b3
Cleaning up BENS representation (#1546)
tom2drum Jan 30, 2024
c0e27af
"Open in IDE" button for contracts (#1544)
tom2drum Jan 30, 2024
589cbbf
fix categories placeholder
maxaleks Jan 30, 2024
0e0952c
Graceful service degradation: block page (#1541)
tom2drum Jan 30, 2024
8fb0a6a
move categories stub
maxaleks Jan 30, 2024
878cb93
Merge pull request #1528 from blockscout/integration-mark
maxaleks Jan 30, 2024
3d8e398
Merge branch 'main' into category-tabs
maxaleks Jan 30, 2024
63c6107
Merge pull request #1543 from blockscout/category-tabs
maxaleks Jan 30, 2024
4374a6f
Merge pull request #1545 from blockscout/improve-marketplace-sorting
maxaleks Jan 30, 2024
037499a
[skip ci] testing feature flags
tom2drum Jan 30, 2024
bff7f8c
explorers links design fixes
ArminaAiren Jan 29, 2024
f0bc422
typo fix
ArminaAiren Jan 30, 2024
42f4501
add domain type to tx interpretation
ArminaAiren Jan 30, 2024
75d3e3c
Merge pull request #1554 from blockscout/typo-fix
isstuev Jan 30, 2024
7eac93f
[skip ci] simplify mock for feature testing
tom2drum Jan 31, 2024
47a938d
token id can be null
ArminaAiren Jan 31, 2024
67ae41b
[skip ci] fix border radius of token select skeleton
tom2drum Jan 31, 2024
ace0e4e
remove unnecessary focus
ArminaAiren Feb 1, 2024
dc23b19
Unify rollups routes (#1547)
tom2drum Feb 2, 2024
1bedf71
typo fix
ArminaAiren Jan 30, 2024
74c586c
Merge pull request #1550 from blockscout/fe-1533
isstuev Feb 2, 2024
2adf101
Merge pull request #1558 from blockscout/fe-1538
isstuev Feb 2, 2024
cd6c555
add swap button
maxaleks Feb 2, 2024
2086378
Deploy fixes for l1 env
nzenchik Feb 2, 2024
fe81cfe
[skip ci] update actions/github-script workflow version
tom2drum Feb 5, 2024
6c0b765
review fix
ArminaAiren Feb 5, 2024
7ed1aa9
fix fullscreen
ArminaAiren Jan 31, 2024
0a0cd0e
review fix
ArminaAiren Feb 5, 2024
c864b8c
fix-test
ArminaAiren Feb 5, 2024
467bf2c
update screenshots
maxaleks Feb 5, 2024
4ccffbe
do not show tooltip when connecting wallet
maxaleks Feb 5, 2024
1ba9116
Minor layout fixes (#1561)
tom2drum Feb 6, 2024
c2d398e
fix(tx): when txReceipt.effectiveGasPrice is nill can't call txReceip…
luchenqun Feb 6, 2024
7f39c55
post-review fixes
maxaleks Feb 6, 2024
82737d5
Revert "update screenshots"
maxaleks Feb 6, 2024
0ef946b
add swap button to playwright test
maxaleks Feb 6, 2024
06649df
Merge pull request #1567 from blockscout/fe-1566
isstuev Feb 6, 2024
9802a72
Merge pull request #1562 from blockscout/fe-1559
isstuev Feb 6, 2024
504de39
Merge pull request #1553 from blockscout/interpretation-domains
isstuev Feb 6, 2024
0dcad9d
enable swap button only for TopBar test
tom2drum Feb 7, 2024
77ecda6
Merge branch 'main' of github.com:blockscout/frontend into swap-button
tom2drum Feb 7, 2024
adb1b0c
fetch dapps from admin service
maxaleks Feb 7, 2024
e1c2c54
fix block views
tom2drum Feb 8, 2024
9068d41
fix tx views
tom2drum Feb 8, 2024
8aca9e7
check template summary
ArminaAiren Feb 8, 2024
0a8a82e
hotfix: fix error in degraded views when no RPC URL provided (#1583)
tom2drum Feb 8, 2024
f45a4db
rework queries
maxaleks Feb 8, 2024
19d5960
remove unnecessary change
maxaleks Feb 8, 2024
dff6742
prioritize marketplace config
maxaleks Feb 8, 2024
d9ea46f
[skip ci] support array-like query params in API resource calls
tom2drum Feb 8, 2024
1603b33
fix envs-validator
maxaleks Feb 8, 2024
958f2da
test-fixes
ArminaAiren Feb 8, 2024
86a888e
Merge pull request #1591 from blockscout/test-fixes
isstuev Feb 8, 2024
c15859e
Do not send user operations API requests, if NEXT_PUBLIC_HAS_USER_OPS…
tom2drum Feb 9, 2024
c7197bb
Do not send user operations API requests, if NEXT_PUBLIC_HAS_USER_OPS…
tom2drum Feb 9, 2024
fd11d55
fix marketplace categories
maxaleks Feb 9, 2024
3bc942b
Merge branch 'main' into marketplace-admin-api
maxaleks Feb 9, 2024
bf33979
rollback buildUrl changes
tom2drum Feb 9, 2024
065bb12
add suggest ideas button
maxaleks Feb 9, 2024
fec9e20
Merge pull request #1594 from blockscout/fix-categories
tom2drum Feb 12, 2024
960e80d
OG description bug for NFT instances
tom2drum Feb 12, 2024
058364e
revert demo values
ArminaAiren Feb 12, 2024
34d8a57
Merge pull request #1585 from blockscout/check-summary
isstuev Feb 12, 2024
e7a9bc6
Run only affected test in PRs (#1565)
tom2drum Feb 12, 2024
df35285
Refactor rollup features (#1599)
tom2drum Feb 12, 2024
4afa0f1
Missing checksum on address page and read contract page (#1600)
tom2drum Feb 12, 2024
6b43f9b
OG description bug for NFT instances (#1601)
tom2drum Feb 12, 2024
3ecc9e5
Case: One button in a title (private/public tag) (#1593)
tom2drum Feb 12, 2024
ae0debf
Interpretation UI update
ArminaAiren Feb 12, 2024
7bf581b
Merge pull request #1469 from blockscout/fe-1439
isstuev Feb 12, 2024
2fff07b
rework dapp queries
maxaleks Feb 12, 2024
5896c4f
Update ENVS.md
maxaleks Feb 12, 2024
9f01248
move complex title to Marketplace component
maxaleks Feb 12, 2024
6c5fcf9
Merge pull request #1604 from blockscout/fe-1590
isstuev Feb 12, 2024
c5e3774
remove dynamic truncation from tables
ArminaAiren Feb 5, 2024
a7d28b9
some fixes and tests
ArminaAiren Feb 8, 2024
4ffbb10
token transfer fix
ArminaAiren Feb 12, 2024
85cc44e
Merge pull request #1577 from blockscout/fe-1575
isstuev Feb 12, 2024
fca65f1
remove epoch
ArminaAiren Feb 12, 2024
36dae94
Graceful service degradation: address page (#1580)
tom2drum Feb 13, 2024
1ee81f5
Merge branch 'main' into marketplace-admin-api
maxaleks Feb 13, 2024
8e09b62
Merge pull request #1607 from blockscout/fe-1587
isstuev Feb 13, 2024
0349c45
fix ts
tom2drum Feb 13, 2024
f2a7a15
Merge branch 'main' of github.com:blockscout/frontend into marketplac…
tom2drum Feb 13, 2024
9538a8f
fix ts overload
tom2drum Feb 13, 2024
48f236e
Fix minor typo (#1608)
omahs Feb 13, 2024
c087a67
Merge branch 'marketplace-admin-api' into suggest-ideas-button
maxaleks Feb 13, 2024
a568210
Merge pull request #1569 from blockscout/swap-button
maxaleks Feb 13, 2024
d1aef09
Merge pull request #1581 from blockscout/marketplace-admin-api
maxaleks Feb 13, 2024
1a6ea42
Merge pull request #1597 from blockscout/suggest-ideas-button
maxaleks Feb 13, 2024
75b0bbe
temporary disable focus reset
tom2drum Feb 13, 2024
320ee8e
remove marketplace experiment
maxaleks Feb 14, 2024
e0cda4c
remove unused components
maxaleks Feb 14, 2024
687c5ac
update screenshots
maxaleks Feb 14, 2024
a4aa1e2
fix
ArminaAiren Feb 14, 2024
c2dcc91
fix interpretation checks
ArminaAiren Feb 14, 2024
623f414
Merge pull request #1614 from blockscout/interpretation-validation-fix
isstuev Feb 14, 2024
fd45937
add method call as tx interpretation
ArminaAiren Feb 14, 2024
d4d4859
trying to fix problem with affected tests file download
tom2drum Feb 14, 2024
9f3122c
[skip ci] optimize affected tests script
tom2drum Feb 15, 2024
0e57120
sort dapps by favorite
maxaleks Feb 15, 2024
d358993
fix csp policy for hype
tom2drum Feb 16, 2024
b6a8896
fix label for "Add public tag"
tom2drum Feb 16, 2024
b2432b3
Merge pull request #1620 from blockscout/release/v1.24.0
tom2drum Feb 16, 2024
8d6429d
Fix RSK stats - transaction fees precision (#1602)
tom2drum Feb 16, 2024
0a825f0
Fix broken link in ENVS.md
bap2pecs Feb 16, 2024
123cf3f
add NEXT_PUBLIC_MARKETPLACE_ENABLED env var
maxaleks Feb 16, 2024
113647d
update schema
maxaleks Feb 16, 2024
ae563d3
enable marketplace in pw tests
maxaleks Feb 16, 2024
2d3066f
add an explanatory comment
maxaleks Feb 16, 2024
7cce399
fix script
tom2drum Feb 16, 2024
c168859
Merge branch 'hot-fix-env-validator' of github.com:blockscout/fronten…
tom2drum Feb 16, 2024
3a89edf
Merge pull request #1615 from blockscout/fe-1589
isstuev Feb 18, 2024
ff7a5cc
Merge pull request #1623 from blockscout/hot-fix-env-validator
tom2drum Feb 19, 2024
b7b891d
Merge pull request #1622 from bap2pecs/patch-1
tom2drum Feb 19, 2024
74561d6
Validators list (#1621)
tom2drum Feb 19, 2024
e522483
[skip ci] out out parallel tests in local env
tom2drum Feb 19, 2024
beebb07
shibarium deposits and withdrawals
ArminaAiren Feb 15, 2024
dd47c92
review fixes
ArminaAiren Feb 19, 2024
2139c6c
Merge pull request #1610 from blockscout/fe-1564
isstuev Feb 19, 2024
b1fdc64
contract audits
ArminaAiren Feb 14, 2024
8a71b3d
tests
ArminaAiren Feb 14, 2024
9676d2f
tests
ArminaAiren Feb 14, 2024
5965c63
fix schema
ArminaAiren Feb 15, 2024
16274b9
try to remove scroll artifacts
ArminaAiren Feb 16, 2024
cb9d6cb
remove double fetch
ArminaAiren Feb 18, 2024
ab2f498
better mock
ArminaAiren Feb 18, 2024
6e118f2
review fixes
ArminaAiren Feb 19, 2024
5c2d06f
Merge pull request #1598 from blockscout/fe-1563
isstuev Feb 19, 2024
7c69314
Gas tracker page (#1524)
tom2drum Feb 20, 2024
043609f
`outputs` field is not required for contract read method
tom2drum Feb 20, 2024
66ec60d
Merge pull request #1613 from blockscout/remove-marketplace-experiment
isstuev Feb 20, 2024
bf709de
Merge pull request #1619 from blockscout/dapp-sorting-with-favourites
isstuev Feb 20, 2024
e281214
rename apps to dapps
maxaleks Feb 15, 2024
058fedd
update screenshots
maxaleks Feb 15, 2024
d20c632
Merge pull request #1618 from blockscout/rename-apps-to-dapps
isstuev Feb 20, 2024
90c4ca7
Merge pull request #1628 from blockscout/tom2drum/issue-1624
isstuev Feb 20, 2024
4b27e3a
add ads for GasTracker page test
tom2drum Feb 20, 2024
f7ab435
fix csp for marketplace
tom2drum Feb 22, 2024
d806732
update search bar screenshot
tom2drum Feb 22, 2024
c768469
typo: incorrect yarn dev preset command
ryanpwaldon Feb 22, 2024
98d3bbc
Merge pull request #1636 from ryanpwaldon/typo/incorrect-yarn-dev-pre…
tom2drum Feb 23, 2024
a7424c6
Not possible to remove address filter in token inventory for an addre…
tom2drum Feb 23, 2024
cf6fb44
Merge branch 'main' of github.com:blockscout/frontend into tom2drum/i…
tom2drum Feb 23, 2024
452bcc4
OG description bug for NFT instances
tom2drum Feb 23, 2024
4903ff2
fix navigation reset
ArminaAiren Feb 24, 2024
f98c321
Merge pull request #1640 from blockscout/tom2drum/issue-1514
tom2drum Feb 26, 2024
06b9f97
Merge pull request #1641 from blockscout/tom2drum/issue-1578
tom2drum Feb 26, 2024
9dbb2b0
Merge pull request #1642 from blockscout/fe-1631
tom2drum Feb 26, 2024
c8f6001
Display arrays of structs on Read/Write contract tabs (#1556)
tom2drum Feb 26, 2024
418a623
Merge branch 'main' into subspace-frontend
DaMandal0rian Feb 27, 2024
2cccf98
Update config.yml
jfrank-summit Nov 16, 2023
02e2215
Change metadata og:title and og:description
marc-aurele-besner Nov 17, 2023
3abe2c0
Change og:image for Subspace Nova
marc-aurele-besner Nov 17, 2023
f02f927
Merge branch 'subspace-frontend' into muhammad/frontend
DaMandal0rian Feb 27, 2024
3784c96
update the deploy workflow and removed unused ones
DaMandal0rian Feb 27, 2024
8d97419
Fix svgSprite for linting
DaMandal0rian Feb 27, 2024
f5c7d84
fix(addbutkerScript): add missing file
dnoishi Feb 28, 2024
b1af620
Update yarn.lock
dnoishi Feb 28, 2024
0db5734
fix(build): fix building issue
dnoishi Feb 28, 2024
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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "blockscout dev",
"image": "mcr.microsoft.com/devcontainers/typescript-node:18",
"image": "mcr.microsoft.com/devcontainers/typescript-node:20",
"forwardPorts": [ 3000 ],
"customizations": {
"vscode": {
Expand Down
9 changes: 6 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
NEXT_PUBLIC_SENTRY_DSN=xxx
SENTRY_CSP_REPORT_URI=xxx
NEXT_PUBLIC_SENTRY_DSN=https://sentry.io
SENTRY_CSP_REPORT_URI=https://sentry.io
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=xxx
NEXT_PUBLIC_RE_CAPTCHA_APP_SITE_KEY=xxx
NEXT_PUBLIC_GOOGLE_ANALYTICS_PROPERTY_ID=UA-XXXXXX-X
NEXT_PUBLIC_MIXPANEL_PROJECT_TOKEN=xxx
NEXT_PUBLIC_AUTH0_CLIENT_ID=xxx
NEXT_PUBLIC_GROWTH_BOOK_CLIENT_KEY=xxx
NEXT_PUBLIC_AUTH0_CLIENT_ID=xxx
FAVICON_GENERATOR_API_KEY=xxx
NEXT_PUBLIC_GROWTH_BOOK_CLIENT_KEY=xxx
3 changes: 2 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ node_modules_linux
playwright/envs.js
deploy/tools/envs-validator/index.js
deploy/tools/feature-reporter/build/**
deploy/tools/feature-reporter/index.js
deploy/tools/feature-reporter/index.js
public/**
17 changes: 16 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ const RESTRICTED_MODULES = {
paths: [
{ name: 'dayjs', message: 'Please use lib/date/dayjs.ts instead of directly importing dayjs' },
{ name: '@chakra-ui/icons', message: 'Using @chakra-ui/icons is prohibited. Please use regular svg-icon instead (see examples in "icons/" folder)' },
{ name: '@metamask/providers', message: 'Please lazy-load @metamask/providers or use useProvider hook instead' },
{ name: '@metamask/post-message-stream', message: 'Please lazy-load @metamask/post-message-stream or use useProvider hook instead' },
],
patterns: [
'icons/*',
],
};

Expand All @@ -20,6 +25,7 @@ module.exports = {
'plugin:@typescript-eslint/recommended',
'plugin:jest/recommended',
'plugin:playwright/playwright-test',
'plugin:@tanstack/eslint-plugin-query/recommended',
],
plugins: [
'es5',
Expand All @@ -31,6 +37,7 @@ module.exports = {
'eslint-plugin-import-helpers',
'jest',
'eslint-plugin-no-cyrillic-string',
'@tanstack/query',
],
parser: '@typescript-eslint/parser',
parserOptions: {
Expand Down Expand Up @@ -305,7 +312,15 @@ module.exports = {
},
},
{
files: [ 'configs/**/*.js', 'configs/**/*.ts', '*.config.ts', 'playwright/**/*.ts', 'deploy/tools/**' ],
files: [
'*.config.ts',
'*.config.js',
'playwright/**',
'deploy/tools/**',
'middleware.ts',
'nextjs/**',
'instrumentation*.ts',
],
rules: {
// for configs allow to consume env variables from process.env directly
'no-restricted-properties': [ 0 ],
Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
blank_issues_enabled: false
blank_issues_enabled: true
contact_links:
- name: Feature Request
url: https://github.com/subspace/blockscout-frontend/issues
Expand All @@ -8,4 +8,4 @@ contact_links:
about: Ask questions and discuss topics with other community members
- name: Join our Discord Server
url: https://discord.com/invite/subspace-network
about: The official Subspace Network Discord community
about: The official Subspace Network Discord community
2 changes: 0 additions & 2 deletions .github/workflows/deploy-subspace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,3 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_COMMIT_SHA=${{ env.SHORT_SHA }}


2 changes: 1 addition & 1 deletion .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,4 @@ jobs:
name: Run tests
needs: deploy_e2e
uses: blockscout/blockscout-ci-cd/.github/workflows/e2e_new.yaml@master
secrets: inherit
secrets: inherit
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@
# next.js
/.next/
/out/
/public/assets/
/public/envs.js
/public/icons/sprite.svg
/public/icons/README.md
/analyze

# production
/build
Expand Down Expand Up @@ -46,5 +51,6 @@ yarn-error.log*
/playwright/.cache/
/playwright/.browser/
/playwright/envs.js
/playwright/affected-tests.txt

**.dec**
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
18
20.11.0
27 changes: 26 additions & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,27 @@
"instanceLimit": 1
}
},
{
"type": "shell",
"command": "yarn test:pw:detect-affected",
"problemMatcher": [],
"label": "pw: detect affected",
"detail": "detect PW tests affected by changes in current branch",
"presentation": {
"reveal": "always",
"panel": "shared",
"focus": true,
"close": false,
"revealProblems": "onProblem",
},
"icon": {
"color": "terminal.ansiBlue",
"id": "diff"
},
"runOptions": {
"instanceLimit": 1
},
},

// JEST TESTS
{
Expand Down Expand Up @@ -265,7 +286,7 @@
},
{
"type": "npm",
"script": "format-svg",
"script": "svg:format",
"problemMatcher": [],
"label": "format svg",
"detail": "format svg files with svgo",
Expand Down Expand Up @@ -305,6 +326,7 @@
"options": [
"",
"--update-snapshots",
"--update-snapshots --affected",
"--ui",
],
"default": ""
Expand All @@ -318,9 +340,12 @@
"main.L2",
"poa_core",
"eth_goerli",
"sepolia",
"eth",
"rootstock",
"polygon",
"zkevm",
"gnosis",
"localhost",
],
"default": "main"
Expand Down
37 changes: 21 additions & 16 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# *****************************
# *** STAGE 1: Dependencies ***
# *****************************
FROM node:18-alpine AS deps
FROM node:20.11.0-alpine AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat

Expand Down Expand Up @@ -30,7 +30,7 @@ RUN yarn --frozen-lockfile
# *****************************
# ****** STAGE 2: Build *******
# *****************************
FROM node:18-alpine AS builder
FROM node:20.11.0-alpine AS builder
RUN apk add --no-cache --upgrade libc6-compat bash

# pass commit sha and git tag to the app image
Expand All @@ -47,9 +47,9 @@ WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .

# Generate .env.production with ENVs placeholders and save build args into .env file
COPY --chmod=+x ./deploy/scripts/make_envs_template.sh ./
RUN ./make_envs_template.sh ./docs/ENVS.md
# Generate .env.registry with ENVs list and save build args into .env file
COPY --chmod=+x ./deploy/scripts/collect_envs.sh ./
RUN ./collect_envs.sh ./docs/ENVS.md

# Next.js collects completely anonymous telemetry data about general usage.
# Learn more here: https://nextjs.org/telemetry
Expand All @@ -58,29 +58,27 @@ RUN ./make_envs_template.sh ./docs/ENVS.md

# Build app for production
RUN yarn build
RUN yarn svg:build-sprite


### FEATURE REPORTER
# Copy dependencies and source code, then build
COPY --from=deps /feature-reporter/node_modules ./deploy/tools/feature-reporter/node_modules
RUN cd ./deploy/tools/feature-reporter && yarn compile_config
RUN cd ./deploy/tools/feature-reporter && yarn build
RUN cd ./deploy/tools/feature-reporter && yarn build


### ENV VARIABLES CHECKER
# Copy dependencies and source code, then build
WORKDIR /envs-validator
COPY --from=deps /envs-validator/node_modules ./node_modules
COPY ./deploy/tools/envs-validator .
COPY ./types/envs.ts .
RUN yarn build
COPY --from=deps /envs-validator/node_modules ./deploy/tools/envs-validator/node_modules
RUN cd ./deploy/tools/envs-validator && yarn build


# *****************************
# ******* STAGE 3: Run ********
# *****************************
# Production image, copy all the files and run next
FROM node:18-alpine AS runner
FROM node:20.11.0-alpine AS runner
RUN apk add --no-cache --upgrade bash curl jq unzip

### APP
Expand All @@ -92,25 +90,32 @@ WORKDIR /app
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

# Set the correct permission for prerender cache
RUN mkdir .next
RUN chown nextjs:nodejs .next

COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
COPY --from=builder /envs-validator/index.js ./envs-validator.js
COPY --from=builder /app/deploy/tools/envs-validator/index.js ./envs-validator.js
COPY --from=builder /app/deploy/tools/feature-reporter/index.js ./feature-reporter.js

# Copy scripts
## Entripoint
COPY --chmod=+x ./deploy/scripts/entrypoint.sh .
## ENV replacer
COPY --chmod=+x ./deploy/scripts/replace_envs.sh .
## ENV validator and client script maker
COPY --chmod=+x ./deploy/scripts/validate_envs.sh .
COPY --chmod=+x ./deploy/scripts/make_envs_script.sh .
## Assets downloader
COPY --chmod=+x ./deploy/scripts/download_assets.sh .
## Favicon generator
COPY --chmod=+x ./deploy/scripts/favicon_generator.sh .
COPY ./deploy/tools/favicon-generator ./deploy/tools/favicon-generator
RUN ["chmod", "-R", "777", "./deploy/tools/favicon-generator"]
RUN ["chmod", "-R", "777", "./public"]

# Copy ENVs files
COPY --from=builder /app/.env.production .
COPY --from=builder /app/.env.registry .
COPY --from=builder /app/.env .

# Automatically leverage output traces to reduce image size
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

App is distributed as a docker image. Here you can find information about the [package](https://github.com/blockscout/frontend/pkgs/container/frontend) and its recent [releases](https://github.com/blockscout/frontend/releases).

You can configure your app by passing necessary environment variables when stating the container. See full list of ENVs and their description [here](./docs/ENVS.md).
You can configure your app by passing necessary environment variables when starting the container. See full list of ENVs and their description [here](./docs/ENVS.md).

```sh
docker run -p 3000:3000 --env-file <path-to-your-env-file> ghcr.io/blockscout/frontend:latest
Expand All @@ -29,6 +29,7 @@ See our [Contribution guide](./docs/CONTRIBUTING.md) for pull request protocol.
- [Contribution guide](./docs/CONTRIBUTING.md)
- [Making a custom build](./docs/CUSTOM_BUILD.md)
- [Frontend migration guide](https://docs.blockscout.com/for-developers/frontend-migration)
- [Manual deployment guide with backend and microservices](https://docs.blockscout.com/for-developers/deployment/manual-deployment-guide)

## License

Expand Down
12 changes: 7 additions & 5 deletions configs/app/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ import stripTrailingSlash from 'lib/stripTrailingSlash';

import { getEnvValue } from './utils';

const apiHost = getEnvValue(process.env.NEXT_PUBLIC_API_HOST);
const apiSchema = getEnvValue(process.env.NEXT_PUBLIC_API_PROTOCOL) || 'https';
const apiPort = getEnvValue(process.env.NEXT_PUBLIC_API_PORT);
const apiHost = getEnvValue('NEXT_PUBLIC_API_HOST');
const apiSchema = getEnvValue('NEXT_PUBLIC_API_PROTOCOL') || 'https';
const apiPort = getEnvValue('NEXT_PUBLIC_API_PORT');
const apiEndpoint = [
apiSchema || 'https',
'://',
apiHost,
apiPort && ':' + apiPort,
].filter(Boolean).join('');

const socketSchema = getEnvValue(process.env.NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL) || 'wss';
const socketSchema = getEnvValue('NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL') || 'wss';
const socketEndpoint = [
socketSchema,
'://',
Expand All @@ -22,9 +22,11 @@ const socketEndpoint = [

const api = Object.freeze({
host: apiHost,
protocol: apiSchema,
port: apiPort,
endpoint: apiEndpoint,
socket: socketEndpoint,
basePath: stripTrailingSlash(getEnvValue(process.env.NEXT_PUBLIC_API_BASE_PATH) || ''),
basePath: stripTrailingSlash(getEnvValue('NEXT_PUBLIC_API_BASE_PATH') || ''),
});

export default api;
10 changes: 5 additions & 5 deletions configs/app/app.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
import { getEnvValue } from './utils';

const appPort = getEnvValue(process.env.NEXT_PUBLIC_APP_PORT);
const appSchema = getEnvValue(process.env.NEXT_PUBLIC_APP_PROTOCOL);
const appHost = getEnvValue(process.env.NEXT_PUBLIC_APP_HOST);
const appPort = getEnvValue('NEXT_PUBLIC_APP_PORT');
const appSchema = getEnvValue('NEXT_PUBLIC_APP_PROTOCOL');
const appHost = getEnvValue('NEXT_PUBLIC_APP_HOST');
const baseUrl = [
appSchema || 'https',
'://',
appHost,
appPort && ':' + appPort,
].filter(Boolean).join('');
const isDev = process.env.NODE_ENV === 'development';
const isDev = getEnvValue('NEXT_PUBLIC_APP_ENV') === 'development';

const app = Object.freeze({
isDev,
protocol: appSchema,
host: appHost,
port: appPort,
baseUrl,
useProxy: getEnvValue(process.env.NEXT_PUBLIC_USE_NEXT_JS_PROXY) === 'true',
useProxy: getEnvValue('NEXT_PUBLIC_USE_NEXT_JS_PROXY') === 'true',
});

export default app;
22 changes: 13 additions & 9 deletions configs/app/chain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,21 @@ import { getEnvValue } from './utils';
const DEFAULT_CURRENCY_DECIMALS = 18;

const chain = Object.freeze({
id: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_ID),
name: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_NAME),
shortName: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_SHORT_NAME),
id: getEnvValue('NEXT_PUBLIC_NETWORK_ID'),
name: getEnvValue('NEXT_PUBLIC_NETWORK_NAME'),
shortName: getEnvValue('NEXT_PUBLIC_NETWORK_SHORT_NAME'),
currency: {
name: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_CURRENCY_NAME),
symbol: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL),
decimals: Number(getEnvValue(process.env.NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS)) || DEFAULT_CURRENCY_DECIMALS,
name: getEnvValue('NEXT_PUBLIC_NETWORK_CURRENCY_NAME'),
weiName: getEnvValue('NEXT_PUBLIC_NETWORK_CURRENCY_WEI_NAME'),
symbol: getEnvValue('NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL'),
decimals: Number(getEnvValue('NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS')) || DEFAULT_CURRENCY_DECIMALS,
},
rpcUrl: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_RPC_URL),
isTestnet: getEnvValue(process.env.NEXT_PUBLIC_IS_TESTNET) === 'true',
verificationType: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE) || 'mining',
governanceToken: {
symbol: getEnvValue('NEXT_PUBLIC_NETWORK_GOVERNANCE_TOKEN_SYMBOL'),
},
rpcUrl: getEnvValue('NEXT_PUBLIC_NETWORK_RPC_URL'),
isTestnet: getEnvValue('NEXT_PUBLIC_IS_TESTNET') === 'true',
verificationType: getEnvValue('NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE') || 'mining',
});

export default chain;
Loading
Loading