diff --git a/.dialyzer-ignore b/.dialyzer-ignore index d45a57f55c2d..3944eb38fc13 100644 --- a/.dialyzer-ignore +++ b/.dialyzer-ignore @@ -4,6 +4,7 @@ :0: Unknown type 'Elixir.Hash':t/0 :0: Unknown type 'Elixir.Address':t/0 apps/ethereum_jsonrpc/lib/ethereum_jsonrpc.ex:400: Function timestamp_to_datetime/1 has no local return +lib/ethereum_jsonrpc/rolling_window.ex:173 lib/explorer/repo/prometheus_logger.ex:8 lib/explorer/smart_contract/solidity/publisher_worker.ex:1 lib/explorer/smart_contract/vyper/publisher_worker.ex:1 @@ -17,14 +18,13 @@ lib/phoenix/router.ex:324 lib/phoenix/router.ex:402 lib/block_scout_web/views/layout_view.ex:145: The call 'Elixir.Poison.Parser':'parse!' lib/block_scout_web/views/layout_view.ex:237: The call 'Elixir.Poison.Parser':'parse!' -lib/block_scout_web/controllers/api/rpc/transaction_controller.ex:22 lib/explorer/smart_contract/reader.ex:435 lib/indexer/fetcher/token_total_supply_on_demand.ex:16 -lib/explorer/exchange_rates/source.ex:110 -lib/explorer/exchange_rates/source.ex:113 -lib/explorer/smart_contract/solidity/verifier.ex:162 -lib/block_scout_web/templates/address_contract/index.html.eex:162 -lib/block_scout_web/templates/address_contract/index.html.eex:199 +lib/explorer/exchange_rates/source.ex:120 +lib/explorer/exchange_rates/source.ex:123 +lib/explorer/smart_contract/solidity/verifier.ex:223 +lib/block_scout_web/templates/address_contract/index.html.eex:158 +lib/block_scout_web/templates/address_contract/index.html.eex:195 lib/explorer/staking/stake_snapshotting.ex:15: Function do_snapshotting/7 has no local return lib/explorer/staking/stake_snapshotting.ex:147 lib/explorer/third_party_integrations/sourcify.ex:70 @@ -34,4 +34,4 @@ lib/block_scout_web/views/transaction_view.ex:152 lib/block_scout_web/views/transaction_view.ex:197 lib/indexer/buffered_task.ex:402 lib/indexer/buffered_task.ex:451 -lib/indexer/memory/monitor.ex:161 +lib/indexer/memory/monitor.ex:160 diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 2c9198eeabeb..67abe0e88316 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -11,8 +11,8 @@ on: env: MIX_ENV: test - OTP_VERSION: '24.2.2' - ELIXIR_VERSION: '1.12.3' + OTP_VERSION: '24.3.3' + ELIXIR_VERSION: '1.13.4' jobs: build-and-cache: diff --git a/.github/workflows/publish-docker-image.yml b/.github/workflows/publish-docker-image.yml index f0effec8398e..0ed4d2013861 100644 --- a/.github/workflows/publish-docker-image.yml +++ b/.github/workflows/publish-docker-image.yml @@ -14,10 +14,16 @@ jobs: name: Push Docker image to Docker Hub runs-on: ubuntu-latest env: - RELEASE_VERSION: 4.1.3 + RELEASE_VERSION: 4.1.4 steps: - name: Check out the repo uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 - name: Log in to Docker Hub uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 @@ -31,10 +37,5 @@ jobs: with: images: blockscout/blockscout - - name: Build and push Docker image - uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc - with: - context: . - file: ./docker/Dockerfile - push: true - tags: blockscout/blockscout:latest, blockscout/blockscout:${{ env.RELEASE_VERSION }} \ No newline at end of file + - name: Build & Push Docker image + run: docker buildx build -t blockscout/blockscout:latest -t blockscout/blockscout:${{ env.RELEASE_VERSION }} -f ./docker/Dockerfile --push --platform=linux/arm64,linux/amd64 . \ No newline at end of file diff --git a/.gitignore b/.gitignore index 480f7002b984..bdb24a89a4b8 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,7 @@ screenshots/ # Sobelow .sobelow -# osx +# osx .DS_Store # mix phx.gen.cert self-signed certs for dev @@ -45,3 +45,6 @@ screenshots/ /docker-compose/postgres-data /docker-compose/tmp + +.idea/ +*.iml diff --git a/.tool-versions b/.tool-versions index 55b9c6dc683b..5c22166c4061 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,3 +1,3 @@ -elixir 1.12.3-otp-24 -erlang 24.2 -nodejs 16.13.0 +elixir 1.13.4-otp-24 +erlang 24.3.3 +nodejs 16.14.2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 264331de7afd..d3c395212686 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,71 @@ ## Current ### Features -- [#5268](https://github.com/blockscout/blockscout/pull/5268) - Contract names display improvement +- [#5656](https://github.com/blockscout/blockscout/pull/5656) - Gas price oracle +- [#5613](https://github.com/blockscout/blockscout/pull/5613) - Exchange rates CoinMarketCap source module +- [#5588](https://github.com/blockscout/blockscout/pull/5588) - Add broadcasting of coin balance +- [#5479](https://github.com/blockscout/blockscout/pull/5479) - Remake of solidity verifier module; Verification UX improvements +- [#5540](https://github.com/blockscout/blockscout/pull/5540) - Tx page: scroll to selected tab's data ### Fixes +- [#5635](https://github.com/blockscout/blockscout/pull/5635) - Set CoinGecko source in exchange_rates_source function fix in case of token_bridge +- [#5629](https://github.com/blockscout/blockscout/pull/5629) - Fix empty coin balance for empty address +- [#5612](https://github.com/blockscout/blockscout/pull/5612) - Fix token transfers order +- [#5626](https://github.com/blockscout/blockscout/pull/5626) - Fix vyper compiler versions order +- [#5603](https://github.com/blockscout/blockscout/pull/5603) - Fix failing verification attempts +- [#5598](https://github.com/blockscout/blockscout/pull/5598) - Fix token dropdown +- [#5592](https://github.com/blockscout/blockscout/pull/5592) - Burn fees for legacy transactions +- [#5568](https://github.com/blockscout/blockscout/pull/5568) - Add regexp for ipfs checking +- [#5567](https://github.com/blockscout/blockscout/pull/5567) - Sanitize token name and symbol before insert into DB, display in the application +- [#5564](https://github.com/blockscout/blockscout/pull/5564) - Add fallback clauses to `string_to_..._hash` functions +- [#5538](https://github.com/blockscout/blockscout/pull/5538) - Fix internal transaction's tile bug + +### Chore +- [#5651](https://github.com/blockscout/blockscout/pull/5651), [#5657](https://github.com/blockscout/blockscout/pull/5657) - Gnosis chain rebranded theme and generalization of chart legend colors definition +- [#5640](https://github.com/blockscout/blockscout/pull/5640) - Clean up and fix tests, reduce amount of warnings +- [#5625](https://github.com/blockscout/blockscout/pull/5625) - Get rid of some redirects to checksummed address url +- [#5623](https://github.com/blockscout/blockscout/pull/5623) - Allow hyphen in DB password +- [#5543](https://github.com/blockscout/blockscout/pull/5543) - Increase max_restarts to 1_000 (from 3 by default) for explorer, block_scout_web supervisors +- [#5536](https://github.com/blockscout/blockscout/pull/5536) - NPM audit fix + + +## 4.1.3-beta + +### Features +- [#5515](https://github.com/blockscout/blockscout/pull/5515) - Integrate ace editor to display contract sources +- [#5505](https://github.com/blockscout/blockscout/pull/5505) - Manage debug_traceTransaction JSON RPC method timeout +- [#5491](https://github.com/blockscout/blockscout/pull/5491) - Sequential blocks broadcast on the main page +- [#5312](https://github.com/blockscout/blockscout/pull/5312) - Add OpenZeppelin proxy storage slot +- [#5302](https://github.com/blockscout/blockscout/pull/5302) - Add specific tx receipt fields for the GoQuorum client +- [#5268](https://github.com/blockscout/blockscout/pull/5268), [#5313](https://github.com/blockscout/blockscout/pull/5313) - Contract names display improvement + +### Fixes +- [#5528](https://github.com/blockscout/blockscout/pull/5528) - Token balances fetcher retry +- [#5524](https://github.com/blockscout/blockscout/pull/5524) - ContractState module resistance to unresponsive archive node +- [#5513](https://github.com/blockscout/blockscout/pull/5513) - Do not fill pending blocks ops with block numbers below TRACE_FIRST_BLOCK +- [#5508](https://github.com/blockscout/blockscout/pull/5508) - Hide indexing banner if we fetched internal transactions from TRACE_FIRST_BLOCK +- [#5504](https://github.com/blockscout/blockscout/pull/5504) - Extend TRACE_FIRST_BLOCK env var to geth variant +- [#5488](https://github.com/blockscout/blockscout/pull/5488) - Split long contract output to multiple lines +- [#5487](https://github.com/blockscout/blockscout/pull/5487) - Fix array displaying in decoded constructor args +- [#5482](https://github.com/blockscout/blockscout/pull/5482) - Fix for querying of the contract read functions +- [#5455](https://github.com/blockscout/blockscout/pull/5455) - Fix unverified_smart_contract function: add md5 of bytecode to the changeset +- [#5454](https://github.com/blockscout/blockscout/pull/5454) - Docker: Fix the qemu-x86_64 signal 11 error on Apple Silicon +- [#5443](https://github.com/blockscout/blockscout/pull/5443) - Geth: display tx revert reason +- [#5420](https://github.com/blockscout/blockscout/pull/5420) - Deduplicate addresses and coin balances before inserting to the DB +- [#5416](https://github.com/blockscout/blockscout/pull/5416) - Fix getsourcecode for EOA addresses +- [#5413](https://github.com/blockscout/blockscout/pull/5413) - Fix params encoding for read contracts methods +- [#5411](https://github.com/blockscout/blockscout/pull/5411) - Fix character_not_in_repertoire error for tx revert reason +- [#5410](https://github.com/blockscout/blockscout/pull/5410) - Handle exited realtime fetcher +- [#5383](https://github.com/blockscout/blockscout/pull/5383) - Fix reload transactions button +- [#5381](https://github.com/blockscout/blockscout/pull/5381), [#5397](https://github.com/blockscout/blockscout/pull/5397) - Fix exchange rate broadcast error +- [#5375](https://github.com/blockscout/blockscout/pull/5375) - Fix pending transactions fetcher +- [#5374](https://github.com/blockscout/blockscout/pull/5374) - Return all ERC-1155's token instances in tokenList api endpoint +- [#5342](https://github.com/blockscout/blockscout/pull/5342) - Fix 500 error on NF token page with nil metadata +- [#5319](https://github.com/blockscout/blockscout/pull/5319), [#5357](https://github.com/blockscout/blockscout/pull/5357), [#5425](https://github.com/blockscout/blockscout/pull/5425) - Empty blocks sanitizer performance improvement +- [#5310](https://github.com/blockscout/blockscout/pull/5310) - Fix flash on reload in dark mode +- [#5306](https://github.com/blockscout/blockscout/pull/5306) - Fix indexer bug +- [#5300](https://github.com/blockscout/blockscout/pull/5300), [#5305](https://github.com/blockscout/blockscout/pull/5305) - Token instance page: general video improvements +- [#5136](https://github.com/blockscout/blockscout/pull/5136) - Improve contract verification - [#5285](https://github.com/blockscout/blockscout/pull/5285) - Fix verified smart-contract bytecode twins feature - [#5269](https://github.com/blockscout/blockscout/pull/5269) - Address Page: Fix implementation address align - [#5264](https://github.com/blockscout/blockscout/pull/5264) - Fix bug with 500 response on `partial` sourcify status @@ -12,6 +74,26 @@ - [#5239](https://github.com/blockscout/blockscout/pull/5239) - Add accounting for block rewards in `getblockreward` api method ### Chore +- [#5506](https://github.com/blockscout/blockscout/pull/5506) - Refactor config files +- [#5480](https://github.com/blockscout/blockscout/pull/5480) - Remove duplicate of balances_params_to_address_params function +- [#5473](https://github.com/blockscout/blockscout/pull/5473) - Refactor daily coin balances fetcher +- [#5458](https://github.com/blockscout/blockscout/pull/5458) - Decrease min safe polling period for realtime fetcher +- [#5456](https://github.com/blockscout/blockscout/pull/5456) - Ignore arbitrary block details fields for custom Ethereum clients +- [#5450](https://github.com/blockscout/blockscout/pull/5450) - Logging error in publishing of smart-contract +- [#5433](https://github.com/blockscout/blockscout/pull/5433) - Caching modules refactoring +- [#5419](https://github.com/blockscout/blockscout/pull/5419) - Add check if address exists for some api methods +- [#5408](https://github.com/blockscout/blockscout/pull/5408) - Update websocket_client hex package +- [#5407](https://github.com/blockscout/blockscout/pull/5407) - Update hackney, certifi, tzdata +- [#5369](https://github.com/blockscout/blockscout/pull/5369) - Manage indexer memory limit +- [#5368](https://github.com/blockscout/blockscout/pull/5368) - Refactoring from SourcifyFilePathBackfiller +- [#5367](https://github.com/blockscout/blockscout/pull/5367) - Resolve Prototype Pollution in minimist dependency +- [#5366](https://github.com/blockscout/blockscout/pull/5366) - Fix Vyper smart-contract verification form tooltips +- [#5348](https://github.com/blockscout/blockscout/pull/5348) - Block data for Avalanche: pass blockExtraData param +- [#5341](https://github.com/blockscout/blockscout/pull/5341) - Remove unused broadcasts +- [#5318](https://github.com/blockscout/blockscout/pull/5318) - Eliminate Jquery import from chart-loader.js +- [#5317](https://github.com/blockscout/blockscout/pull/5317) - NPM audit +- [#5303](https://github.com/blockscout/blockscout/pull/5303) - Besu: revertReason support in trace +- [#5301](https://github.com/blockscout/blockscout/pull/5301) - Allow specific block keys for sgb/ava - [#5295](https://github.com/blockscout/blockscout/pull/5295) - CI pipeline: build and push Docker image to Docker Hub on every release - [#5290](https://github.com/blockscout/blockscout/pull/5290) - Bump ex_doc from 0.25.2 to 0.28.2 - [#5289](https://github.com/blockscout/blockscout/pull/5289) - Bump ex_abi from 1.5.9 to 1.5.11 @@ -19,6 +101,7 @@ - [#5287](https://github.com/blockscout/blockscout/pull/5287) - Docker: modify native token symbol - [#5286](https://github.com/blockscout/blockscout/pull/5286) - Change namespace for one of the SmartContractViewTest test - [#5260](https://github.com/blockscout/blockscout/pull/5260) - Makefile release task to prerelease and release task +- [#5082](https://github.com/blockscout/blockscout/pull/5082) - Elixir 1.12 -> 1.13 ## 4.1.2-beta diff --git a/README.md b/README.md index 8aa45fdee253..cb6173ce67b5 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,15 @@
Blockchain Explorer for inspecting and analyzing EVM Chains.