Merge pull request #1532 from poanetwork/ab-elixir-1.8.1

upgrade elixir to 1.8.1
pull/1545/head
Victor Baranov 6 years ago committed by GitHub
commit e037c54f39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 65
      .circleci/config.yml
  2. 3
      .dialyzer-ignore
  3. 2
      .tool-versions
  4. 58
      README.md
  5. 4
      apps/block_scout_web/mix.exs
  6. 6
      apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/web_socket.ex
  7. 4
      apps/ethereum_jsonrpc/mix.exs
  8. 4
      apps/explorer/mix.exs
  9. 2
      apps/explorer/test/explorer/smart_contract/publisher_test.exs
  10. 2
      apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs
  11. 2
      apps/explorer/test/explorer/smart_contract/verifier_test.exs
  12. 4
      apps/indexer/mix.exs
  13. 2
      mix.exs
  14. 4
      mix.lock
  15. 7
      rel/config.exs

@ -3,7 +3,7 @@ jobs:
build: build:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2-node-browsers - image: circleci/elixir:1.8.1-node-browsers
environment: environment:
MIX_ENV: test MIX_ENV: test
# match POSTGRES_PASSWORD for postgres image below # match POSTGRES_PASSWORD for postgres image below
@ -14,6 +14,7 @@ jobs:
working_directory: ~/app working_directory: ~/app
steps: steps:
- run: sudo npm install -g phantomjs-prebuilt --unsafe-perm
- run: sudo apt-get update; sudo apt-get -y install autoconf build-essential libgmp3-dev libtool - run: sudo apt-get update; sudo apt-get -y install autoconf build-essential libgmp3-dev libtool
- checkout - checkout
@ -30,17 +31,17 @@ jobs:
- restore_cache: - restore_cache:
keys: keys:
- v6-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }} - v7-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }}
- v6-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }} - v7-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }}
- v6-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }} - v7-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}
- run: mix deps.get - run: mix deps.get
- restore_cache: - restore_cache:
keys: keys:
- v6-npm-install-{{ .Branch }}-{{ checksum "apps/block_scout_web/assets/package-lock.json" }} - v7-npm-install-{{ .Branch }}-{{ checksum "apps/block_scout_web/assets/package-lock.json" }}
- v6-npm-install-{{ .Branch }} - v7-npm-install-{{ .Branch }}
- v6-npm-install - v7-npm-install
- run: - run:
command: npm install command: npm install
@ -61,13 +62,13 @@ jobs:
working_directory: "apps/block_scout_web/assets" working_directory: "apps/block_scout_web/assets"
- save_cache: - save_cache:
key: v6-npm-install-{{ .Branch }}-{{ checksum "apps/block_scout_web/assets/package-lock.json" }} key: v7-npm-install-{{ .Branch }}-{{ checksum "apps/block_scout_web/assets/package-lock.json" }}
paths: "apps/block_scout_web/assets/node_modules" paths: "apps/block_scout_web/assets/node_modules"
- save_cache: - save_cache:
key: v6-npm-install-{{ .Branch }} key: v7-npm-install-{{ .Branch }}
paths: "apps/block_scout_web/assets/node_modules" paths: "apps/block_scout_web/assets/node_modules"
- save_cache: - save_cache:
key: v6-npm-install key: v7-npm-install
paths: "apps/block_scout_web/assets/node_modules" paths: "apps/block_scout_web/assets/node_modules"
- run: mix compile - run: mix compile
@ -80,17 +81,17 @@ jobs:
# `deps` needs to be cached with `_build` because `_build` will symlink into `deps` # `deps` needs to be cached with `_build` because `_build` will symlink into `deps`
- save_cache: - save_cache:
key: v6-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }} key: v7-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }}
paths: paths:
- deps - deps
- _build - _build
- save_cache: - save_cache:
key: v6-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }} key: v7-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }}
paths: paths:
- deps - deps
- _build - _build
- save_cache: - save_cache:
key: v6-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }} key: v7-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}
paths: paths:
- deps - deps
- _build - _build
@ -126,7 +127,7 @@ jobs:
check_formatted: check_formatted:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2 - image: circleci/elixir:1.8.1
environment: environment:
MIX_ENV: test MIX_ENV: test
@ -140,7 +141,7 @@ jobs:
credo: credo:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2 - image: circleci/elixir:1.8.1
environment: environment:
MIX_ENV: test MIX_ENV: test
@ -174,7 +175,7 @@ jobs:
dialyzer: dialyzer:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2 - image: circleci/elixir:1.8.1
environment: environment:
MIX_ENV: test MIX_ENV: test
@ -188,9 +189,9 @@ jobs:
- restore_cache: - restore_cache:
keys: keys:
- v6-mix-dailyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }} - v7-mix-dailyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }}
- v6-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }} - v7-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }}
- v6-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }} - v7-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}
- run: - run:
name: Unpack PLT cache name: Unpack PLT cache
@ -210,15 +211,15 @@ jobs:
cp ~/.mix/dialyxir*.plt plts/ cp ~/.mix/dialyxir*.plt plts/
- save_cache: - save_cache:
key: v6-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }} key: v7-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }}
paths: paths:
- plts - plts
- save_cache: - save_cache:
key: v6-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }} key: v7-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }}
paths: paths:
- plts - plts
- save_cache: - save_cache:
key: v6-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }} key: v7-mix-dialyzer-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}
paths: paths:
- plts - plts
@ -244,7 +245,7 @@ jobs:
gettext: gettext:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2 - image: circleci/elixir:1.8.1
environment: environment:
MIX_ENV: test MIX_ENV: test
@ -283,7 +284,7 @@ jobs:
release: release:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2 - image: circleci/elixir:1.8.1
environment: environment:
MIX_ENV: prod MIX_ENV: prod
@ -309,7 +310,7 @@ jobs:
sobelow: sobelow:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2 - image: circleci/elixir:1.8.1
environment: environment:
MIX_ENV: test MIX_ENV: test
@ -333,7 +334,7 @@ jobs:
test_geth_http_websocket: test_geth_http_websocket:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2-node-browsers - image: circleci/elixir:1.8.1-node-browsers
environment: environment:
MIX_ENV: test MIX_ENV: test
# match POSTGRES_PASSWORD for postgres image below # match POSTGRES_PASSWORD for postgres image below
@ -356,6 +357,7 @@ jobs:
steps: steps:
- attach_workspace: - attach_workspace:
at: . at: .
- run: sudo npm install -g phantomjs-prebuilt --unsafe-perm
- run: mix local.hex --force - run: mix local.hex --force
- run: mix local.rebar --force - run: mix local.rebar --force
@ -383,7 +385,7 @@ jobs:
test_geth_mox: test_geth_mox:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2-node-browsers - image: circleci/elixir:1.8.1-node-browsers
environment: environment:
MIX_ENV: test MIX_ENV: test
# match POSTGRES_PASSWORD for postgres image below # match POSTGRES_PASSWORD for postgres image below
@ -407,6 +409,7 @@ jobs:
- attach_workspace: - attach_workspace:
at: . at: .
- run: sudo npm install -g phantomjs-prebuilt --unsafe-perm
- run: mix local.hex --force - run: mix local.hex --force
- run: mix local.rebar --force - run: mix local.rebar --force
@ -433,7 +436,7 @@ jobs:
test_parity_http_websocket: test_parity_http_websocket:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2-node-browsers - image: circleci/elixir:1.8.1-node-browsers
environment: environment:
MIX_ENV: test MIX_ENV: test
# match POSTGRES_PASSWORD for postgres image below # match POSTGRES_PASSWORD for postgres image below
@ -457,6 +460,7 @@ jobs:
- attach_workspace: - attach_workspace:
at: . at: .
- run: sudo npm install -g phantomjs-prebuilt --unsafe-perm
- run: mix local.hex --force - run: mix local.hex --force
- run: mix local.rebar --force - run: mix local.rebar --force
@ -483,7 +487,7 @@ jobs:
test_parity_mox: test_parity_mox:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2-node-browsers - image: circleci/elixir:1.8.1-node-browsers
environment: environment:
MIX_ENV: test MIX_ENV: test
# match POSTGRES_PASSWORD for postgres image below # match POSTGRES_PASSWORD for postgres image below
@ -507,6 +511,7 @@ jobs:
- attach_workspace: - attach_workspace:
at: . at: .
- run: sudo npm install -g phantomjs-prebuilt --unsafe-perm
- run: mix local.hex --force - run: mix local.hex --force
- run: mix local.rebar --force - run: mix local.rebar --force
@ -533,7 +538,7 @@ jobs:
coveralls_merge: coveralls_merge:
docker: docker:
# Ensure .tool-versions matches # Ensure .tool-versions matches
- image: circleci/elixir:1.7.2 - image: circleci/elixir:1.8.1
environment: environment:
MIX_ENV: test MIX_ENV: test

@ -1,3 +1,6 @@
:0: Unknown function 'Elixir.ExUnit.Callbacks':'__merge__'/3 :0: Unknown function 'Elixir.ExUnit.Callbacks':'__merge__'/3
:0: Unknown function 'Elixir.ExUnit.CaseTemplate':'__proxy__'/2 :0: Unknown function 'Elixir.ExUnit.CaseTemplate':'__proxy__'/2
:0: Unknown type 'Elixir.Map':t/0 :0: Unknown type 'Elixir.Map':t/0
apps/ethereum_jsonrpc/lib/ethereum_jsonrpc.ex:413: Function timestamp_to_datetime/1 has no local return
apps/explorer/lib/explorer/repo/prometheus_logger.ex:8: Function microseconds_time/1 has no local return
apps/explorer/lib/explorer/repo/prometheus_logger.ex:8: The call 'Elixir.System':convert_time_unit(__@1::any(),'native','microseconds') breaks the contract (integer(),time_unit() | 'native',time_unit() | 'native') -> integer()

@ -1,3 +1,3 @@
elixir 1.7.1 elixir 1.8.1
erlang 21.0.4 erlang 21.0.4
nodejs 10.11.0 nodejs 10.11.0

@ -77,7 +77,7 @@ The [development stack page](https://github.com/poanetwork/blockscout/wiki/Devel
| Dependency | Mac | Linux | | Dependency | Mac | Linux |
|-------------|-----|-------| |-------------|-----|-------|
| [Erlang/OTP 21.0.4](https://github.com/erlang/otp) | `brew install erlang` | [Erlang Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L134) | | [Erlang/OTP 21.0.4](https://github.com/erlang/otp) | `brew install erlang` | [Erlang Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L134) |
| [Elixir 1.7.1](https://elixir-lang.org/) | :point_up: | [Elixir Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L138) | | [Elixir 1.8.1](https://elixir-lang.org/) | :point_up: | [Elixir Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L138) |
| [Postgres 10.3](https://www.postgresql.org/) | `brew install postgresql` | [Postgres Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L187) | | [Postgres 10.3](https://www.postgresql.org/) | `brew install postgresql` | [Postgres Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L187) |
| [Node.js 10.5.0](https://nodejs.org/en/) | `brew install node` | [Node.js Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L66) | | [Node.js 10.5.0](https://nodejs.org/en/) | `brew install node` | [Node.js Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L66) |
| [Automake](https://www.gnu.org/software/automake/) | `brew install automake` | [Automake Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L72) | | [Automake](https://www.gnu.org/software/automake/) | `brew install automake` | [Automake Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L72) |
@ -88,31 +88,31 @@ The [development stack page](https://github.com/poanetwork/blockscout/wiki/Devel
### Build and Run ### Build and Run
1. Clone the repository. 1. Clone the repository.
`git clone https://github.com/poanetwork/blockscout` `git clone https://github.com/poanetwork/blockscout`
2. Go to the explorer subdirectory. 2. Go to the explorer subdirectory.
`cd blockscout` `cd blockscout`
3. Set up default configurations. 3. Set up default configurations.
`cp apps/explorer/config/dev.secret.exs.example apps/explorer/config/dev.secret.exs` `cp apps/explorer/config/dev.secret.exs.example apps/explorer/config/dev.secret.exs`
`cp apps/block_scout_web/config/dev.secret.exs.example apps/block_scout_web/config/dev.secret.exs` `cp apps/block_scout_web/config/dev.secret.exs.example apps/block_scout_web/config/dev.secret.exs`
<br />Linux: Update the database username and password configuration in `apps/explorer/config/dev.secret.exs` <br />Linux: Update the database username and password configuration in `apps/explorer/config/dev.secret.exs`
<br />Mac: Remove the `username` and `password` fields from `apps/explorer/config/dev.secret.exs` <br />Mac: Remove the `username` and `password` fields from `apps/explorer/config/dev.secret.exs`
<br />Optional: Set up default configuration for testing. <br />Optional: Set up default configuration for testing.
`cp apps/explorer/config/test.secret.exs.example apps/explorer/config/test.secret.exs` `cp apps/explorer/config/test.secret.exs.example apps/explorer/config/test.secret.exs`
Example usage: Changing the default Postgres port from localhost:15432 if [Boxen](https://github.com/boxen/boxen) is installed. Example usage: Changing the default Postgres port from localhost:15432 if [Boxen](https://github.com/boxen/boxen) is installed.
4. Install dependencies. 4. Install dependencies.
`mix do deps.get, local.rebar --force, deps.compile, compile` `mix do deps.get, local.rebar --force, deps.compile, compile`
5. Create and migrate database. 5. Create and migrate database.
`mix ecto.create && mix ecto.migrate` `mix ecto.create && mix ecto.migrate`
<br />_Note:_ If you have run previously, drop the previous database <br />_Note:_ If you have run previously, drop the previous database
`mix do ecto.drop, ecto.create, ecto.migrate` `mix do ecto.drop, ecto.create, ecto.migrate`
6. Install Node.js dependencies. 6. Install Node.js dependencies.
`cd apps/block_scout_web/assets && npm install; cd -` `cd apps/block_scout_web/assets && npm install; cd -`
`cd apps/explorer && npm install; cd -` `cd apps/explorer && npm install; cd -`
7. Update your JSON RPC Variant in `apps/explorer/config/dev.exs` and `apps/indexer/config/dev.exs`. 7. Update your JSON RPC Variant in `apps/explorer/config/dev.exs` and `apps/indexer/config/dev.exs`.
@ -120,7 +120,7 @@ The [development stack page](https://github.com/poanetwork/blockscout/wiki/Devel
8. Update your JSON RPC Endpoint in `apps/explorer/config/dev/` and `apps/indexer/config/dev/` 8. Update your JSON RPC Endpoint in `apps/explorer/config/dev/` and `apps/indexer/config/dev/`
For the `variant` chosen in step 7, enter the correct information for the corresponding JSON RPC Endpoint in `parity.exs`, `geth.exs`, or `ganache.exs` For the `variant` chosen in step 7, enter the correct information for the corresponding JSON RPC Endpoint in `parity.exs`, `geth.exs`, or `ganache.exs`
9. Enable HTTPS in development. The Phoenix server only runs with HTTPS. 9. Enable HTTPS in development. The Phoenix server only runs with HTTPS.
* `cd apps/block_scout_web` * `cd apps/block_scout_web`
* `mix phx.gen.cert blockscout blockscout.local; cd -` * `mix phx.gen.cert blockscout blockscout.local; cd -`
@ -132,14 +132,14 @@ The [development stack page](https://github.com/poanetwork/blockscout/wiki/Devel
``` ```
* If using Chrome, Enable `chrome://flags/#allow-insecure-localhost`. * If using Chrome, Enable `chrome://flags/#allow-insecure-localhost`.
9. Start Phoenix Server. 9. Start Phoenix Server.
`mix phx.server` `mix phx.server`
Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
_Additional runtime options:_ _Additional runtime options:_
* Run Phoenix Server with IEx (Interactive Elixer) * Run Phoenix Server with IEx (Interactive Elixer)
`iex -S mix phx.server` `iex -S mix phx.server`
* Run Phoenix Server with real time indexer * Run Phoenix Server with real time indexer
@ -204,29 +204,29 @@ To monitor build status, configure your local [CCMenu](http://ccmenu.org/) with
#### Running the tests #### Running the tests
1. Build the assets. 1. Build the assets.
`cd apps/block_scout_web/assets && npm run build; cd -` `cd apps/block_scout_web/assets && npm run build; cd -`
2. Format the Elixir code. 2. Format the Elixir code.
`mix format` `mix format`
3. Run the test suite with coverage for whole umbrella project. This step can be run with different configuration outlined below. 3. Run the test suite with coverage for whole umbrella project. This step can be run with different configuration outlined below.
`mix coveralls.html --umbrella` `mix coveralls.html --umbrella`
4. Lint the Elixir code. 4. Lint the Elixir code.
`mix credo --strict` `mix credo --strict`
5. Run the dialyzer. 5. Run the dialyzer.
`mix dialyzer --halt-exit-status` `mix dialyzer --halt-exit-status`
6. Check the Elixir code for vulnerabilities. 6. Check the Elixir code for vulnerabilities.
`cd apps/explorer && mix sobelow --config; cd -` `cd apps/explorer && mix sobelow --config; cd -`
`cd apps/block_scout_web && mix sobelow --config; cd -` `cd apps/block_scout_web && mix sobelow --config; cd -`
7. Lint the JavaScript code. 7. Lint the JavaScript code.
`cd apps/block_scout_web/assets && npm run eslint; cd -` `cd apps/block_scout_web/assets && npm run eslint; cd -`
8. Test the JavaScript code. 8. Test the JavaScript code.
`cd apps/block_scout_web/assets && npm run test; cd -` `cd apps/block_scout_web/assets && npm run test; cd -`
##### Parity ##### Parity
@ -281,12 +281,12 @@ mix coveralls.html --umbrella --exclude no_geth
To view Modules and API Reference documentation: To view Modules and API Reference documentation:
1. Generate documentation. 1. Generate documentation.
`mix docs` `mix docs`
2. View the generated docs. 2. View the generated docs.
`open doc/index.html` `open doc/index.html`
## Front-end ## Front-end
### Javascript ### Javascript
@ -307,7 +307,7 @@ To understand how to build new pages that need redux in this project, see the [r
The app is currently internationalized. It is only localized to U.S. English. To translate new strings. The app is currently internationalized. It is only localized to U.S. English. To translate new strings.
1. To setup translation file. 1. To setup translation file.
`cd apps/block_scout_web; mix gettext.extract --merge; cd -` `cd apps/block_scout_web; mix gettext.extract --merge; cd -`
2. To edit the new strings, go to `apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po`. 2. To edit the new strings, go to `apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po`.

@ -15,7 +15,7 @@ defmodule BlockScoutWeb.Mixfile do
plt_add_deps: :transitive, plt_add_deps: :transitive,
ignore_warnings: "../../.dialyzer-ignore" ignore_warnings: "../../.dialyzer-ignore"
], ],
elixir: "~> 1.6", elixir: "~> 1.8",
elixirc_paths: elixirc_paths(Mix.env()), elixirc_paths: elixirc_paths(Mix.env()),
lockfile: "../../mix.lock", lockfile: "../../mix.lock",
package: package(), package: package(),
@ -122,7 +122,7 @@ defmodule BlockScoutWeb.Mixfile do
# Tracing # Tracing
{:spandex, github: "spandex-project/spandex", branch: "allow-setting-trace-key", override: true}, {:spandex, github: "spandex-project/spandex", branch: "allow-setting-trace-key", override: true},
# `:spandex` integration with Datadog # `:spandex` integration with Datadog
{:spandex_datadog, "~> 0.3.1"}, {:spandex_datadog, "~> 0.4.0"},
# `:spandex` tracing of `:phoenix` # `:spandex` tracing of `:phoenix`
{:spandex_phoenix, "~> 0.3.1"}, {:spandex_phoenix, "~> 0.3.1"},
{:timex, "~> 3.4"}, {:timex, "~> 3.4"},

@ -37,14 +37,14 @@ defmodule EthereumJSONRPC.WebSocket do
@doc """ @doc """
Allow `c:start_link/1` to be called as part of a supervision tree. Allow `c:start_link/1` to be called as part of a supervision tree.
""" """
@callback child_spec([url :: String.t() | options :: term()]) :: Supervisor.child_spec() @callback child_spec([(url :: String.t()) | (options :: term())]) :: Supervisor.child_spec()
@doc """ @doc """
Starts web socket attached to `url` with `options`. Starts web socket attached to `url` with `options`.
""" """
# Return is same as `t:GenServer.on_start/0` # Return is same as `t:GenServer.on_start/0`
@callback start_link([url :: String.t() | options :: term()]) :: @callback start_link([(url :: String.t()) | (options :: term())]) ::
{:ok, pid()} | :ignore | {:error, {:already_started, pid()} | reason :: term()} {:ok, pid()} | :ignore | {:error, {:already_started, pid()} | (reason :: term())}
@doc """ @doc """
Run a single Remote Procedure Call (RPC) `t:EthereumJSONRPC.Transport.request/0` through `t:web_socket/0`. Run a single Remote Procedure Call (RPC) `t:EthereumJSONRPC.Transport.request/0` through `t:web_socket/0`.

@ -15,7 +15,7 @@ defmodule EthereumJsonrpc.MixProject do
plt_add_apps: [:mix], plt_add_apps: [:mix],
ignore_warnings: "../../.dialyzer-ignore" ignore_warnings: "../../.dialyzer-ignore"
], ],
elixir: "~> 1.6", elixir: "~> 1.8",
elixirc_paths: elixirc_paths(Mix.env()), elixirc_paths: elixirc_paths(Mix.env()),
lockfile: "../../mix.lock", lockfile: "../../mix.lock",
preferred_cli_env: [ preferred_cli_env: [
@ -80,7 +80,7 @@ defmodule EthereumJsonrpc.MixProject do
# Tracing # Tracing
{:spandex, github: "spandex-project/spandex", branch: "allow-setting-trace-key", override: true}, {:spandex, github: "spandex-project/spandex", branch: "allow-setting-trace-key", override: true},
# `:spandex` integration with Datadog # `:spandex` integration with Datadog
{:spandex_datadog, "~> 0.3.1"}, {:spandex_datadog, "~> 0.4.0"},
# Convert unix timestamps in JSONRPC to DateTimes # Convert unix timestamps in JSONRPC to DateTimes
{:timex, "~> 3.4"}, {:timex, "~> 3.4"},
# Encode/decode function names and arguments # Encode/decode function names and arguments

@ -15,7 +15,7 @@ defmodule Explorer.Mixfile do
plt_add_apps: ~w(ex_unit mix)a, plt_add_apps: ~w(ex_unit mix)a,
ignore_warnings: "../../.dialyzer-ignore" ignore_warnings: "../../.dialyzer-ignore"
], ],
elixir: "~> 1.6", elixir: "~> 1.8",
elixirc_paths: elixirc_paths(Mix.env()), elixirc_paths: elixirc_paths(Mix.env()),
lockfile: "../../mix.lock", lockfile: "../../mix.lock",
package: package(), package: package(),
@ -108,7 +108,7 @@ defmodule Explorer.Mixfile do
# Tracing # Tracing
{:spandex, github: "spandex-project/spandex", branch: "allow-setting-trace-key", override: true}, {:spandex, github: "spandex-project/spandex", branch: "allow-setting-trace-key", override: true},
# `:spandex` integration with Datadog # `:spandex` integration with Datadog
{:spandex_datadog, "~> 0.3.1"}, {:spandex_datadog, "~> 0.4.0"},
# `:spandex` tracing of `:ecto` # `:spandex` tracing of `:ecto`
{:spandex_ecto, "~> 0.4.0"}, {:spandex_ecto, "~> 0.4.0"},
# Attach `:prometheus_ecto` to `:ecto` # Attach `:prometheus_ecto` to `:ecto`

@ -99,7 +99,7 @@ defmodule Explorer.SmartContract.PublisherTest do
test "validates and creates smart contract with external libraries" do test "validates and creates smart contract with external libraries" do
contract_data = contract_data =
"#{System.cwd!()}/test/support/fixture/smart_contract/compiler_tests.json" "#{File.cwd!()}/test/support/fixture/smart_contract/compiler_tests.json"
|> File.read!() |> File.read!()
|> Jason.decode!() |> Jason.decode!()
|> List.first() |> List.first()

@ -6,7 +6,7 @@ defmodule Explorer.SmartContract.Solidity.CodeCompilerTest do
alias Explorer.Factory alias Explorer.Factory
alias Explorer.SmartContract.Solidity.CodeCompiler alias Explorer.SmartContract.Solidity.CodeCompiler
@compiler_tests "#{System.cwd!()}/test/support/fixture/smart_contract/compiler_tests.json" @compiler_tests "#{File.cwd!()}/test/support/fixture/smart_contract/compiler_tests.json"
|> File.read!() |> File.read!()
|> Jason.decode!() |> Jason.decode!()

@ -30,7 +30,7 @@ defmodule Explorer.SmartContract.VerifierTest do
test "verifies the generated bytecode with external libraries" do test "verifies the generated bytecode with external libraries" do
contract_data = contract_data =
"#{System.cwd!()}/test/support/fixture/smart_contract/compiler_tests.json" "#{File.cwd!()}/test/support/fixture/smart_contract/compiler_tests.json"
|> File.read!() |> File.read!()
|> Jason.decode!() |> Jason.decode!()
|> List.first() |> List.first()

@ -10,7 +10,7 @@ defmodule Indexer.MixProject do
deps: deps(), deps: deps(),
deps_path: "../../deps", deps_path: "../../deps",
description: "Fetches block chain data from on-chain node for later reading with Explorer.", description: "Fetches block chain data from on-chain node for later reading with Explorer.",
elixir: "~> 1.6", elixir: "~> 1.8",
elixirc_paths: elixirc_paths(Mix.env()), elixirc_paths: elixirc_paths(Mix.env()),
lockfile: "../../mix.lock", lockfile: "../../mix.lock",
preferred_cli_env: [ preferred_cli_env: [
@ -63,7 +63,7 @@ defmodule Indexer.MixProject do
# Tracing # Tracing
{:spandex, github: "spandex-project/spandex", branch: "allow-setting-trace-key", override: true}, {:spandex, github: "spandex-project/spandex", branch: "allow-setting-trace-key", override: true},
# `:spandex` integration with Datadog # `:spandex` integration with Datadog
{:spandex_datadog, "~> 0.3.1"} {:spandex_datadog, "~> 0.4.0"}
] ]
end end

@ -13,7 +13,7 @@ defmodule BlockScout.Mixfile do
plt_add_apps: ~w(ex_unit mix)a, plt_add_apps: ~w(ex_unit mix)a,
ignore_warnings: ".dialyzer-ignore" ignore_warnings: ".dialyzer-ignore"
], ],
elixir: "~> 1.6", elixir: "~> 1.8",
preferred_cli_env: [ preferred_cli_env: [
coveralls: :test, coveralls: :test,
"coveralls.detail": :test, "coveralls.detail": :test,

@ -71,7 +71,7 @@
"mochiweb": {:hex, :mochiweb, "2.18.0", "eb55f1db3e6e960fac4e6db4e2db9ec3602cc9f30b86cd1481d56545c3145d2e", [:rebar3], [], "hexpm"}, "mochiweb": {:hex, :mochiweb, "2.18.0", "eb55f1db3e6e960fac4e6db4e2db9ec3602cc9f30b86cd1481d56545c3145d2e", [:rebar3], [], "hexpm"},
"mock": {:hex, :mock, "0.3.2", "e98e998fd76c191c7e1a9557c8617912c53df3d4a6132f561eb762b699ef59fa", [:mix], [{:meck, "~> 0.8.8", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm"}, "mock": {:hex, :mock, "0.3.2", "e98e998fd76c191c7e1a9557c8617912c53df3d4a6132f561eb762b699ef59fa", [:mix], [{:meck, "~> 0.8.8", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm"},
"mox": {:hex, :mox, "0.4.0", "7f120840f7d626184a3d65de36189ca6f37d432e5d63acd80045198e4c5f7e6e", [:mix], [], "hexpm"}, "mox": {:hex, :mox, "0.4.0", "7f120840f7d626184a3d65de36189ca6f37d432e5d63acd80045198e4c5f7e6e", [:mix], [], "hexpm"},
"msgpax": {:hex, :msgpax, "1.1.0", "e31625e256db2decca1ae2b841f21b4d2483b1332649ce3ebc96c7ff7a4986e3", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm"}, "msgpax": {:hex, :msgpax, "2.2.2", "559a07806bbe5fdd31e4597455be030bd96356f7a621ca9eed832747c83bfb67", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm"},
"nimble_parsec": {:hex, :nimble_parsec, "0.5.0", "90e2eca3d0266e5c53f8fbe0079694740b9c91b6747f2b7e3c5d21966bba8300", [:mix], [], "hexpm"}, "nimble_parsec": {:hex, :nimble_parsec, "0.5.0", "90e2eca3d0266e5c53f8fbe0079694740b9c91b6747f2b7e3c5d21966bba8300", [:mix], [], "hexpm"},
"optimal": {:hex, :optimal, "0.3.6", "46bbf52fbbbd238cda81e02560caa84f93a53c75620f1fe19e81e4ae7b07d1dd", [:mix], [], "hexpm"}, "optimal": {:hex, :optimal, "0.3.6", "46bbf52fbbbd238cda81e02560caa84f93a53c75620f1fe19e81e4ae7b07d1dd", [:mix], [], "hexpm"},
"parallel_stream": {:hex, :parallel_stream, "1.0.6", "b967be2b23f0f6787fab7ed681b4c45a215a81481fb62b01a5b750fa8f30f76c", [:mix], []}, "parallel_stream": {:hex, :parallel_stream, "1.0.6", "b967be2b23f0f6787fab7ed681b4c45a215a81481fb62b01a5b750fa8f30f76c", [:mix], []},
@ -98,7 +98,7 @@
"set_locale": {:git, "https://github.com/minifast/set_locale.git", "da9ae029642bc0fbd9212c2aaf86c0adca70c084", [branch: "master"]}, "set_locale": {:git, "https://github.com/minifast/set_locale.git", "da9ae029642bc0fbd9212c2aaf86c0adca70c084", [branch: "master"]},
"sobelow": {:hex, :sobelow, "0.7.4", "228cc6185b448b63ecc88429b43e864e8dd570e8e09f2d04b3aa71894db1bdbb", [:mix], [], "hexpm"}, "sobelow": {:hex, :sobelow, "0.7.4", "228cc6185b448b63ecc88429b43e864e8dd570e8e09f2d04b3aa71894db1bdbb", [:mix], [], "hexpm"},
"spandex": {:git, "https://github.com/spandex-project/spandex.git", "92992b4aaf3d92e031c2417ff2e6c9e94d27fe36", [branch: "allow-setting-trace-key"]}, "spandex": {:git, "https://github.com/spandex-project/spandex.git", "92992b4aaf3d92e031c2417ff2e6c9e94d27fe36", [branch: "allow-setting-trace-key"]},
"spandex_datadog": {:hex, :spandex_datadog, "0.3.1", "984d27ad1f45cfd243509692f0f63b900a23b79566c529a644c7f3a2b4120603", [:mix], [{:msgpax, "~> 1.1", [hex: :msgpax, repo: "hexpm", optional: false]}, {:spandex, "~> 2.3", [hex: :spandex, repo: "hexpm", optional: false]}], "hexpm"}, "spandex_datadog": {:hex, :spandex_datadog, "0.4.0", "75113a73e843123074886a2e31994af07d6e0632749a8d97e9ca6157b120c287", [:mix], [{:msgpax, "~> 2.2.1", [hex: :msgpax, repo: "hexpm", optional: false]}, {:spandex, "~> 2.3", [hex: :spandex, repo: "hexpm", optional: false]}], "hexpm"},
"spandex_ecto": {:hex, :spandex_ecto, "0.4.0", "deaeaddc11a35f1c551206c53d09bb93a0da5808dbef751430e465c8c7de01d3", [:mix], [{:spandex, "~> 2.2", [hex: :spandex, repo: "hexpm", optional: false]}], "hexpm"}, "spandex_ecto": {:hex, :spandex_ecto, "0.4.0", "deaeaddc11a35f1c551206c53d09bb93a0da5808dbef751430e465c8c7de01d3", [:mix], [{:spandex, "~> 2.2", [hex: :spandex, repo: "hexpm", optional: false]}], "hexpm"},
"spandex_phoenix": {:hex, :spandex_phoenix, "0.3.1", "9cb9a4a9f2161f171d9df9afa1289a0d037abbbeecabae674f959b57f106f201", [:mix], [{:plug, "~> 1.3", [hex: :plug, repo: "hexpm", optional: false]}, {:spandex, "~> 2.2", [hex: :spandex, repo: "hexpm", optional: false]}], "hexpm"}, "spandex_phoenix": {:hex, :spandex_phoenix, "0.3.1", "9cb9a4a9f2161f171d9df9afa1289a0d037abbbeecabae674f959b57f106f201", [:mix], [{:plug, "~> 1.3", [hex: :plug, repo: "hexpm", optional: false]}, {:spandex, "~> 2.2", [hex: :spandex, repo: "hexpm", optional: false]}], "hexpm"},
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.4", "f0eafff810d2041e93f915ef59899c923f4568f4585904d010387ed74988e77b", [:make, :mix, :rebar3], [], "hexpm"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.4", "f0eafff810d2041e93f915ef59899c923f4568f4585904d010387ed74988e77b", [:make, :mix, :rebar3], [], "hexpm"},

@ -12,10 +12,10 @@ defer = fn fun ->
end end
app_root = fn -> app_root = fn ->
if String.contains?(System.cwd!(), "apps") do if String.contains?(File.cwd!(), "apps") do
Path.join([System.cwd!(), "/../../"]) Path.join([File.cwd!(), "/../../"])
else else
System.cwd!() File.cwd!()
end end
end end
@ -82,4 +82,3 @@ release :blockscout do
seed: "rel/commands/seed.sh", seed: "rel/commands/seed.sh",
] ]
end end

Loading…
Cancel
Save