diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5625090627..696030f669 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,11 +1,13 @@
## Current
### Features
+
- [#5968](https://github.com/blockscout/blockscout/pull/5968) - Add call type in the response of txlistinternal API method
- [#5860](https://github.com/blockscout/blockscout/pull/5860) - Integrate rust verifier micro-service ([blockscout-rs/verifier](https://github.com/blockscout/blockscout-rs/tree/main/verification))
- [#6001](https://github.com/blockscout/blockscout/pull/6001) - Add ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES env var that filters requests and query node only if the block quantity is "latest"
### Fixes
+
- [#6017](https://github.com/blockscout/blockscout/pull/6017) - Move "contract interaction" and "Add chain to MM" env vars to runtime
- [#6012](https://github.com/blockscout/blockscout/pull/6012) - Fix display of estimated addresses counter on the main page
- [#5978](https://github.com/blockscout/blockscout/pull/5978) - Allow timestamp param in the log of eth_getTransactionReceipt method
@@ -24,6 +26,32 @@
- [#5948](https://github.com/blockscout/blockscout/pull/5948) - Fix unexpected messages in `CoinBalanceOnDemand`
### Chore
+
+- [#5939](https://github.com/blockscout/blockscout/pull/5939) - Bump sweetalert2 from 11.4.26 to 11.4.27 in /apps/block_scout_web/assets
+- [#5938](https://github.com/blockscout/blockscout/pull/5938) - Bump xss from 1.0.13 to 1.0.14 in /apps/block_scout_web/assets
+- [#5743](https://github.com/blockscout/blockscout/pull/5743) - Fixing tracer not found #5729
+- [#5952](https://github.com/blockscout/blockscout/pull/5952) - Bump sweetalert2 from 11.4.27 to 11.4.28 in /apps/block_scout_web/assets
+- [#5955](https://github.com/blockscout/blockscout/pull/5955) - Bump ex_doc from 0.28.4 to 0.28.5
+- [#5956](https://github.com/blockscout/blockscout/pull/5956) - Bump bcrypt_elixir from 2.3.1 to 3.0.1
+- [#5964](https://github.com/blockscout/blockscout/pull/5964) - Bump sweetalert2 from 11.4.28 to 11.4.29 in /apps/block_scout_web/assets
+- [#5966](https://github.com/blockscout/blockscout/pull/5966) - Bump sass from 1.54.4 to 1.54.5 in /apps/block_scout_web/assets
+- [#5967](https://github.com/blockscout/blockscout/pull/5967) - Bump @babel/core from 7.18.10 to 7.18.13 in /apps/block_scout_web/assets
+- [#5973](https://github.com/blockscout/blockscout/pull/5973) - Bump prometheus from 4.9.0 to 4.9.1
+- [#5974](https://github.com/blockscout/blockscout/pull/5974) - Bump cldr_utils from 2.19.0 to 2.19.1
+- [#5884](https://github.com/blockscout/blockscout/pull/5884) - Bump nimble_csv from 1.1.0 to 1.2.0
+- [#5984](https://github.com/blockscout/blockscout/pull/5984) - Bump jest from 28.1.3 to 29.0.0 in /apps/block_scout_web/assets
+- [#5983](https://github.com/blockscout/blockscout/pull/5983) - Bump core-js from 3.24.1 to 3.25.0 in /apps/block_scout_web/assets
+- [#5981](https://github.com/blockscout/blockscout/pull/5981) - Bump eslint-plugin-promise from 6.0.0 to 6.0.1 in /apps/block_scout_web/assets
+- [#5982](https://github.com/blockscout/blockscout/pull/5982) - Bump jest-environment-jsdom from 28.1.3 to 29.0.0 in /apps/block_scout_web/assets
+- [#5987](https://github.com/blockscout/blockscout/pull/5987) - Bump jest from 29.0.0 to 29.0.1 in /apps/block_scout_web/assets
+- [#5988](https://github.com/blockscout/blockscout/pull/5988) - Bump jest-environment-jsdom from 29.0.0 to 29.0.1 in /apps/block_scout_web/assets
+- [#5989](https://github.com/blockscout/blockscout/pull/5989) - Bump jquery from 3.6.0 to 3.6.1 in /apps/block_scout_web/assets
+- [#5990](https://github.com/blockscout/blockscout/pull/5990) - Bump web3modal from 1.9.8 to 1.9.9 in /apps/block_scout_web/assets
+- [#6004](https://github.com/blockscout/blockscout/pull/6004) - Bump luxon from 3.0.1 to 3.0.3 in /apps/block_scout_web/assets
+- [#6005](https://github.com/blockscout/blockscout/pull/6005) - Bump ex_cldr from 2.33.1 to 2.33.2
+- [#6006](https://github.com/blockscout/blockscout/pull/6006) - Bump eslint from 8.22.0 to 8.23.0 in /apps/block_scout_web/assets
+- [#6015](https://github.com/blockscout/blockscout/pull/6015) - Bump @fortawesome/fontawesome-free from 6.1.2 to 6.2.0 in /apps/block_scout_web/assets
+- [#6021](https://github.com/blockscout/blockscout/pull/6021) - Bump sass from 1.54.5 to 1.54.7 in /apps/block_scout_web/assets
- [#6018](https://github.com/blockscout/blockscout/pull/6018) - Update chromedriver version
- [#5836](https://github.com/blockscout/blockscout/pull/5836) - Bump comeonin from 4.1.2 to 5.3.3
- [#5869](https://github.com/blockscout/blockscout/pull/5869) - Bump reduce-reducers from 0.4.3 to 1.0.4 in /apps/block_scout_web/assets
@@ -96,14 +124,17 @@
## 4.1.7-beta
### Features
+
- [#5783](https://github.com/blockscout/blockscout/pull/5783) - Allow to setup multiple ranges of blocks to index
### Fixes
+
- [#5799](https://github.com/blockscout/blockscout/pull/5799) - Fix address_tokens_usd_sum function
- [#5798](https://github.com/blockscout/blockscout/pull/5798) - Copy explorer node_modules to result image
- [#5797](https://github.com/blockscout/blockscout/pull/5797) - Fix flickering token tooltip
### Chore
+
- [#5796](https://github.com/blockscout/blockscout/pull/5796) - Add job for e2e tests on every push to master + fix job "Merge 'master' to specific branch after release"
## 4.1.6-beta
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index 3075397e8d..1ed9541dc8 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -2,9 +2,11 @@
### Environment
+* Deployment type (Manual/Docker/Docker-compose):
* Elixir & Erlang/OTP versions (`elixir -version`):
+* Node JS version (`node -v`):
* Operating System:
-* Blockscout Version/branch:
+* Blockscout Version/branch/commit:
### Steps to reproduce
diff --git a/README.md b/README.md
index cb6173ce67..7654e6e103 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Blockchain Explorer for inspecting and analyzing EVM Chains.
-[![Blockscout](https://github.com/blockscout/blockscout/workflows/Blockscout/badge.svg?branch=master)](https://github.com/blockscout/blockscout/actions)
+[![Blockscout](https://github.com/blockscout/blockscout/workflows/Blockscout/badge.svg?branch=master)](https://github.com/blockscout/blockscout/actions)
@@ -20,22 +20,21 @@ Currently available full-featured block explorers (Etherscan, Etherchain, Blockc
## Supported Projects
-BlockScout supports a number of projects. Hosted instances include POA Network, Gnosis Chain, Ethereum Classic, Sokol & Kovan testnets, and other EVM chains.
+BlockScout supports a number of projects. Hosted instances include POA Network, Gnosis Chain, Ethereum Classic, Sokol & Kovan testnets, and other EVM chains.
- [List of hosted mainnets, testnets, and additional chains using BlockScout](https://docs.blockscout.com/for-projects/supported-projects)
- [Hosted instance versions](https://docs.blockscout.com/about/use-cases/hosted-blockscout)
-
## Getting Started
See the [project documentation](https://docs.blockscout.com/) for instructions:
+
- [Requirements](https://docs.blockscout.com/for-developers/information-and-settings/requirements)
- [Ansible deployment](https://docs.blockscout.com/for-developers/ansible-deployment)
- [Manual deployment](https://docs.blockscout.com/for-developers/manual-deployment)
- [ENV variables](https://docs.blockscout.com/for-developers/information-and-settings/env-variables)
- [Configuration options](https://docs.blockscout.com/for-developers/configuration-options)
-
## Acknowledgements
We would like to thank the [EthPrize foundation](http://ethprize.io/) for their funding support.
diff --git a/apps/block_scout_web/README.md b/apps/block_scout_web/README.md
index 5f6d2d6701..8c1a622393 100644
--- a/apps/block_scout_web/README.md
+++ b/apps/block_scout_web/README.md
@@ -8,21 +8,19 @@ This is a tool for inspecting and analyzing the POA Network blockchain from a we
* Elixir 1.9+
* Postgres 10.3
-
## Required Accounts
* Github for code storage
-
## Setup Instructions
### Development
To get BlockScout Web interface up and running locally:
- * Setup `../explorer`
- * Install Node.js dependencies with `$ cd assets && npm install && cd ..`
- * Start Phoenix with `$ mix phx.server` (This can be run from this directory or the project root: the project root is recommended.)
+* Setup `../explorer`
+* Install Node.js dependencies with `$ cd assets && npm install && cd ..`
+* Start Phoenix with `$ mix phx.server` (This can be run from this directory or the project root: the project root is recommended.)
Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
@@ -30,14 +28,13 @@ You can also run IEx (Interactive Elixir): `$ iex -S mix phx.server` (This can b
### Testing
- * Build the assets: `cd assets && npm run build`
- * Format the Elixir code: `mix format`
- * Lint the Elixir code: `mix credo --strict`
- * Run the dialyzer: `mix dialyzer --halt-exit-status`
- * Check the Elixir code for vulnerabilities: `mix sobelow --config`
- * Update translations templates and translations and check there are no uncommitted changes: `mix gettext.extract --merge`
- * Lint the JavaScript code: `cd assets && npm run eslint`
-
+* Build the assets: `cd assets && npm run build`
+* Format the Elixir code: `mix format`
+* Lint the Elixir code: `mix credo --strict`
+* Run the dialyzer: `mix dialyzer --halt-exit-status`
+* Check the Elixir code for vulnerabilities: `mix sobelow --config`
+* Update translations templates and translations and check there are no uncommitted changes: `mix gettext.extract --merge`
+* Lint the JavaScript code: `cd assets && npm run eslint`
## Internationalization
diff --git a/apps/ethereum_jsonrpc/README.md b/apps/ethereum_jsonrpc/README.md
index 5d9d469ea4..8f9ab1e94b 100644
--- a/apps/ethereum_jsonrpc/README.md
+++ b/apps/ethereum_jsonrpc/README.md
@@ -83,4 +83,3 @@ def deps do
]
end
```
-
diff --git a/apps/explorer/README.md b/apps/explorer/README.md
index 2230feff3e..4064224aba 100644
--- a/apps/explorer/README.md
+++ b/apps/explorer/README.md
@@ -2,35 +2,32 @@
This is a tool for inspecting and analyzing the POA Network blockchain.
-
## Machine Requirements
* Erlang/OTP 21+
* Elixir 1.9+
* Postgres 10.3
-
## Required Accounts
* Github for code storage
-
## Setup Instructions
### Development
To get BlockScout up and running locally:
- * Install dependencies with `$ mix do deps.get, local.rebar, deps.compile, compile`
- * Create and migrate your database with `$ mix ecto.create && mix ecto.migrate`
- * Run IEx (Interactive Elixir) to access the index and explore: `$ iex -S mix`
+* Install dependencies with `$ mix do deps.get, local.rebar, deps.compile, compile`
+* Create and migrate your database with `$ mix ecto.create && mix ecto.migrate`
+* Run IEx (Interactive Elixir) to access the index and explore: `$ iex -S mix`
### Testing
- * Format the Elixir code: `$ mix format`
- * Lint the Elixir code: `$ mix credo --strict`
- * Run the dialyzer: `mix dialyzer --halt-exit-status`
- * Check the Elixir code for vulnerabilities: `$ mix sobelow --config`
+* Format the Elixir code: `$ mix format`
+* Lint the Elixir code: `$ mix credo --strict`
+* Run the dialyzer: `mix dialyzer --halt-exit-status`
+* Check the Elixir code for vulnerabilities: `$ mix sobelow --config`
### Benchmarking
diff --git a/apps/indexer/README.md b/apps/indexer/README.md
index 9161466229..62daba227a 100644
--- a/apps/indexer/README.md
+++ b/apps/indexer/README.md
@@ -24,7 +24,6 @@ Some data has to be extracted from already fetched data, and there're several tr
- `address_token_balances`: creates token balance entities for futher fetching, based on detected token transfers
- `blocks`: extracts block signer hash from additional data for Clique chains
-
### Root fetchers
- `pending_transaction`: fetches pending transactions (i.e. not yet collated into a block) every second (`pending_transaction_interval`)
@@ -32,6 +31,7 @@ Some data has to be extracted from already fetched data, and there're several tr
- `block/catchup`: gets unfetched ranges of blocks, imports them in batches
Both block fetchers retrieve/extract the blocks themselves and the following additional data:
+
- `block_second_degree_relations`
- `transactions`
- `logs`
@@ -39,16 +39,19 @@ Both block fetchers retrieve/extract the blocks themselves and the following add
- `addresses`
The following stubs for further async fetching are inserted as well:
+
- `block_rewards`
- `address_coin_balances`
- `address_token_balances`
- `tokens`
Realtime fetcher also immediately fetches from the node:
+
- current balances for `addresses`
- `address_coin_balances`
The following async fetchers are launched for importing missing data:
+
- `replaced_transaction`
- `block_reward`
- `uncle_block`
@@ -62,6 +65,7 @@ The following async fetchers are launched for importing missing data:
These are responsible for fetching additional block data not retrieved in root fetchers.
Most of them are based off `BufferedTask`, and the basic algorithm goes like this:
+
1. Make an initial streaming request to database to fetch identifiers of all existing unfetched items.
2. Accept new identifiers for fetching via `async_fetch()` method.
3. Split identifier in batches and run tasks on `TaskSupervisor` according to `max_batch_size` and `max_concurrency` settings.
@@ -80,6 +84,7 @@ Most of them are based off `BufferedTask`, and the basic algorithm goes like thi
- `contract_code`: for `transactions` with non-null `created_contract_address_hash` and null `created_contract_code_indexed_at`
Additionally:
+
- `token_updater` is run every 2 days to update token metadata
- `coin_balance_on_demand` is triggered from web UI to ensure address balance is as up-to-date as possible
diff --git a/docker-compose/README.md b/docker-compose/README.md
index effe655f20..cfc504826f 100644
--- a/docker-compose/README.md
+++ b/docker-compose/README.md
@@ -3,21 +3,26 @@
Runs BlockScout locally in Docker container with usage [docker-compose](https://github.com/docker/compose).
## Prerequisites
+
- Docker v20.10+
- Docker-compose 2.x.x+
- Running Ethereum JSON RPC client
## Building Docker containers from source
+
```
docker-compose up --build
```
This command uses by-default `docker-compose.yml`, which build the explorer into Docker image and runs 2 Docker containers:
+
- one for the database. Postgres 13.x, which will be available at port 7432 on localhost
- and the BlockScout explorer at http://localhost:4000
## Configs for different Ethereum clients
+
Also, the repo contains built-in configs for different clients without need to build the image
+
- Ganache: `docker-compose -f docker-compose-no-build-ganache.yml up -d`
- HardHat network: `docker-compose -f docker-compose-no-build-hardhat-network.yml up -d`
- Geth: `docker-compose -f docker-compose-no-build-geth.yml up -d`
diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml
index 081b7ee839..3ebb5d1edf 100644
--- a/docker-compose/docker-compose.yml
+++ b/docker-compose/docker-compose.yml
@@ -15,6 +15,7 @@ services:
blockscout:
depends_on:
- db
+ image: blockscout/blockscout:${DOCKER_TAG:-latest}
build:
context: ..
dockerfile: ./docker/Dockerfile