Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
5141 commits
Select commit Hold shift + click to select a range
1164557
chore: new tac microservice endpoint for search (#12448)
sl1depengwyn Jul 1, 2025
8d9882a
chore(deps): bump ecto_sql from 3.12.1 to 3.13.2 (#12689)
dependabot[bot] Jul 1, 2025
7f121d8
chore(deps): bump image from 0.59.3 to 0.60.0 (#12694)
dependabot[bot] Jul 1, 2025
b8ce714
fix: `MarketHistory` on conflict clause (#12541)
sl1depengwyn Jul 1, 2025
2be016b
fix: Store blocks_validated in DB for Stability Validators (#12540)
nikitosing Jul 1, 2025
fc67c74
chore(deps): bump core-js in /apps/block_scout_web/assets (#12714)
dependabot[bot] Jul 2, 2025
48b467a
chore(deps): bump sweetalert2 in /apps/block_scout_web/assets (#12706)
dependabot[bot] Jul 2, 2025
e6765fb
chore(deps-dev): bump eslint-plugin-import (#12711)
dependabot[bot] Jul 2, 2025
e00f948
chore(deps-dev): bump @babel/core in /apps/block_scout_web/assets (#1…
dependabot[bot] Jul 2, 2025
4b70d0f
feat: Update CodeQL action to v3 (#12697) (#12703)
vbaranov Jul 2, 2025
5012ccf
chore(deps-dev): bump postcss in /apps/block_scout_web/assets (#12707)
dependabot[bot] Jul 2, 2025
9652340
chore(deps-dev): bump eslint in /apps/block_scout_web/assets (#12715)
dependabot[bot] Jul 2, 2025
30975d6
chore(deps): bump chart.js in /apps/block_scout_web/assets (#12710)
dependabot[bot] Jul 2, 2025
9298168
chore(deps-dev): bump sass in /apps/block_scout_web/assets (#12709)
dependabot[bot] Jul 2, 2025
2d54871
fix: Display correct OP Deposit origin address (#12672)
varasev Jul 2, 2025
341c10e
perf: optimize Explorer.Chain.Cache.Blocks (#12402)
sl1depengwyn Jul 2, 2025
de900d6
chore: revise Explorer.Helper.add_0x_prefix usage (#12543)
sl1depengwyn Jul 2, 2025
f17b5fb
chore: Duplicate block countdown endpoint in API v2 (#12704)
nikitosing Jul 3, 2025
f914f33
fix: Multichain search export: retry only on failed chunks (#12459)
vbaranov Jul 3, 2025
275b855
fix: internal transactions balance extraction (#12654)
sl1depengwyn Jul 3, 2025
d131f34
feat: Integrate Open API Spex lib (#11886)
nikitosing Jul 4, 2025
d5b3531
Remove Berachain from GA workflow configs
vbaranov Jul 4, 2025
ab0b438
fix: multichain retry hex decoding (#12742)
sl1depengwyn Jul 8, 2025
18e1e35
chore: Allow resending reindexed OP interop messages to Multichain se…
varasev Jul 8, 2025
dee54e9
chore(deps): bump image from 0.60.0 to 0.61.0 (#12739)
dependabot[bot] Jul 9, 2025
05a475a
chore(deps): bump open_api_spex from 3.21.2 to 3.21.4 (#12740)
dependabot[bot] Jul 9, 2025
32bfbdb
chore(deps): bump ymlr from 2.0.0 to 5.1.3 (#12741)
dependabot[bot] Jul 9, 2025
2eb58c6
feat: Rate limits refactoring (#12386)
nikitosing Jul 9, 2025
56677c3
fix: Fix race condition for EventNotification (#12738)
nikitosing Jul 9, 2025
8c01fbf
fix: Fix CSV export tests (#12744)
nikitosing Jul 9, 2025
9b957f2
feat: Async multichain data export (#12490)
vbaranov Jul 10, 2025
b2d46b2
fix: error on too big block numbers in APIv1 `txlist` method (#12727)
fedor-ivn Jul 11, 2025
3aad709
chore: hold parity with Etherscan APIv1 for `getcontractcreation` and…
fedor-ivn Jul 11, 2025
7dd5b28
chore: Optimize missing block ranges operations (#12705)
Qwerty5Uiop Jul 11, 2025
4f5ed5f
feat: add token1155tx token404tx api v1 endpoints (#12720)
sl1depengwyn Jul 11, 2025
f54a8d3
Actualize old UI Dockerfile and make GA workflow to manually publish …
vbaranov Jul 11, 2025
5f45c17
fix: Fix timeout on cache update (#12773)
nikitosing Jul 14, 2025
2b6b543
chore(deps): bump ex_secp256k1 from 0.7.4 to 0.7.5 (#12781)
dependabot[bot] Jul 15, 2025
fa99320
chore(deps): bump open_api_spex from 3.21.4 to 3.21.5 (#12782)
dependabot[bot] Jul 15, 2025
6d534f9
chore(deps): bump ezstd from 1.2.1 to 1.2.2 (#12784)
dependabot[bot] Jul 15, 2025
4b537df
chore(deps): bump image from 0.61.0 to 0.61.1 (#12785)
dependabot[bot] Jul 15, 2025
762dfe2
fix: filter scilla transactions by status (#12756)
fedor-ivn Jul 15, 2025
e63ebc1
feat: add eip7702 authorization status fetcher (#12451)
k1rill-fedoseev Jul 15, 2025
6997f3a
fix: change default ordering in `/api/v2/smart-contracts` (#12767)
fedor-ivn Jul 15, 2025
41f6db2
chore: Merge adjacent missing block ranges (#12778)
Qwerty5Uiop Jul 15, 2025
f0ffaf4
perf: api v1 `txlsit`& `txlistinternal` endpoints (#12774)
sl1depengwyn Jul 15, 2025
ab002ac
v9.0.0
vbaranov Jul 15, 2025
4f7e05e
fix: filter out scilla transactions in internal transactions fetcher …
fedor-ivn Jul 16, 2025
36a2ac4
chore: Migrate from HTTPoison to Tesla.Mint (#12699)
Qwerty5Uiop Jul 16, 2025
efc8007
fix: filter out creation internal transaction with `index == 0` (#12777)
fedor-ivn Jul 16, 2025
08646e1
feat: Export balances to Multichain DB (#12726)
vbaranov Jul 17, 2025
e7a2392
Add CHANGELOG entry
vbaranov Jul 17, 2025
0e01ecd
Update CHANGELOG
vbaranov Jul 17, 2025
c5c3d27
chore: migrate Auth0 to mint as well (#12807)
sl1depengwyn Jul 18, 2025
ae61025
Update runtime.exs (#12814)
varasev Jul 18, 2025
1ea4735
fix: Fix flaky test for exporting balances to Multichain DB (#12813)
vbaranov Jul 18, 2025
a8e3ef6
fix: Sanitize empty block_ranges payload before sending HTTP request …
vbaranov Jul 18, 2025
1e4b5c4
Add CHANGELOG entries
vbaranov Jul 18, 2025
6ec96b5
fix: remove token_id from coin balance payload to Multichain service …
vbaranov Jul 18, 2025
71b9ffd
fix: Fix multichain export queues processing (#12822)
vbaranov Jul 19, 2025
64509a4
Fix: Reject empty token_id and value in export of token balances to t…
vbaranov Jul 21, 2025
ab8e340
chore: Parsing L2 block number of OP Dispute Game on BOB chain (#12831)
varasev Jul 21, 2025
473bedc
Fix: Fix various errors on export of balances to Multichain DB (#12837)
vbaranov Jul 22, 2025
0ad246e
chore: Change name of Swagger generation workflow (#12840)
vbaranov Jul 22, 2025
1968ba1
Chore: Balances Multichain export: Refactor rows acquisition for dele…
vbaranov Jul 23, 2025
7a170c9
fix: Fix increment of `retries_number` in exporting data to Multichai…
vbaranov Jul 23, 2025
4d712db
fix: Allow using temporary token for api/account/v2 by default (#12869)
nikitosing Jul 29, 2025
529dfd2
fix: balances export queue to multichain replace do_nothing with repl…
vbaranov Jul 30, 2025
e063ef3
fix: Fix naming for apikey param in OpenAPI spec (#12891)
nikitosing Jul 31, 2025
be7f046
fix: Balances export queue: replace `replace_all` with replace only `…
vbaranov Jul 31, 2025
c3b003c
feat: Export token info to Multichain service (#12867)
varasev Jul 31, 2025
dff7814
fix: Fix deadlocks in Multichain balances export (#12898)
vbaranov Aug 1, 2025
e188a49
fix: Ignore rate limit for api/v2/import/token-info and api/v2/import…
nikitosing Aug 4, 2025
06fd0f4
fix: Don't send coin balances with zero delta via ws (#12890)
nikitosing Aug 4, 2025
f7a7be2
fix: deletion in chunks for the balances and main data export queues …
vbaranov Aug 6, 2025
5a95e19
chore: Remove obsolete API response props (#12931)
vbaranov Aug 6, 2025
cc5b5ce
Update CHANGELOG
vbaranov Aug 6, 2025
e637662
chore(deps-dev): bump @babel/preset-env in /apps/block_scout_web/asse…
dependabot[bot] Aug 8, 2025
c390911
chore(deps): bump bignumber.js in /apps/block_scout_web/assets (#12909)
dependabot[bot] Aug 8, 2025
a379a55
chore(deps-dev): bump jest-environment-jsdom (#12907)
dependabot[bot] Aug 8, 2025
db6d7a9
chore(deps-dev): bump @babel/core in /apps/block_scout_web/assets (#1…
dependabot[bot] Aug 8, 2025
207fb54
chore(deps): bump @amplitude/analytics-browser (#12912)
dependabot[bot] Aug 8, 2025
9982b9e
chore(deps-dev): bump globals in /apps/block_scout_web/assets (#12906)
dependabot[bot] Aug 8, 2025
23ef068
chore(deps): bump luxon in /apps/block_scout_web/assets (#12904)
dependabot[bot] Aug 8, 2025
35ea067
chore(deps): bump mixpanel-browser in /apps/block_scout_web/assets (#…
dependabot[bot] Aug 11, 2025
cab09b3
Change RELEASE_VERSION in generate-swagger.yml
vbaranov Aug 11, 2025
f1e1abe
chore: restore `getblocknobytime` response format to use `blockNumber…
fedor-ivn Aug 11, 2025
1106bfa
9.0.1
vbaranov Aug 11, 2025
37bb58f
chore(deps): bump ex_keccak from 0.7.6 to 0.7.8 (#12963)
dependabot[bot] Aug 13, 2025
6d5534e
chore(deps): bump open_api_spex from 3.21.5 to 3.22.0 (#12967)
dependabot[bot] Aug 13, 2025
a0cc66a
chore(deps): bump hammer_backend_redis from 7.0.2 to 7.1.0 (#12966)
dependabot[bot] Aug 13, 2025
bf5b645
chore(deps): bump hackney from 1.24.1 to 1.25.0 (#12956)
dependabot[bot] Aug 13, 2025
1602ffd
chore(deps): bump ton from 0.5.0 to 0.5.1 (#12959)
dependabot[bot] Aug 13, 2025
b29c564
chore(deps): bump bamboo from 2.4.0 to 2.5.0 (#12961)
dependabot[bot] Aug 13, 2025
878e582
chore(deps): bump postgrex from 0.20.0 to 0.21.1 (#12964)
dependabot[bot] Aug 13, 2025
481973a
chore(deps-dev): bump dialyxir from 1.4.5 to 1.4.6 (#12957)
dependabot[bot] Aug 13, 2025
e188724
chore(deps): bump evision from 0.2.13 to 0.2.14 (#12968)
dependabot[bot] Aug 13, 2025
499d4b4
chore(deps): bump image from 0.61.1 to 0.62.0 (#12962)
dependabot[bot] Aug 13, 2025
208e32f
fix: Remove apikey from next_page_params (#12972)
nikitosing Aug 13, 2025
7162356
chore(deps): bump tesla from 1.14.3 to 1.15.3 (#12970)
dependabot[bot] Aug 13, 2025
d5daaac
Fix RangesHelper.sanitize_ranges for empty list (#12946)
Qwerty5Uiop Aug 13, 2025
b390bc0
Increase multichain queues sizes (#12988)
vbaranov Aug 14, 2025
29c1787
fix: pagination with atoms in paging_params (#12986)
sl1depengwyn Aug 14, 2025
58ce65e
v9.0.2
vbaranov Aug 14, 2025
fa0f242
fix: Set 5 RPS for api/health/* (#12990)
nikitosing Aug 14, 2025
05db9e9
Add CHANGELOG record
vbaranov Aug 14, 2025
6c4001e
Add todo item
vbaranov Aug 14, 2025
7cc0bf4
Update todo item
vbaranov Aug 14, 2025
3116cf4
Fix Mud worlds API endpoint (#12991)
vbaranov Aug 14, 2025
b2c2f89
Update todo item
vbaranov Aug 14, 2025
e534702
Remove outdated todo item
vbaranov Aug 14, 2025
ee04df6
fix: atoms in token_transfers_next_page_params (#12992)
sl1depengwyn Aug 14, 2025
ed93c12
Add CHANGELOG record
vbaranov Aug 14, 2025
fdaed2b
chore(deps): bump ex_secp256k1 from 0.7.5 to 0.7.6 (#12960)
dependabot[bot] Aug 15, 2025
d7d46d9
chore(deps): bump sweetalert2 in /apps/block_scout_web/assets (#12999)
dependabot[bot] Aug 17, 2025
6c2293b
chore(deps): bump floki from 0.37.1 to 0.38.0 (#12605)
dependabot[bot] Aug 18, 2025
0355d5e
chore: Move addresses to a separate import stage (#12857)
Qwerty5Uiop Aug 18, 2025
5397ef2
chore: Add disconnect_on_error_codes param to repo config (#12800)
Qwerty5Uiop Aug 18, 2025
a5126ee
fix: Expand indexer timeout exception definition (#12748)
Qwerty5Uiop Aug 18, 2025
38fd956
feat: add celo-cpecific APIv1 `getepoch` action (#12853)
fedor-ivn Aug 18, 2025
9299628
chore(deps): bump ex_aws_s3 from 2.5.7 to 2.5.8 (#13026)
dependabot[bot] Aug 19, 2025
e8d9e46
chore: catchup fetcher various improvements (#12866)
Qwerty5Uiop Aug 19, 2025
b246995
fix: Fix matching in current token balances import filter (#12930)
Qwerty5Uiop Aug 19, 2025
a42d068
chore: Move address nonce updating to a separate process (#12941)
Qwerty5Uiop Aug 19, 2025
094ef3c
Broadcast current token balances from separate fetcher (#12787)
Qwerty5Uiop Aug 19, 2025
2b8a0c2
fix: Don't validate address hash for common blocks channels (#13020)
Qwerty5Uiop Aug 19, 2025
1b05097
feat: runtime config option to disable file logging (#12805)
fedor-ivn Aug 19, 2025
0b5f44f
chore(deps-dev): bump ex_doc from 0.38.2 to 0.38.3 (#13025)
dependabot[bot] Aug 19, 2025
3820192
refactor: remove public tags request functionality (#13006)
fedor-ivn Aug 19, 2025
5a88898
chore: Refactor usage of delete_parameters_from_next_page_params/1 (#…
nikitosing Aug 19, 2025
092b00f
chore: Route left API DB requests from master to read DB replica (#12…
vbaranov Aug 19, 2025
07c0217
fix: token type filtering to support multiple types with OR logic (#1…
Copilot Aug 19, 2025
192b114
fix: address api spec for `filecoin` and `zilliqa` chain types (#12996)
fedor-ivn Aug 20, 2025
dd40ea5
perf: Optimize maybe_hide_scam_addresses/3 query (#12927)
nikitosing Aug 20, 2025
c70fde9
feat: Add methodId to txlist rpc method (#13043)
Qwerty5Uiop Aug 20, 2025
bbaf8d3
fix: Change signed_authorizations chain_id type to numeric (#13042)
Qwerty5Uiop Aug 20, 2025
cbae116
chore: Cover token info export to Multichain service by unit tests (#…
varasev Aug 20, 2025
baa2a69
Don't broadcast current token balances from realtime fetcher (#13039)
Qwerty5Uiop Aug 21, 2025
23d8642
fix: csv export for celo l2 epoch rewards on address (#12815)
fedor-ivn Aug 21, 2025
1d235f5
fix: Fix multichain search queue export bug processing (#13049)
vbaranov Aug 21, 2025
2753503
Add INDEXER_DISABLE_OPTIMISM_INTEROP_MULTICHAIN_EXPORT env variable (…
varasev Aug 21, 2025
ba457af
feat: Export main page counters to Multichain service (#13007)
varasev Aug 22, 2025
4ccb09a
chore(deps): bump sha.js in /apps/block_scout_web/assets (#13053)
dependabot[bot] Aug 22, 2025
a3842f5
chore(deps): bump cipher-base in /apps/block_scout_web/assets (#13054)
dependabot[bot] Aug 22, 2025
cc19fdf
fix: Fix Postgres errors in Explorer.Migrator.BackfillMetadataURL (#1…
nikitosing Aug 25, 2025
395474e
fix: Fix no function clause matching in Explorer.Chain.Transaction.de…
nikitosing Aug 25, 2025
559dd62
feat: Add token_type to token transfer API response (#13038)
nikitosing Aug 25, 2025
fb8ab44
chore: Remove Polygon Edge modules and chain type (#13056)
varasev Aug 25, 2025
0c57dc2
chore: Move token transfers to a separate event handler (#13068)
Qwerty5Uiop Aug 26, 2025
fbce8af
chore: Bump actions major versions (#13077)
vbaranov Aug 26, 2025
cabe3d2
fix: RuntimeEnvHelper usage in Auth0.Migrated (#13075)
sl1depengwyn Aug 26, 2025
42e774d
chore: Add `is_pending_update` flag to block and transaction API endp…
Copilot Aug 26, 2025
494052a
feat: Add x-api-key header (#13076)
nikitosing Aug 26, 2025
c770f72
fix: `/api/v2/addresses/:hash/token-transfers` returns 500 on celo (#…
fedor-ivn Aug 26, 2025
0f480cb
Remove unncessary padding in ga workflow
vbaranov Aug 27, 2025
2426c2c
feat: Add possibility to forward event notification to another DB (#1…
nikitosing Aug 27, 2025
ddd0d72
Add support of Scroll codecv8 (#13090)
varasev Aug 27, 2025
7b7ec35
fix: Escape only significant characters in tokens (#13078)
Qwerty5Uiop Aug 27, 2025
d8f3ea4
chore: Bump default rps to 5 (#13089)
nikitosing Aug 27, 2025
cc02251
feat: Add envs to configure RemoteIp lib usage (#13082)
nikitosing Aug 27, 2025
2e24287
chore: Replace ReindexDuplicatedInternalTransactions grouping field (…
Qwerty5Uiop Aug 27, 2025
51cee4c
chore: Remove obsolete circleci config (#13097)
vbaranov Aug 28, 2025
5d806c9
chore: Add final check for ReindexDuplicatedInternalTransactions (#13…
Qwerty5Uiop Aug 28, 2025
d8649e9
Bump versions of prometheus and prometheus_ex libs (#13096)
vbaranov Aug 28, 2025
966be7b
Add mix deps.clean --all in CI
vbaranov Aug 28, 2025
4b25351
fix: Fix failing ETH RPC tests (#13099)
vbaranov Aug 29, 2025
e58712e
fix: Fix recv timeout option in Universal proxy config (#13046)
vbaranov Aug 29, 2025
fec8403
chore: Update and format pull request template (#13028)
sl1depengwyn Aug 29, 2025
2ab549a
fix: Return internal transactions for consensus blocks only in /api/v…
vbaranov Sep 1, 2025
11526a6
chore: Change release workflow (#13087)
vbaranov Sep 1, 2025
30e6914
fix: Set for read ops in NFT backfillers (#13116)
nikitosing Sep 1, 2025
fbdbca4
feat: Add `reputation` property where applicable (#13070)
nikitosing Sep 1, 2025
e038919
9.1.0
vbaranov Sep 1, 2025
1cdbe48
feat: improved proxy detection (#12846)
k1rill-fedoseev Sep 1, 2025
b75f045
fix: duplicates of smart contracts additional sources (#13018)
fedor-ivn Sep 1, 2025
2613ce0
Rename public release workflows
vbaranov Sep 1, 2025
345dbbb
fix: Replace get_constant_by_key with get_constant_value in get_last_…
nikitosing Sep 1, 2025
6e5701d
Rename public release workflows files
vbaranov Sep 1, 2025
4295576
Rename public release workflows files
vbaranov Sep 1, 2025
3e7d605
Merge branch 'master' of github.com:/blockscout/blockscout
vbaranov Sep 1, 2025
68d650e
9.1.0 CHANGELOG
vbaranov Sep 1, 2025
8c89c1d
Copy Bundle from Private to Public Repository GA workflow
vbaranov Sep 2, 2025
d06d987
Update: Copy Bundle from Private to Public Repository GA workflow
vbaranov Sep 2, 2025
a1a5cd7
Update: Copy Bundle from Private to Public Repository GA workflow for…
vbaranov Sep 2, 2025
ae0d73d
Single public release workflow
vbaranov Sep 2, 2025
646a66a
Fix cspell issues
vbaranov Sep 2, 2025
933bb04
Fix cspell issues
vbaranov Sep 2, 2025
10301f1
feat: on-demand bytecode fetching on smart contract verification requ…
Copilot Sep 4, 2025
a502a5b
Update CHANGELOG
vbaranov Sep 4, 2025
5ac2ce3
feat: beacon deposits (#12985)
sl1depengwyn Sep 4, 2025
7794b74
Update CHANGELOG
vbaranov Sep 4, 2025
03e4b57
Merge branch 'master' of github.com:/blockscout/blockscout
vbaranov Sep 4, 2025
726e5af
Checkpoint from VS Code for coding agent session
ajit2903 Sep 7, 2025
c9c48fe
fix: Add reputation to token, rework reputation preload (#13149)
nikitosing Sep 8, 2025
f432885
fix: Fix reputation preload for ERC-404 collections (#13174)
nikitosing Sep 9, 2025
5f2d3ac
fix: pagination and filtering issues in `/addresses/:hash/nft` (#13175)
fedor-ivn Sep 9, 2025
cab58dc
Fix: Fix batch's number processing from the socket event (#13181)
vbaranov Sep 10, 2025
428c740
fix: Delete PTOs for forked transactions (#13145)
Qwerty5Uiop Sep 10, 2025
bde6f2f
Update CHANGELOG
vbaranov Sep 10, 2025
7786d0e
perf: Fix perf of finding non pending block in internal transactions …
vbaranov Sep 11, 2025
35f2bbe
chore: Remove quantile_estimator dep (#13190)
vbaranov Sep 11, 2025
a3c5ef1
perf: Internal transactions REST API endpoint perf tradeoff (#13191)
vbaranov Sep 11, 2025
61db50a
fix: adjustments in address nft and collections endpoints (#13192)
fedor-ivn Sep 11, 2025
4de99c4
Update dependabot config to prevent npm packages update
vbaranov Sep 11, 2025
24243a6
Rollback version update in docker-compose
vbaranov Sep 12, 2025
4b9a5db
fix: Mark completed deposits in batches (#13210)
vbaranov Sep 14, 2025
6c885d2
Fix deposit.id -> deposit.index
vbaranov Sep 14, 2025
364d2a4
Beacon deposits: avoid Repo.stream
vbaranov Sep 14, 2025
5030e45
Add beacon deposits management envs to CHANGELOG
vbaranov Sep 14, 2025
ed644f4
fix: Add reputation preload for celo gas_token (#13200)
nikitosing Sep 15, 2025
0303b7d
fix: Fix api/v2/addresses/{hash}/celo/election-rewards pagination (#1…
nikitosing Sep 15, 2025
26dd21a
Update CHANGELOG
vbaranov Sep 15, 2025
b19d630
fix: errors in celo epochs endpoints (#13201)
fedor-ivn Sep 15, 2025
bee4b74
Update CHANGELOG
vbaranov Sep 15, 2025
1262ae7
Add ACCOUNT_PUBLIC_TAGS_AIRTABLE_URL, ACCOUNT_PUBLIC_TAGS_AIRTABLE_AP…
vbaranov Sep 15, 2025
a648d29
feat: auto assert_schema in tests (#13029)
k1rill-fedoseev Sep 16, 2025
91fa8e7
Update 9.1.0 CHANGELOG
vbaranov Sep 16, 2025
5ddba2c
Update cpell config
vbaranov Sep 16, 2025
dbdfa76
Update public release workflow
vbaranov Sep 17, 2025
e54f00e
chore: Refactoring reputation (#13221)
nikitosing Sep 17, 2025
62a1bca
9.1.1
vbaranov Sep 17, 2025
518d945
fix: Remove requirement for beacon deposit indexes to be sequential (…
vbaranov Sep 17, 2025
af5fbfa
fix: Fix logic of checking heavy DB index operation is finished (#13231)
vbaranov Sep 17, 2025
5d556e1
perf: Improve perf of internal transactions retrieval from the DB (#1…
vbaranov Sep 17, 2025
63460d8
Add pre-release workflow for Gnosis Chain
vbaranov Sep 17, 2025
d7e7814
fix: Soften deposits deletion condition (#13234)
vbaranov Sep 17, 2025
269dbaf
chore: Do not modify deposit indexer state on reorgs (#13236)
vbaranov Sep 17, 2025
491189a
fix: Add reputation preload to state changes and bridged tokens (#13235)
nikitosing Sep 18, 2025
9a9beb6
fix: Fix condition in Indexer.Fetcher.OnDemand.TokenTotalSupply fetch…
vbaranov Sep 18, 2025
72bc9cf
fix: Add reputation preload for user op body for transaction interpre…
nikitosing Sep 18, 2025
1e86603
fix: some flapping explorer/indexer tests (#13230)
k1rill-fedoseev Sep 18, 2025
e2cec48
Add CHANGELOG entry
vbaranov Sep 18, 2025
33cc5ac
chore: Fix tests (#13244)
nikitosing Sep 18, 2025
2f4eb33
Add CHANGELOG entry
vbaranov Sep 18, 2025
fab9060
Remove Suave GA workflows
vbaranov Sep 18, 2025
6d07e5b
fix: token transfer test for celo (#13250)
fedor-ivn Sep 19, 2025
72d6791
fix: Add reputation preload to celo base fee (#13248)
nikitosing Sep 19, 2025
8f282fa
Checkpoint from VS Code for coding agent session (#12)
ajit2903 Sep 21, 2025
bcc605a
new update
ajit2903 Sep 22, 2025
c4296ff
ass
ajit2903 Sep 22, 2025
a4a8742
Merge pull request #1 from ajit2903/patch-47
ajit2903 Sep 22, 2025
21c248e
Create elixir.yml
ajit2903 Sep 22, 2025
15f37ee
Gu (#21)
ajit2903 Sep 22, 2025
2fb4c9c
Create makefile.yml
ajit2903 Sep 22, 2025
9ba8601
Create npm-publish-github-packages.yml
ajit2903 Sep 22, 2025
f64ce78
Create azure-container-webapp.yml
ajit2903 Sep 22, 2025
a32d1f4
Create codeql.yml
ajit2903 Sep 22, 2025
424ce32
Create docker-image.yml
ajit2903 Sep 22, 2025
3751834
Merge pull request #2 from ajit2903/ajit2903
ajit2903 Sep 22, 2025
b44c9a9
My add (#22)
ajit2903 Sep 22, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
627 changes: 0 additions & 627 deletions .circleci/config.yml

This file was deleted.

7 changes: 4 additions & 3 deletions .credo.exs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
# If you create your own checks, you must specify the source files for
# them here, so they can be loaded by Credo before running the analysis.
#
requires: [],
requires: ["apps/utils/lib/credo/**/*.ex"],
#
# If you want to enforce a style guide and need a more traditional linting
# experience, you can change `strict` to `true` below:
Expand Down Expand Up @@ -131,7 +131,7 @@
{Credo.Check.Warning.UnusedRegexOperation},
{Credo.Check.Warning.UnusedStringOperation},
{Credo.Check.Warning.UnusedTupleOperation},
{Credo.Check.Warning.RaiseInsideRescue, false},
{Credo.Check.Warning.RaiseInsideRescue},

# Controversial and experimental checks (opt-in, just remove `, false`)
#
Expand All @@ -140,9 +140,10 @@
{Credo.Check.Refactor.AppendSingleItem},
{Credo.Check.Refactor.VariableRebinding},
{Credo.Check.Warning.MapGetUnsafePass},
{Credo.Check.Consistency.MultiAliasImportRequireUse}
{Credo.Check.Consistency.MultiAliasImportRequireUse},

# Custom checks can be created using `mix credo.gen.check`.
{Utils.Credo.Checks.CompileEnvUsage}
#
]
}
Expand Down
61 changes: 61 additions & 0 deletions .devcontainer/.blockscout_config.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
CHAIN_TYPE=ethereum

ETHEREUM_JSONRPC_VARIANT=geth
ETHEREUM_JSONRPC_TRACE_URL=""

API_RATE_LIMIT=100
HEART_BEAT_TIMEOUT=30
TXS_STATS_DAYS_TO_COMPILE_AT_INIT=2
INDEXER_MEMORY_LIMIT=6

POOL_SIZE=50
POOL_SIZE_API=50
ACCOUNT_POOL_SIZE=10

INDEXER_DISABLE_EMPTY_BLOCKS_SANITIZER='true'
INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER='true'
INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER='true'
INDEXER_DISABLE_BLOCK_REWARD_FETCHER='true'
INDEXER_DISABLE_ADDRESS_COIN_BALANCE_FETCHER='true'
INDEXER_DISABLE_CATALOGED_TOKEN_UPDATER_FETCHER='true'
ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES='true'
INDEXER_DISABLE_TOKEN_INSTANCE_RETRY_FETCHER='true'
INDEXER_DISABLE_TOKEN_INSTANCE_REALTIME_FETCHER='true'
INDEXER_DISABLE_TOKEN_INSTANCE_SANITIZE_FETCHER='true'
INDEXER_DISABLE_WITHDRAWALS_FETCHER='true'

INDEXER_CATCHUP_BLOCKS_BATCH_SIZE=5
INDEXER_COIN_BALANCES_BATCH_SIZE=1
INDEXER_EMPTY_BLOCKS_SANITIZER_BATCH_SIZE=1
INDEXER_BLOCK_REWARD_BATCH_SIZE=1
INDEXER_RECEIPTS_BATCH_SIZE=10
INDEXER_COIN_BALANCES_BATCH_SIZE=1
INDEXER_TOKEN_BALANCES_BATCH_SIZE=1

INDEXER_CATCHUP_BLOCKS_CONCURRENCY=1
MIGRATION_TOKEN_INSTANCE_OWNER_BATCH_SIZE=1
MIGRATION_TOKEN_INSTANCE_OWNER_CONCURRENCY=1
INDEXER_BLOCK_REWARD_CONCURRENCY=1
INDEXER_RECEIPTS_CONCURRENCY=1
INDEXER_COIN_BALANCES_CONCURRENCY=1
INDEXER_TOKEN_CONCURRENCY=1
INDEXER_TOKEN_BALANCES_CONCURRENCY=1
INDEXER_TOKEN_INSTANCE_RETRY_CONCURRENCY=1
INDEXER_TOKEN_INSTANCE_REALTIME_CONCURRENCY=1
INDEXER_TOKEN_INSTANCE_SANITIZE_CONCURRENCY=1
INDEXER_TOKEN_INSTANCE_RETRY_BATCH_SIZE=1
INDEXER_TOKEN_INSTANCE_REALTIME_BATCH_SIZE=1
INDEXER_TOKEN_INSTANCE_SANITIZE_BATCH_SIZE=1

INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMIT=2
INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMIT=2

DISABLE_MARKET='true'
SOURCIFY_INTEGRATION_ENABLED='false'

API_V2_ENABLED=true

DISABLE_CATCHUP_INDEXER='false'
INDEXER_CATCHUP_BLOCKS_BATCH_SIZE=10
INDEXER_CATCHUP_BLOCKS_CONCURRENCY=10
ETHEREUM_JSONRPC_HTTP_URL="https://ethereum-sepolia-rpc.publicnode.com"
50 changes: 50 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Since this is a copy of https://github.com/blockscout/devcontainer-elixir/blob/main/Dockerfile
# So after successful testing this file, the original one must be updated as well.
ARG VARIANT="1.17.3-erlang-27.1-debian-bullseye-20240926"
FROM hexpm/elixir:${VARIANT}

# ARGs declared before FROM are not persisted beyond the FROM instruction.
# They must be redeclared here to be available in the rest of the Dockerfile.
ARG PHOENIX_VERSION="1.7.10"
ARG NODE_VERSION="20"

# This Dockerfile adds a non-root user with sudo access. Update the “remoteUser” property in
# devcontainer.json to use it. More info: https://aka.ms/vscode-remote/containers/non-root-user.
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID

# Options for common package install script
ARG INSTALL_ZSH="true"
ARG UPGRADE_PACKAGES="true"
ARG COMMON_SCRIPT_SOURCE="https://raw.githubusercontent.com/microsoft/vscode-dev-containers/main/script-library/common-debian.sh"

# Options for setup nodejs
ARG NODE_SCRIPT_SOURCE="https://raw.githubusercontent.com/microsoft/vscode-dev-containers/main/script-library/node-debian.sh"
ENV NVM_DIR=/usr/local/share/nvm
ENV NVM_SYMLINK_CURRENT=true
ENV PATH=${NVM_DIR}/current/bin:${PATH}

# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends curl ca-certificates 2>&1 \
&& curl -sSL ${COMMON_SCRIPT_SOURCE} -o /tmp/common-setup.sh \
&& /bin/bash /tmp/common-setup.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" \
#
# Install Node.js for use with web applications
&& curl -sSL ${NODE_SCRIPT_SOURCE} -o /tmp/node-setup.sh \
&& /bin/bash /tmp/node-setup.sh "${NVM_DIR}" "${NODE_VERSION}" "${USERNAME}" \
&& npm install -g cspell@latest \
#
# Install dependencies
&& apt-get install -y build-essential inotify-tools \
#
# Clean up
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/* /tmp/common-setup.sh /tmp/node-setup.sh

RUN su ${USERNAME} -c "mix local.hex --force \
&& mix local.rebar --force \
&& mix archive.install --force hex phx_new ${PHOENIX_VERSION}"
200 changes: 200 additions & 0 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
# Blockscout Backend Development with VSCode Devcontainers and GitHub Codespaces

## Table of Contents
1. [Motivation](#motivation)
2. [Setting Up VSCode Devcontainer Locally](#setting-up-vscode-devcontainer-locally)
3. [Using GitHub Codespaces in the Browser](#using-github-codespaces-in-the-browser)
4. [Configuring Postgres DB Access](#configuring-postgres-db-access)
5. [Developing Blockscout Backend](#developing-blockscout-backend)
6. [Upgrading Elixir Version](#upgrading-elixir-version)
7. [Contributing](#contributing)

## Motivation

Setting up a local development environment for Blockscout can be time-consuming and error-prone. This devcontainer setup streamlines the process by providing a pre-configured environment with all necessary dependencies. It ensures consistency across development environments, reduces setup time, and allows developers to focus on coding rather than configuration.

Key benefits include:
- Pre-configured environment with Elixir, Phoenix, and Node.js
- Integrated PostgreSQL database
- Essential VS Code extensions pre-installed
- Simplified database management
- Consistent development environment across team members

## Setting Up VSCode Devcontainer Locally

1. Clone the Blockscout repository:
```
git clone https://github.com/blockscout/blockscout.git
cd blockscout
```

2. Open the project in VS Code:
```
code .
```

3. Before re-opening in the container, you may find it useful to configure SSH authorization. To do this:

a. Ensure you have SSH access to GitHub configured on your local machine.

b. Open `.devcontainer/devcontainer.json`.

c. Uncomment the `mounts` section:
```json
"mounts": [
"source=${localEnv:HOME}/.ssh/config,target=/home/vscode/.ssh/config,type=bind,consistency=cached",
"source=${localEnv:HOME}/.ssh/id_rsa,target=/home/vscode/.ssh/id_rsa,type=bind,consistency=cached"
],
```

d. Adjust the paths if your SSH keys are stored in a different location.

e. Use `git update-index --assume-unchanged .devcontainer/devcontainer.json` to prevent the changes to `devcontainer.json` from appearing in `git status` and VS Code's Source Control. To undo the changes, use `git update-index --no-assume-unchanged .devcontainer/devcontainer.json`.

4. When prompted, click "Reopen in Container". If not prompted, press `F1`, type "Remote-Containers: Reopen in Container", and press Enter.

5. VS Code will build the devcontainer. This process includes:
- Pulling the base Docker image
- Installing specified VS Code extensions
- Setting up the PostgreSQL database
- Installing project dependencies

This may take several minutes the first time.

6. Once the devcontainer is built, you'll be working inside the containerized environment.

7. If you modified the `devcontainer.json` file in step 3, you may want to execute `git update-index --assume-unchanged .devcontainer/devcontainer.json` in a terminal within your devcontainer to prevent the changes to `devcontainer.json` from appearing in `git status` and VS Code's Source Control.

### Additional Setup for Cursor.ai Users

If you're using Cursor.ai instead of VSCode, you may need to perform some additional setup steps. Please note that these changes will not persist after reloading the devcontainer, so you may need to repeat these steps each time you start a new session.

1. **Git Configuration**: You may encounter issues when trying to perform Git operations from the terminal or the "Source Control" tab. To resolve this, set up your Git configuration inside the devcontainer:

a. Open a terminal in your devcontainer.
b. Set your Git username:
```
git config --global user.name "Your Name"
```
c. Set your Git email:
```
git config --global user.email "[email protected]"
```

Replace "Your Name" and "[email protected]" with your actual name and email associated with your GitHub account.

2. **ElixirLS: Elixir support and debugger** (JakeBecker.elixir-ls): This extension may not be automatically installed in Cursor.ai, even though it's specified in the devcontainer configuration. To install it manually:

a. Open the Extensions tab.
b. Search for "JakeBecker.elixir-ls".
c. Look for the extension "ElixirLS: Elixir support and debugger" by JakeBecker and click "Install".

Remember, you may need to repeat these steps each time you start a new Cursor.ai session with the devcontainer.

### Signing in to GitHub for Pull Request Extension

1. In the devcontainer, click on the GitHub icon in the Primary sidebar.
2. Click on "Sign in to GitHub" and follow the prompts to authenticate.

## Using GitHub Codespaces in the Browser

To open the project in GitHub Codespaces:

1. Navigate to the Blockscout repository on GitHub.
2. Switch to the branch you want to work on.
3. Click the "Code" button.
4. Instead of clicking "Create codespace on [branch]" (which would use the default machine type that may not be sufficient for this Elixir-based project), click on the three dots (...) next to it.
5. Select "New with options".
6. Choose the "4-core/16GB RAM" machine type for optimal performance.
7. Click "Create codespace".

This will create a new Codespace with the specified resources, ensuring adequate performance for the Elixir-based project.

Note: After the container opens, you may see an error about the inability to use "GitHub Copilot Chat". This Copilot functionality will not be accessible in the Codespace environment.

## Configuring Postgres DB Access

To configure access to the PostgreSQL database using the VS Code extension:

1. Click on the PostgreSQL icon in the Primary sidebar.
2. Click "+" (Add Connection) in the PostgreSQL explorer.
3. Use the following details:
- Host: `db`
- User: `postgres`
- Password: `postgres`
- Port: `5432`
- Use an ssl connection: "Standard connection"
- Database: `app`
- The display name: "<some name>"

These credentials are derived from the `DATABASE_URL` in the `bs` script.

## Developing Blockscout Backend

### Configuration

Before running the Blockscout server, you need to set up the configuration:

1. Copy the `.devcontainer/.blockscout_config.example` file to `.devcontainer/.blockscout_config`.
2. Adjust the settings in `.devcontainer/.blockscout_config` as needed for your development environment.

For a comprehensive list of environment variables that can be set in this configuration file, refer to the [Blockscout documentation](https://docs.blockscout.com/setup/env-variables).

### Using the `bs` Script

The `bs` script in `.devcontainer/bin/` helps orchestrate common development tasks. Here are some key commands:

- Initialize the project: `bs --init`
- Initialize or re-initialize the database: `bs --db-init` (This will remove all data and tables from the DB and re-create the tables)
- Run the server: `bs`
- Run the server without syncing: `bs --no-sync`
- Recompile the project: `bs --recompile` (Use this when new dependencies arrive after a merge or when switching to another `CHAIN_TYPE`)
- Run various checks: `bs --spellcheck`, `bs --dialyzer`, `bs --credo`, `bs --format`

For a full list of options, run `bs --help`.

### Interacting with the Blockscout API

For local devcontainer setups (not applicable to GitHub Codespaces), you can use API testing tools like Postman or Insomnia on your host machine to interact with the Blockscout API running in the container:

1. Ensure the Blockscout server is running in the devcontainer.
2. In the API testing tool on your host machine, use `http://127.0.0.1:4000` as the base URL.
3. Example endpoint: `GET http://127.0.0.1:4000/api/v2/blocks`

This allows testing API endpoints directly from your host machine while the server runs in the container.

### Troubleshooting

If you face issues with dependency compilation or dialyzer after container creation:

1. Check for untracked files: `git ls-files --others`
2. Remove compilation artifacts or generated files if present.
3. For persistent issues, consider cleaning all untracked files (use with caution):
```
git clean -fdX
bs --recompile
```

This ensures a clean compilation environment within the container.

## Upgrading Elixir Version

To upgrade the Elixir version:

1. Open `.devcontainer/Dockerfile`.
2. Update the `VARIANT` argument with the desired Elixir version.
3. Rebuild the devcontainer.

Note: Ensure that the version you choose is compatible with the project dependencies.

After testing the new Elixir version, propagate the corresponding changes in the Dockerfile to the repo https://github.com/blockscout/devcontainer-elixir. Once a new release tag is published there and a new docker image `ghcr.io/blockscout/devcontainer-elixir` appears in the GitHub registry, modify the `docker-compose.yml` file in the `.devcontainer` directory to reflect the proper docker image tag.

## Contributing

When contributing changes that require additional checks for specific blockchain types:

1. Open `.devcontainer/bin/chain-specific-checks`.
2. Add your checks under the appropriate `CHAIN_TYPE` case.
3. Ensure your checks exit with a non-zero code if unsuccessful.

Remember to document any new checks or configuration options in this README.
Loading